سورس کد الگوریتم ژنتیک برای حل مسئله فروشنده دوره گرد TSP دوره گرد در متلب

سورس کد حل فروشنده دوره گرد با ژنتیک یا الگوریتم ژنتیک برای حل مسئله فروشنده دوره گرد TSP دوره گرد در متلب عنوان موضوعی است که در این پست به آن پرداخته شده است. طبق ویکی پدیا یکی از الگوریتم های پرکاربرد و محبوب برای حل مسائل سخت می باشد و به وفور از این الگوریتم استفاده می شود. مفهوم آسان و قابل درک این الگوریتم آن را به عنوان الگوریتم پرکاربرد در زمینه های الگوریتم های تکاملی بدل کرده است در ادامه توضیحات کاملی درباره الگوریتم ژنتیک ارائه می شود.

 

الگوریتم ژنتیک

الگوریتم ژنتیک روشی براي بهینه سازي با جستجوي وسیع است و کارکرد آن بر اصول انتخاب طبیعی حاکم بر ژنتیک طبیعی استوار است. ایده این الگوریتم از نظریه تکامل داروین الهام گرفته شده است. اگرچه این الگوریتم روشی براي جستجوي تصادفی است، ویژگی هاي خاص آن موجب می شود که نتوان آن را یک جستجوي تصادفی ساده قلمداد کرد. در این الگوریتم اطلاعات تاریخی از چگونگی تکامل، به شکلی کارا استخراج شده و در روند جستجو استفاده می شود. الگوریتم ژنتیک روشی قدرتمند بوده و بر روي دسته وسیعی از مسائل به‌خوبی عمل می کند.

الگوریتم ژنتیک واقعی که بر اساس ایده ي تکامل بیولوژیکی در طبیعت عمل می نمایند، بر روي جمعیتی از راه حل های بالقوه یا کروموزوم ها که هر یک می توانند به‌عنوان پاسخی از مسئله تلقی شوند، با اعمال عملگرهای ژنتیکی به جستجوي راه حل نهایی می پردازند. در الگوریتم ژنتیکی، بسیاري از مکانیزم هایی که در زیست شناسی وجود دارد، نظیر انتخاب ژن برتر، ترکیب ژن ها، جهش ژن ها، مهاجرت افراد جمعیت، محلی بودن گونه ها و … شبیه سازي می شوند. در این الگوریتم ها، جستجو بر روي مجموعه هايی از راه حل ها به‌صورت موازي انجام می شود، درحالی‌که در روش هاي سنتی جستجو به‌صورت ترتیبی است.

نحوه کار الگوریتم

در آغاز الگوریتم، تعدادي از افراد به‌عنوان جمعیت اولیه و معمولاً به‌صورت تصادفی ساخته‌شده و معیاري از کیفیت به نام تابع هدف یا برازندگی براي تک  تک آن ها ارزیابی می شود. اگر شرط رسیدن به جواب برقرار نباشد (به جواب بهینه نرسیده باشیم)، نسل بعدي با انتخاب والدین بر اساس میزان برازندگی آن ها تولید می شود. در هر نسل، بهترین هاي آن نسل انتخاب می شوند و پس از زادوولد، مجموعه جدیدي از فرزندان را تولید می کنند.

کروموزوم هاي موجود در جمعیت بر اساس مقدار برازندگی به‌عنوان والد انتخاب می شوند. سپس تولید مثل، بین جفت کروموزوم ها انجام می گیرد تا فرزندان ایجاد شوند و فرزندان با احتمالی ثابت دچار جهش می شوند. سپس میزان برازندگی فرزندان جدید محاسبه‌شده و جمعیت جدید، از جایگزینی فرزندان با والدین ایجاد می شود و جمعیت ایجادشده جدید به‌عنوان نسل بعدي شناخته می‌شود و فرایند تکرار می شود. در این فرایند، افراد مناسب تر با احتمال بیشتري در نسل هاي بعد باقی خواهند ماند و این فرایند تا برقرار شدن شرط خاتمه تکرار می شود.

الگوریتم زمانی پایان خواهد یافت که بهبودي بر روي جواب ها صورت نگیرد و یا اینکه تعداد مشخصی نسل تولید شود. مراحل کلی یک الگوریتم ژنتیک می تواند به‌صورت شکل زیرباشد.

صورت کلی یک الگوریتم ژنتیک

فروشنده دوره گرد با ژنتیک

تعریف‌ها

الف) ژن: مقدار کد شده هر متغیر را ژن گویند.

