خرید بک لینک

این فایل قابل ویرایش می باشد وبه صورت زیر تهیه شده:

اين نرم افزار يك نرم افزار بسيار قوي براي حل مسائل خطي , عدد صحيح و كوادراتيك است.

نرم افزار LINO براي استفاده بسيار ساده است. چراكه مدلها به همان صورتي كه نوشته مي شوند

در اين مدل ثبت مي شوند. مثلا”

مثال فوق به همين صورت در LINDO ثبت مي شود.

اين نرم افزار براي حل مسائل با بيش از ۵۰۰۰۰ محدوديت و ۲۰۰۰۰۰ متغير كاربرد دارد.

شروع كار با LINDO :

۱- ابتدا از منوي FILE گزينه NEW را انتخاب مي كنيم تا صفحه اي براي ثبت اطلاعات و نوشتن مسئله آماده شود .

۲- پس از باز شدن صفحه , مي بايست تابع هدف را تايپ كنيم . اين تابع را مي بايست بصورت MAX و يا MIN شروع نماييم . فرمولي كه بعد از كلمات فوق نوشته مي شود تابع هدف نام دارد . مثلا” :

MAX 10 X + 15Y

پس از ثبت تابع هدف نوبت به محدوديتها مي رسد. اين كار را با ثبت كلمات SUBJECT TO در خط بعدي شروع مي كنيم . سپس محدوديت يا محدوديتهاي مسئله را مي نويسيم .

مي توانيم بجاي آن فقط با ST شروع كنيم .

X < 10

AND

Y < 12

نكته اي كه در اينجا بايد عنوان نمود اين است كه LINDO علامت < را بجاي كوچكتر و مساوي در نظر گرفته و > را نيز بعنوان بزرگتر و مساوي در نظر مي گيرد . البته مي توان از علامتهاي <= و >= استفاده نمود.

اگر يك محدوديت ديگر نيز داشته باشيم , مثلا”: X+ 2Y <12 آنرا نيز اضافه مي كنيم.

۴ -پس از اتمام كار در نهايت مي بايست در آخرين خط كلمه END را تايپ كنيم تا اينكه LINDO از به اتمام رسيدن كار مطمئن شود .بنا بر اين مدل به صورت زير خواهد بود :

MAX 10X + 15Y

SUBJECT TO

X< 10

Y< 12

X + 2Y < 16

END

۵ – براي حل مسئله مي توان از منوي LINDO , گزينه SOLVE را انتخاب نمود و يا اينكه مستقيما” نماد @ را كليك كنيم . كه در اين حالت مدل خطي حل شده و جواب آن ارائه مي شود.

( البته بعد از حل مسئله سوال مي شود كه آيا مايل به انجام تحليل حساسيت براي مسئله هستيم يا خير ؟ كه در صورت مثبت بودن جواب اين عمل انجام خواهد شد.)

۶ – پس از حل مسئله صفحه اي نمايان مي شود كه وضعيت حل مسئله را بصورت زير بيان مي كند:

OPTIMIZER STATUS:

STATUS: OPTIMAL

ITERATIONS: 2

INFEASIBILITY: 0

OBJECTIVE: 145

BEST IP: N/A

BRANCHES: N/A

ELAPSED TIME:00:00:01

كه شرح آنها بصورت زير است:

STATUS : وضعيت جواب مسئله را از نظر FEASIBLE- INFEASIBLE و UNBOUNDED ( داراي جواب بهينه – بدون جواب بهينه و داراي فضاي نامحدود) تشريح مي كند.

ITERATION : تعداد تكرارهاي سيمپلكس براي حل مسئله را نشان مي دهد.

INFEASIBILITY: محدوديتي را كه باعث شده است مسئله جواب بهينه نداشته باشد نشان مي دهد.

OBJECTIVE : مقدار تابع هدف را نشان مي دهد.

BEST IP : بهترين جواب عدد صحيح مسئله را نشان مي دهد.( فقط براي مسائل عدد صحيح)

BRANCHES : تعداد شاخه هاي زده شده براي بدست آوردن جواب عدد صحيح را نشان مي دهد.

