玩了好几天,看了好多剧,所以这几天的进度稍微有点慢,另外,《一起同过窗》真香!

延展特性涉及解集覆盖的区域。一个具有良好分布的解集应该包含来自PF每个部分的解集,而不遗漏任何区域。然而,大多数扩展的QIs只度量解决方案集的范围(extent)。下表为总结:


这些QIs通常考虑the range formed by the extreme solutions of the set(由集合的极值解构成的范围),例如maximum spread,和它的变体[25] [27] [28] [29] [30] [33],或者

考虑the range enclosed by the boundary solutions of the set(集合的边界解所围成的范围),实例如下图:

只考虑这些解的QIs可能会忽略PF的内部区域。

幸运的是,确实存在一些为解决方案集的整个覆盖范围设计的QIs。

例如,[23]测量解集的支持点的面积和长度;[24]计算解集在PF的最大不相似度;[31]将每个解与解集的其余解的不同之处相加。

Maximum Spread (MS)

$MS(or mathcal{M}_3^*)$ 被广泛的使用于延展性indicator。它通过考虑每个目标的最大范围来度量解决方案集的范围,公式为:

m 是目标函数的个数。MS应求极大值。值越高,说明的可延展性越好,在二元目标情形下,非支配解集的MS值为其两个极值解的欧氏距离。

但是,如前所述,MS只考虑集合的极值解,不能反映扩散的特性。此外,由于它不涉及集合的收敛性,远离PF的解通常对MS值有很大贡献。这很容易引起误导性的评价。例如,一个解集集中于PF的一小部分,但有一个离PF很远的离群值,那么它的MS值就很好。为了解决这一问题,引入帕累托前缘的范围作为评价的参考,例如[27] [28]。

Extension

规定:

令:$P_r = { F_1^1,…,F_l^1 }$,其中,$F_i^1=(L_1,…,L_{i-1},U_i,L_{i+1},…,L_l),[i=1,…,l]$

规定:

因此,得表达式:

易知,$d_r^p$ 越小,说明有更好的延展性。

如果是三维图的话,$P_r$ 分别如下:

Modified MS(勿看,瞎记的)

只有知道正常和期望的条件,才能定义和避免异常和不期望的条件,例如解在目标空间的次优区域的分散,或者收敛到感兴趣区域之外的次优解。换句话说,为了克服收敛性和多样性的矛盾要求,需要一个应用相关的尺度来定义低、理想和高多样性的近似概念,这在高维问题中尤为明显。在所提议的机制的上下文中,决策人员DM1(通常,最好是领域专家)只需要对所需折衷表面的定义极值提出近似估计。这些极值将作为包含理想的PF的超立方体的顶点。

$z_t in Z_t$ 可以表示PF的目标集。$I_s$ 能取任何正的实数值。理想情况下,要找到一个接近统一($I_S = 1$)的指标值(理想的多样性)。小于1 ($I_S < 1$)的指示值表示与期望的解决方案的扩展相比,操作的解决方案之间的多样性较低。另一方面,指示符值大于1($I_S > 1$)突出了目标空间中解的过度分散(高多样性)。这种超空间的过度分散很可能导致解与PF的发散,并通过引入循环行为,迫使MOEA反复探索空间中以前访问过的区域,从而阻碍了优化过程。

第二个多样性管理机制是DM2,它预测NSGA-II中使用的多项式突变算子可能会使潜在的解点广泛分散。DM2试图通过引入自适应突变算子,以一种可控的方式控制这种离散。这个新的变异算子试图定义组决策变量的变异范围在每一代的基础上的多样性程度的局部non-dominated集解决方案,为每个单独的决策变量中设置,在当地的多样性以NSGA-II年代拥挤的措施。

  • 计算第i代近似集的扩展指标。
  • if $I_s<1$
  • 在变异选择和生存选择过程中激活多样性促进机制。
  • Else If $I_s geq 1$
  • 在变异选择和生存选择过程中,失活多样性促进机制。

Coverage error $epsilon$

$epsilon$ 的概念:

