ثبت سفارش
عنوان محصول
قیمت
0

تحقیق مقاله راهنمای عملیاتی نرم‌افزار GAMS

Code: #8854
تعداد صفحات
29
فرمت فایل
word
سال
مشخص نشده
مقطع
مشخص نشده
دسته‌بندی

خلاصه تحقیق مقاله راهنمای عملیاتی نرم‌افزار GAMS

GAMS چیست؟

سیستم GAMS یک زبان برنامه‌نویسی مدل‌ سازی با قابلیت بالاست.

از GAMS برای حل مسائل برنامه‌ریزی خط (LP)، برنامه‌ریزی غیرخطی (NLP)، برنامه‌ریزی صحیح مختلط (MIP)، برنامه‌ریزی خطی صحیح مختلط (MINLP) و مسائل مکمل خطی (MCP) استفاده می‌کنند.

روش نصب و راه‌اندازی GAMS بر روی کامپیوتر شخصی

GAMS در محیطهای DOS ، WINDOWS و UNIX قابل اجراست. در این جا راه‌اندازی GAMS را برای اجرا تحت DOS بیان می‌کنیم.

توجه کنید که سیستم GAMS تحت DOS شامل 4 فلاپی 44/1 می‌باشد.

1- ابتدا یک شاخه دلخواه روی کامپیوتر شخصی خود (مثلاً GAMS) درست کنید. سپس هر چهار فلاپی را روی شاخۀ GAMS کپی کنید. (ترتیب کپی کردن فلاپی‌ها مهم نیست.)

2- برنامۀ gamsinst را اجرا کنید.

این برنامه تمام فایل‌های فشردۀ *.Pck را باز می‌کند.

چگونه یک برنامه GAMS بنویسیم

برای حل یک مسأله توسط GAMS اولین مرحله عبارت است از تشکیل یک فایل متن که بیان‌کننده مسأله شما به زبان GAMS است. از ویرایشگر متن مثلا Edit در سیستم عامل DOS یا هر ویرایشگر متنی که در اختیار دارید می‌توانید استفاده کنید. معمولا فایل حاصل را با پسوند GMS مشخص می‌کنیم. مثلا اگر برنامه‌ای به نام TEST می‌نویسید فایلی به نام TEST.GMS ایجاد کنید.

نکاتی در مورد نحوۀ نوشتن برنامۀ GAMS

1- برای رفتن به خط بعدی از ENTER استفاده کنید.

2- هرگز از کلید TAB استفاده نکنید، زیرا موجب پیغام خطا می‌شود.

3- هر خطی که با '*' شروع شود به عنوان توضیح در نظر گرفته می‌شود و در برنامه خوانده نمی‌شود.

4- برای GAMS حروف کوچک و بزرگ فرقی ندارد.

5- یک برنامۀ GAMS شامل بخش‌های متعددی است، هر بخش با یک سیمی‌کالون (؛) خاتمه می‌یابد.

یک برنامۀ نمونۀ GAMS

قبل از پرداختن به توضیحات مربوط به بخش‌های مختلف یک برنامۀ GAMS کلیات برنامۀ زیر را ملاحظه نمائید.

مسأله:

            min

          به طوری که

برنامۀ مربوط به این مسأله در بخش‌های بعدی به عنوان TEST ارجاع داده خواهد شد.

*                      OPTION LAMRO = 0 , LIMCOL = 0

SETS

                        J / C1*C6 /

                        I / B1*B3 / ;

PAPAMETERS

                        B ( I )

                                  / B1 6

                                    B2 4

                                    B3 4 /

                        C ( J )

                                  / C1 -1

                                    C2 -2

                                    C3 1

                                    C4 -1

                                    C5 -4

                                    C6 2 / ;

TABLE

                                    A ( I , J )

                                    C1       C2       C3       C4       C5       C6

                        B1       1          1          1          1          1          1

                        B2       2          -1         -2         4          0          0

                        B3       0          0          1          1          2          1 ;

VARIABLES

                        COSTS

                        POSITIVE VARIABLES

                                                                        X ( J ) ;

EQUATION

                        OBJECTIVE

                        Y ( I ) ;

OBJECTIVE . .                      COSTS = E = SUM ( J , C ( J )  X ( J ) ) ;

Y ( I ) . .                                  SUM ( J , A ( I , J ) * X ( J ) ) = L = B ( I ) ;

MODEL TEST / ALL / ;

SOLVE TEST USING LP MINIMIZING COSTS ;

DISPLAY       X . L    , X . M ;

توضیح

بخش SETS

در این بخش تمام اندیس‌هایی که در نوشتن معادلات مدل استفاده می‌شوند معرفی می‌گردند. این اندیس‌ها عباراتی صرفی – عددی هستند. به عنوان مثال در برنامۀ TEST بخش SETS ، ضرایب تابع هدف توسط J و تعداد قیود توسط I مشخص شده‌اند.

