深入理解遗传算法(三)

欢迎点击「算法与编程之美」↑关注我们!

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

为更好理解本文,强烈建议优先阅读:

深入理解遗传算法(一)

深入理解遗传算法(二)

问题描述

首先来看一个线性方程组的求解问题。

已知N元一次方程y = w1x1 + w2x2 + w3x3 + w4x4 + w5x5 + w6x6

其中给定 x1, …, x6的数据如下:

x1

x2

x3

x4

x5

x6

y

4

-2

7

5

11

1

44.1

将列表中的x1, …, x6代入到上述方程得到

y’ = 4w1 - 2w2 + 7w3 + 5w4 + 11w5 + w6

试求出一组w1,w2, …, w6使得y’的值尽可能的接近于y.

如何淘汰

假设现在有六组w值如下表所示并且给出了对应的y’的计算值,如何从这六组中选择最优的三组,即淘汰剩余三组?

w1

w2

w3

w4

w5

w6

y’

2.4

0.7

8

-2

5

1.1

110.3

-0.4

2.7

5

-1

7

0.1

100.1

-1

2

2

-3

2

0.9

13.9

4

7

12

6.1

1.4

-4

127.9

3.1

4

0

2.4

4.8

0

69.2

-2

3

-7

6

3

3

3

y’ = 4w1 - 2w2 + 7w3 + 5w4 + 11w5 + w6

= 110.3

根据上述公式,可快速计算每一组w值的y’。

给出一个适应性函数定义如下:

则F(c)的值越大,|y’ - y|的差距越小,表明该组值的效果越好。

w1

w2

w3

w4

w5

w6

y’

F(c)

2.4

0.7

8

-2

5

1.1

110.3

0.015

-0.4

2.7

5

-1

7

0.1

100.1

0.018

-1

2

2

-3

2

0.9

13.9

0.033

4

7

12

6.1

1.4

-4

127.9

0.012

3.1

4

0

2.4

4.8

0

69.2

0.0398

-2

3

-7

6

3

3

3

0.024

根据F(c)的大小,将保留最大的三组值,剩下的三组即为淘汰。

如何交叉

有了以上的三组存活的值,接下来将通过交叉方式生成三组新的值。

w1

w2

w3

w4

w5

w6

A

-1

2

2

-3

2

0.9

B

3.1

4

0

2.4

4.8

0

C

-2

3

-7

6

3

3

具体的交叉方式是:

  1. A的前三位和B的后三位;

w1

w2

w3

w4

w5

w6

A

-1

2

2

-3

2

0.9

B

3.1

4

0

2.4

4.8

0

C

-2

3

-7

6

3

3

  1. B的前三位和C的后三位;

w1

w2

w3

w4

w5

w6

A

-1

2

2

-3

2

0.9

B

3.1

4

0

2.4

4.8

0

C

-2

3

-7

6

3

3

  1. C的前三位和A的后三位;

w1

w2

w3

w4

w5

w6

A

-1

2

2

-3

2

0.9

B

3.1

4

0

2.4

4.8

0

C

-2

3

-7

6

3

3

通过上述的交叉方式,将可以得到新的三组解。

如何变异

接下来将对上述新产生的三组解进行变异,具体的变异方法为将第五位的值变为一半,最后得到的新值为:

w1

w2

w3

w4

w5

w6

-1

2

2

-3

2

0.9

3.1

4

0

2.4

4.8

0

-2

3

-7

6

3

3

-1

2

2

2.4

2.4

0

3.1

4

0

6

1.5

3

-2

3

-7

-3

1

0.9

底下的三组解是通过交叉、变异产生的新的三组解。此处没有选择所有的值都变异,而继续保持上一代中的三个值不变,原因在于担心完全变异后的结果也许比上一代更差。

结语

遗传算法的核心就是定义一个适应性函数,从一组解中淘汰一部分,然后从存活下来的解中,实施交叉、变异操作生成新的解,然后再不断的重复此过程,直到满足某个阀值时结束。

拓展阅读:

深入理解遗传算法(一)

深入理解遗传算法(二)

从1到100求和学算法思维(一)

从1到100求和学算法思维(二)

从1到100求和学算法思维(三)

从1到100求和学算法思维(四)

从1到100求和学算法思维(五)

从1到100求和学算法思维(六)

where2go 团队


微信号:算法与编程之美

温馨提示:点击页面右下角“写留言”发表评论,期待您的参与!期待您的转发!

本文分享自微信公众号 - 算法与编程之美(algo_coding)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技大本营的专栏

继AutoML后,第四范式发布软硬一体化AI集成系统SageOne

6 月 20 日,AI产品和服务提供商第四范式宣布发布最新 AI 系列产品SageOne Appliance软硬一体化AI集成系统,性能较市面开源工具或GPU解...

22420
来自专栏AI科技大本营的专栏

当今主流分割网络有哪些?12篇文章一次带你看完

本文的12篇文章总结了当前主流的分割网络及其结构,涵盖从编解码结构到解码器设计;从感受野到多尺度融合;从CNN到RNN与CRF;从2D分割到3D分割;从语义分割...

14030
来自专栏腾讯高校合作

报名启动|挑战AI种番茄,加入腾讯×WUR国际智慧温室种植挑战赛(第二届)

本文转载自腾讯AI实验室 去年 AI 种黄瓜,收成媲美有20年经验农业专家,今年新任务来了——种番茄! 腾讯宣布与欧洲顶级农业大学 WUR(荷兰瓦赫宁根大学)...

16010
来自专栏AI科技大本营的专栏

618狂欢过后,冷静揭秘亚马逊和淘宝如何用算法让你剁手

场景描述:继「双十一」之后,京东也借着店庆日,制造了与其遥相呼应的「618」年中购物狂欢节。而各大电商除了用各种营销手段吸引顾客外,也在利用智能推荐不断影响着用...

14620
来自专栏机器之心

万万没想到,谷歌给Dropout申请了专利,而且刚刚生效

我们可以在 Google Patents 上看到这项技术的专利详情页面:https://patents.google.com/patent/US9406017B...

17420
来自专栏边缘计算

在边缘:技术驱动边缘计算和挑战未来

作者:Weisong Shi 主要负责韦恩州立大学移动和互联网系统实验室(MIST)与Wireless Health Initiative (WHI)。他对许多...

9620
来自专栏AI科技大本营的专栏

基于GAN的图像水印去除器,效果堪比PS高手

简介:李翔,国内某互联网大厂AI民工,前携程酒店图像技术负责人,计算机视觉和深度学习重度爱好者,在ICCV和CVPR等会议上发表论文十余篇。

19830
来自专栏小詹同学

想本科入读人工智能专业,这篇文章送给准备填志愿的你

在计算机专业和人工智能日益火爆的当下,很多人对这两个专业又是好奇又是憧憬。对此,清华大学刘知远教授近日在知乎上分享了一些内容,以帮助考生更加理性地选择专业,希望...

12930
来自专栏边缘计算

未来的数字转型之战将在边缘展开

Gartner最近发布的“工业物联网平台的魔力象限”概述了企业如何利用物联网(IoT)推动其数字化转型计划。Gartner认为,“到2020年,物联网(IoT)...

7820
来自专栏机器之心

这是一篇关于如何成为一名AI算法工程师的长文

经常有朋友私信问,如何学 python 呀,如何敲代码呀,如何进入 AI 行业呀?

18750

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励