فصل اول- مقدمه و کلیات تحقیق……………………………………… 1

1-1- مقدمه………………………………………………………………. 2

1-2- تعریف مسئله………………………………………………………. 2

1-3-یک مثال از مسئله کوله پشتی…………………………………… 3

1-5 – مسئله ی کوله پشتی بیکران…………………………………….3

1-6- مسئله ی کوله پشتی 0 و .1…………………………………….. 3

1-6- بیان مسئله………………………………………………………… 4

1-7- اهداف تحقیق……………………………………………………….7

فصل دوم- ادبیات و پیشینه تحقیق……………………………………. 8

2-1- مقدمه………………………………………………………………. 9

2-2- تاریخچه…………………………………………………………….. 9

2-3- روش حریصانه برای حل کوله پشتی…………………………… 13

2-4- راه حل برنامه نویسی پویا………………………………………. 19

2-5- مسئله ی کوله پشتی 0 و 1……………………………………. 20

2-6- الگوریتم تقریبی حریصانه………………………………………… 21

2-7- کاربرد ها…………………………………………………………… 22

2-8- مقدمه ای بر کوله پشتی چند بعدی……………………………. 23

2-9- الگوریتم ژنتیک……………………………………………………. 24

2-10- روند كلی الگوریتم‏های ژنتیكی………………………………… 29

2-11- روند کلی بهینه سازی و حل مسائل در الگوریتم ژنتیک………31

2-12- شرط پایان الگوریتم………………………………………………. 32

2-13- برخی از كاربرد الگوریتم‏های ژنتیكی…………………………… 33

2-14- الگوریتم های تقریبی……………………………………………. 34

2-15- ارزیابی كارایی الگوریتمها………………………………………. 35

2-16- قضیه ی ماكسیمم ها………………………………………….. 37

2-16-1- كروموزوم………………………………………………………. 38

2-16-2- جمعیت………………………………………………………… 38

2-16-3- تابع برازندگی…………………………………………………. 38

2-17-  عملگرهای الگوریتم  ژنتیك…………………………………… 39

2-17-1- عملگر انتخاب………………………………………………… 39

2-17-2- روش های انتخاب……………………………………………. 39

2-17-3- نمونه ‏برداری به روش چرخ رولت…………………………… 39

2-17-4- انتخاب تورنومنت………………………………………………40

2-17-5- عملگر آمیزش………………………………………………… 40

2-17-6- تلفیق تک نقطه ای…………………………………………. 41

2-17-7- روش ادغام دو نقطه ای……………………………………. 42

 

پایان نامه

 

2-18- تلفیق نقطه ای………………………………………………… 42

2-19- تلفیق جامع……………………………………………………. 42

2-20- عملگر جهش…………………………………………………… 42

2-21- جمع بندی………………………………………………………. 43

فصل سوم- ارائه مدل و الگوریتم………………………………………44

3-1- مقدمه…………………………………………………………….. 45

3-2- فرض های مسئله……………………………………………….. 45

3-3- حد های بالا و پایین……………………………………………… 47

3-3-1- نمونه ساده شده کوله پشتی یک بعدی……………………. 47

3-4-  الگوریتم های حریصانه…………………………………………… 48

3-4-1- الگوریتم HCKP………………………………………………….

3-4-2- الگوریتم HCHV…………………………………………………

3-4-3- الگوریتم HCGAP………………………………………………..

3-4-4- الگوریتم HCORD……………………………………………….

3-4-5- الگوریتم HCORD2……………………………………………..

3-5- الگوریتم ژنتیک…………………………………………………… 52

3-5-1- نمایش و برازندگی…………………………………………….. 52

3-5-2- فرایند تکامل……………………………………………………. 53

3-5-3- عملگر های تلفیق…………………………………………….. 55

3-6- اکتشاف آنلاین……………………………………………………. 57

3-7- خلاصه الگوریتم…………………………………………………… 60

فصل چهارم- محاسبات و یافته های تحقیق………………………… 62

4-1- نمونه های سنجش با اندازه کوچکتر………………………….. 63

4-2- مسائل سنجش با اندازه بزرگ…………………………………. 67

4-3- مقایسه با دیگر الگوریتم ها……………………………………. 69

4-4- بسته بندی مربعی………………………………………………. 73

فصل پنجم- نتیجه گیری و ارائه پیشنهادات………………………….. 75

5-1- نتیجه گیری………………………………………………………… 76

5-2-  پیشنهاداتی برای آینده………………………………………….. 77

منابع و مآخذ…………………………………………………………….. 78

