Más contenido relacionado La actualidad más candente (20) Similar a Genetic algorithms for solving traveling salesman problem (20) Genetic algorithms for solving traveling salesman problem1. اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ
ﻛﺎرﺑﺮد و در ﺣﻞ ﻣﺴﺎﻟﻪ
ﻓﺮوﺷﻨﺪه دوره ﮔﺮد
اﺳﺘﺎد راﻫﻨﻤﺎ: ﺟﻨﺎب آﻗﺎي ﺣﺴﻴﻨﻲ
ﺗﻬﻴﻪ ﻛﻨﻨﺪه: ﺣﻤﻴﺪه اﻳﺮج
500015118
3. ﭼﻜﻴﺪه ﻣﻘﺎﻟﻪ :
در اﻳﻦ ﻣﻘﺎﻟﻪ اﺑﺘﺪا TSPرا ﻣﻌﺮﻓﻲ ﻛﺮده و ﭘﻴﺸﻴﻨﻪ ، ﻛﺎرﺑﺮدﻫﺎ ، ﻓﺮم ﻫﺎي ﻣﺨﺘﻠﻒ و روﺷﻬﺎي ﺣﻞ آن را ﺑﺮرﺳﻲ ﻣﻲ ﻛﻨـﻴﻢ. ﺳـﭙﺲ
ﻣﺸﻜﻼت روﺷﻬﺎي ﺣﻞ ﻛﻼﺳﻴﻚ را ﺑﺮرﺳﻲ ﻣﻲ ﻛﻨﻴﻢ. وﺑﻪ اراﺋﻪ روش ﺣﻞ ﺑﺎ اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ ﻣﻲ ﭘﺮدازﻳﻢ و در ﻧﻬﺎﻳ ﺖ اﻟﮕﻮرﻳﺘﻤﻬﺎي
ژﻧﺘﻴﻚ ﻣﺨﺘﻠﻔﻲ را ﺑﺮاي ﻣﺴﺎﻟﻪ ﻓﺮوﺷﻨﺪه دوره ﮔﺮد ﻣﻄﺮح ﻣﻲ ﻛﻨﻴﻢ و ﺑﺮرﺳﻲ ﻣﻲ ﻛﻨﻴﻢ ﻛﻪ ﻛﺪام ﻳﻚ از اﻳﻦ اﻟﮕﻮرﻳﺘﻤﻬﺎي ژﻧﺘﻴﻚ ﺑﻬﺘﺮ
از ﺑﻘﻴﻪ روﺷﻬﺎ ﺟﻮاب ﻣﻲ دﻫﻨﺪ.
ﻛﻠﻤﺎت ﻛﻠﻴﺪي:
– Genetic Algorithm—Traveling Salesman Problem--Gene – Chromosome – Allele – Encoding – Population
Evaluation – Fitness – Selection – Crossover – Mutation – Decoding – Generation – Parent
4. ﻓﻬﺮﺳﺖ ﻣﻄﺎﻟﺐ
١ ﻣﺴﺎﻟﻪ ﻓﺮوﺷﻨﺪه دوره ﮔﺮد
1,1. ﺗﻌﺮﻳﻒ
2,1. ﭘﻴﺸﻴﻨﻪ
3,1. ﻛﺎرﺑﺮدﻫﺎ
4,1. ﻓﺮم ﻫﺎي ﻣﺨﺘﻠﻒ
5,1. روش ﻫﺎي ﺣﻞ
٢
اﻟﮕﻮرﻳﺘﻢ ﻫﺎي ﻫﻴﻮرﻳﺴﺘﻴﻚ
1,2. ﻣﻘﺪﻣﻪ
2,2. اﻧﻮاع اﻟﮕﻮرﻳﺘﻢ ﻫﺎي ﻫﻴﻮرﻳﺴﺘﻴﻚ
٣ اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ
1,3. ﻣﻘﺪﻣﻪ
٢٫٣.
اﺻﻮل اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ
١٫٢٫٣.
Encoding
٢٫٢٫٣.
Evaluation
٣٫٢٫٣.
Crossover
۴٫٢٫٣.
Mutation
5,2,3. Decoding
5. ﻣﺮاﺣﻞ اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ
.3,3
4,3. ﻣﺜﺎل ﻋﺪدي
5,3.ﻣﺰاﻳﺎ و ﻣﻌﺎﻳﺐ اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ
ﺑﺎ اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚTSP ۴. ﺣﻞ ﻣﺴﺎﻟﻪ
Encoding
.۴٫١
Crossover
.۴٫٢
(PMX) Partially Matched Crossover
(CX) Cycle Crossover
Order Crossover
Crossover Matrix
(MOX) Modified Order Crossover
Mutation
.۴٫٣
TSP ﻣﻘﺎﻳﺴﻪ روﺷﻬﺎﯼ ﻣﺨﺘﻠﻒ اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﮏ ﺑﺮاﯼ
.۴٫۴
5,4. ﻧﺘﻴﺠﻪ ﮔﻴﺮي
ﻣﻨﺎﺑﻊ
6. ١. ﻣﺴﺎﻟﻪ ﻓﺮوﺷﻨﺪﻩ دورﻩ ﮔﺮد
١
3,1. ﺗﻌﺮﻳﻒ ﻣﺴﺎﻟﻪ
ﻣﺴﺎﻟﻪ ﻓﺮوﺷﻨﺪه دوره ﮔﺮد1 ﻋﺒﺎرﺗﺴﺖ ازﻳﺎﻓﺘﻦ ﻳﻚ ﻣﺴﻴﺮ از ﺗﻌﺪادي از ﺷﻬﺮﻫﺎ ﻛﻪ از ﻫﺮﺷﻬﺮ دﻗﻴﻘﺎ ﻳﻚ ﺑﺎر ﻋﺒﻮر ﻛﻨﻴﻢ و ﺑﻪ ﺷﻬﺮ اول ﺑﺎز
ﮔﺮدﻳﻢ ﺑﻪ ﻃﻮري ﻛﻪ ﻃﻮل ﻣﺴﻴﺮ ﻣﻴﻨﻴﻤﻮم ﺷﻮد.
4,1. ﭘﻴﺸﻴﻨﻪ
اوﻟﻴﻦ ﻧﻤﻮﻧﻪ ﻣﺴﺎﻟﻪ ﻓﺮوﺷﻨﺪه دوره ﮔﺮد ﺗﻮﺳﻂ اوﻳﻠﺮ2در9571 ﻣﻄﺮح ﺷﺪ ﻛﻪ ﻫﺪف آن ﺣﺮﻛﺖ دادن ﻳﻚ ﻣﻬﺮه اﺳـﺐ ﺑـﻪ ﻫﻤـﻪ ﻣﻮﻗﻌﻴـﺖ
ﻫﺎي ﺻﻔﺤﻪ ﺷﻄﺮﻧﺞ ﺑﻮد.
ﻣﺴﺎﻟﻪ ﻓﺮوﺷﻨﺪﻩ دورﻩ ﮔﺮد اوﻟﻴﻦ ﺑﺎر در آﺘﺎب ﻳﻚ ﻓﺮوﺷﻨﺪﻩ ﺁﻟﻤﺎﻧﻲ ﻣﺸﻬﻮر ﺷﺪ آﻪ راﺟﻊ ﺑﻪ اﻳﻦ ﺑﻮد آ ﻪ ﭼﮕﻮﻧ ﻪ ﻳ ﻚ ﻓﺮوﺷ ﻨﺪﻩ دورﻩ
ﮔﺮد ﻣﻮﻓﻖ ﺷﻮﻳﻢ.او اﻳﻦ ﻣﺴﺎﻟﻪ را )اﻟﺒﺘﻪ ﻧﻪ ﺑﺎ اﻳﻦ ﻧﺎم ( ﺑﻪ اﻳﻦ ﺻﻮرت ﻣﻄﺮح ﻣﻲ آﻨﺪ آﻪ اﻧﺘﺨﺎب ﻣﺴﻴﺮ ﺑﻪ ﻃﻮري آﻪ هﻤ ﻪ ﺷ ﻬﺮهﺎ
را ﭘﻮﺷﺶ دهﻴﻢ و از هﻴﭻ ﺷﻬﺮي دوﺑﺎر ﻋﺒﻮر ﻧﻜﻨﻴﻢ ﻣﻬﻢ ﺕﺮﻳﻦ ﺟﻨﺒﻪ ﺑﺮﻧﺎﻣﻪ رﻳﺰي ﻳﻚ ﻣﺴﻴﺮ اﺳﺖ. ﺕﺎ ﺑ ﻪ ﺣ ﺎل ﺕﻨﻬ ﺎ روش ﺷ ﻨﺎﺥﺘﻪ
ﺷﺪﻩ آﻪ رﺳﻴﺪن ﺑﻪ ﺟﻮاب ﺑﻬﻴﻨﻪ را در ﻣﺴﺎﻟﻪ اي ﺑ ﻪ ه ﺮ اﻧ ﺪازﻩ ﺕ ﻀﻤﻴﻦ ﻣ ﻲ آﻨ ﺪ ﺷ ﻤﺎرش ه ﺮ ﺕ ﻮر ﻣﻤﻜ ﻦ و ﻳ ﺎﻓﺘﻦ ﺕ ﻮر ﺑ ﺎ آﻤﺘ ﺮﻳﻦ
هﺰﻳﻨﻪ اﺳﺖ.٣ ﺑﻪ روش رﻳﺎﺽﯽ ﻣﺴﺎﻟﻪ ﺑﺎ ﻳﺎﻓﺘﻦ ﺕﻌﺪاد ﺟﺎﻳﮕﺸﺖ هﺎﯼ nﺷﯽ ﻣﺘﻤﺎﻳﺰ وﺳﭙﺲ ارزﻳﺎﺑﯽ هﺮ ﺣﺎﻟﺖ ﺑﺮرﺳﯽ ﻣﯽ ﺷﻮد.
ﺗﻌﺪاد ﺟﺎﻳﮕﺸﺘﻬﺎ ! nاﺳﺖ. ﺑﺮاي ﻳﺎﻓﺘﻦ ﻣﻴﻨﻴﻤﻢ دورﻫﺎ ﻧﻴﺰ ﺑﻪ ﺣﺪاﻛﺜﺮ ! nﻣﺤﺎﺳﺒﻪ اﺣﺘﻴﺎج دارﻳﻢ. وﻟﻲ اﮔـﺮ nرا زﻳـﺎد ﻓـﺮض ﻛﻨـﻴﻢ
ﺗﻌﺪاد ﻣﺤﺎﺳﺒﺎت ﺑﺴﻴﺎر ﺑﺎﻻ ﺧﻮاﻫﺪ ﺑﻮد ﺑﻪ ﻫﻤﻴﻦ دﻟﻴﻞ ﮔﻔﺘﻪ ﻣﻲ ﺷﻮد ﻛﻪ اﻟﮕﻮرﻳﺘﻢ ﺣﻞ ﻣﺴﺎﻟﻪ در زﻣﺎن ﭼﻨﺪ ﺟﻤﻠﻪ اي4 ﻧﻴﺴﺖ.
اﮔﺮ ﺑﺘﻮاﻧﻴﻢ ﻫﺮ ﻣﺴﻴﺮ را در ﻳﻚ ﻧﺎﻧﻮ ﺛﺎﻧﻴﻪ ارزﻳﺎﺑﻲ ﻛﻨﻴﻢ ﺑﺮاي ﻳﺎﻓﺘﻦ ﺟﻮاب ﺑﻬﻴﻨﻪ ﻳﻚ ﻣﺴﺎﻟﻪ ﺑﺎ 52 ﺷﻬﺮ ده ﻣﻴﻠﻴﻮن ﺳﺎل ﻻزم اﺳﺖ. ﺑﻨـﺎﺑﺮ
اﻳﻦ ﺑﺎﻳﺪ ﺑﻬﻴﻨﻪ ﺑﻮدن را ﺑﺮاي ﻳﺎﻓﺘﻦ ﺟﻮاﺑﻲ ﻣﻨﺎﺳﺐ در زﻣﺎن ﻗﺎﺑﻞ ﻗﺒﻮل ﻗﺮﺑﺎﻧﻲ ﻛﻨﻴﻢ.
1
)Traveling salesman problem (TSP
Euler
3
The “brute force” method
4
Non-Polynomial
2
7. 5,1.
ﻛﺎرﺑﺮدﻫﺎ
ﻣﺴﺎﻟﻪ ﻓﺮوﺷﻨﺪه دوره ﮔﺮد ﻛﺎرﺑﺮدﻫﺎي زﻳﺎدي در دﻧﻴﺎي واﻗﻌﻲ دارد و ان را ﻣﺴﺎﻟﻪ ﻣﺤﺒﻮﺑﻲ ﺑﺮاي ﺣﻞ ﻛﺮده اﺳﺖ. ﺑﺮاي ﻣﺜﺎل ﭼﻨﺪ ﻧﻤﻮﻧﻪ از
ﻣﺴﺎﻟﻪ "ﻣﺴﻴﺮﻳﺎﺑﻲ وﺳﻴﻠﻪ ﻧﻘﻠﻴﻪ"5 ﻣﻲ ﺗﻮاﻧﺪ ﺑﻪ ﺻﻮرت ﻣﺴﺎﻟﻪ ﻓﺮوﺷﻨﺪه دوره ﮔﺮد ﺗﺒﺪﻳﻞ ﺷﻮد .ﻣﺴﺎﻟﻪ ﻣﺴﻴﺮﻳﺎﺑﻲ وﺳﻴﻠﻪ ﻧﻘﻠﻴﻪ ﻋﺒﺎرﺗـﺴﺖ از
اﻳﻦ ﻛﻪ ﻛﺪام وﺳﺎﻳﻞ ﻧﻘﻠﻴﻪ ﺑﺎﻳﺪ ﺑﻪ ﻛﺪام ﻣﺸﺘﺮي ﻫﺎ ﺳﺮوﻳﺲ ﺑﺪﻫﻨﺪ و ﻛﻤﺘﺮﻳﻦ ﺗﻌﺪاد وﺳﺎﻳﻞ ﻧﻘﻠﻴﻪ ﻣﻮرد ﻧﻴﺎز ﺑﺎﺷﺪ. اﻧﻮاع ﻣﺨﺘﻠﻔـﻲ از اﻳـﻦ
ﻣﺴﺎﻟﻪ وﺟﻮد دارد ﻛﻪ ﺷﺎﻣﻞ ﻳﺎﻓﺘﻦ ﻛﻤﺘﺮﻳﻦ زﻣﺎن ﺑﺮاي ﺳﺮوﻳﺲ دﻫﻲ ﻧﻴﺰ ﻣﻲ ﺷﻮد ﻛﻪ ﺑﻌـﻀﻲ از ان ﻫـﺎ ﻣـﻲ ﺗﻮاﻧﻨـﺪ ﺑـﻪ ﺻـﻮرت ﻣـﺴﺎﻟﻪ
ﻓﺮوﺷﻨﺪه دوره ﮔﺮد ﺣﻞ ﺷﻮﻧﺪ.
ﻣﺴﺎﻟﻪ ﺳﻴﻢ ﻛﺸﻲ ﻛﺎﻣﭙﻴﻮﺗﺮ6 ﻧﻴﺰ ﻣﻲ ﺗﻮاﻧﺪ ﺑﻪ ﺻﻮرت ﻣﺴﺎﻟﻪ ﻓﺮوﺷﻨﺪه دوره ﮔﺮد ﻣﺪل ﺷﻮد. ﻗﻄﻌﻪ ﻫﺎي ﻣﺨﺘﻠﻒ و ﺗﻌـﺪادي ﭘـﻴﻦ دارﻳـﻢ و
ﺑﺎﻳﺪ زﻳﺮ ﻣﺠﻤﻮﻋﻪ اي از ﭘﻴﻦ ﻫﺎ را ﻃﻮري ﺑﺎ ﺳﻴﻢ ﺑﻪ ﻫﻢ وﺻﻞ ﻛﻨﻴﻢ ﻛﻪ از ﻫﻴﭻ ﭘﻴﻨﻲ ﺑﻴﺶ از دو ﺳﻴﻢ ﻋﺒﻮر ﻧﻜﻨﺪ و ﻃﻮل ﺳـﻴﻢ ﻣﻴﻨﻴﻤـﻮم
ﺷﻮد.
ﭘﻠﻴﺖ7 ، ﻻو8 و ﻛﺎ ﻧﺪراﺳﻜﺎران
9
ﻛﺎرﺑﺮد اﻳﻦ ﻣﺴﺎﻟﻪ را در ﭼﻚ ﻛﺮدن ﻣﻮﺗﻮر ﺗﻮرﺑﻴﻦ ﮔﺎزي ﻣﻄﺮح ﻛﺮدﻧﺪ. ﭘﺮه ﻫﺎي ﺑﻪ
ﻃﺮف دﻫﺎﻧﻪ ) ﻛﻪ ﺑﻪ ﻣﺤﻴﻂ داﻳﺮه ﻣﺤﻜﻢ ﻣﻲ ﺷﻮﻧﺪ( در ﻫﺮ ﺗﻮرﺑﻴﻦ ﻗﺮار ﻣﻲ ﮔﻴﺮد ﺗﺎ ﻳﻜﻨﻮاﺧﺘﻲ ﺟﺮﻳﺎن ﮔﺎز را ﺗﻀﻤﻴﻦ ﻛﻨﺪ. ﻣﻜﺎن ﭘﺮه ﻫﺎ
ﺑﺮاي ﻣﻴﻨﻴﻤﻮم ﻛﺮدن ﺳﻮﺧﺖ ﻣﺼﺮﻓﻲ ﻣﻴﺘﻮاﻧﺪ ﺑﻪ ﺻﻮرت ﻳﻚ TSPﻣﺘﻘﺎرن ﻣﺪل ﺷﻮد.
زﻣﺎن ﺑﻨﺪي ﻋﻤﻠﻴﺎت روي ﻳﻚ ﻣﺎﺷﻴﻦ در ﺣﺎﻟﻲ ﻛﻪ زﻣﺎن اﻧﺠﺎم ﻋﻤﻠﻴﺎت وزﻣﺎن آﻣﺎده ﺳﺎزي ﻣﺎﺷﻴﻦ ﺑﺮاي ﻫﺮ ﻋﻤﻠﻴﺎت را ﺑﺪاﻧﻴﻢ ﻧﻴﺰ ﻳﻚ
ﻣﺴﺎﻟﻪ ﻓﺮوﺷﻨﺪه دوره ﮔﺮد اﺳﺖ ﻛﻪ ﻫﺪف آن ﻣﻴﻨﻴﻤﻮم ﻛﺮدن زﻣﺎن ﻛﻞ ﺑﺮاي ﭘﺮدازش ﻫﺮ ﻋﻤﻞ اﺳﺖ.
از ﻛﺎرﺑﺮدﻫﺎي ﺻﻨﻌﺘﻲ آن ﻣﻴﺘﻮان ﺑﻪ ﺗﻮﻟﻴﺪ ﻣﺎﻳﻜﺮو ﭘﺮوﺳﺴﻮرﻫﺎ، ﺣﻤﻞ و ﻧﻘﻞ و ﻣﺴﺎﻳﻞ ﻣﻨﻄﻖ اﺷﺎره ﻛﺮد.
اﻳﻦ ﻣﺴﺎﻟﻪ ﻫﻤﭽﻨﻴﻦ در اﻧﺒﺎرداري01 ، ﺟﺎﺑﺠﺎﻳﻲ ﻣﻮاد11 و ﺑﺮﻧﺎﻣﻪ رﻳﺰي ﺗﺴﻬﻴﻼت21 ﻧﻴﺰ ﻛﺎرﺑﺮد دارد.
2
3
در ﻣﺴﻴﺮﻳﺎﺑﻲ ﭘﺴﺘﻲ31 ، ﺗﻮاﻟﻲ ﻓﺎﻳﻞ ﻫﺎي ﻛﺎﻣﭙﻴﻮﺗﺮ41 و ﻣﺴﻴﺮ ﻣﺸﺘﺮي ﻫﺎ در ﻣﺮاﻛﺰ ﺑﻬﺪاﺷﺘﻲ51 ﻧﻴﺰ ﻛﺎرﺑﺮد دارد.
4
5
)vehicle routing problem (VRP
6 computer wiring
7
Plate
8
Lowe
9
Chandrasekaran
01
warehousing
11
material handling
21
facilities layout
31
postal routing
41
computer file sequencing
15 the routing of clients through welfare agencies
8. 6,1.
ﻓﺮﻣﻬﺎي ﻣﺨﺘﻠﻒ
اﻧﻮاع ﻣﺨﺘﻠﻔﻲ از ﻣﺴﺎﻟﻪ ﻓﺮوﺷﻨﺪه دوره ﮔﺮد وﺟﻮد دارد. اوﻟﻴﻦ ان ﻣﺴﺎﻟﻪ ﻛﻮﺗﺎﻫﺘﺮﻳﻦ ﻣﺴﻴﺮ ﻫﻤﻴﻠﺘﻮﻧﻲ61 اﺳﺖ.اﮔﺮ ﮔﺮاﻓﻲ داﺷﺘﻪ ﺑﺎﺷـﻴﻢ ﻛـﻪ
ﻫﺮ ﻳﺎل وزﻧﻲ داﺷﺘﻪ ﺑﺎﺷﺪ و دو راس ﻣﻔﺮوض داﺷﺘﻪ ﺑﺎﺷﻴﻢ ﺑﺎﻳﺪ ﻛﻮﺗﺎﻫﺘﺮﻳﻦ دور ﻫﻤﻴﻠﺘﻮﻧﻲ را از اوﻟﻲ ﺑﻪ دوﻣﻲ ﺑﻴﺎﺑﻴﻢ. اﮔﺮ ﻳﺎﻟﻲ ﮔﺬرﻧﺪه
از اﻳﻦ دو اﺿﺎﻓﻪ ﻛﻨﻴﻢ و ﺑﻪ آن وزن ﺑﺰرگ وﻣﺜﺒﺖ Mﻧﺴﺒﺖ ﺑﺪﻫﻴﻢ ﻣﺴﻴﺮ ﺑﻬﻴﻨﻪ ﻣﺴﺎﻟﻪ ﻓﺮوﺷﻨﺪه دوره ﮔـﺮد ﻫﻤـﻮاره از اﻳـﻦ ﻳـﺎل ﻣـﻲ
ﮔﺬرد ﭼﻮن ﻫﺰﻳﻨﻪ ﻣﺴﻴﺮ را ﻛﺎﻫﺶ ﻣﻲ دﻫﺪ و ﻣﺴﺎﻟﻪ دور ﻫﻤﻴﻠﺘﻮﻧﻲ را ﺣﻞ ﻣﻲ ﻛﻨﺪ.
ﻣﺴﺎﻟﻪ ﻓﺮوﺷﻨﺪه دوره ﮔﺮد ﻧﺎﻣﺘﻘﺎرن71 ﺣﺎﻟﺘﻲ اﺳﺖ ﻛﻪ ﻫﺰﻳﻨﻪ ﺳﻔﺮ از اﻟﻒ ﺑﻪ ب ﺑﺎ ﻫﺰﻳﻨﻪ ﺳﻔﺮ از ب ﺑﻪ اﻟﻒ ﻳﻜﺴﺎن ﻧﻴﺴﺖ ﻛﻪ ﻣﻲ ﺗﻮاﻧﺪ ﺑـﺎ
ﻫﻤﺎن روش ﻣﺴﺎﻟﻪ ﻓﺮوﺷﻨﺪه دوره ﮔﺮد اﺳﺘﺎﻧﺪارد81 ﺣﻞ ﺷﻮد وﻗﺘﻲ ﻛﻪ ﻃﻮري ﺑﻪ ﻳﺎﻟﻬﺎ وزن ﺑﺪﻫﻴﻢ ﻛـﻪ ﺗـﻀﻤﻴﻦ ﻛﻨـﺪ دور ﻫﻤﻴﻠﺘـﻮﻧﻲ در
ﮔﺮاف وﺟﻮد دارد.
ﻣﺴﺎﻟﻪ ﺑﺎ ﭼﻨﺪ ﻓﺮوﺷﻨﺪه91 ﺷﺒﻴﻪ ﻣﺴﺎﻟﻪ ﺑﺎ ﻳﻚ ﻓﺮوﺷﻨﺪه اﺳﺖ. ﺗﻨﻬﺎ ﺗﻔﺎوت اﻳﻦ اﺳﺖ ﻛﻪ ﺑﻴﺶ از ﻳﻚ ﻓﺮوﺷﻨﺪه دارﻳﻢ.ﺑﺎﻳﺪ ﻫـﺮ ﻓﺮوﺷـﻨﺪه را
ﺑﻪ ﺟﺎﻳﻲ ﺑﻔﺮﺳﺘﻴﻢ ﺑﻪ ﻃﻮري ﻛﻪ ﻫﺮ ﺷﻬﺮ ﻓﻘﻂ ﻳﻚ ﺑﺎر ﻣﻼﻗﺎت ﺷﻮد و ﻫﺮ ﻓﺮوﺷﻨﺪه ﺑﻪ ﺷﻬﺮ اﺻﻠﻲ ﺑﺮﮔﺮدد.
02
ﻣﺴﺎﻟﻪ ﻓﺮوﺷﻨﺪه دوره ﮔﺮد ﮔﻠﻮﮔﺎ ه
ﺑﻪ اﻳﻦ ﺻﻮرت اﺳﺖ ﻛﻪ ﻣﻲ ﺧﻮاﻫﻴﻢ ﺑﻴﺸﺘﺮﻳﻦ ﻫﺰﻳﻨﻪ ﻫﺮﻳﺎل را ﺑﻪ ﺟـﺎي ﻫﺰﻳﻨـﻪ ﻛـﻞ درﻫـﺮ ﻣـﺴﻴﺮ
ﻣﻴﻨﻴﻤﻮم ﻛﻨﻴﻢ. ﻳﻌﻨﻲ ﻣﻲ ﺧﻮاﻫﻴﻢ ﺑﻴﺸﺘﺮﻳﻦ ﻣﺴﺎﻓﺘﻲ را ﻛﻪ ﻫﺮ ﻓﺮوﺷﻨﺪه ﺑﻴﻦ دو ﺷﻬﺮ ﻣﺠﺎور ﻣﻲ ﭘﻴﻤﺎﻳﺪ ﻣﻴﻨﻴﻤﻮم ﻛﻨﻴﻢ.
ﻣﺴﺎﻟﻪ ﻓﺮوﺷﻨﺪه دوره ﮔﺮد واﺑﺴﺘﻪ ﺑﻪ زﻣﺎن12 ﺑﺎ ﻣﺴﺎﻟﻪ ﻓﺮوﺷﻨﺪه دوره ﮔﺮد اﺳﺘﺎﻧﺪارد ﻳﻜﻲ اﺳﺖ. ﻓﻘﻂ اﻳﻦ ﺟﺎ ﻣﺎ دوره ﻫﺎي زﻣﺎﻧﻲ دارﻳﻢ.
ﻣﺪل رﻳﺎﺿﻲ اﻳﻦ ﻣﺴﺎﻟﻪ ﺑﻪ ﺻﻮرت زﻳﺮ اﺳﺖ.
C ijtﻫﺰﻳﻨﻪ ﺳﻔﺮ از ﮔﺮه iﺑﻪ ﮔﺮه jدر زﻣﺎن tاﺳﺖ.
1 X ijtاﺳﺖ اﮔﺮ ﻣﺴﻴﺮ در زﻣﺎن tاز ﮔﺮه Iﺑﻪ ﮔﺮه jﻋﺒﻮر ﻛﻨﺪ و در ﻏﻴﺮ اﻳﻦ ﺻﻮرت 0 اﺳﺖ.
Subject to
16 Hamiltonian path problem
71
asymmetric traveling salesman problem
81
standard traveling salesman problem
91
multisalesman traveling salesman problem
02
bottleneck traveling salesman problem
12
time dependent traveling salesman problem
9. ﻣﺤﺪودﻳﺖ اﺧﺮ ﻧﺸﺎن ﻣﻲ دﻫﺪ ﻛﻪ ﻫﺮ راس در دوره ﻫﺎي زﻣﺎﻧﻲ ﻣﺘﻮاﻟﻲ وارد و ﺧﺎرج ﺷﺪه اﺳﺖ.
7,1.
روش ﻫﺎي ﺣﻞ
اﻟﮕﻮرﻳﺘﻢ ﻫﺎي Greedyروﺷﻲ ﺑﺮاي ﻳﺎﻓﺘﻦ ﺟﻮاب ﻣﻮﺟﻪ درﻣﺴﺎﻟﻪ ﻓﺮوﺷﻨﺪه دوره ﮔﺮد ﻫﺴﺘﻨﺪ. اﻳﻦ اﻟﮕﻮرﻳﺘﻢ ﻓﻬﺮﺳﺘﻲ از ﻫﻤﻪ ﻳﺎل ﻫﺎ
در ﻳﻚ ﮔﺮاف ﺧﻠﻖ ﻣﻲ ﻛﻨﺪ و اﻧﻬﺎ را ﺑﻪ ﺗﺮﺗﻴﺐ ﻫﺰﻳﻨﻪ) از ﻛﻤﺘﺮﻳﻦ ﺑﻪ ﺑﻴﺸﺘﺮﻳﻦ ( ﻣﺮﺗﺐ ﻣﻲ ﻛﻨﺪ. ﺳﭙﺲ ﻳﺎل ﺑﺎﻛﻤﺘﺮﻳﻦ ﻫﺰﻳﻨﻪ را اﻧﺘﺨـﺎب
ﻣﻲ ﻛﻨﺪ ) اﮔﺮدور ﺗﺸﻜﻴﻞ ﻧﺪﻫﺪ(. اﻟﮕﻮرﻳﺘﻢ Greedyﻫﻤﻴﺸﻪ ﺟﻮاﺑﻬﺎي ﻣﻮﺟﻪ اراﻳﻪ ﻣﻲ ﻛﻨﺪ. وﻟﻲ ﻫﻤﻴﺸﻪ ﺧﻮب ﻧﻴﺴﺖ.
" اﻟﮕﻮرﻳﺘﻢ ﻧﺰدﻳﻚ ﺗﺮﻳﻦ ﻫﻤﺴﺎﻳﻪ"22 در اﻳﻦ ﻣﻮرد ﻣﺸﺎﺑﻪ اﻟﮕﻮرﻳﺘﻢ
Greedyاﺳﺖ. ﺑﻪ ﻃﻮر ﺗﺼﺎدﻓﻲ ﺷـﻬﺮ ﺷـﺮوع را اﻧﺘﺨـﺎب ﻣـﻲ
ﻛﻨﻴﻢ و ﺑﻪ ﻧﺰدﻳﻚ ﺗﺮﻳﻦ ﺷﻬﺮي ﻣﻲ روﻳﻢ ﻛﻪ دور ﺗﻮﻟﻴﺪ ﻧﻜﻨﺪ. اﻳﻦ ﻛﺎر را ﺗﺎ ﺟﺎﻳﻲ اداﻣﻪ ﻣﻲ دﻫﻴﻢ ﻛﻪ از ﻫﻤـﻪ ﺷـﻬﺮﻫﺎ ﻋﺒـﻮر ﻛﻨـﻴﻢ. اﻳـﻦ
اﻟﮕﻮرﻳﺘﻢ ﻫﻢ ﻫﻤﻴﺸﻪ ﺟﻮاب ﻫﺎي ﺧﻮﺑﻲ ﺗﻮﻟﻴﺪ ﻧﻤﻲ ﻛﻨﺪ ﭼﻮن راس آﺧﺮ ﻧﺴﺒﺘﺎ دور ﻣﻲ ﺷﻮد.
"درﺧﺖ ﻓﺎﺻﻠﻪ ﻣﻴﻨﻴﻤﻮم"32 ﻣﺠﻤﻮﻋﻪ اي از 1- nﻳﺎل اﺳﺖ ﻛﻪ ﻫﻤﻪ ﺷﻬﺮﻫﺎ را ﻃﻮري ﺑﻪ ﻫﻢ وﺻﻞ ﻣﻲ ﻛﻨﺪ ﻛـﻪ ﻣﺠﻤـﻮع ﻫﻤـﻪ ﻳـﺎل ﻫـﺎ
ﻣﻴﻨﻴﻤﻮم ﺷﻮد. وﻗﺘﻲ ﻛﻪ درﺧﺖ ﻓﺎﺻﻠﻪ ﻣﻴﻨﻴﻤﻮم را ﺑﺮاي ﮔﺮاف ﻳﺎﻓﺘﻴﻢ ﻳﺎﻟﻬﺎ را دوﻃﺮﻓﻪ در ﻧﻈﺮ ﻣﻴﮕﻴﺮﻳﻢ و ﻣﺴﻴﺮي ﺗﻮﻟﻴﺪ ﻣﻴﻜﻨﻴﻢ. ﺑﻌـﺪ از
ﺷﻬﺮي ﺷﺮوع ﻣﻲ ﻛﻨﻴﻢ ﻛﻪ ﻓﻘﻂ ﺑﻪ ﻳﻚ ﺷﻬﺮ دﻳﮕﺮ ﻣﺘﺼﻞ اﺳﺖ42 و اﻳﻦ ﻛﺎر را ﺗﺎ ﻋﺒﻮر از ﻫﻤﻪ ﺷﻬﺮﻫﺎ اداﻣﻪ ﻣﻴﺪﻫﻴﻢ. اﮔﺮ ﻳﺎل ﻋﺒﻮرﻧﻴﺎﻓﺘـﻪ
اي وﺟﻮد ﻧﺪاﺷﺖ ﺑﻪ ﻳﺎل ﻗﺒﻠﻲ ﺑﺮﻣﻲ ﮔﺮدﻳﻢ و اﻳﻦ ﻛﺎر را اداﻣﻪ ﻣﻲ دﻫﻴﻢ ﺗﺎ ﺑﻪ ﺷﻬﺮ آﻏﺎزﻳﻦ ﺑﺮﺳﻴﻢ . اﻳﻦ ﻛﺎر ﻛﺮان ﺑﺎﻻﻳﻲ ﺑﺮاي ﺟﻮاب
ﺑﻬﻴﻨﻪ را ﺑﻪ ﻣﺎ ﻣﻲ دﻫﺪ ﺑﺎ وﺟﻮد اﻳﻦ ﻛﻪ از ﺑﻌﻀﻲ از ﺷﻬﺮﻫﺎ ﺑﻴﺶ از ﻳﻚ ﺑﺎر ﻋﺒﻮر ﻣﻲ ﻛﻨﻴﻢ. اﻳﻦ ﻣﺸﻜﻞ را اﻳﻦ ﻃﻮر ﺣﻞ ﻣﻲ ﻛﻨﻴﻢ ﻛﻪ اﮔﺮ
22
Nearest Neighbor algorithm
minimum spanning tree
42
Leaf City
32
10. ﺧﻮاﺳﺘﻴﻢ ﺑﻪ ﻳﻚ ﺷﻬﺮ ﻣﻼﻗﺎت ﺷﺪه ﺑﺮﮔﺮدﻳﻢ ﺑﻪ ﺷﻬﺮ ﻣﻼﻗﺎت ﻧﺸﺪه ﺑﻌﺪي ﻣﻲ روﻳﻢ. وﻗﺘﻲ از ﻫﻤﻪ ﺷﻬﺮ ﻫﺎ ﻋﺒـﻮر ﻛـﺮدﻳﻢ ﻣـﺴﺘﻘﻴﻤﺎ ﺑـﻪ
ﺷﻬﺮ آﻏﺎزﻳﻦ ﻣﻲ روﻳﻢ.
11. اﻟﮕﻮرﻳﺘﻢ ﻫﺎي ﻫﻴﻮرﻳﺴﺘﻴﻚ
1,2.
٥
ﻣﻘﺪﻣﻪ
ﺳﻴﺴﺘﻢﻫﺎي ﭘﻴﭽﻴﺪه اﺟﺘﻤﺎﻋﻲ ﺗﻌﺪاد زﻳﺎدي از ﻣﺴﺎﺋﻞ داراي ﻃﺒﻴﻌﺖ ﺗﺮﻛﻴﺒﺎﺗﻲ52 را ﭘﻴﺶ روي ﻣﺎ ﻗﺮار ﻣﻲدﻫﻨﺪ. ﻣﺴﻴﺮ ﻛﺎﻣﻴﻮﻧﻬﺎي ﺣﻤـﻞ
و ﻧﻘﻞ ﺑﺎﻳﺪ ﺗﻌﻴﻴﻦ ﺷﻮد، اﻧﺒﺎرﻫﺎ ﻳﺎ ﻧﻘﺎط ﻓﺮوش ﻣﺤﺼﻮﻻت ﺑﺎﻳﺪ ﺟﺎﻳﺎﺑﻲ ﺷﻮﻧﺪ، ﺷﺒﻜﻪﻫﺎي ارﺗﺒـﺎﻃﻲ ﺑﺎﻳـﺪ ﻃﺮاﺣـﻲ ﺷـﻮﻧﺪ، ﻛﺎﻧﺘﻴﻨﺮﻫـﺎ ﺑﺎﻳـﺪ
ﺑﺎرﮔﻴﺮي ﺷﻮﻧﺪ، راﺑﻂﻫﺎي رادﻳﻮﻳﻲ ﻣﻲﺑﺎﻳﺴﺖ داراي ﻓﺮﻛﺎﻧﺲ ﻣﻨﺎﺳﺐ ﺑﺎﺷﻨﺪ، ﻣﻮاد اوﻟﻴﻪ ﭼﻮب، ﻓﻠﺰ، ﺷﻴﺸﻪ و ﭼﺮم ﺑﺎﻳﺪ ﺑﻪ اﻧـﺪازهﻫـﺎي ﻻزم
ﺑﺮﻳﺪه ﺷﻮﻧﺪ؛ از اﻳﻦ دﺳﺖ ﻣﺴﺎﺋﻞ ﺑﻲﺷﻤﺎرﻧﺪ. ﺗﺌﻮري ﭘﻴﭽﻴﺪﮔﻲ ﺑﻪ ﻣﺎ ﻣﻲ ﮔﻮﻳﺪ ﻛﻪ ﻣﺴﺎﺋﻞ ﺗﺮﻛﻴﺒﺎﺗﻲ اﻏﻠﺐ ﭘﻠﻲﻧﻮﻣﻴﺎل ﻧﻴﺴﺘﻨﺪ. اﻳﻦ ﻣﺴﺎﺋﻞ
در اﻧﺪازهﻫﺎي ﻛﺎرﺑﺮدي و ﻋﻤﻠﻲ ﺧﻮد ﺑﻪ ﻗﺪري ﺑﺰرگ ﻫﺴﺘﻨﺪ ﻛﻪ ﻧﻤﻲﺗﻮان ﺟﻮاب ﺑﻬﻴﻨﻪ آﻧﻬﺎ را در ﻣﺪت زﻣﺎن ﻗﺎﺑﻞ ﭘﺬﻳﺮش ﺑﻪ دﺳﺖ آورد.
ﺑﺎ اﻳﻦ وﺟﻮد، اﻳﻦ ﻣﺴﺎﺋﻞ ﺑﺎﻳﺪ ﺣﻞ ﺷﻮﻧﺪ و ﺑﻨﺎﺑﺮاﻳﻦ ﭼﺎرهاي ﻧﻴﺴﺖ ﻛﻪ ﺑﻪ ﺟﻮاﺑﻬﺎي زﻳﺮ ﺑﻬﻴﻨﻪ62 ﺑﺴﻨﺪه ﻧﻤﻮد ﺑﻪ ﮔﻮﻧﻪاي ﻛﻪ داراي ﻛﻴﻔﻴـﺖ
ﻗﺎﺑﻞ ﭘﺬﻳﺮش ﺑﻮده و در ﻣﺪت زﻣﺎن ﻗﺎﺑﻞ ﭘﺬﻳﺮش ﺑﻪ دﺳﺖ آﻳﻨﺪ.
ﭼﻨﺪﻳﻦ روﻳﻜﺮد ﺑﺮاي ﻃﺮاﺣﻲ ﺟﻮاﺑﻬﺎي ﺑﺎ ﻛﻴﻔﻴﺖ ﻗﺎﺑﻞ ﭘﺬﻳﺮش ﺗﺤﺖ ﻣﺤﺪودﻳﺖ زﻣﺎﻧﻲ ﻗﺎﺑﻞ ﭘﺬﻳﺮش ﭘﻴﺸﻨﻬﺎد ﺷﺪه اﺳﺖ. اﻟﮕـﻮرﻳﺘﻢﻫـﺎﻳﻲ
ﻫﺴﺘﻨﺪ ﻛﻪ ﻣﻲﺗﻮاﻧﻨﺪ ﻳﺎﻓﺘﻦ ﺟﻮاﺑﻬﺎي ﺧﻮب در ﻓﺎﺻﻠﻪ ﻣﺸﺨﺼﻲ از ﺟﻮاب ﺑﻬﻴﻨﻪ را ﺗـﻀﻤﻴﻦ ﻛﻨﻨـﺪ ﻛـﻪ ﺑـﻪ آﻧﻬـﺎ اﻟﮕـﻮرﻳﺘﻢﻫـﺎي ﺗﻘﺮﻳﺒـﻲ
ﻣﻲﮔﻮﻳﻨﺪ. اﻟﮕﻮرﻳﺘﻢﻫﺎي دﻳﮕﺮي ﻫﺴﺘﻨﺪ ﻛﻪ ﺗﻀﻤﻴﻦ ﻣﻲدﻫﻨﺪ ﺑﺎ اﺣﺘﻤﺎل ﺑﺎﻻ ﺟﻮاب ﻧﺰدﻳﻚ ﺑﻬﻴﻨﻪ ﺗﻮﻟﻴﺪ ﻛﻨﻨﺪ ﻛﻪ ﺑـﻪ آﻧﻬـﺎ اﻟﮕـﻮرﻳﺘﻢﻫـﺎي
اﺣﺘﻤﺎﻟﻲ ﮔﻔﺘﻪ ﻣﻲﺷﻮد. ﺟﺪاي از اﻳﻦ دو دﺳﺘﻪ، ﻣﻲﺗﻮان اﻟﮕﻮرﻳﺘﻢﻫﺎﻳﻲ را ﭘﺬﻳﺮﻓﺖ ﻛﻪ ﻫﻴﭻ ﺗﻀﻤﻴﻨﻲ در اراﺋﻪ ﺟﻮاب ﻧﺪارﻧﺪ اﻣﺎ ﺑـﺮ اﺳـﺎس
ﺷﻮاﻫﺪ و ﺳﻮاﺑﻖ ﻧﺘﺎﻳﺞ آﻧﻬﺎ، ﺑﻪ ﻃﻮر ﻣﺘﻮﺳﻂ ﺑﻬﺘﺮﻳﻦ ﺗﻘﺎﺑﻞ ﻛﻴﻔﻴﺖ و زﻣﺎن ﺣﻞ ﺑﺮاي ﻣﺴﺌﻠﻪ ﻣﻮرد ﺑﺮرﺳﻲ را ﺑﻪ ﻫﻤﺮاه داﺷـﺘﻪاﻧـﺪ. ﺑـﻪ اﻳـﻦ
اﻟﮕﻮرﻳﺘﻢﻫﺎ، اﻟﮕﻮرﻳﺘﻢﻫﺎي ﻫﻴﻮرﻳﺴﺘﻴﻚ ﮔﻔﺘﻪ ﻣﻲﺷﻮد.
ﻫﻴﻮرﻳﺴﺘﻴﻚﻫﺎ ﻋﺒﺎرﺗﻨﺪ از ﻣﻌﻴﺎرﻫﺎ، روﺷﻬﺎ ﻳﺎ اﺻﻮﻟﻲ ﺑﺮاي ﺗﺼﻤﻴﻢﮔﻴﺮي ﺑﻴﻦ ﭼﻨﺪ ﮔﺰﻳﻨﻪ ﺧﻂﻣﺸﻲ و اﻧﺘﺨﺎب اﺛﺮﺑﺨﺶﺗﺮﻳﻦ ﺑﺮاي دﺳﺘﻴﺎﺑﻲ
ﺑﻪ اﻫﺪاف ﻣﻮرد ﻧﻈﺮ. ﻫﻴﻮرﻳﺴﺘﻴﻚﻫﺎ ﻧﺘﻴﺠﻪ ﺑﺮﻗﺮاري اﻋﺘﺪال ﺑﻴﻦ دو ﻧﻴﺎز ﻫﺴﺘﻨﺪ: ﻧﻴﺎز ﺑﻪ ﺳﺎﺧﺖ ﻣﻌﻴﺎرﻫﺎي ﺳﺎده و در ﻫﻤﺎن زﻣﺎن ﺗﻮاﻧـﺎﻳﻲ
ﺗﻤﺎﻳﺰ درﺳﺖ ﺑﻴﻦ اﻧﺘﺨﺎبﻫﺎي ﺧﻮب و ﺑﺪ.
ﻳﻚ ﻫﻴﻮرﻳﺴﺘﻴﻚ ﻣﻲﺗﻮاﻧﺪ ﺣﺴﺎﺑﻲ ﺳﺮاﻧﮕﺸﺘﻲ ﺑﺎﺷﺪ ﻛﻪ ﺑﺮاي ﻫﺪاﻳﺖ ﻳﻚ دﺳﺘﻪ از اﻗﺪاﻣﺎت ﺑﻪ ﻛﺎر ﻣﻲرود. ﺑﺮاي ﻣﺜﺎل، ﻳﻚ روش ﻣﺸﻬﻮر
ﺑﺮاي اﻧﺘﺨﺎب ﻃﺎﻟﺒﻲ رﺳﻴﺪه ﻋﺒﺎرﺗﺴﺖ از ﻓﺸﺎر دادن ﻣﺤﻞ اﺗﺼﺎل ﺑﻪ رﻳﺸﻪ از ﻳﻚ ﻃﺎﻟﺒﻲ ﻧﺎﻣﺰد اﻧﺘﺨﺎب و ﺳﭙﺲ ﺑﻮ ﻛﺮدن آن ﻣﺤﻞ. اﮔﺮ
ﺑﻮي آن ﻣﺤﻞ ﻣﺎﻧﻨﺪ ﺑﻮي داﺧﻞ ﻃﺎﻟﺒﻲ ﺑﺎﺷﺪ آن ﻃﺎﻟﺒﻲ ﺑﻪ اﺣﺘﻤﺎل زﻳﺎد رﺳﻴﺪه اﺳﺖ. اﻳﻦ ﻗﺎﻋﺪه ﺳﺮاﻧﮕﺸﺘﻲ ﻧﻪ ﺗﻀﻤﻴﻦ ﻣﻲﻛﻨﺪ ﻛﻪ ﺗﻨﻬﺎ
ﻃﺎﻟﺒﻲﻫﺎي رﺳﻴﺪه ﺑﻪ ﻋﻨﻮان ﻧﺎﻣﺰد اﻧﺘﺨﺎب ﺷﻮﻧﺪ و ﻧﻪ ﺗﻀﻤﻴﻦ ﻣﻲﻛﻨﺪ ﻛﻪ ﻃﺎﻟﺒﻲﻫﺎي رﺳﻴﺪه آزﻣﺎﻳﺶ ﺷﺪه، رﺳﻴﺪه ﺗﺸﺨﻴﺺ داده ﺷﻮﻧﺪ
Combinatorial
suboptimal
52
62
12. اﻣﺎ ﺑﻪ ﻫﺮ ﺣﺎل اﻳﻦ روش، اﺛﺮﺑﺨﺶﺗﺮﻳﻦ روش ﺷﻨﺎﺧﺘﻪ ﺷﺪه اﺳﺖ.
ﺑﻪ ﻋﻨﻮان ﻣﺜﺎﻟﻲ دﻳﮕﺮ از اﺳﺘﻔﺎده ﻫﻴﻮرﻳﺴﺘﻴﻚﻫﺎ، ﻳﻚ اﺳﺘﺎد ﺑﺰرگ ﺷﻄﺮﻧﺞ را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ ﻛﻪ ﺑﺎ اﻧﺘﺨﺎب ﺑﻴﻦ ﭼﻨﺪﻳﻦ ﺣﺮﻛﺖ ﻣﻤﻜﻦ
روﺑﺮو ﺷﺪه اﺳﺖ. وي ﻣﻤﻜﻦ اﺳﺖ ﺗﺼﻤﻴﻢ ﺑﮕﻴﺮد ﻛﻪ ﻳﻚ ﺣﺮﻛﺖ ﺧﺎص، اﺛﺮﺑﺨﺶﺗﺮﻳﻦ ﺣﺮﻛﺖ ﺧﻮاﻫﺪ ﺑﻮد زﻳﺮا ﻣﻮﻗﻌﻴﺘﻲ ﻓﺮاﻫﻢ ﻣﻲآورد
ﻛﻪ »ﺑﻪ ﻧﻈﺮ ﻣﻲرﺳﺪ« ﺑﻬﺘﺮ از ﻣﻮﻗﻌﻴﺖﻫﺎي ﺣﺎﺻﻞ از ﺣﺮﻛﺖﻫﺎي دﻳﮕﺮ ﺑﺎﺷﺪ. ﺑﻪ ﻛﺎرﮔﻴﺮي ﻣﻌﻴﺎر »ﺑﻪ ﻧﻈﺮ ﻣﻲرﺳﺪ« ﺧﻴﻠﻲ ﺳﺎدهﺗﺮ از
ﺗﻌﻴﻴﻦ دﻗﻴﻖ ﺣﺮﻛﺖ ﻳﺎ ﺣﺮﻛﺎﺗﻲ ﺧﻮاﻫﺪ ﺑﻮد ﻛﻪ ﺣﺮﻳﻒ را ﻣﺠﺒﻮر ﺑﻪ ﻣﺎت ﻛﻨﺪ. اﻳﻦ واﻗﻌﻴﺖ ﻛﻪ اﺳﺎﺗﻴﺪ ﺑﺰرگ ﺷﻄﺮﻧﺞ ﻫﻤﻮاره ﭘﻴﺮوز ﺑﺎزي
ﻧﺨﻮاﻫﻨﺪ ﺑﻮد ﻧﺸﺎن دﻫﻨﺪه اﻳﻦ اﺳﺖ ﻛﻪ ﻫﻴﻮرﻳﺴﺘﻴﻚﻫﺎي آﻧﻬﺎ اﻧﺘﺨﺎب اﺛﺮﺑﺨﺶﺗﺮﻳﻦ ﺣﺮﻛﺖ را ﺗﻀﻤﻴﻦ ﻧﻤﻲﻛﻨﻨﺪ. ﻧﻬﺎﻳﺘﺎ وﻗﺘﻲ از آﻧﻬﺎ
ﺧﻮاﺳﺘﻪ ﻣﻲﺷﻮد ﻛﻪ ﻫﻴﻮرﻳﺴﺘﻴﻚ ﺧﻮد را ﺗﺸﺮﻳﺢ ﻧﻤﺎﻳﻨﺪ آﻧﻬﺎ ﻓﻘﻂ ﺗﻮﺻﻴﻔﻲ ﻧﺎﻗﺺ از ﻗﻮاﻋﺪي اراﺋﻪ ﻣﻲدﻫﻨﺪ و ﺑﻪ ﻧﻈﺮ ﺧﻮد آﻧﻬﺎ، اﻧﺠﺎم آن
ﻗﻮاﻋﺪ از ﺗﻮﺻﻴﻒ آﻧﺎن ﺳﺎدهﺗﺮ اﺳﺖ.
ﺧﺎﺻﻴﺖ ﻫﻴﻮرﻳﺴﺘﻴﻚﻫﺎي ﺧﻮب اﻳﻦ اﺳﺖ ﻛﻪ اﺑﺰار ﺳﺎدهاي ﺑﺮاي ﺗﺸﺨﻴﺺ ﺧﻂﻣﺸﻲﻫﺎي ﺑﻬﺘﺮ اراﺋـﻪ دﻫﻨـﺪ و در ﺣـﺎﻟﻲ ﻛـﻪ ﺑـﻪ ﺻـﻮرت
ﺷﺮﻃﻲ ﻻزم، ﺗﺸﺨﻴﺺ ﺧﻂﻣﺸﻲﻫﺎي اﺛﺮﺑﺨﺶ را ﺗﻀﻤﻴﻦ ﻧﻤﻲﻛﻨﻨﺪ اﻣﺎ اﻏﻠﺐ ﺑﻪ ﺻﻮرت ﺷﺮط ﻛﺎﻓﻲ اﻳﻦ ﺗﻀﻤﻴﻦ را ﻓﺮاﻫﻢ آورﻧـﺪ. ﺑﻴـﺸﺘﺮ
ﻣﺴﺎﺋﻞ ﭘﻴﭽﻴﺪه ﻧﻴﺎزﻣﻨﺪ ارزﻳﺎﺑﻲ ﺗﻌﺪاد اﻧﺒﻮﻫﻲ از ﺣﺎﻟﺖﻫﺎي ﻣﻤﻜﻦ ﺑﺮاي ﺗﻌﻴﻴﻦ ﻳﻚ ﺟﻮاب دﻗﻴﻖ ﻣﻲﺑﺎﺷﻨﺪ. زﻣﺎن ﻻزم ﺑـﺮاي ﻳـﺎﻓﺘﻦ ﻳـﻚ
ﺟﻮاب دﻗﻴﻖ اﻏﻠﺐ ﺑﻴﺸﺘﺮ از ﻳﻚ ﻃﻮل ﻋﻤﺮ اﺳﺖ. ﻫﻴﻮرﻳﺴﺘﻴﻚﻫﺎ ﺑﺎ اﺳﺘﻔﺎده از روشﻫﺎي ﻧﻴﺎزﻣﻨﺪ ارزﻳﺎﺑﻲﻫﺎي ﻛﻤﺘﺮ و اراﺋـﻪ ﺟﻮاﺑﻬـﺎﻳﻲ در
ﻣﺤﺪودﻳﺖﻫﺎي زﻣﺎﻧﻲ ﻗﺎﺑﻞ ﻗﺒﻮل داراي ﻧﻘﺸﻲ اﺛﺮﺑﺨﺶ در ﺣﻞ ﭼﻨﻴﻦ ﻣﺴﺎﺋﻞ ﺧﻮاﻫﻨﺪ ﺑﻮد . ]3[
2,2.
اﻧﻮاع اﻟﮕﻮرﻳﺘﻢﻫﺎي ﻫﻴﻮرﻳﺴﺘﻴﻚ
در ﺣﺎﻟﺖ ﻛﻠﻲ ﺳﻪ دﺳﺘﻪ از اﻟﮕﻮرﻳﺘﻢﻫﺎي ﻫﻴﻮرﻳﺴﺘﻴﻚ ﻗﺎﺑﻞ ﺗﺸﺨﻴﺺ اﺳﺖ:
اﻟﮕﻮرﻳﺘﻢﻫﺎﻳﻲ ﻛﻪ ﺑﺮ وﻳﮋﮔﻲﻫﺎي ﺳﺎﺧﺘﺎري ﻣﺴﺌﻠﻪ و ﺳﺎﺧﺘﺎر ﺟﻮاب ﻣﺘﻤﺮﻛﺰ ﻣﻲﺷﻮﻧﺪ و ﺑﺎ اﺳﺘﻔﺎده از آﻧﻬﺎ اﻟﮕﻮرﻳﺘﻢﻫﺎي ﺳـﺎزﻧﺪه
ﻳﺎ ﺟﺴﺘﺠﻮي ﻣﺤﻠﻲ ﺗﻌﺮﻳﻒ ﻣﻲﻛﻨﻨﺪ.
اﻟﮕﻮرﻳﺘﻢﻫﺎﻳﻲ ﻛﻪ ﺑﺮ ﻫﺪاﻳﺖ ﻫﻴﻮرﻳﺴﺘﻴﻚ ﻳﻚ اﻟﮕﻮرﻳﺘﻢ ﺳﺎزﻧﺪه ﻳﺎ ﺟﺴﺘﺠﻮي ﻣﺤﻠـﻲ ﻣﺘﻤﺮﻛـﺰ ﻣـﻲﺷـﻮﻧﺪ ﺑـﻪ ﮔﻮﻧـﻪاي ﻛـﻪ آن
اﻟﮕﻮرﻳﺘﻢ ﺑﺘﻮاﻧﺪ ﺑﺮ ﺷﺮاﻳﻂ ﺣﺴﺎس )ﻣﺎﻧﻨﺪ ﻓﺮار از ﺑﻬﻴﻨﻪ ﻣﺤﻠﻲ( ﻏﻠﺒﻪ ﻛﻨﺪ. ﺑﻪ اﻳﻦ اﻟﮕﻮرﻳﺘﻢﻫﺎ، ﻣﺘﺎﻫﻴﻮرﻳﺴﺘﻴﻚ ﮔﻔﺘﻪ ﻣﻲﺷﻮد.
اﻟﮕﻮرﻳﺘﻢﻫﺎﻳﻲ ﻛﻪ ﺑﺮ ﺗﺮﻛﻴﺐ ﻳﻚ ﭼﺎرﭼﻮب ﻳﺎ ﻣﻔﻬﻮم ﻫﻴﻮرﻳﺴﺘﻴﻚ ﺑﺎ ﮔﻮﻧﻪﻫﺎﻳﻲ از ﺑﺮﻧﺎﻣﻪرﻳﺰي رﻳﺎﺿﻲ )ﻣﻌﻤﻮﻻً روﺷﻬﺎي دﻗﻴـﻖ(
ﻣﺘﻤﺮﻛﺰ ﻣﻲﺷﻮﻧﺪ..
13. ﻫﻴﻮرﻳﺴﺘﻴﻚﻫﺎي ﻧﻮع اول ﻣﻲﺗﻮاﻧﻨﺪ ﺧﻴﻠﻲ ﺧﻮب ﻋﻤﻞ ﻛﻨﻨﺪ )ﮔﺎﻫﻲ اوﻗﺎت ﺗﺎ ﺣﺪ ﺑﻬﻴﻨﮕﻲ( اﻣﺎ ﻣﻲﺗﻮاﻧﻨـﺪ در ﺟـﻮابﻫـﺎي داراي ﻛﻴﻔﻴـﺖ
ﭘﺎﻳﻴﻦ ﮔﻴﺮ ﻛﻨﻨﺪ. ﻫﻤﺎن ﻃﻮر ﻛﻪ اﺷﺎره ﺷﺪ ﻳﻜﻲ از ﻣﺸﻜﻼت ﻣﻬﻢ اﻳﻦ اﻟﮕﻮرﻳﺘﻢﻫﺎ ﺑﺎ آن روﺑﺮو ﻣﻲﺷﻮﻧﺪ اﻓﺘﺎدن در ﺑﻬﻴﻨﻪﻫﺎي ﻣﺤﻠﻲ اﺳـﺖ
ﺑﺪون اﻳﻨﻜﻪ ﻫﻴﭻ ﺷﺎﻧﺴﻲ ﺑﺮاي ﻓﺮار از آﻧﻬﺎ داﺷﺘﻪ ﺑﺎﺷﻨﺪ. ﺑﺮاي ﺑﻬﺒﻮد اﻳﻦ اﻟﮕﻮرﻳﺘﻢﻫﺎ از اواﺳﻂ دﻫﻪ ﻫﻔﺘﺎد، ﻣﻮج ﺗﺎزهاي از روﻳﻜﺮدﻫـﺎ آﻏـﺎز
ﮔﺮدﻳﺪ. اﻳﻦ روﻳﻜﺮدﻫﺎ ﺷﺎﻣﻞ اﻟﮕﻮرﻳﺘﻢﻫﺎﻳﻲ اﺳﺖ ﻛﻪ ﺻﺮﻳﺤﺎً ﻳﺎ ﺑﻪ ﺻﻮرت ﺿﻤﻨﻲ ﺗﻘﺎﺑﻞ ﺑﻴﻦ اﻳﺠﺎد ﺗﻨﻮع ﺟﺴﺘﺠﻮ )وﻗﺘـﻲ ﻋﻼﺋﻤـﻲ وﺟـﻮد
دارد ﻛﻪ ﺟﺴﺘﺠﻮ ﺑﻪ ﺳﻤﺖ ﻣﻨﺎﻃﻖ ﺑﺪ ﻓﻀﺎي ﺟﺴﺘﺠﻮ ﻣﻲرود( و ﺗﺸﺪﻳﺪ ﺟﺴﺘﺠﻮ )ﺑﺎ اﻳﻦ ﻫﺪف ﻛﻪ ﺑﻬﺘﺮﻳﻦ ﺟﻮاب در ﻣﻨﻄﻘﻪ ﻣﻮرد ﺑﺮرﺳﻲ
را ﭘﻴﺪا ﻛﻨﺪ( را ﻣﺪﻳﺮﻳﺖ ﻣﻲﻛﻨﻨﺪ..
اﻳﻦ اﻟﮕﻮرﻳﺘﻢﻫﺎ ﻣﺘﺎﻫﻴﻮرﻳﺴﺘﻴﻚ ﻧﺎ ﻣﻴﺪه ﻣﻲﺷﻮﻧﺪ. از ﺑﻴﻦ اﻳﻦ اﻟﮕﻮرﻳﺘﻢﻫﺎ ﻣﻲﺗﻮان ﺑﻪ ﻣﻮارد زﻳﺮ اﺷﺎره ﻛﺮد:
72ﺑﺎزﭘﺨﺖ ﺷﺒﻴﻪ ﺳﺎزي ﺷﺪه
82ﺟﺴﺘﺠﻮي ﻣﻤﻨﻮع
92اﻟﮕﻮرﻳﺘﻢﻫﺎي ژﻧﺘﻴﻚ
03ﺷﺒﻜﻪﻫﺎي ﻋﺼﺒﻲ ﻣﺼﻨﻮﻋﻲ
13ﺑﻬﻴﻨﻪﺳﺎزي ﻣﻮرﭼﻪاي ﻳﺎ اﻟﮕﻮرﻳﺘﻢﻫﺎي ﻣﻮرﭼﻪ
72
)Simulated Annealing (SA
)Tabu Search (TS
92
)Genetic Algorithms (GA
03
Neural Networks
13
)Ant Colony Optimization (ACO
82
14. اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ
1,3.
ﻣﻘﺪﻣﻪ:
اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ اﺑﺰاري ﻣﻲ ﺑﺎﺷﺪ ﻛﻪ ﺗﻮﺳﻂ آن ﻣﺎﺷﻴﻦ ﻣﻲ ﺗﻮاﻧﺪ ﻣﻜﺎﻧﻴﺰم اﻧﺘﺨﺎب ﻃﺒﻴﻌﻲ را ﺷﺒﻴﻪ ﺳﺎزي ﻧﻤﺎﻳﺪ. اﻳﻦ ﻋﻤﻞ ﺑﺎ ﺟـﺴﺘﺠﻮ
در ﻓﻀﺎي ﻣﺴﺌﻠﻪ ﺟﻬﺖ ﻳﺎﻓﺘﻦ ﺟﻮاب ﺑﺮﺗﺮ و ﻧﻪ اﻟﺰاﻣﺎ ﺑﻬﻴﻨﻪ ﺻﻮرت ﻣﻲ ﭘﺬﻳﺮد. ]1[
اﻟﮕﻮرﻳﺘﻢ ﻫﺎي ژﻧﺘﻴﻚ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻧﻈﺮﻳﻪ داروﻳﻦ در ﻣﻮرد ﺗﻜﺎﻣـﻞ ، ﺟـﺎن ﮔﺮﻓﺘﻨـﺪ . ﺳـﭙﺲ ﻧﻈﺮﻳـﻪ ﻣﺤﺎﺳـﺒﺎت ﺗﻜـﺎﻣﻠﻲ ، ﺗﻮﺳـﻂ
رﻳﭽﻨﺒﺮگ در ﺳﺎل 0691 ﻣﻌﺮﻓﻲ ﺷﺪﻧﺪ و اﻳﻦ ﻧﻈﺮﻳﻪ ﺗﻮﺳﻂ ﻣﺤﻘﻘﺎن دﻳﮕﺮ ﺗﻮﺳﻌﻪ ﻳﺎﻓﺖ ﺗﺎ در ﺳﺎل 5791 ﻣﻨﺠﺮ ﺑـﻪ اﺧﺘـﺮاع اﻟﮕـﻮرﻳﺘﻢ
23
ﻫﺎي ژﻧﺘﻴﻚ ﺗﻮﺳﻂ ﻫﺎﻻﻧﺪ
و داﻧﺸﺠﻮﻳﺎﻧﺶ ﺷﺪ.
در اﻟﮕﻮرﻳﺘﻢ ﻫﺎي ژﻧﺘﻴﻚ ﻳﻚ ﺳﺮي ﺗﻌﺎرﻳﻒ اوﻟﻴﻪ دارﻳﻢ ﻛﻪ در زﻳﺮ آﻣﺪه اﺳﺖ:
1. ژن ) : (geneواﺣﺪ ﭘﺎﻳﻪ ژﻧﺘﻴﻚ اﺳﺖ.
2. ﻓﺮم ) : (alleleﺣﺎﻟﺘﻬﺎي ﻣﺨﺘﻠﻒ ﻫﺮ ژن را ﻣﻲ ﮔﻮﻳﻨﺪ.
3. ﻛﺮوﻣﻮزوم ) : (choromosomeﺑﻪ ﮔﺮوﻫﻲ از ژﻧﻬﺎ اﻃﻼق ﻣﻲ ﺷﻮد.
ﺑﻌﺪ از ﺗﻌﺎرﻳﻒ ﺑﺎﻻ ﻣﻔﺎﻫﻴﻤﻲ از ﻗﺒﻴﻞ Encoding , Evaluation , Crossover , Mutationﻣﻄﺮح ﻣﻲ ﺷﻮد ﻛﻪ ﺑﺮ اﺳﺎس ﺳﻪ
ﺗﻌﺮﻳﻒ ﺑﺎﻻ ﻣﻄﺮح ﻣﻲ ﺷﻮﻧﺪ.
2,3.
اﺻﻮل اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ
ﺣﺎل ﺑﻪ ﺷﺮح ﻣﺮاﺣﻞ ذﻛﺮ ﺷﺪه درﻣﻘﺪﻣﻪ ﻣﻲ ﭘﺮدازﻳﻢ.
١٫٢٫٣.
: Encoding
اﻳﻦ ﻣﺮﺣﻠﻪ ﺷﺎﻳﺪ ﻣﺸﻜﻠﺘﺮﻳﻦ ﻣﺮﺣﻠﻪ ﺣﻞ ﻣﺴﺎﻟﻪ ﺑﻪ روش اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ ﺑﺎﺷﺪ.اﻳﻦ ﻣﺮﺣﻠﻪ ﺑﻪ اﻳﻦ ﻣﻔﻬﻮم اﺳﺖ ﻛﻪ ﻣﺎ ﺑﺎﻳﺪ ﺑﺎ اراﺋﻪ ﻳـﻚ
33
ﺷﺒﻴﻪ ﺳﺎزي و ﺟﺎﻳﮕﺬاري
ﺧﻮب ﺑﺮاي ﻛﻠﻴﻪ ﺟﻮاﺑﻬﺎي ﻣﻤﻜﻦ ﻣﺮاﺣﻞ ﺑﻌﺪي را اداﻣﻪ دﻫﻴﻢ. اﻫﻤﻴﺖ اﻳﻦ ﻣﺮﺣﻠﻪ ﺑﻪ اﻳﻦ دﻟﻴـﻞ اﺳـﺖ ﻛـﻪ
ﻧﺤﻮه اداﻣﻪ ﻛﺎر ﺑﻪ اﻳﻦ ﻣﺮﺣﻠﻪ ﺑﺴﺘﮕﻲ دارد.
Holland
23
15. در واﻗﻊ ﻣﺎ در اﻳﻦ ﻣﺮﺣﻠﻪ رﺷﺘﻪ ﻫﺎي ﻛﺮوﻣﻮزوﻣﻲ ﻳﺎ ﻫﻤﺎن رﺷﺘﻪ ﻫﺎي ﺑﻴﺘﻲ ﻣﻤﻜﻦ ﺑﺮاي ﺟﻮاﺑﻬﺎ را ﻣﻲ ﺳﺎزﻳﻢ. ﭼﻪ ﺑﺴﺎ ﻣـﺎ ﺑﺘـﻮاﻧﻴﻢ ﺑـﺎ
ﻳﻚ ﺷﺒﻴﻪ ﺳﺎزي ﺧﻮب ﺑﺮاي ﺟﻮاﺑﻬﺎ اﻟﮕﻮرﻳﺘﻢ را در ﻳﻚ زﻣﺎن ﺧﻮب و ﻣﻌﻘﻮل ﭘﻴﺶ ﺑﺒﺮﻳﻢ. ﺑﻌﺪ از ﺳﺎﺧﺘﺎر ﺑﻨﺪي ﺑﺮاي ﻫﺮ ﺟﻮاب ﻣﻤﻜـﻦ از
ﻛﻨﺎر ﻫﻢ ﮔﺬاﺷﺘﻦ اﻳﻦ ﺳﺎﺧﺘﺎرﻫﺎ ﺟﻤﻌﻴﺖ اوﻟﻴﻪ43 ﻣﺎ ﺳﺎﺧﺘﻪ ﻣﻲ ﺷﻮد.
ﺑﺮاي ﻣﺜﺎل ﺑﺮاي ﺷﺒﻴﻪ ﺳﺎزي اﻋﺪاد ﻳﻚ روش ﻣﻌﻤﻮل ﻛﻪ ﺑﻪ ﻛﺎر ﻣﻲ رود ﻋﺒﺎرﺗﺴﺖ از ﺗﺒﺪﻳﻞ ﻋﺪد ﺑﻪ ﻳﻚ رﺷﺘﻪ ﺑﺎﻳﻨﺮي53 .
) رﺷﺘﻪ ﺑﺎ ﻃﻮل 4 (
1 0 1 1 → 31
1001 →
٢٫٢٫٣.
9
: Evaluation
اﻳﻦ ﻣﺮﺣﻠﻪ ﻧﻴﺰ ﻧﻘﺶ ﺑﺴﻴﺎر ﻣﻬﻤﻲ را در ﺣﻞ ﻣﺴﺎﻟﻪ ﺑﻪ روش ا ﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ اﻳﻔﺎ ﻣﻲ ﻛﻨﺪ. ﻣﺎ در اﻳﻦ ﻣﺮﺣﻠﻪ ﺑﺎ ﻣﻌﺮﻓﻲ ﻳـﻚ ﻣﻌﻴـﺎر و
اﻧﺪازه ﺑﻪ ﺑﻬﺘﺮ ﺑﻮدن ﻳﺎ ﻧﺒﻮدن ﻫﺮ ﺟﻮاب ﻣﻤﻜﻦ از ﺟﻤﻌﻴﺖ اوﻟﻴﻪ ﭘﻲ ﻣﻲ ﺑﺮﻳﻢ. ﻳﻌﻨﻲ اﻳﻨﻜﻪ اﻳﻦ ﻣﻌﻴﺎر ﺑﻪ ﻣﺎ ﻣﻴﮕﻮﻳﺪ ﻛﻪ ﻣﺜﻼ ﺟـﻮاب x
واﻗﻊ در ﺟﻤﻌﻴﺖ اوﻟﻴﻪ ﭼﻘﺪر ﺧﻮب اﺳﺖ.
اﻳﻦ ﻣﻌﻴﺎر ﻣﻲ ﺗﻮاﻧﺪ ﺑﺎ ﻧﺴﺒﺖ دادن ﻳﻚ ﻋﺪد ﺑﻪ ﻫﺮ ﺟﻮاب ﻣﻤﻜﻦ ﻣﻴﺰان ﺧﻮب ﺑﻮدن آن ﺟﻮاب را ﺑﻴﺎن ﻛﻨﺪ. ﻣﺜﻼ اﮔﺮ داﺷﺘﻪ ﺑﺎﺷـﻴﻢ f
3 = ) (aو 5 = )f (b
اﻳﻦ ﺑﻪ اﻳﻦ ﻣﻌﻨﻲ اﺳﺖ ﻛﻪ ﻋﻀﻮ bدر ﺟﻤﻌﻴﺖ اوﻟﻴﻪ ﺑﻬﺘﺮ از aاﺳـﺖ ﻳـﺎ ﻣﻘـﺪار Fitnessﺑـﺎﻻﺗﺮي
ﻧﺴﺒﺖ ﺑﻪ aدارد.
3,2,3. : Crossover
ﺑﻪ اﻳﻦ ﻣﻄﻠﺐ اﺷﺎره ﺷﺪ ﻛﻪ در اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ ﺑﺮاي ﺑﻮﺟﻮد آوردن ﻳﻚ ﻧﺴﻞ ﺟﺪﻳﺪ ) ﻳﺎ ﻳﻚ ﺳﺮي ﻛﺮوﻣﻮزوم ﺟﺪﻳﺪ ( از ﺟﻮاﺑﻬـﺎ ﻣـﺎ
ﻳﻚ ﺳﺮي از ﺗﻐﻴﻴﺮات را روي ﺟﻮاﺑﻬﺎي اﻧﺘﺨﺎب ﺷﺪه
63
ﻳﺎ ﻛﺮوﻣﻮزوﻣﻬﺎ اﻋﻤﺎل ﻣﻲ ﻛﻨﻴﻢ. ﺑﻪ اﻳﻦ ﺳـﺮي از ﺗﻐﻴﻴـﺮات اﻋﻤـﺎل ﻋﻤﻠﮕـﺮ ﻣـﻲ
ﮔﻮﻳﻴﻢ. ﻋﻤﻠﮕﺮﻫﺎي ﻣﺎ در اﻳﻦ ﺗﻐﻴﻴﺮات دو ﻋﻤﻠﮕﺮ Crossoverو Mutationﻣﻲ ﺑﺎﺷﺪ ﻛـﻪ ﻣـﺎ در اﻳـﻦ ﻗـﺴﻤﺖ ﺑـﻪ ﻧﺤـﻮه ﻋﻤﻠﻜـﺮد
Crossoverﻣﻲ ﭘﺮدازﻳﻢ.
33
Representation
First Population
53
binary string
63
Selected
43
16. ﻋﻤﻠﮕﺮ Crossoverروي ﺟﻮاﺑﻬﺎي اﻧﺘﺨﺎب ﺷﺪه ﺑﺮاي ﺗﻐﻴﻴﺮ ﺑﻪ اﻳﻦ ﮔﻮﻧﻪ ﻋﻤﻞ ﻣﻲ ﻛﻨﺪ ﻛﻪ ﻳﻚ ﻧﻘﻄﻪ ﺑﻪ ﺻﻮرت ﺗﺼﺎدﻓﻲ روي رﺷﺘﻪ
ﻛﺮوﻣﻮزوﻣﻲ اﻧﺘﺨﺎب ﻣﻲ ﻛﻨﺪ )ﻛﻪ اﻟﺒﺘﻪ randomاﺳﺖ( ﺑﻌﺪ ﻧﺎﺣﻴﻪ ﻫﺎي ﭼﭗ ﻳﺎ راﺳﺖ آن ﻧﻘﻄﻪ در رﺷﺘﻪ ﻛﺮوﻣﻮزوﻣﻲ ﺟﺎ ﺑﻪ ﺟﺎ ﻣﻴﺸﻮد.
در ﺷﻜﻞ 1 - 3 ﻧﻤﻮﻧﻪ ﻫﺎﻳﻲ از crossoverﺑﺎ ﻳﻚ ﻧﻘﻄﻪ اﻧﺘﺨﺎﺑﻲ را ﻣﺸﺎﻫﺪه ﻣﻲ ﻛﻨﻴﺪ.
ﺷﻜﻞ 1 – 3 ) crossoverﺑﺎ ﻳﻚ ﻧﻘﻄﻪ اﻧﺘﺨﺎﺑﻲ (
|
01101100100 11011
1 Parent
01111000011 11011
2 Parent
01111000011 11011
1 child
01101100100 11011
2 child
|
|
|
ﻫﻤﭽﻨﻴﻦ ﺑﺮاي crossoverﻣﻲ ﺗﻮاﻧﻴﻢ دو ﻧﻘﻄﻪ اﻧﺘﺨﺎب ﻛﻨﻴﻢ و ﻧﺎﺣﻴﻪ ﻫﺎي ﺑﻴﻦ دو ﻧﻘﻄﻪ را ﺟﺎ ﺑﻪ ﺟﺎ ﻛﻨﻴﻢ.
) ﺷﻜﻞ 2 – 3 (
ﺷﻜﻞ 2 – 3 ) crossoverﺑﺎ دو ﻧﻘﻄﻪ اﻧﺘﺨﺎﺑﻲ (
|
|
|
|
011011 00100 11011 1 Parent
011110 00011 11011 2 Parent
|
|
|
|
011011 00011 11011
011110 00100 11011
4,2,3. Mutation
1 child
2 child
17. Mutationﻧﻴﺰ ﻋﻤﻠﮕﺮ دﻳﮕﺮي ﻫﺴﺖ ﻛﻪ ﺟﻮاﺑﻬﺎي ﻣﻤﻜﻦ دﻳﮕﺮي را ﻣﺘﻮﻟﺪ ﻣﻲ ﻛﻨﺪ. ﻧﺤﻮه ﻋﻤﻠﻜﺮد آن ﺑﻪ اﻳﻦ ﮔﻮﻧـﻪ اﺳـﺖ ﺑـﻪ ﺻـﻮرت
ﺗﺼﺎدﻓﻲ روي ﻛﺮوﻣﻮزوم اﻧﺘﺨﺎﺑﻲ ﻧﻘﻄﻪ اي را اﻧﺘﺨﺎب ﻛﺮده و ﻓﺮم 73 آن را ﺗﻐﻴﻴﺮ ﻣﻲ دﻫﺪ. در ﺷﻜﻞ ﻳـﻚ ﺑﻌـﺪ از اﻧﺘﺨـﺎب ﻧﻘﻄـﻪ ﻓـﺮم آن
ﺗﻐﻴﻴﺮ ﻣﻲ ﻛﻨﺪ و ﻣﻲ ﺗﻮاﻧﺪ ﻋﺪد دﻳﮕﺮي ﻣﺜﻞ 2 اﺧﺘﻴﺎر ﻛﻨﺪ.)ﺷﻜﻞ 3-3(
1
011110000111 011 Original offspring
0
011110000111 011
۵٫٢٫٣.
Mutated offspring
Decoding
ﻋﻜﺲ ﻋﻤﻞ encodingاﺳﺖ. در اﻳﻦ ﻣﺮﺣﻠﻪ ﺑﻌﺪ از اﻳﻨﻜﻪ اﻟﮕﻮرﻳﺘﻢ ﺑﻬﺘﺮﻳﻦ ﺟﻮاب را ﺑﺮاي ﻣﺴﺎﻟﻪ اراﺋﻪ ﻛﺮد ﻻزم اﺳﺖ ﻋﻜﺲ ﻋﻤﻞ
رﻣﺰﮔﺬاري روي ﺟﻮاﺑﻬﺎ ﻳﺎ ﻫﻤﺎن decodingاﻋﻤﺎل ﺷﻮد ﺗﺎ ﺑﺘﻮاﻧﻴﻢ ﻧﺴﺨﻪ واﻗﻌﻲ ﺟﻮاب را ﺑﻪ وﺿﻮح در دﺳﺖ داﺷﺘﻪ ﺑﺎﺷﻴﻢ.
3,3.
ﻣﺮاﺣﻞ اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ
اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ ﺑﺎ اﻧﺠﺎم ﻗﺪم ﺑﻪ ﻗﺪم ﻣﺮاﺣﻞ زﻳﺮ ﭘﻴﺸﺮﻓﺖ ﻣﻲ ﻛﻨﺪ:
1.
ﺷﺮوع اﻟﮕﻮرﻳﺘﻢ ﺑﺎ ﻳﻚ ﺟﻤﻌﻴﺖ ﻣﺘﺸﻜﻞ از nﻓﺮد ﺗﺼﺎدﻓﻲ ﻛﻪ ﻫﺮ ﻛﺪام ﻛﺮوﻣﻮزوﻣﻲ ﺑﻪ ﻃﻮل lدارﻧﺪ.
2.
ﻣﺤﺎﺳﺒﻪ fitnessﺑﺮاي ﻫﺮ ﻓﺮد
3.
اﻧﺘﺨﺎب دو ﻓﺮد ﺑﺮ اﺳﺎس ﺑﺎﻻﺗﺮ ﺑﻮدن ) fitnessاﻧﺘﺨﺎب واﻟﺪﻳﻦ(
4.
اﻋﻤﺎل crossoverو ﺗﻮﻟﺪ ﺑﭽﻪ ﻫﺎ از واﻟﺪﻳﻦ
5.
اﻋﻤﺎل mutationﺑﺎ اﺣﺘﻤﺎل pﺑﺮاي ﻫﺮ ب
6.
ﻗﺮار دادن ﺑﭽﻪ ﻫﺎي ﻣﺘﻮﻟﺪ ﺷﺪه داﺧﻞ ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﺑﻪ ﻋﻨﻮان ﻧﺴﻞ ﺟﺪﻳﺪ
allele
73
18. 83
7.
ﺗﻐﻴﻴﺮ دادن ﺟﻤﻌﻴﺖ اوﻟﻴﻪ ﻫﻤﺮاه ورود ﻧﺴﻞ ﺟﺪﻳﺪ
8.
رﻓﺘﻦ ﺑﻪ ﻗﺪم 2
در اﺑﺘﺪاي اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ ﻳﻚ ﺟﻤﻌﻴﺖ اوﻟﻴﻪ ﺷﺎﻣﻞ nﺟﻮاب ﻣﻤﻜـﻦ ﺗـﺼﺎدﻓﻲ درﺳـﺖ ﻣـﻲ ﻛﻨـﻴﻢ . ﺑﻌـﺪ ﺗـﺎﺑﻊ ارزﻳـﺎ ﺑـﻲ93 ﻣﻘـﺪار
ﺑﺮازﻧﺪﮔﻲ04 ﻫﺮ ﺟﻮاب را ﺣﺴﺎب ﻣﻲ ﻛﻨﺪ. . ﻳﻚ ﺗﺎﺑﻊ اﻧﺘﺨﺎب14 ﺑﺮ اﺳﺎس اﻳﻨﻜﻪ ﻫﺮ ﺟﻮاﺑﻲ ﻛﻪ ﺑﺮازﻧﺪﮔﻲ ﺑﺎﻻﺗﺮي داﺷﺖ اﺣﺘﻤـﺎل اﻧﺘﺨـﺎب
ﺑﻴﺸﺘﺮي دارد دو parentاﻧﺘﺨﺎب ﻣﻲ ﻛﻨﺪ ﺑﺮاي ﻣﺮﺣﻠﻪ ﺑﻌﺪ ﻋﻤﻠﮕﺮﻫـﺎي crossoverو mutationروي ﻛﺮوﻣـﻮزوم ﻫـﺎي اﻧﺘﺨـﺎب
ﺷﺪه اﻋﻤﺎل ﻣﻲ ﺷﻮد.
ﺑﻌﺪ از اﻳﻦ ﻣﺮﺣﻠﻪ ﺗﻌﺪادي از ﺟﻮاﺑﻬﺎي ﺑﺪ ﻳﻌﻨﻲ ﺑﺎ ﺑﺮازﻧﺪﮔﻲ ﭘﺎﻳﻴﻦ ﺣﺬف ﻣﻲ ﺷﻮﻧﺪ و ﺟﺎي ﺧﻮد را ﺑﻪ ﺑﭽﻪ ﻫﺎي ﻣﺘﻮﻟـﺪ ﺷـﺪه و ﻧـﺴﻞ
ﺟﺪﻳﺪ ﻣﻲ دﻫﻨﺪ. ﺑﻌﺪ از ﺗﺜﺒﻴﺖ ﻧﺴﻞ ﺟﺪﻳﺪ اﻟﮕﻮرﻳﺘﻢ ﺑﺎر دﻳﮕﺮ ﺑﻪ ﻣﺮﺣﻠﻪ ارزﻳﺎﺑﻲ ﺑﺮﻣﻲ ﮔﺮدد.
ﻫﻤﺎن ﻃﻮر ﻛﻪ اﺷﺎره ﺷﺪ ﻋﻤﻞ اﻧﺘﺨﺎب )ﻣﺮﺣﻠﻪ 3 ( ﺑﺮاﻳﻦ اﺳﺎس اﻧﺠﺎم ﻣﻲ ﺷﻮد ﻛﻪ ﻫﻤﻪ ﺟﻮاﺑﻬﺎ ﺑﺮاي parentﺷﺪن ﻫـﻢ ﺷـﺎﻧﺲ
ﻧﻴﺴﺘﻨﺪ . ﺑﻪ ﻋﺒﺎرت دﻳﮕﺮ ﺟﻮاب ﻫﺎﻳﻲ اﺣﺘﻤﺎل زﻳﺎد و ﺑﺎﻻﺗﺮي ﺑﺮاي parentﺷﺪن دارﻧﺪ ﻛﻪ ﻣﻘﺪار ﺑﺮازﻧﺪﮔﻲ آﻧﻬﺎ ﺑﺎﻻﺗﺮ ﺑﺎﺷﺪ.
ﻣﺎ ﻣﻲ ﺗﻮاﻧﻴﻢ ﺑﺮاي ﻫﺮ ﺟﻮاب ﻳﻚ ﻋﺪد ﺑﻪ ﻋﻨﻮان ﺑﺮازﻧﺪﮔﻲ ﻧﻈﻴﺮ ﻛﻨﻴﻢ ٫ ﻣﺜﻼ ﺑﺮاي ﺟﻮاب ﺑﻮدن 2= xﻋﺪد 4 و ﺟـﻮاب ﺑـﻮدن 0=x
ﻋﺪد 2 را ﻧﺴﺒﺖ دﻫﻴﻢ. )ﺟﺪول 1-3 ( در اﻳﻦ ﺻﻮرت ﻣﺸﺨﺺ اﺳﺖ ﻛﻪ 2= xﺟﻮاب ﺑﻬﺘﺮي ﻧﺴﺒﺖ ﺑﻪ 0 = xاﺳـﺖ. ﺣـﺎل ﻣـﻲ ﺗـﻮاﻧﻴﻢ
ﺗﺎﺑﻊ اﺣﺘﻤﺎل و اﻧﺘﺨﺎب را ﺑﻪ اﻳﻦ ﮔﻮﻧﻪ ﺗﻌﺮﻳﻒ ﻛﻨﻴﻢ : )ﺟﻤﻌﻴﺖ24 pو اﻋﺪاد ﻧﻈﻴﺮ ﺷﺪه 43qﻓﺮض ﺷﺪه اﺳﺖ.(
اﻳﻦ ﻧﻮع اﻧﺘﺨﺎب Roulette Wheel Selectionﻧﺎﻣﻴﺪه ﻣﻲ ﺷﻮد ﻛﻪ ﺷﻜﻠﻬﺎي 4 – 3 و 5- 3 ﻧﺸﺎن
ﻣﻲ دﻫﺪ.
83
New Generation
evaluation
04
fitness
14
selection
24
population
34
quality
93
20. 4,3. ﻣﺜﺎل ﻋﺪدي
ﻓﺮض ﻛﻨﻴﺪ ﺗﺎﺑﻊ 3- f(x) = -x² + 6xرا دارﻳﻢ . ﻣﻲ ﺧﻮاﻫﻴﻢ ﺑﺮاي
51 ≤ 0 ≤ x
و x € Nﻣﺎﻛﺰﻳﻤﻢ ﺗﺎﺑﻊ را ﺑﻴﺎﺑﻴﻢ.
ﻣﺮاﺣﻞ ﺣﻞ ﻣﺴﺎﻟﻪ ﺑﻪ روش اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ ﺑﻪ ﺷﺮح زﻳﺮ اﺳﺖ :
1. encoding
ﺑﺮاي اﻳﻨﻜﻪ ﻣﺎ ﺟﻮاﺑﻬﺎي ﻣﻤﻜﻦ ﻳﻌﻨﻲ 51 ≤ 0 ≤ xرا ﻛﺪﮔﺬاري ﻛﻨﻴﻢ ﻳﻜﻲ از روﺷﻬﺎﻳﻲ ﻛﻪ در ﭘﻴﺶ دارﻳﻢ ﺗﺒﺪﻳﻞ ﻫﺮ ﻋـﺪد ﺑـﻪ ﻳـﻚ
ﻋﺪد ﺑﺎﻳﻨﺮي ﻣﺘﻨﺎﻇﺮ اﺳﺖ. ﭼﻮن ﺑﻴﺸﺘﺮﻳﻦ ﺟﻮاب ﻣﻤﻜﻦ ﻣﺎ 51 اﺳﺖ و ﻣﺘﻨﺎﻇﺮ ﺑﺎﻳﻨﺮي آن 1 1 1 1 ﭼﻬﺎر ﺑﻴﺘﻲ اﺳﺖ ﻟـﺬا ﺗﻤـﺎم ﺟـﻮاب
ﻫﺎي ﻣﺎ )ﻛﺮوﻣﻮزوم ﻫﺎ( داراي ﻃﻮﻟﻲ ﺑﺮاﺑﺮ 4= lﻣﻲ ﺑﺎﺷﻨﺪ.
2. Evaluation
ﺗﺎﺑﻌﻲ ﻛﻪ ﻣﻘﺪاري ﺑﺮاي fitnessﺣﺴﺎب ﻣﻲ ﻛﻨﺪ ﻣﺴﺘﻘﻴﻤﺎ از ﺧﻮد ﺗﺎﺑﻊ ) f(xﺑﺪﺳﺖ ﻣﻲ آﻳﺪ. ﻳﻌﻨﻲ اﮔﺮ ﺑﻪ ازاي ﻳﻚ aو f(b) b
: ) > f(aﺑﺎﺷﺪ آﻧﮕﺎه bداراي fitnessﺑﻴﺸﺘﺮي اﺳﺖ . ﻳﺎ اﻳﻨﻜﻪ bاز aﺑﻬﺘﺮ اﺳﺖ.
3. Selection
ﻓﺮض ﻛﻨﻴﻢ ﻛﻪ در آن ﺟﻤﻌﻴﺖ اوﻟﻴﻪ ﺑﺎ mﻓﺮد ﻛﻪ m < nدوﻋﺪد 3 و8 داراي fitnessﺑﻴﺸﺘﺮي ﻧـﺴﺒﺖ ﺑـﻪ ﺟﻤﻌﻴـﺖ ﺧـﻮد
ﺑﻮدﻧﺪ و اﺣﺘﻤﺎل اﻧﺘﺨﺎب ﺑﻴﺸﺘﺮي داﺷﺘﻨﺪ. ﺑﻌﺪ از اﻧﺘﺨﺎب اﻳﻦ دو ﻋﺪد ﺑﻪ ﻋﻨﻮان parentاﻟﮕﻮرﻳﺘﻢ وارد ﻣﺮاﺣﻞ ﺗﻮﻟﻴﺪ ﻧـﺴﻞ ﺟﺪﻳـﺪ ﻣـﻲ
ﺷﻮد.
6 = )3(f
1100 → 3
91- = )8(f
0001 → 8
4.
crossover
ﻓﺮض ﻛﻨﻴﻢ ﻛﻪ crossoverﻋﻤﻞ زﻳﺮ را اﻧﺠﺎم دﻫﺪ.
0100
1001
3 = point
1100
0001
21. 5. mutation
و ﻧﻴﺰ ﻋﻤﻠﮕﺮ : mutation
) 6( = 0 1 1 0
2 = point
)31( = 1 0 1 1
0100
1001
ﺣﺎل ﻛﺮوﻣﻮزوم ﻫﺎي ﻣﺘﻮﻟﺪ ﺷﺪه ﺟﺰو ﻧﺴﻞ ﺟﺪﻳﺪ ﺑﻪ ﺣﺴﺎب ﻣﻲ آﻳﻨﺪ و ﺑﻪ ﺟﻤﻌﻴﺖ اوﻟﻴﻪ اﻓﺰوده ﻣـﻲ ﺷـﻮﻧﺪ وﺟﻮاﺑﻬـﺎي ﺑـﺎ fitness
ﭘﺎﻳﻴﻦ ﺣﺬف ﻣﻲ ﺷﻮﻧﺪ و اﻟﮕﻮرﻳﺘﻢ دوﺑﺎره ﺑﺎ nﻓﺮد ﺑﻪ ﻛﺎر ﺧﻮد اداﻣﻪ ﻣﻲ دﻫﺪ.
ﻳﻚ ﻧﻜﺘﻪ ﻻزم ﺑﻪ ﺗﺬﻛﺮ اﺳﺖ ﻛﻪ ﻣﻤﻜﻦ اﺳﺖ ﺑﻬﺘﺮﻳﻦ ﺟﻮاب )ﺑﺮاي ﻣﺜﺎل 6 = ( xﻃﻲ ﻣﺮاﺣـﻞ ﺑﻌـﺪ ﺑـﻪ ﻧﺤـﻮي از ﺑـﻴﻦ ﺑـﺮود. ﺑـﺮاي
ﺟﻠﻮﮔﻴﺮي از اﻳﻦ اﻣﺮ ﺑﻌﺪ از ﻫﺮ ﺑﺎر اﻧﺠﺎم اﻟﮕﻮرﻳﺘﻢ ﺑﻬﺘﺮﻳﻦ ﺟﻮاب را در ﺟﺎﻳﻲ ﻛﻨﺎر ﻣﻲ ﮔﺬارﻳﻢ ) ( farﺗﺎ ﻫﻤﻴﺸﻪ ﺑﻬﺘﺮﻳﻦ ﺟـﻮاب ﺣﺎﺻـﻞ
از ﻫﺮ ﺑﺎر اﺟﺮاي اﻟﮕﻮرﻳﺘﻢ را داﺷﺘﻪ ﺑﺎﺷﻴﻢ.
ﻣﻌﻴﺎرﻫﺎي ﻣﺨﺘﻠﻔﻲ را ﻣﻲ ﺗﻮان ﺑﺮاي ﺗﻮﻗﻒ اﻟﮕﻮرﻳﺘﻢ در ﻧﻈﺮ ﮔﺮﻓﺖ و ﻣﻌﻤﻮﻻ ﭼﻨﺪ ﻣﻌﻴﺎر ﺑﺮاي ﺗﻮﻗﻒ اﺳﺘﻔﺎده ﻣﻲ ﺷﻮد ﺗـﺎ اﺣﺘﻤﺎﻟﻬـﺎي
ﻣﺨﺘﻠﻒ وﻗﻮع ﭘﻴﺸﺎﻣﺪﻫﺎ در ﻃﻲ اﺟﺮاي اﻟﮕﻮرﻳﺘﻢ ﺣﺴﺎب ﺷﻮﻧﺪ. ﻳﻚ ﻣﻌﻴﺎر ﻣﻲ ﺗﻮاﻧﺪ اﻳﻦ ﺑﺎﺷﺪ ﻛﻪ ﺑﻬﺘﺮﻳﻦ ﺟﻮاب را ﺑﻌﺪ از اﺟـﺮاي ﺗﻌـﺪاد
ﻣﺸﺨﺼﻲ ﺑﺎر از اﻟﮕﻮرﻳﺘﻢ ﺗﻐﻴﻴﺮ ﻧﺪﻫﺪ. ﻳﺎ ﻣﻌﻴﺎر دﻳﮕـﺮ اﻳﻨﻜـﻪ ﻣﻴـﺎﻧﮕﻴﻦ fitnessﺟﻮاﺑﻬـﺎي ﻣﻮﺟـﻮد در ﺟﻤﻌﻴـﺖ ﺟـﺎري ﻫﻤـﺎن fitness
ﺑﻬﺘﺮﻳﻦ ﺟﻮاب ﻳﺎ ﺑﺴﻴﺎر ﻧﺰدﻳﻚ ﺑﻪ آن ﺑﺎﺷﺪ.
و ﻳﺎ اﻳﻨﻜﻪ ﻣﻲ ﺗﻮاﻧﻴﻢ از ﭘﻴﺶ ﻗﺮارداد ﻛﻨﻴﻢ ﻛﻪ اﻟﮕﻮرﻳﺘﻢ ﺑﻪ ﺗﻌﺪاد ﻣﺸﺨﺼﻲ اﺟـﺮا ﺷـﻮد. ﻣﻌﻤـﻮﻻ روش ﻫـﺎي ﺗﻮﻗـﻒ ﻣﺨﺘﻠـﻒ اﺳـﺖ و
ﺑﺴﺘﮕﻲ ﺑﻪ ﭘﻴﭽﻴﺪﮔﻲ و ﭼﮕﻮﻧﮕﻲ ﻣﺴﺎﻟﻪ دارد.
در اﻳﻨﺠﺎ ﻣﺎ ﺑﺮاي ﺗﻌﺮﻳﻒ ﺗﺎﺑﻊ evaluationاز ﺧﻮد ﺗﺎﺑﻊ اﺳﺘﻔﺎده ﻛﺮدﻳﻢ و ﻟﺰوﻣﻲ ﺑﺮاي ﻧﺴﺒﺖ دﻫﻲ ﻳﻚ ﻣﻘﺪار ﺑـﻪ ﻋﻨـﻮان quality
ﻧﺒﻮد.
اﮔﺮ ﻣﺎ اﻳﻦ ﻣﺮاﺣﻞ را ﺑﻪ ﮔﻮﻧﻪ اي دﻧﺒﺎل ﻛﻨﻴﻢ ﻛﻪ ﺑﻌﺪ از ﻫﺮ ﺑﺎر اﺟﺮا ﺟﻮاب ﻫـﺎي ﺑـﺪ ﺣـﺬف و ﺟﻮاﺑﻬـﺎي ﻧـﺴﻞ ﺟﺪﻳـﺪ ﻛـﻪ اﺣﺘﻤـﺎﻻ
fitnessﺑﺎﻻﻳﻲ دارﻧﺪ ﺟﺎﻳﮕﺰﻳﻦ آﻧﻬﺎ ﺷﻮﻧﺪ ﺑﻪ ﻣﺮور ﻓﺎﺻﻠﻪ fitnessﺑﻴﻦ minو Maxﻛﻢ ﻣﻲ ﺷﻮد و ﻣﻴﺎﻧﮕﻴﻦ ﺟﻮاب ﻫﺎ ﺑﻪ ﺑﻬﺘﺮﻳﻦ
ﺟﻮاب ﻣﻴﻞ ﻣﻲ ﻛﻨﺪ و اﻳﻦ ﻧﺸﺎن ﻣﻲ دﻫﺪ ﻛﻪ ﻣﺎ ﺑﻪ ﻃﻮر ﻛﻠﻲ ﺑﻪ ﺑﻬﺘﺮﻳﻦ ﺟﻮاب ﻧﺰدﻳﻚ
ﻣﻲ ﺷﻮﻳﻢ.
ﺳﻮاﻟﻲ ﻛﻪ در اﻳﻨﺠﺎ ﻣﻄﺮح ﻣﻲ ﺷﻮد اﻳﻨﺴﺖ ﻛﻪ اﮔﺮ در ﻣﺜﺎل ﻗﺒﻞ ﺑﻪ ﺟﺎي ﻓﻀﺎي ﮔﺴﺴﺘﻪ ﻓﻀﺎي ﭘﻴﻮﺳﺘﻪ ]51 , 0[ ﻣﻄﺮح ﻣـﻲ ﺷـﺪ
اﻟﮕﻮرﻳﺘﻢ ﺑﻪ ﭼﻪ ﺷﻜﻠﻲ اﻧﺠﺎم ﻣﻲ ﮔﺮﻓﺖ؟
22. در اﻳﻦ ﺣﺎﻟﺖ ﻣﺎ ﻳﻚ εﺗﻌﺮﻳﻒ ﻣﻲ ﻛﻨﻴﻢ ﺗﺎ ﻫﺮ ﺑﻴﺖ ﺟﻮاب در ﻣﺮاﺣﻠﻲ ﻣﺜﻞ mutationﺑﻪ اﻧﺪازه εﺗﻐﻴﻴﺮ ﻛﻨﺪ. ﺑﺪﻳﻬﻲ اﺳـﺖ ﻣـﺎ
ﻫﺮ ﭼﻘﺪر اﻳﻦ εرا ﻛﻮﭼﻜﺘﺮ ﻓﺮض ﻛﻨﻴﻢ ﻣﻴﺰان ﻣﺤﺎﺳﺒﺎت و ﺗﻜﺮار اﻟﮕﻮرﻳﺘﻢ ﺑﺎﻻ ﻣﻲ رود و ﺑﻪ ﻫﻤﻴﻦ دﻟﻴﻞ زﻣﺎن اﺗﻤﺎم اﻟﮕﻮرﻳﺘﻢ ﺑﺎﻻ ﻣـﻲ
رود. ﻋﺎﻣﻞ دﻳﮕﺮي ﻛﻪ در زﻣﺎن ﻣﻮﺛﺮ اﺳﺖ nاوﻟﻴﻪ در ﺟﻤﻌﻴﺖ اوﻟﻴﻪ اﺳﺖ ﻛﻪ ﺑﺎ زﻳﺎد ﻓﺮض ﻛﺮدن nزﻣﺎن اﺗﻤﺎم ﺑﺎﻻ ﻣﻲ رود.
ﺣﺎل ﺑﻪ ذﻛﺮ دو ﻧﻜﺘﻪ ﻣﻲ ﭘﺮدازﻳﻢ:
1 ﺑﻌﺪ از ﺗﻜﺮار اﻟﮕﻮرﻳﺘﻢ ﺑﻪ ﺗﺪرﻳﺞ ﺗﻔﺎوت ﺑﻴﻦ fitnessﺟﻮاﺑﻬﺎ ﻛﻤﺘﺮ ﻣﻲ ﺷﻮد و در اﻳﻦ ﺻﻮرت ﺗﺎﺑﻊ selectionﻧﻴﺰ ﻛﻢ ﻛـﻢ اﺣﺘﻤـﺎل
ﻳﻜﺴﺎﻧﻲ را ﺑﺮاي اﻧﺘﺨﺎب ﺟﻮاﺑﻬﺎي ﻣﻤﻜﻦ ﺗﺨﺼﻴﺺ ﻣﻲ دﻫﺪ. در اﻳﻦ ﺣﺎﻟﺖ اﻟﮕﻮرﻳﺘﻢ ﭘﺎﻳﺎن ﻣﻲ ﻳﺎﺑﺪ.
) ﭼﻮن ﺑﻬﺘﺮﻳﻦ ﺟﻮاب ﻫﻢ اﺣﺘﻤﺎل اﻧﺘﺨﺎﺑﻲ ﺑﺮاﺑﺮ دﻳﮕﺮ ﺟﻮاﺑﻬﺎ دارد.(
2 . در ﺟﺮﻳﺎن اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ اﺣﺘﻤﺎل ﺗﻮﻟﻴﺪ Super - Subjectوﺟﻮد دارد. ﺑﻪ اﻳﻦ ﻣﻌﻨﻲ ﻛﻪ از ﻳﻚ ﺟﻮاب ) ﻛﺮوﻣﻮزوم ( ﺑـﻪ ﺗﻌـﺪاد
ﺑﺴﻴﺎر زﻳﺎدي ﺗﻮﻟﻴﺪ ﻣﻲ ﺷﻮد و اﻳﻦ ﺟﻤﻌﻴﺖ را ﺑﻪ ﻣﻴﺰان زﻳﺎدي اﻧﺒﻮه ﻛﺮده و ﻋﻼوه ﺑﺮ اﻳﻦ ﺑﺎﻋﺚ ﻣﻲ ﺷﻮد ﻛﻪ ﺟﻤﻌﻴﺖ ﻣـﺎ از ﺗﻨـﻮع ﺟـﻮاب
ﻛﻤﺘﺮي ﻧﺴﺒﺖ ﺑﻪ ﻣﻴﺰان ﺟﻤﻌﻴﺖ ﺑﺮﺧﻮردار ﺑﺎﺷﺪ ﻛﻪ اﻳﻦ در اﻟﮕﻮرﻳﺘﻢ اﻳﺠﺎد ﻣﺸﻜﻞ ﻣﻲ ﻛﻨﺪ.
ﺑﺮاي ﺟﻠﻮﮔﻴﺮي از اﻳﻦ ﮔﻮﻧﻪ ﻣﺸﻜﻼت ﭼﻨﺪ اﻳﺪه ﻣﻄﺮح ﻣﻲ ﺷﻮد:
) Windowing
( : ﺑﻪ اﻳﻦ ﻣﻔﻬﻮم اﺳﺖ ﻛﻪ fitnessﺑﺪﺗﺮﻳﻦ ﺟﻮاب را از fitnessﺑﻘﻴﻪ ﺟﻮاﺑﻬﺎ ﻛـﻢ ﻣـﻲ ﻛﻨـﻴﻢ. اﻳـﻦ ﻋﻤـﻞ
ﻣﻮﺟﺐ ﻣﻲ ﺷﻮد ﻛﻪ ﺗﻌﺪادي ﺟﻮاب ﺑﺎ fitnessﺻﻔﺮ ﺑﺪﺳﺖ آﻳﻨﺪ و اﻳﻦ ﻳﻌﻨﻲ اﻳﻨﻜﻪ اﺣﺘﻤﺎل اﻧﺘﺨـﺎﺑﻲ ﺑﺮاﺑـﺮ ﺻـﻔﺮ دارﻧـﺪ. و ﻧﻴـﺰ اﺣﺘﻤـﺎل
اﻧﺘﺨﺎب ﺑﻬﺘﺮﻳﻦ ﺟﻮاب ﻗﻮت ﻣﻲ ﮔﻴﺮد.
) ( Exponential
: ﺑﺮاي fitnessﻫﺮ ﺟﻮاب ﻣﻘﺪار ﺟﺪﻳﺪ رﻳﺸﻪ دوم )1 + (fitnessرا ﺑﻪ ﻛﺎر ﻣﻲ ﺑﺮﻳﻢ. اﻳﻦ ﻋﻤﻞ ﻣﻮﺟﺐ
ﻣﻲ ﺷﻮد ﺗﺎ اﺛﺮ ﻗﻮﻳﺘﺮﻳﻦ ﺟﻮاب ﺗﻌﺪﻳﻞ ﺷﻮد.
) ( Linear Transformation
: ﺑﻪ ﻛﺎر ﮔﺮﻓﺘﻦ راﺑﻄﻪ زﻳﺮ ﺑﺮاي ﺑﺪﺳﺖ آوردن fitnessﺟﺪﻳﺪ.
f2 = a ( f1 ) + b
اﻳﻦ راﺑﻄﻪ ﻫﻢ اﺛﺮ ﺑﻬﺘﺮﻳﻦ ﺟﻮاب را ﻛﻤﺘﺮ ﻣﻲ ﻛﻨﺪ.
23. ) Linear Normalization
( : ﺑﺮاي ﻣﺜﺎل در ﻳﻚ ﺟﻤﻌﻴﺖ ﺷﺎﻣﻞ 01 ﺷﻲ ﺑﺮاي اوﻟﻴﻦ ﻓﺮد ﻋـﺪد 001 و دوﻣـﻴﻦ
ﻓﺮد ﻋﺪد 09 و ... ﺑﺮاي 01 اﻣﻴﻦ ﻓﺮد ﻋﺪد 01 را ﻧﺴﺒﺖ ﻣﻲ دﻫﻴﻢ. اﻳﻦ ﻋﻤﻞ ﻣﻮﺟﺐ ﻣﻲ ﺷﻮد ﻛﻪ اﺧﺘﻼف ﺑﻴﻦ اﺣﺘﻤﺎل اﻧﺘﺨﺎب ﻓﻘﻂ ﺑﻪ
ﺗﻌﺪاد اﻓﺮاد ﺑﺴﺘﮕﻲ داﺷﺘﻪ ﺑﺎﺷﺪ. در اﻳﻦ روش ﭘﺨﺶ ﺷﺪن Distributionﻓﻘﻂ ﺑﺮ اﺳﺎس ﺗﻌﺪاد اﺳـﺖ ﻧـﻪ ﺑـﺮ اﺳـﺎس . fitnessاﻳـﻦ
روش از ﭘﺨﺶ ﺷﺪن Super - Subjectﺟﻠﻮﮔﻴﺮي ﻣﻲ ﻛﻨﺪ.
5,3.
ﻣﺰاﻳﺎ و ﻣﻌﺎﻳﺐ اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ
6
اوﻟﻴﻦ ﺧﺼﻮﺻﻴﺖ ﻣﺜﺒﺖ اﻳﻦ اﻟﮕﻮرﻳﺘﻢ دﺳﺘﻴﺎﺑﻲ ﺑﻪ ﻧﻘﻄﻪ ﺑﻬﻴﻨﻪ ﻛﻠﻲ44 ﺑﻪ ﺟﺎي ﻧﻘﻄﻪ ﺑﻬﻴﻨﻪ ﻣﺤﻠﻲ ﺳﺖ. ﻳﻌﻨـﻲ ﻫﻤﻴـﺸﻪ در ﺣـﺪ ﺑـﺴﻴﺎر
ﻣﻄﻠﻮﺑﻲ ﻣﻲﺗﻮان ﺑﻪ ﭘﺎﺳﺦ اﻳﻦ اﻟﮕﻮرﻳﺘﻢ اﻋﺘﻤﺎد ﻛﺮد و اﻳﻨﻜﻪ ﭘﺎﺳﺨﻲ ﻛﻪ ﻣﻲﻳﺎﺑﺪ ﺑﻪ اﺣﺘﻤﺎل زﻳﺎد ﺑﻬﺘﺮﻳﻦ ﭘﺎﺳﺦ ﻣﻤﻜﻦ اﺳﺖ.
روشﻫﺎي ﻛﻼﺳﻴﻚ رﻳﺎﺿﻴﺎت داراي دو اﺷﻜﺎل اﺳﺎﺳﻲ ﻫﺴﺘﻨﺪ. اﻏﻠﺐ اﻳﻦ روشﻫﺎ ﻧﻘﻄﻪ ﺑﻬﻴﻨﻪ ﻣﺤﻠﻲ54 را ﺑﻌﻨﻮان ﻧﻘﻄﻪ ﺑﻬﻴﻨﻪ ﻛﻠﻲ در ﻧﻈﺮ
ﻣﻲﮔﻴﺮﻧﺪ و ﻧﻴﺰ ﻫﺮ ﻳﻚ از اﻳﻦ روشﻫﺎ ﺗﻨﻬﺎ ﺑﺮاي ﻣﺴﺎﻟﻪ ﺧﺎﺻﻲ ﻛﺎرﺑﺮد دارﻧﺪ. اﻳﻦ دو ﻧﻜﺘﻪ را ﺑﺎ ﻣﺜﺎلﻫﺎي ﺳﺎدهاي روﺷﻦ ﻣﻲﻛﻨﻴﻢ.
ﺑﻪ ﺷﻜﻞ زﻳﺮ ﺗﻮﺟﻪ ﻛﻨﻴﺪ. اﻳﻦ ﻣﻨﺤﻨﻲ داراي دو ﻧﻘﻄﻪ ﻣﺎﻛﺰﻳﻤﻢ ﻣﻲﺑﺎﺷﺪ. ﻛﻪ ﻳﻜـﻲ از آﻧﻬـﺎ ﺗﻨﻬـﺎ ﻣـﺎﻛﺰﻳﻤﻢ ﻣﺤﻠـﻲ ﺳـﺖ. ﺣـﺎل اﮔـﺮ از
روشﻫﺎي ﺑﻬﻴﻨﻪﺳﺎزي رﻳﺎﺿﻲ اﺳﺘﻔﺎده ﻛﻨﻴﻢ ﻣﺠﺒﻮرﻳﻢ ﺗﺎ در ﻳﻚ ﺑﺎزه ﺑﺴﻴﺎر ﻛﻮﭼﻚ ﻣﻘﺪار ﻣﺎﻛﺰﻳﻤﻢ ﺗﺎﺑﻊ را ﺑﻴﺎﺑﻴﻢ. ﻣﺜﻼ از ﻧﻘﻄﻪ 1 ﺷـﺮوع
ﻛﻨﻴﻢ و ﺗﺎﺑﻊ را ﻣﺎﻛﺰﻳﻤﻢ ﻛﻨﻴﻢ. ﺑﺪﻳﻬﻴﺴﺖ اﮔﺮ از ﻧﻘﻄﻪ 1 ﺷﺮوع ﻛﻨﻴﻢ ﺗﻨﻬﺎ ﺑﻪ ﻣﻘﺪار ﻣﺎﻛﺰﻳﻤﻢ ﻣﺤﻠﻲ دﺳﺖ ﺧﻮاﻫﻴﻢ ﻳﺎﻓـﺖ و اﻟﮕـﻮرﻳﺘﻢ ﻣـﺎ
ﭘﺲ از آن ﻣﺘﻮﻗﻒ ﺧﻮاﻫﺪ ﺷﺪ. اﻣﺎ در روشﻫﺎي ﻫﻮﺷﻤﻨﺪ ﺧﺎﺻﻪ اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ ﺑﺪﻟﻴﻞ ﺧﺼﻠﺖ ﺗﺼﺎدﻓﻲ آﻧﻬﺎ ﺣﺘـﻲ اﮔـﺮ ﻫـﻢ از ﻧﻘﻄـﻪ 1
ﺷﺮوع ﻛﻨﻴﻢ ﺑﺎز ﻣﻤﻜﻦ اﺳﺖ در ﻣﻴﺎن راه ﻧﻘﻄﻪ Aﺑﻪ ﺻﻮرت ﺗﺼﺎدﻓﻲ اﻧﺘﺨﺎب ﺷﻮد ﻛﻪ در اﻳﻦ ﺻﻮرت ﻣﺎ ﺷﺎﻧﺲ دﺳﺖﻳﺎﺑﻲ ﺑﻪ ﻧﻘﻄﻪ ﺑﻬﻴﻨﻪ
ﻛﻠﻲ را ﺧﻮاﻫﻴﻢ داﺷﺖ.
در ﻣﻮرد ﻧﻜﺘﻪ دوم ﺑﺎﻳﺪ ﺑﮕﻮﻳﻴﻢ ﻛﻪ روشﻫﺎي رﻳﺎﺿﻲ ﺑﻬﻴﻨﻪﺳﺎزي اﻏﻠﺐ ﻣﻨﺠﺮ ﺑﻪ ﻳﻚ ﻓﺮﻣﻮل ﻳﺎ دﺳﺘﻮراﻟﻌﻤﻞ ﺧﺎص ﺑﺮاي ﺣﻞ ﻫﺮ ﻣﺴﺌﻠﻪ
ﻣﻲﺷﻮﻧﺪ. در ﺣﺎﻟﻲ ﻛﻪ روشﻫﺎي ﻫﻮﺷﻤﻨﺪ دﺳﺘﻮراﻟﻌﻤﻞﻫﺎﻳﻲ ﻫﺴﺘﻨﺪ ﻛﻪ ﺑﻪ ﺻﻮرت ﻛﻠﻲ ﻣﻲﺗﻮاﻧﻨﺪ در ﺣﻞ ﻫﺮ ﻣـﺴﺌﻠﻪاي ﺑـﻪ ﻛـﺎر ﮔﺮﻓﺘـﻪ
ﺷﻮﻧﺪ.
Global Optima
Local Optima
44
54
24. ﻋﻼوه ﺑﺮ اﻳﻦ اﻳﻦ اﻟﮕﻮرﻳﺘﻢ ﺑﻪ ﻫﻤﻴﻦ ﺷﻜﻞ ﻣﻮﺟﻮد در ﺣﻞ اﻧﻮاع ﻣﺴﺎﺋﻞ ﻣﻲﺗﻮاﻧﺪ ﺑﻪ ﻛﺎر رود و ﻧﻴﺎزي ﺑﻪ ﺗﻐﻴﻴﺮ آن ﻧﻴﺴﺖ. در واﻗـﻊ ﺗﻨﻬـﺎ
ﻛﺎري ﻛﻪ در ﻣﻮرد ﻫﺮ ﻣﺴﺎﻟﻪ ﺑﺎﻳﺪ اﻧﺠﺎم دﻫﻴﻢ اﻳﻨﺴﺖ ﻛﻪ ﺟﻮابﻫﺎي ﻣﺨﺘﻠﻒ را ﺑﻪ ﺷﻜﻞ ﻛﺮوﻣﻮزومﻫﺎ ﺑﺎزﻧﻤـﺎﻳﻲ ﻛﻨـﻴﻢ. ﻫـﺮ ﭼﻨـﺪ ﺧـﻮد
اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ ﺑﺮاي ﺣﻞ ﻣﺴﺎﺋﻞ ﺑﻬﻴﻨﻪﺳﺎزي ﮔﺴﺴﺘﻪ ﺑﻪ ﻛﺎر ﻣﻲرود اﻣﺎ روشﻫﺎي ﻣﺸﺎﺑﻬﻲ ﻫﻤﭽﻮن اﺳﺘﺮاﺗﮋي ﺗﻜﺎﻣﻠﻲ و ﻳﺎ اﻟﮕﻮرﻳﺘﻢ آب
دادن ﻓﻮﻻد64 وﺟﻮد دارﻧﺪ ﻛﻪ ﻋﻴﻨﺎ در ﻣﻮرد ﻣﺴﺎﺋﻞ ﭘﻴﻮﺳﺘﻪ ﻣﻲﺗﻮاﻧﻨﺪ ﺑﻪ ﻛﺎر روﻧﺪ. ﻧﺤﻮه ﺗﻌﺮﻳﻒ و ﭘﻴـﺎدهﺳـﺎزي اﻳـﻦ اﻟﮕـﻮرﻳﺘﻢ ﻧﻴـﺰ ﺑـﻪ
ﮔﻮﻧﻪاﻳﺴﺖ ﻛﻪ آن را ﺑﺴﺎدﮔﻲ ﺟﻬﺖ اﺟﺮا ﺑﺼﻮرت ﻣﻮازي ﻳﺎ ﺑﺮ روي Multiprocessorﻫﺎ ﻣﻨﺎﺳﺐ ﻣﻲﺳﺎزد.
اﻣﺎ ﻣﺸﻜﻞ اﺻﻠﻲ اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ ﻋﻠﻴﺮﻏﻢ ﺳﺎدﮔﻲ ﭘﻴﺎدهﺳﺎزي، ﻫﺰﻳﻨﻪ اﺟﺮاي آﻧﺴﺖ.اﻏﻠﺐ ﺣﻞ ﻳﻚ ﻣﺴﺌﻠﻪ ﻧﻴﺎزﻣﻨﺪ ﺗﻮﻟﻴﺪ ﭼﻨـﺪﻳﻦ ﻫـﺰار
ﻧﺴﻞ از ﻛﺮوﻣﻮزمﻫﺎﺳﺖ و اﻳﻦ ﻣﺴﺌﻠﻪ ﻧﻴﺎز ﺑﻪ زﻣﺎن زﻳﺎدي دارد)ﺧﺼﻮﺻﺎ اﮔﺮ ﺗﻌـﺪاد ﺟﻤﻌﻴـﺖ اوﻟﻴـﻪ زﻳـﺎد ﺑﺎﺷـﺪ و ﻧﻴـﺰ ﺗـﺎﺑﻊ ﻫـﺪف ﺗـﺎﺑﻊ
ﭘﻴﭽﻴﺪهاي ﺑﺎﺷﺪ(. ﮔﺎه ﭘﻴﺶ ﻣﻲآﻳﺪ ﻛﻪ ﺑﺮاي ﺣﻞ ﻳﻚ ﻣﺴﺌﻠﻪ ﺑﻌﻨﻮان ﻣﺜﺎل ﻳﻚ ﭘﺮدازﻧﺪه ﭘﻨﺘﻴﻮم ﺑﺎﻳﺪ ﺑﻴﺶ از ﻳﻚ ﻫﻔﺘﻪ ﺑﺮﻧﺎﻣﻪ را اﺟﺮا ﻛﻨﺪ.
ﻃﺒﻴﻌﻴﺴﺖ ﻛﻪ اﻳﻦ زﻣﺎن زﻳﺎدﻳﺴﺖ ﺑﺮاي ﺣﻞ ﻳﻚ ﻣﺴﺎﻟﻪ و ﻫﻤﻴﻦ اﻣﺮ ﮔﺎﻫﻲ اﺳﺘﻔﺎده از اﻟﮕﻮرﻳﺘﻢ را ﺑﺎ ﻣﺸﻜﻞ ﻣﻮاﺟﻪ ﻣﻲﻛﻨﺪ.
ُSimulated Annealing
64
25. ﺣﻞ ﻣﺴﺎﻟﻪ TSPﺑﺎ اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ
٧
در اﻳﻦ ﺑﺨﺶ ﻣﺎ ﻣﺮاﺣﻠﻲ را ﻛﻪ اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ ﺑﺮاي TSPﻣﻲ ﺳﺎزد را ﺗﻮﺿﻴﺢ ﻣﻲ دﻫﻴﻢ.
1,4.
Encoding
ﺑﺮاي encodingﻣﻲ ﺗﻮاﻧﻴﻢ ﻳﻚ ﻣﺎﺗﺮﻳﺲ ﻣﺠﺎورت ﮔﺮاف اﻳﺠﺎد ﻛﻨﻴﻢ ﻛﻪ ﺷﺎﻣﻞ 1 در ﻣﻜﺎن iو jاﺳﺖ اﮔﺮ ﻳﻚ ﻳﺎل از راس iﺑﻪ
راس jوﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ و در ﻏﻴﺮ اﻳﻦ ﺻﻮرت 0 اﺳﺖ. ﺣﺎل ﻣﻲ ﺗﻮاﻧﻴﻢ از اﻳﻦ ﻣﺎﺗﺮﻳﺲ ﻫﻤﺎن ﮔﻮﻧﻪ ﻛﻪ ﻫﺴﺖ اﺳﺘﻔﺎده ﻛﻨﻴﻢ ﻳﺎ ﺑـﻪ اﻳـﻦ
ﺻﻮرت ﻛﻪ ﺳﻄﺮﻫﺎي ﻣﺎﺗﺮﻳﺲ را ﺑﻪ ﻫﻢ اﻟﺤﺎق ﻛﻨﻴﻢ و رﺷﺘﻪ اي ﻃﻮﻻﻧﻲ از 0 و 1 ﻫﺎ اﻳﺠﺎد ﻛﻨﻴﻢ وﻟﻲ ﺗﻮﺟﻪ دارﻳﻢ ﻛﻪ اﻳﻦ رﺷﺘﻪ ﻧﻤـﺎﻳﺶ
ﺑﺎﻳﻨﺮي ﻋﺪد ﻧﻴﺴﺖ. ﺑﻪ اﻳﻦ ﺻﻮرت اوﻟﻴﻦ ﻣﺘﺪ encodingﺳﺎﺧﺘﻪ ﻣﻲ ﺷﻮد.
ﺑﺮاي ﻣﺜﺎل ﻣﺎﺗﺮﻳﺲ ﻣﻘﺎﺑﻞ :
دوري را ﻧﺸﺎن ﻣﻲ دﻫﺪ ﻛﻪ از ﺷﻬﺮ1 ﺑﻪ ﺷﻬﺮ 3 و از ﺷﻬﺮ 3 ﺑﻪ ﺷﻬﺮ 2 و از ﺷﻬﺮ 2 ﺑﻪ ﺷﻬﺮ 1 ﻣﻲ رود. ﻣﺘـﺪ ﺑﻌـﺪي ﻛـﻪ ﻣـﻮرد
ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮد ﻣﺘﺪي اﺳﺖ ﻛﻪ ﻳﻚ رﺷﺘﻪ از اﻋﺪاد ﻛﻪ ﻣﻌﺮف ﺷﻤﺎره ﺷﻬﺮ اﺳﺖ را ﻣﻲ ﺳﺎزد. اوﻟﻴﻦ ﺷﻴﻮه ﺳﺎﺧﺖ اﻳﻦ ﻣﺘﺪ ﺑـﻪ اﻳـﻦ
ﺻﻮرت اﺳﺖ ﻛﻪ ﺑﺮاي ﻣﺜﺎل رﺷﺘﻪ4321 = v
اﻳﻦ ﻣﻔﻬﻮم را ﻣﻲ رﺳﺎﻧﺪ ﻛﻪ اﺑﺘﺪا از ﺷﻬﺮ 1 ﺷﺮوع ﻛﺮده ﺳﭙﺲ ﺑﻪ ﺷﻬﺮ 2 ﻣﻲ روﻳﻢ و
از آﻧﺠﺎ ﺑﻪ ﺷﻬﺮ 3 و ﺑﻌﺪ ﺑﻪ ﺷﻬﺮ 4 ﺣﺮﻛﺖ ﻣﻲ ﻛﻨﻴﻢ. در ﭘﺎﻳﺎن ﻫﻢ ﺑﻪ ﺷﻬﺮ اول ﺑﺮ ﻣﻲ ﮔـﺮدﻳﻢ. ﺗﻮﺟـﻪ ﻛﻨﻴـﺪ ﻛـﻪ دو رﺷـﺘﻪ 4321 و
1432 ﻣﻌﺎدﻟﻨﺪ.
ﺷﻴﻮه دوم اﻳﻦ اﺳﺖ ﻛﻪ اﮔﺮ رﺷﺘﻪ 4213 = vرا داﺷﺘﻪ ﺑﺎﺷﻴﻢ ﺑﻪ اﻳﻦ ﻣﻌﻨﻲ اﺳﺖ ﻛﻪ دور از ﺷﻬﺮ 1 ﺑﻪ ﺷﻬﺮ 3 و از ﺷﻬﺮ 3 ﺑﻪ ﺷﻬﺮ
2 و از ﺷﻬﺮ 2 ﺑﻪ ﺷﻬﺮ 4 و در ﭘﺎﻳﺎن از ﺷﻬﺮ 4 ﺑﻪ ﺷﻬﺮ 2 ﻣﻲ روﻳﻢ. ﻗﺎﺑﻞ ﺗﻮﺟﻪ اﺳﺖ ﻛﻪ ﻫﺮ رﺷﺘﻪ ﻣﻤﻜﻦ در اﻳﻨﺠﺎ ﻳﻚ دور ﻣﺠـﺎز را
ﻧﺸﺎن ﻧﻤﻲ دﻫﺪ. ﻣﺜﻼ رﺷﺘﻪ 2143 ﻧﺸﺎن ﻣﻲ دﻫﺪ ﻛﻪ ﻣﺎ از ﺷﻬﺮ 1 ﺑﻪ ﺷﻬﺮ 3 ﻣﻲ روﻳﻢ و ﺑﻪ ﺷﻬﺮ 1 ﺑﺎزﻣﻲ ﮔـﺮدﻳﻢ واز ﺷـﻬﺮ 2 ﺑـﻪ
ﺷﻬﺮ 4 ﻣﻲ روﻳﻢ و ﺑﻪ ﺷﻬﺮ 2 ﺑﺎز ﻣﻲ ﮔﺮدﻳﻢ ﻛﻪ ﻳﻚ رﺷﺘﻪ ﺑﻲ رﺑﻂ اﺳﺖ.
26. 2,4.
Crossover
١٫٢٫۴.
(PMX) Partially Matched Crossover
اﮔﺮ دو رﺷﺘﻪ زﻳﺮ را داﺷﺘﻪ ﺑﺎﺷﻴﻢ :
8|765|4321
7|765|1258
و ﻳﻚ crossoverدو ﻧﻘﻄﻪ اي اﻧﺠﺎم دﻫﻴﻢ ﺧﻮاﻫﻴﻢ داﺷﺖ :
8 | 4 6 3 | 4 3 2 1 = 1v
7 | 7 6 5 | 1 2 5 8 = 2v
ﻛﻪ ﺑﻪ ﻃﻮر ﺑﺪﻳﻬﻲ ﻏﻴﺮ ﻣﺠﺎز ﻫﺴﺘﻨﺪ ﭼﻮن 1 vﺷﻬﺮ 5 ﻳﺎ 7 را ﺑﺎزدﻳﺪ ﻧﻤﻲ ﻛﻨﺪ و ﺷﻬﺮ ﻫﺎي 3 و 4 را دو ﺑﺎر ﺑﺎزدﻳﺪ ﻣﻲ ﻛﻨﺪ. ﺑﻪ ﻃﻮر
ﻣﺸﺎﺑﻪ 2 vﺷﻬﺮ ﻫﺎي 3 و 4 را ﻧﻤﻲ ﺑﻴﻨﺪ و ﺷﻬﺮ ﻫﺎي 5 و 7 را دو ﺑﺎر ﻣﻲ ﺑﻴﻨﺪ.
PMXﺑﺪون اﺳﺘﻔﺎده از اﺑﺰاري اﻳﻦ ﻣﺸﻜﻞ را ﺑﻪ اﻳﻦ ﮔﻮﻧﻪ ﺣﻞ ﻣﻲ ﻛﻨﺪ ﻛﻪ ﺗﻌﻮﻳﺾ ﻫﺎي 5 ↔ 3 و 6 ↔ 6 و 7 ↔ 4 را
اﻧﺠﺎم ﻣﻲ دﻫﺪ ﺳﭙﺲ اﻳﻦ ﺗﻌﻮﻳﺾ ﻫﺎ را ﻋﻴﻨﺎ روي ژن ﻫﺎي ﺧﺎرج از ﻧﻘﺎط crossoverﺗﻜﺮار ﻣﻲ ﻛﻨﺪ و ﺑﻪ اﻳﻦ ﺗﺮﺗﻴﺐ رﺷﺘﻪ ﻫﺎي زﻳﺮ
ﺳﺎﺧﺘﻪ ﻣﻲ ﺷﻮد :
84637521
47651238
وﻟﻲ ﻣﺎ در اﻳﻦ روش ﻟﺰوﻣﺎ ﻳﻚ دور ﻣﺠﺎز ﺗﻮﻟﻴﺪ ﻧﻤﻲ ﻛﻨﻴﻢ ﺑﻪ ﻫﻤﻴﻦ دﻟﻴﻞ ﻧﻴﺎز دارﻳﻢ ﺗﺎ ﺑﺎ ﻳﻚ crossoverﺑﻬﺘﺮ راه ﺣﻞ ﺑﻬﺘﺮي ﭘﻴﺪا
ﻛﻨﻴﻢ و دورﻫﺎﻳﻲ ﻣﺠﺎز ﺗﻮﻟﻴﺪ ﻛﻨﻴﻢ.
27. 2,2,4.
(CX) Cycle Crossover
ﻻزم ﺑﻪ ذﻛﺮ اﺳﺖ ﻛﻪ اﻳﻦ ﻣﺘﺪ crossoverروي اوﻟﻴﻦ ﺷﻴﻮه encodingﻋﻤﻞ ﻣﻲ ﻛﻨﺪ ﻳﻌﻨﻲ رﺷﺘﻪ 4321 ﺑﻪ اﻳﻦ ﻣﻔﻬﻮم اﺳﺖ
ﻛﻪ ﺑﻪ ﺗﺮﺗﻴﺐ از 1 ﺑﻪ 2 و ﺑﻪ 3 و ﺑﻪ 4 ﻣﻲ روﻳﻢ و در آﺧﺮ ﺑﻪ
ﺑﺮﻣﻴﮕﺮدﻳﻢ.
ﻓﺮض ﻛﻨﻴﺪ دو رﺷﺘﻪ زﻳﺮ را دارﻳﻢ:
87654321
74631258
ﻣﺎ ﺑﺮاي ﺗﻮﻟﻴﺪ ﻳﻚ رﺷﺘﻪ ﺟﺪﻳﺪ 1 vﺑﻪ اﻳﻦ ﺷﻜﻞ ﻋﻤﻞ ﻣﻲ ﻛﻨﻴﻢ :
اوﻟﻴﻦ ژن را از ﻳﻜﻲ از parentﻫﺎ اﻧﺘﺨﺎب ﻣﻲ ﻛﻨﻴﻢ:
- - - - - - - 1 = 1v
ﺑﺎﻳﺪ ﻫﺮ ﻋﻨﺼﺮ را از ﻳﻜﻲ از parentﻫﺎ ﺑﺮدارﻳﻢ و آﻧﺮا در ﻣﻮﻗﻌﻴﺘﻲ ﻛﻪ ﻗﺒﻼ ﺑﻮده ﻗﺮار دﻫﻴﻢ. از آﻧﺠﺎﻳﻴﻜﻪ اوﻟﻴﻦ ﻣﻮﻗﻌﻴﺖ ﺗﻮﺳﻂ 1
اﺷﻐﺎل ﺷﺪه اﺳﺖ ﻋﺪد 8 از رﺷﺘﻪ دوم ﻧﻤﻲ ﺗﻮاﻧﺪ ﺑﻪ آن ﻣﺤﻞ ﺑﺮود ﭘﺲ ﻣﺠﺒﻮرﻳﻢ 8 را ﻫﻢ از رﺷﺘﻪ اول ﺑﺮدارﻳﻢ:
8 - - - - - - 1 = 1v
و ﺑﻪ ﻫﻤﻴﻦ ﺷﻜﻞ 7 و 4 را ﻧﻴﺰ از رﺷﺘﻪ اول ﺑﺮداﺷﺘﻪ و در ﻣﺤﻞ ﺧﻮد ﻗﺮار دﻫﻴﻢ :
8 7 - - - 4 - 1 = 1v
ﺣﺎل ﺑﺎ ﭘﺮ ﻛﺮدن ﺑﻘﻴﻪ ﻣﺤﻞ ﻫﺎ ﺑﺎ ﻋﻨﺎﺻﺮ آن ﻣﺤﻠﻬﺎ از رﺷﺘﻪ دوم 1 vرا ﻣﻲ ﺳﺎزﻳﻢ. اﻳﻦ ﻣﺘﺪ ﻫﻤﻴﺸﻪ ﻳﻚ ﻛﺮوﻣﻮزوم ﻣﺠﺎز ﻣﻲ ﺳﺎزد.
اﻟﺒﺘﻪ ﻣﻤﻜﻦ اﺳﺖ ﻓﺮزﻧﺪ درﺳﺖ ﺷﺪه ﻫﻤﺎن parentﺑﺎﺷﺪ وﻟﻲ اﻳﻦ ﻣﺸﻜﻞ ﻧﻴﺴﺖ ﭼﻮن ﻧﺸﺎﻧﮕﺮ اﻳﻨﺴﺖ ﻛﻪ fitness, parentﺑﺎﻻﻳﻲ
دارد و ﺑﺎز ﻫﻢ ﻣﻲ ﺗﻮاﻧﺪ ﻳﻚ اﻧﺘﺨﺎب ﺑﺎﺷﺪ.
28. ٣٫٢٫۴.
Order Crossover
ﺧﻴﻠﻲ ﺑﻪ PMXﺷﺒﻴﻪ اﺳﺖ. ﻫﻤﺎن دو ﻧﻘﻄﻪ را در ﻧﻈﺮ ﻣﻲ ﮔﻴﺮد وﻟﻲ ﺑﻪ ﺟﺎي اﺻﻼح ﻛﺮوﻣﻮزوﻣﻬﺎ ﺑﺎ ﺗﻌﻮﻳﺾ ﺗﻜﺮارﻫﺎ ﺑﻪ ﻃﻮر ﺳﺎده ﺗﺮي
ﺑﻘﻴﻪ ژن ﻫﺎ را ﻣﺮﺗﺐ ﻣﻲ ﻛﻨﺪ ﺗﺎ ﻳﻚ دور ﻣﺠﺎز ﺑﺪﻫﺪ.
ﻣﺜﻼ اﮔﺮ دو رﺷﺘﻪ زﻳﺮ را داﺷﺘﻪ ﺑﺎﺷﻴﻢ :
84|267|531
74|128|365
ﺑﺎ ﺗﻌﻮﻳﺾ ﻛﺮدن ژﻧﻬﺎي ﺑﻴﻦ دو ﻧﻘﻄﻪ ﺑﺪﺳﺖ ﻣﻲ آﻳﺪ :
- |1 2 8 | - - - = 1v- - |2 6 7 | - - - = 2v
ﺳﭙﺲ ﺑﺎ ﺷﺮوع از دوﻣﻴﻦ ﻧﻘﻄﻪ crossoverژﻧﻬﺎ را از ﻛﺮوﻣﻮزوم parentﺛﺒﺖ ﻣﻲ ﻛﻨﻴﻢ.
26753184
12836574
ﺳﭙﺲ ژن ﻫﺎﻳﻲ را ﻛﻪ ﺑﻴﻦ ﻧﻘﺎط crossoverﺑﻮده اﻧﺪ را ﺣﺬف ﻣﻲ ﻛﻨﻴﻢ. ﻳﻌﻨـﻲ 8 و 2 و 1 را از ﻟﻴـﺴﺖ 1 vو 7 و 6 و 2 را از
ﻟﻴﺴﺖ 2 vﺣﺬف ﻣﻲ ﻛﻨﻴﻢ ﺗﺎ رﺷﺘﻪ ﻫﺎي زﻳﺮ ﺑﺪﺳﺖ آﻳﻨﺪ :
67534
18354
و ﺑﺎ ﺟﺎﻳﮕﺰﻳﻨﻲ از دوﻣﻴﻦ ﻧﻘﻄﻪ crossoverﺑﺎ ﻛﺮوﻣﻮزوﻣﻬﺎي ﻓﺮزﻧﺪ رﺷﺘﻪ ﻫﺎي ﻧﻬﺎﻳﻲ زﻳﺮ ﺑﺪﺳﺖ ﻣﻲ آﻳﻨﺪ:
3 4 1 2 8 6 7 5 = 1v
5 4 2 6 7 1 8 3 = 2v
29. ۴٫٢٫۴.
Crossover Matrix
ﻫﻤﺎن crossoverﻳﻚ ﻳﺎ دو ﻧﻘﻄﻪ اي ﻣﻲ ﺑﺎﺷﺪ.
اﮔﺮ ﻣﺎﺗﺮﻳﺲ ﻫﺎي زﻳﺮ را داﺷﺘﻪ ﺑﺎﺷﻴﻢ :
ﻧﻘﺎط crossoverرا ﺑﻌﺪ از اوﻟﻴﻦ ﺳﺘﻮن و ﺑﻌﺪ از دوﻣﻴﻦ ﺳﺘﻮن اﻧﺘﺨﺎب ﻣﻲ ﻛﻨﻴﻢ. crossoverﻛﺮدن ﺳﺘﻮن ﻫﺎ ﻧﺘﻴﺠﻪ ﻣﻲ دﻫﺪ:
ﺣﺎﻻ ﻣﺎ ﭼﻨﺪﻳﻦ 1 در ﺑﻌﻀﻲ ﺳﻄﺮﻫﺎ دارﻳﻢ و ﺑﻌﻀﻲ از ﺳﻄﺮﻫﺎ اﺻﻼ 1 ﻧﺪارﻧﺪ. اﻳﻦ را ﺑﻮﺳﻴﻠﻪ اﻧﺘﻘﺎل ﻳﻜﻲ از 1 ﻫﺎ از ﺳﻄﺮي ﻛﻪ
ﭼﻨﺪﻳﻦ 1 دارد ﺑﻪ ﺳﻄﺮي ﻛﻪ ﻫﻴﭻ ﻳﻜﻲ ﻧﺪارد درﺳﺖ ﻣﻲ ﻛﻨﻴﻢ. اﻳﻦ اﻧﺘﺨﺎب ﺑﻴﻦ ﺳﻄﺮﻫﺎي ﺷﺎﻣﻞ ﭼﻨﺪ 1 ﺗﺼﺎدﻓﻲ اﺳﺖ.
30. ﺣﺎل ﺑﺎ ﻣﻼﺣﻈﻪ ﻣﺎﺗﺮﻳﺲ اول ﻣﻲ ﺑﻴﻨﻴﻢ ﻛﻪ a ↔ aو . b → c → bﭘﺲ ﻣﺎ دو دور ﻣﺨﺘﻠﻒ اﻳﺠﺎد ﻛﺮده اﻳﻢ وﻟﻲ اﻳﻦ را ﺑﻮﺳﻴﻠﻪ
ﺑﺮش و ﻣﺘﺼﻞ ﻛﺮدن درﺳﺖ ﻣﻲ ﻛﻨﻴﻢ.
ﻳﺎل aﺑﻪ aرا و ﻫﻤﭽﻨﻴﻦ ﻳﻜﻲ از ﻳﺎﻟﻬﺎي ﺑﻴﻦ bو cرا ﻣﻴﺒﺮﻳﻢ و aرا ﺑﻪ bو cوﺻﻞ ﻣﻲ ﻛﻨﻴﻢ.
31. ۵٫٢٫۴.
(MOX) Modified Order Crossover
ﺷﺒﻴﻪ crossoverﻳﻚ ﻧﻘﻄﻪ اي اﺳﺖ. ﻳﻚ ﻧﻘﻄﻪ crossoverﺗﺼﺎدﻓﻲ در parentاﻧﺘﺨﺎب ﻣﻲ ﻛﻨﻴﻢ و ﺑـﻪ ﻃـﻮر ﻣﻌﻤـﻮل ژﻧﻬـﺎي
ﻗﺒﻞ از ﻧﻘﻄﻪ را ﻫﻤﺎن ﻃﻮر ﻛﻪ ﻫﺴﺘﻨﺪ رﻫﺎ ﻣﻲ ﻛﻨﻴﻢ. ﺳﭙﺲ ژﻧﻬﺎي ﺑﻌﺪ از ﻧﻘﻄﻪ crossoverرا ﺑـﻪ ﺗﺮﺗﻴﺒـﻲ ﻛـﻪ در دوﻣـﻴﻦ ﻛﺮوﻣـﻮزوم
parentﻇﺎﻫﺮ ﺷﺪه اﻧﺪ دوﺑﺎره ﻣﺮﺗﺐ ﻣﻲ ﻛﻨﻴﻢ.
اﻛﺮ دو ﻛﺮوﻣﻮزوم زﻳﺮ را داﺷﺘﻪ ﺑﺎﺷﻴﻢ :
654|321
512|463
ﺑﺪﺳﺖ ﺧﻮاﻫﻴﻢ آورد :
5 4 6 | 3 2 1 = 1v
5 2 1 | 4 6 3 = 2v
crossoverﺗﺎ ﺣﺎﻻ ﺗﻤﺮﻛﺰ روي ﻣﻮﻗﻌﻴﺖ ﺷﻬﺮ در دور را ﺟﺴﺘﺠﻮ ﻛﺮده در ﺣﺎﻟﻴﻜﻪ در واﻗـﻊ ﻳﺎﻟﻬـﺎ ﻣﻬﻤﺘـﺮﻳﻦ ﻗـﺴﻤﺘﻬﺎي ﺳـﻔﺮ
ﻓﺮوﺷﻨﺪه دوره ﮔﺮد ﻫﺴﺘﻨﺪ زﻳﺮا آﻧﻬﺎ وزﻧﻬﺎ را ﻣﻌﻴﻦ ﻣﻲ ﻛﻨﻨﺪ ﺑﻨﺎﺑﺮاﻳﻦ ﭼﻴﺰﻳﻜﻪ ﻣﺎ واﻗﻌﺎ ﻣﻲ ﺧـﻮاﻫﻴﻢ اﻳـﻦ اﺳـﺖ ﻛـﻪ ﺑـﺎ ﻳﺎﻟﻬـﺎ ﺑﻴـﺸﺘﺮ از
ﻣﻮﻗﻌﻴﺖ ﻫﺮ ﺷﻬﺮ ﺳﺮوﻛﺎر داﺷﺘﻪ ﺑﺎﺷﻴﻢ.
)1891( Grefenstetteﻳﻚ روﺗﻴﻦ crossoverاﺧﺘﺮاع ﻛﺮده ﻛﻪ ﻫﺮ راس را از ﻳﻜﻲ از آﻧﻬـﺎﻳﻲ ﻛـﻪ ﺑـﺮاي راس ﺟـﺎري در
ﻳﻜﻲ از parentﻫﺎ ﻻزم اﺳﺖ ﺑﺮ ﻣﻲ دارد.
اﻳﻦ را ﺑﻮﺳﻴﻠﻪ اﻳﺠﺎد ﻳﻚ ﻟﻴﺴﺖ ﻳﺎل ﺑﺮاي ﻫﺮ راس اﻧﺠﺎم ﻣﻲ دﻫﻴﻢ.
ﻛﺮوﻣﻮزوﻣﻬﺎي:
6 5 4 3 2 1 = 1v
5 1 2 4 6 3 = 2v
32. اﺑﺘﺪا ﻳﻜﻲ از ﻧﺨﺴﺘﻴﻦ راﺳﻬﺎ را از ﻳﻜﻲ از parentﻫﺎ ﻳﻌﻨﻲ 1 ﻳﺎ 3 در اﻳﻦ ﻣﺜﺎل اﻧﺘﺨﺎب ﻣﻲ ﻛﻨﻴﻢ آن را ﻛﻪ ﻛﻤﺘـﺮﻳﻦ ﻋـﺪد از
راﺳﻬﺎي ﻻزم را دارد اﻧﺘﺨﺎب ﻣﻲ ﻛﻨﻴﻢ و ﻳﺎ اﮔﺮ آﻧﻬﺎ ﻋﺪد ﻳﻜﺴﺎﻧﻲ دارﻧﺪ ﺗﺼﺎدﻓﻲ ﻳﻜﻲ را اﻧﺘﺨﺎب ﻣﻲ ﻛﻨﻴﻢ.
ﺳﭙﺲ ﻣﺸﺎﻫﺪه ﻣﻲ ﻛﻨﻴﻢ ﻛﻪ راﺳﻬﺎﻳﻲ ﺑﺎ راس 1 ﺗﻼﻗﻲ ﻣﻲ ﻛﻨﻨﺪ. ﭼﻮن اﻳﻦ ﻫﻤﺎن راﺳﻲ اﺳﺖ ﻛﻪ اول اﻧﺘﺨﺎب ﻛﺮدﻳﻢ دوﺑﺎره راﺳـﻲ
ﺑﺎ ﻛﻤﺘﺮﻳﻦ ﻋﺪد از راﺳﻬﺎي ﻻزم ﻛﻪ ﻗﺒﻼ اﻧﺘﺨﺎب ﻧﺸﺪه اﻧﺪ اﻧﺘﺨﺎب ﻣﻲ ﻛﻨﻴﻢ ﺳﭙﺲ راس 2 را اﻧﺘﺨﺎب ﻣﻲ ﻛﻨﻴﻢ اﻳـﻦ ﻓﺮاﻳﻨـﺪ اﻧﺘﺨـﺎب
راﺳﻬﺎي ﻓﺮﺿﻲ را اداﻣﻪ ﻣﻲ دﻫﻴﻢ اﮔﺮ ﺑﻪ ﺣﺎﻟﺘﻲ ﺑﺮﺧﻮرد ﻛﻨﻴﻢ ﻛﻪ ﻧﺘﻮاﻧﻴﻢ راﺳﻲ را ﻛﻪ ﻗﺒﻼ اﻧﺘﺨﺎب ﻧﺸﺪه را اﻧﺘﺨﺎب ﻛﻨﻴﻢ ﻳﻚ ﮔﺮه ﻛـﻪ
ﻗﺒﻼ اﻧﺘﺨﺎب ﻧﺸﺪه اﺳﺖ را ﺗﺼﺎدﻓﻲ اﻧﺘﺨﺎب ﻣﻲ ﻛﻨﻴﻢ.
اﻳﻦ ﺑﻪ آن ﻣﻌﻨﻲ اﺳﺖ ﻛﻪ ﻣﺎ ﻣﻲ ﺧﻮاﻫﻴﻢ راﺳﻲ را ﺑﺪﺳﺖ آورﻳﻢ ﻛﻪ در راس ﺟﺎري ﻣﺎ در ﻳﻜﻲ از parentﻫﺎ روي ﻧـﺪاده اﺳـﺖ اﻣـﺎ
ﻣﺘﺎﺳﻔﺎﻧﻪ اﻳﻦ اﺟﺘﻨﺎب ﻧﺎﭘﺬﻳﺮ اﺳﺖ ﺑﻨﺎ ﺑﺮاﻳﻦ ﻛﺮوﻣﻮزوم ﻫﺎي parentﻣﺎ ﻣﻲ ﺗﻮاﻧﻨﺪ ﻓﺮزﻧﺪ ﺗﻮﻟﻴﺪ ﻛﻨﻨﺪ. ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷـﻴﺪ ﻛـﻪ ﻣـﺎ در
ﺗﻤﺎم ﻣﺪت در ﺗﻮاﻧﺎﻳﻲ اﻧﺘﺨﺎب راس ﻫﺎﻳﻲ ﻛﻪ در ﻳﻜﻲ از parentﻫﺎ ﻻزم ﺑﻮدﻧﺪ ﻣﻮﻓﻖ ﺑﻮدﻳﻢ.
ﻣﺎ ﻓﻘﻂ ﻳﻚ ﻓﺮزﻧﺪ از اﻳﻦ crossoverﺑﺪﺳﺖ ﻣﻲ آورﻳﻢ ﺗﺎ ﺑﺴﻴﺎري از crossoverﻫﺎ را دوﺑﺎر اﻧﺠﺎم دﻫﻴﻢ ﺗﺎ ﻳﻚ ﻧﺴﻞ ﺟﺪﻳﺪ اﻳﺠﺎد
ﻛﻨﻴﻢ.ﻫﻤﭽﻨﻴﻦ ﻋﻤﻠﮕﺮﻫﺎي crossoverاي دارﻳﻢ ﻛﻪ از اﻃﻼﻋﺎت ﻣﻜﺸﻔﻪ اي اﺳﺘﻔﺎده ﻣﻲ ﻛﻨﺪ.
٣٫۴.
Mutation
اﺑﺘﺪا ﻋﻤﻠﮕﺮ دو ﮔﺰﻳﻨﻪ اي ) (2 - optرا ﻧﺸﺎن ﻣﻲ دﻫﻴﻢ. دو ﻳﺎل ) (a , bو ) (c , dرا از دورﻣﺎن اﻧﺘﺨﺎب ﻣﻲ ﻛﻨﻴﻢ و ﭼﻚ
ﻣﻲ ﻛﻨﻴﻢ ﻛﻪ آﻳﺎ ﻣﻲ ﺗﻮاﻧﻴﻢ اﻳﻦ 4 راس را ﺑﺎ ﻳﻚ روش ﻣﺘﻔﺎوت ﺑﻪ ﻫﻢ وﺻﻞ ﻛﻨﻴﻢ ﺗﺎ ﻛﻤﺘﺮﻳﻦ وزن را ﺑﻪ ﻣﺎ ﺑﺪﻫﺪ ﻳﺎ ﺧﻴـﺮ. ﺑـﺮاي اﻧﺠـﺎم
اﻳﻦ ﻛﺎر ﭼﻚ ﻣﻲ ﻛﻨﻴﻢ ﻛﻪ اﮔﺮ
Cab + Ccd > Cac + Cdbﺑﺎﺷﺪ ﻳﺎﻟﻬﺎي ) (a , bو ) (c , dرا ﺑﺎ ﻳﺎﻟﻬـﺎي ) (a , cو )(d , b
ﻋﻮض ﻛﻨﻴﻢ. ﺗﻮﺟﻪ ﻛﻨﻴﺪ ﻛﻪ ﻓﺮض ﻛﺮده اﻳﻢ ﻛﻪ aو bو cو dﺑﺎ ﺗﺮﺗﻴﺐ ﻣﺸﺨﺼﻲ در دور ﻇﺎﻫﺮ ﺷﺪه اﻧﺪ ﺣﺘﻲ اﮔـﺮ bو cﻣﺘـﺼﻞ
ﻧﺒﺎﺷﻨﺪ.
ﻫﻤﭽﻨﻴﻦ ﻳﻚ ﻋﻤﻠﮕﺮ ﺳﻪ ﮔﺰﻳﻨﻪ اي ) (3 - optدارﻳﻢ ﻛﻪ ﺑﻪ ﺟﺎي دو ﻳﺎل ﺳﻪ ﻳﺎل ﺗﺼﺎدﻓﻲ را ﻧﺸﺎن ﻣﻲ دﻫﺪ. اﮔﺮ ﻳﺎﻟﻬـﺎي ) (a , bو
) (c , dو ) (e , fرا داﺷﺘﻪ ﺑﺎﺷﻴﻢ ﭼﻚ ﻣﻲ ﻛﻨﻴﻢ ﻛﻪ اﮔﺮ
Cab + Ccd + Cef > Cac + Cbe + Cdfﺑﺎﺷـﺪ ﻳﺎﻟﻬـﺎي
) (a , bو ) (c , dو ) (e , fرا ﺑﺎ ﻳﺎﻟﻬﺎي ) (a , cو ) (b , eو ) (d , fﻋﻮض ﻛﻨﻴﻢ.
ﻋﻤﻠﮕﺮ ) (or - optﺷﺒﻴﻪ ) (2 - optاﺳﺖ.ﻳﻚ ﻣﺠﻤﻮﻋﻪ از راس ﻫﺎي ﻣﺘﺼﻞ را ﺗﺼﺎدﻓﻲ اﻧﺘﺨﺎب ﻣﻲ ﻛﻨﻴﻢ و ﭼﻚ ﻣﻲ ﻛﻨﻴﻢ ﻛﻪ آﻳـﺎ
اﻳﻦ رﺷﺘﻪ ﻣﻲ ﺗﻮاﻧﺪ ﺑﻴﻦ دو راس دﻳﮕﺮ اﺿﺎﻓﻪ ﺷﻮد ﺗﺎ وزن ﺗﻘﻠﻴﻞ ﻳﺎﺑﺪ ﻳﺎ ﺧﻴﺮ. ﻣﺎ ﻣﻲ ﺗﻮاﻧﻴﻢ اﻳﻦ را ﺑﻮﺳﻴﻠﻪ ﭘﻴﺪا ﻛﺮدن ﻣﺠﻤﻮع وزن ﻫﺎي
ﻳﺎﻟﻬﺎي اﺿﺎﻓﻪ ﺷﺪه و ﻣﺠﻤﻮع وزن ﻫﺎي ﻳﺎﻟﻬﺎي ﺣﺬف ﺷﺪه ﻣﺤﺎﺳﺒﻪ ﻛﻨﻴﻢ. اﮔﺮ وزن ﻳﺎﻟﻬﺎي ﺣﺬف ﺷﺪه ﺑﻴﺸﺘﺮ ﺑـﻮد ﺗﻌـﻮﻳﺾ اﻧﺠـﺎم ﮔﻴـﺮد.
ﺳﻪ ﻋﻤﻠﮕﺮ Mutationدﻳﮕﺮ ﻧﻴﺰ وﺟﻮد دارﻧﺪ ﻛﻪ ﻳﻚ ﺷﻬﺮ اﻧﺘﺨﺎﺑﻲ ﺗﺼﺎدﻓﻲ را ﺑﻪ ﻳﻚ ﻣﻜﺎن اﻧﺘﺨـﺎب ﺷـﺪه ﺗـﺼﺎدﻓﻲ اﺿـﺎﻓﻪ ﻣـﻲ ﻛﻨـﺪ.
ﻫﻤﭽﻨﻴﻦ ﻣﺎ ﻫﻨﮕﺎﻣﻴﻜﻪ دو ﺷﻬﺮ ﺗﺼﺎدﻓﻲ را اﻧﺘﺨﺎب ﻣﻲ ﻛﻨﻴﻢ و آﻧﻬﺎ را ﺗﻌﻮﻳﺾ ﻣﻲ ﻛﻨﻴﻢ ﻳﻚ mutaionدو ﺟﺎﻧﺒﻪ دارﻳﻢ.
33. 4,4. ﻣﻘﺎﻳﺴﻪ روﺷﻬﺎي ﻣﺨﺘﻠﻒ اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ ﺑﺮاي TSP
ﺗﺎ ﺑﻪ ﺣﺎل ﻓﺮﻣﻬﺎي ﻣﺨﺘﻠﻔﻲ از رﻣﺰﮔﺬاري ﻫﺎ encodingو ﻋﻤﻠﮕﺮﻫـﺎي crossoverو mutationرا در ﺣـﻞ ﻣـﺴﺎﻟﻪ TSPﺑـﻪ
روش اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ دﻳﺪﻳﻢ. اﻳﻦ ﺣﺎﻟﺘﻬﺎ ﻣﻲ ﺗﻮاﻧﻨﺪ ﺑﺎ ﻫﻢ ﺗﺮﻛﻴﺐ ﺷﻮﻧﺪ و ﻣﻨﺠﺮ ﺑﻪ رﺳﻴﺪن ﺑﻪ راه ﺣـﻞ ﻫـﺎي ﻣﺨﺘﻠﻔـﻲ ﺑـﺮاي TSPﺑـﻪ
روش اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ ﺷﻮﻧﺪ. وﻟﻲ از آﻧﺠﺎﻳﻲ ﻛـﻪ ﻣﺘـﺪﻫﺎي crossoverروي encodingﻫـﺎي ﺧﺎﺻـﻲ ﻋﻤـﻞ ﻣـﻲ ﻛﻨﻨـﺪ در ﻧﺘﻴﺠـﻪ
اﻟﮕﻮرﻳﺘﻤﻬﺎي ژﻧﺘﻴﻚ ﺧﻴﻠﻲ ﻣﺘﻔﺎوﺗﻲ ﺑﺮاي ﺟﺴﺘﺠﻮ ﻧﺪارﻳﻢ.
ﺣﺎل ﺑﻪ ﺑﺮرﺳﻲ اﻟﮕﻮرﻳﺘﻤﻬﺎي ژﻧﺘﻴﻚ ﻣﺤﺾ ﻳﻌﻨﻲ ﺑﺪون اﺳﺘﻔﺎده از Heuristic Informationﻣﻲ ﭘﺮدازﻳﻢ.
ﻓﺮض ﻛﻨﻴﺪ ﻛﻪ PMX crossoverرا اﻧﺘﺨﺎب ﻛﺮده اﻳﻢ و ﻫﻴﭻ ﻋﻤﻠﮕﺮي را ﺑﺮاي mutationاﺗﺨﺎذ ﻧﻜﺮده اﻳﻢ. ﺑﺎ اﻳـﻦ ﺷـﺮاﻳﻂ در
33 ﺷﻬﺮ ﺑﻪ ﺟﻮاﺑﻲ ﻣﻲ رﺳﻴﻢ ﻛﻪ ﻃﻮل آن 01 درﺻﺪ از ﺟﻮاب ﺑﻬﻴﻨﻪ ﺑﻴﺸﺘﺮ اﺳﺖ. و ﺑﺮاي 001 ﺷﻬﺮ اﻳﻦ ﻣﻴﺰان ﺑﻪ 012 درﺻﺪ ﻣﻲ رﺳﺪ.
اﮔﺮ در ﻳﻚ ﻣﺴﺎﻟﻪ ﻛﻪ از 03 ﺷﻬﺮ ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ اﮔﺮ از PMXاﺳﺘﻔﺎده ﻛﻨﻴﻢ ﺑﻬﺘﺮﻳﻦ ﻃﻮل 894 و اﮔﺮ از Order Crossover
اﺳﺘﻔﺎده ﻛﻨﻴﻢ اﻳﻦ ﻣﻴﺰان ﺑﻪ 524 ﻛﺎﻫﺶ ﻣﻲ ﻳﺎﺑﺪ. در ﺣﺎﻟﻲ ﻛﻪ Cycle Crossoverﻧﺘﻴﺠﻪ اي ﺑﺮاﺑﺮ 715 ﻣﻲ دﻫـﺪ.از آﻧﺠـﺎﻳﻲ ﻛـﻪ
ﻣﻲ داﻧﻴﻢ در اﻳﻦ ﻣﺴﺎﻟﻪ ﺧﺎص) 03 ﺷﻬﺮ( ﺑﻬﺘﺮﻳﻦ ﺟﻮاب ﻃﻮﻟﻲ ﺑﺮاﺑﺮ 024 دارد ﺑﻪ ﻧﻈﺮ ﻣـﻲ رﺳـﺪ ﻛـﻪ Order Crossoverﺟـﻮاﺑﻲ
ﺑﻬﺘﺮ از ﺑﻘﻴﻪ ﺑﺮ ﻣﻲ ﮔﺮداﻧﺪ.
ﺣﺎل ﺑﻪ ﺑﺮرﺳﻲ Matrix Crossoverﻣﻲ ﭘﺮدازﻳﻢ. اﮔﺮ از ﻳﻚ crossoverدو ﻧﻘﻄﻪ اي اﺳﺘﻔﺎده ﻛﻨﻴﻢ ﻣﺸﺎﻫﺪه ﻣﻲ ﻛﻨﻴﻢ ﻛﻪ ﺑﺮاي
03 و 05 و 57 و 001 و 813 دورﻫﺎﻳﻲ ﺑﺎ ﻃﻮل 024 و 624 و 535 و 926 و 45124 را اراﺋﻪ ﻣﻲ ﻛﻨﺪ. ﻛﻪ ﻫﻤﻪ اﻳﻦ ﺟﻮاﺑﻬـﺎ
ﻛﻤﺘﺮ از 2 درﺻﺪ ﺑﻴﺸﺘﺮ از ﺟﻮاب ﺑﻬﻴﻨﻪ ﻫﺴﺘﻨﺪ. ﭘﺲ اﺣﺘﻤﺎﻻ اﺳﺘﻔﺎده از ﻳﺎﻟﻬﺎ ﺑﺴﻴﺎر اﻣﻴﺪوار ﻛﻨﻨـﺪه ﺗـﺮ از اﺳـﺘﻔﺎده از راﺳـﻬﺎ ﺑـﻪ ﻋﻨـﻮان
ﻣﺘﻐﻴﺮ اﺳﺖ.
ﺗﻮﺟﻪ ﻛﻨﻴﺪ ﻛﻪ ﺑﻪ ﻫﺮ ﺣﺎل ﻧﻤﺎﻳﺶ ﻣﺎﺗﺮﻳﺲ ﻓﻀﺎي ﺑﻴﺸﺘﺮي را ﺑﺮاي ذﺧﻴـﺮه ﻛـﺮدن ﻧـﺴﺒﺖ ﺑـﻪ ﻧﻤـﺎﻳﺶ ﺑـﻪ ﺻـﻮرت ﻋـﺪد ﺻـﺤﻴﺢ و
crossoverﺳﺎده ﻣﻲ ﺧﻮاﻫﺪ و در ﺿﻤﻦ ﻣﺤﺎﺳﺒﺎت crossoverو mutationدر ﻣﺎﺗﺮﻳﺲ ﭘﻴﭽﻴﺪه ﺗﺮ و زﻣﺎﻧﺒﺮ ﺗﺮ اﺳـﺖ. ﻫﻤﭽﻨـﻴﻦ
روش دﻳﮕﺮي ﻛﻪ ﺗﺴﺖ ﺷﺪه اﻳﻨﺴﺖ ﻛﻪ ﻣﺎ از ) ( 2 - optﺑﺮاي mutationاﺳﺘﻔﺎده ﻛﻨﻴﻢ و از crossoverاﺳﺘﻔﺎده ﻧﻜﻨﻴﻢ. اﻳﻦ روش
ﻧﻴﺰ ﺟﻮاب ﺧﻮﺑﻲ اراﺋﻪ ﻣﻲ دﻫﺪ وﻟﻲ ﺟﻮاب ﻗﺒﻠﻲ ﺑﻬﺘﺮ از اﻳﻦ روش اﺳﺖ. در ﺿﻤﻦ ﺑﺮاي وﻗﺘﻲ ﻛﻪ nرا زﻳﺎد ﻓﺮض ﻣﻲ ﻛﻨـﻴﻢ اﻳـﻦ روش
ﺟﻮاﺑﻲ ﻣﻨﺎﺳﺐ اراﺋﻪ ﻧﻤﻲ دﻫﺪ.
Heuristic Algorithmﻧﻴﺰ ﺑﻪ ﺟﻮاب ﺧﻮﺑﻲ ﻣﻲ رﺳﺪ.
Heuristic Algorithmوﻗﺘﻲ ﻛﻪ ﺑـﺎ ( 2 – opt )mutation
ﺗﺮﻛﻴﺐ ﻣﻲ ﺷﻮد ﺑﻬﺘﺮﻳﻦ ﺟﻮاب را در ﻣﻘﺎﻳﺴﻪ ﺑﺎ ﻣﺘﺪﻫﺎﻳﻲ ﻛﻪ ﺗﺎ ﺑﻪ ﺣﺎل ﮔﻔﺘﻴﻢ ﺑﺮﻣﻲ ﮔﺮداﻧﺪ. ﺑﻪ ﻃﻮري ﻛﻪ اﻳﻦ ﺟﻮاب ﺑـﺴﻴﺎر ﻧﺰدﻳـﻚ ﺑـﻪ
ﻣﻘﺪار ﺑﻬﺘﺮﻳﻦ ﺟﻮاب اﺳﺖ. اﻟﺒﺘﻪ اﻳﻦ روش ﻓﻀﺎي زﻳﺎدي را اﺷﻐﺎل ﻣﻲ ﻛﻨﺪ و ﻧﻴﺰ وزن ﻫﺮ ﻳﺎل ﺑﺎﻳﺪ در ﺟﺎﻳﻲ ذﺧﻴﺮه ﺷﻮد. در ﻧﺘﻴﺠﻪ
34. ﻣﻲ ﺑﻴﻨﻴﻢ ﻛﻪ اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ وﻗﺘﻲ ﻛﻪ از ﻧﻤﺎﻳﺶ ﻣﺎﺗﺮﻳﺲ ﺑﺮاي encodingو از Matrix Crossoverﻳﺎ
Heuristic Crossoverاﺳﺘﻔﺎده ﻣﻲ ﻛﻨﺪ ﺑﻬﺘﺮﻳﻦ ﺟﻮاب را ﺑﺮﻣﻲ ﮔﺮداﻧﺪ و ﺑﻬﺘﺮ از دﻳﮕﺮ روﺷـﻬﺎ ﻛـﺎر ﻣـﻲ ﻛﻨـﺪ. در ﻫـﺮ دو روش
crossoverﺑﺎﻻ اﺳﺘﻔﺎده از ( 2 – opt )mutationﻛﻴﻔﻴﺖ اﻟﮕﻮرﻳﺘﻢ را اﻓﺰاﻳﺶ ﻣﻲ دﻫﺪ.
5,4. ﻧﺘﻴﺠﻪ ﮔﻴﺮي
ﺑﻪ ﻧﻈﺮ ﻣﻲ رﺳﺪﻛﻪ اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ ﻳﻚ ﺟﻮاب ﺧﻮب ﺑﺮاي TSPﭘﻴﺪا ﻣﻲ ﻛﻨﺪ. در ﺣﺎﻟﻴﻜﻪ ﻛﺎراﻳﻲ اﻟﮕﻮرﻳﺘﻢ ﺑﻪ ﻣﻴﺰان زﻳﺎدي ﺑﻪ ﻧﺤﻮه
encodeﻛﺮدن و ﻧﻴﺰ crossoverو mutationﺑﺴﺘﮕﻲ دارد. ﺑﻪ ﻧﻈﺮ ﻣـﻲ رﺳـﺪ ﻛـﻪ اﺳـﺘﻔﺎده از ﻧﻤـﺎﻳﺶ Matrixو Heuristic
Informationﺑﻬﺘﺮ از ﺑﻘﻴﻪ روﺷﻬﺎ ﻛﺎر ﻣﻲ ﻛﻨﺪ و ﺟﻮاب ﻗﺎﺑﻞ ﻗﺒﻮﻟﻲ را ﺑﺮﻣﻲ ﮔﺮداﻧﺪ ﻛﻪ ﺑﻪ ﺟﻮاب واﻗﻌﻲ ﺑﺴﻴﺎر ﻧﺰدﻳﻚ اﺳﺖ.
اﺣﺘﻤﺎﻻ اﻟﮕﻮرﻳﺘﻢ ژﻧﺘﻴﻚ روش ﺑﻬﺘﺮي ﻧﺴﺒﺖ ﺑﻪ دﻳﮕﺮ روﺷﻬﺎ ﺑﺮاي TSPاﺳﺖ وﻟﻲ ﻫﻨﻮز ﺟـﻮاب ﺑﻬﺘـﺮي ﻧـﺴﺒﺖ ﺑـﻪ دﻳﮕـﺮ روﺷـﻬﺎي
ﻣﻮﺟﻮد ﭘﻴﺪا ﻧﻜﺮده اﺳﺖ. وﻟﻲ اﻳﻦ را ﻧﻴﺰ ﻣﻲ داﻧﻴﻢ ﻛﻪ ﺑﻬﺘﺮﻳﻦ اﻟﮕﻮرﻳﺘﻤﻬﺎي ﻏﻴﺮ ژﻧﺘﻴﻜﻲ اراﺋﻪ ﺷـﺪه ﺑـﺮاي TSPدر ﺣﺎﻟﺘﻬـﺎي ﺧﺎﺻـﻲ از
اﻟﮕﻮرﻳﺘﻤﻬﺎي ژﻧﺘﻴﻚ اراﺋـﻪ ﺷـﺪه اﺳـﺖ. ﭘـﺲ ﻣـﺎ اﻣﻴـﺪوارﻳﻢ ﻛـﻪ ﺑـﺎ اراﺋـﻪ روش ﻫـﺎي ﺑﻬﺘـﺮي ﺑـﺮاي Encodingو Crossoverو
Mutationراه ﺣﻠﻬﺎي ﻣﻨﺎﺳﺐ ﺗﺮي ﺑﺮاي Traveling Salesman Problemاراﺋﻪ ﺷﻮد.
35. ﻣﻨﺎﺑﻊ
1 Bryant Kylie ,Genetic Algorithms and the Traveling Salesman Problem, 2001
thesis
,Department of Mathematics, Harvey Mudd college
2 Vacic ,Vladimir and M. Sobh, Tarek, Ph.D. : Vehicle Routing Problem with Time
Windows Department of Computer Science and Engineering
University of Bridgeport, Bridgeport, CT 06604, USA August 2002
3 In – Kim, Byung , Shim, Jae-Ik and Zhang, Min : Comparison of TSP algorithms
4 V. Snyder, Lawrence and S. Daskin, Mark : A Random-Key Genetic Algorithm for
the Generalized Traveling Salesman Problem Department of Industrial Engineering
and Management Sciences, Northwestern University
5 www.mgtsolution.com/DataLibrary/Articles
6 www.ccwmagazine.com/Issues/Issue10/sepehr/GEN.ASP
7 www.cs.nott.ac.uk/~gxk/courses/g5baim/004ga/GA09.html