حل مسيله کوله پشتی بااستفاده از الگوریتم ژنتیک

sogoli

Active Member
سلام
کسی میدونه به چه شکل میشه با استفاده از الگوریتم ژنتیک مسیله کوله پشتی را حل کرد؟
 

oldooz

Well-Known Member
چیز خاصی نداره اگه یه مقاله درباره الگوریتم ژنتیک بخونید حله!
مثلا برای کوله پشتی 10 کیلوگرمی(ظرفیتش) 4تا شیء(وزنه و...) داریم:
شیء1= 4 کیلو گرم
شیء2=2کیلوگرم
شیء3=6کیلوگرم
شیء4=5کیلوگرم

حالا اینارو بصورت رندوم قرار میدیم توی کوله پشتی. مثلا اینجوری شد:(دوتا حالت قرار دادیم)
حالت اول: شیء1 و شیء 4 باهم درون کوله پشتی.
حالت دوم: شیء2 و شیء3 باهم درون کوله پشتی.
حالا اینارو باهم اصطلاحا crossover میکنیم.(مثلا به روش تولید عدد باینری)(زیاد وارد جزئیاتش نمیشم. سرچ بفرمایید)
فرض کنید عدد باینری رندوم شد:10
پس فرزند این crossover میشه:
شیء 4کیلوگرم و شیء 6کیلوگرم.(عنصر اول از حالت اول و عنصر دوم از حالت دوم)
بعد فیتنس(درصد برازندگی) این شیء رو به دست میاریم.(در اینجا 100% است چون هیچ جای کوله پشتی خالی نمونده و به هدر نرفته)
چون فیتنس 100% هستش پس به جواب رسیده ایم. اگر کمتر بود باید ادامه بدیم تا زمانی که به جواب(فیتنس 100%) برسیم
اگه خواستید میتونید جهش رو هم توی الگوریتم دخالت بدید.
موفق باشید!
 

جدیدترین ارسال ها

بالا