1 / 64

آموزش نرم افزار LINDO

بسمه تعالی. آموزش نرم افزار LINDO. تهیه کننده: یاسرقربان زاد. معرفي.

willem
Télécharger la présentation

آموزش نرم افزار LINDO

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. بسمه تعالی آموزش نرم افزارLINDO تهیه کننده: یاسرقربان زاد

  2. معرفي نرم افزار lindo 5.0 بر خلاف نرم افزارهاي منويي ( QSBيا STORM) يك نرم افزار دستوري است كه قدرتي قابل قبول براي حل مسائل نسبتاً بزرگ دارد و نسخه فعلي آن تا 16000 متغير را (البته با برخي شرايط) حل مي كند.ممكن است كه اوايل كارباlindo كمي خسته بشويد،ولي پس از مدتي آن را بر نرم افزار هاي آسان وكم قدرت ترجيح خواهيد داد. LINDO محصول شركت LINDO systems مي باشد.

  3. کاربرد LINDO ابزاری ساده برای بکار گرفتن قدرت بهینه سازی خطی و غیر خطی جهت فرموله کردن مسائل بزرگ به صورت مختصر، حل و آنالیز می باشد. این نرم افزار در نسخه های مختلف خود (Lindo /386 , super , student ) می تواند مسائل برنامه ریزی خطی،برنامه ریزی عدد صحیح،مختلط،برنامه ریزی صفر و یک و برنامه ریزی کوادراتیک را حل کند.

  4. قابلیت های نسخه های مختلف lindo Lindo 386: این نرم افزار میتواند مسئله ای با 16000 متغیر غیر صفر ،100 متغیر صحیح و ماتریس صحیح و ماتریس 100*200 را بپذیرد. Lindo/student: نرم افزاری که می تواند مسائل را با 300 متغیر غیر صفر ،100 متغیر صحیح و ماتریسی با 120 ستون و 60 سطر را قبول کند. Super lindo: این نرم افزار هم مسائلی با 8000 متغیر غیر صفر ،100 متغیر صحیح و ماتریسی با 120 ستون و 60 سطر را بپذیرد.

  5. طریقه نصب نرم افزار lindo برای نصب درایور نصب برنامه را داخل cd-rom می گذاریم . مراحل نصب را با تصویردر زیر نشان داده ایم :

  6. باز کردن برنامه لیندو

  7. با باز کردن لیندو این صفحه در مقابل شما ظاهر می شود

  8. این نرم افزار دارای گزینه های متعددی است که شباهت بسیار زیادی به نرم افزار های دیگر دارد در اینجا ما به توضیح گزینه های پر کاربرد می پردازیم :

  9. منوی file Log out put: تمامی زیر پنجره های عملیات را که در حالت معمولی به پنجره گزارش فرستاده می شود به یک فایل نوشتاری ارسال می کند. وقتی محل پرونده نوشتاری را تعیین گردید علامتی در کنار این فرمان در منوی فایل ظاهر خواهد شد. برای غیر فعال کردن این فرمان می توانید مجددا این گزینه را انتخاب کنید.

  10. Take command: برای انجام عملیات بصورت خودکار یک فایل بسته ای لیندو را همراه با فرمان ها و متن وارد حافظه می کند.یک مدل می تواند در حافظه قرار گیرد ،حل شود و نتیجه حل آن در یک پنجره گزارش قرار گرفته و در یک فایل ذخیره شود .اگر یک فرمان بسته ای را قبل از شروع متن بکار برید،مدل و دستورات موجود در فایل،در پنجره گزارش و در حل دیده می شود.

  11. Date: نشان دادن تاریخ و زمان جاری

  12. Time: نشان دهنده مدت زمانی است که نرم افزار اجرا شده است.

  13. License: دادن کلمه عبور جدید جهت به روز رسانی سیستم و آزاد شدن نرم افزار

  14. منوی edit Go to line: با این دستور می توان نشانگر را به خط دلخواهی در صفحه هدایت کرد.

  15. Clear all: جهت پاک کردن کل مدل و تمام صفحه فرمان بکار میرود.

  16. Choose new font: این گزینه برای انتخاب فونتهای مختلف جهت نگارش است .

  17. منوی solve: Solve: مدل مربوط به پنجره فعال را برای حل ،به حل کننده لیندو می فرستد.

  18. Debug: خطاهای موجود در مدل را یافته و توضیح میدهد.

  19. منویreport Range: یک گزارش تحلیل حساسیت ارائه می کند. این گزارش نشان میدهد که تغییرات ضرائب می تواند در چه محدوده ای باشد،بدون اینکه مقادیر بهینه عوض شود.

  20. Picture: مدل را به صورت ماتریسی نمایش می دهد.

  21. منوی window: Command window: امکان دسترسی به رابط کاربر با خط فرمان لیندو را فراهم می آورد. در این جا می توان فرمان را در مقابل علامت : وارد کرد.

  22. Status window: پنجره وضعیت حل کننده لیندو را نمایش دهنده اطلاعاتی در مورد وضعیت بهینه سازی از قبیل تصاد تکرارها و زبان اجرای صرف شده است.

  23. Tile: تمامی پنجره های باز را به گونه ای مرتب می کند که همگی فضای مساوی را در پنجره برنامه اشغال کنند.

  24. Cascade: تمام پنجره های باز را به صورت آبشاری از سمت چپ بالا تا سمت راست پایین مرتب کرده و پنجرهفعال را نیز در بالا قرار میدهد.

  25. Arrang Icons: آیکونهای را که نشان پنجره های کوچک شده استدر امتداد چایین صفحه نمایش مرتب می کند.

  26. اصول اولیه مدل نویسی در لیندو 1-لیندو نسبت به حروف کوچک و بزرگ حروف حساس نیست 2-می توانیم دو خط برنامه را در یک خط و یک خط را در دو خط بیاوریم. 3-اسم متغیر ها از 8 کاراکتر بیشتر نباشد و با عدد هم آغاز نشود. 4-برخلاف لینگو علامت * بین ضریب و متغییر نیازی نیست . 5- RHS همیشه سمت راست محدودیت ها باشند. 6-از علامت ! برای یادداشت گذاری در مدل استفاده می شود. 7-پیش فرض متغیرها مثبت است و نیازی به فرض Xi>0 در آخر مدل نیست. نمونه: همانطور که می بینید بین فرمان MAX وتابع علامت = نیازی نیست. MAX 2X + 3Y ST 4X + 5Y < 9 7X + 6Y < 13 END

  27. شروع کار با لیندو جهت شروع کار با لیندو از منویWindows گزینه Open command را انتخاب می کنیم تا صفحه فرمان لیندو باز شود. الف) جلوی (:) فرمان help یاh را تایپ کنید. :help - این فرمان اطلاعاتی را درباره اینکه lindo توانایی حل چه مسائلی را دارد و اینکه مدلها در لیندو به چه شکلی باید نوشته شوند و قابلیت دریافت چه نوع متغییرهایی را با چه تعداد دارند را به ما گزارش می دهد. ضمنا ما را راهنمایی می کند که چگونه بقیه فرامین لیندو را شناسایی کنیم و بتوانیم کاربرد هر کدام از آنها را ببینیم. مثال: help time (اطلاعاتی در موردtime می دهد)

  28. ب) دستور com را تایپ کنید. :com - این دستور کلیه 64 دستور موجود در لیندو را در 11 طبقه نشان می دهد که در این قسمت به بررسی و توضیح تعدادی از این دستورات از هر طبقه می پردازیم. 1. help: این فرمان از طبقه information است که با کاربرد لن آشنا شدیم. 2. com: این فرمان هم از طبقه اول یعن جزو فرمانهای اطلاعاتی است که با آن هم آشنا شدیم. 3. local: ورزن لیندوی مورد استفاده را نشان می دهد. 4. cat: این فرمان هم مانند دستورcom فرامین را نشان می دهد بااین تفتوت که بعد از دستورcom و enter کردن باید جلوی علامت سوال هر طبقه ای را از یک یا یازده که نیاز است تایپ کرد تا فرامین همان طبقه را نشان دهد.

  29. نکته: فرامین جلوی (:) تایپ می شوند وهرگاه در خط ؟ ظاهرشد فرمان تمام نشده است و ادامه دارد. 5. time:این فرمان هم از فرامین اطلاعاتی است که از منوی فایل هم قابل دسترسی است و زمان استفاده از لیندو را نمایش می دهد. 6. date:از طبقه فرامین اطلاعاتی و از منوی فایل هم قابل دسترسی است و زمان و تاریخ جاری را نشان می دهد. 7. min , max: از فرامین مهم لیندو و از طبقه ورودی است که برای نوشتن مدلها استفاده می شود. تابع هدف:max (min) ? St محدودیت ها ? ? End

  30. 8. retr: این فرمان همانsave az است که ازمنوی فایل هم قابل دسترسی است. 9. rmps: یک فرمان ورودی است جهت آوردن فایلی که با فرمت mps ذخیره شده است البته از منویfile گزینه open و انتخاب فرمت mps هم می توان این کار را انجام داد. 10. take: یک فرمان ورودی است جهت آوردن فایلهای ذخیره شده. 11. pic: این فرمان از طیقه سوم که فرمانهای نمایشی می باشند و تصویری از ضرائب متغییرها را بصورت ماتریسی نمایش می دهد که این فرمان از منویreport هم قابل دسترسی است. 12. table: جدول سیمپلکس مدل را نشان می دهد. 13. look: دستور نمایشی است برای مشاهده کل مدل در صفحه ویا سطری از مدل که مد نظر است.

  31. 14. nonz: دستور دیگری از طبقه سوم(نمایشی) که یک گزارش کوتاه شامل متغییرهای غیر صفر می دهد. 15. shoc:فرمانی است که برای نشان دادن یک متغییر خاص استفاده میشود. ضرائب متغییر نام متغییر shoc + 16. rang: فرمان طبقه سوم فرامین لیندو که تجزیه و تحلیل حساسیت biها و ciها را نمایش می دهد. ضمنا این فرمان از منوی report هم قابل دسترسی است. 17. lklc: مدل نوشته شده را در فرمت مدل نویسی لینگو نمایش می دهد. 18. save: از طبقه چهارم فرامین لیندو است که جهت ذخیره مدل مورد نظر استفاده می شود که از منوی فایل هم قابل دسترسی است و فایل ذخیره شده با فرمان retr قابل بازیابی است.

  32. 19. dire: تمام تغییرات که در مدل می دهیم را در یک فایل ثبت می کند و در صفحه نمایش نمی آید که تاثیر dire با فرمان retr از بین رود. 20. smps: این فرمان مدل را با فرمت mps ذخیره می کند که با rmps قابل بازیابی است. 21. go: این فرمان از فرمانهای حل مدل است که بعد از اجرای این دستور و حل مدل می توان با پاسخ yes به سوال پرسیده شده از نرم افزار به تجزیه و تحلیل حساسیت مدل پرداخت. 22. pir: دستور پاشنه گردی که مدل را مرحله به مرحله حل می کند مثلا با ورود pir +1 مرحله اول حل مدل را نشان می دهد و بیان می کند که کدام متغییر وارد پایه و کدامیک خارج شده است و مقدار بهینه چقدر است. 23. alt: یکی از فرامین طبقه ششم جهت ویرایش مدل است که بوسیله آن می توان ضرائب هر متغییری در هر سطری را تغییر داد.

  33. 24. ext: جهت ورود یک محدودیت جدید به مدل از این فرمان استفاده می شود. 25. del: جهت حذف یک محدودیت از مدل بکار برده می شود. 26. free: جهت نشان دادن متغییر که آزاد در عملیات در نظر گرفته شود. متغییر آزاد در عملیات نام متغییر free + 27. slb: جهت نمایش کران پایین برای متغییر. x => 15slb * 15 28. sub: این فرمان برای نشان دادن کران بالا برای متغییر بکار می رود. y <= 8 sub y 8

  34. 29. quit: از طبقه هفتم فرامین جهت خروج از برنامه لیندو استفاده می شود. 30. gin: این فرمان از طبقه هشتم که متغییر را عدد صحیح در نظر می گیرد. gin x xعدد صحیح 31. int: بالین فرمان متغییر مذکور 1 و 0 در نظر گرفته می شود. 1 یا 0 xint x 32. debug: این فرمان جهت اشکال زدائی از مدل است که در فایل slove هم قابل دسترسی است.

  35. مراحل کار در لیندو • مدل را با فرمت لیندو وارد مدل کنید. • فرمان lklg رااجرا کنید.(مدل را در فرمت لینگو نمایش می دهد) • دستور go را نوشته و خروجی را مشاهده و تحلیل کنید. • برای آنالیز حساسیت yes کنید.(تجزیه و تحلیل حساسیت biها و ciها را نشان می دهد) • Pir1 و pir2 را انجام دهید. • فرمان table را انجام دهید.(در این فرمان جدول سیمپلکس مدل را نشان می دهد) • فرمان look all را انجام دهید.(مدل جاری را برای شما نمایش می دهد) • فرمان pic را انجام دهید.

  36. فرمان rang را انجام دهید.(بدون اینکه مدل را حل کنیدآنالیز حساسیت را می دهد) • نام متغییر + shoc که ضرائب یک متغییر خاص را نشان می دهد. • فرمان del را اجرا و محدودیت سوم را حذف کنید. • فرمان ext را اجرا و محدودیت سوم را وارد کنید. • با دستور alt ضریب متغییر x2 در محدودیت دوم را تغییر دهید. • فرمان slb x1 3 و sub x2 7 را انجام دهید و نتیجه را با انجام فرمان look all مشاهده کنید. • فرمان int x1 و gin x2 را انجام داده و نتیجه را مشاهده کنید. • فرمان free x1 را انجام دهید و نتیجه را مشاهده کنید.

  37. اكنون به صورت قدم به قدم مثالي را حل مي كنيم تا با اين نرم افزار آشنا شويد : • مثال – مدل خطي زير را در نظر بگيريد : • MIN x+y • St • x-y = 10 • x + 2y >= 0 • x,y>= 0 براي وارد كردن اين مدل در LINDO كافيست كه عيناً متن بالا را تايپ كنيد.

  38. - به جاي ST مي توان SUBJECT TOنوشت. - نام متغير ها مي تواند تا 8 نويسه باشد و به سطرها هم مي توانيد نام تخصيص دهيد . - بعد از اولين علامت : علامت ? ظاهر مي شود. - از آنجا كه پيش فرض متغيرها مثبت است ، لازم نيست خط x , y>= 0 تايپ شود. - بهتر است كه ضرايب را واضح بنويسيد ؛ مثلاً به جاي 10(3x + 4y ) بنويسيد 30x + 40y - RHSحتماً بايد عددي باشد . پس اگر مدلي چنين نبود ، بايد متغيرها را به سمت چپ و اعداد را به سمت راست ببريد . - نبايد از علامت ضرب (*) ، بين ضريب و متغير استفاده شود.

  39. LINDO به شما امكان يادداشت گذاريدر مسأله مي دهد. براي اين كار كافي است كه علامت ! را گذاشته ، متن مورد نظرتان را جلوي آن بنويسيد. اگر تابع هدف بيش از يك خط باشد چه بايد كرد؟ بايد به نحوي خط را به پايان برسانيم كه مشخص نباشد هنوز ادامه دارد ؛ پس ، بايد در انتهاي خط بسته به علامت متغير بعدي ، + يا – بگذاريم .

  40. مثال1 شرکت بتن از 3کارخانه به 3مقصد که هزینه هرواحد بتن را در جدول دادیم داده شده است.این مدل را حل کنید و هزینه فرصت و دامنه ضرائب تابع هدف را بدست آورید؟ جدول اولیه حمل و نقل را تشکیل داده وبایکی از روشهای lcm وگوشه شمال غربی و حداقل سطر و یاحداقل ستون مقداردهی می کنیم البته ما از روش lcm یعنی حداقل هزینه استفاده کردیم: 8 5 6 15 10 12 3 9 10

  41. حال با یکی از روشهای پله سنگی یا سیستم توزیع تعدیل شده باید این جدول را بهینه کنیم که ما از روش سیستم توزیع تعدیل شده استفاده کرده و به جدول نهایی می رسیم: 8 5 6 15 10 12 3 5 10 هزینه فرصت (Reduced cost) برای متغییرهای پایه ای صفر است. هزینه فرصت برای متغییرهای غیر پایه به شرح زیر است: C12= 5-6+12-10=1 C21= 15-8+6-12=1 C32= 9-3+8-6+12-10=10 C33= 10-3+8-6=9

  42. دامنه Cij ها : اگر متغییر پایه ای باشد مانند X13 کاهش و افزایش هم بدین ترتیب است که یک مقداری را به ضریب اضافه می کنیم وبرای متغیر غیر پایه می نویسیم. برای X12 می نویسیم: 1<55-16 >= 017-5-6-5+12-10 >= 0 یعنی 5 < C13 < 7 و بدین ترتیب برای تمام Cij ها آنالیز حساسیت را انجام می دهیم. مدل حمل ونقل را با 9 متغییر(n*m) و 6 محدودیت(m+n) وارد نرم افزار لیندو کرده و آن را حل می کنیم و آنالیز حساسیت را انجام می دهیم:

More Related