معادلات (Equations) چیست؟
در GAMS، معادلات روابط ریاضی هستند که تابع هدف (مثل کمینه کردن هزینه) و محدودیتهای مدل (مثل ظرفیت یا تقاضا) را مشخص میکنند. معادلات به GAMS میگویند که چه چیزی را باید بهینه کند و چه شرایطی را باید رعایت کند.
انواع معادلات
- تابع هدف (Objective Function):
- هدفی که مدل دنبال میکند، مثل کمینه کردن هزینه یا بیشینه کردن سود.
- مثال: کمینه کردن هزینه حمل کالا.
- محدودیتها (Constraints):
- شرایطی که مدل باید رعایت کند، مثل تأمین تقاضا یا محدودیت ظرفیت.
- مثال: هر شهر باید حداقل مقدار مشخصی کالا دریافت کند.
- انواع رابطه:
- =e= (مساوی): برای تابع هدف یا روابط دقیق.
- =g= (بزرگتر یا مساوی): برای حداقلها (مثل تقاضا).
- =l= (کوچکتر یا مساوی): برای حداکثرها (مثل ظرفیت).
نحوه تعریف معادلات در GAMS
معادلات با کلمه کلیدی Equations تعریف میشوند و سپس با استفاده از متغیرها و پارامترها نوشته میشوند. ساختار کلی به این شکل است:
Equations
name(index) "توضیح";
name(index).. expression =e/=g/=l= value;
- name: نام معادله (مثل Cost یا Demand).
- index: مجموعهای که معادله به آن وابسته است (اختیاری).
- “توضیح”: توضیح برای خوانایی.
- expression: رابطه ریاضی (مثل جمع متغیرها).
- =e/=g/=l: نوع رابطه (مساوی، بزرگتر یا مساوی، کوچکتر یا مساوی).
مثال ساده: معادلات برای حملونقل
فرض کنید میخواهید هزینه حمل کالا از یک انبار به سه شهر را کم کنید. معادلات شامل تابع هدف (کمینه کردن هزینه) و محدودیت (تأمین تقاضا) هستند:
Sets
i "شهرهای مقصد" /Tehran, Shiraz, Isfahan/;
Parameters
c(i) "هزینه حمل" /Tehran 50, Shiraz 100, Isfahan 80/
d(i) "تقاضا" /Tehran 200, Shiraz 300, Isfahan 250/;
Variables
x(i) "مقدار حمل به هر شهر"
z "هزینه کل";
Positive Variable x;
Equations
Cost "هزینه کل"
Demand(i) "تقاضای هر شهر";
Cost.. z =e= sum(i, c(i)*x(i));
Demand(i).. x(i) =g= d(i);
Model Transport /all/;
Solve Transpo