遗传算法(数模案例详解)

“物竞天择,适者生存“,进化界的名言没想到也能用在算法里,不得不承认每个算法工程师也是天马行空的魔法师。由于经常参加数学煎馍美食烹饪大赛,因此时不时需要和启发式算法打交道,这些智能算法的思想充满着活力和开拓性,coding的时候甚至感觉自己像上帝一样为自己的世界制定着规则,不禁连连感叹。

今天开启智能算法篇章,首先上场的是遗传大法。


Ω

启发式算法的目的往往是寻求一个优化模型的最优解,但由于模型的过于庞大或是复杂,想要把精确的最优解揪出来需要花费大量的时间和算力。那么我们退而求其次,争取尽可能逼近最优解,接受一定范围的误差,从而有了各种启发式算法八仙过海。

遗传算法,顾名思义,我们将每一个可行解看作为一个个体,让这些个体生存繁衍,我们作为上帝制定出如何计算个体对于环境适应值(目标函数)的规则。接下来就交给大自然去选择,经过一代一代的淘汰进化,最终出现在我们面前就是适应度最高的个体们。

那么繁衍淘汰这么复杂的生理过程如何在计算机内表达呢,我们知道繁衍的本质就是基因的交换重组,而基因的本质是对遗传信息的编码,计算机最擅长的莫过于此。因此我们首先需要将每个个体(可行解)进行编码为基因串,为了贴合计算机并方便起见一般都是转换为二进制编码,那么繁衍的过程很显然就是对基因进行切片重组。问题是大自然如果只靠单纯的基因重组繁衍后代,那么物种的多样性将被限制,之所以物种能够进化一方面是自然选择,另外一个重要的机制是变异,变异使得原本的基因片段得以改变,从而物种朝着不同的方向发展(搜索),大大增加了算法的鲁棒性。

下面是一个数模比赛中遇到的简化版案例。


ƺ

简单地说,有一些交易订单,首先根据每个订单的f(\alpha,\beta)计算结果对所有订单进行降序排序(其中

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值