چکیده:

مسئله کوله پشتی ، مسئله ای در بهینه سازی ترکیبیاتی است. ازمسئله کوله پشتی به نام هایی چون KnapsackیاRucksack نیز یاد می کنند. به بیان ساده مسئله کوله پشتی اینطور بیان می شود که فرض کنید مجموعه ای از اشیا، که هر کدام داری وزن و ارزش خاصی هستند در اختیار دارید. به هر شی تعدادی را تخصیص دهید به طوری که وزن اشیا انتخاب شده کوچکتر یا مساوی حدی از پیش تعیین شده، و ارزش آنها بیشینه شود.

در این مسئله ما یک مستطیل بزرگتر داریم که بایستی به تعبیری آنرا برش زده و به قطعات کوچکتر تقسیم کنیم. در واقع این به این معناست که ما در داخل این مستطیل بزرگ که مخزن[1] هم میتوان آنرا نامید ، قطعات مستطیلی کوچکتری قرار دهیم.

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

به عنوان مثال ارائه یک توالی مناسب برای جمع آوری بسته های موجود .

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

از منظر روش تحقیق بکار رفته در این مسئله، از نظر هدف پژوهش می توان گفت که تحقیق از نوع کاربردی بوده و بر اساس ماهیت و روش گردآوری داده ها یک پژوهش توصیفی می باشد.

از دستاوردهای این تحقیق می توان به این نکته اشاره کردکه بر طبق نتایج محاسباتی و تعداد زیادی از معیارهای سنجش کارایی با مقیاس کم و زیاد (مسائل بزرگ و کوچک) ، مدلی که ما ارائه کرده ایم نتایج بهتری از مدل های قبلی موجود نشان می دهد و راه حل هایی با تابع هدف بزرگتر تولید می نماید.

روش فراابتکاری بکارگرفته شده در این پایان نامه مبتنی بر الگوریتم ژنتیک می باشد. .سپس الگوریتمی حریصانه جهت یافتن یک راه حل بهتر و مناسب تر بکار گرفته شده است. و در نهایت هم با بهره گرفتن از یک الگوریتم فرا ابتکاری راه گذر کردن از یک نقطه بهینه محلی به نقطه بهینه اصلی فراهم می گردد.

فصل اول: مقدمه و کلیات تحقیق

1-1- مقدمه

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

معمولا در تخصیص منابع با محدودیت های مالی، با این مسئله روبرو هستیم. همچنین مسائلی از این قبیل در ترکیبیات، نظریه پیچیدگی محاسباتی، رمزنگاری و ریاضیات کاربردی به چشم می خورد..

نسخه ی مسئله تصمیم برای مسئله ی کوله پشتی، این سوال است: “آیا ارزش V با انتخاب اشیایی با مجموع وزن کمتر یا مساوی W، قابل دستیابی است؟”

2-1- تعریف مسئله

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

 در این رابطه باید روشی برای حل این مسئله پیدا کرد . یک روش ابتدایی که در نگاه اول توجه ما را به خود جلب می کند ، عبارت از برنامه نویسی برای کامپیوتر به منظور امتحان کردن تمامی بردارهای دودویی ممکن x است، تا از بین بردارهایی که محدودیت مسئله را ارضاء می کنند بهترین را انتخاب کند. متاسفانه تعداد چنین بردارهایی مشکل اصلی ماست .بطوریکه یک کامپیوتر فرضی که می تواند یک بیلیون بردار را در یک ثانیه امتحان کند؛برای n = 60 بیش از 30 سال وقت لازم دارد و بیش از 60 سال برای n = 61 و دهها قرن برای n = 65 والی اخر. با این وجود با بهره گرفتن از الگوریتمهایی خاص می توان در بسیاری موارد مسئله ای با n = 100 000 را در عرض چند ثانیه روی یک کامپیوترکوچک حل کرد .

3-1- یک مثال از مسئله کوله پشتی

صورت مسئله: دزدی قصد سرقت از مغازه ای رو دارد و حداکثر وزن w از اجناس را که می تواند بدزد در این مغازه n نوع جنس وجود دارد. اگر وزن جنس iام wi و قیمت آن vi باشد ماکسیمم سودی که بدست می آورد چقدر است؟

این مسئله به دو صورت تعریف میشود : 1- صفر و یک 2- حالت کسری

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

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

حالت دوم حالت کسری است که دزد می تواند کسری از یک قطعه را بردارد.

[1] container

موضوعات: بدون موضوع  لینک ثابت


فرم در حال بارگذاری ...