⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 genetic_algorithm.htm

📁 人工智能;进化算法;遗传算法(GA);多目标最小生成树
💻 HTM
📖 第 1 页 / 共 5 页
字号:
"21600,21600"><v:imagedata o:title="" src = 
"yichuan.files/image005.wmz"></v:imagedata></v:shape><![endif]--><![if !vml]><img width=28 height=24src="yichuan.files/image006.gif" v:shapes="_x0000_i1027"><![endif]></SUB><!--[if gte mso 9]><xml> <o:OLEObject Type="Embed" ProgID="Equation.3" ShapeID="_x0000_i1027"  DrawAspect="Content" ObjectID="_1254726191"> </o:OLEObject></xml><![endif]--></SPAN>,适应度表示了该个体对环境的适应能力,并决定他们在遗传操作中被<U>抽取</U>到的概率;</P>
<P 
style="MARGIN-LEFT: 56.95pt; WORD-BREAK: break-all; TEXT-INDENT: -24pt; mso-char-indent-count: -2.0; mso-para-margin-left: 3.14gd"><SPAN 
lang=EN-US>(4) </SPAN>对<SPAN 
lang=EN-US>X(t)</SPAN>根据预定概率应用各种<U>遗传算子</U>,产生新一代群体<SPAN 
lang=EN-US>X(t+1)</SPAN>,这些算子的目的在于扩展有限个体的覆盖面,体现全局搜索的思想;</P>
<P 
style="MARGIN-LEFT: 54pt; WORD-BREAK: break-all; TEXT-INDENT: -18pt; tab-stops: 36.0pt; mso-char-indent-count: -1.5; mso-para-margin-left: 3.43gd"><SPAN 
lang=EN-US>(5) t:=t+1(</SPAN>新生成的一代群体替换上一代群体<SPAN 
lang=EN-US>)</SPAN>;如果没有达到预定<U>终止条件则</U>继续<SPAN lang=EN-US>(3)</SPAN>。</P>
<P 
style="WORD-BREAK: break-all; TEXT-INDENT: 33pt; mso-char-indent-count: 2.75"><SPAN 
lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P style="WORD-BREAK: break-all; LINE-HEIGHT: 150%"><B 
style="mso-bidi-font-weight: normal"><SPAN lang=EN-US 
style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%">2</SPAN></B><B 
style="mso-bidi-font-weight: normal"><SPAN 
style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%">.<SPAN lang=EN-US>2 
</SPAN>遗传算法中各重要因素分析<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></B></P>
<P style="WORD-BREAK: break-all; LINE-HEIGHT: 150%"><B 
style="mso-bidi-font-weight: normal"><SPAN lang=EN-US 
style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%"><o:p>&nbsp;</o:p></SPAN></B></P>
<P class=MsoNormal style="LINE-HEIGHT: 150%"><B 
style="mso-bidi-font-weight: normal"><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">▲ 编码理论<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></B></P>
<P class=MsoNormal 
style="TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0"><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">遗传算法需要采用某种编码方式将解空间映射到编码空间(可以是位串、实数、有序串)。类似于生物染色体结构,这样容易用生物遗传理论解释,各种遗传操作也易于实现。编码理论是遗传算法效率的重要决定因素之一。二进制编码是最常用的编码方式,算子处理的模式较多也较易于实现。但是,在具体问题中,根据问题的不同,采用适合解空间的形式的方式进行编码,可以有效地直接在解的表现型上进行遗传操作,从而更易于引入相关启发式信息,往往可以取得比二进制编码更高的效率。</SPAN><SPAN 
lang=EN-US style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 150%"><B 
style="mso-bidi-font-weight: normal"><SPAN lang=EN-US 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体"><o:p>&nbsp;</o:p></SPAN></B></P>
<P class=MsoNormal style="LINE-HEIGHT: 150%"><B 
style="mso-bidi-font-weight: normal"><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">▲ 染色体<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></B></P>
<P class=MsoNormal 
style="TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0"><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">每个编码串对应问题的一个具体的解,称为染色体或个体。一个染色体可以通过选用的编码理论与问题的一个具体的解相对应,一组固定数量的染色体则构成一代群体。群体中染色体可重复。</SPAN><SPAN 
lang=EN-US style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 150%"><SPAN lang=EN-US 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 150%"><B 
style="mso-bidi-font-weight: normal"><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">▲ 随机初始化<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></B></P>
<P class=MsoNormal 
style="TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0"><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">随机或者有规律(如从一个已知离解较近的单点,或者等间隔分布地生成可行解)生成第一代群体。一次遗传算法中有目的采用多次初始化群体会使算法拥有更强的搜索全局最有解的能力<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 150%"><B 
style="mso-bidi-font-weight: normal"><SPAN lang=EN-US 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体"><SPAN 
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="LINE-HEIGHT: 150%"><B 
style="mso-bidi-font-weight: normal"><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">▲ 适应度<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></B></P>
<P class=MsoNormal 
style="TEXT-INDENT: 18pt; LINE-HEIGHT: 150%; mso-char-indent-count: 1.5"><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">一个染色体的适应度是对一个染色体生存能力的评价,它决定了该染色体在<U>抽取</U>操作中被抽取到的概率。估价函数是评价染色体适应度的标准,常见的估价函数有:直接以解的权值(如<SPAN 
lang=EN-US>01</SPAN>背包问题以该方案装进背包物品的价值作为其适应度),累计二进制串中<SPAN 
lang=EN-US>1/0</SPAN>的个数(针对以二进制串为编码理论的遗传算法),累加该染色体在各个目标上的得分(针对多目标最优化问题,另外,对于此类问题,本文提出了一种更有效的估价函数)。<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 150%"><SPAN lang=EN-US 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 150%"><B 
style="mso-bidi-font-weight: normal"><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">▲ 遗传算子<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></B></P>
<P class=MsoNormal 
style="TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0"><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">遗传算子作为遗传算法的核心部分,其直接作用于现有的一代群体,以生成下一代群体,因此遗传算子的选择搭配,各个算子所占的比例直接影响遗传算法的效率。一个遗传算法中一般包括多种遗传算子,每种算子都是独立运行,遗传算法本身只指定每种算子在生成下一代过程中作用的比例。算子运行时从当前这代群体中<U>抽取</U>相应数量的染色体,经过加工,得到一个新的染色体进入下一代群体。<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal 
style="TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0"><SPAN 
lang=EN-US 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 150%"><SPAN lang=EN-US 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%"><SPAN 
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">下面列出几种常见的遗传算子:</SPAN><SPAN 
lang=EN-US style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%"><o:p></o:p></SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 48pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 150%; tab-stops: list 45.0pt; mso-list: l8 level1 lfo7"><![if !supportLists]><SPAN 
lang=EN-US 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体"><SPAN 
style="mso-list: Ignore">●<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp; 
</SPAN></SPAN></SPAN><![endif]><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">保持算子:<U>抽取</U></SPAN><SPAN 
lang=EN-US style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">1</SPAN><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">个染色体,直接进入下一代。该算子使算法能够收敛。</SPAN><SPAN 
lang=EN-US style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%"><o:p></o:p></SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 99pt; TEXT-INDENT: -69pt; LINE-HEIGHT: 150%; tab-stops: list 45.0pt; mso-list: l8 level1 lfo7"><![if !supportLists]><SPAN 
lang=EN-US 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体"><SPAN 
style="mso-list: Ignore">●<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp; 
</SPAN></SPAN></SPAN><![endif]><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">交配算子:<U>抽取</U></SPAN><SPAN 
lang=EN-US style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">2</SPAN><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">个染色体,交换其中的某些片段,选择适应度高的(或</SPAN><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%"> </SPAN><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">者都选),进入下一代群体。该算子使得遗传算法能够利用现有的解寻求更优的解。</SPAN><SPAN 
lang=EN-US style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%"><o:p></o:p></SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 108pt; TEXT-INDENT: -81pt; LINE-HEIGHT: 150%; tab-stops: list 45.0pt; mso-list: l8 level1 lfo7"><![if !supportLists]><SPAN 
lang=EN-US 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体"><SPAN 
style="mso-list: Ignore">●<SPAN 
style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><![endif]><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">变异算子:<U>抽取</U></SPAN><SPAN 
lang=EN-US style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">1</SPAN><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">个染色体,对其进行随机的改变,进入下一代群体。该算子使得算法可以跳出局部最优解,拥有更强搜索全局最有解的能力,防止陷入局部搜索,该算子的概率不可过高,否则将引起解的发散,使得算法无法收敛。</SPAN><SPAN 
lang=EN-US style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="LINE-HEIGHT: 150%"><B 
style="mso-bidi-font-weight: normal"><SPAN lang=EN-US 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体"><o:p>&nbsp;</o:p></SPAN></B></P>
<P class=MsoNormal style="LINE-HEIGHT: 150%"><B 
style="mso-bidi-font-weight: normal"><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">▲ 抽取<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></B></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 17.95pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0; mso-para-margin-left: 1.71gd"><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">抽取操作是遗传算法中一个重要基本操作,作用是按照“优胜劣汰”的原则根据各个染色体的适应度从当前这代群体中挑选用于遗传算子的染色体。通常采用的手段是偏置转盘:<SPAN 
lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal 
style="MARGIN-LEFT: 17.95pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%; mso-char-indent-count: 2.0; mso-para-margin-left: 1.71gd"><!--[if gte vml 1]><v:shape 
id=_x0000_s1050 
style="MARGIN-TOP: 78pt; Z-INDEX: 9; LEFT: 0px; MARGIN-LEFT: 0px; WIDTH: 216.75pt; POSITION: absolute; HEIGHT: 163.5pt; TEXT-ALIGN: left; mso-position-horizontal: left" 
type = "#_x0000_t75" coordsize = "21600,21600"><v:imagedata o:title="" src = 
"yichuan.files/image007.emz"></v:imagedata><w:wrap type = 
"square"></w:wrap></v:shape><![endif]--><![if !vml]><img width=289 height=218src="yichuan.files/image008.gif" align=left hspace=12 v:shapes="_x0000_s1050"><![endif]><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">设算法中群体数量为</SPAN><SPAN 
lang=EN-US><SUB><!--[if gte vml 1]><v:shape id=_x0000_i1028 
style="WIDTH: 57pt; HEIGHT: 18pt" o:ole="" type = "#_x0000_t75" coordsize = 
"21600,21600"> <v:imagedata o:title="" src = 
"yichuan.files/image009.wmz"></v:imagedata></v:shape><![endif]--><![if !vml]><img width=76 height=24src="yichuan.files/image010.gif" v:shapes="_x0000_i1028"><![endif]></SUB><!--[if gte mso 9]><xml> <o:OLEObject Type="Embed" ProgID="Equation.3" ShapeID="_x0000_i1028"  DrawAspect="Content" ObjectID="_1254726192"> </o:OLEObject></xml><![endif]--></SPAN><SPAN 
style="FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">,</SPAN><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">首先计算当代群体的各染色体适应度之和<SPAN 
lang=EN-US><SUB><!--[if gte vml 1]><v:shape id=_x0000_i1029 
style="WIDTH: 87pt; HEIGHT: 35.25pt" o:ole="" type = "#_x0000_t75" coordsize = 
"21600,21600"> <v:imagedata o:title="" src = 
"yichuan.files/image011.wmz"></v:imagedata></v:shape><![endif]--><![if !vml]><img width=116 height=47src="yichuan.files/image012.gif" v:shapes="_x0000_i1029"><![endif]></SUB><!--[if gte mso 9]><xml> <o:OLEObject Type="Embed" ProgID="Equation.3" ShapeID="_x0000_i1029"  DrawAspect="Content" ObjectID="_1254726193"> </o:OLEObject></xml><![endif]--></SPAN>。将<SPAN 
lang=EN-US>1</SPAN>~</SPAN><SPAN lang=EN-US><SUB><!--[if gte vml 1]><v:shape 
id=_x0000_i1030 style="WIDTH: 23.25pt; HEIGHT: 15.75pt" o:ole="" type = 
"#_x0000_t75" coordsize = "21600,21600"> <v:imagedata o:title="" src = 
"yichuan.files/image013.wmz"></v:imagedata></v:shape><![endif]--><![if !vml]><img width=31 height=21src="yichuan.files/image014.gif" v:shapes="_x0000_i1030"><![endif]></SUB><!--[if gte mso 9]><xml> <o:OLEObject Type="Embed" ProgID="Equation.3" ShapeID="_x0000_i1030"  DrawAspect="Content" ObjectID="_1254726194"> </o:OLEObject></xml><![endif]--></SPAN><SPAN 
style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体">内的整数划分成</SPAN><SPAN 
lang=EN-US><SUB><!--[if gte vml 1]><v:shape id=_x0000_i1031 
style="WIDTH: 57pt; HEIGHT: 18pt" o:ole="" type = "#_x0000_t75" coordsize = 
"21600,21600"> <v:imagedata o:title="" src = 
"yichuan.files/image009.wmz"></v:imagedata></v:shape><![endif]--><![if !vml]><img width=76 height=24src="yichuan.files/image010.gif" v:shapes="_x0000_i1031"><![endif]></SUB><!--[if gte mso 9]><xml>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -