سفارشی سازی خروجی

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

معمولاً کاربران مایلند برخی از ویژگی های متغیرها، محدودیت ها وحتی اندیس ها وپارامترهایی که تعریف نموده اند را پس از run کردن مدل مشاهده کنند. آنها دو راهکار برای این امر دارند. راهکار اول جستجوهای طاقت فرسا و بعضاً غیر ممکن در فایل نتایج، و راهکار دوم استفاده از دستور Display خواهد بود. این دستور به کاربر این امکان را می دهد که اطلاعات مذکور را به صورت مرتب و یکجا مشاهده کند. با این عمل دیگر نیازی به جستجوهای وقت گیر نخواهد بود. قالب کلی این دستور به شکل زیر می باشد:

Display Item1, Item2, Item3;

در قالب بالا، Display دستور نمایشگر، Items نیز می تواند شامل: اندیس، پارامتر، جدول، متغیر و محدودیت باشد.
Display برای اندیس ها، پارامترها، اکرونیم ها و اسکالرها فرمت یکسان و ساده ای دارد. مثال های زیر گویای این واقعیت اند.:

Display-Data

همانطور که مشاهده می کنید، در دستور display برای اقلام مذکور قالب ساده ای به کار برده شده است. اینجا دیگر از پسوند هایی که در متغیرها و محدودیت ها به کار می روند خبری نیست. در Display به وابسنگی پارامترها به اندیس ها اشاره ای نمی شود و تنها وتنها نام پارامتر آورده می شود. اقلام تنها با یک کاما از هم جدا می شوند.
حال اگر دستور داده شده در شکل بالا را Run کنیم، یک فایل جدید تحت پسوند lst ایجاد خواهد شد. در فایل lst قسمتی تحت عنوان Display آورده شده که با استفاده از آن می توان اقلامی که در دستور Display خواسته ایم نمایش داده شوند را مشاهده نمود. شکل زیر مطلب را به روشنی بیان می کند.

display-output-data

Display برای متغیرها مقداری با اندیس ها و پارامترها متفاوت است. به وسیله ی Display می توان ویژگی ها مختلفی از جمله مقدار بحرانی که متغیر در طول حل مسئله به خود می گیرید، کمترین مقدار و بیشترین مقدار و… را نشان داد. قالب کلی دستور Display برای متغیرها به شکل زیر خواهد بود.
Display VariableName.{variable attribute} ;
در قسمت Variablename نام متغیر را بدون هیچ پسوند، اندیس و وابستگی وارد می کنیم. پس از آن -طبق آنچه که در بخش تخصیص ویژگی به متغیرها گفته شد- نوعی ویژگی ای را که می خواهیم نشان دهد مشخص می کنیم.
قالب کلی دستور Display برای محدودیت ها نیز به همین شیوه می باشد. یعنی ابتدا نام محدودیت و سپس ویژگی مربوطه را ذکر می کنیم. این ویژگی ها در بخش ویژگی محدودیت ها آورده شده اند. در اینجا نیز باید به این نکته دقت نمود که از آوردن اندیس ها و پسوندهای اضافی باید خودداری کرد در غیر اینصورت برنامه با Error مواجه خواهد شد.
فرض کنید ما سه متغیر x,y,z و دو محدودیت cont1 و cont2 را داریم. در دستور زیر، از GAMS خواسته شده که تعدادی از ویژگی های به کار رفته در آنها را پس از حل مدل یکجا و مرتب نمایش دهد.

display-variables

در ادامه، مثال کاربردی ۱ به صورت زیر در خواهد آمد:

display-example1-code

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

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

با تشکر
مدیریت سایت gamsbook.ir

ایمیل: Support@gamsbook.ir
شماره تماس: ۳۳۲۵-۴۰۵—۰۹۱۹

 

این مقاله برای شما مفید بود؟

مطالب مشابه

5 دیدگاه

  1. k/a

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

    1. k/a

      خواهشا هریک از کدهای ورودی و خروجی رو بصورت جدا بگید.ممنون

    2. محمودی

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

  2. Minerva

    سلام
    وقتتون بخیر
    من متلب و گمزم را با هم لینک کرده‌ام و می‌خواهم از خروجی‌های گمز در متلب استفاده کنم. همه‌ی نتایج درست است. فقط خروجی‌هایی که از گمز به متلب فرستاده می‌شوند، طول تمام بردارهایشان به اندازه‌ی بزرگترین بردار تغییر می‌کند و آرایه‌های انتهایی بردار صفر می‌شوند.
    مثلا دو خروجی گمز بردار LC(n) و PF(l) هستند که طول n برابر ۲۴ و طول l برابر ۳۸ است و داخل خود گمز هم طولشان درست است اما در متلب طول هر دو ۳۸ است!
    ممنون میشم راهنمایی‌ام کنید.

    1. محمودی

      سلام
      شاید تو تعریف و مقدار دهی اندیس ها دقت نکردین. یا شاید تو تعریف LC,PF . اندیس هاش رو بررسی کنین.
      در کل خدا میدونه چه بلایی سرش اوردین. 🙂

دیدگاهی دارید؟