کاربرد کامپیوتر در مهندسی صنایع
در نمایش آنلاین پاورپوینت، ممکن است بعضی علائم، اعداد و حتی فونتها به خوبی نمایش داده نشود. این مشکل در فایل اصلی پاورپوینت وجود ندارد.
- جزئیات
- امتیاز و نظرات
- متن پاورپوینت
برچسبهای مرتبط
- GAMS
- GINO
- LINDO
- Lingo
- QSB
- TORA
- آشنایی با لینگو
- آشنایی با نرم افزار
- پاورپوینت
- پاورپوینت رایگان
- پاورپوینت کاربرد کامپیوتر در مهندسی صنایع (Bar Codes & Automatic Data Capture)
- پژوهش عملیاتی
- تحقیق در عملیات
- دانلود پاورپوینت
- دانلود پاورپوینت رایگان
- دانلود رایگان پاورپوینت
- رایانه
- شبیه سازی
- صنایع
- کاربرد رایانه
- کاربرد کامپیوتر
- کامپیوتر
- لینگو چیست
- مدل
- مدل سازی
- معرفی نرم افزار لینگو
- مهندسی صنایع
- نرم افزار
- نرم افزار پژوهش عملیاتی
- نرم افزار تحقیق در عملیات
- نرم افزار لینگو
امتیاز
کاربرد کامپیوتر در مهندسی صنایع
اسلاید 1: به نام خدالینگو
اسلاید 2: ارائه دهنده:پویا حسین پورحامد سلیم زادهسهند امینی کاربرد کامپیوتر در مهندسی صنایعدکتر جمال شهرابی
اسلاید 3: فهرست مطالببخش اول : معرفی نرم افزاربخش دوم : آغاز کار با لینگوبخش سوم : حل مسائل
اسلاید 4: بخش اول « معرفی نرم افزار » مقدمه ای بر لینگو نرم افزارهای مشابه و ویژگی های لینگو لینگو چیست ؟
اسلاید 5: مقدمه ای بر لینگو بسته های نرم افزاری لیندو و لینگو توسط شرکت لیندو سیستمز(1) برای حل مسائل بهینه سازی در دانشگاه، صنعت و تجارت، طراحی گردیده است. دو محصول فوق همراه با کتاب تحقیق در عملیات : کاربرد ها و الگوریتم ها (1994)(2) و کتاب مقدمه ای بر برنامه ریزی ریاضی : کاربرد ها و الگوریتم ها (1995)(3) که توسط پروفسور واین ال. وینستون(4) نگاشته شده است، تشریح گردیده اند.1) Lindo Systems, Inc.2) Operations Research : Applications and Algorithms (1994)3) Introduction to Mathematical Programming : Application and Algorithms (1995) 4) Wayne L.Winston
اسلاید 6: امروزه بسیاری از مدل های بهینه سازی تحقیق در عملیات اعم از مدل های خطی، غیر خطی و یا عدد صحیح به مدد نرم افزارهای کامپیوتری به سادگی قابل تجزیه و تحلیل می باشند. در این میان می توان از نرم افزارهایی چون GAMS، GINO، LINDO، LINGO، QSB و TORA نام برد.نرم افزارهای مشابه
اسلاید 7: LINGO بعد از GAMS قوی ترین نرم افزار تحقیق در عملیات می باشد. از جمله برتری های لینگو نسبت به LINDO یا GAMS ، قدرت آن در مدل سازی تمام مسائلی است که توسط لیندو مدل شده اند، بدون این که نیازی به تعیین نوع مدل توسط کاربر باشد، در حالی که LINDO یا GAMS چنین قابلیتی را دارا نمی باشد. یکی دیگر از قابلیت های مهم لینگو برخورداری از Helpی بسیار قوی، ساده و کامل می باشد. به گونه ای که با استفاده از Help آن می توان تا حد زیادی بر این نرم افزار مسلط شد .
اسلاید 8: ویژگیهای بارز لینگو قابلیت مدل سازی بصورت کارا و صحیح؛ قابلیت بالای تحلیل مدل؛ دارا بودن توابع مختلف ریاضی، آماری و احتمالی؛ قابلیت خواندن اطلاعات از File ها و Worksheet های دیگر؛ کار کردن در محیط Windows.
اسلاید 9: لینگو چیست ؟تعریف اول : راهنمای PDF لینگو :لینگو ابزاری ساده برای بهره گیری از قدرت برنامه ریزی خطی و غیر خطی در فرموله کردن مسائل خیلی بزرگ به صورت مختصر و تجزیه و تحلیل آنهاست. بهینه سازی به شما کمک می کند تا جوابی را با بیشترین سود، خروجی، یا رضایتمندی و یا جوابی با کمترین هزینه، تلفات یا ناراحتی بدست آورید. اغلب این مسائل با استفاده موثر از منابعی همچون پول، زمان، ماشین، نیروی کار، موجودی و ... در ارتباط است.
اسلاید 10: مسائل بهینه سازی اغلب به خطی و غیر خطی تقسیم می شوند، که این تقسیم بندی با توجه به رابطه متغیرهاست؛ بدین معنی که اگر رابطه همه متغیرها با هم خطی باشد، مسئله را خطی و در غیر اینصورت غیر خطی می گویند.لینگو زبانی جامع و فراگیر جهت تسهیل تمام مدل های بهینه سازی از مسائل تحقیق در عملیات گرفته تا اقتصاد مهندسی، شبیه سازی، کنترل کیفیت، کنترل پروژه و کنترل موجودی می باشد.
اسلاید 11: تعریف دوم : کتاب تحقیق در عملیات واین ال. وینستون :لینگو یک بسته نرم افزاری با امکان برقراری ارتباط دو طرفه با کاربر است و از آن می توان در حل مسائل خطی، عدد صحیح و غیر خطی کمک گرفت. استفاده از این نرم افزار وضعیت مشابهی مانند لیندو دارد، اما از انعطاف بیشتری در بیان مدل برخوردار است. بر خلاف لیندو، لینگو امکان استفاده از پرانتزها و متغیرها را در سمت راست معادله فراهم می آورد. بنابراین، محدودیت ها را می توان به صورت اولیه، بدون نیاز به تبدیل آن به ساختار استاندارد (آوردن مقادیر ثابت به سمت راست) نوشت. همچنین لینگو دارای یک کتابخانه بزرگ از توابع ریاضی، آماری و احتمالی بوده و قدرت بالای آن در خواندن اطلاعات از فایل های خارجی و نرم افزارهای صفحه گسترده است.
اسلاید 12: بخش دوم « آغاز کار با لینگو » نصب نرم افزار اصول اولیه در لینگو محیط نرم افزار پیاده سازی مدل در لینگو
اسلاید 13: نصب نرم افزارنصب لینگو به راحتی انجام می گیرد و همانند بسیاری از نرم افزارهای تحت سیستم عامل Windows می باشد. تنها نکته ای که در نصب می توان به آن اشاره کرد فضای مورد نیاز در روی دیسک سخت می باشد که 40MB است. برای دریافت نرم افزار می توانید به سایت لینگو مراجعه کنید.
اسلاید 14: اصول اولیه در لینگوبرای حل مسائل در لینگو که بسیار مشابه لیندو است، می توان مسائل را به سه روش از طریق صفحه کلید و در ارتباطی دو طرفه با کاربر و یا با استفاده از فایل هایی که در جای دیگر تولید شده اند (که این فایل ها یا خود شامل دستورات هستند و یا به عنوان بخشی از یک برنامه جامع، دارای کدهای سفارشی و کتابخانه های بهینه سازی لینگو هستند)، وارد کامپیوتر کرد. در اینجا به روش اول، یعنی ارتباط دو طرفه با کاربر متمرکز می شویم.
اسلاید 15: وارد کردن یک مدل در نسخه تحت ویندوز لینگو، شبیه تایپ کردن در یک محیط پردازشگر متنی تحت ویندوز است؛ چون وقتی در یک مدل داده تایپ می کنید، تقریبا باید آنچه را که به صورت دستی نوشته اید، وارد مدل کنید. کاربر می تواند اطلاعات ورودی خود را در پنجره ی داخلی که ابتدا تحت عنوان Lingo Model است، وارد کند. همچنین، لینگو شامل دستورات ابتدایی ویرایش برای بریدن، کپی کردن و چسباندن یک متن است. این ابزارها و سایر ویژگی ها، در منوی فرمان ها موجود است که در ادامه مورد بررسی قرار می گیرد.
اسلاید 16: عناصر مورد نیاز در لینگو مشابه لیندو است. لینگو نیازمند تابع هدف، یک یا چند متغیر و یک یا چند محدودیت است. بر خلاف لیندو، محدودیت های لینگو بعد از عبارات خاص از قبیل SUBJECT TO یا SUCH THAT نمی آیند.
اسلاید 17: اصول اولیه مدل نویسی در لینگو در لینگو هر عبارت با یک “ ; ” پایان می یابد؛ هرگاه بخواهیم یک عبارت توضیحی به متن برنامه بیافزاییم کافیست در ابتدای عبارت از علامت تعجب ( ! ) استفاده کنیم. این توضیحات نیز به “ ; ” ختم می شوند؛ کلیه عبارات متنی که مابین ( ! ) و “ ; ” نوشته می شوند از سوی لینگو نادیده گرفته می شوند؛ لینگو به بزرگ یا کوچک بودن حروف حساس نیست؛
اسلاید 18: می توانیم دو خط برنامه لینگو را در یک خط بیاوریم و یا یک خط آن را در دو سطر بیاوریم:Max = 100 * Standard + 150 * Turbo;یاStandard <= 100;Turbo <= 120; حتی می توانیم توضیحات را در وسط محدودیت ها بیاوریم:X = Y + !Number of Products; Q + 2 * C;( معادل X = Y + Q + 2 * C است )
اسلاید 19: عملگرهای ریاضی حتما فراموش نشود؛ ( مخصوصا عملگر ضرب “ * “ )2X + 3Y <= 25(اشتباه)2 * X + 3 * Y <= 25(درست)اسامی متغیرها حتما با یک حرف شروع می شوند. بعد از آن می توان حرف، رقم یا زیر خط ( _ ) استفاده کرد. اسم متغیرها نمی تواند بیشتر از 32 کاراکتر باشد؛استفاده از فاصله “ “ ( فاصله ) در اسم متغیر ها ممنوع است؛
اسلاید 20: علائم ساده ریاضی، توان ( ^ )، ضرب ( * )، تقسیم ( / )، جمع ( + ) و تفریق ( - ) با همین ترتیب اولویت معتبرند؛اگر بخواهیم به محدودیت اسمی اختصاص دهیم در ابتدای محدودیت اسم آن را در داخل علامت کروشه می آوریم؛ و به صورت مقابل می نویسیم : ]اسم محدودیت[Help لینگو یک راهنمای بسیار خوب برای استفاده بهتر از نرم افزار است. از آن بهره بگیرید!
اسلاید 21: هنگام حل مدل اگر ایرادی در آن وجود داشته باشد، نرم افزار پیغام خطا داده و مکان نما به اول سطری می رود که به نظر لینگو این خطا از آنجا ناشی شده است؛ممکن است در بعضی مواقع با وجود آنکه فکر می کنید مدلی که نوشته اید درست است، نرم افزار هنگام حل آن پیغام خطا بدهد. در این مواقع یک راه ساده آن است که یک صفحه جدید لینگو باز کرده و دستورات و عبارت هایی که در مدل نوشته اید را یکی یکی، به صفحه ی جدید کپی کرده و هر بار مدل جدید را اجرا کنید. با این کار در اکثر موارد به راحتی می توانید به اشکال برنامه پی ببرید.
اسلاید 22: محیط نرم افزارنرم افزار لینگو از سه بخش کلی منوها، Toolbar و پنجره ی مدل نویسی تشکیل شده است.منوهای نرم افزار به ترتیب زیر می باشد :File; Edit; LINGO; Window; Helpمنویی که بیشتر به چشم آمده و در واقع منوی اصلی نرم افزار می باشد منوی LINGO ست، با سایر منوها که در نرم افزارهای تحت سیستم عامل Windows عموماَ موجود می باشند پیشتر آشنا هستید.Toolbar شامل ابزارهای Shortcut (میانبر) موجود در منوها می باشد.پنجره ی مدل نویسی محل پیاده سازی مسئله ی بهینه سازی فرموله شده طبق قواعد لینگوست.
اسلاید 23: Toolbarهنگامی که نرم افزار لینگو را اجرا می کنید، صفحه ای مطابق شکل نمایش داده می شود، همان طور که مشاهده می کنید، کلید هایی برای استفاده کاربر در نظر گرفته شده که در واقع هر کدام از آنها یک کلید میان بر، برای گزینه ی مرتبط در یکی از منوهای لینگو می باشد .هنگامی که هیچ صفحه ای در لینگو باز نباشد، بسیاری از کلیدها غیر فعال هستند. اما با باز کردن یک برنامه به زبان لینگو و اجرای آن تقریبا همه این کلیدها فعال می شوند. برای آشنایی بیشتر با هر کدام از این کلیدها، در ارتباط با هر کدام به اختصار توضیح می دهیم. پنجره ی مدل نویسیMenus
اسلاید 24: ToolbarکلیدکاربردUndoکلید میان بر گزینه Undo از منوی Edit می باشد.Redoکلید میان بر گزینه Redo از منوی Edit می باشد.کلیدکاربردFindکلید میان بر گزینه Find از منوی Edit می باشد.Go To Lineکلید میان بر گزینه Go To Line از منوی Edit می باشد.Math Parenthesisکلید میان بر گزینه Math Parenthesis از منوی Edit می باشد.کلیدکاربردSolveکلید میان بر گزینه Solve از منوی Lingo می باشد.Solutionکلید میان بر گزینه Solution از منوی Lingo می باشد.Matrix Pictureکلید میان بر گزینه Matrix Picture از منوی Lingo می باشد.Optionsکلید میان بر گزینه Options از منوی Lingo می باشد.کلیدکاربردSend To Backکلید میان بر گزینه Send To Back از منوی Window می باشد.Close Allکلید میان بر گزینه Close All از منوی Window می باشد.Tile Windowsکلید میان بر گزینه Tile Windows از منوی Window می باشد.کلیدکاربردHelp Topicsکلید جستجو و کلیک برای Help می باشد.Helpکلید میان بر از منوی Help می باشد.
اسلاید 25: Menus (File Menu)
اسلاید 26: Menus (Edit Menu)
اسلاید 27: Menus (LINGO Menu)
اسلاید 28: Menus (Window Menu)
اسلاید 29: Menus (Help Menu)
اسلاید 30: پنجره مدل نویسی( Lingo Model )لینگو زبان برنامه نویسی خاص خود را دارد، همانند زبان های برنامه نویسی دیگر لینگو نیز دارای اصول و قواعد نگارشی و منطقی در برنامه نویسی می باشد، با استفاده از Help جامع نرم افزار و همچنین با بهره گیری از پیغام های خطا و سعی در رفع آنها می توان به تدریج بر آن مسلط شد. پنجره ی برنامه نویسی را در زیر مشاهده می کنید :
اسلاید 31: پیاده سازی مدل در لینگو توسعه ی یک مدل بهینه سازییک شرکت کامپیوتری دو نوع کامپیوتر استاندارد و توربو تولید می کند. سود هر کامپیوتر استاندارد برای این شرکت $100 و هر دستگاه توربو برابر $150 است. در شرکت، خط تولید کامپیوتر استاندارد حادکثر تا 100 دستگاه در روز می تواند تولید کند. همچنین حداکثر توان تولید خط توربو برابر 120 دستگاه در روز اعلام شده است. شرکت نیروی کار محدود 160 نفر ساعت در هر روز در اختیار دارد. کامپیوترهای استاندارد یک ساعت نیروی کار لازم دارند در حالی که کامپیوترهای توربو 2 ساعت نیروی کار نیاز دارند. مساله ای که شرکت با آن روبروست این است که ترکیبی از کامپیوترهای استاندارد و توربو را برای تولید انتخاب کند که سودش را بیشینه کند در حالی که از محدودیت های توان خطوط تولید و ظرفیت نیروی کار تجاوز نکند.
اسلاید 32: یک مدل بهینه سازی شامل موارد زیر است : تابع هدف – فرمولی است که دقیقا آنچه را که می خواهید بهینه کنید، بیان می کند. در مدل های مربوط به کسب و کار این یک تابع سود است که می خواهید آن را بیشینه کنید و یا یک تابع هزینه است که می خواهید آن را کمینه کنید. مدل ها ممکن است حداکثر یک تابع هدف داشته باشد. در مثالی که داریم، تابع هدف، سود شرکت را به صورت تابعی از خروجی کامپیوترهای استاندارد و توربو محاسبه می کند.
اسلاید 33: متغیرها – کمیت هایی هستند که تحت کنترل شما هستند و شما باید تصمیم بگیرید که بهترین مقادیر این متغیر ها کدامند؛ به همین دلیل گاها به آنها متغیر های تصمیم گیری نیز می گویند. هدف بهینه سازی یافتن مقادیری برای متغیرهای مدل است که با توجه به همه شرایط محدود کننده که روی متغیرها اعمال می شوند، بهترین مقدار را برای تابع هدف تولید کنند. در این مثال ما دو متغیر تصمیم گیری یکی مربوط به تعداد کامپیوترهای استاندارد و دیگری مربوط به تعداد کامپیوترهای توربو داریم.
اسلاید 34: محدودیت ها – تقریبا بدون استثنا، برخی محدودیت ها برای مقادیری که متغیرها می توانند اتخاذ کنند خواهد بود. حداقل یک منبع محدود خواهد بود. (برای مثال زمان، مواد اولیه، بودجه دپارتمان شما و ...) این محدودیت ها به وسیله توابعی از متغیرهای مدل بیان می شوند. این فرمول ها به عنوان محدودیت شناخته می شود، چون مقادیری را که متغیرها می توانند بگیرند، محدود می کنند.
اسلاید 35: در این مثال ما برای هر خط تولید یک محدودیت و برای کل نیروی کار استفاده شده نیز یک محدودیت داریم.متغیرهای Standard و Turbo را به عنوان تعداد کامپیوترهای استاندارد و توربو که شرکت می خواهد تولید کند در نظر می گیریم. هدف شرکت بیشینه کردن سود کل است که این سود برابر مجموع سود حاصل از کامپیوترهای استاندارد و توربو است :Max = 100 * Standard + 150 * Turbo;
اسلاید 36: حال محدودیت مربوط به ظرفیت خطوط تولید را اعمال می کنیم :Standard <= 100;Turbo <= 120;محدودیت مربوط به نیروی کار نیز بصورت زیر است :! Our labor supply is limited;Standard + 2 * Turbo<= 160;
اسلاید 37: همانند اکثر زبان های برنامه نویسی، هر برنامه ی لینگو نیز دارای یک ساختار کلی می باشد. در این قسمت قالب اصلی یک برنامه به زبان لینگو را معرفی می کنیم، تا خواننده دیدی کلی از آن بدست آورد. آنچه در این فصل می بایست مورد توجه قرار گیرد اصول کلی است که بدان پرداخته شده است؛ در فصل های بعدی مطالب با تفصیل بیشتری مطرح خواهند شد.توسعه مدل بهینه سازی در لینگو
اسلاید 38: یک برنامه در لینگو با کلمه “Model” آغاز و به کلمه “End” ختم می شود و معمولا از چهار بخش زیر تشکیل می شود : بخش مجموعه ها؛ بخش داده ها؛ تابع هدف؛ بخش محدودیت ها؛همچنین می توان در یک برنامه، تابع هدف را بعد از نوشتن محدودیت ها آورد.
اسلاید 39: مجموعه ها در لینگو مجموعه ها در لینگو در واقع قالبی برای تعریف متغیرهای برنامه می باشند (این متغیرها می توانند متغیر تصمیم گیری و یا پارامترهای عددی مدل باشند). در لینگو دو نوع مجموعه داریم :مجموعه های مستقل؛ Primitive Sets مجموعه های وارث ؛ Derived Sets مجموعه های مستقل برای تعریف متغیرهای آرایه ای یک بعدی و مجموعه های وارث برای تعریف آرایه های چند بعدی مورد استفاده قرار می گیرند.
اسلاید 40: مجموعه های مستقل ساختار کلی تعریف مجموعه های مستقل در لینگو به صورت زیر می باشد :نام متغیرها: / عناصر مجموعه / نام مجموعه ;به عنوان مثال در برنامه قبل، مجموعه ای به نام Hour با 24 عنصر تعریف شده است و دو متغیر X و Need نیز دو متغیر با 24 عنصر هستند.برای درک بهتر مطلب به مثال زیر که یک خط از یک برنامه است توجه کنید :Factory /1 .. 3 /:Setup_Cost;
اسلاید 41: Factory و Setup_Cost معرف یک آرایه تک بعدی شامل 3 خانه اند، با این تفاوت که به خانه های Factory مقداردهی نمی کنیم و آنها را در عملیات ریاضی شرکت نمی دهیم.برای مقداردهی به متغیر Setup_Cost باید در بخش مقداردهی سه عدد به آن نسبت داد که این اعداد به ترتیب در خانه های اول تا سوم آن قرار می گیرند.
اسلاید 42: نکته قابل ذکر در مورد عناصر مجموعه این است که اسم عناصر می تواند عدد، رشته ای از اعداد و یا حروف باشد. (فقط باید با حرف شروع شود.)برای آشنایی بیشتر چند مجموعه در پایین آمده است :Department / Industrial, Mechanic, Civil, Electronic, Computer, Material/: Average;WAREHOUSE / WH1, WH2, WH3/: CAPACITY;CUSTOMER / C1, C2, C3, C4/: DEMAND;
اسلاید 43: مجموعه های وارث در لینگو نمی توان به صورت مستقیم ماتریس و آرایه های چند بعدی را تعریف کرد. برای تعریف آرایه های چند بعدی از مجموعه های وارث استفاده می کنیم.ساختار کلی مجموعه های وارث بصورت زیر است :Sets: / آرایه/ اسم مجموعه های وارث;(Set1) Car/1..3/;مثال); متغیرها : ( Set1, Set2, Set3, … , Setn ) اسم مجموعه وارث Demand (Car, City): Dem;مثال)Endsets
اسلاید 44: برای درک بهتر به مثال های کلی زیر توجه کنید :فرض کنید کارخانه ای سه نوع ماشین مختلف تولید می کند و مشتریان پنج شهر مختلف نیز سفارش های متفاوتی از هر نوع ماشین به کارخانه می دهند. حال زیر برنامه ی زیر را در نظر بگیرید:Sets: Car/1..3/; City/1..5/; Demand (Car, City): Dem;Endsetsاین زیر برنامه مجموعه ای مستقل ار نوع Car به صورت آرایه تک بعدی 3 خانه ای و مجموعه ای مستقل از نوع City به صورت یک آرایه تک بعدی 5 خانه ای تولید می کند. (دقت کنید که متغیری از نوع Car یا City نداریم.)
اسلاید 45: در خط چهارم این زیر برنامه، مجموعه وارث Demand به صورت یک ماتریس 3*5 و ماتریس Dem از نوع Demand تعریف می شود؛ بنابراین در بخش مقداردهی، می بایست 15 عدد به متغیر Dem نسبت داد، که در این حالت مقدار تقاضای شهر j از ماشین iدر خانه ای واقع در سطر iام و ستون jام ماتریس Dem قرار می گیرد.در قسمت داخل اسلش ها (اندیس هایی که با هم ارتباط دارند) می توانیم اندیس هایی را ذکر کنیم که ارتباطشان با هم تعریف شده است. در صورت حذف قسمت بین اسلش ها، فرض بر این است که ارتباط تمام اندیس ها در تمام بعد ها، با هم تعریف شده است و متغیرهای وابسته به مجموعه، با تمام اندیس های خود می توانند مقدار بگیرند. استفاده از قسمت اندیس هایی که با هم ارتباط دارند به خصوص در مسائل کنترل پروژه کاربرد دارد که خود مبحثی جداگانه است. مثال پیش رو مطالب را بیشتر برای ما روشن می سازد:
اسلاید 46: SETS: TASK/A B C D E F G H I J K/: T; PRED (TASK, TASK) / A,B B,C C,F C,G F,J G,J J,K D,E E,H E,I H,J I,J/; STATION /1..4/; TXS (TASK, STATION): X;ENDSETS
اسلاید 47: در مثال فوق مجموعه TASK از 11 عضو تشکیل یافته است و مجموعه STATION از 4 عضو. با این وجود مجموعه PRED به جای 121=11*11 عضو تنها از 12 عضو مشخص شده، تشکیل شده در حالی که TXS شامل 32=4*8 عضو می باشد.توجه کنید که در برنامه های مختلف گاهی مواردی پیش می آید که هنگام کار با مجموعه ها (در تعریف مجموعه ها و یا هنگام استفاده از توابع for و یا sum ) برخی از اندیس های مجموعه را می بایست نادیده گرفت و یا هر شرط خاص دیگری را باید با برخی از اندیس های مجموعه ها (و نه تمامی آنها) اعمال کرد؛ در این حالت از عملگرهای مختلف و عبارات شرطی استفاده می کنیم که در فصل های آتی در مورد آنها به تفصیل بحث خواهیم کرد.
اسلاید 48: بخش داده هابخش داده ها به ما این امکان را می دهد که داده ها را از بقیه مدل جدا کنیم. این کار باعث می شود در هنگام تغییر و یا توسعه مدل راحت تر و کم اشتباه تر عمل کنیم. در بخش داده که مابین دو کلمه کلیدی DATA و ENDDATA است می توانیم مقادیر پارامترها و اسم عناصر مجموعه هایی را که در بخش قبلی تعریف شده اند مقداردهی کنیم.
اسلاید 49: به 3 مثال زیر توجه کنید :1)SETS: SET1 / A, B, C/: X, Y;ENDSETSDATA: X = 1, 2, 3; Y = 4, 5, 6;ENDDATA
اسلاید 50: 2)SETS SET1 / A, B, C/: X, Y;ENDSETSDATA X, Y = 1, 4, 2, 5, 3, 6;ENDDATA3)SETS SET1 : X, Y;ENDSETSDATA SET1, X, Y = A 1 4 B 2 5 C 3 6;ENDDATA
اسلاید 51: در هر سه مثال فوق مجموعه SET1 دارای سه عنصر A، B و C است که دو خصیصه X و Y به آن نسبت داده شده و جواب هر سه برابر است با :X ( A ) = 1, X ( B ) = 2, X ( C ) = 3 Y ( A ) = 4, Y ( B ) = 5, Y ( C ) = 6پارامترهای 1*1 را می توان مستقیما در قسمت داده ها تعریف و مقداردهی کرد. مثلا :DATA INTEREST_RATE = .085;ENDDATAو یا DATA INTEREST_RATE, INFLATION_RATE = .085, .03;ENDDATAINTEREST_RATE در هر دو مثال فوق برابر .085 و در مثال دوم INFLATION_RATE برابر .03است.
اسلاید 52: تحلیل What ifبرخی مواقع مقدار دقیق یک پارامتر را نداریم و می خواهیم برای محدوده ای از اعداد این پارامتر را مقداردهی کرده و مدل را حل کنیم. در این مواقع در قسمت داده ها به جای اینکه مقدار عددی آن پارامتر را وارد کنیم علامت سوال “ ? ” قرار می دهیم. در این صورت هر بار که می خواهیم مدل را حل کنیم، لینگو مقدار عددی این پارامتر را از ما می پرسد و سپس شروع به حل مدل می کند. به مثال زیر توجه کنید.
اسلاید 53: DATA: INFLATION_RATE = ?ENDDATAدر این مثال، در هر بار حل مدل، لینگو مقدار INFLATION_RATE را به وسیله پنجره ای از ما می خواهد. به مثال های زیر در مورد مقداردهی تکی به متغیرها و پارامتر ها توجه کنید :
اسلاید 54: SETS DAYS / MO, TU, WE, TH, FR, SA, SU/: NEEDS;ENDSETSDATA: NEEDS = 20;ENDDATAدر این مثال همه اعضای NEEDS مقدار 20 می گیرند.
اسلاید 55: SETS DAYS / MO, TU, WE, TH, FR, SA, SU/: NEEDS, COST;ENDSETSDATA: NEEDS, COST = 20, 100;ENDDATAدر این مثال همه اعضای NEEDS مقدار 20 و همه اعضای COST مقدار 100 می گیرند.
اسلاید 56: در بخش داده ها اگر مقدار برخی از متغیرها وارد نشده باشد، آنها به صورت متغیرهای تصمیم در نظر گرفته می شوند نه اعداد ثابت. به مثال زیر توجه کنید :SETS YEARS / 1..5 /: CAPACITY;ENDSETSDATA CAPACITY = 34, 34, , , ;ENDDATAدر این مثال CAPACITY (1) و CAPACITY (2) برابر 34 در نظر گرفته می شوند و عناصر سوم تا پنجمCAPACITY متغیر به حساب می آیند.
اسلاید 57: بخش جواب اولیهدر بعضی از مسائل، ما جوابی نسبتا خوب و نزدیک به بهینه را داریم و به دنبال یافتن جواب بهینه و یا بهتر هستیم. در این موارد (خصوصا در مدل های عدد صحیح و غیر خطی) با دادن جواب اولیه به لینگو، سریعتر به جواب بهینه و یا بهتر خواهیم رسید. این کار که اختیاری می باشد در بخش جواب اولیه و مابین دو کلمه کلیدی INIT و ENDINIT صورت می گیرد.
اسلاید 58: توابع و عملگرها در لینگوبرای تسهیل مدل سازی، در لینگو توابع و عملگرهای متفاوتی وجود دارند. حتی اگر با شکل کلی استفاده از این توابع آشنایی نداشته باشید، لینگو این شکل کلی را در اختیار شما قرار می دهد. برای این منظور در منوی Edit گزینه Paste Function را انتخاب نمایید، ملاحظه می کنید که لیستی از انواع توابع برای شما نمایش داده می شود.
اسلاید 59: این لیست به شرح زیر می باشد :External Files FunctionFinancial FunctionMathematical FunctionProbability FunctionSet FunctionVariable Domain FunctionOther Function
اسلاید 60: بررسی تک تک این توابع از سطح کار ما فراتر است؛ همچنین به خاطر عدم نیاز به توابع مالی و احتمالی در برنامه ریزی خطی در اینجا فقط به تشریح برخی توابع دسته پنجم و ششم می پردازیم. (در صورتی که مایلید اطلاعات بیشتری در ارتباط با سایر توابع لینگو بدست آورید در منوی Help گزینه Help Topics را انتخاب نمایید و پنجره محاوره ای باز شده را در حالت Index قرار دهید؛ سپس کلمه Function را تایپ کنید، در این حالت لینگو اطلاعات مفید بسیاری در اختیار شما قرار می دهد.)
اسلاید 61: نکته : قبل از معرفی توابع به این نکته مهم توجه کنید که در لینگو هنگام به کار بردن توابع، میبایست قبل از نام تابع از علامت @ استفاده کرد. در اینجا به بررسی دو تابع FOR و SUM می پردازیم.
اسلاید 62: تابعFOR این تابع در دسته Set Looping یعنی توابع حلقه ای قرار دارد و شکل کلی آن بصورت زیر می باشد :@FOR( Set : expression);در صورت استفاده از عبارات شرطی به صورت زیر عمل کنید :@FOR( Set | condition: expression);وجود تابع For در لینگو در واقع یکی از برتری های بارز این زبان می باشد. از این تابع برای نسبت دادن یک ویژگی به تمام یا بخشی از اعضای یک مجموعه استفاده می کنیم. به مثال های زیر توجه کنید :
اسلاید 63: فرض کنید انباری داریم که در آن هفت قلم کالای متفاوت نگهداری می کنیم:SETS: Items /1..7/: Capacity;ENDSETSحال فرض کنید ظرفیت انبار محدود بوده و حداکثر 12 واحد از هر قلم می توان در آن نگهداری کرد. برای وارد کردن این محدودیت به صورت زیر عمل می کنیم :@For(Items (i): Capacity (i) <= 12);
اسلاید 64: این عبارت در واقع معادل عبارت زیر است :Capacity (1) <= 12;Capacity (2) <= 12;Capacity (3) <= 12;Capacity (4) <= 12;Capacity (5) <= 12;Capacity (6) <= 12;Capacity (7) <= 12;از آنجا که تمام متغیرهای به کار رفته در مجموعه Items قرار دارند، عبارت بالا را به صورت زیر نیز می توان نوشت :@For(Items: Capacity <= 12);توجه کنید که در صورتی که متغیرهای به کار رفته در For متعلق به مجموعه های متفاوت باشند نمی توان از شکل خلاصه شده بالا استفاده کرد.
اسلاید 65: حال فرض کنید ظرفیت انبار فقط برای دو قلم کالای آخر (اقلام 6 و 7 ) محدودیت داشته باشد؛ برای وارد کردن این محدودیت از عبارات شرطی و عملگرهای منطقی استفاده می کنیم :@For(Items (i) | i#GT#5: Capacity (i) <= 12);
اسلاید 66: تابعSUM این تابع نیز همانند تابع For در دسته توابع Set Looping قرار دارد و شکل کلی کاربرد آن به صورت زیر می باشد :@SUM (Set: expression);در صورت استفاده از عبارات شرطی به صورت زیر عمل کنید :@SUM (Set | condition: expression);از این تابع برای محاسبه حاصل جمع اعضای یک مجموعه یا عبارتی شامل اعضای یک مجموعه استفاده می کنیم. برای روشن شدن مطلب به مثال های زیر توجه کنید :
اسلاید 67: فرض کنید 5 مشتری مختلف تقاضاهای متفاوتی از کالای X دارند؛ حال این زیر برنامه را در نظر بگیرید :SETS:Customers /1 2 3 4 5/: Demand, cost;ENDSETSDATACost = 5 1 3 4 6;ENDDATAحال اگر بخواهیم مجموع تقاضاها برای کالای X را محاسبه نماییم، کافیست عبارت زیر را به برنامه بیافزاییم :Total_Demand = @Sum (Customers (i): Demand (i));
اسلاید 68: در واقع این عبارت معادل عبارت زیر می باشد :Total_Demand = Demand (1) + Demand (2) + Demand (3) + Demand (4) + Demand (5);می توانستیم از عبارت خلاصه شده زیر نیز استفاده کنیم :Total_Demand = @Sum (Customers: Demand);
اسلاید 69: بخش سوم « حل مسائل » انواع مسائلCase Study – بیان مسئله تحلیل خروجی تحلیل حساسیت
اسلاید 70: انواع مسائللینگو قادر به حل مسائل مختلف بهینه سازی از جمله برنامه های خطی، کوآدراتیک، خطی عدد صحیح، کوآدراتیک عدد صحیح، عدد صحیح خطی خالص، عدد صحیح کوآدراتیک خالص، غیر خطی، غیر خطی عدد صحیح و غیر خطی عدد صحیح خالص می باشد. مدل های فوق توسط لینگو تشخیص داده شده و در گزارش خروجی مدل پس از حل آن به ترتیب فوق LP، QP، ILP، IQP، PILP، PIQP، NLP، INLP، PINLP خواهیم داشت. در اینجا به پیاده سازی و تحلیل یک مدل خطی می پردازیم.
اسلاید 71: Case Studyشرکت داکوتا فرنیچر، تولید کننده میز تحریر، میز و صندلی است. تولید هر کدام از انواع مبلمان به الوار و دو نوع نیروی کار ماهر در دو زمینه نجاری و پرداخت نیاز دارد. انواع مبلمان به الوار و دو نوع نیروی کار ماهر در دو زمینه نجاری و پرداخت نیاز دارد. مقدار هر یک از منابع مورد نیاز برای تولید هر یک از انواع مبلمان در جدول ذیل آمده است :منبعمیز تحریرمیزصندلیالوار (فوت تخته)861زمان پرداخت (ساعت)425/1زمان نجاری (ساعت)25/15/0
اسلاید 72: در حال حاضر، 48 فوت تخته از الوارها، 20 ساعت زمان پرداخت و 8 ساعت زمان نجاری موجود است. هر میز تحری 60 دلار، میز 30 دلار و صندلی 20 دلار به فروش می رسد. با فرض اینکه منابع در دسترس به تازگی تدارک دیده شده باشند، شرکت داکوتا می خواهد کل سود خود را به حداکثر برساند.متغیر های تصمیم بصورت ذیل تعریف شده اند :Desk : تعداد میز تحریرهای تولید شدهTable : تعداد میزهای تولید شدهChair : تعداد صندلی های تولید شده
اسلاید 73: شرکت داکوتا به حل مدل خطی زیر نیاز دارد :Max z = 60 Desk + 30 Table + 20 Chairs.t8 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
اسلاید 74: مدل فوق به زبان لینگو در قسمت Lingo Model وارد می شود :
اسلاید 75: با استفاده از گزینه Solve جواب نهایی سیمپلکس بصورت زیر خواهد بود :
اسلاید 76: تحلیل خروجیObjective value: 280.0000مشخص می کند که مقدار بهینه تابع هدف 280 است.Value مقدار متغیر در جواب بهینه مدل خطی را می دهد. بنابراین جواب بهینه داکوتا تولید 2 میز تحریر، صفر میز، و 8 صندلی است.Reduced Cost ضریب متغیر در سطر صفر جدول بهینه را می دهد (مسئله ماکزیمم سازی). همانگونه که می دانید باید هزینه کاهش یافته هر متغیر پایه برابر صفر باشد. برای یک متغیر غیر پایه xj، هزینه کاهش یافته مقداری است که اگر xj ، 1 واحد اضافه شود، به آن اندازه، جواب بهینه کاهش می یابد (درحالی که بقیه متغیرهای غیر پایه برابر صفر بمانند). در خروجی لینگو برای مسئله داکوتا، هزینه کاهش یافته میز برابر 5 است. این یعنی اگر داکوتا بخواهد یک میز تولید کند، درآمد به اندازه 5 دلار کاهش خواهد یافت.
اسلاید 77: در قسمت بعدی از خروجی یا Report مشاهده می کنیم که هر خط مدل با شماره ای مشخص شده و در مقابل آن دو عبارت Slack or Surplus و Dual Price مشاهده می شود :Slack or Surplus مقدار کمبود یا اضافی (مازاد) در جواب بهینه را نشان می دهد. بنابراین 24 فوت تخته الوار و 5 عدد میز به صورت مازاد وجود خواهد داشت.Dual Price یا قیمت سایه مقداری است که اگر سمت راست محدودیت، یک واحد اضافه شود، به آن اندازه جواب بهینه، بهبود می یابد ( با فرض اینکه این تغییرات باعث از دست رفتن پایه بهینه فعلی نمی شوند ). اگر بعد از یک تغییر در طرف راست محدودیت، پایه فعلی دیگر بهینه نماند، قیمت های سایه محدودیت ها ممکن است تغییر کند.
اسلاید 78: تحلیل حساسیتپس از حل مدل توسط Solve با استفاده از گزینه Range موجود در منوی LINGO گزارش خروجی تحلیل حساسیت مدل را مشاهده می کنیم، در صورت مشاهده خطا وارد LINGO Option شده و گزینه Dual Computations از قسمت General Solver را در حالت سوم قرار دهید.
اسلاید 79: تحلیل حساسیت نشان می دهد که ضرایب تابع تا چه میزان می توانند افزایش یا کاهش یابند بدون اینکه پایه بهینه مسئله (مجموعه متغیرهای غیر صفر) عوض شود. تحلیل حساسیت شامل دو بخش است، یکی مربوط به تابع هدف و دیگری مربوط به محدودیت ها، که در هر کدام به تفکیک مقدار واقعی و مقادیر کاهش و افزایش قید شده است.در پایان با استفاده از گزینه Solution در منوی LINGO می توانید نمایش گرافیکی از هر یک از متغیرهای موجود در مدل را داشته باشید.
اسلاید 80: Thank You
خرید پاورپوینت توسط کلیه کارتهای شتاب امکانپذیر است و بلافاصله پس از خرید، لینک دانلود پاورپوینت در اختیار شما قرار خواهد گرفت.
در صورت عدم رضایت سفارش برگشت و وجه به حساب شما برگشت داده خواهد شد.
در صورت بروز هر گونه مشکل به شماره 09353405883 در ایتا پیام دهید یا با ای دی poshtibani_ppt_ir در تلگرام ارتباط بگیرید.
- پاورپوینتهای مشابه
نقد و بررسی ها
هیچ نظری برای این پاورپوینت نوشته نشده است.