解释一下就是:有两个集合$D,Z$,$D$ 是 $Z$ 的一部分,如果想要用 $D$ 代表 $Z$,那么就要用符号 $d_{epsilon}$ 表示。并规定,遍历 $Z$ 中的每一个点,画一个圆,半径是 $epsilon$ ,都要有 $D$ 中的解存在,并且找最小的 $epsilon$。

$delta$ 的概念:

翻译一下:这个是单对 $D$ 集合来说的,$D$ 中两两点的最小距离。

例子如下:实心 + 空心 = Z;实心 = D

因此 $epsilon$ 要尽可能的小,$ delta$ 尽可能的大。

For a fixed element $z$ of $Z$, how well it is covered is determined by the closest point to $z$ in the representation $D$. How well the entire set $Z$ is covered depends on how well an arbitrary element of $Z$ is covered, and thus the coverage error epsilon$ is equal to the maximum of coverage error quantities for individual points in Z.

Similarly, the uniformity level $delta$ is determined by the quantity.

the fact that $D$ is of finite cardinality, computing the uniformity level $delta$ is simple as long as the metric $d$ is computable.

PD

where

$d(s_i,X-s_i)$ 是从一个物种 $s_i$ 到另一个种群 $X$ 的相异度。

下图提供了一个方式展示了PD是如何计算的,在左图,解$s_i$和其他方案 $X−si$ 视为两个社区,他们的多样性之和是 $X−si$ (black dots)的和 与 $si$ 到 $X−si$ 的相异值的和组成:

每个解与整个总体的不同之处是可以计算的,每个解都与其最近的未复制邻居相关联。然后,这些差异的和导致了整个种群的多样性,可以看作是X的结构,上右图所示,(其中较暗的线比较亮的线连接得早)。具体算法如下:

其中:

$d$ 是n*n的矩阵,例如(i,j)就是 第i个解与第j个解的p范数距离($L_p-norm$),因此是对称矩阵。

$min(d,[],2)$ 出自于matlab语法,对每一行取最小值,因此输出是一列。

另外,这位老师居然还是我们学校的老师,在电院,好奇翻了一下个人主页,居然有代码!我会附录在本博客最后,其中中文为我注释。

不同的相异评价在计算PD占很重要的作用。通常采用两个解之间的距离作为它们的相异之处。但是请注意,欧几里得距离不太适合在高维空间中测量邻域。由于MaOPs的解分布在高维目标空间中,基于$L_2$范数的欧氏距离不适用于PD中的不相似度计算。

从下图中我们可以清楚地看到,p越小,各维$L_p$对0越敏感。相反,基于$L_p-norm-based$的距离测度不适用于测量p>1的高维数据的差异性。因此,为了测量MaOPs的多样性,需要将p设置为p < 1。已有研究表明,只要p< 1,该测度的有效性对p不敏感。因此,p在PD中不是一个参数,本文将p设为0.1。

指示器使用单个标量值来描述m维分布。因此,无论哪个指标,都会丢失一些信息。因此,尽管不同的指标可能捕获不同的信息,但希望捕获一些关键信息。当得到PF f1 +f2 +f3 = 1的三个极值点时,在这三个极值点的集合中加入不同的解,多样性度量的值是不同的。下图为在三个极值点集合中加入PF的另一个解时PD、MS、NDC (b =4)、熵(b =4)的变化值,其中颜色表示矩阵的大小(颜色较深的点值小于颜色较浅的点值)。如果根据这些指标选择一个解决方案以增加多样性,下图中较亮的部分优先于较暗的部分。一旦得到极值点。MS值达到最大值。因此,没有任何解决方案能够改进MS。虽然中间部分是由NDC和熵推动的,但解在网格内是无法区分的。对于PD,中间部分提升,值不断变化。从图4可以看出,PD通常可以促进不同的解决方案。

Overall Pareto Spread

当设计的目标函数都被考虑时,总体的PF延展性度量量化了所观测的目标在目标空间中的延展能力。这个度量被定义为两个超矩形的体积比,其中一个是 $HR_{gb}$ ,它对于每一个所设计的目标的好点与坏点。类似地, $HR_{ex}$ 定义了所观察到的Pareto解集的极值点。整个PF的延展性变为$HR_{gb}$与 $HR_{ex}$ 之比:

