首页
学习
活动
专区
工具
TVP
发布

SAS Genetic Algorithm

人工智能的核心是各种机器学习算法,如下图所示:

遗传算法是一种通过模拟自然进化过程搜索最优解的方法,有着其他算法无法比拟的优势,例如当目标函数不连续不可导时,或者所求方案是一个整数序列。

遗传算法通常包括以下几步:

编码

构造目标函数

选择初代种群

交叉

变异

具体解释可参考相关资料。

接下来通过一个实例让大家对遗传算法有个感性认识。

假设一个人想去10个城市(C1 - C10)旅游,从C1出发,最后返回C1,下图是这10个城市之间往返的费用(单位百元),考虑现实情况,两个城市之间的往返的费用可能不相等,所以下图中是一个非对称矩阵,例如C1到C2花费400元,C2到C1花费300元:

现在的问题是哪条路线花费最少?

如果选择从C1到C2,C2到C3,依次直到C10,最后C10到C1,如下图所示:

需要花费5400元,SAS程序如下:

这只是一条路线。所有路线共10的阶乘条,也就是3628800条。如果让计算机用穷尽算法的话,需要计算三百六十多万次,通过比较每次的总费用,最后得到最佳路线。虽然现代计算机性能先进,但穷尽算法毕竟不是最优选择,尤其当运算量超出计算机性能时,比如神经网络中,节点数达到亿级时。

下面给出的是如何用SAS程序来实现遗传算法:

看上去很easy对不对?确实如此,SAS简化了很多操作。对于这段程序里一些语法解释,可以参考SAS Help。

下图是遗传算法给出的最佳路线:

沿着这条路线,总共花费4500元(比上条路线省了900元),SAS程序如下(这里仅作展示用,遗传算法的结果已经给出了总花费):

下图给出的是遗传算法的计算过程:

可以看出遗传算法通过11次迭代就给出了最佳路线,而不用计算几百万次。

需要提到的是现在SAS提供的遗传算法尚处于试验阶段,如果要应用到实践中,需要注意到这一点。遗传算法虽然有其自身的优点,但依然也有相应的不足之处:首先不能保证一定收敛到全局最优,有可能只是局部最优;其次遗传算法对遗传算子和变异概率的选择比较敏感,所以对相应的参数可能需要多次调试。

这次例中涉及的是费用问题,可以延伸到距离问题,或者危险系数问题。比如给巡航导弹规划最佳路线,达到飞行路线最短,又能最大程度避开敌方雷达探测和防空火力威胁。计算机运用遗传算法能瞬间给出答案,如果换做人工计算,等结果出来,估计战争都结束了。

希望这篇文章能激发小伙伴们对统计学和人工智能的兴趣!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180505G1GVAD00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券