تخفیف نوروزی پی استور

کد تخفیف: PR1404

شامل تمامی آثار
روز
ساعت
دقیقه
ثانیه

با خرید اشتراک ویژه ، با هزینه بسیار کمتر به فایل های پاورپوینت دسترسی داشته باشید!

حل مسئله کوله پشتی با الگوریتم SA در پایتون

هزینه سفارش:

تخفیف ویژه 60 درصدی

قیمت اصلی: ۲۸۹,۰۰۰ تومان بود.قیمت فعلی: ۱۱۵,۶۰۰ تومان.

روز
ساعت
دقیقه
ثانیه
دریافت کد تخفیف با گردونه شانس %
تعداد فراگیر
250 نفر
امتیاز کاربران
امتیاز 5.00 از 5

در این بخش سورس کد حل مسئله کوله پشتی با الگوریتم SA در پایتون قرار داده شده است. مسئله کوله پشتی یکی از مسائل مهم در ریاضیات و بهینه سازی است که برای حل کردن آن از روش‌های مختلفی می‌توان استفاده نمود. یکی از این راه‌ها استفاده از الگوریتم‌های فرا ابتکاری یا متاهیورستیک است که جهت حل مسائل بهینه سازی مورد استفاده قرار می‌گیرند. از جمله بهترین الگوریتم‌هایی که برای حل مسئله کوله پشتی مورد استفاده قرار می‌گیرد، الگوریتم SA یا تبرید شبیه سازی شده است. درمورد این الگوریتم و حل مسئله کوله پشتی در ادامه مطلب صحبت خواهیم کرد.

الگوریتم شبیه سازی تبرید SA

قبل از بررسی مسئله کوله پشتی با الگوریتم SA در پایتون بهت است با الگوریتم شبیه سازی تبرید آشنا شوید. الگوریتم شبیه سازی تبرید یا تبرید شبیه سازی شده Simulated Annealing که در بسیاری موارد با نام الگوریتم شبیه سازی حرارتی نیز شناخته می‌شود، از جمله الگوریتم‌های متاهیورستیک یا فرا ابتکاری است که برای حل مسائل بهینه سازی مورد استفاده قرار می‌گیرد. یکی از مسائلی که برای حل آن می‌توان از الگوریتم شبیه سازی تبرید SA استفاده کرد، مسئله n وزیر می‌باشد.

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

مسئله کوله پشتی – Knapsack

برای توضیح این مسئله به زبان ساده می‌توان از یک سری مثال‌های واقعی استفاده کرد، چرا که این مسئله در زندگی روزمره هم می‌تواند کاربرد داشته باشد. اگر دانشجوی رشته کامپیوتر باشید و یا با مسائل بهینه سازی سر و کار دارید، حتماً با مسئله کوله پشتی یا Knapsak Problem آشنایی خواهید داشت.

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

فرض کنید یک دزد وجود دارد که قصد دزدی از خانه دارای وسایل گران قیمت بیشماری است. این دزد یک کیف یا کیسه به همراه دارد که تنها وزن مشخصی را می‌تواند تحمل کند. برای مثال اگر میزان تحمل این کیسه ۳۰ کیلو باشد، امکان اینکه وسایلی با حجم بیشتر از ۳۰ کیلو یا مجموع حجم بیشتر را نخواهد داشت.

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

این مثالی از مسئله کوله پشتی می‌باشد که قابل حل با الگوریتم تبرید شبیه سازی شده Simulated Annealing می‌باشد. در ادامه درمورد سورس کد حل مسئله کوله پشتی با الگوریتم SA در پایتون بیشتر صحبت شده است.

حل مسئله کوله پشتی با الگوریتم SA در پایتون

این سورس کد از ۱ فایل تشکیل شده است که تمامی فراخوانی‌ها و کتابخانه‌های الگوریتم تبرید شبیه سازی شده در داخل این فایل قرار دارد. این فایل مقادیر مربوط به ایجاد وزن و ارزش کالاها و در نهایت تابع هزینه را دربر گرفته است. بخشی از سورس کد در زیر آورده شده است.

