<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<meta name="generator" content="pdf2htmlEX">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<link rel="stylesheet" href="https://static.pudn.com/base/css/base.min.css">
<link rel="stylesheet" href="https://static.pudn.com/base/css/fancy.min.css">
<link rel="stylesheet" href="https://static.pudn.com/prod/directory_preview_static/626c458c7ae5df2aa72bdc72/raw.css">
<script src="https://static.pudn.com/base/js/compatibility.min.js"></script>
<script src="https://static.pudn.com/base/js/pdf2htmlEX.min.js"></script>
<script>
try{
pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});
}catch(e){}
</script>
<title></title>
</head>
<body>
<div id="sidebar" style="display: none">
<div id="outline">
</div>
</div>
<div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/626c458c7ae5df2aa72bdc72/bg1.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x1 h3 y2 ff1 fs0 fc0 sc0 ls0 ws0">遗传算法及其<span class="_ _0"> </span><span class="ff2 sc1">MA<span class="_ _1"></span>TLAB<span class="_ _0"> </span><span class="ff1 sc0">实现</span></span></div><div class="t m0 x1 h4 y3 ff1 fs1 fc1 sc1 ls0 ws0">主要参考书:</div><div class="t m0 x1 h5 y4 ff3 fs2 fc1 sc1 ls0 ws0">MA<span class="_ _2"></span>TLAB 6.5 <span class="ff1 sc2">辅助优化计算与设计 <span class="fc0 sc0">飞思科技产品研发中心</span>编著 </span></div><div class="t m0 x1 h5 y5 ff1 fs2 fc1 sc2 ls0 ws0">电子工业出版社 <span class="ff3 sc1">2003.1</span></div><div class="t m0 x1 h5 y6 ff1 fs2 fc1 sc2 ls0 ws0">遗传算法及其应用 <span class="fc0 sc0">陈国良</span>等编著</div><div class="t m0 x1 h5 y7 ff1 fs2 fc1 sc2 ls0 ws0">人民邮电出版社 <span class="ff3 sc1">1996.6</span></div><div class="t m0 x1 h5 y8 ff1 fs2 fc0 sc0 ls0 ws0">主要内容:</div><div class="t m0 x1 h5 y9 ff4 fs2 fc2 sc1 ls0 ws0"><span class="_ _3"> </span><span class="ff1 fc1 sc2">遗传算法简介</span></div><div class="t m0 x1 h5 ya ff4 fs2 fc2 sc1 ls0 ws0"><span class="_ _3"> </span><span class="ff1 fc1 sc2">遗传算法的<span class="_ _4"> </span><span class="ff3 sc1">MA<span class="_ _2"></span>TLAB<span class="_ _4"> </span><span class="ff1 sc2">实现</span></span></span></div><div class="t m0 x1 h5 yb ff4 fs2 fc2 sc1 ls0 ws0"><span class="_ _3"> </span><span class="ff1 fc1 sc2">应用举例</span></div><div class="t m0 x2 h4 yc ff1 fs1 fc1 sc1 ls0 ws0">在工业工程中<span class="ff5">,</span>许多最优化问题性质十分复杂<span class="ff5">,</span>很难用</div><div class="t m0 x1 h4 yd ff1 fs1 fc1 sc1 ls0 ws0">传统的优化方法来求解<span class="ff5">.</span>自<span class="_ _5"> </span><span class="ff5">1960<span class="_ _5"> </span></span>年以来<span class="ff5">,</span>人们对求解这类难</div><div class="t m0 x1 h4 ye ff1 fs1 fc1 sc1 ls0 ws0">解问题日益增加<span class="ff5">.</span>一种模仿生物自然进化过程的、被称为“</div><div class="t m0 x1 h4 yf ff1 fs1 fc1 sc1 ls0 ws0">进化算法(<span class="ff5">evolutionary algorithm</span>)”的随机优化技术在解这</div><div class="t m0 x1 h4 y10 ff1 fs1 fc1 sc1 ls0 ws0">类优化难题中显示了优于传统优化算法的性能。目前,进化</div><div class="t m0 x1 h4 y11 ff1 fs1 fc1 sc1 ls0 ws0">算法主要包括三个研究领域:<span class="fc0">遗传算法</span>、<span class="fc0">进化规划</span>和<span class="fc0">进化</span></div><div class="t m0 x1 h4 y12 ff1 fs1 fc0 sc1 ls0 ws0">策略<span class="fc1">。其中遗传算法是迄今为止进化算法中应用最多、比较</span></div><div class="t m0 x1 h4 y13 ff1 fs1 fc1 sc1 ls0 ws0">成熟、广为人知的算法。</div><div class="t m0 x1 h4 y14 ff1 fs1 fc0 sc0 ls0 ws0">一、遗传算法简介</div><div class="t m0 x1 h4 y15 ff5 fs1 fc1 sc1 ls0 ws0"> <span class="ff1">遗传算法(</span>Genetic <span class="_ _2"></span>Algorithm, GA<span class="ff1">)最先是由美国<span class="_ _5"> </span></span>Mic-</div><div class="t m0 x1 h4 y16 ff5 fs1 fc1 sc1 ls0 ws0">hgan<span class="_ _5"> </span><span class="ff1">大学的<span class="_ _4"> </span></span>John<span class="_ _6"></span> Holland<span class="_ _5"> </span><span class="ff1">于<span class="_ _4"> </span></span>1<span class="_ _6"></span>975<span class="_ _5"> </span><span class="ff1">年提出的。遗传算法是</span></div><div class="t m0 x1 h4 y17 ff1 fs1 fc1 sc1 ls0 ws0">模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算</div><div class="t m0 x1 h4 y18 ff1 fs1 fc1 sc1 ls0 ws0">模型。它的思想源于生物遗传学和适者生存的自然规律,</div><div class="t m0 x1 h4 y19 ff1 fs1 fc1 sc1 ls0 ws0">是具有“生存<span class="ff5">+</span>检测”的迭代过程的搜索算法。遗传算法</div><div class="t m0 x1 h4 y1a ff1 fs1 fc1 sc1 ls0 ws0">以一种群体中的所有个体为对象,并利用随机化技术指</div><div class="t m0 x1 h4 y1b ff1 fs1 fc1 sc1 ls0 ws0">导对一个被编码的参数空间进行高效搜索。其中,选择、</div><div class="t m0 x1 h4 y1c ff1 fs1 fc1 sc1 ls0 ws0">交叉和变异构成了遗传算法的遗传操作;<span class="fc2 sc3">参数编码</span><span class="sc2">、<span class="fc2 sc3">初始</span></span></div><div class="t m0 x1 h4 y1d ff1 fs1 fc2 sc3 ls0 ws0">群体的设定<span class="fc1 sc2">、</span>适应度函数的设计<span class="fc1 sc2">、</span>遗传操作设计<span class="fc1 sc2">、</span>控制参</div><div class="t m0 x1 h4 y1e ff1 fs1 fc2 sc3 ls0 ws0">数设定<span class="fc1 sc1">等<span class="_ _5"> </span><span class="ff5">5<span class="_ _5"> </span></span>个要素组成了遗传算法的核心内容。</span></div><div class="t m0 x1 h6 y1f ff1 fs3 fc0 sc0 ls0 ws0">遗传算法的基本步骤:</div><div class="t m0 x2 h4 y20 ff1 fs1 fc1 sc1 ls0 ws0">遗传算法是一种基于生物自然选择与遗传机理的随机</div><div class="t m0 x1 h4 y21 ff1 fs1 fc1 sc1 ls0 ws0">搜索算法,与传统搜索算法不同,遗传算法从一组随机产</div><div class="t m0 x1 h4 y22 ff1 fs1 fc1 sc1 ls0 ws0">生的称为“种群<span class="ff5">(Population)<span class="ff6">”</span></span>的初始解开始搜索过程。种</div><div class="t m0 x1 h4 y23 ff1 fs1 fc1 sc1 ls0 ws0">群中的每个个体是问题的一个解,称为“染色体<span class="ff5">(chromos</span></div><div class="t m0 x1 h4 y24 ff5 fs1 fc1 sc1 ls0 ws0">ome)<span class="ff6">”<span class="ff1">。染色体是一串符号,比如一个二进制字符串。这</span></span></div><div class="t m0 x1 h4 y25 ff1 fs1 fc1 sc1 ls0 ws0">些染色体在后续迭代中不断进化,称为遗传。在每一代中</div><div class="t m0 x1 h4 y26 ff1 fs1 fc1 sc1 ls0 ws0">用“适值<span class="ff5">(fitness)<span class="ff6">”</span></span>来测量染色体的好坏,生成的下一代染</div><div class="t m0 x1 h4 y27 ff1 fs1 fc1 sc1 ls0 ws0">色体称为后代(<span class="ff5">offsprin<span class="_ _7"></span>g<span class="ff1">)。后代是由前一代染色体通过交</span></span></div><div class="t m0 x1 h4 y28 ff1 fs1 fc1 sc1 ls0 ws0">叉<span class="ff5">(crossover)</span>或者变异(<span class="ff5">mutation</span>)运算形成的。</div><div class="t m0 x1 h4 y29 ff1 fs1 fc1 sc1 ls0 ws0">在新一代形成过程中,根据适度的大小选择部分后代,淘</div><div class="t m0 x1 h4 y2a ff1 fs1 fc1 sc1 ls0 ws0">汰部分后代。从而保持种群大小是常数。适值高的染色体</div><div class="t m0 x1 h4 y2b ff1 fs1 fc1 sc1 ls0 ws0">被选中的概率较高,这样经过若干代之后,算法收敛于最</div><div class="t m0 x1 h4 y2c ff1 fs1 fc1 sc1 ls0 ws0">好的染色体,它<span class="fc2">很可能</span>就是问题的最优解或次优解。</div><div class="t m0 x1 h4 y2d ff1 fs1 fc0 sc0 ls0 ws0">主要步骤如下所示:<span class="ff2 sc1"> </span></div><div class="t m0 x1 h4 y2e ff5 fs1 fc1 sc1 ls0 ws0">(1)<span class="ff1 fc2 sc3">编码</span><span class="ff1">:</span>GA<span class="_ _5"> </span><span class="ff1">在进行搜索之前先将解空间的解数据<span class="ff7">表</span>示成</span></div><div class="t m0 x1 h4 y2f ff1 fs1 fc1 sc1 ls0 ws0">遗传空间的基<span class="ff7">因</span>型串<span class="ff7">结</span>构数据,这些串<span class="ff7">结</span>构数据的不同组</div><div class="t m0 x1 h4 y30 ff7 fs1 fc1 sc1 ls0 ws0">合便<span class="ff1">构成了不同的</span>点<span class="ff1">。</span></div><div class="t m0 x1 h4 y31 ff5 fs1 fc1 sc1 ls0 ws0">(2)<span class="ff1 fc2 sc3">初始群体的生成</span><span class="ff1">:随机产生<span class="_ _5"> </span></span>N<span class="_ _5"> </span><span class="ff1">个初始串<span class="ff7">结</span>构数据,每个</span></div><div class="t m0 x1 h4 y32 ff1 fs1 fc1 sc1 ls0 ws0">串<span class="ff7">结</span>构数据称为一个个体,<span class="ff5">N<span class="_ _5"> </span></span>个个体构成了<span class="ff7">—</span>个群体。<span class="ff5"> </span></div><div class="t m0 x1 h4 y33 ff5 fs1 fc1 sc1 ls0 ws0">GA<span class="_ _5"> </span><span class="ff1">以这<span class="_ _5"> </span></span>N<span class="_ _4"> </span><span class="ff1">个串<span class="ff7">结</span>构数据作为初始<span class="ff7">点</span>开始迭代。</span></div></div></div><div class="pi" data-data='{"ctm":[1.611850,0.000000,0.000000,1.611850,0.000000,0.000000]}'></div></div>
</body>
</html>