genetic algorithms for solving traveling salesman problem

35
ژﻧﺘﻴﻚ اﻟﮕﻮرﻳﺘﻢ ﻣﺴﺎﻟﻪ ﺣﻞ در و ﻛﺎرﺑﺮد ﮔﺮد دوره ﻓﺮوﺷﻨﺪه راﻫﻨﻤﺎ اﺳﺘﺎد: ﺣﺴﻴﻨﻲ آﻗﺎي ﺟﻨﺎب ﻛﻨﻨﺪه ﺗﻬﻴﻪ: اﻳﺮج ﺣﻤﻴﺪه811510005

Upload: hamideh-iraj

Post on 26-May-2015

298 views

Category:

Documents


0 download

DESCRIPTION

Genetic algorithms for solving traveling salesman problem

TRANSCRIPT

Page 1: Genetic algorithms for solving traveling salesman problem

الگوريتم ژنتيك كاربرد و در حل مساله

فروشنده دوره گرد

جناب آقاي حسيني: استاد راهنما

811510005 حميده ايرج: تهيه كننده

Page 2: Genetic algorithms for solving traveling salesman problem
Page 3: Genetic algorithms for solving traveling salesman problem

:چكيده مقاله

سـپس . كنـيم فرم هاي مختلف و روشهاي حل آن را بررسي مي ، كاربردها ، را معرفي كرده و پيشينهTSPابتدا در اين مقاله

الگوريتمهاي مي پردازيم و در نهايت وبه ارائه روش حل با الگوريتم ژنتيك . مشكالت روشهاي حل كالسيك را بررسي مي كنيم

كه كدام يك از اين الگوريتمهاي ژنتيك بهتر كنيم و بررسي مي كنيم مي مطرحمساله فروشنده دوره گرد ا براي ر ژنتيك مختلفي

.مي دهنداز بقيه روشها جواب

:كلمات كليدي

Genetic Algorithm—Traveling Salesman Problem--Gene – Chromosome – Allele – Encoding – Population –

Evaluation – Fitness – Selection – Crossover – Mutation – Decoding – Generation – Parent

Page 4: Genetic algorithms for solving traveling salesman problem

فهرست مطالب

مساله فروشنده دوره گرد ١

ريفتع .1,1

پيشينه .1,2

كاربردها .1,3

فرم هاي مختلف .1,4

روش هاي حل .1,5

الگوريتم هاي هيوريستيك ٢

مقدمه .2,1

الگوريتم هاي هيوريستيك انواع .2,2

الگوريتم ژنتيك ٣

مقدمه .3,1

الگوريتم ژنتيكاصول .٣٫٢

٣٫٢٫١. Encoding

٣٫٢٫٢. Evaluation

٣٫٢٫٣. Crossover

٣٫٢٫۴. Mutation

3,2,5. Decoding

Page 5: Genetic algorithms for solving traveling salesman problem

م ژنتيكالگوريتمراحل .3,3

مثال عددي .3,4

الگوريتم ژنتيكمزايا و معايب .3,5

با الگوريتم ژنتيك TSPحل مساله .۴

۴٫١. Encoding

۴٫٢. Crossover

(PMX) Partially Matched Crossover

(CX) Cycle Crossover

Order Crossover

Crossover Matrix

(MOX) Modified Order Crossover

۴٫٣. Mutation

TSPلف الگوريتم ژنتيک برای مقايسه روشهای مخت .۴٫۴

نتيجه گيري .4,5 منابع

Page 6: Genetic algorithms for solving traveling salesman problem

١مساله فروشنده دوره گرد .١

تعريف مساله .1,3 عبارتست ازيافتن يك مسير از تعدادي از شهرها كه از هرشهر دقيقا يك بار عبور كنيم و به شهر اول باز 1مساله فروشنده دوره گرد

. مينيموم شودطوري كه طول مسير گرديم به

پيشينه .1,4 بـه همـه موقعيـت اسـب كه هدف آن حركت دادن يك مهره مطرح شد 1759در2لرياولين نمونه مساله فروشنده دوره گرد توسط او

.هاي صفحه شطرنج بود

نده دوره مساله فروشنده دوره گرد اولين بار در آتاب يك فروشنده آلماني ه يك فروش ه چگون مشهور شد آه راجع به اين بود آ