ELAPSED TIME: زمان صرف شده براي حل مسئله را نشان مي دهد.

۷ – جوابهاي تفصيلي ارائه شده براي مسئله فوق پس از انتخاب گزينه CLOSE صفحه قبلي بصورت زير نمايان خواهد شد:

LP OPTIMAL FOUND AT STEP 2:

OBJECTIVE FUNCTION VALUE

۱) ۱۴۵

VARIABLE VALUE REDUCE COST

X 10 0

Y 3 0

ROW SLACK OR SURPLUS DUAL PRICE

2) 0 2.5

3) 9 0

4) 0 7.5

مرحله اول جواب تابع هدف را نشان مي دهد كه مقدار آن ۱۴۵ است.

جواب متغير ها نيز با بيان ارزش آنها يعني X= 10 و Y= 3 بعنوان جواب بهينه و پايان مراحل LINDO را بيان مي كند.

نكات بيشتر در خصوص جواب نهائي مسئله :

۱ – مقادير REDUCE COST :

اين مقادير در رابطه با متغير هاي اصلي مسئله است , و از دو ديدگاه مي توان به آن نگاه كرد:

الف) مقادير REDUCE COST مربوط به يك متغير غير پايه اي , مقاديري هستند كه مي بايست به ضريب فعلي اين متغير اضافه شود تا اينكه متغير فوق بتواند يك متغير اساسي شود. بديهي است مقادير REDUCE COST براي متغير هاي پايه اي ( اساسي ) برابر صفر است.

ب) مقادير REDUCE COST جريمه هايي هستند كه مي بايست بپر دازيم تا اينكه يك متغير غير اساسي را تبديل به يك متغير اساسي نماييم.

۲- مقادير SLACK يا SURPLUS :

اين ستون در رابطه با بردار سمت راست سيمپلكس كه همان منابع هستند كاربرد دارد.اين مقادير براي محدوديتهاي <= بانام SLACK ( كمكي – كمبود ) و براي محدوديتهاي >= با نام SURPLUS (مازاد) تعريف مي شود.

چنانچه هر يك از محدوديتها بصورت = برقرار شود , مقادير SLACK و يا SURPLUS برابر با صفر خواهد شد.( پس از جايگذاري مقادير جواب متغير ها در محدوديت) . يعني اينكه تمامي منبع مورد نظر به اتمام رسيده است و لذا يك منبع با ارزش است.

چنانچه در مسائل ماگزيمم سازي محدوديت بصورت < بر قرار شود از منبع مورد نظر اضافه خواهيم داشت و مقدار SLACK OR SURPLUS مثبت خواهد بود. يعني اينكه منبع مورد نظر بطور كامل مصرف نشده و لذا از آن مازاد وجود دارد و يك منبع باارزش نيست.

چنانچه در مسائل مينيمم سازي محدوديت بصورت > برقرار شود ازمنبع مورد نظر كمبود داريم و لذا مقدار SLACK/ SURPLUS منفي خواهد شد.

۳- مقادير DUAL PRICE :

اين مقادير همان قيمتهاي سايه اي يا قيمتهاي مزدوج هستند, و بيانگر اين نكته مي باشند كه اگر به ميزان يك واحد منبع مورد نظر را افزايش دهيم به ميزان DUAL PRICE به مقدار تابع هدف اضافه مي شود. مقدار DUAL PRICE منفي به اين معني است كه به ازاي يك واحد افزايش در هر منبع به آن ميزان از تابع هدف كسر مي گردد.( در مسائل حداقل سازي هزينه)

چنانچه ازيك منبع مازاد داشته باشيم مقدار DUAL PRICE آن صفر خواهد بود.

تحليل حساسيت جوابهاي مسئله

نرم افزار LINDO پس از حل مسئله در صورت تمايل ما , مي تواند براي جوابهاي آن تحليل حساسيت نيز بصورت زير انجام دهد. ( SENSIVITY ANALYSIS)

۱- تحليل حساسيت براي بردار تابع هدف:

OBJ COEFFICIENT RANGES

VARIABLE CURRENT COEF ALLOWABLE INCREASE ALLOWABLE DECREASE

