Presentation is loading. Please wait.

Presentation is loading. Please wait.

برنامه ریزی خطی پیشرفته (21715( Advanced Linear Programming Lecture 10

Similar presentations


Presentation on theme: "برنامه ریزی خطی پیشرفته (21715( Advanced Linear Programming Lecture 10"— Presentation transcript:

1 برنامه ریزی خطی پیشرفته (21715( Advanced Linear Programming Lecture 10
بنام خدا برنامه ریزی خطی پیشرفته (21715( Advanced Linear Programming Lecture 10 The Branch-and-Price Algorithm مدرس: ناصر سلماسی

2 برنامه ریزی خطی پیشرفته (21715)
برای حل کارای بهینه یک مساله برنامه ریزی خطی عدد صحیح با اندازه بزرگ، لازم است که مساله ایجاد شده با فرض پیوسته بودن متغیرهای تصمیم، تقریب مناسبی از جواب بهینه ایجاد کند. به عبارت دیگر جواب بهینه مساله با پیوسته فرض کردن متغیرهای تصمیم عدد صحیح به جواب بهینه مساله اصلی نزدیک باشد. ناکارا بودن مدل های متداول برنامه ریزی عدد صحیح عادی با توجه به این شاخص 2 2

3 برنامه ریزی خطی پیشرفته (21715)
ارایه روش های مدل سازی و حل مساله با این هدف مانند: روش Branch-and-cut روش Branch-and- price برای این منظور الگوریتم Branch-and-cut در دهه 80 میلادی پایه گذاری شده و تا اوایل دهه 90 توسعه پیدا کرد. 3 3

4 برنامه ریزی خطی پیشرفته (21715)
خلاصه ای از الگوریتم(B&C) Branch-and-cut جدا سازی دسته هایی (کلاس هایی) از محدودیت های معتبر مساله (ترجیحا face های convex hull منطقه موجه) از مساله LP relaxation مساله اصلی علت این مساله زیاد بودن تعداد محدودیت ها و در نظر گرفتن این مساله که اغلب این محدودیت ها در جواب بهینه بصورت تساوی ارضا نمی شوند. 4 4

5 برنامه ریزی خطی پیشرفته (21715)
خلاصه ای از الگوریتم Branch-and-cut (ادامه) در این حالت اگر جواب بهینه مساله LP relaxed موجه نبود با حل یک مساله برنامه ریزی خطی دیگر با نام Separation Problem سعی در پیدا کردن محدودیت هایی داریم که ارضا نشده اند. اگر چنین محدودیت هایی پیدا شدند، تعدادی از آنها به مساله LP relaxed اضافه شده تا جواب بهتری پیدا شود. سپس مساله LP relaxed مجددا حل می شود. 5 5

6 برنامه ریزی خطی پیشرفته (21715)
خلاصه ای از الگوریتم Branch-and-cut (ادامه) در صورتی که تمامی محدودیت های مساله ارضا شوند، فرایند شاخه زنی انجام می شود. عملا این فرایند در داخل روش حل شاخه و حد انجام می شود. اصول این روش در Hoffman and Padberg (1985) و Nemhauser and Wolsey (1988) قابل مشاهده است. 6 6

7 برنامه ریزی خطی پیشرفته (21715)
روش Branch-and-Price الگوریتم Branch-and-Price (B&P) همان روش B&C است با این تفاوت که نیازی نیست با پیشروی در مراحل محدودیت های جدیدی به مساله اضافه شود. تمرکز این الگوریتم به روی تولید ستون های جدید برای مساله است تا تولید سطر (محدودیت) جدید در این روش به جای کنار گذاشتن محدودیت های مساله، ستون های (جواب های موجه مساله) بطور موقت کنار گذارده می شوند. 7 7

8 برنامه ریزی خطی پیشرفته (21715)
روش Branch-and-Price توجه کنید که هدف این تکنیک ترکیب روش های pricing و cutting با هدف ایجاد مساله LP relaxed با جواب با کیفیت تر است. در روش B&P مساله برنامه ریزی خطی به صورتی فرموله می شود که شامل تعداد بسیار زیادی متغیر تصمیم (ستون) باشد. 8 8

9 برنامه ریزی خطی پیشرفته (21715)
روش Branch-and-Price سپس تعداد بسیار زیادی از این ستون ها بصورت موقت به دلایل زیر کنار گذارده می شوند: مساله با تعداد ستون کمتری بصورت آسان تری حل شود. تعداد بسیار زیادی از این ستون ها تاثیری در جواب بهینه ندارند. به عبارتی متغیر تصمیم مربوط به آنها در جواب بهینه مساله مقداری برابر با صفر خواهد داشت. 9 9

10 برنامه ریزی خطی پیشرفته (21715)
روش Branch-and-Price سپس به منظور آزمایش بهینگی مساله یک یا چند مساله فرعی با عنوان “pricing problem” و یا “sub problem” حل می شوند. pricing problemبر پایه مساله دوگان مساله اصلی، با فرض پیوسته فرض کردن متغیرهای تصمیم مساله، ایجاد می شود. وظیفه pricing problem پیدا کردن ستون هایی است که می توانند وارد پایه شده و مقدار تابع هدف مساله را بهبود دهند. 10 10

11 برنامه ریزی خطی پیشرفته (21715)
روش Branch-and-Price اگر چنین ستونی پیدا شود، مساله با در نظر گرفتن این ستون مجددا حل می شود. در صورتی که چنین ستونی پیدا نشود و مقدار متغیرهای تصمیم عدد صحیح دارای مقدار صحیح نباشند، عملیات شاخه زنی به روی متغیرهای تصمیم عدد صحیح مساله اصلی انجام می شود. 11 11

12 برنامه ریزی خطی پیشرفته (21715)
روش Branch-and-Price بطور خلاصه: روش branch-and-price روش عمومیت داده شده شاخه و حد است برای حل مساله های برنامه ریزی خطی عدد صحیح با پیوسته فرض کردن متغیرهای تصمیم بصورتی که تکنیک تولید ستون در طول درخت شاخه و حد اعمال می شود. 12 12

13 برنامه ریزی خطی پیشرفته (21715)
در این روش مساله مجددا فرموله شده به یک مساله master و یک یا چند مساله فرعی تجزیه می شود. در ابتدا مساله master تنها با در نظر گرفتن چندین ستون موجه حل می شود (تعداد ستون های موجه معمولا بی نهایت است و مقدار متغیر تصمیم اغلب آنها در جواب بهینه برابر با صفر است). 13 13

14 برنامه ریزی خطی پیشرفته (21715)
سپس برای بررسی بهینگی جواب مساله master مساله یا مساله هایی فرعی حل می شوند که مشخص شود آیا ستونی برای ورود به مساله به منظور بهبود تابع هدف وجود دارد یا خیر. اگر چنین ستون هایی پیدا شوند مساله master مجددا با در نظر گرفتن این ستون ها حل می شود. اگر چنین ستونی پیدا نشد و جواب بهینه مساله master محدودیت های صحیح بودن متغیرهای تصمیم را ارضا نکرد، فرایند شاخه زنی انجام می شود. 14 14

15 برنامه ریزی خطی پیشرفته (21715)
الگوریتم B&P که توسعه یافته الگوریتم شاخه و حد است در واقع تکنیک تولید ستون را در مرحله های مختلف شاخه زنی با الگوریتم ترکیب می کند تا حل مساله خطی در مراحل میانی ساده شده و جواب هایی با کیفیت بهتر ایجاد شود. الگوریتم B&P، تنها استفاده از روش تجزیه دنزینگ-ولف در روش شاخه و حد نیست و دارای پیچیدگی های فراوان تری است. 15 15

16 برنامه ریزی خطی پیشرفته (21715)
دلایل فرمول بندی مجدد مساله با تعداد ستون زیاد عموما پیوسته فرض کردن متغیرهای تصمیم در مساله های برنامه ریزی خطی عدد صحیح منجر به ایجاد جوابی برای تابع هدف می شود که فاصله بسیاری با جواب بهینه مساله اصلی دارد. در صورتی که مساله به این صورت فرموله شود، پیوسته فرض کردن متغیرهای تصمیم مساله منجر به ارایه جواب نزدیک تری به جواب بهینه نسبت به حالت قبلی می شود. 16 16

17 برنامه ریزی خطی پیشرفته (21715)
دلایل فرمول بندی مجدد مساله با تعداد ستون زیاد (ادامه) عموما استفاده از فرمول بندی عمومی منجر به ایجاد ساختار قرینه ای برای مساله می شود. در این حالت بازدهی روش شاخه و حد برای حل مساله مناسب نیست زیرا که ندرتا مقدار تابع هدف مساله با پیشروی در شاخه ها افزایش پیدا می کند. فرمول بندی مجدد مساله با تعداد زیادی متغیر این مشکل را برطرف می کند. 17 17

18 برنامه ریزی خطی پیشرفته (21715)
دلایل فرمول بندی مجدد مساله با تعداد ستون زیاد (ادامه) در صورت فرمول بندی مجدد مساله با تعداد زیادی متغیر می توان مساله را به یک مساله master و یک یا چند مساله فرعی مجزا تقسیم کرد. در مواردی این تنها روش فرموله کردن مساله است. 18 18

19 برنامه ریزی خطی پیشرفته (21715)
استفاده از تکنیک تولید ستون برای مساله های برنامه ریزی خطی با متغیرهای تصمیم عدد صحیح آسان نیست. دلایل عمده این مساله عبارتند از: هنگام شاخه زدن مقدار یک متغیر در شاخه های پایینی ثابت فرض می شود. این مساله می تواند اصول تکنیک تولید ستون را با اشکال مواجه کند. حل مساله های برنامه ریزی خطی ایجاد شده در مراحل کار بصورت بهینه به صرفه نیست. لذا نیاز به ایجاد قوانینی است که فرایند شاخه زدن را بر اساس روش خاصی ((Branch-and-price انجام دهد. 19 19

20 برنامه ریزی خطی پیشرفته (21715)
روش های متفاوتی برای استفاده از روش B&P در ادبیات وجود دارند. کاربردهای زیادی از این تکنیک در حل مساله های توالی عملیات و مسیریابی در ادبیات مشاهده می شود. 20 20

21 برنامه ریزی خطی پیشرفته (21715)
مثال: استفاده از تکنیک B&P برای حل مساله تخصیص عمومی با ماشین های متفاوت مساله عمومی تخصیص در جستجوی بیشینه کردن سود در تخصیص m کار به n ماشین متفاوت است به صورتی که بر پایه ظرفیت ها و محدودیت های هر ماشین، هر یک از کارها دقیقا به یک ماشین تخصیص پیدا کند. این مساله با دو فرض یکسان بودن ماشین ها و متفاوت بودن آنها مطرح می شود. مدل ریاضی حالتی که ماشین ها یکسان نیستند به قرار زیر است: 21 21

22 برنامه ریزی خطی پیشرفته (21715)
مثال: استفاده از تکنیک B&P برای حل مساله تخصیص عمومی مساله عمومی تخصیص (GAP) را در نظر بگیرید: Pij: سود تخصیص کار i به ماشین j wij: حجم اشغال شده از ظرفیت کار i از ماشین j dj: ظرفیت ماشین j Zij: متغیر تصمیم تخصیص کار i به ماشین j مساله یک 22 22

23 برنامه ریزی خطی پیشرفته (21715)
با به کاربردن تکنیک تجزیه دنزینگ-ولف برای مساله با قرار دادن محدودیت تخصیص در مساله master و محدودیت ظرفیت ماشین ها در مساله فرعی، مساله master ایجاد شده بصورت زیر است: مساله دو 23 23

24 برنامه ریزی خطی پیشرفته (21715)
در این مدل m عنصر اول هر ستون که بصورت زیر نمایش داده می شوند در واقع تشکیل یک جواب موجه برای مساله کوله پشتی می دهند. مساله کوله پشتی مورد نظر به قرار زیر است: 24 24

25 برنامه ریزی خطی پیشرفته (21715)
در این مساله kj بیانگر تعداد جواب های موجه برای مساله کوله پشتی ارایه شده است. هر یک از ستون ها بیانگر یک تخصیص موجه کارها به یکی از ماشین ها است. هدف اصلی فرمول بندی مجدد مساله تخصیص به این روش این است که با فرض پیوسته فرض کردن متغیرهای تصمیم در این مدل جواب بهینه تابع هدف مساله master بسیار با کیفیت تر از جواب بهینه مساله اصلی با پیوسته فرض کردن متغیر های تصمیم است. 25 25

26 برنامه ریزی خطی پیشرفته (21715)
توجه کنید که هدف از الگوریتم تجزیه به این صورت سرعت دادن به حل مساله نیست بلکه بدست آوردن جوابی با کیفیت تر است. حتی در مواردی حل مساله master با متغیرهای تصمیم پیوسته بسیار مشکل تر از حل مساله اصلی با متغیرهای تصمیم پیوسته است. برای حل مساله دوم مساله های pricing یا تولید ستون به تعداد ماشین های موجود(n) حل می شود. در واقع در این مرحله n مساله کوله پشتی مستقل حل می شود. 26 26

27 برنامه ریزی خطی پیشرفته (21715)
در مراحل حل مساله (2) سوال های زیر مطرح می شوند: آیا باید در هر مرحل مساله های فرعی کوله پشتی را بصورت بهینه حل کرد؟ آیا ستون های غیر پایه را در مساله master باید نگهداری کرد و یا حذف نمود؟ آیا باید مساله Master را بصورت بهینه حل کرد؟ 27 27

28 برنامه ریزی خطی پیشرفته (21715)
در حالتی که جواب بهینه مساله master پس از استفاده از روش تولید ستون همچنان محدودیت عدد صحیح بودن متغیرهای تصمیم را راضی نکند، باید به کمک روش شاخه و حد عملیات شاخه زنی را انجام داد. اگر عملیات شاخه زنی به حالت عادی بر پایه ستون های موجود انجام شود عملا شانسی برای پیدا کردن جواب بهینه وجود ندارد. حتی ممکن است جواب موجه ای با این روش شاخه زنی پیدا نشود. 28 28

29 برنامه ریزی خطی پیشرفته (21715)
بنابراین باید تمهیداتی در گره های بعدی حل مساله در نظر گرفت. روش استاندارد شاخه زنی به روی متغیرهای λ به معنی این است که به عنوان مثال یکی از جواب های خاص مانند λjk برابر با صفر شود. ممکن است در مرحله بعدی حل مساله کوله پشتی در جواب بهینه لازم باشد که مقدار این متغیر تصمیم برابر با یک باشد. در این حالت قطعا نمی توانیم به این جواب برسیم و باید جواب بعدی را انتخاب کنیم. 29 29

30 برنامه ریزی خطی پیشرفته (21715)
در شاخه ای به عمق l ممکن است این مساله به مشکل انتخاب کردن جواب lام بعدی ختم شود. برای حل این منظور عملیات شاخه زدن به روی متغیرهای تصمیم مساله اصلی یا به عبارتی Zij ها انجام می شود. اگر مقدار Zij برابر با یک باشد تمامی ستون هایی که در آنها کار i به ماشین j تخصیص نیافته است در این شاخه حذف می شوند. 30 30

31 برنامه ریزی خطی پیشرفته (21715)
به عبارتی در این شاخه بطور دایم کار i به ماشین j تخصیص پیدا می کند. در عوض در شاخه دیگر ستون هایی که کار i به ماشین j تخصیص پیدا کرده اند حذف می شوند. توجه کنید که با عملیات شاخه زدن مساله کوله پشتی جدید ایجاد شده در گره های جدید دارای یک متغیر تصمیم کمتر از شاخه مادر است. 31 31

32 برنامه ریزی خطی پیشرفته (21715)
استفاده از تکنیک B&P برای حل مساله تخصیص عمومی با ماشین های متفاوت در صورتی که ماشین های در اختیار یکسان باشند، تنها نیاز به یک مساله فرعی است. محدودیت محدب بودن مورد استفاده در Master problem بصورت زیر خواهد بود: 32 32

33 برنامه ریزی خطی پیشرفته (21715)
استفاده از تکنیک B&P برای حل مساله تخصیص عمومی با ماشین های متفاوت مشکل اصلی حل این مساله وجود جواب های یکسان فراوان (جواب های یکسان تنها با تغییر نام و تخصیص کارها به ماشین ها) است. این مشکل موجب کند شدن فراوان فرایند حل مساله می شود. 33 33

34 برنامه ریزی خطی پیشرفته (21715)
استفاده از تکنیک B&P برای حل مساله تخصیص عمومی با ماشین های متفاوت برای رفع این مشکل عملیات شاجه زنی بر پایه تخصیص دو کار دلخواه مانند کار iام و کار jام به روی یک ماشین و یا به روی ماشین های متفاوت انجام می شود. به عبارتی با این محدودیت فضای جواب به دو بخش تقسیم می شود. در این حالت واضح است که مساله های فرعی شاخه ها متفاوت خواهند بود. 34 34

35 برنامه ریزی خطی پیشرفته (21715)
استفاده از تکنیک B&P برای حل مساله زمان بندی خدمه (Crew Scheduling) مساله های تخصیص خدمه و یا pairing problem معمولا در برنامه ریزی قطارها و یا خطوط هواپیمایی مطرح می شوند. مسیر های حرکتی هواپیماها و یا قطارها از قبل مشخص است. معمولا این مسیرها بصورت رفت و برگشت طراحی شده اند. منظور از pairing این است که هواپیماها و یا قطارها از هر شهری که حرکت خود را آغاز می کنند، مجددا به همان شهر باز می گردند. 35 35

36 برنامه ریزی خطی پیشرفته (21715)
استفاده از تکنیک B&P برای حل مساله زمان بندی خدمه (Crew Scheduling) اصول و قوانین کار (حداکثر طول پرواز مجاز و...) در این زمان بندی مدنظر قرار می گیرند. تعدادی از این محدودیت ها عبارتند از: بیشینه طول زمان مجاز پرواز در یک روز توسط یک خلبان حداکثر تعداد روزهای پرواز پیاپی کمینه زمان استراحت میان دو ماموریت متوالی به دلیل وجود محدودیت های متفاوت محاسبه هزینه خدمه های یک پرواز آسان نیست. 36 36

37 برنامه ریزی خطی پیشرفته (21715)
استفاده از تکنیک B&P برای حل مساله زمان بندی خدمه (Crew Scheduling) با توجه به این مشکلات، مدلسازی مساله بصورتی که یک متغیر تصمیم بصورت صفر و یک مانند Zij مشخص کند که آیا فرد jام به پرواز رفت و برگشت iام اختصاص می یابد، روش مناسبی به نظر نمی رسد. روش مناسب تر در نظر گرفتن هر جواب موجه به عنوان یک ستون و مدلسازی مساله با انتخاب ستون های مناسب برای تکمیل ظرفیت پروازها با حداقل هزینه است. 37 37

38 برنامه ریزی خطی پیشرفته (21715)
استفاده از تکنیک B&P برای حل مساله زمان بندی خدمه (Crew Scheduling) مشکل ایجاد شده در این حالت تعداد بی نهایت ستون های موجه است. به عنوان مثال: وجود بیش از پنج میلیون ستون برای زمان بندی پروازهای یک روز با 253 پرواز در یکی از شرکت های هواپیمایی وجود میلیاردها ستون برای زمان بندی پروازهای یک شرکت با تعداد پروازهایی معادل 1000 پرواز 38 38

39 برنامه ریزی خطی پیشرفته (21715)
استفاده از تکنیک B&P برای حل مساله زمان بندی خدمه (Crew Scheduling) روش عملی به کار رفته برای حل این مساله حل آن با در نظر گرفتن تنها یکصد هزار جواب موجه با هزینه پایین بود. جواب حاصله به هیچ وجه بهینه نبود. امکان کسب جواب بهینه برای این مساله به کمک تکنیک Branch-and-Price به عبارتی، تکنیک B&P روشی است که می تواند مساله را با در نظر گرفتن تمامی جواب های موجه بصورت بهینه حل کند. 39 39

40 برنامه ریزی خطی پیشرفته (21715)
استفاده از تکنیک B&P برای حل مساله زمان بندی خدمه (Crew Scheduling) نتایج یک مطالعه موردی حل مساله زمان بندی خدمه برای 400 پرواز آغاز حل مساله با 9400 جواب موجه اولیه مقدار تابع هدف (جواب) LP مساله برابر با 1600 هزینه تنها جواب عدد صحیح پیدا شده برای مساله برابر (قطع کردن حل مساله پس از دو روز به روی یک کامپیوتر مدرن در حدود 12 سال پیش) 40 40

41 برنامه ریزی خطی پیشرفته (21715)
استفاده از تکنیک B&P برای حل مساله زمان بندی خدمه (Crew Scheduling) نتایج یک مطالعه موردی (ادامه) ادامه حل مساله به کمک تکنیک B&P وارد کردن ستون های جدید به مساله به کمک تکنیک B&P بدست آوردن یک جواب موجه با متغیرهای تصمیم عدد صحیح معادل 800! به کمک تکنیک B&P بهتر بودن این جواب حتی نسبت به مقدار تابع هدف (جواب) LP مساله در گره صفر مساله!!! چرا؟ 41 41

42 برنامه ریزی خطی پیشرفته (21715)
مدل های مناسب کلی برای تولید ستون مساله عمومی برنامه ریزی خطی زیر را در نظر بگیرید: Max c(x) Ax ≤ b مدل 3 x integer نیازی نیست که تابع هدف مساله خطی باشد. نکته مهم این است که مساله relaxed شده با کنار گذاردن محدودیت Ax ≤ b به راحتی قابل حل باشد. 42 42

43 برنامه ریزی خطی پیشرفته (21715)
هدف این است که مجموعه زیر به صورتی باشد که با مجموعه مشخصی از بردارها قابل ارایه باشد: مجموعه مورد نظر می تواند محدود و یا نامحدود باشد. روش کار در این نوع مساله ها بسیار مشابه روش تجزیه دنزینگ-ولف است. 43 43

44 برنامه ریزی خطی پیشرفته (21715)
فرض کنید یک مجموعه محدود و هر نقطه دلخواه بتواند بصورت زیر نمایش داده شود: به صورتی که رابطه های زیر برقرار باشند: 44 44

45 برنامه ریزی خطی پیشرفته (21715)
فرض کنید رابطه های زیر برقرار باشند: بر این پایه می توان فرم مدل تولید ستون مساله (3) را بصورت زیر نمایش داد: مدل 4 45 45

46 برنامه ریزی خطی پیشرفته (21715)
توجه کنید که مساله (4) یک مساله برنامه ریزی خطی عدد صحیح است در صورتی که مساله (3) می تواند حالت غیر خطی (غیر خطی بودن تابع هدف) داشته باشد. در صورتی که مساله (3) غیر خطی باشد، برای خطی شدن مساله (4) حتما باید منطقه S محدود باشد! 46 46

47 برنامه ریزی خطی پیشرفته (21715)
اگر بتوان فضای S را به چندین فضای مستقل بصورت زیر تجزیه کرد: می توان هر مجموعه رابصورت زیر نمایش داد: 47 47

48 برنامه ریزی خطی پیشرفته (21715)
اگر فرض کنیم: می توانیم مدل تولید ستون مساله (3) را بصورت زیر نمایش دهیم: 48 48

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

50 برنامه ریزی خطی پیشرفته (21715)
در این حالت مساله تولید ستون بصورت زیر تبدیل می شود: 50 50

51 برنامه ریزی خطی پیشرفته (21715)
در مواردی لازم است که محدودیت محدب بودن بصورت نامساوی زیر نوشته شود: این وضعیت در صورتی اتفاق می افتد که: 51 51

52 برنامه ریزی خطی پیشرفته (21715)
از آنجا که مساله Master در ابتدا دارای تمام ستون های موجود نیست، هنگام حل به آن مساله اصلی محدود شده و یا به عبارتی Restricted master problem می گوییم. تولید ستون بر پایه حل مساله فرعی یا مساله pricing بصورت زیر ایجاد می شود: در این رابطه d مقدار متغیرهای تصمیم جواب بهینه دوگان مساله RMP در حالتی است که متغیرهای تصمیم آن پیوسته فرض شده اند. 52 52

53 برنامه ریزی خطی پیشرفته (21715 (
کاربرد تکنیک B&P در حل یک مساله واقعی توالی عملیات مساله flow shop scheduling را در نظر بگیرید. فرض کنید کارهای تخصیص یافته برای پردازش بر پایه مشابهت هایی به گروه های مجزا با تعداد کارهای متفاوت اختصاص یافته اند. هر گروه نیاز به زمان آماده سازی به روی هر ماشین دارد که زمان آن بستگی به گروه قبلی پردازش شده به روی ماشین دارد. توالی کارها و گروه ها در تمامی ماشین ها یکسان است. هدف پیدا کردن توالی از پردازش کارها و گروه ها است که متوسط زمان حضور کارها در کارگاه را حداقل کند. 53 53

54 برنامه ریزی خطی پیشرفته (21715 (
JOBS MACHINES 1 2 3 4 5 G1 1 3 4 C1 G2 G3 2 5 C2 G4

55 برنامه ریزی خطی پیشرفته (21715 (
FSDGS: nowadays, great deal of attention and importance The Goal: Minimization of total flow time (Fm|fmls, Sijk, prmu| ∑Cj) Applications: press shop, paint shop Assumptions: Sequence Dependent Set-up Time All jobs should pass through all machines Permutation Scheduling All jobs are available at the beginning of the schedule

56 برنامه ریزی خطی پیشرفته (21715 (
مدل ریاضی مساله به قرار زیر است: فرض می شود شیارهایی برای تخصیص گروه ها به منظور تعیین توالی پردازش وجود دارد بطوریکه هر یک از گروه ها باید به یکی از این شیارها اختصاص پیدا کنند. به منظور آسان کردن مدلسازی فرض می شود که تعداد کارهای گروه ها با هم برابر است. برای گروه هایی با تعداد کارهای کمتر به تعداد این اختلاف کارهای مصنوعی با زمان پردازش صفر در نظر گرفته می شود.

57 برنامه ریزی خطی پیشرفته (21715 (
a: Number of groups bp: Number of jobs of group p p = 1,2,…,a N: Number of jobs in all groups m: Number of machines tpjk: Run time of job j in group p on machine k j = 1,2,…,bp k = 1,2,…,m

58 برنامه ریزی خطی پیشرفته (21715 (
For real jobs; run time of job j in group p in machine k For dummy jobs; -M p = 1,2,…,a j = 1,2,…,bp k = 1,2,…,m Splk: The setup time for going from group p to group l on machine k p,l = 1,2,…,a TPk: The summation of run time of jobs in group p on machine k bmax: The maximum number of jobs in groups max{bp}

59 برنامه ریزی خطی پیشرفته (21715 (
Xijk : The completion time of job j in ith slot on machine k i = 0,1,2,…,a j = 1,2,…,bmax k = 1,2,…,m If group p is assigned to slot i Otherwise p = 0,1,2,…,a If job q is processed after job j in slot i otherwise i = 1,2,…,a j,q = 1,2,…,bmax Cik: The Completion time of ith slot on machine k i = 0,1,2,…,a

60 برنامه ریزی خطی پیشرفته (21715 (
If group p is processed in slot i and group l is processed in slot i+1 Otherwise i,p = 0,1,2,…,a-1 l = 1,2,..,a p≠ l Setik: The setup time for a group assigned to slot i on machine k i = 1,2,…,a k = 1,2,…,m

61 برنامه ریزی خطی پیشرفته (21715 (
Subject To: (1) p = 1,2,…a i = 1,2,…,a (2) i = 0,1,2,…,a-1 (p≠ l)

62 برنامه ریزی خطی پیشرفته (21715 (
(3) i = 0,1,2,..,a-1 p,l = 1,2,…,a (4) i = 1,2,…,a k = 1,2,…m (5) i = 1,2,3,…,a (6) i = 1,2,…,a j = 1,2,…,bmax k =1, 2,3…m

63 برنامه ریزی خطی پیشرفته (21715 (
(7) i = 1,2,…,a j,j´ = 1,2,… bmax j < j’ k = 1,2,3…m (8) (9) j = 1,2,…,bmax k = 2,3…m (10) i = 1,2,…,a

64 برنامه ریزی خطی پیشرفته (21715 (
زمان مورد نیاز برای پردازش کارها به روی ماشین ها و زمان مورد نیاز برای آماده سازی ماشین ها برای پردازش کارهای گروه ها عبارتند از: Run Time G1 G2 G3 M1 M2 J11 3 4 J21 J31 5 2 J12 J22 1 J32 J13 J33 Setup Time M1 M2 G1 G2 G3 ____ 3 2 5 1 4 R 64 64

65 برنامه ریزی خطی پیشرفته (21715 (
یک توالی دلخواه از کارها و گروه ها در شکل زیر نمایش داده شده است: M1 S011 J11 J12 J13 S121 J21 J22 S231 J31 J32 J33 M2 S012 S122 S232

66 برنامه ریزی خطی پیشرفته (21715 (
به الگوریتم های متعددی مانند tabu search ، Ant Colony Optimization و یا الگوریتم PSO جواب هایی به عنوان حد بالایی برای این مساله ابداع شده اند. هدف ارایه حد پایین برای این مساله به کمک تکنیک B&P است. فرمول بندی دوباره مساله به کمک تعداد بسیار زیادی متغیر تصمیم تجزیه مدل جدید ایجاد شده به یک مساله Master و یک یا چند مساله فرعی 66 66

67 برنامه ریزی خطی پیشرفته (21715)
تعداد زیر مساله های ایجاد شده برابر تعداد ماشین های سیستم است. در ابتدا مساله master تنها با تعدادی از ستون ها بصورت بهینه حل می شوند. زیر مساله های ایجاد شده به منظور آزمون بهینگی جواب کنونی حل می شوند. 67 67

68 برنامه ریزی خطی پیشرفته (21715)
در صورتی که ستونی توسط مساله های فرعی معرفی شد مساله master مجددا با در نظر گرفتن این ستون ها حل می شود. در صورتی که ستونی به مساله master اضافه نشد و همچنان متغیرهای تصمیم عدد صحیح دارای مقدار غیر صحیحی بودند، عملیات شاخه زنی انجام می شود. 68 68

69 برنامه ریزی خطی پیشرفته (21715) فرمول بندی دوباره مساله
برنامه ریزی خطی پیشرفته (21715) فرمول بندی دوباره مساله The number of columns that exist in RMP related to the kth machine k = 1,2,…,m The completion time of jth job of ith slot on machine k in hkth existing solution in RMP related to machine k i = 1,2,…,a j = 1,2,…,bmax p = 1,2,…,a h = 1,2,3,…,H i = 0,1,2,…,a Run time of job j in group p on machine k

70 برنامه ریزی خطی پیشرفته (21715)
Convexity variables for the kth machine h = 1,2,3,…,H The dual variables of the RMP i = 1,2,…,a j = 1,2,,bmax k = 1,2,…,m The dual variable for kth machine convexity constraint

71 برنامه ریزی خطی پیشرفته (21715)
(11) Subject to: (12) (13) i = 1,2,…,a j = 1,2,…,bmax (14) k = 1,2, …,m

72 برنامه ریزی خطی پیشرفته (21715)
SP1: Subject to: Constraints (1) through (8), (10) And the relaxing constraints for job sequences

73 برنامه ریزی خطی پیشرفته (21715)
SP2 through SPm-1 Subject to Constraints (1) through (8), (10) And the relaxing constraints for job sequences

74 برنامه ریزی خطی پیشرفته (21715)
SPm Subject to Constraints (1) through (8), (10) And the relaxing constraints for job sequences

75 برنامه ریزی خطی پیشرفته (21715)
توجه کنید که مساله های فرعی همچنان بصورت NP-Hard هستند. می توان در مرحله های میانی به کمک الگوریتم های فراابتکاری مساله های فرعی را بصورت تقریبی حل کرد تا زمانی که این مساله های فرعی قادر به ارایه ستونی برای بهبود مقدار تابع هدف مساله master نداشته باشند. اگر حل تقریبی مساله های فرعی ستونی به مساله master اضافه نکرد، مساله های فرعی باید بصورت بهینه حل شوند تا از بهینگی جواب اطمینان حاصل شود. در این حالت می توان ادعا کرد که گره جاری بصورت بهینه حل شده است.

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

77 برنامه ریزی خطی پیشرفته (21715)
در این تحقیق شاخه زنی بر پایه پیشنهاد های ارایه شده در Barnhart et al. (1995) و Desrosiere et al. (1995) با شاخه زنی به روی متغیرهای تصمیم مساله اصلی انجام شده است.

78 برنامه ریزی خطی پیشرفته (21715)
نتایج تحقیقات نشان داد که بهتر است در ابتدا عملیات شاخه زنی به روی متغیرهای تصمیم تعیین کننده توالی گروه ها Wipها , و یا ASها انجام شود. توصیه می شود شاخه زنی به روی متغیرهای تصمیمی انجام شود که مقدار λ مربوطه آن به عدد 0.5 نزدیک تر باشد تا مقدار تغییرات در مقدار تابع هدف مساله های ایجاد شده در گره های پایینی قابل ملاحظه باشند.

79 برنامه ریزی خطی پیشرفته (21715)
توقف ایده ال روش هنگامی است که تمامی گره های ایجاد شده با یکی از اتفاقات زیر متوقف شوند: در جواب بهینه گره تمام متغیرهای تصمیم عدد صحیح مقدار صحیح داشته باشند. گره به جواب غیر موجه برسد. ادامه حل گره به علت Fathoming متوقف شود.

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

81 برنامه ریزی خطی پیشرفته (21715)
محاسبه حد پایین برای مساله های حل شده ناقص


Download ppt "برنامه ریزی خطی پیشرفته (21715( Advanced Linear Programming Lecture 10"

Similar presentations


Ads by Google