توجه شود که در اصل J را توسط ضرایب تابع هدف به صورت

J / C1 , C2 , C3 , C4 , C5 , C6 /

یا

J / C1 * C6 /

و I را توسط عناصر صمت راست قیود نامساوی به صورت

I / B1 , B2 , B3 /

یا

I / B1 * B3 /

شمرده‌ایم.

توجه: نام هر اندیس تا ده کاراکتر اجازه داده شده و درج فاصله یا جای خالی در نام اندیس اجازه داده نشده است.

بخش PARAMETERS

در GAMS پارامترها بردارهای ثابت معلوم و مقدار پارامترها به عنوان داده‌ها در این بخش تعریف می‌شوند. به منظور تعریف مقادیر بردارها، لازم است، اندیس بردارها قبلا در بخش SETS تعریف شده باشد.

در برنامۀ TEST بردارهای B و C دارای یک مقدار عددی به ترتیب برای هر عنصر مجموعۀ I و J به صورت زیر است.

PAPAMETERS

                        B ( I )

                                  / B1 6

                                    B2 4

                                    B3 4 /

                        C ( J )

                                  / C1 -1

                                    C2 -2

                                    C3 1

                                    C4 -1

                                    C5 -4

                                    C6 2 / ;

بخش TABLE

در GAMS یک ماتریس، مثلا ماتریس ضرایب قیود در LP ، ماتریس ضرایب هزینه در حمل و نقل و... ، در بخش TABLE آورده می‌شود.

به صورت زیر :

 

 

TABLE

                                    A ( I , J )

                                    C1       C2       C3       C4       C5       C6

                        B1       1          1          1          1          1          1

                        B2       2          -1         -2         4          0          0

                        B3       0          0          1          1          2          1 ;

توجه شود که تنها یک ماتریس در هر بخش TABLE می‌توان وارد کرد و لازم است با یک سیمی‌کالون (؛) خاتمه یابد. برای وارد کردن چندین ماتریس، همان تعداد TABLE لازم است.

بخش متغیرها VARIABLES

در بخش VARIABLES مجهولات مسأله را لیست می‌کنیم. متغیرها می‌توانند اسکالر باشند، یک بردار باشند، یک ماتریس دوبعدی باشند، یک ماتریس سه‌بعدی باشند و غیره ...

در GAMS متغیرهای نامنفی با عنوان POSITIVE VARIABLES و متغیرهای نامثبت با عنوان NEGATIVE VARIABLES معرفی می‌شوند.

متغیرها می‌توانند BINARY باشند که در این صورت تنها مقادیر صفر و یک می‌گیرند.

بخش معادلات EQUATIONS

بخش بعدی بخش معادلات است که اسامی تابع هدف و قیود دیگر مسأله در آن تعریف می‌شود. نامعادلات شبیه معادلات در این بخش ظاهر می‌شوند.

در برنامۀ TEST نام OBJECTIVE برای عبارتی که باید می‌نیمم گردد (تابع هدف) انتخاب شده است. نام Y(I) برای قیود مسأله انتخاب شده است.

بعد از نام‌گذاری، معادلات وارد می‌شوند. ابتدا نام معادله، به دنبال آن دو نقطه (..) آن گاه تعریف جبری قید که خیلی شبیه علائم استاندارد ریاضی است، می‌آید. ضرب به وسیلۀ علامت (*) ، تقسیم به وسیلۀ علامت اِسلش (/)، توان به وسیلۀ (**) تعریف می‌شود.

بعضی از توابع استاندارد

تعریف ریاضی

شرح

نام

قدر مطلق

ABS

COS ( arg )

کسینوس

COS

exp (arg)

تابع نمایی

EXP

لگاریتم در مبنای e از arg

لگاریتم طبیعی

LOG

لگاریتم در مبنای 10 از arg

لگاریتم معمولی

LOG10

Qrg*arg

توان دوم

SQR

Sqrt(arg)

ریشه دوم

SQRT

بعضی از علائم ریاضی

علائم ریاضی معمولی

 

GAMS

 

SUM ( I ,  )

 

SUM ( ( I , J ) ,  )

=

 

= E =

 

= G =

 

= L =

در GAMS راهی برای بیان کران بالا، کران پایین و قیود تساوی که با یک متغیر سر و کار دارند وجود دارد، مثال زیر را ببینید:

علائم استاندارد ریاضی

 

GAMS

 

X = L = 20

 

X = G = 20

 

X = E = 20

به جای تعاریف فوق قبل از EQUATION ، دستورات زیر را می‌توانیم بیاوریم.

X . UP = 20 ;

X . LO = 20 ;

X . FX = 20 ;

که در آن UP ، LO ، FX بیان‌کننده کران بالا، کران پایین و مقدار ثابت هستند.

بخش MODEL و SOLVE

