کامپیوتر و IT و اینترنتعلوم مهندسیمهندسی صنایع و مواد

کاربرد کامپیوتر در مهندسی صنایع

80 صفحه
6011 بازدید
20 اسفند 1396

برچسب‌ها

صفحه 1:
Bria

صفحه 2:

صفحه 3:

صفحه 4:

صفحه 5:
12} Operations Research : Applications and Algorithms (1994). ‏زو‎ Introduction to Mathematical Programming : Application aad 7 ithms (1995) — =

صفحه 6:
م افزارهای وتو یبد 4 ‎‘eos‏ می باشند. در لین میان می توان نرم آفزارهای چون :10۰1:11۳0 در سوه 1084 نام ‎as py‏ ‎

صفحه 7:
> Bit tt

صفحه 8:

صفحه 9:
ج مسائل” 0 وى کار. موجودق 2

صفحه 10:

صفحه 11:
Brey

صفحه 12:

صفحه 13:

صفحه 14:
!براق حل مسائل در ليتكو كة 3 و اال زابة سه ووش از طريق صفحه ید و در اتای ‏ 3 Brey

صفحه 15:
اریر مى جات 2 ورودی" خود ‎ty‏ دوب ى داخلی. که ابتدا تخت عنوان ۲0۵061 00 س برای ~ الست ‎eet iss Gee‏ 0 وجوت سس جد ذو ادامه موده برددى راد گیرد. Brey

صفحه 16:

صفحه 17:

صفحه 18:

صفحه 19:

صفحه 20:
واهیم محدودیت اسمی اختصاص دهیم در ابتدای ز ال قلافت _کروشه می آوریم؛ وبه صورت

صفحه 21:
Brey

صفحه 22:

صفحه 23:
Toolbar هنگامی که نرم افزار لینگو را اجرا می کنید. صفحه ای مطابی شکل نمایش داده می شود. همان طور که مشاهده می کنید. کلید هایی برای استفاده کاربر در نظر گرفته شده که در واقع هر کدام از آنها یک ‎ANS‏ ‏میان بره برای گزینه ی مرتبط در یکی از منوهای لینگو می باشد . هنگامی كه هیچ صفحه ای در لینگو باز اشد. بسیاری از کلیدها غیر فعال هستند. اما با باز کردن یک برنامه به زبان لینگو و اجرای آن تقریبا همه این کلیدها فعال می شوند. برای آشنایی بیشتر با هر کدام از اين كليدهاء در ارتباط با هر كدام به اختصار توضيح مى دهيم. 1001 1-7 سس

صفحه 24:
‎Ys 3‏ 2 3 كد هرك همه ‎son ‎Bria ‎

صفحه 25:

صفحه 26:

صفحه 27:

صفحه 28:

صفحه 29:

صفحه 30:

صفحه 31:
Brey

صفحه 32:
بعم هدف داشته باشد. در مثالی که داریم. ت زا : صورت تایعی از خروجی کامپیو تر های اه

صفحه 33:
يكى مربوط بة تعداد کامپیوترها - تعداد. كامبي و ترهاى توربو داريم»

صفحه 34:

صفحه 35:
Brey

صفحه 36:

صفحه 37:
Brey

صفحه 38:
توان در یک برنامه: تلبع هدف را

صفحه 39:
Brey

صفحه 40:
بوعه ای به 4 نام ‎Hour‏ ‎Need ox‏ زدو

صفحه 41:
۱۲

صفحه 42:
در مورد عناصو مجعو ‎Sh pala il‏ (فقط باید با حرف شر partment / Industrial, Mechanic, Civil, Electronic, Computer, Material/: Average:

صفحه 43:

صفحه 44:
عه ای ال و هه یک ‎ADT‏ ‏مدای خلنةاى لید مبی کند. (دقت بيرى_-از د

صفحه 45:

صفحه 46:

صفحه 47:
Brey

صفحه 48:
او اسم ‎ote‏ مجموعه هاج ‎outs‏ اند مقداردهی کنیم.

صفحه 49:

صفحه 50:
Brey

صفحه 51:

صفحه 52:
Brey

صفحه 53:
> Bit tt

صفحه 54:

صفحه 55:
i 6 ‏الزن‎ Brey

صفحه 56:
Brey

صفحه 57:

صفحه 58:

صفحه 59:

صفحه 60:
Brey

صفحه 61:

صفحه 62:
Brey

صفحه 63:
قلم می توان در آن نگهداری کرد. زیر عمل مى کنیم Brey

صفحه 64:

صفحه 65:

صفحه 66:
همانتد تلبع ۲ در دسته توابع" دارد و شكل. كلى كاربرد آن به صورت ز Brey

صفحه 67:

صفحه 68:

صفحه 69:
انواع ‎Cass Study :‏ 9

صفحه 70:
0 داده شده و و سل ‎LP. QP. ILP. TOP. PIL!‏ ۲ خوا ‎ee ag ol‏ بت مد جهی قی برگا

صفحه 71:

صفحه 72:

صفحه 73:

صفحه 74:
Ma = SO*DESKS + S0°TAGELS + DOSCILAIRG? =) 3HDESKS + 2°TABELS + 1.52CKAIRS < 202 2°DESHS + 1.S*TABELS ¥ .S*CHAIRS > ‏ده‎ ‎Tapes > 5:

صفحه 75:

صفحه 76:
Brey

صفحه 77:
شمند ).1 قرا ‎Spo‏ Brey

صفحه 78:
٩50011۵۰ iat elas Sit

صفحه 79:
Brey

صفحه 80:

