1- تقاطع در مساله فروشنده دوره گرد

Download Report

Transcript 1- تقاطع در مساله فروشنده دوره گرد

‫الگوريتم هاي تكاملي‬
‫نعيمه خاكزاد‬
‫سودابه سليماني‬
‫خدايار خليلي‬
‫استاد مربوطه‪ :‬مهندس گرجي زاده‬
‫مقدمه ‪:‬‬
‫ايده استفاده از قوانين زيستي و تكامل طبيعي در سيستمهاي هوش مصنوعي به بيش از سه دهه‬
‫پيش ميرسد و به نظر ميرسد كه در چند سال اخير‪ ،‬اهميت آن بيش از پيش آشكار شدهاست و‬
‫تحقيقات در اين زمينه به ميزان بسيار زيادي افزايش يافتهاست‬
‫از الگوريتمهاي تكاملي براي مسايل متنوعي با دامنههاي متفاوت مانند بهينهسازي‪ ،‬برنامهنويسي‬
‫خودكار‪ ،‬يادگيري ماشين‪ ،‬اقتصاد‪ ،‬تحقيقات عملياتي‪ ،‬اكولوژي‪ ،‬ژنتيك افراد و مطالعه بر روي‬
‫سير تكاملي تغييرات استفاده ميشود‪.‬‬
‫كالسهاي بزرگ و گسترده الگوريتمهاي تكاملي عبارتند از ‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫الگوريتمهاي ژنتيكي‬
‫برنامهنويسي تكاملي‬
‫استراتژيهاي تكاملي‬
‫سيستمهاي دستهبندي‬
‫برنامهنويسي ژنتيك‬
‫تاريخچه ‪:‬‬
‫الگوريتمهاي ژنتيکي با توجه به نظريه داروين در مورد تکامل رونق گرفتند و سپس ايده محاسبه‬
‫تكاملي در سال ‪ 1960‬توسط ‪I.Rechenberg‬تحت عنوان استراتژيهاي تكاملي معرفي‬
‫شد‪ .‬نظريه او توسط پژوهشگران ديگر گسترش يافت‪ .‬الگوريتمهاي ژنتيكي توسط فردي به‬
‫نام ‪ John. Holland‬بنيانگذاري شد‬
‫ديد کلي از الگوريتمهاي ژنتيكي‬
‫فرايند حيات جمعيت از ديد ژنتيكي‬
‫يک شبه کد براي الگوريتمهاي ژنتيكي‬
‫شبه کد براي الگوريتمهاي ژنتيكي به صورت زير است‪:‬‬
‫نمايش و کدکردن ]‪[Encoding‬‬
‫شروع ]‪[Start‬‬
‫ارزشدهي ]‪[Fitness‬‬
‫جمعيت جديد ]‪[New population‬‬
‫انتخاب ]‪[Selection‬‬
‫تقاطع ]‪[Crossover‬‬
‫جهش ]‪[Mutation‬‬
‫پذيرش ]‪[Accepting‬‬
‫جايگزيني ]‪[Replace‬‬
‫بررسي ]‪[Test‬‬
‫حلقه ]‪[Loop‬‬
‫ کدکردن‬‫رشته باينري‬
‫رشتههايي از حروف الفباء‬
‫جايگشت‬
‫درخت‬
‫ ارزشدهي‬‫ ايجاد جمعيت جديد‬‫انتخاب‬
‫روش انتخاب تصادفي‬
‫روش چرخ رولت‬
‫روش رتبهبندی‬
‫روش‪Rank Power‬‬
‫تقاطع‬
‫جهش‬
‫چند نکته راجع به الگوريتمهاي ژنتيکي‬
‫در جريان الگوريتمهاي ژنتيکي اين احتمال وجود دارد که از يک نوع کروموزوم به تعداد بسيار‬
‫زيادي توليد شود و سبب اين امر شود که جمعيت ما از تنوع جواب کمتري نسبت به ميزان‬
‫جمعيت برخوردار باشد و سبب ايجاد مشکل در الگوريتم شود‪ .‬براي حل اين مشکل روشهاي‬
‫زيادي مطرح شدهاست که يکي از اين روشها روش‪ Windowing‬ميباشد ‪.‬‬
‫الگوريتمهاي ژنتيكي زماني موثر و كارا هستند كه ‪:‬‬
‫فضاي جستجوي مساله بزرگ يا پيچيده است و فهم ما از ﺁن كم است‪.‬‬
‫هيچ تجزيه و تحليل رياضي براي مسأله در دسترس نيست‪.‬‬
‫الگوريتمهاي سنتي با شكست مواجه مي شوند‪.‬‬
‫مسائلي كه مي توان با الگوريتمهاي ژنتيکي حل‬
‫كرد ‪:‬‬
‫مسائلي از قبيل مسأله‪ N‬وزير‪ ،‬رنگآميزي گراف‪ ،‬زمانبنديها‪ ،‬زمانبندي امتحانات‪ ،‬زمانبندي‬
‫مسابقات ورزشي‪ ،‬زمانبندي سيستمهای چندپردازنده‪ ،‬واگذاري مشاغل‪ ،‬فروشنده دورهگرد ‪،‬‬
‫بستهبندي و هر مساله که بتوان آن را به صورت ژنتيکي کد کرد‬
‫بهينه سازي‬
‫هنگاميکه مساله بهينهسازي تنها شامل يک تابع هدف باشد عمل يافتن جواب بهينه‪ ،‬بهينهسازي تک‬
‫هدفه ناميده ميشود‬
‫هنگاميکه يک مساله بهينهسازي شامل بيش از يک تابع هدف باشد عمل يافتن يک يا چندين جواب‬
‫بهينه را بهينهسازي چندهدفه مينامند‬
‫از آنجايي که بهينهسازي چندهدفه شامل چندين هدف است بديهي است که بهينهسازي تکهدفه در‬
‫واقع حالت خاصي از بهينهسازي چندهدفه ميباشد‪.‬‬
‫تفاوتهاي بنيادي‬
‫جوابهای فرضی برای يک مساله تصميمگيری خريد ماشين‬
‫مقدمه‬
‫در اينجا به مسائل مربوط به مساله فروشنده دورهگرد از قبيل روشهای حل‪ ،‬کسانی که اين‬
‫گونه مسائل را حل کردند و‪ . . .‬مى پردازيم ‪.‬‬
‫مسائل مربوط به مساله فروشنده دورهگرد از قبيل‪:‬‬
‫تعريف‬
‫علت نامگذارى‬
‫تاريخچه‬
‫اهميت مطالعه مساله‬
‫كاربردهاى عملى‪TSP‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫كاربرد ‪ TSP‬براى پيدا كردن تور‬
‫كاربرد ‪ TSP‬براى كنترل بازوى رباتيكى‬
‫كاربرد ‪ TSP‬براى مسيريابى وسايل نقليه‬
‫كاربرد ‪ TSP‬در شبكه هاى ‪com‬‬
‫انواع مساله ‪TSP‬‬
‫‪ TSP‬متقارن‬
‫‪ TSP‬نامتقارن‬
‫‪ TSP‬چند فروشنده اى‬
‫چند روش مساله فروشنده دورهگرد‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫حل ‪ TSP‬به روش توليد همه حاالت ممكن‬
‫حل ‪ TSP‬به روش جستجوى حريصانه‬
‫حل ‪ TSP‬به الگوريتم نزديكترين همسايه‬
‫حل ‪ TSP‬به الگوريتمهای ژنتيک‬
‫تعاريف رسمى از ‪TSP‬‬
‫‪TSP‬به عنوان يك گراف‬
‫‪TSP‬به عنوان يك جايگشت‬
‫الگوريتم های ژنتيکی و مساله فروشنده دوره گرد‬
‫در اين قسمت می خواهيم به اين مساله از ديد ژنتيک نگاه‬
‫کنيم و روش حل آن با الگوريتمهای ژنتيکی و همچنين‬
‫مسائل مربوط به الگوريتمهای ژنتيکی که در مورد مساله‬
‫فروشنده دورهگرد بايد دقت شود و مسائل ديگر بپردازيم‪.‬‬
‫کدکردن مساله فروشنده دوره گرد‬
‫کدکردن ماتريسی‬
‫کدکردن به صورت جايگشت‬
‫‪ -1‬تقاطع در مساله فروشنده دوره گرد‬
‫‪ -1‬تقاطع در مساله فروشنده دوره گرد‬
‫‪ -1-1‬روش ‪PMX‬‬
‫)‪(Partially Mapped Crossover‬‬
‫انتخاب يک نقطه تصادفی در کروموزوم در روش ‪PMX‬‬
‫تعويض اعداد موجود در محل انتخاب‬
‫‪ -1‬تقاطع در مساله فروشنده دوره گرد‬
‫‪ -2-1‬روش ‪OX‬‬
‫)‪)Ordered Crossover‬‬
‫‪ -1‬تقاطع در مساله فروشنده دوره گرد‬
‫‪ -3-1‬روش‪CX‬‬
‫(‪)Cycle Crossover‬‬
‫‪ -1‬تقاطع در مساله فروشنده دوره گرد‬
‫‪ -4-1‬روش ‪MX‬‬
‫(‪)Merging Crossover‬‬
‫‪ -1‬تقاطع در مساله فروشنده دوره گرد‬
‫‪ -5-1‬روش ‪MOX‬‬
‫(‪)Modified Ordered Crossover‬‬
‫‪ -1‬تقاطع در مساله فروشنده دوره گرد‬
‫‪ -6-1‬روش ‪ Greedy Subtour‬تقاطع‬
‫جهش در مساله فروشنده دوره گرد‬
‫مشکل عدم حالت جايگشتی پس از جهش معمولی‬
‫انواع روشهای جهش‪:‬‬
‫‪ -1‬روش ‪Insert‬جهش‬
‫‪ -2‬جهش ‪ Swap‬روش‬
‫انواع روشهای جهش‪:‬‬
‫‪ -3‬روش ‪ Inversion‬جهش‬
‫‪ -4‬روش ‪ Scramble‬جهش‬
‫انواع روشهای جهش‪:‬‬
‫‪ -5‬روش ‪ 2-opt‬جهش‬
‫‪ -6‬روش ‪ 3-opt‬جهش‬
‫نتيجه گيري‬
‫پيشنهادات‬