در آخرین قسمت برنامه، MODEL داده می‌شود، نام مدل (نام فایل) حداکثر 8 تا 10 کاراکتر بسته به GAMS مورد استفاده، انتخاب می‌شود.

در GAMS کلمۀ مدل مجموعه‌ای از معادلات است که معمولاً یکی از آنها تابع هدف مسأله است، به عنوان مثال:

MODEL            TEST / ALL / ;

این معنی را می‌دهد که تمام معادلاتی را که قبلا معرفی شده است به عنوان مدل TEST در نظر گرفته شود.

از این قسمت می‌توان برای حل تجزیۀ LP هم استفاده کرد (Decomposition) طوری که علاوه بر تابع هدف قیودی را که برای حل کردن مد نظر است در این قسمت می‌نویسیم.

آخرین خط برنامه:

SOLVE TEST USING LP MINIMIZING COSTS ;

به کامپیوتر اعلام می‌کند که مدل TEST را با استفاده از برنامه‌ریزی خطی (LP) که در کتابخانه برنامه حاضر است، به منظرو می‌نیمم‌سازی متغیر COSTS (تابع هدف) حل کن.

در انتهای برنامه یک خط دلخواه را می‌توان اضافه کرد:

DISPLAY X . L , X . M ;

که این خط باعث می‌شود در انتهای جواب برنامه، مقدار متغیرهای مسأله اولیه و مسألۀ دوگان به طور خلاصه و جمع و جور نوشته شود.

چگونه یک برنامۀ GAMS را اجرا کنیم؟

بعد از نوشتن برنامه (در یک ویرایشگر)، از آن ویرایشگر خارج می‌شویم، وقتی وارد صفحۀ DOS شدیم، دستور زیر را برای اجرای برنامۀ TEST.GMS می‌نویسیم:

(یا ساده‌تر GAMS TEST)                                    > GAME      TEST . GMS

پس از اجرای برنامه، گزارشی از جواب در فایلی به نام TEST . LST ایجاد خواهد شد.به کمک ویرایشگرتان (مثلا EDIT) می‌توانید این فایل را ببینید یا آن را چاپ کنید.

اولین بار که برنامه‌ای را اجرا می‌کنید، احتمالاً شامل خطاهایی خواهد بود، که این خطاها به وسیلۀ چهار ستاره (****) در سمت چپ خط خطا علامت‌گذاری می‌شود. در جلوی (****)، علامت $ را با یک عدد ملاحظه خواهید کرد، در انتهای برنامه و جلوی همان عدد نوع خطایی را که مرتکب شده‌اید، نوشته شده است، نوع خطا را مطالعه کرده و نسبت به رفع آن اقدام کنید.

بعد از رفع خطاهای برنامه، سرانجام خلاصه‌‌ای از جواب را در TEST . LST ملاحظه خواهید کرد، که شامل اطلاعاتی است که نیاز خواهید داشت. این قسمت با چهار خط تیره "----" شروع می‌شود. به عنوان مثال خلاصه‌ای از جواب برنامۀ TEST عبارت است از:

 

---- EQU Y

               LOWER          LEVEL           UPPER           MARGINAL

B1          6.000               6.000               6.000               -2.000

B2          4.000               4.000               4.000               ESP

B3          4.000               4.000               4.000               -1.000

 

                           LOWER          LEVEL           UPPER           MARGINAL

---- VAR Z        -INF                -16.000            + INF

 

---- VAR Z

               LOWER          LEVEL           UPPER           MARGINAL

C1          -                       -                       + INF              1.000

C2          -                       4.000               + INF              -

C3          -                       -                       + INF              4.000

C4          -                       -                       + INF              2.000

C5          -                       2.000               + INF              -

C6          -                       -                       + INF              5.000

C7          -                       -                       + INF              2.000

C8          -                       8.000               + INF              -

C9          -                       -                       + INF              1.000

 

**** REPORT SUMMARY :              0          NONOPT

                                                               0          INFEASIBEL

                                                               0          UNBOUNDED

 

----                      36        VARIABLE   X . L

C2  4.000,          C5  2.000,       C8  8.000

 

----                      36        VARIABLE   X . M

C1  1.000,     C3  4.000,    C4  2.000,    C6  5.000,    C7  2.000,   C9  1.000

اولین قسمت خلاصه جواب شامل معادلات است. قسمت دوم خلاصه جواب مقدار بهین تابع هدف را ارائه می‌دهد که برابر 16- است و در ادامه مقدار بهین متغیره هستند که تحت عنوان LEVEL لیست می‌شوند. در قسمت پنجم و ششم، X.L و X.M را ملاحظه خواهید کرد که همان مقادیر بهینۀ به ترتیب متغیرهای اولیه و دوگان مسأله می‌باشند.

فهرست تحقیق مقاله راهنمای عملیاتی نرم‌افزار GAMS

فهرست:

ندارد
 

منبع:

ندارد

تگ‌ها