دوستان
آخرین مطالب
دیگر موارد
 

در این مطلب قصد داریم تا sttement ها یا بیانیه های زبان برنامه نویسی gams را شرح دهیم.

هر عبارت در GAMS به یکی از دو گروه طبقه بندی می شود:

  • statement ها و عبارات تعریفی
  • statement های اجرایی

یک statement کلاس یک نماد را توصیف می کند. اغلب مقادیر اولیه در یک statement ارائه می شود، سپس ممکن است آن را یک تعریف نامیده شود. تعیین روابط نمادین برای یک معادله یک تعریف است. statement و عبارات تعریفی عبارتند از:

دستورات اجرایی دستورالعمل هایی برای انجام اقداماتی مانند تبدیل داده ها، راه حل مدل و تولید گزارش هستند. statement های اجرایی عبارتند از:

 

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

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



:: برچسب‌ها: کد نویسی با گمس, GAMS, انجام پروژه با GAMS, بهینه سازی
ن : شهرام
ت : یکشنبه پانزدهم اسفند ۱۴۰۰

یکی از سبک‌های رایج سازمان‌دهی عبارات GAMS، داده‌ها را در ابتدا قرار می‌دهد و سپس مدل و دستورات راه‌حل را قرار می‌دهد.

Style 1:
Data:
Set declarations and definitions
Parameter declarations and definitions
Assignments
Displays
Model:
Variable declarations
Equation declarations
Equation definitions
Model definition(s)
Solution:
Solve(s)
Displays

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

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

Style 2:
Model:
Set declarations
Parameter declarations
Variable declarations
Equation declaration
Equation definition
Model definition
Data:
Set definitions
Parameter definitions
Assignments
Displays
Solution:
Solve
Displays

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

Set       c         "crops" ;
Parameter yield(c)  "crop yield" ;

بعداً می توان آنها را با عبارات زیر تعریف کرد:

Set        c        / wheat, clover, beans / ;
Parameter  yield(c) / wheat     1.5
                      clover    6.5
                      beans     1.0  / ;

عبارت اول اعلام می کند که شناسه c یک مجموعه است و عبارت بعدی عناصر این مجموعه را تعریف می کند. به همین ترتیب، در عبارت دوم بازده به عنوان یک پارامتر اعلام می شود و بعداً داده های مربوطه داده می شود.

توجه داشته باشید

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



:: برچسب‌ها: کد نویسی با گمس, GAMS, انجام پروژه با GAMS
ن : شهرام
ت : یکشنبه پانزدهم اسفند ۱۴۰۰

 

رفع خطاهای رایج

صدها خطای در GAMS  ممکن است بوجود بیاید، اما برخی از آنها به مرسوم هستند. در جدول زیر این خطاهای رایج را با توضیح مختصری در مورد علت احتمالی ارائه می دهیم. ما توصیه می کنیم که کاربران نیز پیام های خطا را بخوانند، زیرا اغلب حاوی نکات خوبی هستند.

شماره خطاعلت رایج خطا
88پرانتزها ، پرانتزها یا براکت های بسته وجود ندارد.
36دو نقطه .. در تعریف معادله وجود ندارد.
37نوع معادله (به عنوان مثال = L =) در بدنه معادله وجود ندارد.
51-60عبارات غیر خطی ممنوع شده وجود دارد.
66یک مورد داده که مقادیر عددی به آن داده نشده است در یک معادله ظاهر می شود.
71معادله اعلام شده است ، اما تعریف نشده است.
96-97عبارتی که به دنبال آن عبارتی دیگر با ؛ خاتمه می یابد .
120GAMS نمی تواند مجموعه ای با این نام پیدا کند. برای غلط املایی در نام مجموعه و عناصر مجموعه ای که بدون نقل قول به آنها اشاره شده است ، بررسی کنید.
125مجموعه بیش از یک بار کنترل می شود ، به عنوان مثال ، با یک عملیات نمایه شده مانند مجموع و با یک معادله.
140GAMS به دنبال یک کلمه کلیدی یا مورد اعلام شده است و نمی تواند آن را پیدا کند. املا و اعلانات را بررسی کنید.
141پارامتر بدون داده استفاده می شود یا مشکلات مربوط به حل و در نتیجه ویژگی های .l و .m خالی است.
148شناسه با مجموعه های فهرست بندی شده کم و بیش نسبت به اظهارنامه ارجاع داده شده است.
149مجموعه کنترل نمی شود ، نه با یک عملیات نمایه شده مانند مجموع ، نه با یک تعریف معادله ، و نه با یک حلقه یا مشابه.
170عنصر مجموعه مرجع را نمی توان در مجموعه تعریف شده برای این موقعیت فهرست یافت. برای غلط املایی ، حذف در اعلامیه مجموعه ، نقل قول های مفقود شده و مراجع به مجموعه اشتباه را بررسی کنید.
171خطای دامنه مجموعه اشتباه برای موقعیت شاخص مربوطه ارجاع داده شده است.
195نام مورد استفاده در اینجا قبلاً برای شناسه دیگری استفاده شده است.
198استفاده از دستور عمل یا عملیات تأخیر/سرب با مجموعه ای که سفارش داده نشده است.
256مشکلی در مشخصات مدل وجود دارد. این اغلب یک خطای نتیجه ای از یک خطای دیگر است. بلافاصله پس از دستور حل به دنبال پیام های خطای دیگر باشید.
257حل کننده بررسی نمی شود. این ممکن است یک خطای تبعی از هر گونه خطای GAMS باشد.
340احتمالاً نقل قول ها در مرجع عنصر مجموعه وجود ندارد.
408پرانتزهای اضافی


:: برچسب‌ها: کد نویسی با گمس, GAMS, انجام پروژه با GAMS
ن : شهرام
ت : دوشنبه هجدهم مرداد ۱۴۰۰
 
موضوعات
برچسب ها
آرشیو مطالب
امكانات جانبي