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

Slides:



Advertisements
Similar presentations
Makespan with Sequence Dependent Setup Time (MSDST) 1|s jk |C max.
Advertisements

Algorithm Design Methods (I) Fall 2003 CSE, POSTECH.
Algorithm Design Methods Spring 2007 CSE, POSTECH.
1 Material to Cover  relationship between different types of models  incorrect to round real to integer variables  logical relationship: site selection.
Solving IPs – Cutting Plane Algorithm General Idea: Begin by solving the LP relaxation of the IP problem. If the LP relaxation results in an integer solution,
ECE Longest Path dual 1 ECE 665 Spring 2005 ECE 665 Spring 2005 Computer Algorithms with Applications to VLSI CAD Linear Programming Duality – Longest.
Chapter 3 Workforce scheduling.
Lecture 6: Job Shop Scheduling Introduction
FLOW SHOPS: F2||Cmax. FLOW SHOPS: JOHNSON'S RULE2 FLOW SHOP SCHEDULING (n JOBS, m MACHINES) n JOBS BANK OF m MACHINES (SERIES) n M1 M2Mm.
GRAPH BALANCING. Scheduling on Unrelated Machines J1 J2 J3 J4 J5 M1 M2 M3.
Linear Programming Models & Case Studies
Advanced Topics in Algorithms and Data Structures Lecture 7.2, page 1 Merging two upper hulls Suppose, UH ( S 2 ) has s points given in an array according.
CREW SCHEDULING Past and Future Jacques Desrosiers HEC & GERAD Montréal, Canada.
Introduction to Linear and Integer Programming
© J. Christopher Beck Lecture 14: Assembly Line Scheduling 2.
1 Introduction to Linear and Integer Programming Lecture 9: Feb 14.
Math443/543 Mathematical Modeling and Optimization
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy under contract.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy under contract.
Linear Programming – Max Flow – Min Cut Orgad Keller.
1 Contents college 3 en 4 Book: Appendix A.1, A.3, A.4, §3.4, §3.5, §4.1, §4.2, §4.4, §4.6 (not: §3.6 - §3.8, §4.2 - §4.3) Extra literature on resource.
Lot sizing and scheduling
LP formulation of Economic Dispatch
1 Lecture 4 Maximal Flow Problems Set Covering Problems.
Integer programming Branch & bound algorithm ( B&B )
INTRODUCTION TO SCHEDULING
1.3 Modeling with exponentially many constr.  Some strong formulations (or even formulation itself) may involve exponentially many constraints (cutting.
Group Construction for Cabin Crew Comparing Constraint Programming with Branch&Price Presentation at SweConsNet 2005 Jesper Hansen Carmen Systems AB
© J. Christopher Beck Lecture 5: Project Planning 2.
Types of IP Models All-integer linear programs Mixed integer linear programs (MILP) Binary integer linear programs, mixed or all integer: some or all of.
Integer Programming Key characteristic of an Integer Program (IP) or Mixed Integer Linear Program (MILP): One or more of the decision variable must be.
Workforce scheduling – Days off scheduling 1. n is the max weekend demand n = max(n 1,n 7 ) Surplus number of employees in day j is u j = W – n j for.
Chapter 1. Formulations 1. Integer Programming  Mixed Integer Optimization Problem (or (Linear) Mixed Integer Program, MIP) min c’x + d’y Ax +
WOOD 492 MODELLING FOR DECISION SUPPORT
1 Short Term Scheduling. 2  Planning horizon is short  Multiple unique jobs (tasks) with varying processing times and due dates  Multiple unique jobs.
Approximation Schemes Open Shop Problem. O||C max and Om||C max {J 1,..., J n } is set of jobs. {M 1,..., M m } is set of machines. J i : {O i1,..., O.
© J. Christopher Beck Lecture 25: Workforce Scheduling 3.
“LOGISTICS MODELS” Andrés Weintraub P
Column Generation By Soumitra Pal Under the guidance of Prof. A. G. Ranade.
Branch-and-Cut Valid inequality: an inequality satisfied by all feasible solutions Cut: a valid inequality that is not part of the current formulation.
Integer Programming (정수계획법)
Operational Research & ManagementOperations Scheduling Economic Lot Scheduling 1.Summary Machine Scheduling 2.ELSP (one item, multiple items) 3.Arbitrary.
IE 312 Review 1. The Process 2 Problem Model Conclusions Problem Formulation Analysis.
Review for E&CE Find the minimal cost spanning tree for the graph below (where Values on edges represent the costs). 3 Ans. 18.
Linear Programming (LP) Vector Form Maximize: cx Subject to : Ax  b c = (c 1, c 2, …, c n ) x = b = A = Summation Form Maximize:  c i x i Subject to:
Solving IPs – Implicit Enumeration Similar to Binary IP Branch and Bound General Idea: Fixed variables – those for which a value has been fixed. Free Variable.
Some Topics in OR.
Chapter 1. Introduction Ex : Diet Problem
Lecture 11: Tree Search © J. Christopher Beck 2008.
EMGT 6412/MATH 6665 Mathematical Programming Spring 2016
1.206J/16.77J/ESD.215J Airline Schedule Planning
EMIS 8373: Integer Programming
Deterministic Models: Preliminaries
Manpower Planning: Task Scheduling
1.206J/16.77J/ESD.215J Airline Schedule Planning
Chapter 6. Large Scale Optimization
Deterministic Models: Preliminaries
Integer Programming (정수계획법)
1.206J/16.77J/ESD.215J Airline Schedule Planning
1.206J/16.77J/ESD.215J Airline Schedule Planning
Chapter 6. Large Scale Optimization
Chapter 1. Formulations (BW)
Planning and Scheduling in Manufacturing and Services
Integer Programming (정수계획법)
Advanced LP models column generation.
Advanced LP models column generation.
Chapter 1. Formulations.
ADVANCED COMPUTATIONAL MODELS AND ALGORITHMS
Chapter 6. Large Scale Optimization
Integer Programming (IP)
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

برنامه ریزی خطی پیشرفته (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

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

برنامه ریزی خطی پیشرفته (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

برنامه ریزی خطی پیشرفته (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}

برنامه ریزی خطی پیشرفته (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

برنامه ریزی خطی پیشرفته (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

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

برنامه ریزی خطی پیشرفته (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

برنامه ریزی خطی پیشرفته (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

برنامه ریزی خطی پیشرفته (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

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

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

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

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

برنامه ریزی خطی پیشرفته (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

برنامه ریزی خطی پیشرفته (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

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

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

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

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

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

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

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

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

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

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

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