آموزش برنامه نویسی در گمز GAMS

زبان‌های برنامه نویسی بسیار زیادی در بستر‌های مختلف وجود دارد که کاربران بسیاری نیز از آن‌ها استفاده می‌کنند. اما در این بین برخی از افراد نیز هستند که تقریبا نمی‌دانند چگونه باید شروع به برنامه نویسی کنند و ما نیز در متلب آنالیز تصمیم داریم تا به این افراد یاری دهیم. در مقالات قبلی به آموزش زبان برنامه نویسی متلب به صورت ابتدایی پرداختیم و اکنون نیز در سری جدیدی از این مقالات آموزشی، به آموزش برنامه نویسی در گمز GAMS می‌پردازیم که در واقع یک زبان برنامه نویسی پر استفاده اما گوشه‌گیر است و محتوای بسیار کمی در خصوص آن وجود دارد.

در مقاله گذشته به آشنایی با کدهای استاندارد مختلف گمز پرداختیم و اکنون نیز در این مقاله به ادامه بحث آموزش برنامه نویسی در گمز GAMS خواهیم پرداخت. پس تا انتهای مقاله همراه متلب آنالیز باشید.

آموزش برنامه نویسی در گمز

توابع استاندارد

به منظور آموزش برنامه نویسی در گمز GAMS باید بدانید زبان برنامه نویسی گمز دارای برخی از توابع استاندارد است که هر کدام با یک نام خاص شناخته می‌شوند و یک تعریف ریاضی نیز برای آن‌ها در نظر گرفته شده است. برای مثال زمانی که شما می‌خواهید از قدر مطلق در برنامه نویسی خود استفاده کنید باید از نام ABS استفاده کنید که تعریف ریاضی آن به صورت  |arg| است و برای استفاده از کُسینوس نیز می‌بایست از نام COS استفاده کنید که تعریف ریاضی آن نیز به صورت (COS (arg است و اگر قصد این را دارید که در برنامه خود از توابع نمایی استفاده کنید، باید نام EXP را فراخوانی کنید که تعریف ریاضی آن نیز به صورت (exp (arg خواهد بود.

اما اگر شما قصد این را دارید که در برنامه خود یک لُگاریتم طبیعی را قرار دهید باید از نام LOG استفاده کنید و تعریف ریاضی آن لگاریتم در مبنای e از arg خواهد بود. برای قرار دادن لگاریتم معمولی نیز باید LOG10 را فراخوانی کنید و تعریف ریاضی آن به صورت لگاریتم در مبنای ۱۰ از arg است. اما ممکن است شما در برنامه نویسی خود نیاز به یک توان دوم داشته باشید که برای این کار باید SQR را فراخوانی کنید که تعریف ریاضی آن  Qrg*arg است. برای قرار دادن ریشه دوم نیز باید به سراغ SQRT بروید که تعریف ریاضی آن به صورت (Sqrt(arg است.

علائم ریاضی موجود در گمز

همان طور که می‌دانید برای نوشتن یک فرمول ریاضی باید از علائم مختلف استفاده کرد که این علائم در زبان برنامه نویسی گَمز نیز مورد نیاز شما خواهد بود و در ادامه می‌توانید با این علائم در گمز آشنا شوید.

برای اینکه بتوانید در گمز  را بنویسید شما می‌بایست دستور ( ,SUM (I را قرار دهید و برای نوشتن یک جمع تو در تو نیز باید بدین شکل وارد عمل شوید:  ( (SUM ( ( I , J

اما این تمام علائم نیست. گمز علامت مساوی را نمی‌شناسند و به جای آن باید = E = قرار دهید. برای ≥ نیز باید دستور = L = و برای قرار دادن علامت ≤ نیز باید دستور = G = را بنویسید. البته شما می‌توانید در زبان برنامه نویسی گمز فرمول‌هایی نظیر X ≤ ۲۰ و… نیز قرار دهید که در ادامه می‌توانید با شیوه این کار آشنا شوید:

X ≤ ۲۰ باید به شکل X = L = 20 نوشته شود

X ≥ ۲۰ باید به شکل X = L = 20 نوشته شود

X = 20 باید به شکل X = E = 20 نوشته شود

بجای این موارد شما می‌توانید از طریق دستورات زیر نیز وارد عمل شوید، توجه داشته باشید که در این روش UP، LO و FX به معنای بیشتر، کمتر و مساوی هستند.

;X . UP = 20

;X . LO = 20

;X . FX = 20

آشنایی با MODEL

در آخرین بخش از کد نویسی زبان برنامه نویسی گمز، شما می‌بایست یک مدل قرار دهید که در واقع نام آن همان نام فایل شما است و می‌بایست حداکثر تعداد کاراکتر‌های آن ۸ تا ۱۰ باشد که این موضوع بر اساس نسخه برنامه شما متغیر خواهد بود. در زبان برنامه نویسی گمز مدل به مجموعه‌ای از معادلات گفته می‌شود که معمولا یکی از آ‌ن‌ها تابع هدف مسئله است. برای درک بهتر موضوع به مثال زیر توجه کنید:

;/MODEL    TEST    /ALL

دستور بالا بدین معنی است که تمام معادلاتی هم که تاکنون به برنامه معرفی شده است، نام TEST را دارد. از این بخش می‌توان برای حل مسائل تجزیه LP استفاده کرد که تابع هدف قیودی را که برای حل کردن مد نظر است نیز در این قسمت می‌نویسیم. در خط آخر از برنامه نیز باید کد زیر را بنویسید.

;Solve test using lp minimizing costs

در حقیقت دستور فوق به برنامه اعلام می‌کند که مدل TEST را با استفاده از برنامه ریزی خطی lp به منظوم مینی‌مم سازی متغیر COSTS حل کند. در اتنها نیز می‌توانید کد زیر را وارد کنید که با کمک آن نتیجه نمایش داده شده مقدار متغیر‌های اولیه و… را به صورت خلاصه در اختیارتان قرار خواهد داد که این کد چندان ضروری نیست:

Display X . l, X .M

جهت سفارش برنامه نویسی در محیط گمز GAMS اینجاکلیک کنید