1 / 24

آشنایی با نرم افزار لینگو

به نام خدا. آشنایی با نرم افزار لینگو. Lingo software. تقی عرب لو. معرفی نرم افزار لینگو. مقدمه نرم افزارهای مشابه ویژگی های لینگو. مقدمه :

fritz
Télécharger la présentation

آشنایی با نرم افزار لینگو

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. به نام خدا آشنایی با نرم افزار لینگو Lingo software تقی عرب لو

  2. معرفی نرم افزار لینگو • مقدمه • نرم افزارهای مشابه • ویژگی های لینگو

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

  4. نرم افزارهای مشابه : • امروزه بسیاری از مدل های بهینه سازی تحقیق در عملیات اعم از مدل های خطی ، غیر خطی و یا عدد صحیح به مدد نرم افزار های کامپیوتری به سادگی قابل تجزیه و تحلیل می باشند. در این میان می توان از نرم افزارهایی چون GAMS، GINO، LINDO، LINGO، QSB، TORA نام برد. • LINGO بعد از GAMS قوی ترین نرم افزار تحقیق در عملیات می باشد. از جمله برتری های LINGO نسبت به LINDO یا GAMS ، قدرت آن در مدل سازی تمام مسائلی است که توسط LINDO مدل شده اند، بدون اینکه نیازی به تعیین نوع مدل توسط کاربر باشد، درحالی که LINDO یا GAMSچنین قابلیتی را دارا نمی باشد. یکی دیگر از قابلیت های مهم LINGOبرخورداری از Helpی بسیار قوی ، ساده و کامل می باشد. به گونهای که با استفاده از Help آن می توان تا حد زیادی بر این نرم افزار مسلط شد. آخرین نسخه این نرم افزار نسخه 12 بوده ولی نسخه 11 آن رایج تر است.

  5. ویژگی های بارز : • قابلیت مدل سازی بصورت کارا و صحیح؛ • قابلیت بالای تحلیل مدل؛ • دارا بودن توابع مختلف ریاضی ، آماری و احتمالی؛ • قابلیت خواندن اطلاعات از Fileها و Worksheetهای دیگر؛ • کار کردن در محیط Windows. • و همچنین قادر به حل مسائل مختلف بهینه سازی از جمله : • برنامه های خطی ، کوآدراتیک ، خطی عدد صحیح ، کوآدراتیک عدد صحیح ، عدد صحیح خطی خالص ، عدد صحیح کوآدراتیک خالص ، غیر خطی ، غیر خطی عدد صحیح ، غیر خطی عدد صحیح خالص.

  6. اصول اولیه در لینگو : برای حل مسائل در لینگو که بسیار مشابه لیندو است، می توان مسائل را به دو روش از طریق صفحه کلید ( ارتباط دو طرفه با کاربر ) و یا با استفاده از فایلهایی که در جای دیگر تولید شده اند ( که این فایلها یا خود شامل دستورات هستند و یا به عنوان بخشی از یک برنامه جامع ، دارای کدهای سفارشی و کتابخانه های بهینه سازی لینگو هستند )، وارد کامپیوتر کرد. در اینجا به روش اول، یعنی ارتباط دو طرفه با کاربر متمرکز می شویم. وارد کردن یک مدل در نسخه تحت ویندوز لینگو ، شبیه تایپ کردن در یک محیط پردازشگر متنی تحت ویندوز است ؛ چون وقتی در یک مدل داده تایپ می کنید، تقریبا باید آنچه را که به صورت دستی نوشته اید، وارد مدل کنید. کاربر می تواند اطلاعات ورودی خود را در پنجره ی داخلی که ابتدا تحت عنوان Lingo Model است، وارد کند. همچنین، لینگو شامل دستورات ابتدایی ویرایش برای بریدن ، کپی کردن و چسباندن یک متن است. این ابزار ها و سایر ویژگی ها، در منوی فرمانها موجود است که در ادامه مورد بررسی قرار می گیرد. لینگو نیازمند تابع هدف ، یک یا چند متغیر و یک یا چند محدودیت است. که بر خلاف لیندو، محدودیت های لینگو بعد از عبارات خاص از قبیل Subject to یا Such that نمی آید.

  7. در لینگو هر عبارت با یک “ ; “ پایان میابد؛ • هر گاه بخواهیم یک عبارت توضیحی به متن برنامه بیافزاییم کافیست در ابتدای عبارت از علامت تعجب( ! ) استفاده کنیم. این توضیحات نیز به “ ; “ ختم می شوند. کلیه عبارات متنی که مابین ( ! ) و “ ; “ نوشته می شوند از سوی لینگو نادیده گرفته می شوند؛ • لینگو به بزرگ یا کوچک بودن حروف حساس نیست ؛ • تابع هدف بسته به اینکه به صورت حداکثر سازی یا حداقل سازی باشد، به شکل “Max=…” یا “Min=…” نوشته می شود. • در آغاز نوشتن هر مدل، باید از دستور “Model:”استفاده کرد. سپس کلیه ارکان مدل شامل تعریف مجموعه ها، ورود داده ها، تابع هدف و محدودیت ها، نوشته خواهد شد و مدل با دستور “End”به پایان میرسد. دو دستور “Model:”و “End”نیازی به “ ; “ ندارند.

  8. می توانیم دو خط برنامه لینگو را در یک خط بیاوریم و یا یک خط آن را در دو سطر بیاوریم: • Max=100*standard • +150*turbo; • یا • Standard<=100;turbo<=120; • حتی می توانبم توضیحات را در وسط محدودیت ها بیاوریم: • X=Y+!Number of products;Q+2*C; • ( معادل X=Y+Q+2*C است )

  9. عملگرهای ریاضی حتما فراموش نشود؛ ( مخصوصا عملگر ضرب “ * “ ) • 2x+3y<=25 (اشتباه) • 2*x+3*y<=25 (درست) • اسامی متغیرها حتما با یک حرف شروع می شوند. بعد از آن می توان حرف ، رقم یا زیرخط ( _ ) استفاده کرد. اسم متغیرها نمی تواند بیشتر از 32 کاراکتر باشد. • استفاده از فاصله “ “ در اسم متغیر ها ممنوع است. • اگر بخواهیم به محدودیت اسمی اختصاص دهیم در ابتدای محدودیت اسم آن را در داخل علامت کروشه می آوریم و به صورت مقابل می نویسیم: [اسم محدودیت]

  10. Help لینگو یک راهنمای بسیار خوب برای استفاده بهتر از نرم افزار است. • هنگام حل مدل اگر ایرادی در آن وجود داشته باشد، نرم افزار پیغام خطا داده و مکان نما به اول سطری می رود که به نظر لینگو این خطا از آنجا ناشی شده است. • ممکن است در بعضی مواقع با وجود آنکه فکر می کنید مدلی که نوشته اید درست است؛ نرم افزار هنگام حل آن پیغام خطا بدهد . در این مواقع یک راه ساده آن است که یک صفحه جدید لینگو باز کرده و دستورات و عبارت هایی که در مدل نوشته اید را یکی یکی ، به صفحه جدید کپی کرده و هربار مدل جدید را اجرا کنید. با این کار در اکثر موارد به راحتی می توانید به اشکال برنامه پی ببرید.

  11. Matrix Picture:مدل را به صورت ماتریسی نمایش می دهد. Help Copy:متن انتخابی را در حافظه کپی می کند تا در جای دیگری قرار داده شود Cut:متن انتخابی را کرده، در حافظه نگه می دارد تا جای دیگری آن را قرار دهد Save:پنجره فعال را ذخیره می کند. می توانید داده های ورودی (یک مدل) ، یک پنجره گزارش یا یک پنجره فرمان را ذخیره کنید. Match Parenthesis:پرانتزهای بسته را که با پرانتزهای باز انتخاب شده، متناظر هستند، پیدا می کند Paste:محتوای حافظه (clipboard) را در جای انتخابی قرار می دهد Solve:مدل مربوط به پنجره فعال را برای حل به حل کننده لینگو می فرستد. Send to back:پنجره رویی را به پشت می فرستد Tile Windows:تمامی پنجره های باز را به گونه ای مرتب می کند که همگی فضای مساوی را در پنجره برنامه اشغال کنند Open:پرونده موجود را باز می کند، در جعبه های محاوره ای ( dialog box ) می توانید پرونده را از میان انواع مختلف پرونده ها و از مکانهای مختلف انتخاب کنید. Close All:تمامی پنجره های باز را می بندد Solution:گزینه هایی از گزارش حل را باز می کند، که امکان تعیین چگونگی ظاهر مورد نظر گزارش حل را فراهم می کنند. Undo:آخرین کار انجام شده را باز می گرداند. Option:امکان مشاهده و تغییر پارامترهای مختلفی را که در هنگام استفاده از لینگو درگیر هستند، فراهم می کند. Go to line:حرکت دادن Cursor (نشانگر صفحه کلید) به شماره خط دلخواه از پنجره فعال. Print:پنجره فعال را به چاپگر می فرستد Redo:برعکس عملیات Undo را انجام می دهد. Help Topics:راهنمای موضوعی،امکان جستجو نیز وجود دارد. New:پنجره جدید برای وارد کردن داده ها ایجاد می کند Find:جستجوی قسمتی از رشته متنی در پنجره فعال

  12. مثال شرکت داکوتا فرنیچر، تولید کننده میز تحریر، میز و صندلی است. تولید هر کدام از انواع مبلمان به الوار و دو نوع نیروی کار ماهر در دو زمینه نجاری و پرداخت نیاز دارد. انواع مبلمان به الوار و دو نوع نیروی کار ماهر در دو زمینه نجاری و پرداخت نیاز دارد. مقدار هر یک از منابع مورد نیاز برای تولید هر یک از انواع مبلمان در جدول ذیل آمده است : در حال حاضر، 48 فوت تخته از الوارها، 20 ساعت زمان پرداخت و 8 ساعت زمان نجاری موجود است. هر میز تحریر 60 دلار، میز 30 دلار و صندلی 20 دلار به فروش می رسد. با فرض اینکه منابع در دسترس به تازگی تدارک دیده شده باشند، شرکت داکوتا می خواهد کل سود خود را به حداکثر برساند.

  13. متغیر های تصمیم بصورت ذیل تعریف شده اند : • 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

  14. مدل بالا را به صورت زیر در پنجره 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 تصویر مدل بالا در برنامه:

  15. جواب مساله فوق در برنامه لینگو به صورت زیر می باشد:

  16. تحلیل جواب بدست آمده: • Objective value: 280.0000 • مشخص می کند که مقدار بهینه تابع هدف 280 است. • Value مقدار متغیر در جواب بهینه مدل خطی را می دهد. بنابراین جواب بهینه داکوتا تولید 2 میز تحریر، صفر میز، و 8 صندلی است. • Reduced Cost ضریب متغیر در سطر صفر جدول بهینه را می دهد (مسئله ماکزیمم سازی). • همانگونه که می دانید باید هزینه کاهش یافته هر متغیر پایه برابر صفر باشد. برای یک متغیر غیر پایه xj، هزینه کاهش یافته مقداری است که اگرxj، 1 واحد اضافه شود، به آن اندازه، جواب بهینه کاهش می یابد (درحالی که بقیه متغیرهای غیر پایه برابر صفر بمانند). • در خروجی لینگو برای مسئله داکوتا، هزینه کاهش یافته میز برابر 5 است. این یعنی اگر داکوتا بخواهد یک میز تولید کند، درآمد به اندازه 5 دلار کاهش خواهد یافت.

  17. در قسمت بعدی از خروجی یا Reportمحدودیت ها را مشاهده می کنید که در مقابل آن دو عبارت SlackorSurplus و DualPrice مشاهده می شود : • SlackorSurplus مقدار کمبود یا اضافی (مازاد) در جواب بهینه را نشان می دهد. بنابراین 24 فوت تخته الوار و 5 عدد میز به صورت مازاد وجود خواهد داشت. • DualPrice یا قیمت سایه مقداری است که اگر سمت راست محدودیت، یک واحد اضافه شود، به آن اندازه جواب بهینه، بهبود می یابد ( با فرض اینکه این تغییرات باعث از دست رفتن پایه بهینه فعلی نمی شوند ). اگر بعد از یک تغییر در طرف راست محدودیت، پایه فعلی دیگر بهینه نماند، قیمت های سایه محدودیت ها ممکن است تغییر کند.

  18. تحلیل حساسیت: پس از حل مدل توسط Solve با استفاده از گزینه Range موجود در منوی LINGO گزارش خروجی تحلیل حساسیت مدل را مشاهده می کنیم، در صورت مشاهده خطا وارد LINGO Option شده و گزینه Dual Computations از قسمت General Solver را در حالت سوم قرار دهید.در این مثال تحلیل حساسیت به این گونه است:

  19. تحلیل حساسیت نشان می دهد که ضرایب تابع تا چه میزان می توانند افزایش یا کاهش یابند بدون اینکه پایه بهینه مسئله (مجموعه متغیرهای غیر صفر) عوض شود. تحلیل حساسیت شامل دو بخش است، یکی مربوط به تابع هدف و دیگری مربوط به محدودیت ها، که در هر کدام به تفکیک مقدار واقعی و مقادیر کاهش و افزایش قید شده است. • در پایان با استفاده از گزینه Solution در منوی LINGO می توانید نمایش گرافیکی از هر یک از متغیرهای موجود در مدل را داشته باشید. مثلا Bar Graph برای صندلی:

  20. مثال2: Max z=7x1+14x2+20x3 s.t: x1<=25 x1+x2<=130 x1+x2+3x3<=50 7x1+14x2<=45 X1,x2,x3>=0 (محدودیت 1 یا s1 ) (محدودیت 2 یا s2 ) (محدودیت 3 یا s3 ) (محدودیت 4 یا s4 ) تصویر مدل در برنامه:

  21. جدول سیمپلکس بهینه مدل فوق: جواب مدل در برنامه لینگو:

  22. مثالی دیگر برای حداقل سازی: Min C=3x1+4x2 s.t: x1+2x2>=14 2x1+3x2>=12 X1,x2>=0 (محدودیت 1 ) (محدودیت 2 ) مدل در لینگو:

  23. جواب به صورت جدول سیمپلکس بهینه: جواب در برنامه لینگو:

  24. تحلیل حساسیت مثال فوق:

More Related