import random as rd
import numpy as np
import matplotlib.pyplot as plt
def CreateModel():
    class model:
        def __init__(self,n,v,w,W):
            self.n = n
            self.v = v
            self.w = w
            self.W = W
    v = np.array([391,444,250,330,246,400,150,266,268,293,471,388,364,493,202,161,410,270,384,486])
    w = np.array([55,52,59,24,52,46,45,34,34,59,59,28,57,21,47,66,64,42,22,23]

برای دریافت سورس کامل محصول لطفا آن را خریداری کنید.

تصاویر خروجی حل مسئله

نمودار همگرایی حل مسئله کوله پشتی با الگوریتم SA در پایتون
نمودار همگرایی حل مسئله کوله پشتی با الگوریتم SA در پایتون

***  توجه  ***

قبل از اجرای سورس کد الگوریتم در محیط پایتون حتماً از نصب پکیج‌های مورد استفاده در این سورس کد در Python خود مطمئن شوید پکیج‌های استفاده شده در این سورس کد numpy و matplotlib می‌باشد که اولی پکیج مربوط به استفاده از آرایه‌ها و ماتریس‌ها در پایتون و دومی مربوط به عملیات‌های نموداری و Plot گرفتن می‌باشد. پیشنهاد ما نصب اسپایدر (Spyder (Python 3.7 می‌باشد که هم پایتون و پکیج‌های مختلف و هم IDEهای مختلفی را همراه با امکان آپدیتشان نصب می‌کند.


درباره سورس کد

سورس کد حل مسئله کوله پشتی با الگوریتم SA در پایتون عنوان اثری است که در این پست به آن پرداخته شده است.اثر در پایتون ۳.۱۰ برنامه نویسی شده و بصورت کامل توسط گروه پشتیبانی پی استور تست و اجرا شده است. قبل از اجرای سورس کد در محیط پایتون حتماً از نصب پکیج‌های مورد استفاده در این سورس کد در Python خود مطمئن شوید. پکیج‌های استفاده شده در این سورس کد numpy و matplotlib می‌باشد که اولی پکیج مربوط به استفاده از آرایه‌ها و ماتریس‌ها در پایتون و دومی مربوط به عملیات‌های نموداری و Plot گرفتن می‌باشد.

مشاهده بیشتر

معرفی و نحوه اجرا

ویدئوی نحوه اجرا


برنامه‌نویس:  تیم برنامه‌نویسی پی‌استور

متشکل از اساتید و فارغ التحصیلان رشته‌های فنی - مهندسی

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

مشخصات تکمیلی سورس کد

نام اثر: حل مسئله کوله پشتی با الگوریتم SA در پایتون
نوع اثر: سورس کد
برنامه‌نویس: تیم برنامه‌نویسی پی‌استور
زبان برنامه نویسی: پایتون
ویژگی: قابل دانلود و ویرایش

راهنمای خرید و ثبت سفارش

تصویر مراحل خرید از پی استور

اگر در مورد این اثر یا نحوه تهیه آن سوالی دارید؟
  • با شماره تلفن واحد مخاطبین 44225175 (پیش شماره 041) تماس بگیرید. – تمام ساعات اداری
  • با ما مکاتبه ایمیلی داشته باشید (این لینک). – تمام ساعات

توجه: کیفیت این محصول توسط پی استور تضمین شده و در صورت عدم رضایت از محصول، به انتخاب شما:

تصویر و لوگوی گارانتی

نظرات

1 نظر|5.00 (میانگین امتیاز کاربران)

  1. آواتار فاطمه اسماعیلی

    فاطمه اسماعیلی

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

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

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

شناسه اثر: 21625 دسته‌بندی موضوعی: برچسب ,

هزینه سفارش:

تخفیف ویژه 60 درصدی

قیمت اصلی: ۲۸۹,۰۰۰ تومان بود.قیمت فعلی: ۱۱۵,۶۰۰ تومان.

دریافت کد تخفیف %