440 likes | 671 Vues
Decision Support Systems (DSS). F.Ramezani Department of Computer Engineering Islamic Azad University SARI Branch. Linear Programming for Solving the DSS Problems. Outline. Introduction Mathematical programming The Linear Programming Model Modeling a Linear Programming Problem
E N D
Decision Support Systems (DSS) F.Ramezani Department of Computer Engineering Islamic Azad University SARI Branch Linear Programming for Solving the DSS Problems
Outline • Introduction • Mathematical programming • The Linear Programming Model • Modeling a Linear Programming Problem • A Decision Making Example • Developing Linear Programming Model • The Simplex Method • Complications in Simplex Method Linear Programming
Introduction Mathematical programming The Linear Programming Model Linear Programming
Mathematical programming • برنامه نویسی ریاضی برای پیدا کردن بهترین راه حل بهینه برای یک مسئله مورد استفاده قرار میگیرد مسائلی که نیاز به یک تصمیم و یا مجموعه ای از تصمیم گیری در مورد بهترین روش برای استفاده از مجموعه ای از منابع محدود برای رسیدن به هدف خاصی از اهداف مورد استفاده قرار میگیرد. • مراحل دخیل در برنامه ریزی ریاضی • تبدیل مسئله اظهار داشت به یک مدل ریاضی است که خلاصه همه عناصر ضروری مسئله است. • اکتشاف راه حل های مختلف مسئله. • پیدا کردن مناسب ترین راه حل و یا مطلوب. • برنامه ریزی خطی، مستلزم آن است که تمام توابع ریاضی با مدل توابع خطی مورد بررسی قرار گیرد. Linear Programming
The Linear Programming Model (1) Let: X1, X2, X3, ………, Xn = decision variables Z = Objective function or linear function Requirement: Maximization of the linear function Z. Z = c1X1 + c2X2 + c3X3 + ………+ cnXn…..Eq (1) subject to the following constraints: …..Eq (2) Linear Programming where aij, bi, and cj are given constants.
The Linear Programming Model (2) • The linear programming model can be written in more efficient notation as: …..Eq (3) The decision variables, xI, x2, ..., xn, represent levels of n competing activities. Linear Programming
Modeling a LP Problem A Decision Making Example Developing Linear Programming Model The Simplex Method Sensitivity Analysis Complications in Simplex Method Linear Programming
A Decision Making Example • میخواهیم تولیداتی به مقدار ثابت از منابع مختلف از جمله مواد خام، و تجهیزات داشته باشیم. • این منابع را می توان در ترکیب برای تولید هر یک از محصولات مختلف استفاده کرد. • مقدار i ام منبع مورد نیاز برای تولید یک واحد محصول j ام شناخته شده است. • هدف تصمیم ساز، تولید ترکیبی از محصولات است که کل درآمد حداکثر شود. Linear Programming
Developing Linear Programming Model (1) • مراحل: • تعیین و توصیف متغیر های مسئله و تابع معیار در شرایط استفاده از متغیرهای تصمیم. • یافتن محدودیت های مسئله. • تجزیه و تحلیل محدودیت ها و متغیر ها و ارزیابی ارزش ها برای متغیرهای تصمیم • در نهایت: بهینه سازی تابع معیار در حالی که رضایت همه محدودیت های تحمیل شده بر این مسئله ارضا شود. Linear Programming
Developing Linear Programming Model (2) Example: Product Mix Problem • A manufacturer has two products, A and B • And has two resources, R1 and R2 • Each unit of product A requires 1 unit of R1 and 3 units of R2 • Each unit of product B requires 1 unit of R1 and 2 units of R2 • The manufacturer has 5 units of R1 and 12 units of R2 • Profit: • 6$ per each unit of product A sold. • 5$ per each unit of product B sold. Linear Programming
Developing Linear Programming Model (3) • Represent as table form Linear Programming
Developing Linear Programming Model (4) • فرموله کردن ریاضی مسئله (مدلسازی) دارای 4 مرحله است: • شناسایی متغیرهای تصمیم • نوشتن تابع هدف • نوشتن محدودیت • نوشتن محدودیت غیر منفیهمه آنها باید خطی باشند. Linear Programming
Developing Linear Programming Model (5) • Define decision variables: • x1 be number of units of A produced • x2 be number of units of B produced • Objective function (A linear function)z = 6 x1 + 5 x2 • Constraints • x1 + x2≤ 5 • 3 x1 + 2 x2 ≤ 12 • Non negativity restriction • x1 , x2≥ 0 Linear Programming
Developing Linear Programming Model (6) • Graphical Solution to LP Problem • We must maximized z = 6 x1 + 5 x2 • x1 + x2≤ 5 • 3 x1 + 2 x2 ≤ 12 • x1 , x2 ≥ 0 Linear Programming
Problem Formulation حل مسئله نمونه
MATLAB PROGRAM • f=[-10 -9 -8 -7 -6 -4 -3 -5 -4]'; • A=[1 1 1 1 2 2 2 1 1; 10 10 10 10 4 4 4 5 5;3 3 3 3 2 2 2 1 1]; • b=[100;700;400]; • Aeq=[];beq=[]; • LB=[0 0 0 0 0 0 0 0 0]; • UB=[40 60 50 Inf 50 50 Inf 100 Inf]; • [X,FVAL]=LINPROG(f,A,b,Aeq,beq,LB,UB)
The Simplex Method (1) • روش سیمپلکس یکی از روش های کلاسیک برای حل مسائل LP، یکی از مهم ترین الگوریتم های که تا کنون اختراع شده است میباشد • توسط George Dantzig در سال 1947 (دانشگاه استنفورد) • هنگامی که متغیرهای تصمیم گیری بیش از 2، باشد روش نمایش گرافیکی مناسب نیست .توصیه میشود از روش سیمپلکس استفاده گردد. • در این روش به بررسی تمام راه حل های عملی حل مسئله پرداخته میشود. • این روش فقط یک مجموعه کوچک و منحصر به فرد از راه حل های عملی را تولید میکند • مجموعه ای از نقاط راسهایی از فضای امکان پذیر که شامل راه حل بهینه است را جستجو میکند Linear Programming
The Simplex Method (2) • فرم استاندارد مسائل LP • همیشه دنبال حداکثر سازی یک مسئله هستیم • تمام محدودیت (به جز محدودیت های غیر منفی) باید در فرم از معادلات خطی نوشته شوند • تمام متغیرهای مورد نیاز باید نامنفی باشند.بطور کلی مشکل برنامه ریزی خطی به صورت استاندارد با m محدودیت و n متغیر بیان میشود که (n ≥ m) • maximize c1x1+ ...+ cnxn • subject toai1x1+ ...+ ainxn= bi, i = 1,...,m,x1≥ 0, ... , xn ≥ 0 • هر مسئله LP را می توان بدین صورت نشان داد. Linear Programming
The Simplex Method (2) • Objective function (A linear function) Maximize z = 6 x1 + 5 x2 Subject to: x1 + x2≤ 5 3 x1 + 2 x2 ≤ 12 x1 , x2≥ 0 Linear Programming
The Simplex Method (3) • Convert all the inequality constraints into equalities by the use of slack variables (Standard form). • z - 6 x1 - 5 x2 = 0 • x1 + x2 + x3 = 5 • 3 x1 + 2 x2 + x4 = 12 • x1 , x2 , x3 , x4 ≥ 0 Linear Programming
The Simplex Method (5) • Iteration 1 • x3 and x4 are basic variables: • x3 = 5 - x1 - x2 • x4 = 12 - 3 x1 - 2 x2 • z = 6 x1 + 5 x2 x1can increase the objective function (z) with higher rate Linear Programming
The Simplex Method (6) • Iteration 2 • So now, x1 and x3 are basic variables: • 3 x1 = 12 – 2 x2 – x4 x1 = 4 – 2/3 x2 – 1/3 x4 • x3 = 1 – 1/3 x2 + 1/3 x4 • z = 24 + x2 - 2 x4 x2can increase the objective function (z) with higher rate Linear Programming
The Simplex Method (7) • Iteration 3 • So now, x1 and x2 are basic variables: • x2 = 3 – 3 x3 + x4 • x1 = 2 + 2 x3 - x4 • z = 27 – 3 x3 - x4 All of the coefficients are lower than zero, so we are on optimal point. • Solution: • X1 = 2 • X2 = 3 • Z = 27 Linear Programming
EXAMPLE Resolve using the Simplex Method the following problem: Linear Programming
EXAMPLE • Turning the inequalities into equalities Linear Programming
EXAMPLE • Equaling the objective function to zero Linear Programming
EXAMPLE • Writing the initial board simplex Linear Programming
EXAMPLE In our case: 18/2 [=9] , 42/2 [=21] y 24/3 [=8] Linear Programming
EXAMPLE • New pivot row = (Old pivot row) / (Pivot) Remainders rows: New row = (Old row) - (Coefficients) x (New pivot row) Linear Programming
EXAMPLE 2 / 1/3 [=6] , 26 / 7/3 [=78/7] and 8 / 1/3 [=24] Linear Programming
EXAMPLE • 6/(-2) [=-3] , 12/4 [=3], and 6/1 [=6] Linear Programming
EXAMPLE (x,y) = (3,12) Linear Programming
مزیت و معایب • این ساختار تجزیه و تحلیل با تغییر ضرایب در تابع هدف و محاسبه راه حل، حساسیت محاسبه جوابها را کمتر میکند. • به عنوان مثال در مطالعه مورد بحث:قیمت فروش واقعی (یا ارزش بازار) با دو محصول ممکن است زمان به زمان تغییر کند. • در صورتی که مقدار منابع به طور ناگهانی به دلیل کمبود، شکست ماشین آلات، و یا رویدادهای دیگر تغییر کند ، آیا این راه حل در حال حاضر راه حل مطلوب باقی می ماند؟ • مقدار هر نوع منبع مورد نیاز برای تولید یک واحد از هر نوع محصول می تواند به صورت افزایشی یا کاهشی تغییر کند. آیا با چنین تغییراتی میتوان راه حل بهینه را محاسبه کرد؟ Linear Programming
Complications in Simplex Method (1) • در تابع هدف به جای حداکثر پیداکردن بخواهیم حد اقل را پیدا کنیم. • محدودیت های بزرگتر یا مساوی قابل قبول نیستند. • تبدیل تساوی به جای نابرابری برای محدودیتها مشکل است. • متغیرهای تصمیم گیری نامحدود باشند. • برخی یا تمام متغیرهای تصمیم باید اعداد صحیح باشند. • اگر بیش از یک راه حل بهینه وجود داشته باشد ممکن است در هر بار محاسبه یکی محاسبه گردد Linear Programming
EXAMPLE OF SIMPLEX PROCEDURE Linear Programming
EXAMPLE OF SIMPLEX PROCEDURE Linear Programming
EXAMPLE OF SIMPLEX PROCEDURE Linear Programming
EXAMPLE OF SIMPLEX PROCEDURE Linear Programming
EXAMPLE • Minimize: C = −2x + y subject to: Linear Programming
EXAMPLE Linear Programming
EXAMPLE Our maximum of P occurs at x = 4, y = 0 and the maximum value of P is 8. Since P = −C our minimum for C is −8. Linear Programming
تمرین Linear Programming