▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌

يكشنبه 27 آبان 1397 Sunday 18 November 2018 9 ربیع‌الاول 1440

آخرین اخبار سایت

آموزش نرم افزار GAMS به صورت كاربردي در محيط Windows

 

آموزش نرم افزار GAMS به صورت كاربردي در محيط Windowsعصرایلام/طیبه جمالوندی ؛ مدرس دانشگاه/کارشناس ارشد ریاضی دانشکده ریاضی دانشگاه آزاد واحد کرمانشاه


چكيده
GAMS يك برنامه مخصوص مدلسازي با قابليت بالا براي به دست آوردن مقدار هدف بهينه و مقادير بهين متغيرها در يك مسئله برنامه ريزي است. در اين مقاله خلاصه اي از روش بكارگيري اين برنامه همراه با ذكر چند مثال به صورت كاربردي ارائه مي گردد. تفاوت اين كار با ساير متون مشابه در اين است كه اولا اين كار به صورت كاملا كاربردي و در عين حال بسيار ساده ارائه مي شود و ثانيا در عين بيان ساده آن, نسبت به كارهاي مشابه بخصوص در داخل كشور, براي كار در محيط Windows , مجموعه كاملي است. كلمات كليدي: بهينه سازي, سيمپلكس متغيرهاي كراندار, مدلسازي, مدل GAMS.
مقدمه:
GAMS یک محیط کامپیوتری است که برای مدلسازی و حل نمودن بهینه سازی مسایل برنامه ریزی )خطی, غیرخطی و...) مورد استفاده قرار می گیرد.ابزارهای زیادی در دسترس هستند که می توانند دستگاههاي مسایل بهینه سازی را حل کنند اما بسیاری از انها برای یادگیری مفاهیم پایه ای مناسب نیستند چرا که جزییات مدلسازی به خوبی برای کاربر روشن نیست.
 لذا GAMS یک برنامه مخصوص مدلسازی با قابلیت بالا برای بهینه سازی مسایل برنامه ریزی خطی,غیر خطی,صحیح و... است. یک خصوصیت مهم GAMS این است که نوشتن مدل آن مستقل از روش حل آن است و لذا می توان تنها با ایجاد تغییراتی در حل کننده (SOLVER), مدل را به روشهای مختلف (خطی, غیرخطی, صحیح و...) حل کرد. ترجمه مدل از زبان ریاضی به زبان GAMSاغلب شفاف است زیرا  GAMS از لغات متداول انگلیسی استفاده می کند. .
 سایت اینترنتی GAMS به آدرس WWW.GAMS.COM حاوی بسیاری از اطلاعات معمول و مهم در رابطه با GAMS است و شما می توانید اطلاعات معمول مورد نیاز خود را از این سایت به دست آورید. در این سایت یک نسخه آزاد و محدود شده نیز از GAMS در دسترس شماست كه با وجود اینکه نمی تواند مسایل بزرگ را حل کند, اما می تواند برای زمانی که شما مدلهای اولیه ای را در اختیار دارید و نیز برای استفاده دانشجویان مفید باشد(به قسمت مثالها مراجعه کنید). این نسخه آزاد و محدود شده در آدرس زير  قابل دسترسی است.http://WWW.GAMS.COM/DOWNLOAD   [3].
