در مدلسازی بهینهسازی با گمز، مدیریت صحیح مجموعهها و ارتباط بین عناصر آنها اهمیت زیادی دارد. گاهی لازم است بررسی کنیم که آیا دو عضو از مجموعهها با یکدیگر برابر هستند یا اینکه بخواهیم فقط عناصر قطری یک ماتریس را در محاسبات در نظر بگیریم. در چنین شرایطی دو دستور پرکاربرد به نامهای sameAs و diag مورد استفاده قرار میگیرند. این دستورات که در مستندات انگلیسی GAMS نیز بهعنوان ابزارهای منطقی برای کار با اندیسها معرفی شدهاند، به مدلساز کمک میکنند روابط دقیقتری بین عناصر مجموعهها ایجاد کند و ساختار مدل را سادهتر و خواناتر نماید.
دستور sameAs در گمز
تابع sameAs برای بررسی یکسان بودن دو عنصر از مجموعهها به کار میرود. این تابع زمانی مقدار درست برمیگرداند که دو اندیس دقیقاً به یک عنصر اشاره کنند. در مدلهای بهینهسازی، این قابلیت زمانی کاربرد دارد که بخواهیم تنها در شرایط خاصی یک رابطه فعال شود؛ برای مثال وقتی اندیس سطر و ستون یک ماتریس برابر باشند.
استفاده از sameAs باعث میشود بدون نیاز به تعریف مجموعههای اضافی، بتوانیم روابط منطقی بین عناصر مجموعهها برقرار کنیم. این ویژگی بهخصوص در مدلهایی که شامل چندین مجموعه یا شاخص هستند اهمیت دارد، زیرا از پیچیدگی ساختار مدل جلوگیری میکند.
در بسیاری از مدلهای شبکه، حملونقل یا برنامهریزی تولید نیز از sameAs برای جلوگیری از ایجاد ارتباط یک عنصر با خودش یا برعکس برای فعال کردن چنین ارتباطی استفاده میشود.
کاربردهای sameAs در مدلسازی
در منابع آموزشی گمز، چند کاربرد رایج برای sameAs معرفی شده است:
- بررسی برابر بودن دو اندیس در مجموعهها
- اعمال شرط روی روابط ماتریسی
- جلوگیری از ایجاد محدودیتهای غیرضروری در مدل
- سادهسازی شرطها در معادلات پیچیده
به کمک این دستور، مدلساز میتواند کنترل دقیقتری روی نحوه ایجاد معادلات و روابط بین عناصر مجموعه داشته باشد.
دستور diag در گمز
دستور diag در گمز برای ایجاد ساختار قطری در ماتریسها استفاده میشود. زمانی که از diag استفاده میکنیم، تنها عناصر قطری یک ماتریس فعال در نظر گرفته میشوند و سایر عناصر مقدار صفر خواهند داشت. این مفهوم در بسیاری از مدلهای ریاضی، مخصوصاً در مدلهایی که شامل ماتریسهای هویتی یا روابط قطری هستند، کاربرد دارد.
در واقع diag راهی ساده برای ایجاد ماتریسهایی است که فقط در قطر اصلی مقدار دارند. این موضوع در برخی الگوریتمهای بهینهسازی و مدلهای ریاضی مانند مدلهای برنامهریزی خطی و غیرخطی اهمیت دارد.
کاربردهای diag در مدلهای بهینهسازی
کاربردهای رایج diag شامل موارد زیر است:
- ایجاد ماتریس هویتی در مدلهای ریاضی
- محدود کردن روابط به عناصر قطری
- سادهسازی تعریف برخی پارامترهای ماتریسی
- کاهش پیچیدگی در تعریف معادلات بزرگ
در مدلهایی که تعداد زیادی اندیس دارند، استفاده از diag باعث میشود تعریف روابط بسیار واضحتر و منظمتر انجام شود.
تفاوت sameAs و diag
اگرچه هر دو دستور به نوعی با مقایسه اندیسها مرتبط هستند، اما کاربرد آنها متفاوت است. sameAs یک تابع منطقی برای بررسی برابر بودن دو عنصر از مجموعهها است، در حالی که diag بیشتر برای ساختاردهی ماتریسی و فعال کردن عناصر قطری استفاده میشود. به همین دلیل در بسیاری از مدلها ممکن است یکی از این دستورات یا حتی هر دو به صورت همزمان مورد استفاده قرار بگیرند.
آشنایی با این دو ابزار به مدلساز کمک میکند ساختار مدلهای بهینهسازی را دقیقتر طراحی کرده و از ایجاد روابط اضافی یا پیچیده جلوگیری کند.
کلیدواژه ها : آموزش گمز-دستور sameAs در گمز-دستور diag در گمز-توابع گمز GAMS functions-مدل سازی در گمز-GAMS sameAs function-GAMS diag function-مدل سازی بهینه سازی در گمز-دستورات مهم GAMS-Optimization modeling in GAMS-