ب)کروموزوم: به رشته یا دنباله اي از ژن ها که به‌عنوان شکل کد شده یک جواب ممکن (مناسب یا نامناسب) از مسئله موردنظر به کار می رود کروموزوم گویند.

ج) جمعیت: در هر مرحله تکرار از الگوریتم ژنتیکی تعدادي مشخص از کروموزوم ها مورد ارزیابی قرار می گیرد. به مجموعه این کروموزوم ها جمعیت می گویند.

د) عدد برازندگی: مناسب بودن یا نبودن را با معیاري که باهدف(مورد بهینه‌سازی) رابطه دارد می‌سنجند.

ه) عملگر جابجایی یا ترکیب Crossover: این عملگر براي زوجی از کروموزوم ها اعمال می شود. نوعی از این عملگر، دو کروموزوم را به‌طور تصادفی از یک نقطه شکسته و بخش هاي شکسته دو کروموزوم را جابه جا می کند. بدین ترتیب دو کروموزوم جدید به وجود می آید. به دو کروموزوم اولیه کروموزوم هاي والد و به دنباله هاي جدید هنگامی‌که عملگر جابه جایی بر آن‌ها اعمال گردد دنباله هاي فرزند گویند.

و) عملگر جهش: این عملگر روي یک دنباله منفرد عمل می کند به‌این‌ترتیب که با احتمال کوچکی به نام احتمال جهش هر ژن از کروموزوم ها را تغییر می دهد.

ز) کروموزوم فرزند: به دنباله اي که پس از عمل جابه جایی و عمل جهش به دست می آید کروموزوم فرزند می گویند.

ح) جایگذاري: پس‌ازآنکه فرزندان جدید، با استفاده از جمعیت قدیمی ساخته شدند و میزان شایستگی آن‌ها نیز تعیین گردید، می بایست یک نسل جدید از میان فرزندان و والدین موجود انتخاب شوند.
ط) عملگر انتخاب: براي ایجاد افراد نسل جدید، از عملگر انتخاب استفاده می‌شود. اولین قدم در این راه تعیین شایستگی تک‌تک افراد جمعیت هست.

ي) مرحله تولید: به هر بار تولید یک جمعیت جدید یک مرحله تولید گویند.

 

فروشنده دوره گرد با ژنتیک

مسئله فروشنده دورگرد TSP

برای حل فروشنده دوره گرد با ژنتیک بایستس مساله فروشنده دوره گرد Travelling salesman problem یا به اختصار TSP تشریح شود. TSP مساله اي است که شرح آن خيلي آسان مي باشد. تعريف آن بدين صورت است که تعداد متناهي شهر با هزينه پيمايش بين هر جفت از آنها داده مي شود و هدف مساله اين است که يک فروشنده دوره گرد تمامي اين شهرها را به گونه اي ملاقات کند که هر يک از اين شهرها را فقط يک بارملاقات کرده و دوباره به شهر آغازين برگردد با اين شرط که با کمترين هزينه پيمايش اين کار را انجام دهد.

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

به طور کلي هدف پيدا کردن کم هزينه ترين تور براي ملاقات همه شهرها و بازگشت به شهر آغازين حرکت است. مساله فروشنده دوره گرد در شکل ساده و اختصاري با نام TSP شناخته مي شود. شکل  زیر يک نمونه جواب از مساله فروشنده دوره گرد که در سال 1591 براي 15 شهر از کشور آمريکا مطرح شد را نشان مي دهد که با روش شاخه وحد حل شد.

تصاویر محصول

فروشنده دوره گرد با ژنتیک

فروشنده دوره گرد با ژنتیک

ویدئوی معرفی محصول

درباره محصول

سورس کد حل مسئله فروشنده دوره گرد با ژنتیک در Matlab 2014b نوشته و اجرا شده است این سورس کد توسط تیم پشتیبانی پی استور تست و اجرا شده است. کیفیت محصول حل مسئله فروشنده دوره گرد با ژنتیک توسط پی استور تضمین می شود و محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود محصول آن را خریداری فرمایید به محض خرید لینک دانلود در دسترس خواهد بود.

 

25,000 تومان

1 دیدگاه برای سورس کد الگوریتم ژنتیک برای حل مسئله فروشنده دوره گرد TSP دوره گرد در متلب

  1. امتیاز 5 از 5

    programstore

    نظرات و دیدگاه های خود را با ما درمیان بگذارید.

دیدگاه خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

اطلاعات فروشنده