دانلود پروژه برق

معرفی انواع پارامترها در نرم افزار GAMS - آموزش نرم افزار گمز

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

در قسمت آشنایی با مجموعه ها و اندیس ها در GAMS ، شیوه ی ایجاد مجموعه ها، که اندیس های (زیر نویس ها، مجموعه ها، زیر مجموعه ها، مجموعه های مشابه) مختلف را می توان توسط آنها تعریف کرد، آموزش داده شد.

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

پارامترها در نرم افزار GAMS

یک پارامتر یا یک داده ی ورودی، در تحقیق در عملیات، علم بهینه سازی، علم جبر و سایر علوم مرتبط با برنامه ریزی ریاضی به صورت زیر تعریف می شود:

پارامتر: یک پارامتر مقداریست که از قبل اندازه گیری و مشخص شده است و با ورود آن به یک مدل یا معادله به حل دقیق/تر آن کمک می کند.
به عنوان مثال:

  1. در حرکت یک پرتابه یا سقوط آزاد، مقدار نیروی گرانش ثابت (۹٫۸) در نظر گرفته شده است. (عدد ثابت)
  2. در یک مسئله ی تحقیق در عملیات، مقادیر ضرایب تابع هدف (C) ، مقدار ضرایب محدودیت ها (A) ، مقادیر سمت راست محدودیت ها (B) نوعی پارامتر محسوب می شوند که از قبل مقدار آن ها را می دانیم. (ماتریس)

با دقت به مثال های فوق مشاهده می شود که یک پارامتر یا شامل یک عدد ثابت و یا یک ماتریس می باشد. یک پارامتر را می توان به توسط دستورهای مختلفی می توان تعریف نمود. این دستورها را می توان به چهار دسته ی عمده ی Interface, Table, Parameter, Scalar تقسیم بندی کرد.

انواع دستورات برای وارد کردن داده های وردی در GAMS

دستور Scalar :

جهت وارد کردن پارامترها/داده هایی مورد استفاده قرار می گیرد که مقادیری یکه و ثابت در مسئله به خود می گیرند.
فرم کلی این دستور و یک مثال از آن را در زیر مشاهده می کنید:

Scalar ParameterName/Value or the Quantity/;
*Example1:
Scalar Tehran/1000/;

مثال بالا بیان می کند که کمیتی به نام Tehran ثابت بوده و از نوع Scalar می باشد. همچنین مقدار این کمیت برابر با ۱۰۰۰ می باشد.

دستور Parameter:

جهت وارد کردن پارامترها/داده های ثابت و همچنین پارامترهایی که دارای اندیس هستند استفاده می شود.
فرم کلی این دستور به همراه چند مثال از آن را در زیر مشاهده می کنید:

Parameter ParameterName/Value/;
*Example1:
Parameter P/0.1/
*Example2:
Parameter x(i) /1 2,2 3,3 4/;
*Example3:
Parameter y(i);
y(i)=x(i)+1;

در مثال اول پارامتری به نام P که در مدل استفاده می شود برابر با ۰٫۱ در نظر گرفته شده است. در مثال دوم پارامتر x که دارای اندیس i می باشد (فرض شده است که i از ۱ تا ۳ متغییر است) مقادیری به آن نسبت داده شده است. مقدار x برای i های مختلف ۱و۲و۳ به ترتیب برابر با ۲و۳و۴ می باشد. دقت بفرمایید که در صورتی GAMS این کد را لحاظ خواهد کد که اندیس i از قبل توسط دستور Set تعریف شده باشد.

دستور Table:

جهت وارد کردن پارامترها/داده های ثابت و همچنین پارامترهایی که دارای اندیس هستند استفاده می شود.
مثال زیر می تواند یک جدول دو بعدی را به نمایش بگذارد:

Table a(i,j)
–    ۱    ۲    ۳    ۴
۱   ۰    ۳    ۹    ۸
۲   ۷    ۶    ۰    ۲
۳   ۱    ۱    ۱    ۱
۴   ۰    ۶    ۸    ۳

این جدول بیان می کند که داده ای به نام a در مدل موجود است که به اندیس های i و j وابسته است (فرض نموده ایم که این اندیس ها از ۱ تا ۳ متغییر می باشند). مقادیر مختلف a به شکل یک ماتریس ۴*۴ به نمایش گذاشته شده است. مجدداً بیان می کنیم که اندیس های i و j پیش تر باید توسط دستور Set تعریف شده باشند.

دستورات Interface:

نرم افزار GAMS علاوه بر اینکه در محیط خود می تواند داده خوانی کند، توانایی باز خوانی اطلاعات از نرم افزارهای دیگر نظیر Excel و Access را نیز دارد. با استفاده از یک سری دستورات، کاربر می تواند بدون اینکه محیط GAMS را شلوغ تر کند، اطلاعات را از روی نرم افزارهای دیگر بخواند و حتی نتایجی را روی آنها بنویسد. این امر را Interface بین نرم افزارها می نامند.
مثال زیر شیوه ی تعریف یک جدول سه بعدی را در قالب Interface بین GAMS و Excel نشان دهد.

$onecho > Model.txt
I=Model.xls
R=Cost5-s!a2:d27
O=Model.inc
$offecho

$call =xls2gms @Model.txt

Table d(i,j,s) distance
$include Model.inc
;

کد بالا برای ماتریس های ۳ بعدی ثابت می باشد. این کد بیان می کند که ماتریس d که سه بعدی می باشد، در فایل excelی ،که با نام model.xls ذخیره شده است و شامل یک برگه (Sheet) به نام Cost5 می باشد، موجود می باشد. مقادیر d نیز از سلول a2 تا سلول d27 ادامه دارد.

توجه بفرمایید که تمامی ۴ دستور بالا، طی آموزش های بعدی به تفصیل توضیح داده خواهد شد.

نکته ی مهم: همانطور که گفته شد، کاربرد دستور Parameter و دستور Table با هم یکسان است. ولی به زبانی ساده بیان می کنیم که:
اگر یک پارامتر در مدلتان داشته باشید که فاقد بعد بود (یعنی اندیس نداشت) و یا اینکه دارای یک بعد بود (یک اندیس داشت) از دستور Parameter استفاده کنید.
اگر یک پارامتر در مدلتان داشته باشید که اندیس های ۲ به بالا داشت توصیه می شود که از دستور Table استفاده نمایید.
در مواقعی که تعداد اندیس های شما بالا باشد و همچنین تعداد داده هایی که استفاده می کنید نیز زیاد بود توصیه ی اکید می شود که از دستورات Interface چند بعدی استفاده نمایید.

به این مطلب امتیاز دهید.
5 / 0
[ 0 رای ]
بازدید : 569 بار دسته بندی : آموزش گمز تاريخ : 26 آبان 1395 به اشتراک بگذارید :
دیدگاه کاربران
    • دیدگاه ارسال شده توسط شما ، پس از تایید توسط مدیران سایت منتشر خواهد شد.
    • دیدگاهی که به غیر از زبان فارسی یا غیر مرتبط با مطلب باشد منتشر نخواهد شد.