18
Branch & Price ت م ی ق ه و خ ا م ش ت ی ور گ ل ا1 REZA HAMOULEH School of industrial engineering Iran University of Science and Technology 2016

الگوریتم شاخه و هزینه

Embed Size (px)

Citation preview

Page 1: الگوریتم شاخه و هزینه

1

Branch & Price

الگوریتم شاخه و قیمت

REZA HAMOULEHSchool of industrial engineeringIran University of Science and Technology2016

Page 2: الگوریتم شاخه و هزینه

2 مقدمه: بهینه سازی

ترکیبی روش# هایی هستند که به بهینه سازی Combinatorial optimizationبهینه سازی ترکیبی یا

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

جستجوی کامل )فراگیر( امکان عملیاتی ندارد.

( و درخت پوشای کمینه traveling salesman problem مسائل معروف: فروشنده دوره گرد )(minimum spanning tree problem)

الگوریتم های مشهور بهینه سازی ترکیبی: حریصانه، برنامه ریزی پویا، الگوریتم های درخت پوشای کمینه، شاخه و برش# و شاخه و حد.

Page 3: الگوریتم شاخه و هزینه

3 مقدمه: برنامه ریزی عدد

صحیح( یا بهینه سازی خطی عدد Integer Programmingمسائل برنامه ریزی عدد صحیح )-

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

-Integer Programing مانند رنگ آمیزی گراف ها و فروشنده دوره گرد یک مسئله NP-Hard.است

یکی از الگوریتم های مطرح برای حل این مسائل است.Branch and Boundالگوریتم -

Page 4: الگوریتم شاخه و هزینه

4 شاخه و

حدSاین الگوریتم یک فضای حالت گسسته را در نظر می گ#یرد -< -این الگوریتم مسئله را به صورت »درخت« در نظر می گیرد ک#ه ریشه کل فضای -

آن زیر مجموعه ای از جواب ها است. در هر فرزندحالت )تمامی جواب ها( و هر است.بهترین جواب یافته شده نشان دهنده Bمرحله

در هر گره، عددی )حدی( را محاسبه می کند تا تعیین شود که آیا آن گره -امیدبخش هست یا خیر.

درخت به صورت عرضی پیمایش می شود، درصورتی که زیر شاخه توانایی تولید -جواب بهینه تر برای مسئله را نداشته باشد، از پیمایش کل زیر شاخه صرف نظر

می شود.(هرسمی شود )آن شاخه

Page 5: الگوریتم شاخه و هزینه

5 مثال شاخه و

حدi

$20 2 $40 1$6 5 $30 2$5 10 $50 3$2 5 $10 4

totweight = weight + bound = + (W - totweight) x

Page 6: الگوریتم شاخه و هزینه

6 مثال شاخه و

حدi

$20 2 $40 1$6 5 $30 2$5 10 $50 3$2 5 $10 4

$00

$115

$402

$115

$00

$82

$707

$115

$402

$98

$305

$82

$00

$60

$120

17$0

$707

$80

$8012

$80

$707

$70

$100

17$0

$9012

$90

$9012

$98

$402

$50

$8015

$82

$305

$40

𝒊𝒕𝒆𝒎𝟏

𝒊𝒕𝒆𝒎𝟐

𝒊𝒕𝒆𝒎𝟑

𝒊𝒕𝒆𝒎𝟒

X

XXXX

X X X X

)0,0(

)1,1( )1,2(

)2,1( )2,2( )2,3( )2,4(

)3,1( )3,2( )3,3( )3,4( )3,5( )3,6(

)4,1( )4,2()4,3( )4,4(

$9012$98

W = 16Maxprofit = $0

W = 16Maxprofit = $40

W = 16Maxprofit = $70

W = 16Maxprofit = $90

Page 7: الگوریتم شاخه و هزینه

7 روش تولید

ستون( برای حل مسائل بزرگ در برنامه ریزی خطی.1962متدی قدیمی )-ایده اصلی برای روش تولید ستون این است که بسیاری از مسائل برنامه ریزی خطی -

آنقدر بزرگ هستند که بررسی صریح تمامی متغیرها از نظر زمانی ممکن نباشد. یا مسئله اصلی محدود restricted master problemدر این متد مسئله به صورت -

(RMPفرموله می شود ) کمترین متغیرهای ممکن را می آوریم و دیگر متغیرها در صورت نیاز RMPدر یک -

به مسئله اضافه می شوند )مشابه روش سیمپلکس(. برای اضافه کردن متغیرها »زیر مسئله ها« ایجاد می شوند.

که مسئله ای مشابه کوله پشتی است، مثالی برای مدلسازی cutting stockمسئله -تولید ستون است.

Page 8: الگوریتم شاخه و هزینه

8 روش تولید

ستونرویکرد تولید ستون، مسئله را با زیرمجموعه ای از ستون ها آغاز می کند و سپس مسئله را با -

یک روش بهینه سازی حل می کند. پس از حل بر اساس »هزینه کاسته شده« فعلی، ستونی »خوب« به مجموعه ستون ها اضافه می کند.

این روند تا جایی ادامه می یابد که دیگر هیچ ستون خوبی نتواند مسئله را بهبود دهد.-

- مسئله اصلی

مسئله

این مسئله وظیفه یافتن ستونی را دارد که تابع هدف مسئله اصلی را بهبود - مسئله فرعی -< می دهد.

Page 9: الگوریتم شاخه و هزینه

9 روش تولید

ستوندر حقیقت در این رویکرد، هر ستون را متناظر با یک زیر مسئله می دانیم که تابع هدف را -

گسترش می دهد، برای مثال برای مسئله ی در مسئله زیر:- A steel company wants to cut the steel rods of width 218cm. The

customers want 44 pieces of width 81 cm., 3 pieces of width 70 cm. and 48 pieces of width 68 cm.

Page 10: الگوریتم شاخه و هزینه

10 روش تولید

ستون

Page 11: الگوریتم شاخه و هزینه

11 روش تولید

ستون

Page 12: الگوریتم شاخه و هزینه

12مفاهیم و

تعاریفشاخه و قیمت یک روش بهینه سازی دقیق است.-

شاخه و حد

را می توان ترکیبی از راهبرد شاخه و حد، و روش تولید شاخه و قیمت الگوریتم -ستون دانست.

در IPالگوریتم شاخه و قیمت برای حل مسائل برنامه ریزی عدد صحیح -مقیاس های بزرگ )تعداد باالی متغیرها( به ک#ار می رود.

تکمیل و گسترش

Branch and Cutشاخه و برش

Branch and Priceشاخه و قیمت

Page 13: الگوریتم شاخه و هزینه

13 شاخه و

قیمتروش - در ابتدا مسئله را فرموله می کنیم سپس با کمک 1

مجددا فرموله MPیک آن را به شکلتجزیه دانزیک ولف می کنیم.

- مسئله تولید شده از طریق مرحله قبل به دلیل تعداد 2نمایی ستون ها نمی تواند مستقیما حل شود، پس با در نظر

تبدیل می کنیم. RMPگرفتن تنها یک ستون آن را به

3 -RMP از طریق Relaxation از یک مسئله صحیح صفر و یک به یک مسئله برنامه ریزی خطی تبدیل شده و زیر

مسئله های آن حل می شوند.

Page 14: الگوریتم شاخه و هزینه

14 شاخه و

قیمتدر این الگوریتم هر زیر مسئله، یک »مسئله قیمت -

است.Pricing Problemگذاری« یا

مسائل قیمت گذاری برای وارد کردن ستون های جدید به -مسئله اصلی حل می شوند.

برای حل زیر مسائل، چون نیازی نیست حتما ستونی با -بیشترین کاهش هزینه منفی را داشته باشیم، می توان از الگوریتم های جستجوی محلی یا هیورستیک استفاده کرد.

Page 15: الگوریتم شاخه و هزینه

15 Branch از طریق GAP مسئله

& Price یک مسئله بسیار کاربردی در حوزه GAPمسئله تخصیص تعمیم یافته یا -

برنامه ریزی صحیح صفر و یک است. است.NP-Hard مسئله ای از بهینه سازی ترکیبی و GAPمسئله -

ماشین m وظیفه را به n می خواهیمتخصیص دهیم، باید یه شکلی این کار را

انجام دهیم که سود هر وظیفه ماکزیمم شده )مینمم کردن هزینه ها(، به شکلی که هر وظیفه دقیقا به یک

ماشین داده شود و هر ماشین به اندازه .ظرفیت خود وظیفه بگیرد

Page 16: الگوریتم شاخه و هزینه

16 مراحل حل

GAP

Page 17: الگوریتم شاخه و هزینه

17 مراحل حل

GAP

Page 18: الگوریتم شاخه و هزینه

18 Branch دیگر مسائل مطرح برای

and Priceرنگ آمیزی گراف ها-

مسئله مسیریابی خودروها-