– در ستون VARIABLE نام متغير هاي مسئله در تابع هدف ذكر مي شود.

– در ستون CURRENT COEF ضرايب فعلي آنها در تابع هدف ذكر مي شود.

– در ستون ALLOWANCE INCREASE حد افزايش ضريب متغير ها يا به عبارت ديگر حد بالاي مجاز تغييرات ضريب متغير در تابع هدف نشان داده مي شود.

– در ستون ALLOWANCE DECREASE حد پايين تغييرات مجاز ضريب متغير در تابع هدف نشان داده مي شود.

۲- تحليل حساسيت براي محدوديتها :

RIGHT HAND SIDE RANGES

ROW CURRENT R.H.S ALLOWANCE INCREASE ALLOWANCE DECREASE

– در ستون ROW شماره يا نام محدوديت نوشته مي شود.

– در ستون CURRENT R.H.S مقدار فعلي منبع ذكر مي شود.

– در ستون ALLOWANCE INCREASE دامنه افزايش مجاز منبع بگونه اي كه بهينگي جواب بدون تغيير باقي بماند نوشته مي شود.

– در ستون ALLOWANCE DECREASE دامنه كاهش مجاز منبع مورد نظر بگونه اي كه جواب فعلي بدون تغيير باقي بماند نوشته مي شود.

مفاهيم و نكات ضروري ديگر براي استفاده از LINDO

۱- تابع هدف هميشه مي بايست در ابتداي مدل با كلمات MAX ( براي ماگزيمم سازي) و MIN (براي مينيمم سازي ) شروع شود.

۲- پس از اتمام تابع هدف و شروع محدوديتها مي بايست يكي از عبارات زير تايپ شود.

SUBJECT TO

SUCH THAT

S.T.

S T

۳- در پايان مدل مي بايست كلمه END ذكر شود.

۴- براي نام گذاري متغير ها , نرم افزار LINDO محدوديت داشته و نام متغيرها نمي تواند از هشت كاراكتر بيشتر باشد.البته نام متغير حتما” مي بايست با يك حرف (A تا Z ) شروع شود,وبراي هفت كاراكتر بعدي مي توانيم از ساير كاراكتر هاي مجاز عددي و حرفي بجز كاراكتر هاي (! + – = < > ‘ ) استفاده كنيم .

مثلا” كلمات زير براي نام گذاري متغير ها مجاز هستند:

XYZ MY_VAR A12 SHIP.LA

و كلمات زير مجاز نيستند:

THISONESTOOLONG A-HYPHEN 1INFRONT

زيرا: اولين مثال بيش از هشت كاراكتر دارد.

مثال دوم از كاراكتر غير مجاز استفاده شده است.

مثال سوم نيز با كاراكتر عددي شروع شده است.

5 – پس ازنوشتن تابع هدف , براي نوشتن محدوديتها مي توان براي هركدام يك نام تعريف نمود. نام محدوديت از قواعد نام گذاري متغيرها پيروي مي كند. ابتدا مي بايست نام محدوديت نوشته شده و پس از اينكه با يك پرانتز بسته شد, محدوديت اصلي نوشته شود. مثلا”:

X BOUND ) X< 10

6 – LINDO فقط عمل گرهاي + , – , < , > , = را مي شناسد, و مي بايست از بكار گرفتن ساير علامتها در آن اجتناب كنيم.

7 – نمي توان در LINDO از پرانتز براي اولويت دادن به محاسبات استفاده نمود. بلكه خود LINDO از چپ به راست اولويت انجام محاسبات را تعيين مي كند.

8 – دستورات و متنها را نيز مي توان در مدل اضافه نمود. البته قبل از نوشتن دستورات بايد از علامت (u200d!) استفاده نمود.

مثلا” براي مثال فوق مي توان چنين نوشت:

MAX 10 X + 15 Y ! MAX PROFIT

SUBJECT TO

! HERE ARE OUR FACTORY CAPACITY CONSTRAINTS

! FOR BRAND X AND Y

X < 10

Y < 12

! HERE IS THE CONSTRAINT ON LABOR AVALABILITY

X + Y < 16