ه شهرها ) البته نه با اين نام (او اين مساله را .گرد موفق شويم به اين صورت مطرح مي آند آه انتخاب مسير به طوري آه هم

ناخته .را پوشش دهيم و از هيچ شهري دوبار عبور نكنيم مهم ترين جنبه برنامه ريزي يك مسير است ا روش ش ه حال تنه تا ب

ه ه شده آه رسيدن به جواب بهينه را در مساله د اي ب دازه تضمين مي آن رين ر ان ا آمت ور ب افتن ت ور ممكن و ي شمارش هر ت

. شی متمايز وسپس ارزيابی هر حالت بررسی می شودn به روش رياضی مساله با يافتن تعداد جايگشت های ٣.هزينه است

را زيـاد فـرض كنـيم nولي اگـر . محاسبه احتياج داريم!nبراي يافتن مينيمم دورها نيز به حداكثر . است!n تعداد جايگشتها

. نيست4تعداد محاسبات بسيار باال خواهد بود به همين دليل گفته مي شود كه الگوريتم حل مساله در زمان چند جمله اي

بنـابر . ليون سال الزم است شهر ده مي25ي يافتن جواب بهينه يك مساله با ار بتوانيم هر مسير را در يك نانو ثانيه ارزيابي كنيم بر اگ

. اين بايد بهينه بودن را براي يافتن جوابي مناسب در زمان قابل قبول قرباني كنيم

1 Traveling salesman problem (TSP) 2 Euler 3 The “brute force” method 4 Non-Polynomial

Page 7: Genetic algorithms for solving traveling salesman problem

كاربردها .1,5براي مثال چند نمونه از . مساله فروشنده دوره گرد كاربردهاي زيادي در دنياي واقعي دارد و ان را مساله محبوبي براي حل كرده است

مسيريابي وسيله نقليه عبارتـست از مساله. تبديل شود تواند به صورت مساله فروشنده دوره گرد مي5" وسيله نقليهمسيريابي"مساله

انواع مختلفـي از ايـن . و كمترين تعداد وسايل نقليه مورد نياز باشد اين كه كدام وسايل نقليه بايد به كدام مشتري ها سرويس بدهند

مترين زمان براي سرويس دهي نيز مي شود كه بعـضي از ان هـا مـي تواننـد بـه صـورت مـساله مساله وجود دارد كه شامل يافتن ك

.دوره گرد حل شوند فروشنده

قطعه هاي مختلف و تعـدادي پـين داريـم و . نيز مي تواند به صورت مساله فروشنده دوره گرد مدل شود 6ترمساله سيم كشي كامپيو

سيم به هم وصل كنيم كه از هيچ پيني بيش از دو سيم عبور نكند و طول سـيم مينيمـوم بايد زير مجموعه اي از پين ها را طوري با

.شود

پره هاي به .مطرح كردند كاربرد اين مساله را در چك كردن موتور توربين گازي 9 و كا ندراسكاران8الو ، 7پليت

مكان پره ها . د تا يكنواختي جريان گاز را تضمين كنددر هر توربين قرار مي گير) كه به محيط دايره محكم مي شوند( طرف دهانه

. متقارن مدل شود TSPبراي مينيموم كردن سوخت مصرفي ميتواند به صورت يك

زمان بندي عمليات روي يك ماشين در حالي كه زمان انجام عمليات وزمان آماده سازي ماشين براي هر عمليات را بدانيم نيز يك

.وره گرد است كه هدف آن مينيموم كردن زمان كل براي پردازش هر عمل استمساله فروشنده د

2.از كاربردهاي صنعتي آن ميتوان به توليد مايكرو پروسسورها، حمل و نقل و مسايل منطق اشاره كرد

3. نيز كاربرد دارد12 و برنامه ريزي تسهيالت11 ، جابجايي مواد10اين مساله همچنين در انبارداري

4. نيز كاربرد دارد15 و مسير مشتري ها در مراكز بهداشتي14 ، توالي فايل هاي كامپيوتر13ي پستيدر مسيرياب

5 vehicle routing problem (VRP) 6 computer wiring 7 Plate 8 Lowe 9 Chandrasekaran 10 warehousing 11 material handling 12 facilities layout 13 postal routing 14 computer file sequencing 15 the routing of clients through welfare agencies

Page 8: Genetic algorithms for solving traveling salesman problem

فرمهاي مختلف .1,6 اگر گرافي داشته باشـيم كـه . است16اولين ان مساله كوتاهترين مسير هميلتوني. انواع مختلفي از مساله فروشنده دوره گرد وجود دارد

اگر يالي گذرنده . ض داشته باشيم بايد كوتاهترين دور هميلتوني را از اولي به دومي بيابيم هر يال وزني داشته باشد و دو راس مفرو

مسير بهينه مساله فروشنده دوره گـرد همـواره از ايـن يـال مـي نسبت بدهيم M بزرگ ومثبت وزن آن از اين دو اضافه كنيم و به

.ني را حل مي كندگذرد چون هزينه مسير را كاهش مي دهد و مساله دور هميلتو

حالتي است كه هزينه سفر از الف به ب با هزينه سفر از ب به الف يكسان نيست كه مي تواند بـا 17مساله فروشنده دوره گرد نامتقارن

حل شود وقتي كه طوري به يالها وزن بدهيم كـه تـضمين كنـد دور هميلتـوني در 18همان روش مساله فروشنده دوره گرد استاندارد

. داردگراف وجود

بايد هـر فروشـنده را .تنها تفاوت اين است كه بيش از يك فروشنده داريم . شبيه مساله با يك فروشنده است 19مساله با چند فروشنده

. و هر فروشنده به شهر اصلي برگرددبه جايي بفرستيم به طوري كه هر شهر فقط يك بار مالقات شود

به جـاي هزينـه كـل درهـر مـسير ت است كه مي خواهيم بيشترين هزينه هريال را اين صور به 20ه مساله فروشنده دوره گرد گلوگا

.مينيموم كنيم يعني مي خواهيم بيشترين مسافتي را كه هر فروشنده بين دو شهر مجاور مي پيمايد. مينيموم كنيم

.قط اين جا ما دوره هاي زماني داريمف. با مساله فروشنده دوره گرد استاندارد يكي است21مساله فروشنده دوره گرد وابسته به زمان

.مدل رياضي اين مساله به صورت زير است

C ijt هزينه سفر از گره i به گرهj در زمان t است .

X ijt 1است اگر مسير در زمان t از گره I به گره j است0 عبور كند و در غير اين صورت .

Subject to

16 Hamiltonian path problem 17 asymmetric traveling salesman problem 18 standard traveling salesman problem 19 multisalesman traveling salesman problem 20 bottleneck traveling salesman problem 21 time dependent traveling salesman problem

Page 9: Genetic algorithms for solving traveling salesman problem

.محدوديت اخر نشان مي دهد كه هر راس در دوره هاي زماني متوالي وارد و خارج شده است

روش هاي حل .1,7اين الگوريتم فهرستي از همه يال ها . روشي براي يافتن جواب موجه درمساله فروشنده دوره گرد هستند Greedy الگوريتم هاي

سپس يال باكمترين هزينه را انتخـاب . مرتب مي كند ) از كمترين به بيشترين ( لق مي كند و انها را به ترتيب هزينه در يك گراف خ

.ولي هميشه خوب نيست. هميشه جوابهاي موجه ارايه مي كند Greedyالگوريتم ). اگردور تشكيل ندهد( مي كند

به طور تصادفي شـهر شـروع را انتخـاب مـي . است Greedy گوريتم در اين مورد مشابه ال 22" الگوريتم نزديك ترين همسايه "

ايـن . اين كار را تا جايي ادامه مي دهيم كه از همـه شـهرها عبـور كنـيم . كنيم و به نزديك ترين شهري مي رويم كه دور توليد نكند

.الگوريتم هم هميشه جواب هاي خوبي توليد نمي كند چون راس آخر نسبتا دور مي شود

يال است كه همه شهرها را طوري به هم وصل مي كند كـه مجمـوع همـه يـال هـا n-1 مجموعه اي از 23"درخت فاصله مينيموم "

بعـد از . وقتي كه درخت فاصله مينيموم را براي گراف يافتيم يالها را دوطرفه در نظر ميگيريم و مسيري توليد ميكنيم. مينيموم شود

اگر يال عبورنيافتـه . و اين كار را تا عبور از همه شهرها ادامه ميدهيم 24 شهر ديگر متصل است ط به يك شهري شروع مي كنيم كه فق

اين كار كران بااليي براي جواب . اي وجود نداشت به يال قبلي برمي گرديم و اين كار را ادامه مي دهيم تا به شهر آغازين برسيم

اين مشكل را اين طور حل مي كنيم كه اگر . از شهرها بيش از يك بار عبور مي كنيمبهينه را به ما مي دهد با وجود اين كه از بعضي

22 Nearest Neighbor algorithm 23 minimum spanning tree 24 Leaf City

Page 10: Genetic algorithms for solving traveling salesman problem

وقتي از همه شهر ها عبـور كـرديم مـستقيما بـه . به شهر مالقات نشده بعدي مي رويم خواستيم به يك شهر مالقات شده برگرديم

.شهر آغازين مي رويم

Page 11: Genetic algorithms for solving traveling salesman problem

٥الگوريتم هاي هيوريستيك

مقدمه .2,1مسير كاميونهاي حمـل . دهند را پيش روي ما قرار مي 25هاي پيچيده اجتماعي تعداد زيادي از مسائل داراي طبيعت تركيباتي سيستم

كانتينرهـا بايـد هاي ارتبـاطي بايـد طراحـي شـوند، و نقل بايد تعيين شود، انبارها يا نقاط فروش محصوالت بايد جايابي شوند، شبكه

هـاي الزم بايست داراي فركانس مناسب باشند، مواد اوليه چوب، فلز، شيشه و چرم بايد به انـدازه هاي راديويي مي بارگيري شوند، رابط

اين مسائل . نيستند نوميال تئوري پيچيدگي به ما مي گويد كه مسائل تركيباتي اغلب پلي . شمارند بريده شوند؛ از اين دست مسائل بي

. توان جواب بهينه آنها را در مدت زمان قابل پذيرش به دست آورد هاي كاربردي و عملي خود به قدري بزرگ هستند كه نمي در اندازه

اي كه داراي كيفيـت بسنده نمود به گونه 26اي نيست كه به جوابهاي زير بهينه با اين وجود، اين مسائل بايد حل شوند و بنابراين چاره

.ه و در مدت زمان قابل پذيرش به دست آيندقابل پذيرش بود

هـايي الگـوريتم . شده است چندين رويكرد براي طراحي جوابهاي با كيفيت قابل پذيرش تحت محدوديت زماني قابل پذيرش پيشنهاد

تقريبـي هـاي تـضمين كننـد كـه بـه آنهـا الگـوريتم توانند يافتن جوابهاي خوب در فاصله مشخصي از جواب بهينه را هستند كه مي

هـاي احتمال باال جواب نزديك بهينه توليد كنند كه بـه آنهـا الگـوريتم دهند با هاي ديگري هستند كه تضمين مي الگوريتم. گويند مي

هايي را پذيرفت كه هيچ تضميني در ارائه جواب ندارند اما بـر اسـاس توان الگوريتم دسته، مي جداي از اين دو . شود احتمالي گفته مي

بـه ايـن . انـد داشـته سوابق نتايج آنها، به طور متوسط بهترين تقابل كيفيت و زمان حل براي مسئله مورد بررسي را به همراه شواهد و

.شود هاي هيوريستيك گفته مي ها، الگوريتم الگوريتم

ترين براي دستيابي اثربخش مشي و انتخاب گيري بين چند گزينه خط ها عبارتند از معيارها، روشها يا اصولي براي تصميم هيوريستيك

هاي ساده و در همان زمان توانـايي نياز به ساخت معيار: ها نتيجه برقراري اعتدال بين دو نياز هستند هيوريستيك. به اهداف مورد نظر

.هاي خوب و بد تمايز درست بين انتخاب

براي مثال، يك روش مشهور . رود مات به كار ميتواند حسابي سرانگشتي باشد كه براي هدايت يك دسته از اقدا يك هيوريستيك مي

اگر . براي انتخاب طالبي رسيده عبارتست از فشار دادن محل اتصال به ريشه از يك طالبي نامزد انتخاب و سپس بو كردن آن محل

كند كه تنها مياين قاعده سرانگشتي نه تضمين. بوي آن محل مانند بوي داخل طالبي باشد آن طالبي به احتمال زياد رسيده است

هاي رسيده آزمايش شده، رسيده تشخيص داده شوند كند كه طالبي هاي رسيده به عنوان نامزد انتخاب شوند و نه تضمين مي طالبي

25 Combinatorial 26 suboptimal

Page 12: Genetic algorithms for solving traveling salesman problem

.ترين روش شناخته شده است اما به هر حال اين روش، اثربخش

نظر بگيريد كه با انتخاب بين چندين حركت ممكن ها، يك استاد بزرگ شطرنج را در به عنوان مثالي ديگر از استفاده هيوريستيك

آورد ترين حركت خواهد بود زيرا موقعيتي فراهم مي وي ممكن است تصميم بگيرد كه يك حركت خاص، اثربخش. روبرو شده است

تر از ي سادهخيل» رسد به نظر مي«به كارگيري معيار . هاي ديگر باشد هاي حاصل از حركت بهتر از موقعيت» رسد به نظر مي«كه

اين واقعيت كه اساتيد بزرگ شطرنج همواره پيروز بازي . تعيين دقيق حركت يا حركاتي خواهد بود كه حريف را مجبور به مات كند

وقتي از آنها نهايتا. كنند ترين حركت را تضمين نمي هاي آنها انتخاب اثربخش نخواهند بود نشان دهنده اين است كه هيوريستيك

دهند و به نظر خود آنها، انجام آن شود كه هيوريستيك خود را تشريح نمايند آنها فقط توصيفي ناقص از قواعدي ارائه مي مي خواسته

.تر است قواعد از توصيف آنان ساده

هاي بهتر ارائـه دهنـد و در حـالي كـه بـه صـورت مشي اي براي تشخيص خط هاي خوب اين است كه ابزار ساده خاصيت هيوريستيك

بيـشتر . آورنـد كنند اما اغلب به صورت شرط كافي اين تضمين را فراهم هاي اثربخش را تضمين نمي مشي الزم، تشخيص خط شرطي

زمان الزم بـراي يـافتن يـك . باشند هاي ممكن براي تعيين يك جواب دقيق مي مسائل پيچيده نيازمند ارزيابي تعداد انبوهي از حالت

هاي كمتر و ارائـه جوابهـايي در هاي نيازمند ارزيابي ها با استفاده از روش هيوريستيك. عمر است جواب دقيق اغلب بيشتر از يك طول

[3] .هاي زماني قابل قبول داراي نقشي اثربخش در حل چنين مسائل خواهند بود محدوديت

هاي هيوريستيك انواع الگوريتم .2,2

:يص استهاي هيوريستيك قابل تشخ در حالت كلي سه دسته از الگوريتم

هاي سـازنده شوند و با استفاده از آنها الگوريتم هاي ساختاري مسئله و ساختار جواب متمركز مي هايي كه بر ويژگي الگوريتم

.كنند يا جستجوي محلي تعريف مياي كـه آن شـوند بـه گونـه هايي كه بر هدايت هيوريستيك يك الگوريتم سازنده يا جستجوي محلـي متمركـز مـي الگوريتم

.شود ها، متاهيوريستيك گفته مي به اين الگوريتم. غلبه كند) مانند فرار از بهينه محلي(گوريتم بتواند بر شرايط حساس ال

) معموالً روشهاي دقيـق (ريزي رياضي هايي از برنامه هايي كه بر تركيب يك چارچوب يا مفهوم هيوريستيك با گونه الگوريتم

..شوند متمركز مي

Page 13: Genetic algorithms for solving traveling salesman problem

هـاي داراي كيفيـت تواننـد در جـواب اما مي ) گاهي اوقات تا حد بهينگي (توانند خيلي خوب عمل كنند اول مي هاي نوع هيوريستيك

هاي محلي اسـت شوند افتادن در بهينه ها با آن روبرو مي همان طور كه اشاره شد يكي از مشكالت مهم اين الگوريتم . پايين گير كنند

اي از رويكردهـا آغـاز ها از اواسط دهه هفتاد، موج تازه براي بهبود اين الگوريتم . داشته باشند بدون اينكه هيچ شانسي براي فرار از آنها

وقتـي عالئمـي وجـود (هايي است كه صريحاً يا به صورت ضمني تقابل بين ايجاد تنوع جستجو اين رويكردها شامل الگوريتم . گرديد

با اين هدف كه بهترين جواب در منطقه مورد بررسي (تشديد جستجو و ) رود دارد كه جستجو به سمت مناطق بد فضاي جستجو مي

..كنند را مديريت مي) را پيدا كند

:توان به موارد زير اشاره كرد ها مي از بين اين الگوريتم. شوند ميده مي ها متاهيوريستيك نا اين الگوريتم

سازي شده بازپخت شبيه27

جستجوي ممنوع28

هاي ژنتيك الگوريتم29

هاي عصبي مصنوعي شبكه30

هاي مورچه اي يا الگوريتم سازي مورچه بهينه31

27 Simulated Annealing (SA) 28 Tabu Search (TS) 29 Genetic Algorithms (GA) 30 Neural Networks 31 Ant Colony Optimization (ACO)

Page 14: Genetic algorithms for solving traveling salesman problem

الگوريتم ژنتيك

:مقدمه .3,1

اين عمل با جـستجو . نمايد يساز را شبيه يتواند مكانيزم انتخاب طبيع ي د كه توسط آن ماشين م باش ي م يالگوريتم ژنتيك ابزار

[1] .پذيرد ي م بهينه صورتماالزا مسئله جهت يافتن جواب برتر و نه يدر فضا

، توسـط يسـپس نظريـه محاسـبات تكـامل . نظريه داروين در مورد تكامـل ، جـان گرفتنـد توجه به با ژنتيك يالگوريتم ها

لگـوريتم منجر بـه اختـراع ا 1975 شدند و اين نظريه توسط محققان ديگر توسعه يافت تا در سال ي معرف 1960ريچنبرگ در سال

. و دانشجويانش شد 32 ژنتيك توسط هاالنديها

: در الگوريتم هاي ژنتيك يك سري تعاريف اوليه داريم كه در زير آمده است

.واحد پايه ژنتيك استgene) : ( ژن 1.

.حالتهاي مختلف هر ژن را مي گويند) : allele( فرم 2.

.به گروهي از ژنها اطالق مي شود) : choromosome( كروموزوم 3.

مطرح مي شود كه بر اساس سه Encoding , Evaluation , Crossover , Mutation بعد از تعاريف باال مفاهيمي از قبيل .تعريف باال مطرح مي شوند

ژنتيك اصول الگوريتم .3,2

. حال به شرح مراحل ذكر شده درمقدمه مي پردازيم

٣٫٢٫١. Encoding :

اين مرحله به اين مفهوم است كه ما بايد با ارائه يـك . اين مرحله شايد مشكلترين مرحله حل مساله به روش الگوريتم ژنتيك باشد

اهميت اين مرحله به اين دليـل اسـت كـه . را ادامه دهيمخوب براي كليه جوابهاي ممكن مراحل بعدي 33شبيه سازي و جايگذاري

.نحوه ادامه كار به اين مرحله بستگي دارد

32 Holland

Page 15: Genetic algorithms for solving traveling salesman problem

چه بسا مـا بتـوانيم بـا . رشته هاي بيتي ممكن براي جوابها را مي سازيمله رشته هاي كروموزومي يا همان در واقع ما در اين مرح

بعد از ساختار بندي براي هر جواب ممكـن از . يك زمان خوب و معقول پيش ببريم يك شبيه سازي خوب براي جوابها الگوريتم را در

. ما ساخته مي شود34كنار هم گذاشتن اين ساختارها جمعيت اوليه

. 35 مي رود عبارتست از تبديل عدد به يك رشته باينريعداد يك روش معمول كه به كار براي مثال براي شبيه سازي ا

) 4رشته با طول ( 1 0 1 1 → 13

9 → 1 0 0 1

٣٫٢٫٢. Evaluation :

ما در اين مرحله با معرفي يـك معيـار و . وريتم ژنتيك ايفا مي كند لگ ا سيار مهمي را در حل مساله به روش اين مرحله نيز نقش ب

x يعني اينكه اين معيار به ما ميگويد كه مثال جـواب . مي بريمهر جواب ممكن از جمعيت اوليه پي بهتر بودن يا نبودناندازه به

. چقدر خوب است واقع در جمعيت اوليه

f مثال اگر داشته باشـيم . دد به هر جواب ممكن ميزان خوب بودن آن جواب را بيان كند اين معيار مي تواند با نسبت دادن يك ع

(a) = 3 و f (b) = 5 اين به اين معني است كه عضو b در جمعيت اوليه بهتر از a اسـت يـا مقـدار Fitness ي بـاالتر

. داردa نسبت به

3,2,3. Crossover :

از جوابهـا مـا ) يا يك سري كروموزوم جديد ( ه شد كه در الگوريتم ژنتيك براي بوجود آوردن يك نسل جديد به اين مطلب اشار

به اين سـري از تغييـرات اعمـال عملگـر مـي .كروموزومها اعمال مي كنيم يا36انتخاب شدهيك سري از تغييرات را روي جوابهاي

مي باشد كـه مـا در ايـن قـسمت بـه نحـوه عملكـرد Mutationو Crossover عملگرهاي ما در اين تغييرات دو عملگر .گوييم

Crossoverمي پردازيم .

33 Representation 34 First Population 35 binary string 36 Selected

Page 16: Genetic algorithms for solving traveling salesman problem

روي جوابهاي انتخاب شده براي تغيير به اين گونه عمل مي كند كه يك نقطه به صورت تصادفي روي رشته Crossover عملگر

.اي چپ يا راست آن نقطه در رشته كروموزومي جا به جا ميشودبعد ناحيه ه) است random كه البته(كروموزومي انتخاب مي كند

.با يك نقطه انتخابي را مشاهده مي كنيد crossover نمونه هايي از 3 - 1شكل در

)با يك نقطه انتخابي crossover (3 – 1 شكل

Parent 1 11011|00100110110

Parent 2 11011|11000011110

child 1 11011|11000011110

child 2 11011|00100110110

. ناحيه هاي بين دو نقطه را جا به جا كنيمتوانيم دو نقطه انتخاب كنيم و مي crossover همچنين براي )3 – 2شكل (

) نقطه انتخابيدوبا crossover( 3 – 2شكل

Parent 1 11011|00100|110110

Parent 2 11011|11000|011110

child 1 11011|11000|110110

child 2 11011|00100|011110

3,2,4. Mutation

Page 17: Genetic algorithms for solving traveling salesman problem

Mutation نحوه عملكرد آن به اين گونـه اسـت بـه صـورت . كندنيز عملگر ديگري هست كه جوابهاي ممكن ديگري را متولد مي

فـرم آن در شكل يـك بعـد از انتخـاب نقطـه . آن را تغيير مي دهد37تصادفي روي كروموزوم انتخابي نقطه اي را انتخاب كرده و فرم

)3-3شكل (.اختيار كند 2 تغيير مي كند و مي تواند عدد ديگري مثل

Original offspring 1101111000011110

Mutated offspring 1100111000011110

٣٫٢٫۵. Decoding

در اين مرحله بعد از اينكه الگوريتم بهترين جواب را براي مساله ارائه كرد الزم است عكس عمل . استencodingعكس عمل

.ا بتوانيم نسخه واقعي جواب را به وضوح در دست داشته باشيم اعمال شود تdecodingرمزگذاري روي جوابها يا همان

الگوريتم ژنتيكمراحل .3,3

:الگوريتم ژنتيك با انجام قدم به قدم مراحل زير پيشرفت مي كند

. دارندl فرد تصادفي كه هر كدام كروموزومي به طول n شروع الگوريتم با يك جمعيت متشكل از1.

براي هر فرد fitness محاسبه 2.

) الدينانتخاب و( fitness انتخاب دو فرد بر اساس باالتر بودن 3.

و تولد بچه ها از والدين crossover اعمال 4.

براي هر بp با احتمال mutation اعمال 5.

عنوان نسل جديد مجموعه بهار دادن بچه هاي متولد شده داخل يك قر 6.

37 allele

Page 18: Genetic algorithms for solving traveling salesman problem

38تغيير دادن جمعيت اوليه همراه ورود نسل جديد 7.

2رفتن به قدم 8.

مقـدار 39بـي ارزيـا بعـد تـابع .ممكـن تـصادفي درسـت مـي كنـيم جواب n در ابتداي الگوريتم ژنتيك يك جمعيت اوليه شامل

باالتري داشت احتمـال انتخـاب برازندگي اساس اينكه هر جوابي كه بر 41انتخاب يك تابع . . هر جواب را حساب مي كند 40برازندگي

روي كرومـوزوم هـاي انتخـاب mutation وcrossover براي مرحله بعد عملگرهـاي كند انتخاب ميparent دارد دو بيشتري

. شده اعمال مي شود

نـسل پايين حذف مي شوند و جاي خود را به بچه هاي متولـد شـده و برازندگي يعني با بد بعد از اين مرحله تعدادي از جوابهاي

. برمي گرددارزيابيعد از تثبيت نسل جديد الگوريتم بار ديگر به مرحله ب. مي دهند جديد

شدن هـم شـانس parentبراين اساس انجام مي شود كه همه جوابها براي ) 3 مرحله ( انتخاب همان طور كه اشاره شد عمل

. آنها باالتر باشد برازندگي ارند كه مقدار شدن د parent به عبارت ديگر جواب هايي احتمال زياد و باالتري براي . نيستند

x=0و جـواب بـودن 4 عدد x=2 مثال براي جواب بودن ٫نظير كنيم برازندگي ما مي توانيم براي هر جواب يك عدد به عنوان

مـي تـوانيم حـال . اسـت x= 0 جواب بهتري نسبت به x=2در اين صورت مشخص است كه ) 3-1جدول ( . را نسبت دهيم 2عدد

.) فرض شده است 43q و اعداد نظير شده 42pجمعيت: (تابع احتمال و انتخاب را به اين گونه تعريف كنيم

نشان 3 -5 و 3 – 4 هاي شكل مي شود كه ناميده Roulette Wheel Selectionانتخاب اين نوع

. مي دهد

38 New Generation 39 evaluation 40 fitness 41 selection 42 population 43 quality

Page 19: Genetic algorithms for solving traveling salesman problem

1-3جدول Chromosome Fitness

10110110 20

10000000 5

11101110 15

10010011 8

10100010 12

4-3 شكل

)Roulette Wheel Selection (3 -5شكل

Page 20: Genetic algorithms for solving traveling salesman problem

عدديمثال .3,4 . ماكزيمم تابع را بيابيمx € N و x ≤ 15 ≥ 0 مي خواهيم براي. را داريم f(x) = -x² + 6x -3 فرض كنيد تابع

: مراحل حل مساله به روش الگوريتم ژنتيك به شرح زير است

encoding .1 را كدگذاري كنيم يكي از روشهايي كه در پيش داريم تبديل هر عـدد بـه يـك x ≤ 15 ≥ 0 براي اينكه ما جوابهاي ممكن يعني

چهار بيتي است لـذا تمـام جـواب 1 1 1 1 است و متناظر باينري آن 15 چون بيشترين جواب ممكن ما . عدد باينري متناظر است

. مي باشندl =4 داراي طولي برابر )كروموزوم ها(هاي ما

Evaluation .2

b f(b)و a يعني اگر به ازاي يك. بدست مي آيدf(x) حساب مي كند مستقيما از خود تابع fitness تابعي كه مقداري براي

> f(a) : باشد آنگاه b داراي fitness اينكه يا . بيشتري استb ازa بهتر است.

Selection .3 بيشتري نـسبت بـه جمعيـت خـود fitness داراي 8 و 3دوعدد n<m فرد كه m فرض كنيم كه در آن جمعيت اوليه با

الگوريتم وارد مراحل توليد نـسل جديـد مـي parent بعد از انتخاب اين دو عدد به عنوان .بودند و احتمال انتخاب بيشتري داشتند

. شود

3 → 0 0 1 1 f(3) = 6

8 → 1 0 0 0 f(8) = -19

crossover .4 . عمل زير را انجام دهدcrossoverفرض كنيم كه

0 0 1 1 point = 3 0 0 1 0

1 0 0 0 1 0 0 1

Page 21: Genetic algorithms for solving traveling salesman problem

mutation .5 :mutation و نيز عملگر

0 0 1 0 point = 2 0 1 1 0 = (6 )

1 0 0 1 1 1 0 1 = (13)

fitness حال كروموزوم هاي متولد شده جزو نسل جديد به حساب مي آيند و به جمعيت اوليه افزوده مـي شـوند وجوابهـاي بـا

. فرد به كار خود ادامه مي دهد n پايين حذف مي شوند و الگوريتم دوباره با

بـراي . طي مراحـل بعـد بـه نحـوي از بـين بـرود ) x = 6 براي مثال ( يك نكته الزم به تذكر است كه ممكن است بهترين جواب

تا هميشه بهترين جـواب حاصـل ) far (جلوگيري از اين امر بعد از هر بار انجام الگوريتم بهترين جواب را در جايي كنار مي گذاريم

.از هر بار اجراي الگوريتم را داشته باشيم

م در نظر گرفت و معموال چند معيار براي توقف استفاده مي شود تـا احتمالهـاي معيارهاي مختلفي را مي توان براي توقف الگوريت

مي تواند اين باشد كه بهترين جواب را بعد از اجـراي تعـداد يك معيار . الگوريتم حساب شوند مختلف وقوع پيشامدها در طي اجراي

fitness جوابهـاي موجـود در جمعيـت جـاري همـان fitnessيا معيار ديگـر اينكـه ميـانگين . مشخصي بار از الگوريتم تغيير ندهد

.بهترين جواب يا بسيار نزديك به آن باشد

هـاي توقـف مختلـف اسـت و روشمعمـوال . و يا اينكه مي توانيم از پيش قرارداد كنيم كه الگوريتم به تعداد مشخصي اجـرا شـود

.بستگي به پيچيدگي و چگونگي مساله دارد

quality از خود تابع استفاده كرديم و لزومي براي نسبت دهي يك مقدار بـه عنـوان evaluationتعريف تابع در اينجا ما براي

.نبود

اگر ما اين مراحل را به گونه اي دنبال كنيم كه بعد از هر بار اجرا جواب هـاي بـد حـذف و جوابهـاي نـسل جديـد كـه احتمـاال

fitness د به مرور فاصله بااليي دارند جايگزين آنها شون fitness بين min وMax كم مي شود و ميانگين جواب ها به بهترين

. دهد كه ما به طور كلي به بهترين جواب نزديك مي شويم جواب ميل مي كند و اين نشان مي

مطرح مـي شـد [15 , 0] سوالي كه در اينجا مطرح مي شود اينست كه اگر در مثال قبل به جاي فضاي گسسته فضاي پيوسته

الگوريتم به چه شكلي انجام مي گرفت؟

Page 22: Genetic algorithms for solving traveling salesman problem

بديهي اسـت مـا . تغيير كند ε به اندازهmutation تعريف مي كنيم تا هر بيت جواب در مراحلي مثل ε در اين حالت ما يك

همين دليل زمان اتمام الگوريتم باال مـي را كوچكتر فرض كنيم ميزان محاسبات و تكرار الگوريتم باال مي رود و به ε هر چقدر اين

. زمان اتمام باال مي رود n اوليه در جمعيت اوليه است كه با زياد فرض كردن n عامل ديگري كه در زمان موثر است . رود

: حال به ذكر دو نكته مي پردازيم نيز كم كـم احتمـال selection شود و در اين صورت تابع جوابها كمتر مي fitness بعد از تكرار الگوريتم به تدريج تفاوت بين 1

.در اين حالت الگوريتم پايان مي يابد. يكساني را براي انتخاب جوابهاي ممكن تخصيص مي دهد

.) چون بهترين جواب هم احتمال انتخابي برابر ديگر جوابها دارد (

بـه تعـداد ) كروموزوم ( به اين معني كه از يك جواب . وجود داردSuper - Subject در جريان الگوريتم ژنتيك احتمال توليد 2 .

بسيار زيادي توليد مي شود و اين جمعيت را به ميزان زيادي انبوه كرده و عالوه بر اين باعث مي شود كه جمعيت مـا از تنـوع جـواب

.كمتري نسبت به ميزان جمعيت برخوردار باشد كه اين در الگوريتم ايجاد مشكل مي كند

:براي جلوگيري از اين گونه مشكالت چند ايده مطرح مي شود

( Windowing ) : به اين مفهوم است كهfitness بدترين جواب را از fitness ايـن عمـل . بقيه جوابها كـم مـي كنـيم

و نيـز احتمـال . ارنـد صفر بدست آيند و اين يعني اينكه احتمال انتخـابي برابـر صـفر د fitnessموجب مي شود كه تعدادي جواب با

.انتخاب بهترين جواب قوت مي گيرد

( Exponential ) : برايfitness هر جواب مقدار جديد ريشه دوم )fitness + 1 (اين عمل موجب . را به كار مي بريم

.مي شود تا اثر قويترين جواب تعديل شود

( Linear Transformation ) :آوردن به كار گرفتن رابطه زير براي بدست fitnessجديد .

f2 = a ( f1 ) + b

.اين رابطه هم اثر بهترين جواب را كمتر مي كند

Page 23: Genetic algorithms for solving traveling salesman problem

( Linear Normalization ) : و دومـين 100شي براي اولين فرد عـدد 10براي مثال در يك جمعيت شامل

اين عمل موجب مي شود كه اختالف بين احتمال انتخاب فقط به . را نسبت مي دهيم 10 امين فرد عدد 10براي ... و 90فرد عدد

ايـن . fitness فقط بر اساس تعداد اسـت نـه بـر اسـاس Distributionدر اين روش پخش شدن . تعداد افراد بستگي داشته باشد

. جلوگيري مي كندSuper - Subjectروش از پخش شدن

6 ا و معايب الگوريتم ژنتيكمزاي .3,5

يعنـي هميـشه در حـد بـسيار . به جاي نقطه بهينه محلي ست 44اولين خصوصيت مثبت اين الگوريتم دستيابي به نقطه بهينه كلي

. يابد به احتمال زياد بهترين پاسخ ممكن است توان به پاسخ اين الگوريتم اعتماد كرد و اينكه پاسخي كه مي مطلوبي مي

را بعنوان نقطه بهينه كلي در نظر 45ها نقطه بهينه محلي اغلب اين روش . السيك رياضيات داراي دو اشكال اساسي هستند هاي ك روش

. كنيم اي روشن مي هاي ساده اين دو نكته را با مثال. ها تنها براي مساله خاصي كاربرد دارند گيرند و نيز هر يك از اين روش مي

حـال اگـر از . كه يكـي از آنهـا تنهـا مـاكزيمم محلـي سـت . باشد منحني داراي دو نقطه ماكزيمم مي اين . به شكل زير توجه كنيد

شـروع 1مثال از نقطه . سازي رياضي استفاده كنيم مجبوريم تا در يك بازه بسيار كوچك مقدار ماكزيمم تابع را بيابيم هاي بهينه روش

شروع كنيم تنها به مقدار ماكزيمم محلي دست خواهيم يافـت و الگـوريتم مـا 1بديهيست اگر از نقطه . كنيم و تابع را ماكزيمم كنيم

1هاي هوشمند خاصه الگوريتم ژنتيك بدليل خصلت تصادفي آنها حتـي اگـر هـم از نقطـه اما در روش . پس از آن متوقف خواهد شد

يابي به نقطه بهينه صورت ما شانس دست به صورت تصادفي انتخاب شود كه در اين Aشروع كنيم باز ممكن است در ميان راه نقطه

. كلي را خواهيم داشت

سازي اغلب منجر به يك فرمول يا دستورالعمل خاص براي حل هر مسئله هاي رياضي بهينه در مورد نكته دوم بايد بگوييم كه روش

اي بـه كـار گرفتـه در حل هر مـسئله توانند هايي هستند كه به صورت كلي مي هاي هوشمند دستورالعمل در حالي كه روش . شوند مي

. شوند

44 Global Optima 45 Local Optima

Page 24: Genetic algorithms for solving traveling salesman problem

در واقـع تنهـا . تواند به كار رود و نيازي به تغيير آن نيست عالوه بر اين اين الگوريتم به همين شكل موجود در حل انواع مسائل مي

هـر چنـد خـود . يي كنـيم ها بازنمـا هاي مختلف را به شكل كروموزوم كاري كه در مورد هر مساله بايد انجام دهيم اينست كه جواب

هاي مشابهي همچون استراتژي تكاملي و يا الگوريتم آب رود اما روش سازي گسسته به كار مي الگوريتم ژنتيك براي حل مسائل بهينه

يـز بـه سـازي ايـن الگـوريتم ن نحوه تعريف و پيـاده . توانند به كار روند وجود دارند كه عينا در مورد مسائل پيوسته مي 46دادن فوالد

. سازد ها مناسب ميMultiprocessorايست كه آن را بسادگي جهت اجرا بصورت موازي يا بر روي گونه

اغلب حل يك مسئله نيازمند توليد چنـدين هـزار .سازي، هزينه اجراي آنست اما مشكل اصلي الگوريتم ژنتيك عليرغم سادگي پياده

خصوصا اگر تعـداد جمعيـت اوليـه زيـاد باشـد و نيـز تـابع هـدف تـابع (ن زيادي دارد هاست و اين مسئله نياز به زما نسل از كروموزم

. آيد كه براي حل يك مسئله بعنوان مثال يك پردازنده پنتيوم بايد بيش از يك هفته برنامه را اجرا كند گاه پيش مي). اي باشد پيچيده

. كند ستفاده از الگوريتم را با مشكل مواجه ميطبيعيست كه اين زمان زياديست براي حل يك مساله و همين امر گاهي ا

46 ُSimulated Annealing

Page 25: Genetic algorithms for solving traveling salesman problem

٧ با الگوريتم ژنتيك TSPحل مساله . مي سازد را توضيح مي دهيم TSP در اين بخش ما مراحلي را كه الگوريتم ژنتيك براي

4,1. Encoding به i است اگر يك يال از راس jوi در مكان 1 مي توانيم يك ماتريس مجاورت گراف ايجاد كنيم كه شامل encoding براي

حال مي توانيم از اين ماتريس همان گونه كه هست استفاده كنيم يا بـه ايـن . است 0 وجود داشته باشد و در غير اين صورت jراس

شته نمـايش ها ايجاد كنيم ولي توجه داريم كه اين ر 1 و0صورت كه سطرهاي ماتريس را به هم الحاق كنيم و رشته اي طوالني از

. ساخته مي شودencoding به اين صورت اولين متد .باينري عدد نيست

: براي مثال ماتريس مقابل

رد متـد بعـدي كـه مـو . مي رود1 به شهر 2 و از شهر 2 به شهر 3 و از شهر 3 به شهر 1 دوري را نشان مي دهد كه از شهر

اولين شيوه ساخت اين متد بـه ايـن .بررسي قرار مي گيرد متدي است كه يك رشته از اعداد كه معرف شماره شهر است را مي سازد

مي رويم و 2 شروع كرده سپس به شهر 1 اين مفهوم را مي رساند كه ابتدا از شهر v = 1234 صورت است كه براي مثال رشته

و 1234توجـه كنيـد كـه دو رشـته . در پايان هم به شهر اول بر مي گـرديم . حركت مي كنيم4ه شهر و بعد ب3از آنجا به شهر

. معادلند2341

به شهر 3 و از شهر 3 به شهر 1 را داشته باشيم به اين معني است كه دور از شهر v = 3124 شيوه دوم اين است كه اگر رشته

قابل توجه است كه هر رشته ممكن در اينجا يك دور مجـاز را . مي رويم 2 به شهر 4 از شهر و در پايان 4 به شهر 2 و از شهر 2

بـه 2 بازمي گـرديم واز شـهر 1 مي رويم و به شهر 3 به شهر 1 نشان مي دهد كه ما از شهر 3412مثال رشته . نشان نمي دهد

. بط است باز مي گرديم كه يك رشته بي ر2 مي رويم و به شهر 4شهر

Page 26: Genetic algorithms for solving traveling salesman problem

4,2. Crossover

۴٫٢٫١. (PMX) Partially Matched Crossover : را داشته باشيم زير اگر دو رشته

1 2 3 4 | 5 6 7 | 8 8 5 2 1 | 5 6 7 | 7

: دو نقطه اي انجام دهيم خواهيم داشت crossoverو يك

v1 = 1 2 3 4 | 3 6 4 | 8 v2 = 8 5 2 1 | 5 6 7 | 7

به طور . را دو بار بازديد مي كند4 و 3 را بازديد نمي كند و شهر هاي 7 يا 5 شهر v1غير مجاز هستند چون كه به طور بديهي

. را دو بار مي بيند7 و 5 را نمي بيند و شهر هاي 4 و 3 شهر هاي v2مشابه

PMX را 4 ↔ 7 و 6 ↔ 6 و 3 ↔ 5اي بدون استفاده از ابزاري اين مشكل را به اين گونه حل مي كند كه تعويض ه

و به اين ترتيب رشته هاي زير تكرار مي كندcrossoverانجام مي دهد سپس اين تعويض ها را عينا روي ژن هاي خارج از نقاط

:ساخته مي شود

1 2 5 7 3 6 4 8 8 3 2 1 5 6 7 4

راه حل بهتري پيدا بهتر crossoverهمين دليل نياز داريم تا با يك ولي ما در اين روش لزوما يك دور مجاز توليد نمي كنيم به

. توليد كنيممجاز كنيم و دورهايي

Page 27: Genetic algorithms for solving traveling salesman problem

4,2,2. (CX) Cycle Crossover

به اين مفهوم است 1234 عمل مي كند يعني رشته encoding روي اولين شيوه crossover الزم به ذكر است كه اين متد

.گرديم برمي مي رويم و در آخر به4 و به 3 و به 2 به 1ب از كه به ترتي

: فرض كنيد دو رشته زير را داريم

1 2 3 4 5 6 7 8 8 5 2 1 3 6 4 7

: به اين شكل عمل مي كنيم v1ما براي توليد يك رشته جديد

: ها انتخاب مي كنيم parentاولين ژن را از يكي از

v1 = 1 - - - - - - -

1از آنجاييكه اولين موقعيت توسط . ها برداريم و آنرا در موقعيتي كه قبال بوده قرار دهيم parentبايد هر عنصر را از يكي از

: را هم از رشته اول برداريم8 از رشته دوم نمي تواند به آن محل برود پس مجبوريم 8اشغال شده است عدد

v1 = 1 - - - - - - 8

: را نيز از رشته اول برداشته و در محل خود قرار دهيم 4 و 7و به همين شكل

v1 = 1 - 4 - - - 7 8

.اين متد هميشه يك كروموزوم مجاز مي سازد. را مي سازيمv1حال با پر كردن بقيه محل ها با عناصر آن محلها از رشته دوم

بااليي fitness, parent باشد ولي اين مشكل نيست چون نشانگر اينست كه parent البته ممكن است فرزند درست شده همان

. دارد و باز هم مي تواند يك انتخاب باشد

Page 28: Genetic algorithms for solving traveling salesman problem

۴٫٢٫٣. Order Crossover

همان دو نقطه را در نظر مي گيرد ولي به جاي اصالح كروموزومها با تعويض تكرارها به طور ساده تري. شبيه استPMXخيلي به

.بقيه ژن ها را مرتب مي كند تا يك دور مجاز بدهد

: مثال اگر دو رشته زير را داشته باشيم

1 3 5 | 7 6 2 | 4 8 5 6 3 | 8 2 1 | 4 7

:با تعويض كردن ژنهاي بين دو نقطه بدست مي آيد

v1 = - - - | 8 2 1| - - v2 = - - - | 7 6 2| - -

. ثبت مي كنيمparent ژنها را از كروموزوم crossoverسپس با شروع از دومين نقطه

4 8 1 3 5 7 6 2 4 7 5 6 3 8 2 1

را از 2 و 6 و 7 و v1 را از ليـست 1و 2 و 8يعنـي . بوده اند را حذف مي كنيمcrossoverسپس ژن هايي را كه بين نقاط

: حذف مي كنيم تا رشته هاي زير بدست آيند v2 ليست

4 3 5 7 6 4 5 3 8 1

: با كروموزومهاي فرزند رشته هاي نهايي زير بدست مي آيندcrossoverو با جايگزيني از دومين نقطه

v1 = 5 7 6 8 2 1 4 3 v2 = 3 8 1 7 6 2 4 5

Page 29: Genetic algorithms for solving traveling salesman problem

۴٫٢٫۴. Crossover Matrix . يك يا دو نقطه اي مي باشدcrossoverهمان

:اگر ماتريس هاي زير را داشته باشيم

: كردن ستون ها نتيجه مي دهد crossover. را بعد از اولين ستون و بعد از دومين ستون انتخاب مي كنيمcrossoverنقاط

ها از سطري كه 1 يكي از اين را بوسيله انتقال. ندارند1 در بعضي سطرها داريم و بعضي از سطرها اصال 1 حاال ما چندين

. تصادفي است1 اين انتخاب بين سطرهاي شامل چند . دارد به سطري كه هيچ يكي ندارد درست مي كنيم1چندين

Page 30: Genetic algorithms for solving traveling salesman problem

پس ما دو دور مختلف ايجاد كرده ايم ولي اين را بوسيله . b → c → b و a ↔ a حال با مالحظه ماتريس اول مي بينيم كه

.برش و متصل كردن درست مي كنيم

. وصل مي كنيمc و b را به a را ميبريم و c و b را و همچنين يكي از يالهاي بين a به a يال

Page 31: Genetic algorithms for solving traveling salesman problem

۴٫٢٫۵. (MOX) Modified Order Crossover

انتخاب مي كنيم و بـه طـور معمـول ژنهـاي parent تصادفي در crossoverيك نقطه . يك نقطه اي است crossover شبيه

را بـه ترتيبـي كـه در دومـين كرومـوزوم crossoverسپس ژنهاي بعد از نقطه . قبل از نقطه را همان طور كه هستند رها مي كنيم

parentظاهر شده اند دوباره مرتب مي كنيم .

: اكر دو كروموزوم زير را داشته باشيم

1 2 3 | 4 5 6 3 6 4 | 2 1 5

:بدست خواهيم آورد

v1 = 1 2 3 | 6 4 5

v2 = 3 6 4 | 1 2 5

crossover تا حاال تمركز روي موقعيت شهر در دور را جستجو كرده در حاليكه در واقـع يالهـا مهمتـرين قـسمتهاي سـفر

واقعا مي خـواهيم ايـن اسـت كـه بـا يالهـا بيـشتر از فروشنده دوره گرد هستند زيرا آنها وزنها را معين مي كنند بنابراين چيزيكه ما

.موقعيت هر شهر سروكار داشته باشيم

Grefenstette (1981) يك روتين crossover اختراع كرده كه هر راس را از يكي از آنهـايي كـه بـراي راس جـاري در

.ها الزم است بر مي دارد parentيكي از

.ل براي هر راس انجام مي دهيم اين را بوسيله ايجاد يك ليست يا

:كروموزومهاي

v1 = 1 2 3 4 5 6

v2 = 3 6 4 2 1 5

Page 32: Genetic algorithms for solving traveling salesman problem

در اين مثال انتخاب مي كنيم آن را كه كمتـرين عـدد از 3 يا 1ها يعني parent ابتدا يكي از نخستين راسها را از يكي از

.د يكساني دارند تصادفي يكي را انتخاب مي كنيمراسهاي الزم را دارد انتخاب مي كنيم و يا اگر آنها عد

چون اين همان راسي است كه اول انتخاب كرديم دوباره راسـي . تالقي مي كنند 1 سپس مشاهده مي كنيم كه راسهايي با راس

يم ايـن فراينـد انتخـاب را انتخاب مي كن 2با كمترين عدد از راسهاي الزم كه قبال انتخاب نشده اند انتخاب مي كنيم سپس راس

راسهاي فرضي را ادامه مي دهيم اگر به حالتي برخورد كنيم كه نتوانيم راسي را كه قبال انتخاب نشده را انتخاب كنيم يك گره كـه

.قبال انتخاب نشده است را تصادفي انتخاب مي كنيم

ها روي نـداده اسـت امـا parent جاري ما در يكي از اين به آن معني است كه ما مي خواهيم راسي را بدست آوريم كه در راس

توجه داشته باشـيد كـه مـا در .مي توانند فرزند توليد كنند ما parentهاي م متاسفانه اين اجتناب ناپذير است بنا براين كروموزو

. ها الزم بودند موفق بوديمparentتمام مدت در توانايي انتخاب راس هايي كه در يكي از

ها را دوبار انجام دهيم تا يك نسل جديد ايجاد crossover بدست مي آوريم تا بسياري از crossoverفقط يك فرزند از اين ما

. اي داريم كه از اطالعات مكشفه اي استفاده مي كندcrossoverهمچنين عملگرهاي .كنيم

۴٫٣. Mutation مي كنيم و چك را از دورمان انتخاب(c , d) و (a , b)دو يال . را نشان مي دهيم(opt - 2) ابتدا عملگر دو گزينه اي

بـراي انجـام . راس را با يك روش متفاوت به هم وصل كنيم تا كمترين وزن را به ما بدهد يا خيـر 4 مي توانيم اين مي كنيم كه آيا

(d , b) و (a , c) را با يالهـاي (c , d) و(a , b) باشد يالهاي Cab + Ccd > Cac + Cdbاين كار چك مي كنيم كه اگر

متـصل c و b با ترتيب مشخصي در دور ظاهر شده اند حتي اگـر d و c و b و aتوجه كنيد كه فرض كرده ايم كه . عوض كنيم

.نباشند

و (a , b)اگر يالهـاي . ن مي دهد داريم كه به جاي دو يال سه يال تصادفي را نشاopt - 3)(همچنين يك عملگر سه گزينه اي

(c , d) و (e , f) را داشته باشيم چك مي كنيم كه اگر Cab + Ccd + Cef > Cac + Cbe + Cdf باشـد يالهـاي

(a , b) و )(c , d و )(e , f را با يالهاي (a , c) و (b , e) و (d , f)عوض كنيم .

يك مجموعه از راس هاي متصل را تصادفي انتخاب مي كنيم و چك مي كنيم كه آيـا . است(opt - 2) شبيه (or - opt) عملگر

ما مي توانيم اين را بوسيله پيدا كردن مجموع وزن هاي . اين رشته مي تواند بين دو راس ديگر اضافه شود تا وزن تقليل يابد يا خير

. اگر وزن يالهاي حذف شده بيشتر بـود تعـويض انجـام گيـرد . محاسبه كنيميالهاي اضافه شده و مجموع وزن هاي يالهاي حذف شده

. ديگر نيز وجود دارند كه يك شهر انتخابي تصادفي را به يك مكان انتخـاب شـده تـصادفي اضـافه مـي كنـد Mutationسه عملگر

. دو جانبه داريمmutaionهمچنين ما هنگاميكه دو شهر تصادفي را انتخاب مي كنيم و آنها را تعويض مي كنيم يك

Page 33: Genetic algorithms for solving traveling salesman problem

TSPمقايسه روشهاي مختلف الگوريتم ژنتيك براي .4,4

بـه TSP را در حـل مـساله mutation و crossover و عملگرهـاي encoding تا به حال فرمهاي مختلفي از رمزگذاري ها

بـه TSP به راه حـل هـاي مختلفـي بـراي اين حالتها مي توانند با هم تركيب شوند و منجر به رسيدن . روش الگوريتم ژنتيك ديديم

هـاي خاصـي عمـل مـي كننـد در نتيجـه encoding روي crossoverولي از آنجايي كـه متـدهاي . روش الگوريتم ژنتيك شوند

.الگوريتمهاي ژنتيك خيلي متفاوتي براي جستجو نداريم

. مي پردازيمHeuristic Information حال به بررسي الگوريتمهاي ژنتيك محض يعني بدون استفاده از

با ايـن شـرايط در . اتخاذ نكرده ايمmutation را انتخاب كرده ايم و هيچ عملگري را براي PMX crossover فرض كنيد كه

. درصد مي رسد210 شهر اين ميزان به 100و براي . درصد از جواب بهينه بيشتر است10 شهر به جوابي مي رسيم كه طول آن 33

Order Crossover و اگر از 498 استفاده كنيم بهترين طول PMX شهر تشكيل شده است اگر از 30 يك مساله كه از اگر در

از آنجـايي كـه . مي دهـد 517 نتيجه اي برابر Cycle Crossoverدر حالي كه . كاهش مي يابد425استفاده كنيم اين ميزان به

جـوابي Order Crossover مـي رسـد كـه دارد به نظر420ين جواب طولي برابر بهتر) شهر30( مي دانيم در اين مساله خاص

.بهتر از بقيه بر مي گرداند

دو نقطه اي استفاده كنيم مشاهده مي كنيم كه براي crossoverاگر از يك . مي پردازيمMatrix Crossover حال به بررسي

كه همه اين جوابهـا . را ارائه مي كند 42154 و 629 و 535 و 426 و 420 دورهايي با طول 318 و 100 و 75 و 50 و 30

پس احتماال استفاده از يالها بسيار اميدوار كننـده تـر از اسـتفاده از راسـها بـه عنـوان .درصد بيشتر از جواب بهينه هستند 2كمتر از

.متغير است

راي ذخيـره كـردن نـسبت بـه نمـايش بـه صـورت عـدد صـحيح و توجه كنيد كه به هر حال نمايش ماتريس فضاي بيشتري را ب

crossover ساده مي خواهد و در ضمن محاسبات crossover و mutation همچنـين . در ماتريس پيچيده تر و زمانبر تر اسـت

اين روش . يم استفاده نكنcrossover استفاده كنيم و از mutation براي ( opt - 2 )روش ديگري كه تست شده اينست كه ما از

را زياد فرض مي كنـيم ايـن روش nدر ضمن براي وقتي كه . نيز جواب خوبي ارائه مي دهد ولي جواب قبلي بهتر از اين روش است

.جوابي مناسب ارائه نمي دهد

Heuristic Algorithm نيز به جواب خوبي مي رسد .Heuristic Algorithm وقتي كه بـا ( 2 – opt )mutation

به طوري كه اين جواب بـسيار نزديـك بـه . تركيب مي شود بهترين جواب را در مقايسه با متدهايي كه تا به حال گفتيم برمي گرداند

در نتيجه. البته اين روش فضاي زيادي را اشغال مي كند و نيز وزن هر يال بايد در جايي ذخيره شود. مقدار بهترين جواب است

Page 34: Genetic algorithms for solving traveling salesman problem

يا Matrix Crossover و از encoding ژنتيك وقتي كه از نمايش ماتريس براي مي بينيم كه الگوريتم

Heuristic Crossoverدر هـر دو روش . برمي گرداند و بهتر از ديگر روشـها كـار مـي كنـد مي كند بهترين جواب را استفاده

crossover باال استفاده از( 2 – opt )mutationيش مي دهد كيفيت الگوريتم را افزا .

نتيجه گيري .4,5در حاليكه كارايي الگوريتم به ميزان زيادي به نحوه . پيدا مي كند TSP يك جواب خوب براي ژنتيك كه الگوريتم به نظر مي رسد

encode كردن و نيز crossover و mutationبه نظر مـي رسـد كـه اسـتفاده از نمـايش . بستگي داردMatrix و Heuristic

Informationبهتر از بقيه روشها كار مي كند و جواب قابل قبولي را برمي گرداند كه به جواب واقعي بسيار نزديك است .

است ولي هنوز جـواب بهتـري نـسبت بـه ديگـر روشـهاي TSP احتماال الگوريتم ژنتيك روش بهتري نسبت به ديگر روشها براي

در حالتهـاي خاصـي از TSPانيم كه بهترين الگوريتمهاي غير ژنتيكي ارائه شـده بـراي ولي اين را نيز مي د . موجود پيدا نكرده است

و Crossover و Encoding هـاي بهتـري بـراي روشپـس مـا اميـدواريم كـه بـا ارائـه . الگوريتمهاي ژنتيك ارائـه شـده اسـت

Mutation راه حلهاي مناسب تري براي Traveling Salesman Problemارائه شود .

Page 35: Genetic algorithms for solving traveling salesman problem

نابعم 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