fluidfluidfluidfluidfluid

سوال جواب دانشجویی

سوالات و مشکلات خود را مطرح کنید تا سریع به جواب برسید

عنوان سوال : سیمی کالون ; چرا استفاده میشه؟
جعفر مرادیان - (سوال کننده)

دلیل استفاده از سیمی کالون در انتها دستورات

زهرا یعقوبیان

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


معرفی و اعمال این معادلات در دو بخش Equation Declaration و Equation Specification انجام می شود.


مثال زیر را در نظر بگیرید:همانطور که ملاحظه می شود، در بخش اول دستور یا Equation Declaration، به تعریف و اعلام اسامی تابع هدف و محدودیت ها به همراه وابستگی اشان به اندیس های متناظر می پردازیم. co6 را در نظر بگیرید؛ این گذاره صرفا اسمی است که توسط کاربر برای محدودیت ششم انتخاب شده است و هیچ ارزش دیگری ندارد.


 در حالی که co1(i,j) وابستگی محدودیت اول به اندیس های i و jرا نیز نشان می دهد. و این معادل همان علامت ∀ در جبر خواهد بود. 


Equation-sample


در بخش دوم یا Equation Specification، در هر سطر، اسم هر معادله یا نامعادله که در بخش اول به تعریف آن پرداختیم، آورده خواهد شد و سپس دو نقطه (..) مطابق شکل بالا جلویش خواهیم گذاشت. 


دقت شود که اگر در قید، شرطی مانند i≠j نیز داشته باشیم باید این شرط را قبل از دو نقطه ای که گذاشته ایم اعمال نماییم. اگر مبتدی هستید، هیچگاه تایپ دو نقطه را فراموش نکنید! چون برطرف کردن خطاهایی که به هنگام run کردن مدل خواهید دید، انصافاً شما را به شدت عصبی می کند!


مثال: کد محدودیت زیر را مشاهده می کنید:
محدودیت:

Equation-sample2


کد:

*Example
co1(i,j,l)$(ord(i) ne ord(j)).. z(i,j,l)=l=z(j,j,l);


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


در معادلات و نامعادلات، دیگر از علایم ≠یا=،≤،≥ استفاده نمی کنیم. نمادهایی که در معادلات و نامعادلات در GAMS به کار می روند به قرار جدول زیراند:

equation-syms


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


جهت روشن تر شدن موضوع مثال زیر را در نظر بگیرید:

Equation-Example1


کد مربوط به به بخش معادلات این مدل به شکل زیر می تواند باشد:

*Example2
Equation
objective
Constraint1
constraint2
;
objective.. o=e=x1+x2 ;
constraint1.. x1*x2=l=10 ;
constraint2.. x1-x2=g=2 ;


دقت کنید که کد بالا کامل نیست و باید قبل از تعریف این معادلات متغیرهای x1 و x2 و همچنین متغیر مربوط به تابع هدف یا o قبلاً تعریف شده باشند.


بپردازیم به ادامه ی مثال کاربردی 1:


مدل تنها دو محدودیت دارد. آن ها را به ترتیب cont1 و cont2 و تابع هدف را obj می نامیم. نتیجتاً کد مربوطه به صورت زیر خواهد بود:

Example1-Equation definition


بحث در باب تعریف معادلات در GAMS به اتمام رسید. با اندکی تمرین و دقت می توانید به سادگی تعریف کردنِ معادلات و وارد کردن تابع هدف و محدودیت ها را فرا بگیرید. مباحث تکمیلی در همین برگه خدمت عزیزان ارائه خواهد شد.

سوالی دارید؟

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

نیاز داریم که شما با ما هماهنگ باشید آیا مایل هستید؟

میدونی مشاوره پروژه چیه؟

از صفر تا صد پروژه ات یک متخصص کمکت میکنه تا پروژتون رو انجام بدی نیاز به آموزش داری آموزشت میده باگ داری برات رفع میکنه