END

9 – محدوديتها و تابع هدف را در LINDO مي توان يكجا و يا بصورت مجزا نوشت . مثلا”:

MAX

10

X+ 15 Y SUBJECT TO

X

<

۱۰

Y< 12 X+2

Y < 16 END

البته نوشتن به حالت قبلي از نظر خواندن و درك آسان تر است.

10 – مقادير سمت راست در LINDO مي بايست مقادير عددي بوده و متغير نباشند. بنا براين معادله X > Y بوسيله LINDO رد مي شود , بنا براين مي بايست آنرا بصورت زير نوشت :

X-Y > 0

11- در سمت چپ محدوديتها فقط مي بايست متغير ها و ضرايب آنها وجود داشته باشد, و مقادير ثابت عددي بايد به سمت راست منتقل شوند. مثلا” :

۳X + 4Y – ۱۰ = ۰

قابل قبول نيست و بايد بصورت زير تغيير كند:

۳X + 4Y = 10

كاربردهاي LINDO

علاوه بر مدلهاي خطي ساده, از اين نرم افزار مي توان براي حل مدلهايي بصورت زير نيز استفاده نمود:

• متغير هاي آزاد در علامت

• مدل هاي عدد صحيح

• مدلهاي صفر و يك

• مدلهاي داراي حد پايين

• مدلهاي داراي حد بالا

• مدلهاي كوادراتيك

براي نشان دادن هر يك از حالتهاي فوق مي بايست پس از دستور END در LINDO عباراتي را بصورت زير تايپ نمود:

۱ – چنانچه متغير بصورت آزاد در علامت باشد.

جمله مورد نظر

FREE < VARIABLE >

شرح جمله

براي متغير <VARIABLE> تمامي حدود برداشته شده, و اين متغير تمامي مقادير مثبت و منفي و صفر را مي تواند به خود بگيرد. در اينجا مي بايست پس از اتمام كار و صدور دستور END جمله FREE X را براي اينكه بگوييم متغير X آزاد در علامت است تايپ كنيم.

مثال:

MIN 5X + Y

S T

X + Y > 5

X – Y > 7

END

FREE Y

از نظر LINDO حد پايين متغير را صفر در نظر مي گيرد و براي آ ن منفي معني ندارد . ولي اين دستور باعث مي شود كه متغير Y تمامي مقادير را داشته باشد.

۲ – چنانچه متغير عدد صحيح باشد.

جمله مورد نظر

GIN < VARIABLE>

شرح جمله

اين جمله باعث مي شود كه مقدار متغير مورد نظر در حالت كلي عدد صحيح مثبت در نظرگرفته شود.

مثال:

MAX 11X + 10 Y

ST

2X + Y < 12

X – ۳Y > 1

END

GIN X

GIN Y

اين دستور باعث مي شود هر دو متغير X و Y مقادير عدد صحيح داشته باشند. چنانچه هر دو متغير عدد صحيح باشند بجاي عبارت فوق مي توان از GIN 2 استفاده نمود. يعني اينكه هر دو متغير عدد صحيح هستند.

۳ – چنانچه متغير مورد نظر عدد صحيح از نوع صفر و يك باشد.

جمله مورد نظر

INT< VARIABLE>

شرح جمله

اين جمله باعث مي شود كه متغير مورد نظر مقدار صفر يا يك پيدا كند.

مثال :

MAX -100X + 20 A + 12 B

S T

A – 10 X < 0

A + B < 11

B < 7

END

INT X

۴ – چنانچه بخواهيم براي متغير حد پايين در نظر بگيريم. ( ويا حد بالا)

جمله مورد نظر

SLB < VARIABLE > < VALUE>

SIMPLE LOWER BOUND

شرح جمله

با اين جمله مي توانيم براي متغيري كه در نظر داريم حد پايين مشخص نمائيم , در غير اين صورت LINDO اين حد را برابر با صفر در نظر مي گيرد.

خرید و دانلود

با قیمت 4,000 تومان

برچسب: نویسنده: استخدام کار تاريخ: شنبه 14 فروردين 1395 ساعت: 5:24

صفحه بندی