$P$ 是所观测的Pareto解,$m$ 为目标函数个数,其中:

例如,在图4所示的两个目标空间中,PF-spread的计算公式为:

其中:

$P_1,P_2$ 是两个Pareto solution sets。if $OS(P_1)>OS(P_2)$, then the solution set P1 is preferred to P2 .

PD’s code

1
2
3
4
5
6
7
8
9
10
11
12
13
大专栏  QIs for Spreadn class="line">14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
% University of Surrey, UK, and University of Birmingham, UK
% EMAIL: wanghanding.patch@gmail.com, yaochu.jin@surrey.ac.uk, X.Yao@cs.bham.ac.uk
% WEBSITE: http://www.surrey.ac.uk/cs/people/handing_wang/
% DATE: March 2016
% ------------------------------------------------------------------------
% This code is part of the program that produces the results in the following paper:
% Handing Wang, Yaochu Jin, Xin Yao, Diversity Assessment in Many-Objective Optimization, Cybernetics, IEEE Transactions on, Accepted, 10.1109/TCYB.2016.2550502.
% You are free to use it for non-commercial purposes. However, we do not offer any forms of guanrantee or warranty associated with the code. We would appreciate your acknowledgement.
% ------------------------------------------------------------------------
function [ pd ] = ( X )
% Usage: [ pd ] = PD( X )
%
% Input:
% X -Objective values of the population n*m (n solutions with m objectives)
%
% Output:
% pd -PD value of population X
%
p=2;%lp norm setting0.1
C=zeros(size(X,1),size(X,1));%connection array
D=zeros(size(X,1),size(X,1));%dissimilarity array
%Calculate the dissimilarity between each two solutions
for i=1:size(X,1)-1
for j=i+1:size(X,1)
d=sum(abs(X(j,:)-X(i,:)).^p,2).^(1/p);
D(i,j)=d;
D(j,i)=d;
end
end
DMAX=max(max(D))+1;
D(logical(eye(size(D))))=DMAX;
n=size(X,1);
pd=0; for k=1:n-1
%Find the nearest neighbor to each solution according to D in each row.
[d,J]=min(D,[],2);
%Find solution i with the maximal di to its neighbor j
[dmx,i]=max(d); while liantong(C,i,J(i))==1 %i and j are connected by previous assessed solutions
if D(J(i),i)~=-1
D(J(i),i)=DMAX; %Mark the connected subgraph
end
if D(i,J(i))~=-1
D(i,J(i))=DMAX;
end
[d,J]=min(D,[],2);
%Find solution i with the maximal di to its neighbor j
[dmx,i]=max(d);
end
C(J(i),i)=1;
C(i,J(i))=1;
pd=pd+dmx;
if D(J(i),i)~=-1
D(J(i),i)=DMAX;%Mark the used dissimilarity di.
end
D(i,:)=-1;%Mark the chosen solution i
end
end function [w]=liantong(C,I,J)
% Usage: [w]=liantong(C,I,J)
%
% Input:
% C -Connection array
% I -index I
% J -index J
%
% Output:
% w -1 if solutions I and J are connected, 0 if solutions I and J are not connected.
%
V=I;
Child=find(C(V,:)==1);
if isempty(find(Child==J))==0 % 直接连接
w=1;
return
else
C(V,:)=0; % 删掉点I
C(:,V)=0;
for i=1:size(Child,2) % 遍历连接点I的其他点
w=liantong(C,Child(i),J); % 进行递归
if w==1
return
end
end
end
w=0;
end

