一切设计都是指向设计目标的权衡。

这句话是我在大二做“FSC”的时候琢磨出来的,当时车队刚成立,总共就11个人,我承担了悬架的全部任务并且参与了各组的主要零部件的设计。在设计过程中,越来越体会到一个产品作为一整个系统而言,其某些设计参数在各个子系统中都会有影响,我们想要面面俱到是很难的,必须针对设计目标作出一些取舍,这就引出了我们所要面对的问题——多目标优化。

多目标函数优化设计

Part 1 多目标优化问题

作为之前单目标优化设计的推广,其核心点在于目标函数从一个变为多个。

再次回顾单目标优化设计的数学模型:




java多目标函数代码 多目标函数优化_数学模型


多目标优化设计数学模型的一般表达式为:


java多目标函数代码 多目标函数优化_多目标_02


多目标优化设计解的类型:


java多目标函数代码 多目标函数优化_多目标_03


Part 2 线性组合法

可以构造出所有目标函数的加权和函数作为评价函数,即给每一个


乘以相应的权重,来控制每一个


对最终结果的影响程度。这样就构造了一个把多个目标转化为单个数值目标的评价函数,将多目标规划问题归结为求解相应评价函数的数值最优化问题(评价函数法)。


加权系数需要满足的条件为:


java多目标函数代码 多目标函数优化_评价函数_04


所以问题就转化为:


java多目标函数代码 多目标函数优化_数学模型_05


Part 3 理想点法

如果我们能求出各个目标


在可行域内的最优解


,那么


对于


来说是最理想点,那么


可以用来描述设计点


的函数值与理想点对应函数值(理想值)的远近程度。


那么,我们可以将所有目标函数在某一点


处时,与所有理想点


的远近程度加权求和,构造一个评价函数,同样将多个目标转化为单个数值目标。


即:


(加权相对离差)


所以问题就转化为:


java多目标函数代码 多目标函数优化_多目标_06


Part 4 分目标乘除法

按照各分目标函数的性质,将其分为两类:一类是目标函数值函数值越小越好(如成本、重量、工时等等);另一类表现为目标函数值越大越好(如利润、产量等)

如果前者有s项,后者有q-s项,用两类分目标函数求和的比值作为评价函数:


java多目标函数代码 多目标函数优化_评价函数_07


所以问题就转化为:


java多目标函数代码 多目标函数优化_数学模型_08