2336426014 发表于 2018-8-9 00:04

不看会后悔系列——国赛加分算法之遗传算法(下)

本帖最后由 2336426014 于 2018-8-9 00:08 编辑

        在每年的 国赛赛题中,几乎都会遇到多约束非线性规划问题 。 组建合理的多约束非线性规划数学模型不容易,如何精确求解这类同題也不容易 。 求解这类同题,目前的方法有很多种,比如 MATLAB优化工具箱甚至穷举法 。MATLAB优化工具箱求解此类难题精度不够;穷举法 效率太低。 目前的首选方法是 GA和1ingo和lindo软件。GA方法求解多约束非线性目标规划被广泛应用于各个领域。 例如,通用电气公司和 Rensselaer综合技术学院的组研究人员成功地将遗传算法用到一种商业客机使用的高函道比喷气发动机的涡轮的设计之中 。 这种涡轮是由多级静止和旋转的叶扇组藤安装在近似lll简形的願道里,是发动机开发计划的核心部分。 涡轮设计至少涉及1oo个变量 ,每个变量的取值范国各不相同,由此形成10^387以上个点的搜索空间。 涡轮设计方案的“适应度”取决于它满足一组限制的程度如何,这组限制有50个左右,如内壁和外壁的形状.函道内各点处燃气气流的压力、速度和扰动情况等。在一般情況下,一个工程师独立工作获得1个满意的设计结果大约要用几周的时间。 运行基于GA的发动机模拟软件和专家家系统有助于引导设计人员找出有意义的修改,工程师用这样的专家系统不到一天就可以完成一种设计。

        上次的例题及代码我们分析的是无约束目标函数最大值,而这次我们要做的是多约束非线性目标规划

        这次的操作比较简单,首先看一下目标函数及其三维图(我画的坐标系没有小于0部分):



        从这个角度看哈,首先可以看出它沿着某一个方向是递增的,考虑到而且要么同时正,同时负的时候函数可以取很大或者很小的值(st的限制看出来的,二条件同正下x1无穷大那函数无穷,同负下x1无穷小那就是负无穷,所以最小值应该就是图像所显示的,在以原点为中心,半径100的圆圈内)

       我们要找这个函数的极小值,也就是要找适应度最低的“染色体组”,所以接下来的事情,就是上个帖子的套路一样,编码,解码,适应度,迭代,新群体。
首先写出我们的新函数:

其次是我们的主程序:


程序结果呢就是最小值是0.0246,坐标位置为(-9.489,1.052),的确有那么点意思哈

       但是这远没有结束,我们的遗传算法貌似通过这种“爬山”的方式到达最低或者最高,但是我们只有说迭代次数越大,它是全局最优的概率才打,也就是说不管你迭代多少次,总是有几率证明它可能不是全局最优。比如因为迭代次数少陷入局部最优,或者爬山的能力差,所以呢,为了解决这些问题,我们就引入了遗传退火算法(当~当~当~当~~~~)。

操作流程如下:


考虑到这个需要懂退火算法,所以暂时不细说,只是给看一下流程图,与传统的遗传不同点在于:增加了对优秀个体的退火这一步骤,让优秀个体概率性的进行复制、变异。

       当然,我们论文里面就用传统的遗传算法其实也可以说足够了,为啥不怎么推荐退火呢,主要是 退货程序极其麻烦,占用内存,就怕一退就是一天,那岂不是凉凉,所以如果非专业研究,我们其实传统遗传退火就可以了,一个数无约束目标规划,另一个就是多约束目标规划。这样的话,国赛论文逼格高大上。拿奖分分钟!




3963095 发表于 2018-8-9 09:18

66666666666666666666666666666666666666666666666666666666666666666666666666666

蓝叉叉123 发表于 2018-8-9 15:36

发表回复

ojbk 发表于 2018-8-9 22:30

太感谢了太感谢了

fjdieb 发表于 2018-8-10 08:04

6666666666666

qfbnifs204 发表于 2018-8-13 23:15

新人注意可以回复帖子赚体力

2670120439 发表于 2018-8-14 16:33

6666666666666666666666666666

2597424529 发表于 2018-8-16 08:55

6666很不错

1547624961 发表于 2018-8-16 11:08

感谢分享

1547624961 发表于 2018-8-20 22:52

66666666666666
页: [1] 2
查看完整版本: 不看会后悔系列——国赛加分算法之遗传算法(下)