کوله پشتی با sa : کد متلب حل کوله پشتی 0و1 با الگوریتم تبرید

حل مسئله کوله پشتی با الگوریتم ذوب شبیه سازی شده : الگوریتم تبرید یا ذوب شبیه سازی شده که با آن sa نیز میگویند ، یک الگوریتم فرابتکاری است که برای بهینه سازی از آن استفاده میشود.


حل مسئله کوله پشتی با الگوریتم Simulated Annaling  : حل مسئله کوله پشتی با الگوریتم SA

جزئیات بیشتر:

شرح مسئله به این صورت است که ما تعدادی اجسام با وزن مشخص و با ارزش مشخص داریم

و میخواهیم اشیایی را انتخاب کنیم که دارای بیشترین ارزش باشند.

و محدودیتی که داریم بر روی وزن کل اشیا می باشد زیرا که کوله پشتی تحمل وزن مشخصی را دارد

تعاریف ما برای مدل کردن کوله پشتی به صورت زیر می باشد:

یک بردار وزن به نام W خواهیم داشت که وزن اشیا را در ان وارد میکنیم

یک بردار ارزش به نام V خواهیم داشت که ارزش اشیا را در ان وارد میکنیم

و همچنین یک متغیر W_total داریم که حداکثر وزن قابل قبول را در ان وارد میکنیم

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

اگر این مجموع کمتر از W_total بود انگاه شایستگی این راه حل برابر است با مجموع ارزش اشیای انتخاب شده .

اما اگر مجموع وزن بیشتر از W_total باشد انگاه شایستگی این راه حل را برابر با صفر در نظر میگیریم چون یک راه حل غیر قابل قبول می باشد.

در نهایت ما به دنبال راه حل با بیشترین مقدار شایستگی می باشیم که بیشترین ارزش را به ما میدهد بنابر این دنبال پیدا کردن ماکزیمم می باشیم.

منبع : کوله پشتی با sa