本发明涉及多目标优化算法领域,具体涉及一种基于层级、个体间距和惩罚策略的非支配解排序方法及系统。
背景技术:
目前,许多复杂系统的设计都会涉及到多目标优化,即在满足相应设计约束条件下,寻求使得各个设计目标达到最优的设计方案。对于多目标设计优化问题,其难点在于如何在相互冲突或者不能同时达到最优的目标之间寻求折中方案。为此,研究人员提出了非支配解的概念,非支配解的特点是无法在改进任何目标的同时,不削弱其他的任何一个目标。
基于非支配解的概念,研究人员提出了各类多目标优化算法,例如非支配解排序算法和向量评价遗传算法等。这些算法的重点在于对非支配解个体分配合理的适应值,以提高所计算得到的非支配解的收敛性、连续性、均匀性和宽广性。
下面对上述算法在计算时需要用到解群s进行说明。
s由n个向量解
上述算法的计算过程一般为:
一、判断s中的每一个向量解是否满足约束条件(约束条件的具体内容和数量自行设定),将符合约束条件的向量解放入解集a,将不符合约束条件的向量解放入解集b。
二、按照非支配解的分层方式,对解集a中的所有向量解进行分层,具体为:
计算解集a中的每个向量解
参见图1所示,根据每个向量解的2个目标函数值,对每个向量解进行分层,前一层的向量解在后一层的向量解之前,如图1所示,第一层非支配解(标记为“1”)排序在第二层非支配解(标记为“2”)之前,第二层非支配解(标记为“2”)排序在第三层非支配解(标记为“3”)之前,依此类推。
根据每个向量解的2个目标函数值,对每个向量解进行分层的流程包括:根据每个向量解的fi1和fi2形成直角坐标系,将每个向量解放入直角坐标系中,根据每个向量解位于直角坐标系中的位置进行分层。
三、对每一层的每个向量解均分配同样的适应值,前一层向量解的适应值,大于后一层向量解的适应值;对解集b的每个向量解均分配最小的适应值。
四、按照适应值的大小排列顺序,对s中的每个向量解进行排序。
五、按照适应值的大小选取向量解。
但是,上述计算过程存在以下缺陷:
(1)在实际应用中,位于同层的不同向量解周围会存在不同数量的其他向量解,而上述计算过程对每一层的每个向量解均分配同样的适应值;由于不同向量解周围的区域密度是不同的(即不同向量解周围的其他的向量解的数量不同),因此为每个向量解分配相同的适应值,会降低稀疏区域的向量解的连续性(即稀疏区域的向量解周围的其他向量解难以被找到),进而降低了非支配解集合的精度和连续性。
(2)对于解集b而言,虽然解集b中的所有向量解均不满足约束条件,但解集b的向量解不满足约束条件的数量不同,对于不满足约束条件的数量较少的向量解而言,该向量解是能够被选取的,而上述计算过程对解集b的每个向量解均分配最小的适应值,这会使得不满足约束条件的数量较少的向量解难以被选取,降低了算法的收敛性。
技术实现要素:
针对现有技术中存在的缺陷,本发明解决的技术问题为:如何通过合理的分配的适应值,来提高非支配解的精度和连续性,如何在对非支配解排序后提高算法的收敛性。
为达到以上目的,本发明提供的基于层级、个体间距和惩罚策略的非支配解排序方法,包括以下步骤:
s1:判断解群s中的每一个向量解是否满足约束条件,将符合约束条件的向量解放入解集a,将不符合约束条件的向量解放入解集b,对解集a中的向量解进行处理时,转到s2;对解集b中的向量解进行处理时,转到s5;
s2:根据按照非支配解的分层关系,对解集a中的所有向量解进行分层,转到s3;
s3:计算解集a中的每个向量解,与同层相邻的向量解之间的个体值间距,转到s4;
s4:按照解集a中的每个向量解的分层顺序、以及同层向量解的个体值间距的大小,对解集a中的所有向量解进行排序,形成第一非支配解集合,转到s7;
s5:根据解集b中向量解不满足约束条件的数量,计算解集b中每个向量解的惩罚值e,则e=e1+e2+…+eq,其中e1至eq各代表1个向量解不满足的约束条件的相对惩罚值,转到s6;
s6:按照解集b中向量解的惩罚值从小到大的顺序,将解集b中的每个向量解进行排序,形成第二非支配解排序集合,转到s7;
s7:将第二非支配解排序集合放置于第一非支配解排序集合之后,形成整体非支配解排序集合;按照整体非支配解排序集合中的向量解排列顺序,为整体非支配解排序集合中的所有向量解分配由大到小的适应值。
本发明通过的基于层级、个体间距和惩罚策略的非支配解排序系统,包括解群分集模块、向量解分层模块、个体值间距计算模块、第一非支配解集合排序模块、惩罚值计算模块、第二非支配解集合排序模块和适应值分配模块;
解群分集模块用于:判断解群s中的每一个向量解是否满足约束条件,将符合约束条件的向量解放入解集a,将不符合约束条件的向量解放入解集b,对解集a中的向量解进行处理时,向向量解分层模块发送向量解分层模块信号;对解集b中的向量解进行处理时,向惩罚值计算模块发送惩罚值计算信号;
向量解分层模块用于:收到向量解分层模块信号后,根据按照非支配解的分层关系,对解集a中的所有向量解进行分层,向个体值间距计算模块发送个体值间距计算信号;
个体值间距计算模块用于:收到个体值间距计算信号后,计算解集a中的每个向量解,与同层相邻的向量解之间的个体值间距,向第一非支配解集合排序模块发送第一非支配解集合排序信号;
第一非支配解集合排序模块用于:收到第一非支配解集合排序信号后,按照解集a中的每个向量解的分层顺序、以及同层向量解的个体值间距的大小,对解集a中的所有向量解进行排序,形成第一非支配解集合,向适应值分配模块发送第一非支配解集合排序完成信号;
惩罚值计算模块用于:收到惩罚值计算信号后,根据解集b中向量解不满足约束条件的数量,计算解集b中每个向量解的惩罚值e,则e=e1+e2+…+eq,其中e1至eq各代表1个向量解不满足的约束条件的相对惩罚值,向第二非支配解集合排序模块发送第二非支配解集合排序信号;
第二非支配解集合排序模块用于:收到第二非支配解集合排序信号后,按照解集b中向量解的惩罚值从小到大的顺序,将解集b中的所有向量解进行排序,形成第二非支配解排序集合,向适应值分配模块发送第二非支配解集合排序完成信号;
适应值分配模块用于:收到第一非支配解集合排序完成信号和第二非支配解集合排序完成信号后,将第二非支配解排序集合放置于第一非支配解排序集合之后,形成整体非支配解排序集合;按照整体非支配解排序集合中的向量解排列顺序,为整体非支配解排序集合中的所有向量解分配由大到小的适应值。
与现有技术相比,本发明的优点在于:
参见本发明s2至s4可知,本发明能够对解集a中位于同一层的每个向量解计算个体值间距、并根据个体值间距对解集a的每个向量解进行排序;与此同时,参见本发明s5至s6可知,本发明还对解集b中每个向量解的惩罚值、并根据个体值间距对解集b的每个向量解进行排序。在此基础上,参见本发明s7可知,本发明按照整体非支配解排序集合中向量解的排列顺序,为整体非支配解排序集合中的所有向量解分配由大到小的适应值。
由此可知:
(1)与现有技术中对每一层的每个向量解均分配同样的适应值相比,本发明根据每个向量解的个体值间距,有针对性的设置了相应的适应值,间距越大的向量解的适应值越大,提高了稀疏区域的向量解的连续性(即便于获取稀疏区域的向量解周围的其他向量解),进而提高了非支配解集合的精度和连续性。
(2)与现有技术中对解集b的每个向量解均分配最小的适应值相比,本发明根据每个向量解的惩罚值,有针对性的设置了相应的适应值,惩罚值越小的向量解的适应值越大,进而增大了后续获取惩罚值较小的向量解的概率,提高了整体算法的收敛性。
附图说明
图1为现有技术中对解集a中的所有向量解进行分层的示意图;
图2为本发明实施例中基于层级、个体间距和惩罚策略的非支配解排序方法的流程图;
图3为本发明实施例s3中个体值间距的计算示意图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
参见图2所示,本发明实施例中的基于层级、个体间距和惩罚策略的非支配解排序方法,包括以下步骤:
s1:判断解群s中的每一个向量解
s1中的约束条件的数量为q个,具体为:
例如:约束条件为3个:
1、价格范围
2、质量精度值范围
3、尺寸范围
s2:根据按照非支配解的分层关系,对解集a中的所有向量解进行分层,转到s3。
s2的具体流程为:
计算解集a中的每个向量解
根据每个向量解的2个目标函数值,对每个向量解进行分层,前一层的向量解在后一层的向量解之前,如图1所示,第一层非支配解(标记为“1”)排序在第二层非支配解(标记为“2”)之前,第二层非支配解(标记为“2”)排序在第三层非支配解(标记为“3”)之前,依次类推。
根据每个向量解的2个目标函数值,对每个向量解进行分层的流程包括:根据每个向量解的fi1和fi2形成直角坐标系,将每个向量解放入直角坐标系中,根据每个向量解位于直角坐标系中的位置进行分层。
s3:计算解集a中的每个向量解,与同层相邻的向量解之间的个体值间距,转到s4。
s3中定义需要计算的向量解为m,与m同层且相邻2个向量解为l和n(即同层向量解的排列顺序为l、m、n);参见图3所示,m与l、n之间的个体值间距dm的计算公式为:
s4:按照解集a中的每个向量解的分层顺序、以及同层向量解的个体值间距的大小,对解集a中的所有向量解进行排序,形成第一非支配解集合,转到s7。
s4中对解集a中的所有向量解进行排序的具体排序规则为:前一层的所有向量解在后一层的所有向量解之前;同层的所有向量解中,个体值间距大的向量解在个体值间距小的向量解之前。
s5:根据解集b中向量解不满足约束条件的数量,计算解集b中每个向量解的惩罚值e,则e=e1+e2+…+eq,其中e1至eq各代表1个向量解不满足的约束条件的相对惩罚值;例如向量解不满足的约束条件为:约束条件1(相对惩罚值为e1)、约束条件2(相对惩罚值为e2)和约束条件3(相对惩罚值为e3),则e=e1+e2+e3,转到s6。
s5中向量解不满足的约束条件j(j=1,2,…,q)的相对惩罚值e(因为热此处为通用公式所以没有对应的约束条件标号)的计算公式为:
s6:按照解集b中向量解的惩罚值从小到大的顺序,将解集b中的所有向量解进行排序,形成第二非支配解排序集合,转到s7。
s7:将第二非支配解排序集合放置于第一非支配解排序集合之后,形成整体非支配解排序集合;按照整体非支配解排序集合中的向量解排列顺序,为整体非支配解排序集合中的所有向量解分配由大到小的适应值。
本发明实施例中的基于层级、个体间距和惩罚策略的非支配解排序系统,包括解群分集模块、向量解分层模块、个体值间距计算模块、第一非支配解集合排序模块、惩罚值计算模块、第二非支配解集合排序模块和适应值分配模块。
解群分集模块用于:判断解群s中的每一个向量解是否满足约束条件,将符合约束条件的向量解放入解集a,将不符合约束条件的向量解放入解集b,对解集a中的向量解进行处理时,向向量解分层模块发送向量解分层模块信号;对解集b中的向量解进行处理时,向惩罚值计算模块发送惩罚值计算信号。
解群分集模块中的约束条件的数量为q个:
向量解分层模块用于:收到向量解分层模块信号后,根据按照非支配解的分层关系,对解集a中的所有向量解进行分层,向个体值间距计算模块发送个体值间距计算信号。
向量解分层模块的工作流程包括:计算解集a中的每个向量解
个体值间距计算模块用于:收到个体值间距计算信号后,计算解集a中的每个向量解,与同层相邻的向量解之间的个体值间距,向第一非支配解集合排序模块发送第一非支配解集合排序信号。
个体值间距计算模块的工作流程包括:定义需要计算的向量解为m,与m同层且相邻2个向量解为l和n;m与l、n之间的个体值间距dm的计算公式为:
其中
第一非支配解集合排序模块用于:收到第一非支配解集合排序信号后,按照解集a中的每个向量解的分层顺序、以及同层向量解的个体值间距的大小,对解集a中的所有向量解进行排序(排序规则为:前一层的所有向量解在后一层的所有向量解之前;同层的所有向量解中,个体值间距大的向量解在个体值间距小的向量解之前),形成第一非支配解集合,向适应值分配模块发送第一非支配解集合排序完成信号。
惩罚值计算模块用于:收到惩罚值计算信号后,根据解集b中向量解不满足约束条件的数量,计算解集b中每个向量解的惩罚值e,则e=e1+e2+…+eq,其中e1至eq各代表1个向量解不满足的约束条件的相对惩罚值,向第二非支配解集合排序模块发送第二非支配解集合排序信号。
惩罚值计算模块中向量解不满足的约束条件j(j=1,2,…,q)的相对惩罚值e的计算公式为:
第二非支配解集合排序模块用于:收到第二非支配解集合排序信号后,按照解集b中向量解的惩罚值从小到大的顺序,将解集b中的所有向量解进行排序,形成第二非支配解排序集合,向适应值分配模块发送第二非支配解集合排序完成信号。
适应值分配模块用于:收到第一非支配解集合排序完成信号和第二非支配解集合排序完成信号后,将第二非支配解排序集合放置于第一非支配解排序集合之后,形成整体非支配解排序集合;按照整体非支配解排序集合中的向量解排列顺序,为整体非支配解排序集合中的所有向量解分配由大到小的适应值。
需要说明的是:本发明实施例提供的系统在进行模块间通信时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
进一步,本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。