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

سفارشی سازی خروجی چند روش و با اهداف بعضاً مختلف دارد. در این تاپیک به معرفی دستور 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
شماره تماس: ۳۳۲۵-۴۰۵—۰۹۱۹

 

درباره نویسنده

155 دیدگاه

  1. قاسم محمودنیا

    با سلام آیا شما چندتمرین LPتحقیق در عملیات پیشرفته را حل کرده وبا دریافت هزینه آن راارسال می کنید

    1. محمودی

      سلام
      بله حتماً. یا با تلفن یا با ایمیل هماهنگ کنید.
      موفق باشید

  2. rainy man

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

    1. محمودی

      سلام
      یک تکنولوژی هست که به نام GDX شناخته می شه. شما با استفاده از این روش می تونین خواستتون رو اجرایی کنین. تقریباً مشابه کدی هست که واسه فراخوانی از اکسل استفاده می شه.
      می تونین فعلا به این لینک مراجعه کنین تا تاپیک مربوطه رو بذاریم.
      http://www.gams.com/docs/excel/
      موفق باشید

      1. تورج

        سلام
        میخواستم اگه پستی برای خروجی gdx یا exel نوشتین،زحمت بکشین و لینکش رو بذارین

        1. محمودی

          سلام
          نذاشتیم هنوز. فعلا از منابع خود سایت گمز استفاده بفرمایین.

  3. س.ک

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

    1. محمودی

      سلام
      اگر تابع هدفی به نام z داشته باشید که حاصل جمع دو بخش A و B باشد، ابتدا دو متغیر به نام مثلا z1 و z2 تعریف کنید. سپس یک محدودیت به مدل اضافه کنید که مثلا z1=e=A و z2=e=B باشد. و نهایتاً مقادیر A و B را با دستور display مشاهده کنید.
      موفق باشید

  4. mohammad vaezi

    سلام
    من دانشجوی مکانیک دانشگاه تهران هستم
    میخواستم knitro را به برنامه Eclipse که یک شبیه ساز برای مخازن نفتی است کوپل کنم چطور میتوانم؟
    در تزی در نروژ این کار شده بود…
    لطفا ایمیل بزنید
    با تشکر.

    1. محمودی

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

  5. HENGAME

    با سلام
    چطور می توانیم یک متغیر دو اندیس را با دستور dISPLAY نشان دهیم؟
    ممنون

    1. محمودی

      سلام
      تعداد اندیساش مهم نیست. واسه همه یه قانون ثابته.

      variable x,y(i),z(i,j,k);
      .
      .
      .
      display x.l,y.l,z.l

    2. سلام. این روشی ک فرمودید رو میشه برای حل مساعل چند هدفه (ب روش معیار جامع) هم حل کرد؟یا کلا حل مساعل چند هدفه تکنیک خاص خودش رو داره و به این روش ها قابل حل نیست؟لطفا مطالبی راجب چگونگی کد کردن مساعل چند هدفه بگذارید.مرسی

      1. محمودی

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

        توی یه دو هدفه، مثلا روش لکسیکوگرافی میگه که ابتدا z1 را بهینه کن. بعد آن را فیکس کن. بعد z2را بهینه کن. تمام شد. یعنی دو تا دستور solve
        روش وزنی ساده میگه هدف ها رو با هم جمع کن. و هر کدوم رو ضربدر w1,w2 کن. یعنی یه دستور solve
        روش معیار جامع میگه یه بار هر هدف رو حل کن. دو تا solve یه سری مشخصات رو ذخیره کن. فلان معادله رو اضافه کن. بعد حل کن. یه solve
        روش های مختلفی هستن. تک تک باید مطالعه کنین. اونی که نیاز دارین رو انتخاب کنین.
        فقط باید دقت کنین که دقیقا از مدل چی میخواین؟ اگه یک جواب میخواین، روش وزنیف لکسیکو یا روش های دیگه ای به کارتون میاد.
        ولی اگه مرز بهینه، مرز پارتو، یا دسته جواب می خواین. باید از روشی مثل اپسیلون محدودیت استفاده کنین.
        کد نویسیا شبیه همه. فقط مقداری دقت میخواد.
        خود گمز خودبخود چند هدفه حل نمیکنه.

  6. حدیث

    سلام
    من یه table دارم به اسم k که ۲۰۰*۵ هستش،یعنی ۲۰۰ ستون و ۵ تا سطر داره،میخوام مسئله بهینه سازیم رو هر بار به ازای یه ستون از این جدول حل کنه و جوابش رو تو فایل excell بهم بده
    اگر راهنماییم کنید خیلی خیلی ممون میشم
    مرسی

  7. sahand

    سلام
    با تشکر بابت مطالب مفیدتان یه سوال داشتم اگر بخام یه شرط بذارم که یه مجموعه ۳ تایی مثل (o,s,j) همزمان برابر با یه مجوعه دیگه مثل (op,sp,jp) نشه باید شرط رو چطور تعریف کنم؟ منظورم اینه همزمان هر سه عدد مجموعه اول برابر نشه با متغیر متناظرش در مجموعه دوم. یعنی مثلا (۲و۴و۱) اگر شد مجموعه اول (۲و۴و۵) قابل قبوله ولی (۲و۴و۱) غیر قابل قبول است.
    با تشکر

    1. محمودی

      سلام
      یا باید مجموعه مخصوص تعریف کنید که توضیحش خیلی زیاده. و یا در شرط ها از دستور ord استفاده کنید. مثلا بگین که:

      c1(o,s,j,op,sp,jp)$(ord(o) <> ord(op) and ord(s) <> ord(sp) and ....)..

  8. بهاره

    با سلام
    میشه لطفا درباره Absolute gap و Relative gap که در جواب نهایی گمز کتار best possible بعضی وقتا مقدار میگیره توضیح بدین؟

    1. محمودی

      سلام
      گمز یا solver های مرتبط، در حل مسائل MIP دو تعریف عمده دارن. best integer و best estimate . اولی یعنی جواب بهینه مسئله و تو همه محدودیت ها صدق میکنه.
      دومی به این معنیه که بهترین جوابی که میتونه بدون در نظر گرفتن محدودیت integer بودن متغیرها به دست میاد هست.
      تفاوت این دو تعریف میشه absolute gap و اگه به شکل درصدی هم بیانش کنیم میشه relative gap
      جهت مشاهده فرمول دقیق و محاسبات اینجا کلیک کنید.
      موفق باشید

  9. MOHSEN

    سلام من می خواهم مقدار دوال متناظر یک قید رو در یک فایل خروجی داشتعپه باشم. چطور این کار امکان پذیره؟ البته با دستور زیر مقادیر نمایش داده می شه ولی در هنگام قرار دادن در فایل خروجی اشکال می گیره . مثلا مقدار دوال رو با دستور زیر نشان می ده ولی چگونه این مقدار جواب رو در یک فایل متنی ذخیره کنم. ممنون
    Display Const2.m;
    جواب:

    DMU23 0.028052, DMU24 3.071006

  10. MOHSEN

    با سلام میشه چگونگی اضافه کردن دستور gdx رو تو مثال زیر توضیح بدبن.ممنون

    $title CCR Model(Epsilon)
    $onsymxref
    $onsymlist
    $onuellist
    $onuelxref

    Sets
    i “Inputs” /input1*INPUT2 /
    r “Outputs” /output1/
    j “Units” /DMU1*DMU5/;

  11. nz.21

    با سلام و احترام
    یک سوال خیلی مهم و فوری دارم. یک پارامتر در قسمت display نوشتم که مقدار نهایی آن را نمایش دهد اما گمز آن را به صورت کامل نشان نمی دهد و به این صورت ۲٫۵۶۹۳۹۸E+8 جواب ظاهر می شود. آیا راهی وجود دارد که این پارامتر به صورت کامل مثلا به صورت ۲۵۶۹۳۹۸۵۳ نمایش داده شود.
    با سپاس فراوان

    1. مهسا

      سلام.
      ببخشید میشه این سوالو جواب بدید؟منم این سوال برام پیش اومده؟
      ممنون از پاسختون.

      1. مهسا

        درستورشو از تو سایت خوبتون پیداش کردم. از دستور زیر استفاده میکنیم
        Option decimals=n;
        و اگه جای n عدد صفر بزاریم همه جوابا رو چه متغییر و چه توابع هدف رو به صورت عدد صحیح نشون میده.و اگه یک بزاریم همه رو تا یه رقم اعشار نشون میده و ….

  12. ملیحه

    سلام خسته نباشید.مرسی که انقدر با صبر و حوصله جواب سوالامونو میدین.
    من برنامم و به نظرخودم!! کامل نوشتم اما ران که میکنم ارور۷۱و۲۵۶ میده.واقعا دیگه خسته شدم.این ارور ها برای چیه؟
    درضمن مساله م برنامه ریزی عددصحیحه و minسازی هست.حالا باید چکارش کنم…؟

    1. محمودی

      سلام
      خواهش میکنم.
      ضربا رو نوشتی؟ :)))
      شماره ارورها خاطرم نیست، پیامشون رو اینجا بنویس ببینم چیه

      1. ملیحه

        آره ضربو نوشتم این ارور هرچیه به مراحل آخر بستگی و ربط داره!:((

        ۷۱The symbol shown has been declared as an equation, but no
        Symbolic equation (..) was found. hint - look for commas in the

        1. محمودی

          سلام
          شما یه محدودیت رو تو دستور equation تعریف کردین ولی فرمولش یادتون رفته و یا اینکه سیمیکالون بعد محدودیتها یادتون رفته

        2. ملیحه

          سلام این کل چیزاییه که من نوشتم و برنامه جواب داده!!!
          …..

        3. محمودی

          سلام
          چون من کپی کردم فرمولا رو، فرمتش تغییر کرد. ولی ظاهرا بعد co6 شما سیمیکالون نذاشتین

        4. ملیحه

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

        5. ملیحه

          خب به چی بفرستم؟لطفا آدرس ایمیل به ایمیلم ارسال کنید.ممنون

        6. محمودی

          سلام
          اگه یه بار سایت رو مطالعه میکردی میدیدی که…

        7. محمودی

          سلام
          بررسی شد. شما کلمه ی decleration رو جلوی equation نوشتین. پاکش کنین. در ضمن مسئله شما نشدنی هست.

  13. ترک فر

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

    1. محمودی

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

  14. ملیحه

    سلام.واقعا از اینکه وقت میذارین و جواب میدیم ممنون.اجرتون باخود خدا.
    یعنی مثالی که زدم نشدنیه دیگه؟اگر اعدادو…رو عوض کنم شاید جواب بده درسته؟
    آخه من اولین بارمه که گمز مینویسم…از ب بسم الله شروع کردم واقعن…شماخیلی کمکم کردین.
    متشکرم اگر بازم پاسخگو باشین

    1. محمودی

      سلام
      مرسی. خواهش میکنم.
      به عنوان اولین برنامتون عالی بود، یه مقدار باید محدودیتا رو دیت کاری کنی دیگه

  15. سوده

    باسلام
    بخشید، منظور از نام پرونده در مدل چیست؟

    1. محمودی

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

  16. سلام
    کسی میتونه راهنمایی کنه چطور بهینه سازی چند هدفه را در گمز اجرا کنیم .

  17. ali

    با سلام
    پس از حل مدل
    خطایی حل کننده رخ می دهد

    MIP status(103): integer infeasible
    Cplex Time: 0.01sec (det. 1.29 ticks)
    Problem is integer infeasible.

    اگر راهنمایی کنید ممنون می شوم

    1. محمودی

      سلام
      تو پیام سالور اون قسمتی که لازم بود رو جدا کردم.
      همون طور که مب بینین، مسئله شما برای متغیرهای گسسته و صحیحتون جواب شدنی نداره.
      شما باید مدل و یا داده های مسئله رئ تغییر بدین

  18. سمیرا

    با عرض سلام و خسته نباشید.
    ببخشید یه سوالی داشتم در مورد خروجی گمز که در پنجره active process ظاهر می شود
    می خواستم ببینم برای اینکه بدونم قسمت های مختلف در واقع چه چیزی رو بیان می کنن چه فایلی رو پیشنهاد میکنین مطالعه کنم در مورد خروجی نرم افزار تو پنجره active process?
    , و یک سوال دیگه اینکه تعداد کل متغیرهای استفاده شده در مدل و تعداد محدودیت ها رو هم میده یا نه ؟
    با تشکر از وقتی که میزارین

    1. محمودی

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

  19. فاطمه

    سلام

    ببخشید کدی هست که با وارد کردنش بگیم که بعد از رسیدن به این گپ، خروجی را نشان بده؟

    باتشکر

    1. محمودی

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

      option optcr=InterYourGapHere;

  20. Fatemeh

    سلام

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

  21. ملیحه2

    با سلام. من بعد ازحل مدل با این خطا مواجه می شم.
    MIP status(119): integer infeasible or unbounded
    Cplex Time: 0.06sec (det. 29.92 ticks)
    Problem is integer infeasible.
    برایچند تا مثال با داده های حختلف حل کردم ولی باز هم همین خطا رو میده.محدودیت ها هم درسته.مشکل چیه؟باید چه کار کنم؟

    1. محمودی

      سلام
      مدلتون یا نشدنیه یا جواب بیکران داره. برای فهمیدن اینکه بیکرانه یا نه. شما یه حد بالا (یا پایین – یه عددی که خیلی بزرگ یا کوچیک نباشه) برای تابع هدف بذارین (تو محدودیت ها) که بی نهایت نشه. اگه مدل جواب داد که معلومه که مدل جواب بیکران داره و تکلیفش رو باید مشخص کنین. اگه باز نشدنی شد، معلومه یا مشکل از داده هاست، یا از مدل یا از کد. که باید با مثال با سایز کوچیک شروع کنین و یکی یکی محدودیت به مدل اضافه کنین تا مشکل رو حل کنین، تحلیل یادتون نره!

  22. سارا

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

    1. سلام
      داده ها را باید از مقالات بگیرید! مقالات بازه ی اعداد پارامترها را می نویسند و شما می توانید ازشون استفاده کنید.

  23. zohre

    با سلام
    با اینکه دستور display رو نوشتم ، وقتی ران میکنم برنامه رو، اصلا display نشون داده نمی شود، بنظرتون اشکال کار کجاست؟

    1. محمودی

      سلام
      چندتا دلیل داره. display رو کجا گذاشتین و وضعیت سالور تو process window چیه؟

      1. zohre

        آخرین خط برنامه display گذاشتم سالورش هم MIP نوشتم ، متوجه نشدم وضعیت سالور تو process windowیعنی چی؟

        1. محمودی

          ببینید وقتی مدل رو ران میکنین، یه پنجره دیگه باز میشه، بهش میگن process window، همونی که همش بالا پایین میکنه و اینا… اونجا یه سری چیز نوشته. احتمالا تو چند خط آخرش از لایسنس حرف نزده؟ چیزی مث این:
          خطای لایسنس در گمز

        2. zohre

          دقیقا همین و گفته،چند خط آخرش مثل همینه که فرستادین، باید چکار کنم ؟

  24. fazli

    سلام
    سوالی داشتم از خدمتتون
    چطور میشه در گمز از برنامه های زبان های برنامه نویسی دیگه مثل ++C استفاده کرد؟
    ممنون میشم اگه توضیح بدید

    1. سلام بر اساس تجربه ای که ما داریم ارتباط برقرار کردن بین سی پلاس پلاس و گمز بهتون پیشنهاد نمی کنم . چون بعضی از حل کننده ها هستند که در سی پلاس پلاس قابل استفاده نیستند. برای مثال حل کننده ی BARON رو میشه توی متلب فراخوانی کرد اما در سی پلاس پلاس این امکان وجود نداره یا مثلا ANTIGONE.
      ولی در کل دستوری createprocess() هست.
      برای مثال

      CreateProcess(L"C:\\gams23.3\\gamside.exe",NULL,NULL,NULL,false,0,NULL,NULL,&si,&pi)

  25. fazli

    سلام
    ممنونم از پاسختون
    برنامه ای دارم که در ++C و براساس فایل های ApI برای GAMS نوشته شده ( در واقع نوعی ابزار هست) ولی نمی تونم ازش استفاده کنم ممنون میشم اگر راهنمایی کنید.
    آیا این برنامه رو باید در خود ++C اجرا کنم یا در دایرکتوری apifiles در گمز بصورت cpp قرار داده و از ++C فراخوانی کنم.
    امکانش هست در مورد فایل های api توضیحی بدید؟

    ممنون از شما

  26. saeed

    با سلام
    من هم سوال مطرح شده در این صفحه در تاریخ ۱۹ خرداد ۹۵ ساعت ۱۲:۵۹ دقیقه را داشتم.
    نوشته های درون process window شبیه جواب داده شده به سوال نیست.

  27. رضا

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

    1. محمودی

      سلام
      زمان حل مدل در گمز
      و مقدار گپ مدل در گمز
      رو با دستور زیر میتونین نشون بدین:

      display modelname.resusd;
      display ,odelname.optcr;

  28. shima

    سلام خسته نباشین.ببخشید من تو مدلم ۳ تا متغیر دارم
    (X(i,j و ( y(j و ( w(j
    طبق مطالبی که تو سایت شما خوندم تو قسمت display به اندیس کاری نداشتم و نوشتم display x.l,y.l,w.l اما توی فایلی که با پسوند lst ایجاد شده display ندارم و الان باید مقدار متغیرهامو کجا ببینم؟ ممنونم

    1. محمودی

      سلام
      مدل شما حل نشده. احتمالا لایسنس ندارین، یا ارور داره، ویا اینکه تاریخ سیستم ۲۰۰۴ نیست

  29. shima

    سلام خسته نباشین. از سایت بسیار عالیتون واقعا ممنونم. میشه لطف کنین معنی این جند خط رو تو ی برنامه گمز بهم بگین و اینکه به چه دردی میخوره و اگه نباشه چی میشه؟
    P.reslim=50000;
    P.Iterlim=5000000;
    P.optCR= 0;

    1. محمودی

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

  30. sheida

    سلام خسته نباشید. من انتهای ی برنامه گمز چند خط کد دیدم که میخواستم اگه ممکنه راهنماییم کنین که چه خاصیتی دارن و تفاوتشون با display چی هستش و اصلا چرا از این کدها استفاده شده؟
    execute_unload “results.gdx” x.l , y.l , w.l
    execute ‘gdxxrw.exe results.gdx var=x.L rng=x!’
    execute ‘gdxxrw.exe results.gdx var=y.l rng=y!’
    execute ‘gdxxrw.exe results.gdx var=w.l rng=w!’

    1. محمودی

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

  31. anahita

    سلام وقتتون بخیر
    من میخام سناریو تعریف کنم برای تقاضام
    فرض بر این که T=3 , در هر دوره من ۲ تا سناریو دارم
    تقاضا مشتری i در دوره t تحت سناریو s d (i,t,s)
    مثلا در دوره t1 ما دو تا سناریو s1,s2داریم چه جوری کد کنم

  32. shima

    سلام خسته نباشین. من ی مدل دو هدفه غیرقطعی دارم و کدشو نوشتم و جواب گرفتم اما با یه تکنیک رباست مدلو به قطعی تبدیل کردم و ۵تا error داره و هر کاری میکنم نمیتونم برطرف کنم؟میخواستم بدونم شما برا رفع این error ها چقد هزینه میگیرین و آیا انجام میدین یا ن

        1. محمودی

          پاسخ ارسال شد.
          من به دوستان چند سری عرض کردم اول سعی کنین زبان کدینگ گمز رو یاد بگیرین. قاطی نکنین با متلب

  33. مهدی

    اقا سلام بسیار لنگ هستم
    چطور میتونم مقدادیری ک مقدار صفر میگیره در گمز رو تو خروجی بجای فضای خالی ..همون مقدار صفر واردش بشه
    چون میخام بریزم تو مطلب. اونجا ی فضا خالی ایجاد میشه کل ماتریس بهم میخوره..
    ممنون میشم زود کمکم کنید
    مثلا pi خروجیاهاش بترتیب ۱ ۲ ۳ ۰ ۵ هستش…این صفرو نشون نمیده و گپ هستش….وقتی میفرستم مطبل ۵ جا صفرو میگیره… چکار کنم تو گمز همون صفر نشون بده.
    ممنون

    1. محمودی

      سلام
      خیلی متوجه نشدم. ولی برای اینکار، یا نتایج مستقیما بفرستین به اکسل یا gdx و…

      1. مهدی

        مشکلم اینه یه ماتریس مثلا به اسم p که ۲*۲ هستش دارم. مثلا سطر دوم از ستون اولش مقدارش صفر شده تو گمز….حالا ک اینو میخام بفرستم تو مطلب بخونم….فقط ۳تا مقدار نشون میده….اون صفر کلا تو درایه های مطلب نشون نمیده. و میگه کلا ۳مقدار داره این مثلا p ….راهی هستش ک این مقدار صفرم بتونم برگردونم تو جواب؟

        درواقع من مثلا میخام یه ماتریس که ۱ سطر و ۲۴ ستون زمان داره رو برگردونم تو مطلب مقدارشو…. فرض کن ۲تا ستون مقدارش صفر شده… اینو اصلا تو مطلب نشون نمیده…خروجی مطلب ی ماترس یک در ۲۲ میده… میخام اون دوتا درایه ک صفر شدنم تو اون باشه ک کل جوابو بصورت یک سطر و ۲۴ ستون داشته باشم نشون نمیده….
        ببخشید بازم مزاحمت شدم

  34. مهدی

    مشکلم اینه یه ماتریس مثلا یک p که ۲*۲ هستش دارم. مثلا سطر دوم از ستون اولش مقدارش صفر شده تو گمز….حالا ک اینو میخام بفرستم تو مطلب بخونم….فقط ۳تا مقدار نشون میده….اون صفر کلا تو درایه های مطلب نشون نمیده. و میگه کلا ۳مقدار داره این مثلا p …………..راهی هستش ک این مقدار صفرم بتونم برگردونم تو جواب؟

    درواقع من مثلا میخام یه ماتریس که ۱ سطر و ۲۴ ستون زمان داره رو برگردونم تو مطلب مقدارشو…. فرض کن ۲تا ستون مقدارش صفر شده… اینو اصلا تو مطلب نشون نمیده…خروجی مطلب ی ماترس یک در ۲۲ میده… میخام اون دوتا درایه ک صفر شدنم تو اون باشه ک کل جوابو بصورت یک صطر و ۲۴ ستون داشته باشم نشون نمیده….
    ببخشید بازم مزاحمت شدم

  35. مهدی عظیمی

    اقا میخام ی مقدار مثلا p که دو سطر و دو ستون(مثلا t1,t2) داره رو مقدارشو به مطلب انتقال بدم. فرض کن مقدار سطر اول ستون اول صفر شده… حالا وقتی از مطلب میخونم این مقدارو …میگه س مقدار داره این p و اون مقدار صفر شده رو نشون نمیده اصلا….
    میخام یکاری کنم که خود گمز اون مقدار صفر شده رو بجای اینکه گپ نشون بده تو خروجی خود گمز صفر یا اپسیلون بگیره بجاش ک مطلب بتوته اون مقدارو بخونه
    خلاصش چیکار کنیم ک تو خروجی گمز این مقدار ک صفر شده رو بجای گپ ،‌صفر بنویسه
    تو خروجی گمز فقط مینویسه مثلا
    p(1,1 )=x
    p(1,2)=y
    p(2,1)= gap….ya bedun megdar
    p(2,2)=z
    میخام این مقدار سومی رو صفر یا بصورت اپسیلون نشون بده

    1. محمودی

      سلام
      خیلی متوجه نشدم. ولی قطعا این راهکار به دردتون میخوره. خب یه لوپ بنویسین، و بگین که هرجا به صفر رسیدی، به جاش مثلا بذار ۱۰۰۰٫ بعد تو متلب دوباره برشگردونین به همون حالت قبلیش. این واسه وقتیه که p پارامتره. اگه متغیره که باید یه پارامتر دیگه تعریف کنین، و مقادیر بهینه p رو بذارین توش، بعد سایر بلاها رو سرش بیارین

  36. مهدی عظیمی

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

  37. مهدی عظیمی

    سلام اقا ما دوباره اومدیم. ی سوال لطفامیتونیدبرنامه ۳،۴خطی این چیزی ک میگمو بنویسید/:
    میخام تو گمز بگم
    option rminlp = conopt ;
    solve new using RMINLP Minimizing z ;
    خب این حل شد و اینفیزیبل داد یعنی modelStat 2, solveStat 1. مخالف این دو مقدارو گرفت……… که از دستور زیر اینو میکشیم بیرون
    بعدش میام ازین دستور زیر استفاده میکنم…
    set stat /modelStat, solveStat/;
    parameter returnStat(stat);
    returnStat(‘modelStat’) = new.modelstat;
    returnStat(‘solveStat’) = new.solvestat;
    بعدش حالا چطوری شرط بزاریم که اگه modelStat 2, solveStat 1 برابر این دو مقدار نشد……….
    حالا برو از
    option rminlp = ipopt ; این استفاده کن
    اگه اینم لکالی فیزیبل نشد و ………………..
    ممنون میشم یکی اینو برام بنویسه……..گشتم و انجام دادن نتونستم راستش انجامش بدم

    1. محمودی

      سلام
      خب این set که تعریف کردین اشتباهه. شما دو تا پارامتر تعریف کنین. بذارین تو یه دستور if اگه اوکی بود. که هیچی. اگه نبود متوقف بشه. اصن من جا شما باشم. خیلی ساده با جفتشون حل میکنم و نتیجه رو نگاه میکنم. همین

  38. محسن

    سلام.
    ببخشید من یک تابع چند ضابطه ای دارم که تو قسمت معادلات تعریف کردم نرم افزار می گه از سالور DNLP باید استفاده کنم ولی من متغیر Integer هم دارم که تو این سالور تعریف نشده لطفا من را راهنمائی بفرمائید.
    باتشکر.

        1. محسن

          سلام. من تابع چند ضابطه دارم که اینطوری تو قسمت معادلات نوشتم ولی وقتی minlp استفاده می کنم می گه $ نمی تونی استفاده کنی!
          متغیر (TD(t دارم.

          (PS_eq1(t)$((TD(t) > 1) and (TD(t) ta1+1) and (TD(t) ta2+1 ) and (TD(t) ta3)) .. PS(t) =e=0

        2. محمودی

          سلام
          مهندس این سوال رو یه جای دیگه هم پرسیده بودین. همونجا جوابتون داده شده

  39. مهرداد

    باسلام و خسته نباشید به شما، ممنون از سایت خوبتون.
    بعد ازینکه مدل اجرا میشه، مینویسه modelstat=8، یعنی تابع هدف هم بهینه هست و هم شدنی؟

      1. محمودی

        سلام
        بله. gap اگه صفر نشون بده یعنی بهترین جواب شما هست

        1. مهرداد

          Relative gap برابر با ۰٫۰۳۰۵۰۴ شده، میشه گفت بهینه هست؟

        2. محمودی

          خیر
          کد زیر رو قبل از دستور solve تایپ کنید.

          option optcr=0;

    1. محمودی

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

      1. مهرداد

        برای الزام اینکه بهینه باشد، Modelstat باید برابر با چند باشد؟

    2. مهرداد

      ممنونم از لطف تون. مشکلم حل شد. فقط میتونم بدونم که این کد چی هست؟

  40. jafari

    سلام

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

    1. محمودی

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

      option decimals=5;

      که ۵ همون عددیه که میخواین

  41. اکبر ستاری بهنام

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

    1. اکبر ستاری بهنام

      مثلا میخوام تابع هدف مینیمم سازی x^2 رو با چند تا محدودیت حل کنم و جوابش رو بزارم در معادله X^3 تا مقدار این معادله رو در اون نقاط بده
      دستوری برای این کار هست؟؟
      خیلی گیرم و پایان نامم فقط منتظر این دستوره

      1. محمودی

        سلام
        شما باید از variable attributes استفاده کنین.
        ببینید وقتی گمز به دستور solve میرسه، مدل رو حل میکنه. فرض کنیم یه متغیر دارین به اسم x، حالا که این متغیر حل شده و جوابش مشخص شده، میتونیم مقدار بهینه x رو ببینیم. با دستور x.L که L یعنی level و مقدار بهینه x رو نشون میده. تابعد هدف هم همینطوره z.L یا هر متغیر دیگه ای.
        حالا فرض کنیم میخوایم بعد از اینکه مدل حل شد، مقدار بهینه تابع هدف بره تو یه مدل دیگه و اون مدل حل بشه.
        اول zz رو به عنوان یه پارامتر جدید تعریف کنین.
        بعد از دستور solve مینویسیم. zz=z.l
        بعد تو مدل دوم به جای z عبارت zz رو استفاده میکنیم و تو مدل دوم به عنوان یه پارامتر با zz برخورد میشه.
        مشکلتون رفع شد؟

        1. اکبر ستاری بهنام

          سلام آقای محمودی
          ممنون که حال ما دانشجو ها رو درک می کنید و جواب می دید
          فقط شرمنده من دقیق متوجه نشدم چطور باید کد نویسی بکنم
          راستش از دیروز که جواب دادید هر جور که حدس زدم چطور باید بنویسم انجام دادم ولی ارور داد و متنتون رو به استاد راهنمام هم فرستادم و ایشون هم نتونست بفهمه
          پرروییه ولی امکان داره یه مثال ساده را برام کد نویسی کنید تا روشش رو متوجه بشم
          مثلا مینیمم کردن ایکس به توان ۲ رو با یکی دو تا محدودیت حل کنه و بعد از حل بیهنه، نقاط حاصله را بزاره تو معادله x به توان ۳ و جوابش رو تو این معادله بدست بیاره

        2. محمودی

          خواهش میکنم و نفرمایین خواهشن.
          یعنی بره تو معادله دومی و فقط محاسبه کنه همین؟ دیگه محدودیتی روش اعمال نشه؟ (یعنی یه مدل دیگه حل نشه و فقط جواب x که اولین بار به دست اومد رو بذاره تو x3؟)

  42. اکبر ستاری بهنام

    “یعنی بره تو معادله دومی و فقط محاسبه کنه همین؟ دیگه محدودیتی روش اعمال نشه؟ (یعنی یه مدل دیگه حل نشه و فقط جواب x که اولین بار به دست اومد رو بذاره تو x3؟)”
    بله دقیقا

    1. محمودی

      چیزی که فرمودین اینه:

      positive variable x;
      variable z;

      equation
      obj
      c1
      ;
      obj.. z=e=x**2;
      c1.. x=g=3;

      model mymodel /all/;

      solve mymodel using nlp minimizing z;

      parameter y;
      y=x.L**3;
      display z.l,x.l,y;

      1. اکبر ستاری بهنام

        خیلی خیلی ممنون
        درست شد
        خدا خیرتون بده

  43. علیرضا

    ببخشید، جابجایی محدودیت ها(ترتیب وارد کردن محدودیت ها) در محیط کدنویسی گمز، روی جوابهاsolutions تاثیری داره؟

        1. محمودی

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

  44. مهسا

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

    1. محمودی

      سلام
      میتونید داده ها رو scale کنین. مثلا تمامی اعدادی که تو مدلتون هست رو ضرب در هزار بکنین. یعنی عددی مثل ۰٫۰۰۱ رو وقتی ضرب در هزار بکنین، میشه ۱ پس تعداد دسیمال هاش هم کم میشه. ایده بهتری به ذهنم نمیرسه. فقط یه جوری این کارار رو انجام بدین که ماهیت مدل عوض نشه.

  45. محمد

    ضمن عرض سلام و آرزوی توفیق روز افزاون خدمت شماعزیزان
    ممکنه در خروجی گمز اون جداولی که در تحقیق در عملیات۱ به صورت دستی حل میشد رو ملاحظه کرد؟؟
    متاسفانه برای تحلیل بیشتر نیاز به اون جداول دارم!
    ممنونم میشم اگر پاسخ رو به ایمیلم ارسال کنید .
    از لطف شما صمیمانه سپاسگذارم.

        1. محمودی

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

        2. محمد

          سلام
          ممنوم بابت کمک و راهنمائی ارزشمندتون
          میشه بفرمائین از چه نرم افزاری میتونم استفاده کنم؟

        3. محمودی

          چیزی که من قبلا استفاده کردم app های اندروید بوده و سایت های آنلاین.
          برا سایت آنلاین اینجا کلیک کنین.
          و برا اپ اندروید هم تو گوگل پلی میتونین چیز به درد بخوری پیدا کنین. اگه نتونستین تو تلگرام یه پیام به من بدین، اگه داشتم براتون میفرستم.

  46. محدثه

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

    1. محمودی

      سلام
      مچکرم.
      هر بار که ران میکنین، مسائل چه تفاوتی با هم میکنن؟ مثلا داده تغییر میکنه یا چجوریه؟

      1. محدثه

        سلام
        بله داده تغییر میکنه.
        مسئله بهینه سازی رباست هست.
        هر بار گاما رو تغییر میدم در فایل اکسل و میخوام پارامترهای غیرقطعیم مثل تقاضا به صورت رندم مثلا ۵ درصد تغییر کنن.

        1. محمودی

          شما یه لوپ تعریف کنین که هزار بار حل بشه پارامترها با تغییر تکرارهای لوپ پارامترها مقدار دهی بشن. برای نشدنی بودن هم model status رو بریزین تو یه پارامتر.

          loop(iter,
          a=something, you can call it from excel
          solve mymodel .......;
          infeasS=mymodel.modelstat;
          );
          display infeasS;

          این ایده براتون کافیه.

  47. مینا

    با سلام وتشکر از سایت خوبتون.
    یک مساله بهینه سازی نامقید رو با گمز حل میکنم با اینکه از عبارت display استفاده کردم اما خروجی طاهر نمیشه
    و در خروجی عبارت
    status: Terminated due to a licensing error
    ظاهر میشود.
    آیا در نصب نرم افزار لایسنس وارد نشده؟؟
    البته دوباره نصب کردم اما به نتیجه ای نرسیدم.
    اگر راهنمایی بفرمایید ممنون میشم

  48. عباس

    سلام جناب محمودی
    در خصوص خروجی گرفتن به صورت چارت با فرمت GCH در گمز، چطور میشه این فرمت را ایجاد کرد؟
    من مسئله ای دارم که مختصات را گرفته و پس از حل یک سری مختصات جدید ایجاد میکنه. چطور میشه این مختصات را در قالب یک نمودار در گمز نمایش داد؟

    با تشکر

    1. محمودی

      سلام
      پیشنهاد میکنم از اکسل یا متلب استفاده کنین. گمز نمودارش خیلی محدوده و مناسب نیست. شما با گمز و متلب میتونین هر جوری که دلتون میخواد نمودار بکشین.
      ولی اگه اصرار دارین رو اینکار، اول یه فایل GDX تولید کنین که تو دو ستون مختصات نقاط رو گذاشته باشین. یعنی ستون اول بشه مشخصه x و ستون دوم بشه مشخصه y.
      حالا که فایل gdx تولید شد، تو محیط گمز بازش کنین، و روش کلیک راست کنین، chart رو بزنین، و مسیر Two Dimensions/2D charts/scater رو طی کنین، خروجی اون چیزی هست که شما میخواین. براش کد ننویسین. فقط به همین شکل رسم کنین.

  49. جعفر

    سلام
    ممنون از سایت خوبتون
    من یک مدل خیلی بزرگ MIP دارم
    option reslim را رو هر عددی میذارم، relative gap هم رو خیلی بزرگ مثلا۰٫۹ میاره
    جوابی هم که میده میدونم بهینه نیست و غلطه
    حتی ۲۴ ساعت هم گذاشتم ران شه ولی جواب نمیده
    خیلی ممنون میشم راهنماییم کنیدخیلی ضروریه

    1. محمودی

      سلام
      مچکرم.
      option optcr=0 هم گذاشتین؟
      تو زمان های مختلف یه گپ میده؟ غیر ممکنه. اینکه به گپ صفر نرسه و تو حداکثر زمان توقف متوقف بشه دلیلش فقط سایز و پیچیدگیه. شاید نشه کاریش کرد. شاید با مدلسازی بهتر بشه مقداری امید رو برد بالا

  50. مسلم

    با سلام خدمتتون
    چجوری میتونم یه لوپ بنویسم که ورودیش بشه خروجی در حل مرحله قبلی؟ یعنی مثلا وقتی به دستور سالو رسید و مدل رو برای اولین تکرار حل کرد ، جوابهاش رو بذاره به عنوان ورودی مرحله بعدی و دوباره مدل رو حل کنه؟
    ممنون میشم جواب بدید

    1. محمودی

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

        1. محمودی

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

  51. احمد

    با عرض سلام و خسته نباشید آقای محمودی، ممنون بابت حوصله ای که در جواب به سوالات دارید.
    هنگام اجرای دستور EXECUTE_UNLOAD جهت فرستادن خروجی ها به محیط اکسل، صفرها در محیط اکسل نمایش داده نمی شوند؛ آیا راهی برای چاپ مقادیر صفر در اکسل وجود دارد؟ با تشکر.

    1. محمودی

      سلام
      مرسی وخواهش میکنم.
      گمز به صورت دیفالت متغیر هایی که مقدار صفر به خودشون گرفتن رو وقتی به اکسل یا gdx میفرسته سلول خالی میذاره. اگه میخواین که مقدار صفر رو نشون بده. می تونین از آپشن sq استفاده کنین. کد زیر به ما میگه که مقادیر متغیرهایی که صفر هستند رو هم توی اکسل پرینت کن.

      execute 'gdxxrw <strong>Sq=N</strong> I=ShowingZeroInExcel.gdx
      
  52. فاطمه

    سلام
    وقتتون به خیر
    میبخشید یه سوال داشتم من تو process window تو قسمت navigation فقط موارد

      include file summary
    execution
    display
    equation listing
    equation 
    column listing
    column 
    model statistics
    نمایش داده میشه و 
    solution report
    SolEQU
    SolVAR
    execution
    display
    

    نمایش داده نمیشه
    برای من display بالا نمایش داده میشه و داره ورودی هامو نمایش میده
    من تو تایپ مدل دو جا display رو استفاده کردم یه جا برای نمایش داده های اکسلم یه جا هم آخر برای نمایش متغیرهام که حالا متغیرهامو نمایش نمیده
    solution report و بقیه موارد رو هم که گفتم نمایش نمیده
    لایسنس هم مشکلی نداشت
    به نظرتون مشکل از کجاست؟
    اگه ممکنه کمکم کنید هر چی میگردم چیزی پیدا نمیکنم

    1. محمودی

      سلام
      لایسنس رو از تو سایت دانلود کنین حتما و نسخه گمزتون رو بروز کنین.
      این موارد تو فایل lst میان. display اول رو میاره، ولی دومی رو نمیاره. پس این یعنی مدل حل نشده و باید لایسنس داشته باشین.

  53. Reza

    با سلام اگر لایسنس سالور Baron برای متلب را دارید ممنون میشم برای بنده بفرستین. سپاس

  54. mahnaz

    سلام
    من این جدول رو تعریف کردم
    عناصری رو که مقدارشون صفر بود ننوشتم.
    بعدا از این ماتریس در سیگما(i,c,t,’cap’) استفاده میشه. ولی مقادیر خروجی همه صفر به دست میاد. خود سیگما عناصری از ماتریس رو که وجود نداره صفر در نظر می گیره؟
    i number of area /1*3/
    t number of planning stage /1*5/
    e number of candidate generator /1*12/

    Table Edata(i,e,t,*) data of existing generator

    VC FC Cap
    (1,3).1.(1*5) 0.024 27 200
    (1*3).2.(1*5) 0.027 27 200
    (1*2).3.(1*5) 0.030 25.56 150
    (1*3).4.(1*5) 0.042 54.24 50
    (1*3).5.(1*5) 0.038 19.56 400
    (1*3).6.(1*5) 0.040 19.56 400
    (1*3).7.(1*5) 0.035 24 450
    (1*3).8.(1*5) 0.023 79.8 250
    (1*3).9.(1*5) 0.019 33.72 500
    (1*3).10.(1*5) 0.015 33.72 500
    (1*3).11.(1*5) 0.005 59.28 1000
    (1*3).12.(1*5) 0.005 55.56 1000

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