پارامترها (Parameters) چیست؟
در GAMS، پارامترها دادههای ثابت مدل هستند که برای ذخیره مقادیر عددی مثل هزینه، فاصله، ظرفیت، یا تقاضا استفاده میشوند. این دادهها برخلاف متغیرها که GAMS آنها را محاسبه میکند، از قبل مشخص هستند و در طول حل مدل تغییر نمیکنند.
ویژگیهای پارامترها
- دادههای ثابت: مثل هزینه حمل یا ظرفیت انبار.
- وابسته به مجموعهها: معمولاً پارامترها روی مجموعهها (Sets) تعریف میشوند.
- انعطافپذیری: میتوانند تکبعدی (مثل هزینه هر شهر) یا چندبعدی (مثل هزینه بین جفت شهرها) باشند.
نحوه تعریف پارامترها در GAMS
پارامترها با کلمه کلیدی Parameters تعریف میشوند. ساختار کلی به این شکل است:
Parameters
name(index) "توضیح" /element1 value1, element2 value2, .../;
- name: نام پارامتر (مثل c یا cost).
- index: مجموعهای که پارامتر به آن وابسته است (مثل i برای شهرها).
- “توضیح”: توضیح اختیاری برای خوانایی.
- element1 value1: مقدار پارامتر برای هر عنصر مجموعه.
مثال ساده: تعریف هزینه حمل
فرض کنید میخواهید هزینه حمل کالا از یک انبار به چند شهر را مدل کنید. ابتدا مجموعه شهرها را تعریف میکنید و سپس پارامتر هزینه را روی آن:
Sets
i "شهرهای ایران" /Tehran, Shiraz, Isfahan/;
Parameters
c(i) "هزینه حمل به هر شهر" /Tehran 50, Shiraz 100, Isfahan 80/;
- c(i): پارامتر هزینه حمل به هر شهر.
- مقادیر: ۵۰ برای تهران، ۱۰۰ برای شیراز، و ۸۰ برای اصفهان.
پارامترهای چندبعدی
برای مسائل پیچیدهتر، میتوانید پارامترهای چندبعدی تعریف کنید. مثلاً هزینه حمل بین جفت شهرها:
Sets
i "شهرها" /Tehran, Shiraz, Isfahan/;
Parameters
d(i,i) "هزینه حمل بین شهرها"
/Tehran.Shiraz 100, Tehran.Isfahan 80, Shiraz.Isfahan 90/;
- d(i,i): هزینه حمل بین جفت شهرها (مثلاً ۱۰۰ از تهران به شیراز).
- توجه: هزینه از یک شهر به خودش (مثل Tehran.Tehran) معمولاً صفر است یا تعریف نمیشود.

نمایش پارامترها
برای بررسی مقادیر پارامترها، از دستور Display استفاده کنید:
Display c, d;
- این دستور مقادیر پارامترهای c و d را در خروجی (فایل .lst) نشان میدهد.
نکات مهم در تعریف پارامترها
- خوانایی: از توضیحات (مثل “هزینه حمل”) برای درک بهتر کد استفاده کنید.
- وابستگی به مجموعهها: پارامترها باید روی مجموعههای از قبل تعریفشده باشند.
- دقت در مقادیر: مطمئن شوید مقادیر واردشده درست هستند، چون پارامترها ثابتاند.
- دادههای خارجی: برای مسائل بزرگ، میتوانید پارامترها را از اکسل یا دیتابیس وارد کنید (در آموزشهای بعدی).
مثال عملی: مسئله حملونقل
فرض کنید میخواهید هزینه حمل کالا از یک انبار به سه شهر (تهران، شیراز، اصفهان) را کم کنید:
- مجموعه: شهرها (i) را در قسمت قبل تعریف کردیم.
- پارامتر: هزینه حمل به هر شهر (c(i)) را تعریف میکنید.
- کاربرد: این پارامتر در تابع هدف (مثل کمینه کردن هزینه کل) استفاده میشود.
- کد نمونه:
Sets i "شهرهای مقصد" /Tehran, Shiraz, Isfahan/; Parameters c(i) "هزینه حمل به هر شهر" /Tehran 50, Shiraz 100, Isfahan 80/; Display c;- خروجی Display c مقادیر هزینه (۵۰، ۱۰۰، ۸۰) را نشان میدهد.
در قسمتهای بعدی، از این پارامترها برای تعریف متغیرها و معادلات استفاده میکنیم.
نکات کلیدی
- پارامترها: دادههای ثابت مدل (مثل هزینه یا ظرفیت) هستند.
- تعریف ساده: با کلمه کلیدی Parameters و وابسته به مجموعهها تعریف میشوند.
- تکبعدی یا چندبعدی: برای مسائل ساده یا پیچیده مناسباند.
- کاربرد: در تابع هدف و محدودیتها استفاده میشوند.
گام بعدی
در قسمت بعدی، با تعریف متغیرها (Variables) آشنا میشوید و یاد میگیرید چگونه مقادیر تصمیمگیری را به مدل اضافه کنید. فایلهای نمونه و ویدئوهای این دوره را از سایت بهینهیار دانلود کنید!
کلمات کلیدی: آموزش GAMS، تعریف پارامترها در GAMS، مدلسازی بهینهسازی، GAMS برای مبتدیان، بهینهیار