اجزای اصلی مدل در GAMS
هر مدل بهینهسازی در GAMS از چند جزء اصلی تشکیل شده است که مانند بلوکهای ساختمانی عمل میکنند. این اجزا به شما امکان میدهند دادهها را تعریف کنید، مسئله را مدل کنید، و راهحل بهینه را پیدا کنید. در ادامه، هر جزء را توضیح میدهیم.
۱. مجموعهها (Sets)
- مجموعهها لیستهایی از عناصر هستند که برای سازماندهی دادهها استفاده میشوند.
- مثال: اگر بخواهید هزینه حمل کالا از شهرها را مدل کنید، میتوانید مجموعهای برای شهرها تعریف کنید.
- کد نمونه:
Sets
i "شهرها" /Tehran, Shiraz, Isfahan/;
-
- اینجا i یک مجموعه است که شامل سه شهر تهران، شیراز، و اصفهان است.

۲. پارامترها (Parameters)
- پارامترها دادههای ثابت مدل هستند، مثل هزینه، فاصله، یا ظرفیت.
- مثال: هزینه حمل کالا بین شهرها.
Parameters
c(i) "هزینه حمل از تهران به شهرها" /Tehran 0, Shiraz 100, Isfahan 80/;
اینجا c(i) هزینه حمل از تهران به هر شهر را مشخص میکند.

۳. متغیرها (Variables)
- متغیرها مقادیر تصمیمگیری هستند که GAMS آنها را محاسبه میکند.
- انواع متغیرها: Positive (مثبت)، Binary (۰ یا ۱)، Integer (عدد صحیح)، یا Free (آزاد).
- مثال: مقدار کالای حملشده بین شهرها.
- کد نمونه:
Variables
x(i) "مقدار حمل به هر شهر"
z "هزینه کل";
Positive Variable x;
x(i) مقدار حمل و z هزینه کل است. Positive Variable تضمین میکند که x منفی نشود.

۴. معادلات (Equations)
- معادلات روابط ریاضی مدل هستند، شامل تابع هدف و محدودیتها.
- مثال: تابع هدف برای کمینه کردن هزینه و محدودیت تقاضا.
- کد نمونه:
Equations
Cost "هزینه کل"
Demand(i) "تقاضای هر شهر";
Cost.. z =e= sum(i, c(i)*x(i));
Demand(i).. x(i) =g= 50;
Cost هزینه کل را تعریف میکند و Demand تضمین میکند هر شهر حداقل ۵۰ واحد کالا دریافت کند.

۵. مدل و حل (Model and Solve)
- مدل تمام اجزا (مجموعهها، پارامترها، متغیرها، معادلات) را کنار هم قرار میدهد.
- حل مدل را به حلکننده میفرستد تا جواب بهینه را پیدا کند.
- کد نمونه
:
Model Transport /all/;
Solve Transport using LP minimizing z;
Transport نام مدل است و از نوع LP (برنامهریزی خطی) حل میشود.

۶. نمایش نتایج (Display)
- برای دیدن نتایج، از دستور Display استفاده میکنیم.
- کد نمونه:
Display x.l, z.l;
-
- x.l مقادیر بهینه متغیر x و z.l مقدار بهینه هزینه کل را نشان میدهد.

مثال ساده: مسئله حملونقل
فرض کنید میخواهید هزینه حمل کالا از یک انبار در تهران به شیراز و اصفهان را کم کنید:
- مجموعهها: شهرها (تهران، شیراز، اصفهان).
- پارامترها: هزینه حمل (مثل ۱۰۰ برای شیراز، ۸۰ برای اصفهان).
- متغیرها: مقدار کالای حملشده به هر شهر.
- معادلات: کمینه کردن هزینه کل و تأمین تقاضای هر شهر (مثلاً حداقل ۵۰ واحد).
- نتیجه: GAMS مقدار بهینه حمل (مثل ۵۰ واحد به شیراز، ۶۰ واحد به اصفهان) و هزینه کل را محاسبه میکند.
در قسمتهای بعدی، این مثال را بهصورت کامل کدنویسی میکنیم!
نکات کلیدی
- مجموعهها: برای سازماندهی دادهها (مثل شهرها یا محصولات).
- پارامترها: دادههای ثابت (مثل هزینه یا ظرفیت).
- متغیرها: مقادیر تصمیمگیری که GAMS محاسبه میکند.
- معادلات: تابع هدف و محدودیتها را تعریف میکنند.
- مدل و حل: مدل را به حلکننده میفرستد.
گام بعدی
در قسمت بعدی، با تعریف مجموعهها (Sets) بهصورت عملی آشنا میشوید و یاد میگیرید چگونه دادهها را سازماندهی کنید. فایلهای نمونه و ویدئوهای این دوره را از سایت بهینهیار دانلود کنید!