نحوه ي استفاده از GAMS
پس از نصب برنامه, از منوی Start گزینه Allprograms ,وسپس GAMS را انتخاب می کنیم (یا
از طریق میانبری از GAMS که روی Desktop ایجاد کرده ایم). پس از باز کردن برنامه از سربرگ file گزینه New را انتخاب می کنیم تا صفحه جدیدی باز شود. حال در صفحه جدید نوشتن یک مدل GAMS را شروع می کنیم. معمولا یک فایل ورودی GAMS دارای پسوند (.gms) است و پس از نوشتن فایل ورودی و اجرای مدل نتایج در یک فایل خروجی که دارای پسوند الحاقی (.lst) است قرار می گیرد. یک فایل ورودی GAMS مجموعه ای از قسمتها است که هر بخش با یک سمی کالن (;) محدود می شود. GAMS در نوشتن یک مدل بین حروف کوچک و بزرگ تفاوتی قایل نیست.
معرفي قسمتهاي اصلي تشكيل دهنده يك مدل GAMS:
Sets: بخش اصلی ساختار یک مدل GAMS را ارائه می دهد و برای معرفی اندیسهایی که در قسمتهای مختلف مدل به کار می رود به کار می رود. تعداد فضای بین کلمات و بین خطوط و استفاده از حروف کوچک یا بزرگ اختیاري است. توجه کنیدGAMS  به جای {} از اسلش / برای مشخص کردن اجزا استفاده می کند.
Scalars: اسکالرها مقادیر ثابت یک بعدی را معرفی می کنند.
Parameters: پارامترها در واقع ساختمان یک مدل GAMS هستند که برای تعریف اعداد ثابت یک بعدی, دوبعدی یا بیشتر مورد استفاده قرار می گیرند (ابعاد به وسیله اندیسها داده می شوند). توجه کنید که شما تنها داده هایی را می توانید تحت یک بردار بیاورید که از یک جنس باشند (مثل مقادیر سمت راست, ضرایب تابع هدف و...). اندیسهای به کار رفته در این قسمت باید قبلا در بخش Sets معرفی شده باشند.
Tables: این بخش برای معرفی نوع دیگری از داده های چند بعدی که همه از یک جنس هستند به کار می رود, مانند ماتریسها وجداول. برای مثال ماتریس ضرایب قیود در مسئله برنامه ریزی خطی و ماتریس حمل و نقل و... .
جدولها بیشترین فشردگی را برای حجم اطلاعاتی شبیه ماتریس دارا می باشند. لذا اگر می توانید در یک مدل برای معرفی بخشی از داده ها از Table استفاده کنید این کار را انجام دهید.
Variables: متغیرهای مسئله هستند که در داخل مدل تعیین می شوند. ابتدا شما باید به GAMS نام متغیرها را بگویید. نيز شما مي توانيد در این قسمت توضیحاتی را برای متغیرها بنویسید که به فهم راحتتر مدل کمک کند. برای مثال متغیر Z عموما برای نمایش تابع هدف بکار برده می شود, X(J) ها متغیرهای تصمیم مسئله هستند که بایستی محاسبه شوند. گاهی ممکن است متغیرها چند بعدی نیز باشند. . انواع مختلفی از متغیرها وجود دارد.از جمله:
Positive Variable: که برای متغیرهای نامنفی به کار می رود مثل متغیرهای تصمیم در برنامه ریزی خطی.دامنه تعریف این متغیرها ([0,+∞ است.
Negative Variables: که برای متغیرهای کوچکتر یا مساوی صفر به کار می رود. دامنه تعریف این متغیرها (-∞,0] است.
Free Variables: گاهی شما می خواهید متغیری را اضافه کنید که هیچ قیدی روی آن نباشد(مثلا قید نامنفی بودن) و از GAMS بخواهید مقدار بهینه آن را بیابد.
به این دسته از متغیر ها متغیرهای آزاد می گویند. GAMS عبارت Free Variable را می شناسد و جزء اصطلاحات کتابخانه ای GAMS است. دامنه تعریف این متغیرها (-∞,+∞) می باشد.
Integer Variable: گاهی متغیرهای تصمیم اعداد صحیح (Integer) هستند لذا مسئله به یک مسئله برنامه ریزی صحیح تبدیل می شود.
Binary Variable: به متغیرها تنها اعداد صفر و یک نسبت می دهد.اگر کلیه متغیرها از این دست باشند مسئله به مسئله برنامه ریزی صفر و یک تبدیل می شود.
Equation: این بخش معدلات مسئله و هسته هر مدل است که تابع هدف و قیود مسئله در این بخش تعریف می شوند. ابتدا شما معادلات را نامگذاری و معرفی می کنید و سپس خود معادلات را می نویسید. در GAMS معادلات بصورت صریح نوشته مي شود. پس از معرفی, در سطر پایین ابتدا نام
معادله و به دنبال آن دو نقطه '..' و سپس در جلوی آن معادله جبری مورد نظر را می نویسید. در GAMS حاصلجمع ∑_( j)▒x┬(    ij)   به صورت SUM(j,x(i,j))  و نیز حاصل جمع
∑_i▒∑_j▒〖C┬(    ij)  X┬(    ij) بصورت SUM((I,j),C(I,j)*X(I,j)) یا بصورت دو
حاصلجمع تودرتوSUM(I,SUM(j,C(I,j)*X(I,j))  و ∏_( j)▒x┬(    ij)  بصورت Prod(j,x(I,j))
تعریف می شوند. علامت تساوی در GAMS بصورت '=E=' , علامت کوچکتر یا مساوی بصورت '=L=' و علامت بزرگتر یا مساوی به صورت  '=G=' بیان می شود. نیز در GAMS برای ضرب از * و برای تقسیم از / استفاده می شود. توان نیز با ** نشان داده می
شود.
Model شما یک نام برای مدل خود انتخاب می کنید. اين نام بايد طولانی نباشد (حد اکثر 10کاراکتر) و نیز برخی کاراکترهای غیرمجاز را نداشته
باشد (براي مثال Test). سپس شما باید به GAMS بگویید کدام معادلات جزء مدل Test هستند (معمولا یکی از این معادلات تابع هدف مسئله است). معادلاتی که باید جزء مدل Test به حساب آیند و در این مدل محاسبه شوند بین دو اسلش '/ ' قرار می گیرند. . این یک خصوصیت برتر GAMS است زيرا به راحتی می توان با حذف یا اضافه نمودن تعدادی از معادلات یک مدل دیگر را توليد و حل نمود.
Solve: این دستور برای حل کردن مسئله ای که ما خواهان بهینه شدن آن هستیم به کار می رود. ابتدا کلمه کتابخانه ای Solve ,سپس نام مدل برای بهینه شدن, سپس کلمه Using , سپس یک حل کننده کتابخانه ای GAMS , سپس یکی از کلمات کتابخانه ای Minimizing یا Maximizing و در پایان نام متغیر مورد نظر برای بهینه شدن می آیند. GAMS برای مسائل مختلف حل کننده
های مختلفی دارد از جمله:
Linear Programming (LP): برای حل مسایل برنامه ریزی خطی به کار می رود.
Non Linear Programming (NLP): برای حل مسائل برنامه ریزی غیر خطی به کار می رود. یعنی زمانی که قیود و یا تابع هدف مسئله غیرخطی باشد. (حل کننده DNLP اصلی ترین حل کننده است و برای مسائل خطی و غیرخطی به خوبی عمل می کند).
Integer Programming (MIP): زمانی به کار می رود که متغیرهای تصمیم اعداد صحیح مثبت هستند. نیز برای مسائل برنامه ریزی صحیح مختلط به کار می رود. (یافتن جواب یک مسئله برنامه ریزی صحیح (i.p) کار دشواری است. قانونی برای تعداد جوابهای شدنی یا ناحیه شدنی آنها وجود ندارد.
اکثر الگوریتمهای برنامه ریزی صحیح تمام جوابهای ممکن را یک به یک می شمارند و بررسی می کنند. در برنامه ریزی صحیح ناحیه شدنی گسسته است و دوآل آن خوش تعریف نیست. لذا بسیاری از قیمتهای سایه که GAMS در جواب مدل ارائه می کند واقعي نیستند).
MINLP: برای حل کردن مسائل برنامه ریزی صحیح غیرخطی مختلط به کار می رود.
Mixed Programming: زمانی به کار می رود که برخی از متغیرهای تصمیم پیوسته و برخی گسسته باشند .
MCP: برای مسائل مکمل مختلط به کار می رود.
CNS: برای سیستمهایی که دارای قیود غیرخطی هستند به کار برده می شود.
Display: این قسمت به طور دلخواه به مسئله اضافه می شود. برای گرفتن مقادیر اولیه یا دوگان یا هردو می توانیم به فایل خروجی Solver نگاه کنیم یا اگر مایل باشیم از GAMS بخواهیم در پایان حل به طور خلاصه این مقادیر را برای ما نشان دهد.
در پايان دقت كنيد كه در نوشتن یک مدل GAMS توجه کنید که:
1) برای رفتن به سطر بعد از Enter استفاده کنید.
2) اسامی نسبت داده شده به هرکدام از موجودیتها باید با یک حرف آغاز و با ترکیبی از حروف و اعداد و حداکثر تا 10 کاراکتر ادامه یابد.
3) در GAMS هرگز از کلید Tab استفاده نکنید.
(4 پس از نوشتن یک مدل در محیط GAMS طبق دستورات بالا, برای اجرای مدل از سربرگ File گزینه Run را انتخاب می کنیم. نیز می توان از طریق کلید Run روی نوار ابزار یا از طریق کلید تابعی F9 روی صفحه کلید  مدل را اجرا نمود.[3]

 

 

 

نظرات   

 
-6 # شیما 1392-11-14 21:44
سلام خانوم جمالوندی من از کرمانشاهم و برای پایانامه م از همین نرم افزار میخوام استفاده کنم ولی وقت چندانی برای یادگیری ندارم
اگه ممکنه کمک کنید البته جبران میکنم خانوم.ممنون میشم خبرم کنید.آدرس ایمیلمم که هست.شیما
پاسخ | پاسخ با نقل قول | نقل قول
 
 
0 # شمس 1392-12-10 07:56
سلام شیما
اگر کمکی از دستم بر مید در خدمتتان هستم
پاسخ | پاسخ با نقل قول | نقل قول
 
 
-2 # MAHDI 1393-05-08 09:39
با عرض سلام و قبولی طاعات و عبادات .من میخوام یک مسئله بهینه سازی غیر خطی را با GAMS حل کنم و لی با این نرم افزار آشنایی ندارم . میشه یک مثال روان که غیر خطی باشه و با GAMS حل شده باشه برام میل کنین؟؟؟
پاسخ | پاسخ با نقل قول | نقل قول
 
 
-2 # قاسم 1393-05-29 11:52
منم همین که مهدی گفتو میخوام
پاسخ | پاسخ با نقل قول | نقل قول
 
 
-2 # at-ar 1393-08-09 12:05
سلام
من یه مسئله مکانیابی- مسیریابی تو گمز مدل کردم. ولی برای ران گرفتنش دچار مشکل میشم. بعد حدود 40 دقیقه Stop working میشه. فکر میکنم به خاطر حجم مسئله باشه چون وقتی کوچیکش میکنم جواب میده.
میخواستم ببینم تنظیمات خاصی هست که به کمک اون بشه مسئله های بزرگترو حل کرد و خروجی گرفت؟؟
ممنونم
پاسخ | پاسخ با نقل قول | نقل قول
 
 
-2 # گوهر 1393-11-07 14:17
سلام نرم افزار گمزرونصب کردم اما میخوام دستور بهش بدم اصلا معلوم نیست به چه زبانی نوشته شده یعنی انگلیسی نمینویسه مشکل از چیه ؟
پاسخ | پاسخ با نقل قول | نقل قول
 
 
-1 # داشنجوی دکتری 1393-11-25 01:00
با سلام و احترام

ممنون از مطلب خوبتون

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

کلا با نرم افزار گمز میشود شبیه سازی را انجام داد؟؟
پاسخ | پاسخ با نقل قول | نقل قول
 
 
-3 # طاهره 1394-03-11 16:51
با سلام خدمت شما خانم جمالوندی عزیز.واقعا مطالبتون مفید بود.من پایان نامه ارشدم راجع به بهینه سازی با گیمس هستش ولی فرصت کافی واسه کلاس ندارم ممنون میشم یه قرار ملاقات برام ایمیل کنین که برسم خدمتتون تو کرمانشاه یا دانشکده که ازتون مشاوره بگیرم.ممنون میشم کمکم کنید.
پاسخ | پاسخ با نقل قول | نقل قول
 
 
-1 # zahra 1394-05-24 12:06
سلام
من پایان نامه ام را با گمز مدل سازی می کنم داخل محدودیت های مسئله ام یک عبارت مشتق ناپدیر نزدیک صفر بود که برای این که مشتق ناپذیری اون رو رفع کنه میاد اون رو روی جند سه تا بازه به طور جداگانه تعریف میکنه یعنی یک عدد دلتایی مثل 0.1تعریف میکنه برای بازه های بزرگتر از 0.1 یک عبارت برای بازه های کوچکتر از 0.1- منفی این عبارت و بین منفی دلتا و مثبت دلتا یک چند جمله ای تعریف میکنه این چند بخشی کردن محدودیت روی متغیر مسئله است باید چجوری مدل کنم
پاسخ | پاسخ با نقل قول | نقل قول
 
 
+2 # ali 1394-08-08 10:20
سلام
من ميخواستم يك مسئله دو هدفه و سه متغيره با دو محدوديت كاركردي را به دلخواه با استفاده از نرم افزار gams حل كنم ولي نميدانم بايد چكار كنم خواهشمندم از طريق ايميل كمكم كنيد.
ممنون
پاسخ | پاسخ با نقل قول | نقل قول
 
 
-1 # sanaz 1394-11-13 20:11
سلام
لطفا در صورت امکان فایل آموزش گمز را برایم ارسال نمایید.
با تشکر
پاسخ | پاسخ با نقل قول | نقل قول
 

اضافه کردن نظر

در زمینه‌ی انتشار نظرات مخاطبان رعایت چند مورد ضروری است:

لطفاً نظرات خود را با حروف فارسی تایپ کنید.
« ویرا » مجاز به ویرایش ادبی نظرات مخاطبان است.
« ویرا » از انتشار نظراتی که حاوی مطالب کذب، توهین یا بی‌احترامی به اشخاص، قومیت‌ها، عقاید دیگران، موارد مغایر با قوانین کشور و آموزه‌های دین مبین اسلام باشد معذور است.
نظرات پس از تأیید مدیر بخش مربوطه منتشر می‌شود.


کد امنیتی
تغییر کد امنیتی

 تبلیغات سايت خبري ويرا

      09120440191

 

 

 

 

 

 

 

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

Template Design:Dima Group