Transcript Lingo

‫به نام خدا‬
‫آشنایی با نرم افزار لینگو‬
‫‪Lingo software‬‬
‫تقی عرب لو‬
‫معرفی نرم افزار لینگو‬
‫‪ o‬مقدمه‬
‫‪ o‬نرم افزارهای مشابه‬
‫‪ o‬ویژگی های لینگو‬
‫‪ o‬مقدمه ‪:‬‬
‫بسته های نرم افزاری لیندو و لینگو توسط شرکت لیندو سیستمز برای حل مسائل بهینه سازی در‬
‫دانشگاه‪ ،‬صنعت و تجارت‪ ،‬طراحی گردیده است‪ .‬لینگو ابزاری ساده برای بهره گیری از قدرت‬
‫برنامه ریزی خطی و غیر خطی در فرموله کردن مسائل خیلی بزرگ به صورت مختصر و تجزیه‬
‫و تحلیل آنهاست‪.‬‬
‫‪ o‬نرم افزارهای مشابه ‪:‬‬
‫امروزه بسیاری از مدل های بهینه سازی تحقیق در عملیات اعم از مدل های خطی ‪ ،‬غیر‬
‫خطی و یا عدد صحیح به مدد نرم افزار های کامپیوتری به سادگی قابل تجزیه و تحلیل‬
‫می باشند‪ .‬در این میان می توان از نرم افزارهایی چون ‪،LINDO ،GINO ،GAMS‬‬
‫‪ TORA ،QSB ،LINGO‬نام برد‪.‬‬
‫‪ LINGO‬بعد از ‪ GAMS‬قوی ترین نرم افزار تحقیق در عملیات می باشد‪ .‬از جمله‬
‫برتری های ‪ LINGO‬نسبت به ‪ LINDO‬یا ‪ ، GAMS‬قدرت آن در مدل سازی تمام‬
‫مسائلی است که توسط ‪ LINDO‬مدل شده اند‪ ،‬بدون اینکه نیازی به تعیین نوع مدل توسط‬
‫کاربر باشد‪ ،‬درحالی که ‪ LINDO‬یا ‪GAMS‬چنین قابلیتی را دارا نمی باشد‪ .‬یکی دیگر‬
‫از قابلیت های مهم ‪LINGO‬برخورداری از ‪Help‬ی بسیار قوی ‪ ،‬ساده و کامل می‬
‫باشد‪ .‬به گونهای که با استفاده از ‪ Help‬آن می توان تا حد زیادی بر این نرم افزار مسلط‬
‫شد‪ .‬آخرین نسخه این نرم افزار نسخه ‪ 12‬بوده ولی نسخه ‪ 11‬آن رایج تر است‪.‬‬
‫‪ o‬ویژگی های بارز ‪:‬‬
‫‪ (1‬قابلیت مدل سازی بصورت کارا و صحیح؛‬
‫‪ (2‬قابلیت باالی تحلیل مدل؛‬
‫‪ (3‬دارا بودن توابع مختلف ریاضی ‪ ،‬آماری و احتمالی؛‬
‫‪ (4‬قابلیت خواندن اطالعات از ‪File‬ها و ‪Worksheet‬های دیگر؛‬
‫‪ (5‬کار کردن در محیط ‪.Windows‬‬
‫‪ (6‬و همچنین قادر به حل مسائل مختلف بهینه سازی از جمله ‪:‬‬
‫برنامه های خطی ‪ ،‬کوآدراتیک ‪ ،‬خطی عدد صحیح ‪ ،‬کوآدراتیک عدد صحیح ‪ ،‬عدد صحیح‬
‫خطی خالص ‪ ،‬عدد صحیح کوآدراتیک خالص ‪ ،‬غیر خطی ‪ ،‬غیر خطی عدد صحیح ‪ ،‬غیر‬
‫خطی عدد صحیح خالص‪.‬‬
‫اصول اولیه در لینگو ‪:‬‬
‫برای حل مسائل در لینگو که بسیار مشابه لیندو است‪ ،‬می توان مسائل را به دو روش از‬
‫طریق صفحه کلید ( ارتباط دو طرفه با کاربر ) و یا با استفاده از فایلهایی که در جای دیگر تولید‬
‫شده اند ( که این فایلها یا خود شامل دستورات هستند و یا به عنوان بخشی از یک برنامه جامع ‪،‬‬
‫دارای کدهای سفارشی و کتابخانه های بهینه سازی لینگو هستند )‪ ،‬وارد کامپیوتر کرد‪ .‬در اینجا‬
‫به روش اول‪ ،‬یعنی ارتباط دو طرفه با کاربر متمرکز می شویم‪.‬‬
‫وارد کردن یک مدل در نسخه تحت ویندوز لینگو ‪ ،‬شبیه تایپ کردن در یک محیط پردازشگر‬
‫متنی تحت ویندوز است ؛ چون وقتی در یک مدل داده تایپ می کنید‪ ،‬تقریبا باید آنچه را که به‬
‫صورت دستی نوشته اید‪ ،‬وارد مدل کنید‪ .‬کاربر می تواند اطالعات ورودی خود را در پنجره ی‬
‫داخلی که ابتدا تحت عنوان ‪ Lingo Model‬است‪ ،‬وارد کند‪ .‬همچنین‪ ،‬لینگو شامل دستورات‬
‫ابتدایی ویرایش برای بریدن ‪ ،‬کپی کردن و چسباندن یک متن است‪ .‬این ابزار ها و سایر ویژگی‬
‫ها‪ ،‬در منوی فرمانها موجود است که در ادامه مورد بررسی قرار می گیرد‪.‬‬
‫لینگو نیازمند تابع هدف ‪ ،‬یک یا چند متغیر و یک یا چند محدودیت است‪ .‬که بر خالف لیندو‪،‬‬
‫محدودیت های لینگو بعد از عبارات خاص از قبیل ‪ Subject to‬یا ‪ Such that‬نمی آید‪.‬‬
‫‪ ‬در لینگو هر عبارت با یک “ ; “ پایان میابد؛‬
‫‪ ‬هر گاه بخواهیم یک عبارت توضیحی به متن برنامه بیافزاییم کافیست در ابتدای عبارت از‬
‫عالمت تعجب( ! ) استفاده کنیم‪ .‬این توضیحات نیز به “ ; “ ختم می شوند‪ .‬کلیه عبارات متنی‬
‫که مابین ( ! ) و “ ; “ نوشته می شوند از سوی لینگو نادیده گرفته می شوند؛‬
‫‪ ‬لینگو به بزرگ یا کوچک بودن حروف حساس نیست ؛‬
‫‪ ‬تابع هدف بسته به اینکه به صورت حداکثر سازی یا حداقل سازی باشد‪ ،‬به شکل‬
‫”…=‪ “Max‬یا ”…=‪ “Min‬نوشته می شود‪.‬‬
‫‪ ‬در آغاز نوشتن هر مدل‪ ،‬باید از دستور ”‪ “Model:‬استفاده کرد‪ .‬سپس کلیه ارکان مدل‬
‫شامل تعریف مجموعه ها‪ ،‬ورود داده ها‪ ،‬تابع هدف و محدودیت ها‪ ،‬نوشته خواهد شد و مدل‬
‫با دستور ”‪ “End‬به پایان میرسد‪ .‬دو دستور ”‪ “Model:‬و ”‪ “End‬نیازی به “ ; “ ندارند‪.‬‬
‫‪ ‬می توانیم دو خط برنامه لینگو را در یک خط بیاوریم و یا یک خط آن را در دو سطر‬
‫بیاوریم‪:‬‬
‫‪Max=100*standard‬‬
‫;‪+150*turbo‬‬
‫یا‬
‫;‪Standard<=100;turbo<=120‬‬
‫‪ ‬حتی می توانبم توضیحات را در وسط محدودیت ها بیاوریم‪:‬‬
‫;‪X=Y+!Number of products;Q+2*C‬‬
‫( معادل ‪ X=Y+Q+2*C‬است )‬
‫‪ ‬عملگرهای ریاضی حتما فراموش نشود؛ ( مخصوصا عملگر ضرب “ * “ )‬
‫‪2x+3y<=25‬‬
‫(اشتباه)‬
‫‪2*x+3*y<=25‬‬
‫(درست)‬
‫‪ ‬اسامی متغیرها حتما با یک حرف شروع می شوند‪ .‬بعد از آن می توان حرف ‪ ،‬رقم یا‬
‫زیرخط ( _ ) استفاده کرد‪ .‬اسم متغیرها نمی تواند بیشتر از ‪ 32‬کاراکتر باشد‪.‬‬
‫‪ ‬استفاده از فاصله “ “ در اسم متغیر ها ممنوع است‪.‬‬
‫‪ ‬اگر بخواهیم به محدودیت اسمی اختصاص دهیم در ابتدای محدودیت اسم آن را در داخل‬
‫عالمت کروشه می آوریم و به صورت مقابل می نویسیم‪[ :‬اسم محدودیت]‬
‫‪ Help ‬لینگو یک راهنمای بسیار خوب برای استفاده بهتر از نرم افزار است‪.‬‬
‫‪ ‬هنگام حل مدل اگر ایرادی در آن وجود داشته باشد‪ ،‬نرم افزار پیغام خطا داده و مکان نما‬
‫به اول سطری می رود که به نظر لینگو این خطا از آنجا ناشی شده است‪.‬‬
‫ممکن است در بعضی مواقع با وجود آنکه فکر می کنید مدلی که نوشته اید درست است؛ نرم‬
‫افزار هنگام حل آن پیغام خطا بدهد ‪ .‬در این مواقع یک راه ساده آن است که یک صفحه جدید‬
‫لینگو باز کرده و دستورات و عبارت هایی که در مدل نوشته اید را یکی یکی ‪ ،‬به صفحه‬
‫جدید کپی کرده و هربار مدل جدید را اجرا کنید‪ .‬با این کار در اکثر موارد به راحتی می‬
‫توانید به اشکال برنامه پی ببرید‪.‬‬
‫نمایش‬
‫ماتریسی‬
‫صورت‬
‫ذخیرهبه‬
‫را‬
‫مدل‬
‫‪:Matrix‬‬
‫‪Picture‬‬
‫ی‬
‫جا‬
‫در‬
‫راتا‬
‫کند‬
‫می‬
‫کپی‬
‫حافظه‬
‫در‬
‫پنجرهرا‬
‫انتخابی‬
‫متن‬
‫‪:Copy‬‬
‫جای‬
‫دارد‬
‫می‬
‫نگه‬
‫حافظه‬
‫در‬
‫کرده‪،‬‬
‫را‬
‫انتخابی‬
‫متن‬
‫‪:Cut‬‬
‫ای‬
‫ه‬
‫داده‬
‫توانید‬
‫می‬
‫‪.‬‬
‫کند‬
‫می‬
‫را‬
‫فعال‬
‫پنجره‬
‫‪::Save‬‬
‫با‬
‫که‬
‫بسته‬
‫پرانتزهای‬
‫‪:‬‬
‫‪Match‬‬
‫‪Parenthesis‬‬
‫انتخابی‬
‫جای‬
‫در‬
‫را‬
‫)‪(clipboard‬‬
‫حافظه‬
‫محتوای‬
‫‪Paste‬‬
‫مرتب‬
‫ای‬
‫گونه‬
‫به‬
‫را‬
‫باز‬
‫های‬
‫تمامی‬
‫‪:‬‬
‫‪Tile‬‬
‫‪Windows‬‬
‫نده‬
‫کن‬
‫حل‬
‫به‬
‫حل‬
‫برای‬
‫را‬
‫فعال‬
‫پنجره‬
‫به‬
‫مربوط‬
‫مدل‬
‫‪Solve‬‬
‫فرستد‬
‫می‬
‫پشت‬
‫به‬
‫را‬
‫رویی‬
‫پنجره‬
‫‪:‬‬
‫‪Send‬‬
‫‪to‬‬
‫‪back‬‬
‫ای‬
‫محاوره‬
‫های‬
‫جعبه‬
‫در‬
‫کند‪،‬‬
‫می‬
‫باز‬
‫را‬
‫موجود‬
‫پرونده‬
‫‪:‬‬
‫‪Open‬‬
‫بندد‬
‫می‬
‫را‬
‫باز‬
‫های‬
‫پنجره‬
‫تمامی‬
‫‪:‬‬
‫‪Close‬‬
‫‪All‬‬
‫کند‪،‬‬
‫می‬
‫باز‬
‫را‬
‫حل‬
‫گزارش‬
‫از‬
‫هایی‬
‫گزینه‬
‫‪:‬‬
‫‪Solution‬‬
‫‪.‬‬
‫گرداند‬
‫می‬
‫را‬
‫شده‬
‫انجام‬
‫کار‬
‫آخرین‬
‫‪:‬‬
‫‪Undo‬‬
‫که‬
‫ا‬
‫ر‬
‫مختلفی‬
‫پارامترهای‬
‫تغییر‬
‫و‬
‫مشاهده‬
‫امکان‬
‫‪:‬‬
‫‪Option‬‬
‫قرار‪.‬‬
‫دهد‬
‫می‬
‫کلید)‬
‫صفحه‬
‫نشانگر‬
‫‪( Cursor‬‬
‫دادن‬
‫حرکت‬
‫جدید‪:‬‬
‫‪Go‬‬
‫‪to‬‬
‫‪line‬‬
‫شود‬
‫داده‬
‫دیگری‬
‫فرستد‬
‫می‬
‫چاپگر‬
‫به‬
‫را‬
‫فعال‬
‫پنجره‬
‫برعکس‪:‬‬
‫‪Print‬‬
‫‪.‬‬
‫دهد‬
‫می‬
‫انجام‬
‫را‬
‫‪Undo‬‬
‫عملیات‬
‫‪:‬‬
‫‪Redo‬‬
‫دهد‬
‫قرار‬
‫را‬
‫آن‬
‫دیگری‬
‫یک‬
‫یا‬
‫گزارش‬
‫پنجره‬
‫یک‬
‫‪،‬‬
‫)‬
‫مدل‬
‫یک‬
‫(‬
‫ورودی‬
‫پنجرهکند‬
‫می‬
‫پیدا‬
‫هستند‪،‬‬
‫متناظر‬
‫شده‪،‬‬
‫انتخاب‬
‫باز‬
‫پرانتزهای‬
‫نند‬
‫ک‬
‫اشغال‬
‫برنامه‬
‫پنجره‬
‫در‬
‫را‬
‫مساوی‬
‫فضای‬
‫همگی‬
‫که‬
‫کند‬
‫نیز‬
‫جستجو‬
‫موضوعی‪،‬امکان‬
‫راهنمای‬
‫‪:‬‬
‫‪Help‬‬
‫‪Topics‬‬
‫دهد‬
‫می‬
‫قرار‬
‫کند‬
‫می‬
‫ایجاد‬
‫ها‬
‫داده‬
‫کردن‬
‫وارد‬
‫برای‬
‫پنجره‬
‫‪:New‬‬
‫مختلف‬
‫انواع‬
‫میان‬
‫از‬
‫را‬
‫پرونده‬
‫توانید‬
‫می‬
‫)‬
‫‪dialog‬‬
‫‪box‬‬
‫می (‬
‫‪.‬‬
‫فرستد‬
‫می‬
‫لینگو‬
‫پنجره‬
‫در‬
‫متنی‬
‫رشته‬
‫از‬
‫قسمتی‬
‫جستجوی‬
‫‪:‬‬
‫‪Find‬‬
‫عال حل‬
‫گزارش‬
‫نظر‬
‫مورد‬
‫ظاهر‬
‫چگونگی‬
‫تعیین‬
‫امکان‬
‫که‬
‫می فکند‪.‬‬
‫فراهم‬
‫هستند‪،‬‬
‫درگیر‬
‫لینگو‬
‫از‬
‫استفاده‬
‫هنگام‬
‫در‬
‫فعال‪.‬‬
‫پنجره‬
‫دلخواه‬
‫شماره‬
‫به‬
‫ازکنید‪.‬‬
‫ذخیره‬
‫خطرا‬
‫فرمان‬
‫مختلف‪.‬‬
‫دارد‬
‫وجود‬
‫انتخاب کنید‪.‬‬
‫مکانهای‬
‫پرونده ها و از‬
‫را فراهم می کنند‪.‬‬
‫‪Help‬‬
‫مثال‬
‫شرکت داکوتا فرنیچر‪ ،‬تولید کننده میز تحریر‪ ،‬میز و صندلی است‪ .‬تولید هر کدام از انواع‬
‫مبلمان به الوار و دو نوع نیروی کار ماهر در دو زمینه نجاری و پرداخت نیاز دارد‪ .‬انواع‬
‫مبلمان به الوار و دو نوع نیروی کار ماهر در دو زمینه نجاری و پرداخت نیاز دارد‪ .‬مقدار هر‬
‫یک از منابع مورد نیاز برای تولید هر یک از انواع مبلمان در جدول ذیل آمده است ‪:‬‬
‫منبع‬
‫میز تحریر‬
‫میز‬
‫صندلی‬
‫الوار(فوت تخته)‬
‫‪8‬‬
‫‪6‬‬
‫‪1‬‬
‫زمان پرداخت(ساعت)‬
‫‪4‬‬
‫‪2‬‬
‫‪1.5‬‬
‫زمان تجاری(ساعت)‬
‫‪2‬‬
‫‪1.5‬‬
‫‪0.5‬‬
‫در حال حاضر‪ 48 ،‬فوت تخته از الوارها‪ 20 ،‬ساعت زمان پرداخت و ‪ 8‬ساعت زمان نجاری‬
‫موجود است‪ .‬هر میز تحریر ‪ 60‬دالر‪ ،‬میز ‪ 30‬دالر و صندلی ‪ 20‬دالر به فروش می رسد‪ .‬با‬
‫فرض اینکه منابع در دسترس به تازگی تدارک دیده شده باشند‪ ،‬شرکت داکوتا می خواهد کل سود‬
‫خود را به حداکثر برساند‪.‬‬
‫متغیر های تصمیم بصورت ذیل تعریف شده اند ‪:‬‬
‫‪ : Desk‬تعداد میز تحریرهای تولید شده‬
‫‪ : Table‬تعداد میزهای تولید شده‬
‫‪ : Chair‬تعداد صندلی های تولید شده‬
‫شرکت داکوتا به حل مدل خطی زیر نیاز دارد‪:‬‬
‫‪Max z = 60 Desk + 30 Table + 20 Chair‬‬
‫‪s.t‬‬
‫(محدیدیت الوار) ‪8 Desk + 6 Table + Chair <= 48‬‬
‫(محدودیت پرداخت) ‪4 Desk + 2 Table + 1.5 Chair <= 20‬‬
‫(محدودیت نجاری) ‪2 Desk + 1.5 Table + 0.5 Chair <= 8‬‬
‫(محدودیت تقاضای میز) ‪Table <= 5‬‬
‫‪Desk, Table, Chair >= 0‬‬
:‫ وارد می کنیم‬Lingo model ‫مدل باال را به صورت زیر در پنجره‬
Model:
Max=60*Desk+30*Table+20*Chair;
[Lumber]8*Desk+6*Table+Chair<=48;
[Polish]4*Desk+2*Table+1.5Chair<=20;
[Commercial]2*Desk+1.5*Table+0.5*Chair<=8;
[Request]Table<=5;
End
:‫تصویر مدل باال در برنامه‬
‫جواب مساله فوق در برنامه لینگو به صورت زیر می باشد‪:‬‬
‫تحلیل جواب بدست آمده‪:‬‬
‫‪Objective value: 280.0000‬‬
‫مشخص می کند که مقدار بهینه تابع هدف ‪ 280‬است‪.‬‬
‫‪ Value‬مقدار متغیر در جواب بهینه مدل خطی را می دهد‪ .‬بنابراین جواب بهینه داکوتا تولید ‪ 2‬میز‬
‫تحریر‪ ،‬صفر میز‪ ،‬و ‪ 8‬صندلی است‪.‬‬
‫‪ Reduced Cost‬ضریب متغیر در سطر صفر جدول بهینه را می دهد (مسئله ماکزیمم سازی)‪.‬‬
‫همانگونه که می دانید باید هزینه کاهش یافته هر متغیر پایه برابر صفر باشد‪ .‬برای یک متغیر غیر پایه ‪ ،xj‬هزینه‬
‫کاهش یافته مقداری است که اگر ‪ 1 ، xj‬واحد اضافه شود‪ ،‬به ان اندازه‪ ،‬جواب بهینه کاهش می یابد‬
‫(درحالی که بقیه متغیرهای غیر پایه برابر صفر بمانند)‪.‬‬
‫در خروجی لینگو برای مسئله داکوتا‪ ،‬هزینه کاهش یافته میز برابر ‪ 5‬است‪ .‬این یعنی اگر داکوتا بخواهد یک میز‬
‫تولید کند‪ ،‬درامد به اندازه ‪ 5‬دالر کاهش خواهد یافت‪.‬‬
‫در قسمت بعدی از خروجی یا ‪ Report‬محدودیت ها را مشاهده می کنید که در مقابل ان دو‬
‫عبارت ‪ Slack or Surplus‬و ‪ Dual Price‬مشاهده می شود ‪:‬‬
‫‪ Slack or Surplus‬مقدار کمبود یا اضافی (مازاد) در جواب بهینه را نشان می‬
‫دهد‪ .‬بنابراین ‪ 24‬فوت تخته الوار و ‪ 5‬عدد میز به صورت مازاد وجود خواهد داشت‪.‬‬
‫‪ Dual Price‬یا قیمت سایه مقداری است که اگر سمت راست محدودیت‪ ،‬یک‬
‫واحد اضافه شود‪ ،‬به ان اندازه جواب بهینه‪ ،‬بهبود می یابد ( با فرض اینکه این تغییرات‬
‫باعث از دست رفتن پایه بهینه فعلی نمی شوند )‪ .‬اگر بعد از یک تغییر در طرف راست‬
‫محدودیت‪ ،‬پایه فعلی دیگر بهینه نماند‪ ،‬قیمت های سایه محدودیت ها ممکن است تغییر‬
‫کند‪.‬‬
‫تحلیل حساسیت‪:‬‬
‫پس از حل مدل توسط ‪ Solve‬با استفاده از گزینه ‪ Range‬موجود در منوی ‪ LINGO‬گزارش خروجی تحلیل حساسیت مدل‬
‫را مشاهده می کنیم‪ ،‬در صورت مشاهده خطا وارد ‪ LINGO Option‬شده و گزینه ‪ Dual Computations‬از قسمت‬
‫‪ General Solver‬را در حالت سوم قرار دهید‪.‬در این مثال تحلیل حساسیت به این گونه است‪:‬‬
‫تحلیل حساسیت نشان می دهد که ضرایب تابع تا چه میزان می توانند افزایش یا کاهش یابند بدون‬
‫اینکه پایه بهینه مسئله (مجموعه متغیرهای غیر صفر) عوض شود‪ .‬تحلیل حساسیت شامل دو‬
‫بخش است‪ ،‬یکی مربوط به تابع هدف و دیگری مربوط به محدودیت ها‪ ،‬که در هر کدام به‬
‫تفکیک مقدار واقعی و مقادیر کاهش و افزایش قید شده است‪.‬‬
‫در پایان با استفاده از گزینه ‪ Solution‬در منوی ‪ LINGO‬می توانید نمایش گرافیکی‬
‫از هر یک از متغیرهای موجود در مدل را داشته باشید‪.‬‬
‫مثال ‪ Bar Graph‬برای صندلی‪:‬‬
‫مثال‪:2‬‬
‫‪Max z=7x1+14x2+20x3‬‬
‫‪s.t:‬‬
‫‪x1<=25‬‬
‫(محدودیت ‪ 1‬یا ‪) s1‬‬
‫‪x1+x2<=130‬‬
‫(محدودیت ‪ 2‬یا ‪) s2‬‬
‫(محدودیت ‪ 3‬یا ‪x1+x2+3x3<=50 ) s3‬‬
‫‪7x1+14x2<=45‬‬
‫(محدودیت ‪ 4‬یا ‪) s4‬‬
‫‪X1,x2,x3>=0‬‬
‫تصویر مدل در برنامه‪:‬‬
‫جدول سیمپلکس بهینه مدل فوق‪:‬‬
‫‪s4‬‬
‫‪s2‬‬
‫‪s1‬‬
‫‪x3‬‬
‫‪x2‬‬
‫‪x1‬‬
‫‪s3‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪3.333‬‬
‫‪z‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪s1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0.5‬‬
‫‪s2‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0.167‬‬
‫‪x3‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0.5‬‬
‫‪x2‬‬
‫‪6.667 0.523 356.9‬‬
‫‪25‬‬
‫‪0‬‬
‫‪0.07- 126.7‬‬
‫‪0.333 0.02- 15.59‬‬
‫‪3.21‬‬
‫جواب مدل در برنامه لینگو‪:‬‬
‫‪0.07‬‬
‫‪0‬‬
‫مثالی دیگر برای حداقل سازی‪:‬‬
‫(محدودیت ‪) 1‬‬
‫(محدودیت ‪) 2‬‬
‫مدل در لینگو‪:‬‬
‫‪Min C=3x1+4x2‬‬
‫‪s.t:‬‬
‫‪x1+2x2>=14‬‬
‫‪2x1+3x2>=12‬‬
‫‪X1,x2>=0‬‬
‫جواب به صورت جدول سیمپلکس بهینه‪:‬‬
‫جواب در برنامه لینگو‪:‬‬
‫‪s2‬‬
‫‪s1‬‬
‫‪x2‬‬
‫‪x1‬‬
‫‪28-‬‬
‫‪0‬‬
‫‪2‬‬
‫‪0‬‬
‫‪1‬‬
‫‪c-‬‬
‫‪7‬‬
‫‪0‬‬
‫‪0.5-‬‬
‫‪1‬‬
‫‪0.5‬‬
‫‪x2‬‬
‫‪9‬‬
‫‪1‬‬
‫‪1.5-‬‬
‫‪0‬‬
‫‪0.5-‬‬
‫‪s2‬‬
‫تحلیل حساسیت مثال فوق‪:‬‬