دستور Display چیست؟
در GAMS، دستور Display برای نمایش مقادیر متغیرها، پارامترها، یا سایر اجزای مدل در فایل خروجی (.lst) استفاده میشود. این دستور به شما کمک میکند نتایج بهینهسازی (مثل مقدار حمل کالا یا هزینه کل) را ببینید و تحلیل کنید.
ویژگیهای دستور Display
- نمایش مقادیر: مقادیر بهینه متغیرها (با پسوند .l) یا پارامترها را نشان میدهد.
- انعطافپذیری: میتوانید چندین مقدار را همزمان نمایش دهید.
- خوانایی: خروجی در فایل .lst یا پنجره Log در GAMS Studio بهصورت مرتب نمایش داده میشود.
نحوه استفاده از دستور Display
دستور Display ساختار سادهای دارد:
Display variable.l, parameter, ...;
- variable.l: مقدار بهینه متغیر (مثل x.l برای مقدار حمل).
- parameter: مقادیر پارامترها (مثل c برای هزینه).
- چند مورد را میتوانید با کاما (,) جدا کنید.
پسوندهای مهم
- .l (Level): مقدار بهینه متغیر یا تابع هدف پس از حل.
- .m (Marginal): مقادیر حاشیهای (مثل حساسیت محدودیتها، برای تحلیل پیشرفته).
- برای پارامترها نیازی به پسوند نیست.
مثال عملی: نمایش نتایج در مسئله حملونقل
فرض کنید میخواهید هزینه حمل کالا از یک انبار به سه شهر را کم کنید. کد کامل GAMS با تمرکز روی Display بهصورت زیر است:
* تعریف مجموعهها
Sets
i "شهرهای مقصد" /Tehran, Shiraz, Isfahan/;
* تعریف پارامترها
Parameters
c(i) "هزینه حمل (هزار تومان)" /Tehran 50, Shiraz 100, Isfahan 80/
d(i) "تقاضای هر شهر (واحد)" /Tehran 200, Shiraz 300, Isfahan 250/
s "ظرفیت انبار (واحد)" /۵۰۰/;
* تعریف متغیرها
Variables
x(i) "مقدار حمل به هر شهر (واحد)"
z "هزینه کل (هزار تومان)";
Positive Variable x;
* تعریف معادلات
Equations
Cost "هزینه کل"
Demand(i) "تقاضای هر شهر"
Supply "محدودیت ظرفیت انبار";
Cost.. z =e= sum(i, c(i)*x(i));
Demand(i).. x(i) =g= d(i);
Supply.. sum(i, x(i)) =l= s;
* تعریف و حل مدل
Model Transport /all/;
Solve Transport using LP minimizing z;
* نمایش نتایج
Display c, d, x.l, z.l;
توضیح کد
- دستور Display:
- Display c, d, x.l, z.l: هزینهها (c), تقاضاها (d), مقدار حمل بهینه (x.l), و هزینه کل بهینه (z.l) را نشان میدهد.
- اجزا:
- مجموعهها (i): شهرها.
- پارامترها: هزینه (c), تقاضا (d), ظرفیت (s).
- متغیرها: مقدار حمل (x), هزینه کل (z).
- معادلات: تابع هدف (Cost), تقاضا (Demand), ظرفیت (Supply).
- خروجی: در فایل .lst یا پنجره Log نمایش داده میشود.
خروجی نمونه
در فایل .lst:
---- c هزینه حمل (هزار تومان)
c(Tehran) 50.000
c(Shiraz) 100.000
c(Isfahan) 80.000
---- d تقاضای هر شهر (واحد)
d(Tehran) 200.000
d(Shiraz) 300.000
d(Isfahan) 250.000
---- x مقدار حمل به هر شهر (واحد)
x.l(Tehran) 200.000
x.l(Shiraz) 300.000
x.l(Isfahan) 250.000
---- z هزینه کل (هزار تومان)
z.l 29500.000
- توضیح: GAMS ۲۰۰ واحد به تهران، ۳۰۰ واحد به شیراز، و ۲۵۰ واحد به اصفهان حمل میکند. هزینه کل ۲۹۵۰۰ هزار تومان است.
نکات مهم در استفاده از Display
- پسوند .l: برای متغیرها و تابع هدف همیشه از .l استفاده کنید تا مقادیر بهینه را ببینید.
- خوانایی خروجی: مقادیر بهصورت جدول مرتب نمایش داده میشوند.
- خطاها: اگر متغیر یا پارامتر تعریف نشده باشد، GAMS خطا میدهد. فایل .lst را بررسی کنید.
- کاربرد: از Display برای بررسی صحت دادهها (مثل c, d) و نتایج بهینه استفاده کنید.
نکات کلیدی
- دستور Display: مقادیر پارامترها و متغیرهای بهینه را نشان میدهد.
- پسوند .l: برای نمایش مقادیر بهینه متغیرها و تابع هدف.
- خروجی: در فایل .lst یا پنجره Log بهصورت جدول مرتب.
- کاربرد: برای تحلیل نتایج و بررسی دادهها.
گام بعدی
در قسمت بعدی، با کامنتگذاری در کد (Ontext/Offtext) آشنا میشوید تا کدهایتان خواناتر شوند. فایلهای نمونه و ویدئوهای این دوره را از سایت بهینهیار دانلود کنید!
کلمات کلیدی: آموزش GAMS، دستور Display در GAMS، نمایش نتایج بهینهسازی، GAMS برای مبتدیان، بهینهیار