ارائه دهنده کاربرد:کامپیوتر در مهندسی صنایع پویا حسین پور سلیم زاده حامد شهرابی جمال دکتر سهند امینی فهرست مطالب بخش اول :معرفی نرم افزار بخش دوم :آغاز کار با لینگو بخش سوم :حل مسائل » بخش اول « معرفی نرم افزار • مقدمه ای بر لینگو • نرم افزارهای مشابه و ویژگی های لینگو • لینگو چیست ؟ مقدمه ای بر لینگو بس@ته های نرم افزاری لیندو و لینگ@و توس@ط شرک@ت لیندو سیستمز( )1برای ح@ل مس@ائل بهین@ه س@ازی در دانشگاه ،ص@نعت و تجارت ،طراحی گردیده اس@ت .دو محص@ول فوق همراه ب@ا کتاب تحقی@ق در عملیات :کاربرد ها و الگوریت@م ه@ا ( )2()1994و کتاب مقدم@ه ای بر برنام@ه ریزی ریاضی :کاربرد ه@ا و الگوریت@م ه@ا ( )3()1995ک@ه توس@ط پروفس@ور وای@ن ال .وینس@تون( )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 نرم افزارهای مشابه امروزه بس@یاری از مدل های بهین@ه س@ازی تحقیق در عملیات اع@م از مدل های خط@ی ،غی@ر خط@ی و یا عدد ص@حیح ب@ه مدد نرم افزارهای کامپیوتری ب@ه سادگی قاب@ل تجزی@ه و تحلی@ل م@ی باشند .در ای@ن میان می توان از نرم افزارهایی چون GAMS، GINO، LINDO، LINGO، QSBو TORAنام برد. LINGOب@@@ع@د از GAMSق@@ویت@@ری@نن@@رما@فزار ت@@حقیق در ع@ملیاتم@یب@@اشد .از ج@مل@ه@ ب@@رتریهایل@@ینگ@و ن@@س@بتب@@@ه@ LINDOی@@ا ، GAMSق@@در@تآ@ندر م@دلس@@از@یت@@مام م@س@ائ@لیا@س@تک@@ه@ ت@@وس@ط ل@@یندو م@دلش@@ده@ ا@ن@د ،ب@@دو@نا@ی@ن ک@@ه@ ن@@یاز@یب@@@ه@ ت@@عیی@نن@@وع م@دلت@@وس@ط ک@@ار@بر ب@@اشد، @ن@@اب@لیتیرا دارا در ح@ا@لیک@@ه@ LINDOی@@ا GAMSچ@نی ق ن@@م@یب@@اشد .ی@@ک@ید@ی@گ@ر از ق@@اب@لی@تهایم@ه@م ل@@ینگ@و @ویس@@اد@ه@ و ک@@ام@لم@ی ب@@رخوردار@یاز Helpی ب@@@س@یار ق@ ، ب@@اشد .ب@@@ه@ گ@@ون@ه@ ا@یک@@ه@ ب@@@ا ا@س@تفاد@ه@ از Helpآ@نم@ی ت@@وا@نت@@ا ح@د ز@یاد@یب@@ر ا@ی@نن@@رما@فزار م@سلطش@@د . ویژگیهای بارز لین@گو • • • • • قابلیت مدل سازی بصورت کارا و صحیح؛ قابلیت باالی تحلیل مدل؛ دارا بودن توابع مختلف ریاضی ،آماری و احتمالی؛ قاب@لیت خواندن اطالعات از Fileها و Worksheetهای دیگر؛ کار کردن در محیط .Windows لی@نگ@و چی@ست ؟ تعریف اول :راهنمای PDFلینگو : لینگ@و ابزاری س@اده برای بهره گیری از قدرت برنامه ریزی خط@ی و غی@ر خط@ی در فرمول@ه کردن مس@ائل خیل@ی بزرگ به ص@ورت مختص@ر و تجزی@ه و تحلی@ل آنهاس@ت .بهین@ه س@ازی ب@ه شما کم@ک م@ی کن@د ت@ا جواب@ی را ب@ا بیشتری@ن س@ود ،خروج@ی ،یا رضایتمندی و ی@ا جواب@ی ب@ا کمتری@ن هزین@ه ،تلفات ی@ا ناراحتی بدس@ت آورید .اغل@ب ای@ن مس@ائل ب@ا اس@تفاده موث@ر از منابعی همچون پول ،زمان ،ماشین ،نیروی کار ،موجودی و ...در ارتباط است. مس@ائل بهین@ه س@ازی اغل@ب ب@ه خط@ی و غی@ر خط@ی تقس@یم م@ی شوند، ک@ه ای@ن تقس@یم بندی ب@ا توج@ه ب@ه رابط@ه متغیرهاس@ت؛ بدی@ن معنی ک@ه اگ@ر رابط@ه هم@ه متغیره@ا ب@ا ه@م خط@ی باش@د ،مس@ئله را خطی و در غیر اینصورت غیر خطی می گویند. لینگ@و زبان@ی جام@ع و فراگی@ر جه@ت تس@هیل تمام مدل های بهینه س@ازی از مس@ائل تحقی@ق در عملیات گرفت@ه ت@ا اقتص@اد مهندسی، شبی@ه س@ازی ،کنترل کیفی@ت ،کنترل پروژه و کنترل موجودی می باشد. تعریف دوم :کتاب تحقیق در عملیات واین ال .وینستون : لینگ@و ی@ک بس@ته نرم افزاری ب@ا امکان برقراری ارتباط دو طرف@ه با کاربر اس@ت و از آ@ن م@ی توان در ح@ل مس@ائل خط@ی ،عدد ص@حیح و غی@ر خطی کمک گرفت .استفاده از این نرم افزار وضعیت مشابهی مانند لیندو دارد، ام@ا از انعطاف بیشتری در بیان مدل برخوردار است .بر خالف لیندو، لینگ@و امکان اس@تفاده از پرانتزه@ا و متغیره@ا را در س@مت راس@ت معادله فراه@م م@ی آورد .بنابرای@ن ،محدودی@ت ه@ا را م@ی توان ب@ه ص@ورت اولیه، بدون نیاز ب@ه تبدی@ل آ@ن ب@ه س@اختار اس@تاندارد (آوردن مقادی@ر ثاب@ت به سمت راست) نوشت .همچنین لینگو دارای یک کتابخانه بزرگ از توابع ریاض@ی ،آماری و احتمال@ی بوده و قدرت باالی آن در خواندن اطالعات از فایل های خارجی و نرم افزارهای صفحه گسترده است. » بخش دوم « آغاز کار با لینگو • • • • نصب نرم افزار اصول اولیه در لینگو محیط نرم افزار پیاده سازی مدل در لینگو نصب نرم افزار نص@ب لینگ@و ب@ه راحت@ی ان@جام م@ی گیرد و همانن@د بسیاری از نرم افزارهای تح@ت س@یستم عام@ل Windowsمی باشد. تنه@ا نکت@ه ای ک@ه در نص@ب م@ی توان ب@ه آن اشاره کرد فضای مورد نیاز در روی دیس@ک س@خت م@ی باش@د که 40MBاس@ت .برای دریاف@ت نرم افزار م@ی توانی@د به سایت لینگو مراجعه کنید. اصول اولیه در لینگو برای ح@ل مس@ائل در لینگ@و ک@ه بس@یار مشاب@ه لیندو اس@ت ،می توان مس@ائل را ب@ه س@ه روش از طری@ق ص@فحه کلی@د و در ارتباطی دو طرفه با کاربر و یا با استفاده از فایل هایی که در جای دیگر تولی@د شده ان@د (ک@ه ای@ن فای@ل ه@ا ی@ا خود شامل دس@تورات هستند و ی@ا ب@ه عنوان بخش@ی از ی@ک برنام@ه جامع ،دارای کدهای س@فارشی و کتابخان@ه های بهین@ه س@ازی لینگ@و هستند) ،وارد کامپیوت@ر کرد .در اینج@ا ب@ه روش اول ،یعن@ی ارتباط دو طرف@ه با کاربر متمرکز می شویم. وارد کردن ی@ک مدل در نس@خه تح@ت ویندوز لینگ@و ،شبیه تای@پ کردن در ی@ک محی@ط پردازشگ@ر متن@ی تحت ویندوز اس@ت؛ چون وقتی در یک مدل داده تایپ می کنید ،تقریبا بای@د آنچ@ه را ک@ه ب@ه ص@ورت دس@تی نوشت@ه اید ،وارد مدل کنید .کاربر م@ی تواند اطالعات ورودی خود را در پنجره ی داخل@ی ک@ه ابتدا تحت عنوان Lingo Model اس@ت ،وارد کند .همچنی@ن ،لینگ@و شام@ل دس@تورات ابتدایی ویرای@ش برای بریدن ،کپ@ی کردن و چس@باندن ی@ک متن اس@ت .ای@ن ابزاره@ا و س@ایر ویژگ@ی ه@ا ،در منوی فرمان ها موجود است که در ادامه مورد بررسی قرار می گیرد. عناص@ر مورد نیاز در لینگ@و مشاب@ه لیندو اس@ت .لینگو نیازمن@د تاب@ع هدف ،ی@ک ی@ا چن@د متغی@ر و ی@ک ی@ا چند محدودی@ت اس@ت .بر خالف لیندو ،محدودیت های لینگو بع@د از عبارات خاص از قبی@ل SUBJECT TOیا SUCH THATنمی آیند. اصول اولیه مدل نویسی در لینگو در لینگو هر عبارت با یک “ ; ” پایان می یابد؛ هرگاه بخواهی@م ی@ک عبارت توضیح@ی ب@ه مت@ن برنام@ه بیافزایی@م کافیست در ابتدای عبارت از عالم@ت تعج@ب ( ! ) اس@تفاده کنیم .این توضیحات نیز به “ ; ” ختم می شوند؛ کلی@ه عبارات متن@ی ک@ه مابی@ن ( ! ) و “ ; ” نوشت@ه م@ی ش@ون@د از سوی لینگو نادیده گرفته می شوند؛ لینگو به بزرگ یا کوچک بودن حروف حساس نیست؛ می توانیم دو خ@ط برنامه لینگو را در ی@ک خ@ط بیاوریم و یا یک خ@ط آن را در دو سطر بیاوریم: ‏Max = 100 * Standard ;Turbo * 150 + یا ;;Turbo <= 120Standard <= 100 حتی می توانیم توضیحات را در وسط محدودیت ها بیاوریم: ;X = Y + !Number of Products; Q + 2 * C ( معادل X = Y + Q + 2 * Cاست ) عملگرهای ریاضی حتما فراموش نشود؛ ( مخصوصا عملگر ضرب “ * “ ) (2X + 3Y <= 25ا@شتباه@) (X + 3 * Y <= 25 * 2درست) اس@امی متغیره@ا حتم@ا ب@ا ی@ک حرف شروع م@ی شوند .بع@د از آ@ن می توان حرف ،رقم یا زیر خ@ط ( _ ) اس@تفاده کرد .اس@م متغیره@ا نمی تواند بیشتر از 32کاراکتر باشد؛ استفاده از فاصله “ “ ( فاصله ) در اسم متغیر ها ممنوع است؛ عالئ@م س@اده ریاض@ی ،توان ( ^ ) ،ضرب ( * ) ،تقس@یم ( ،) /جمع ( ) +و تفریق ( ) -با همین ترتیب اولویت معتبرند؛ اگ@ر بخواهی@م ب@ه محدودی@ت اس@می اختص@اص دهی@م در ابتدای محدودیت اس@م آ@ن را در داخ@ل عالم@ت کروش@ه م@ی آوری@م؛ و ب@ه ص@ورت مقاب@ل می نویسیم ] :اسم محدودیت[ @ی@ستفاد@ه@ ب@@@هتر از ن@@رما@فزار Help ل@@ینگ@و ی@@کرا@هنمایب@@@س@یار خ@وبب@@را ا @ستاز آنب@@@ه@ره@ ب@@@گیرید! ا . هنگام ح@ل مدل اگ@ر ایرادی در آ@ن وجود داشت@ه باشد ،نرم افزار پیغام خط@ا داده و مکان نم@ا ب@ه اول س@طری م@ی رود ک@ه ب@ه نظ@ر لینگ@و ای@ن خطا از آنجا ناشی شده است؛ ممک@ن اس@ت در بعض@ی مواق@ع ب@ا وجود آنک@ه فک@ر م@ی کنی@د مدل@ی ک@ه نوش@ته اید درس@ت اس@ت ،نرم افزار هنگام حل آن پیغام خط@ا بدهد .در این مواقع یک راه ساده آن است که یک صفحه جدید لینگو باز کرده و دستورات و عبارت های@ی ک@ه در مدل نوشت@ه ای@د را یک@ی یک@ی ،ب@ه ص@فحه ی جدی@د کپی کرده و ه@ر بار مدل جدی@د را اجرا کنید .ب@ا ای@ن کار در اکث@ر موارد به راحتی می توانید به اشکال برنامه پی ببرید. محیط نرم افزار نرم افزار لینگ@و از س@ه بخ@ش کل@ی منوه@ا Toolbar ،و پنجره ی مدل نویسی تشکیل شده است. منوهای نرم افزار به ترتیب زیر می باشد : ‏File; Edit; LINGO; Window; Help منوی@ی ک@ه بیشت@ر ب@ه چش@م آمده و در واق@ع منوی اص@لی نرم افزار م@ی باشد منوی LINGOس@ت ،ب@ا س@ایر منوه@ا ک@ه در نرم افزارهای تح@ت س@یستم عامل Windowsعموم َا موجود می باشند پیشتر آشنا هستید. @ل@بزار@های( Shortcutم@یان@بر) م@وجود در م@نوها م@یب@@اشد. Toolbar ش@@ام ا پنجره ی مدل نویس@ی مح@ل پیاده س@ازی مس@ئله ی بهین@ه س@ازی فرموله شده طبق قواعد لینگوست. Toolbar ‏Menus پنجره ی مدل نویسی هنگامی که نرم افزار لینگو را اجرا می کنید ،صفحه ای مطابق شکل نمایش داده می شود ،همان طور که مشاهده می کنید ،کلید هایی برای استفاده کاربر در نظر گرفته شده که در واقع هر کدام از آنها یک کلید میان بر ،برای گزینه ی مرتبط در یکی از منوهای لینگو می باشد . هنگامی که هیچ صفحه ای در لینگو باز نباشد ،بسیاری از کلیدها غیر فعال هستند .اما با باز کردن یک برنامه به زبان لینگو و اجرای آن تقریبا همه این کلیدها فعال می شوند .برای آشنایی بیشتر با هر کدام از این کلیدها ،در ارتباط با هر کدام به اختصار توضیح می دهیم. Toolbar کلید کلید کلید ‏Solve کلید ‏New ‏Cut ‏Send ‏Find ‏To Back ‏Undo ‏Solution ‏Help ‏Topics ‏Open ‏Go ‏To Line ‏Redo ‏Copy ‏Matrix ‏Picture ‏Help ‏Close ‏All ‏Save ‏Math ‏Parenthesis ‏Paste ‏Tile Windows ‏Print ‏Options کاربرد کاربرد کاربرد کاربرد باشد. می ‏Lingo منوی گزینه Solveاز میان بر گزینه کلید باشد.باشد. میمی ‏File منویEdit ‏Newازازمنوی بر بر گزینه Cut میانمیان کلیدکلید Windowمی منویاز منوی ‏Send ‏Find ‏To Back گزینه میان کلیدبر کلید میان Editمی باشد. Undoاز گزینهبربرگزینه کلیدمیان باشد. می ‏Lingo منوی از ‏Solution گزینه بر میان کلید ‏Fileباشد. Helpمی گزینه و کلیک کلیدبرجستجو باشد. میمیباشد. منوی برایاز ‏Open میان کلید باشد.باشد. ‏Edit منویمنوی Goاز ‏To ‏Line گزینه بر میان کلید Editمی Redoاز گزینه بر میان کلید ‏Copy می ‏Lingo منوی از ‏Matrix ‏Picture گزینه بر میان کلید منوی می باشد. ‏Help ‏Allبر از گزینه میان کلید باشد. Windowمی منوی ازاز منوی ‏Close میان بر کلید باشد. می ‏Save گزینه میان بر کلید Editمی ‏Fileمنوی Math Parenthesisاز گزینه بر میان کلید باشد.از منوی Editمی باشد. کلید میان بر گزینه Paste Windowمی منویاز منوی ‏Tile باشد. ‏Windows گزینه میان بر کلید باشد. می ‏File از ‏Print گزینه بر میان کلید باشد.از منوی Lingoمی باشد. کلید میان بر گزینه Options )Menus (File Menu پنجره ی جدید برای وارد کردن داده ها ایجاد می کند ‏New پرونده ی موجود را باز می کند .در جعبه های محاوره ای ( ، )dialog boxمی توانید پرونده را از میان انواع مختلف پرونده ها و در مکان های مختلف انتخاب کنید ‏Open پنجره ی فعال را ذخیره می کند .می توانید داده های ورودی (یک مدل) ،یک پنجره گزارش یا یک پنجره فرمان را ذخیره کنید ‏Save پنجره فعال را با نام مشخصی ذخیره می کند .کاربرد این فرمان در تغییر نام پرونده اصالح شده است ،در حالی که پرونده اولیه حفظ می شود ‏Save As پنجره فعال را می بندد .اگر پنجره شامل داده های جدید باشد ،برای ذخیره برنامه سوال م@ی کند ‏Close پنجره فعال را به چاپگر می فرستد ‏Print چاپگر را انتخاب می کند .همچنین ،گزینه های مختلفی را برای شکل چاپ ،در دسترس قرار می دهد ‏Print Setup پیش نمایش محتویات پنجره ی فعال برای چاپ را نمایش می دهد ‏Print Preview تمامی زیر پنجره های عملیات را که در حالت معمولی به پنجره گزارش فرستاده می شود ،به یک فایل نوشتاری ارسال می کند. وقتی محل پرونده نوشتاری را تعیین کردید ،عالمتی در کنار این فرمان در منوی فایل ظاهر خواهد شد .برای غیر فعال کردن این فرمان ،می توانید مجددا این گزینه را انتخاب کنید ‏Log Output برای انجام عملیات به صورت خودکار یک فایل بسته ای ( )batch fileلینگو را همراه با فرمان ها و متن ،وارد حافظه می کند. یک مدل می تواند در حافظه قرار گیرد ،حل شود و نتیجه حل آن در یک پنجره گزارش قرار گرفته و در یک فایل ذخیره شود .اگر یک فرمان بسته ای را قبل از شروع متن مدل به کار برید ،مدل و دستورات موجود در فایل ،در پنجره گزارش و در حل دیده می شود ‏Take ‏Commands صدور یک مدل در فرمت MPSیا MPI ‏Export File دادن کلمه عبور جدید جهت به روز رسانی سیستم و آزاد شدن نرم افزار ‏License واداشتن شما به استفاده از شناسه کاربری و کلمه عبور برای دستیابی به پایگاه اطالعات از طریق تابع @)(ODBC خروج از نرم افزار ‏Database User ‏Info ‏Exit )(Edit Menu ‏Menus آخرین کار انجام شده را باز می گرداند ‏Undo بر عکس عملیات Undoرا انجام می دهد ‏Redo متن انتخابی را پاک کرده ،در حافظه نگه می دارد تا جای دیگری آن را قرار دهد ‏Cut متن انتخابی را در حافظه کپی می کند تا در جای دیگری قرار داده شود ‏Copy محتوای حافظه ( )Clipboardرا در جای انتخابی قرار می دهد ‏Paste Pasteهمرا@ه@ ب@@ا ا@ن@تخابن@@وع Pasteاز ن@@ظر ف@@رم@تم@تن ‏Paste Special تمامی محتویات پنجره فعال را انتخاب می کند تا بتوان از آن در کپی و یا برش استفاده کرد ‏Select All جستجوی قسمتی از رشته ی متنی در پنجره ی فعال ‏Find جستجوی رشته ی متنی مشابه بعدی در متن که قبال توسط Findپیدا شده ‏Find Next جابجا کردن رشته های متنی با متن جدید بصورت دلخواه ‏Replace حرکت دادن ( Cursorنشانگر صفحه کلید) به شماره خط دلخواه از پنجره فعال ‏Go To Line پرانتز های بسته را که با پرانتز های باز انتخاب شده ،متناظر هستند ،پیدا م@ی کند ‏Match Parenthesis توابع داخلی لینگو را در جای مشخص شده ،قرار می دهد .بعد از انتخاب این فرمان ،زیر منوی دیگری باز می شود که شامل گروه بندی های مختلفی از توابع است ‏Paste Function انتخاب قلم دلخواه با فرمت دلخواه (پس از Selectکردن متن فعال می شود) ‏Select Font افزودن لینک از نرم افزار های دیگر (به عنوان مثال یک اسالید )PowerPoint ‏Insert New Object کنترل ارتباطات عناصر خارجی موجود در Document ‏Links خاصیت دادن به عناصر موجود در Document ‏Object Properties )(LINGO Menu ‏Menus مدل مربوط به پنجره فعال را برای حل ،به حل کننده لینگو می فرستد ‏Solve جعبه محاوره ای ( ، )Dialog Boxگزینه هایی از گزارش حل را باز می کند ،که امکان تعیین چگونگی ظاهر مورد نظر گزارش حل را فراهم می کنند ‏Solution یک گزارش حد (تحلیل حساسیت) ارائه می کند .این گزارش نشان می دهد که تغییرات ضرایب می تواند در چه محدوده ای باشد ،بدون اینکه مقادیر بهینه عوش شوند ‏Range امکان مشاهده و تغییر پرامترهای مختلفی را که در هنگام استفاده از لینگو درگیر هستند ،فراهم می کند ‏Options ویرای@ش دیگری از مدل را ب@ه ص@ورت ج@بری ،تح@ت لیندو و ی@ا س@اختار MPSتولی@د م@ی کند .ای@ن فرمان م@ی تواند برای شماره گذاری س@طر ه@ا و نمای@ش مدل ب@ه ص@ورتی ک@ه کاربر بتوان@د راح@ت ت@ر ب@ا آ@ن کار کند ،مورد اس@تفاده قرار می گیرد .فرمان ، GENاز پنجره فرمان نیز ،دارای قابلیت مشابهی از این نوع است ‏Generate مدل را بصورت ماتریسی نمایش می دهد ‏Picture خطاهای موجود در مدل را یافته و توضیح می دهد ‏Debug اطالعاتی راجع به مدل در اختیار قرار می دهد (مانند تعداد متغیرها ،تعداد سطرها و)... ‏Model Statistics تمام و یا قسمتی از سطرهای انتخابی مدل را نمایش می دهد ‏Look )(Window Menu ‏Menus امکان دسترسی به رابط کاربر با خط فرمان لینگو را فراهم می آورد .در اینجا می توانید فرمان ها را در مقابل عالمت :وارد کنید ‏Command ‏Window پنجره وضعیت حل کننده لینگو را که نمایش دهنده اطالعاتی در مورد وضعیت بهینه سازها از قبیل تعداد تکرارها و زمان اجرای صرف شده است ،باز می کند ‏Status Window پنجره ی رویی را به پشت می فرستد تمام@ی پنجره های باز را می بندد تمامی پنجره های باز را به گونه ای مرتب می کند که همگی فضای مساوی را در پنجره برنام@ه اشغال کنند تمامی پنجره های باز را به صورت آبشاری ،از سمت چپ -باال تا سمت راست-پایین مرتب کرده و پنجره فعال را نیز در باال قرار می دهد آیکون هایی را که نشانه پنجره های کوچک شده است ،در امتداد پایین صفحه نمایش، مرتب می کند ‏Send to Back ‏Close All ‏Tile ‏Cascade ‏Arrange Icons )(Help Menu ‏Menus راهنمای موضوعی ،امکان جستجو نیز وجود دارد ثبت لینگو بصورت آنالین شما را از ورژن های جدید و به روز رسانی نرم افزار بصورت آنالین آگاه می سازد صفحه آغازین لینگو را به همراه اطالعات عمومی مربوط به آن نمایش می دهد ‏Help Topics ‏Register ‏AutoUpdate ‏About ‏LINGO پنجره مدل نویسی( ) Lingo Model لینگ@و زبان برنام@ه نویس@ی خاص خود را دارد ،همانن@د زبان های برنامه نویس@ی دیگ@ر لینگ@و نی@ز دارای اص@ول و قواع@د نگارش@ی و منطق@ی در برنامه نویس@ی م@ی باش@د ،ب@ا اس@تفاده از Helpجام@ع نرم افزار و همچنی@ن با بهره گیری از پیغام های خط@ا و س@عی در رف@ع آنه@ا م@ی توان ب@ه تدری@ج بر آن مسلط شد .پنجره ی برنامه نویسی را در زیر مشاهده می کنید : پیاده سازی مدل در لینگو توسعه ی یک مدل بهینه س@ازی ی@ک شرک@ت کامپیوتری@ دو نوع کامپیوت@ر اس@تاندارد و تورب@و تولی@د م@ی کند .س@ود ه@ر کامپیوتر استاندارد برای@ این شرکت@ 100$و هر دستگاه توربو برابر 150$است@ .در شرکت@ ،خط تولی@د کامپیوت@ر اس@تاندارد حادکث@ر ت@ا 100دس@تگاه در روز م@ی توان@د تولی@د کند .همچنین حداکثر توان تولید خط توربو برابر 120دستگاه در روز اعالم شده است .شرکت نیروی کار محدود 160نف@ر س@اعت در ه@ر روز در اختیار دارد .کامپیوترهای@ اس@تاندارد یک س@اعت نیروی کار الزم دارن@د در حال@ی ک@ه کامپیوترهای@ تورب@و 2ساعت نیروی کار نیاز دارند .مس@اله ای ک@ه شرک@ت ب@ا آ@ن روبروس@ت ای@ن اس@ت@ ک@ه ترکیبی از کامپیوترهای@ اس@تاندارد و تورب@و را برای@ تولی@د انتخاب کن@د ک@ه س@ودش را بیشین@ه کن@د در حال@ی که از محدودیت های@ توان خطوط تولید و ظرفیت نیروی@ کار تجاوز نکند. یک مدل بهینه سازی شامل موارد زیر است : تابع هدف – فرمولی است که دقیقا آنچه را که می خواهید بهینه کنید ،بیان می کند .در مدل های مربوط به کسب و کار این یک تابع سود است که می خواهید آن را بیشینه کنید و یا یک تابع هزینه اس@ت که می خواهید آن را کمینه کنید .مدل ها ممکن است حداکثر یک تابع هدف داشته باشد .در مثالی که داریم ،تابع هدف، سود شرکت را به صورت تابعی از خروجی کامپیوترهای استاندارد و توربو محاسبه می کند. متغیرها – کمیت هایی هستند که تحت کنترل شما هستند و شما باید تصمیم بگیرید که بهترین مقادیر این متغیر ها کدامند؛ به همین دلیل گاها به آنها متغیر های تصمیم گیری نیز می گویند .هدف بهینه س@ازی یافتن مقادیری برای متغیرهای مدل است که با توجه به همه شرایط محدود کننده که روی متغیرها اعمال می شوند ،بهترین مقدار را برای تابع هدف تولید کنند .در این مثال ما دو متغیر تصمیم گیری یکی مربوط به تعداد کامپیوترهای استاندارد و دیگری مربوط به تعداد کامپیوترهای توربو داریم. محدودیت ها – تقریبا بدون استثنا ،برخی محدودیت ها برای مقادیری که متغیرها می توانند اتخاذ کنند خواهد بود .حداقل یک منبع محدود خواهد بود( .برای مثال زمان ،مواد اولیه ،بودجه دپارتمان شما و )...این محدودیت ها به وسیله توابعی از متغیرهای مدل بیان می شوند .این فرمول ها به عنوان محدودیت شناخته می شود ،چون مقادیری را که متغیرها می توانند بگیرند ،محدود می کنند. در ای@ن مثال م@ا برای ه@ر خ@ط تولی@د ی@ک محدودیت و برای کل نیروی کار استفاده شده نیز یک محدودیت داریم. متغیرهای Standardو Turboرا به عنوان تعداد کامپیوترهای اس@تاندارد و تورب@و ک@ه شرک@ت م@ی خواهد تولی@د کن@د در نظ@ر م@ی گیریم .هدف شرک@ت بیشینه کردن س@ود ک@ل اس@ت ک@ه ای@ن س@ود برابر مجموع س@ود حاصل از کامپیوترهای استاندارد و توربو است : ;Max = 100 * Standard + 150 * Turbo حال محدودیت مربوط به ظرفیت خطوط تولید را اعمال می کنیم : ;Standard <= 100 ;Turbo <= 120 محدودیت مربوط به نیروی کار نیز بصورت زیر است : ! ;Our labor supply is limited ;Standard + 2 * Turbo<= 160 توسعه مدل بهینه سازی در لینگو همانن@د اکث@ر زبان های برنام@ه نویس@ی ،ه@ر برنام@ه ی لینگ@و نیز دارای ی@ک س@اختار کل@ی م@ی باشد .در ای@ن قس@مت قال@ب اصلی ی@ک برنام@ه ب@ه زبان لینگ@و را معرف@ی م@ی کنی@م ،تا خواننده دیدی کل@ی از آ@ن بدس@ت آورد .آنچ@ه در ای@ن فص@ل م@ی بایست مورد توج@ه قرار گیرد اصول کلی است که بدان پرداخته شده است؛ در فص@ل های بعدی مطال@ب ب@ا تفص@یل بیشتری مطرح خواهند شد. ی@ک برنام@ه در لینگ@و ب@ا کلم@ه “ ”Modelآغاز و ب@ه کلم@ه “ ”Endخت@م می شود و معموال از چهار بخش زیر تشکیل می شود : بخش مجموعه ها؛ بخش داده ها؛ تابع هدف؛ بخش محدودیت ها؛ همچنی@ن م@ی توان در ی@ک برنام@ه ،تاب@ع هدف را بع@د از نوشت@ن محدودیت ها آورد. مجموعه ها در لینگو مجموع@ه ه@ا در لینگ@و در واق@ع قالب@ی برای تعری@ف متغیرهای برنام@ه می باشن@د (ای@ن متغیره@ا م@ی توانن@د متغی@ر تص@میم گیری و یا پارامترهای عددی مدل باشند) .در لینگو دو نوع مجموعه داریم : مجموعه های مستقل؛ Primitive Sets مجموعه های وارث ؛ Derived Sets مجموع@ه های مس@تقل برای تعری@ف متغیرهای آرای@ه ای یک بعدی و مجموع@ه های وارث برای تعری@ف آرای@ه های چن@د بعدی مورد استفاده قرار می گیرند. مجموعه های مستقل ساختار کلی تعریف مجموعه های مستقل در لینگو به صورت زیر می باشد : ; نام متغیرها / :عناصر مجموعه /نام مجموعه ب@ه عنوان مثال در برنام@ه قب@ل ،مجموع@ه ای ب@ه نام Hourب@ا 24عنصر تعریف شده است و دو متغیر Xو Needنیز دو متغیر با 24عنصر هستند. برای درک بهت@ر مطل@ب ب@ه مثال زی@ر ک@ه ی@ک خ@ط از ی@ک برنام@ه اس@ت توجه کنید : ;Factory /1 .. 3 /:Setup_Cost Factoryو Setup_Costم@ع@رفی@@کآرا@ی@ه@ ت@@@کب@@@ع@دیش@@ام@ل 3خ@ان@ه@ ا@ند، ب@@ا ا@ی@نت@@فاو@تک@@ه@ ب@@@ه@ خ@ان@ه@ های Factoryم@قدارد@هین@@م@یک@@نی@م و آن@ه@ا را در م ع@م@لیاتر@یاض@یش@@رکتن@@مید@هی . برای مقدارده@ی ب@ه متغی@ر Setup_Costبای@د در بخ@ش مقدارده@ی س@ه عدد به آ@ن نس@بت@ داد ک@ه ای@ن اعداد ب@ه ترتی@ب در خان@ه های اول ت@ا س@وم آ@ن قرار می گیرند. )Setup_Cost(3 )Setup_Cost(2 )Setup_Cost(1 نکت@ه قاب@ل ذک@ر در مورد عناص@ر مجموع@ه ای@ن اس@ت ک@ه اس@م عناص@ر م@ی تواند عدد ،رشته ای از اعداد و یا حروف باشد( .فقط باید با حرف شروع شود). برای آشنایی بیشتر چند مجموعه در پایین آمده است : ‏Department / Industrial, Mechanic, Civil, ;Electronic, Computer, Material/: Average ;WAREHOUSE / WH1, WH2, WH3/: CAPACITY ;CUSTOMER / C1, C2, C3, C4/: DEMAND مجموعه های وارث در لینگ@و نم@ی توان ب@ه ص@ورت مس@تقیم ماتری@س و آرای@ه های چند بعدی را تعری@ف کرد .برای تعری@ف آرای@ه های چن@د بعدی از مجموعه های وارث استفاده می کنیم. ساختار کلی مجموعه های وارث بصورت زیر است : ‏Sets: @ث ;آرا@یه@ /ا@سمم@جموعه@ هایوار / )(Set1 ;Car/1..3/ )م@ثا@ل ; متغیرها ) Set1, Set2, Set3, … , Setn ( :اسم مجموعه وارث ;Demand (Car, City): Dem )م@ثا@ل ‏Endsets برای درک بهتر به مثال های کلی زیر توجه کنید : فرض کنی@د کارخان@ه ای س@ه نوع ماشی@ن مختل@ف تولی@د م@ی کن@د و مشتریان پنج شه@ر مختل@ف نی@ز س@فارش های متفاوت@ی از ه@ر نوع ماشی@ن ب@ه کارخان@ه می دهند .حال زیر برنامه ی زیر را در نظر بگیرید: ‏Sets: ;Car/1..3/ ;City/1..5/ ;Demand (Car, City): Dem ‏Endsets ای@ن زی@ر برنام@ه مجموع@ه ای مس@تقل ار نوع Carب@ه ص@ورت آرای@ه تک بعدی 3خان@ه ای و مجموع@ه ای مستقل از نوع Cityبه ص@ورت ی@ک آرایه ت@ک بعدی 5خان@ه ای تولی@د م@ی کند( .دق@ت کنی@د که متغیری از نوع Carیا Cityنداریم). در خ@ط چهارم ای@ن زی@ر برنام@ه ،مجموع@ه وارث Demandب@ه صورت ی@ک ماتری@س 5*3و ماتری@س Demاز نوع Demandتعری@ف می شود؛ بنابرای@ن در بخ@ش مقدارده@ی ،م@ی بایس@ت 15عدد ب@ه متغیر Dem نس@بت داد ،ک@ه در ای@ن حال@ت مقدار تقاضای شه@ر jاز ماشی@ن iدر خانه ای واقع در سطر iام و س@تون jام ماتریس Demقرار می گیرد. در قس@مت داخ@ل اس@لش ه@ا (اندی@س های@ی ک@ه ب@ا ه@م ارتباط دارن@د) می توانی@م اندی@س های@ی را ذک@ر کنی@م ک@ه ارتباطشان ب@ا ه@م تعری@ف شده است. در ص@ورت حذف قس@مت بی@ن اس@لش ه@ا ،فرض بر ای@ن اس@ت که ارتباط تمام اندی@س ه@ا در تمام بع@د ه@ا ،ب@ا ه@م تعری@ف شده اس@ت و متغیرهای وابس@ته به مجموع@ه ،ب@ا تمام اندی@س های خود م@ی توانن@د مقدار بگیرند .استفاده از قس@مت اندی@س های@ی ک@ه ب@ا ه@م ارتباط دارن@د ب@ه خص@وص در مسائل کنترل پروژ@ه کاربرد دارد ک@ه خود مبحث@ی جداگان@ه اس@ت .مثال پی@ش رو مطالب را بیشتر برای ما روشن می سازد: 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 در مثال فوق مجموع@ه TASKاز 11عض@و تشکی@ل یافت@ه اس@ت و مجموعه STATIONاز 4عضو .ب@ا ای@ن وجود مجموع@ه PREDبه جای 11*11=121عض@و تنه@ا از 12عض@و مشخ@ص شده ،تشکی@ل ش@ده در حال@ی که TXSشامل 8*4=32عضو می باشد. توج@ه کنی@د ک@ه در برنام@ه های مختل@ف گاه@ی مواردی پی@ش م@ی آی@د که هنگام کار ب@ا مجموع@ه ه@ا (در تعری@ف مجموع@ه ه@ا و ی@ا هنگام استفاده از توابع forو یا ) sumبرخی از اندیس های مجموعه را می بایست نادیده گرف@ت و ی@ا ه@ر شرط خاص دیگری را بای@د ب@ا برخ@ی از اندیس های مجموع@ه ه@ا (و ن@ه تمام@ی آنه@ا) اعمال کرد؛ در ای@ن حالت از عملگرهای مختلف و عبارات شرطی استفاده می کنیم که در فصل های آتی در مورد آنها به تفصیل بحث خواهیم کرد. بخش داده ها بخ@ش داده ه@ا ب@ه م@ا ای@ن امکان را م@ی ده@د ک@ه داده ها را از بقی@ه مدل جدا کنیم .ای@ن کار باع@ث می شود در هنگام تغیی@ر و ی@ا توس@عه مدل راح@ت ت@ر و ک@م اشتباه تر عم@ل کنیم .در بخ@ش داده ک@ه مابی@ن دو کلمه کلیدی DATAو@ ENDDATAاس@ت م@ی توانی@م مقادیر پارامتره@ا و اس@م عناص@ر مجموع@ه های@ی را ک@ه در بخش قبلی تعریف شده اند مقداردهی کنیم. : مثال زیر توجه کنید3 به 1) SETS: SET1 / A, B, C/: X, Y; ENDSETS DATA: X = 1, 2, 3; Y = 4, 5, 6; ENDDATA 2) SETS SET1 / A, B, C/: X, Y; ENDSETS DATA X, Y = 1, 4, 2, 5, 3, 6; ENDDATA 3) SETS SET1 : X, Y; ENDSETS DATA SET1, X, Y = A 14 B25 C 3 6; ENDDATA در هر سه مثال فوق مجموعه SET1دارای سه عنصر A ، Bو Cاست که دو خصیصه Xو Yبه آن نسبت داده شده و جواب هر سه برابر است با : ) Y ( A ) = 4, Y ( B ‏X ( A ) = 1, X ( B ) = 2, X ( C ) = 3 = 5, Y ( C ) = 6 پارامترهای 1*1را می توان مستقیما در قسمت داده ها تعریف و مقداردهی کرد .مثال : ‏DATA ;INTEREST_RATE = .085 ‏ENDDATA و یا ‏DATA ;INTEREST_RATE, INFLATION_RATE = .085, .03 ‏ENDDATA INTEREST_RATEدر هر دو م@ثا@لف@@وقب@@را@بر 085.و در م@ثا@لدو@م @ست INFLATION_RATEب@@را@بر 03.ا . تحلیل What if برخی مواقع مقدار دقیق یک پارامتر را نداریم و می خواهیم برای محدوده ای از اعداد ای@ن پارامت@ر را مقداردهی کرده و مدل را ح@ل کنیم .در ای@ن مواق@ع در قس@مت داده ه@ا ب@ه جای اینکه مقدار عددی آ@ن پارامت@ر را وارد کنی@م عالم@ت س@وال “ ? ” قرار می دهیم .در ای@ن ص@ورت ه@ر بار ک@ه م@ی خواهی@م مدل را ح@ل کنیم، لینگ@و مقدار عددی ای@ن پارامت@ر را از م@ا م@ی پرس@د و سپس شروع به حل مدل می کند .به مثال زیر توجه کنید. DATA: ? = INFLATION_RATE ‏ENDDATA در ای@ن مثال ،در ه@ر بار ح@ل مدل ،لینگو مقدار INFLATION_RATEرا ب@ه وس@یله پنجره ای از ما می خواهد. ب@ه مثال های زی@ر در مورد مقدارده@ی تک@ی ب@ه متغیرها و پارامتر ها توجه کنید : SETS DAYS / MO, TU, WE, TH, FR, SA, SU/: NEEDS; ENDSETS DATA: NEEDS = 20; ENDDATA . می گیرند20 مقدارNEEDS در این مثال همه اعضای SETS DAYS / MO, TU, WE, TH, FR, SA, SU/: NEEDS, COST; ENDSETS DATA: NEEDS, COST = 20, 100; ENDDATA و همه اعضای20 مقدارNEEDS در ای@ن مثال هم@ه اعضای . می گیرند100 مقدارCOST در بخ@ش داده ه@ا اگ@ر مقدار برخ@ی از متغیره@ا وارد نشده باشد، آنه@ا ب@ه ص@ورت متغیرهای تص@میم در نظ@ر گرفت@ه م@ی شون@د نه اعداد ثابت .به مثال زیر توجه کنید : ‏SETS ;YEARS / 1..5 /: CAPACITY ‏ENDSETS ‏DATA ; CAPACITY = 34, 34, , , ‏ENDDATA در این مثال ) CAPACITY (1و ) CAPACITY (2برابر 34در نظ@ر گرفته م@ی شون@د و عناصر س@وم تا پنجمCAPACITY متغیر به حساب می آیند. بخش جواب اولیه در بعض@ی از مس@ائل ،م@ا جواب@ی نس@بتا خوب و نزدی@ک@ به بهین@ه را داری@م و ب@ه دنبال یافت@ن جواب بهین@ه و ی@ا بهتر هس@تیم .در ای@ن موارد (خصوصا در مدل های عدد ص@حیح و غی@ر خط@ی) ب@ا دادن جواب اولی@ه ب@ه لینگو، س@ریعتر ب@ه جواب بهین@ه و ی@ا بهت@ر خواهی@م رس@ید .این کار ک@ه اختیاری م@ی باش@د در بخ@ش جواب اولی@ه و مابین دو کلمه کلیدی INITو ENDINITصورت می گیرد. توابع و عملگرها در لینگو برای تس@هیل مدل س@ازی ،در لینگ@و تواب@ع و عملگرهای متفاوتی وجود دارند .حت@ی اگ@ر ب@ا شک@ل کل@ی اس@تفاده از ای@ن توابع آشنای@ی نداشت@ه باشی@د ،لینگ@و ای@ن شک@ل کل@ی را در اختیار شما قرار م@ی دهد .برای ای@ن منظور در منوی Editگزینه Paste Functionرا انتخاب نمایی@د ،مالحظ@ه م@ی کنی@د ک@ه لیستی از انواع توابع برای شما نمایش داده می شود. : این لیست به شرح زیر می باشد  External Files Function  Financial Function  Mathematical Function  Probability Function  Set Function  Variable Domain Function  Other Function بررس@ی ت@ک ت@ک ای@ن تواب@ع از س@طح کار ما فرات@ر اس@ت؛ همچنین ب@ه خاط@ر عدم نیاز ب@ه تواب@ع مال@ی و احتمال@ی در برنامه ریزی خط@ی در اینج@ا فق@ط ب@ه تشری@ح برخ@ی تواب@ع دس@ته پنج@م و ششم می پردازیم. (در ص@ورتی ک@ه مایلی@د اطالعات بیشتری در ارتباط ب@ا س@ایر توابع لینگ@و بدس@ت آوری@د در منوی Helpگزینه Help Topicsرا انتخاب نمایی@د و پنجره محاوره ای باز شده را در حالت Indexقرار دهی@د؛ س@پس کلم@ه Functionرا تای@پ کنید ،در ای@ن حال@ت لینگ@و اطالعات مفی@د بس@یاری در اختیار شم@ا قرار می دهد). نکته : قب@ل از معرف@ی تواب@ع ب@ه ای@ن نکت@ه مه@م توج@ه کنی@د که در لینگو هنگام ب@ه کار بردن تواب@ع ،میبایست قبل از نام تاب@ع از عالمت @ استفاده کرد. ‏در اینجا به بررسی دو تابع FORو SUMمی پردازیم. تابعFOR ای@ن تاب@ع در دس@ته Set Loopingیعن@ی تواب@ع حلقه ای قرار دارد و شکل کلی آن بصورت زیر می باشد : ;)@FOR( Set : expression در صورت استفاده از عبارات شرطی به صورت زیر عمل کنید : ;)@FOR( Set | condition: expression وجود تاب@ع Forدر لینگ@و در واق@ع یک@ی از برتری های بارز این زبان م@ی باشد .از ای@ن تاب@ع برای نس@بت دادن ی@ک ویژگ@ی به تمام ی@ا بخش@ی از اعضای ی@ک مجموع@ه اس@تفاده م@ی کنیم .به مثال های زیر توجه کنید : فرض کنی@د انباری داری@م ک@ه در آ@ن هف@ت قلم کاالی متفاوت نگهداری می کنیم: ‏SETS: ;Items /1..7/: Capacity ‏ENDSETS حال فرض کنی@د ظرفی@ت انبار محدود بوده و حداکث@ر 12واحد از ه@ر قل@م م@ی توان در آ@ن نگهداری کرد .برای وارد کردن این محدودیت به صورت زیر عمل می کنیم : @);For(Items (i): Capacity (i) <= 12 این عبارت در واقع معادل عبارت زیر است : ;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متعل@ق به مجموعه های متفاوت باشند نمی توان از شکل خالصه شده باال استفاده کرد. حال فرض کنی@د ظرفی@ت انبار فق@ط برای دو قل@م کاالی آخر (اقالم 6و ) 7محدودی@ت داشت@ه باش@د؛ برای وارد کردن این محدودی@ت از عبارات شرط@ی و عملگرهای منطق@ی استفاده می کنیم : @)For(Items (i) | i#GT#5: Capacity (i );<= 12 تابعSUM ای@ن تاب@ع نی@ز همانن@د تاب@ع Forدر دس@ته توابع Set Looping قرار دارد و شکل کلی کاربرد آن به صورت زیر می باشد : ;)@SUM (Set: expression در صورت استفاده از عبارات شرطی به صورت زیر عمل کنید : ;)@SUM (Set | condition: expression از ای@ن تاب@ع برای محاس@به حاص@ل جم@ع اعضای ی@ک مجموع@ه یا عبارت@ی شام@ل اعضای ی@ک مجموع@ه اس@تفاده می کنیم .برای روشن شدن مطلب به مثال های زیر توجه کنید : فرض کنی@د 5مشتری مختل@ف تقاضاهای متفاوت@ی از کاالی Xدارند؛ حال این زیر برنامه را در نظر بگیرید : ‏SETS: ;Customers /1 2 3 4 5/: Demand, cost ‏ENDSETS ‏DATA ;Cost = 5 1 3 4 6 ‏ENDDATA حال اگ@ر بخواهی@م مجموع تقاضاه@ا برای کاالی Xرا محاس@به نماییم، کافیست عبارت زیر را به برنامه بیافزاییم : ‏Total_Demand = @Sum (Customers (i): Demand ));(i در واقع این عبارت معادل عبارت زیر می باشد : ‏Total_Demand = Demand (1) + Demand (2) + ;)Demand (3) + Demand (4) + Demand (5 می توانستیم از عبارت خالصه شده زیر نیز استفاده کنیم : ‏Total_Demand = @Sum (Customers: ;)Demand » بخش سوم « حل مسائل • انواع مسائل • – Case Studyب@@@یانم@سئله@ • تحلیل خروجی • تحلیل حساسیت انواع مسائل لینگو قادر به ح@ل مسائل مختل@ف بهینه س@ازی از جمل@ه برنامه های خطی، کوآدراتی@ک ،خط@ی عدد ص@حیح ،کوآدراتی@ک عدد صحیح ،عدد ص@حیح خط@ی خال@ص ،عدد ص@حیح کوآدراتی@ک خال@ص ،غی@ر خط@ی ،غیر خط@ی عدد ص@حیح و غی@ر خط@ی عدد ص@حیح خال@ص می باش@د .مدل های فوق توس@ط لینگ@و تشخی@ص داده شده و در گزارش خروجی مدل پ@س از ح@ل آ@ن ب@ه ترتیب فوق LP، QP، ILP، IQP، PILP، PIQP، NLP، INLP، PINLPخواهی@م داشت .در اینج@ا به پیاده سازی و تحلیل یک مدل خطی می پردازیم. Case Study شرک@ت داکوت@ا فرنیچ@ر ،تولی@د کننده می@ز تحری@ر ،می@ز و ص@ندلی است. تولی@د ه@ر کدام از انواع مبلمان ب@ه الوار و دو نوع نیروی کار ماهر در دو زمین@ه نجاری و پرداخ@ت نیاز دارد .انواع مبلمان به الوار و دو نوع نیروی کار ماه@ر در دو زمین@ه نجاری و پرداخ@ت نیاز دارد .مقدار هر ی@ک از مناب@ع مورد نیاز برای تولی@د ه@ر یک از انواع مبلمان در جدول ذیل آمده است : منبع میز تحریر میز صندلی الوار (فوت تخته) 8 6 1 زمان پرداخت (ساعت) 4 2 5/1 زمان نجاری (ساعت) 2 5/1 5/0 در حال حاض@ر 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وارد می شود : با استفاده از گزینه Solveجواب نهایی سیمپلکس بصورت زیر خواهد بود : تحلیل خروجی ‏Objective value: 280.0000 مشخص می کند که مقدار بهینه تابع هدف 280است. Valueم@قدار م@تغیر در ج@وا@بب@@@هینه@ م@دلخ@طیرا م@ید@هد .ب@@@نابرا@ینج@وا@ب @ست @ی . ب@@@هینه@ دا@کوتا ت@@ول@ید 2م@یز ت@@حریر ،ص@@فر م@یز ،و 8ص@@ندل ا Reduced Costض@@ری@بم@تغی@ر در س@@طر ص@@فر ج@دو@لب@@@هین@ه@ را م@ی @ی همان@گ@ون@ه@ ک@@ه@ م@یدا@ن@ید ب@@ای@د هزین@ه@ ک@@اهش د@ه@د (م@س@ئله@ م@اکزیم@مس@@از ). ی@@اف@ته@ هر م@تغیر پ@@ای@ه@ ب@@را@بر ص@@فر ب@@اشد .ب@@را@یی@@کم@تغیر غ@یر پ@@ایه@ ،xj @ی@ستک@@ه@ ا@گ@ر xj ، 1وا@حدا@ضاف@ه@ ش@@ود ،ب@@@ه@ آن هزین@ه@ ک@@اهشی@@اف@ته@ م@قدار ا ا@نداز@ه@ ،ج@وا@بب@@@هین@ه@ ک@@اهشم@یی@@اب@د (در@حا@لیک@@ه@ ب@@@قی@ه@ م@تغیرهایغ@یر پ@@ایه@ ب@@را@بر ص@@فر ب@@@مان@ند) .در خ@رو@ج@یل@@ینگ@و ب@@را@یم@سئله@ دا@کوتا ،هزینه@ @ی@گ@ر دا@کوت@ا ب@@@خوا@ه@د ی@@کم@یز @تا@ی@نی@@عن ا ک@@اهشی@@اف@ت@ه@ م@ی@ز ب@@را@بر 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 م@ی توانی@د نمای@ش گرافیک@ی از ه@ر یک از متغیرهای موجود در مدل را داشته باشید. u u o o Y Y k k n n a a h T Th
39,000 تومان