QIs for Spread的更多相关文章

  1. spread 程序调试时,未激活的提示解决

    场景:程序调试运行,打开含spread组件的窗体时如下: 解决: 将spread组件拖到某一个窗体后,会在properties中出现license文件.再运行,OK! 注意: license文件一定是 ...

  2. 《理解 ES6》阅读整理:函数(Functions)(三)Function Constructor & Spread Operator

    增强的Function构造函数(Increased Capabilities of the Function Constructor) 在Javascript中Function构造函数可以让你创建一个 ...

  3. spread表格树实现

    先上图看下效果图: 玩表格的朋友应该对Component和C1Flexgrid并不陌生吧.其实我也有用C1和DGV扩展了一个表格树,占有内存小,效率也可以,但是UI是硬伤,中规中矩,不美观.我上面是基 ...

  4. spread语法解析与使用

    @[spread, javavscript, es6, react] Spread语法是ES6中的一个新特性,在需要使用多参数(函数参数).多元素(数组迭代)或者多变量(解构赋值)的地方使用sprea ...

  5. Beat the Spread![HDU1194]

    Beat the Spread! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  6. C#打印页面的纸张设置问题Spread表格控件

    这段时间学习spread控件,用到打印设置上边,其他的设置都还好说,但是打印纸张的大小,纸张类型等把我折腾的够呛,找了半天才找到,记录下来备查. 1.打印纸张类型: System.Drawing.Pr ...

  7. [ES6] 13. Using the ES6 spread operator ...

    The spread operator (...) allows you to "explode" an array into its individual elements. S ...

  8. Spread 之自定义对角线cellType源码: DiagonalCellType

    最新的SpreadWinform提供了多达24种CellType类型,下面的这2篇博文对新增了GcTextBoxCellType和GcDateTimeCellType单元格格式做了比较详细的说明. & ...

  9. [ES6] 23. Rest Parameters & Spread Parameters

    Rest Parameters: In ES5, when you don't know how many paramters will be passed in, you can use argum ...

随机推荐

  1. python代码实现购物车(django的redis与vue)

    安装模块 pip install django-redis 后端代码 # 购物车 class CartView(APIView): # 初始化函数 def __init__(self): self.c ...

  2. 吴裕雄--天生自然 PYTHON3开发学习:函数

    def 函数名(参数列表): 函数体 # 计算面积函数 def area(width, height): return width * height def print_welcome(name): ...

  3. C#通过窗体应用程序操作数据库(增删改查)

    为了体现面向对象的思想,我们把“增删改查”这些函数封装到一个数据库操作类里: 为了便于窗体程序与数据库之间进行数据交互,我们建一个具有数据库行数据的类,通过它方便的在窗体程序与数据库之间传输数据: 我 ...

  4. VScode安装后的插件安装

    杭州SEO:Chinese(Simplified) Language Pack for Visual Stidio Code 中文汉化包 对于一些英文不太好的小伙伴,上来第一件事肯定是要切换成中文语言 ...

  5. 实现TabControl 选项卡首个标签缩进的方法

    借用一张网图说明需求 在网上找了一圈,没有找到直接通过API或者重绘TabControl 的解决方法,最后灵机一动想到了一个折(tou)中(lan)的解决办法 Tab1.TabPages.Clear( ...

  6. python 元祖参数和map参数

    1.对于元组形参数, def func(a,b,c): pass 可以采用一个元组的形式调用, params = (1,2,'c') 如果直接传递运行会抛出异常,正确的调用形式为 func(*para ...

  7. 关于Apache Commons-Lang3的使用

    在日常工作中,我们经常要使用到一些开源工具包,比如String,Date等等.有时候我们并不清楚有这些工具类的存在,造成在开发过程中重新实现导致时间浪费,且开发的代码质量不佳.而apache其实已经提 ...

  8. 快手为什么要全资收购Acfun?

    近日据媒体报道,快手已完成对「Acfun」以下简称A站的全资收购.未来A站仍将保持独立品牌和独立运营以及原有团队的独立发展.近年来,A站可谓命途多舛.相比隔壁B站风风光光顺利上市且成为真正的二次元大本 ...

  9. Spring的分模块开发的配置

    参考:Spring学习笔记-Spring的分模块开发的配置 在加载配置文件的时候,加载多个 例如把applicationContext.xml配置文件中的关于集合配置的部分剪切到application ...

  10. css样式表---样式表分类、选择器

    一.样式表分三类: 1.内联样式表.——放在元素的开始标记中.——只对当前元素起作用.<input name="txt" style="border:0px; bo ...