۹۶

خروجی استاندارد

در این بخش به مطالعه ی فایل lst که همان خروجی مورد نظر اغلب کاربران می باشد، پرداخته می شود. مثال کاربردی ۱ را Run کنید.

پس از اتمام حل مدل فایل lst به طور خودکار باز خواهد شد. شکل زیر این امر را به نمایش می گذارد. این خروجی به دو بخش navigation window و listing file تقسیم می شود. Navigation window به عنوان یک لیست هوشمند عمل می کند که اگر روی یکی از ارکان آن دبل کلیک کنیم به آدرس مربوطه در listing file خواهیم رفت. دقت شود که lst فایل با editor های دیگر مانند notepad نیز قابل بازخوانی است. ولی در این صورت navigation window قابل مشاهده نیست. و برای مشاهده ی این لیست، تنها باید فایل lst را با GAMS باز کرد.

listing-file-navigation-window-example1

یک فایل lst شامل سه بخش کلیِ Compilation Output، Solve Statement Output، Execution Output و Error Reporting می باشد. هر کدام از این خروجی ها در ادامه به طور کامل تشریح خواهند شد.


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

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

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

 

96 دیدگاه در “خروجی استاندارد

  1. یه سوال داشتم.که خیلی تو اینترنت در موردش سرچ کردم ولی چیزی دستگیرم نشد.
    وقتی مدلمو ران میکنم ارور نداره ولی یه هشدار میده که باعث میشه مدل بهم جواب نده.
    نمیدونم چیه و چجوری میشه برطرفش کرد.
    لایسنس هم زدم ولی نشد.جلوی سالورم هم کلمهfull هستش.
    couenne:warning, tightened NLP is infeasible.
    reformolation findes model infeasible.
    برای حل مدلم از minlp استفاده کردم.
    و سالورم هم couenneبود. بقیه سالورها هم یا دمو بودن و یا minlp نداشتن.
    به انگلیسی سرچ کردم اما چیزی دستگیرم نشد.
    ممنون

  2. با عرض سلام و خسته نباشید.
    مدلم رو که اجرا میکنم جواب میده و به صورت دستی هم که حل میکنم جوابش درسته ولی absolute gap اون که نشان دهنده global بودن جواب هستش صفر نیست و تک تک معادلات و روابط رو هم چک کردم بنظر همه چیز درسته. میتونید راهنماییم کنید که مشکل چی ممکنه باشه با absolute gap=1.00000002722922E-9 و چون مدلم غیرخطی بود با سلور بارون حل کردم.
    ممنون

    • سلام
      این مقدار gap یعنی تقریبا صفر. چون عدد خیلی خیلی کوچیکی هست. و چون مدلتون غیر خطی هم هست پس منطقی هست که دقیق صفر نشود.

      موفق باشید

  3. سلام و خیلی خیلی ممنون از پاسخ دهی سریعتون.
    یعنی به نظر شما مدل و کدی که اجرا کردم درست هستش ونیازی به اصلاح نداره. به این دلیل دوباره سوال می پرسم که مطمئن باشم که جوابم درسته و تحلیل نتایجش رو انجام بدم.
    مرسی

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

  5. سلام
    من یک مدل نسبتا پیچیده از نوع MINLP رو کد کردم و از دو سالور Bonmin و couenne که لایستسش رو داشتم، برای حلش استفاده کردم. برای سایز کوچک مدل جواب میدن. ولی سایز مسئله که زیاد میشه خطاهای زیر رو تولید می کنن:
    Bonmin: the LP relaxation is infeasible or too expensive
    Couenne: tightened NLP is infeasible
    در مورد مدلم مطمئنم که موجه هست. می خواستم بپرسم که ممکنه خطای خود نرم افزار باشه؟

    • سلام
      bonmin یک solverی هست که در برخی مسائل کم میاره! این Error به این معنی هست که bonmin نتونسته عمل relaxation رو همراه با متغیرهای پیوسته انجام بده و نتیجتاً اعلام کرده که نتوونستم حلش کنم.
      واسه پیام مربوط به couenne حدس میزنم که شما تعدادی پارامتر یا متغیر دارین که اعدادشون نزدیک به صفر هست (نه کاملا صفر) ولی این نرم افزار میاد رندشون میکنه واسه همین مسئله infeasible میشه.
      امیدوارم که جوابتون رو گرفته باشین.
      موفق و پیروز

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

  7. خیلی ممنون از جواب های خوب و سریعتون.
    اگه اشتباه نکنم، سالورهای DICOPT و BARON تو این لایسنس demo هستند. می خواستم لطفا اگه لایسنس دیگه ای هم وجود داره، معرفی کنید. اگر نه که بازم ممنون از راهنمایی هاتون.

  8. سلام
    خیلی ممنون به خاطر لایسنس ها و وب سایت خوبتون.
    یه مشکلی با DICOPT پیدا کردم که سرچ می کنم، نمی تونم حلش کنم:
    DICOPT : stopped prematurely because of solver failure. the listing file will contain additional logs from the NLP and MIP solvers which may reveal what was the cause of the failure.
    اگه امکانش هست در این مورد هم راهنماییم کنید. ممنون.

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

      option optcr=0;

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

  9. سلام
    با تشکر از وب سایتتون
    من داخل برنامه ام یک معادله دارم که نزدیک صفرمشتق دوم نداره تکه چون قراره از حل کننده Bonmin استفاده کنم باید از این حالت مشتق ناپذیری خارج بشه برای رفع این مشتق ناپذیری اون را به سه بازه تقسیم می کند یک دلتا تعریف میکنه که برای بازه های بزرگتر از دلتا خود همین معادله، برای بازه های کوچکتر از منفی دلتا منفی همین معادله و برای بازه های بین منفی دلتا و دلتا یک چند جمله ای به جای اون تعریف میکنه، این تعریف سه بخشی مسئله روی متغیر مسئله است یعنی x>delta و… این رو چجوری تو گمز مدل کنم ؟

    • سلام
      بهترین راهی که به ذهنم میرسه اینه که شما یه متغیر صفر و یک دیگه هم تعریف کنین و همه اینایی رو که گفتین به سه چهارتا محدودیت تبدیل کنین.
      یعنی محدودیت شرط رو برسونه. تو بخش معادلات کامنتا رو بخونین. مطالب مفیدی رو دوستان مطرح کردن

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

  11. سلام
    می خواستم بپرسم که جواب best possible که در خروجی سالورهای گمز وجود دارد، دقیقا چه چیزی را بیان می کند؟
    من مدلم را در حدود ۱۲ ساعت ران می کنم، بعد از این مدت، bonmin هیچ جواب موجهی برای آن پیدا نمی کند ولی best possible را اعلام می کند. با توجه به این که متغیرهای من عدد صحیح هستند، آیا best possibe جواب غیرصحیح است؟

    با تشکر فراوان

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

  13. سلام

    من مدلمو حل که میکنم جواب رو ۱۲۲ درمیاره و حدس میزنه جواب ۱۱۰ باشه در واقع گپش حدود ۰٫۰۹۹ هست

    میخام که جواب بهینه رو به دست بیارم برای همین، زمان حلو بیشتر میکنم مثلا ۱۰۰۰۰ثانیه کردم ولی گمز تا یک و نیم ساعت بیشتر نمیره و جواب رو همون ۱۲۲ درمیاره
    به نظرتون مشکل از چیه؟

    البته من الگوریتم براش نوشتم جواب رو ۱۱۳ درمیاره

    باتشکر فراوان

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

      Option reslim=10000;
      Option optcr=0;

      موفق باشین

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

    • سلام
      اول display رو بزنین. و کپی کنین تو فایل تکست. یا کپی کنین تو اکسل. یا کد gms2xls رو یاد بگیرین و خودکار که مسئله حل شد جوابا خودشون برن تو ادرس اکسلی که بهش دادین. و سایر روشها

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

  16. سلام

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

    • سلام
      به ابتکار خودتونه. شما یه Loop بزنید، که تو اون لوپه دستور solve هم شامل بشه. بعد هر بار که هدف حل میشه، مقدارش رو تو ی پارامتر دیگه ذخیره میکنه. مثلا فرض کنید alpha قراره تغییر کنه و s تا سناریو برای تغییرش دارین. یه مثال میتونه مث کد زیر باشه:

      loop(s,
      alpha1=alpha(s);
      solve tavakoli using mip maximizing z;
      z1(s)=z.l;);

      • شاید بد بیان کردم،منظورم این هست که تا چه حدی قابل قبول هست
        مثلا gap مدلم
        ۰٫۰۰۴۴۰۳۷۳۰۰۰۰۳۷۶۵۳
        هست وچقد روی جوابم تاثیر میگذاره؟؟ و میتونم خروجی مدلم را بهترین جواب فرض کنم؟؟؟

        • این گپی که گفتین نسبتاً گپ پایینی هست. بد نیست. این گپ شما میتونه بهتر بشه، اگه زمان توقف گمز رو بالا ببرین و optcr رو برابر صفر در نظر بگیرین.گپ معمولا قانون خواصی نداره که چقدش خوب باشه ولی معمولا گپ های زیر ده درصد در نظر گرفته میشن. بالاترش هم دیدم گذارش بدن

  17. سلام

    خیلی ممنون از پاسخگویی و سایت خوبتون

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

    • سلام
      بله زمان رو میبره بالا.
      فرض کنین x(i) متغیر شما باشه. و میخواین مجموعش رو بعد بهینه شدن مدل به دست بیارین. برای اینکار بعد از دستور solve بیاین یه پارامتر به اسم xx تعریف کنید. بعدش قراره مجموع x رو بریزیم تو xx . اینو اینجوری مینویسیم:

      solve.....;
      parameter xx;
      xx=sum(i,x.L(i));
      display xx;

      برای اطلاعات بیشتر به بخش متغیرها مراجعه کنید.

  18. سلام
    ممنون از سایت خوبتون
    مدل من یه مدل mip هستش و روی مثال کوچک چک شده و به جواب درست رسیده حالا که روی یه مثال بزرگ رانش کردم بعد از حدودا ۱۶ دقیقه بدون رسیدن به جواب این پیام و میده ..ممنون میشم راهنمایی کنید
    MIP status(108):time limit exceeded,no integer solution.cplex error:no integer solution found.resource limit exceeded,no interger solution found.status:normal completion

    • سلام
      مرسی و خواهش میکنم.
      شرط توقف گمز به صورت پیشفرض تو زمان ۱۶ دقیقه، یا هزار ثانیه هست. و تو این زمان به هر جوابی برسه اعلام میکنه.
      برا افزایش زمان توقف گمز کد زیر رو قبل از دستور solve بنویسین.

      option reslim=2000;

      یعنی دو هزار ثانیه حلش کن. میتونین بیشترشم بکنین شما

    • سلام
      خیر.
      اگه مدل درست باشه خیر.
      اگه نشدنی بشه، یعنی یه تناقضی وجود داره. مگه اینکه جواب سالور unbounded باشه که تو process window ذکر میشه

  19. با سلام
    لطفا فایل مثالی که در اون خروجی گمس به اکسل فرستاده میشه رو یه جایی آپلود کنید و لینکش رو قرار بدید. (تا دوستان دیگه هم استفاده کنن)
    یا اینکه ایمیل کنیدممنون

  20. سلام. چطور میتونیم بفهمیم مدت زمان ران چقدر بوده؟ یه جا شما گفتید execution time ولی این عدد برای زمان ران درست نیست. مثلا مدل ۱ ساعت طول کشیده تا ران شه ولی execution time 0.031 شده. ممنون میشم راهنمایی کنید.

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

        • خواهش میکنم.
          میبره. شما تو بخش documents/gamsdir/projdir یه فایل results که پسوند اکسل داره رو می تونین ببینین. اونجا دو تا شیت گذاشته

      • سلام. به یک مشکلی برخوردم. وقتی مدل را ران می کنم بدون غلط ران میشه ولی جواب نمیده. وقتی از تعداد ارقام اطلاعاتم یک رقم کم می کنم جواب میده. ارقام حداکثر ۷ رقم هستن. باید چیکار کنم؟ ممنون

        • سلام
          والا من چیزی نفهمیدم. فضایی توضیحاتتو مقداری گنگ بود. پس مقداری بهتری مطرح بفرمایین. مرسی

        • یک کد گمز برای تابع سه هدفه نوشتم و وقتی اجرا می کنم جواب نمی ده. ایرادی هم نمی گیره. وقتی از داده های کد که به صورت table تعریف کردم یک رقم کم می کنم جواب میده. کد گمز رو به ادرس ایمیلی که در سایت قرار دادید (Support@gamsbook.ir)فرستادم.از چند ورژن که در همین سایت شما هست هم استفاده کردم.لطفا بررسی کنید.از هرکس پرسیدم دلیلش رو نمیدونه. ممنون

        • سلام
          شما باید داده ها رو چک کنین. زوری که نمیشه جواب به دست اورد. شما تقسیم بر صفر دارین تو مدلتون. یه مقدار کوچیک به مخرج اضافه کنین که رفع بشه این ارور. مث ۰٫۰۰۰۰۱

    • سلام
      تو پنجره process window (اون کوچیکه) می تونین این اطلاعات رو ببینین. دقیقا یک خط بعد اونجایی که مثلا میگه generating minlp model YOURMODELNAME
      همچنین شما تو listing file میتونین تو بخش model statistics این اطلاعات رو مشاهده کنین. تاپیک زیر هم میتونه براتون مفید باشه.
      model statistics در گمز

  22. سلام
    مدلی نوشتم که خطا نمی ده ولی خروجی display رو هم نشون نمی ده.
    در واقع فقط این بخشها رو داره:
    compilation
    equation listing
    equation
    column listing
    column
    model statistics
    آیا امکان داره مشکل از نرم افزار یا سالورش باشه؟ کدوم قسمت خروجی رو باید ببینم که بفهمم مشکل از کجاست؟
    ممنون می شم راهنماییم کنید.

  23. سلام. چند تا سوال دارم.
    از نظر تئوری چطور عبارت option optcr=0;
    شکاف دوگانی رو به صفر می رسونه؟

    آیا تغییر سالور نقشی در تغییر شکاف دوگانی داره؟

    چه روشهای دیگه ای برای کاهش شکاف دوگانی وجود داره؟

    • سلام
      ببینید این سوال خیلی عمیق تر از اون چیزی هست که من الان بخوام جواب بدم. یه راهنمایی اولیه میکنم، بعدش باید یه سری قضیه مطالعه کنین و مقداری در مورد لغات و عباراتی که به کار میبرم تو همین سایت یا منابع مختلف جستجو کنین.
      اگه مسئله شما فضا و هدف محدبی داشته باشه، اونوقت میتونین با احتمال قوی بگین که بله، شکاف یا گپ صفر میشه. چون تو این حالت دوگانی قوی رخ میده. اگه محدب هم نباشه شاید باز شرایط کافی دوگان قوی رخ بده که باز شانس شما بالا میره. با optionی که گفتین ممکنه سالور موفق بشه به جواب سراسری برسه و درصورتی که توی دوگان هم موفق باشه، پس این آپشن برای کاهش شکاف دوگانی موفق بوده. بعضی سالور ها نمیتونن گپ رو دقیقا صفر کنن، برا بعضی مسائل با سایز بالا هم ممکن نیست. پس اطمینانی نیست که سالور ها نتیجه خوبی که شما مد نظر دارین رو بهتون بدن. ولی میشه کاهش داد. رازش اینه که شما ساختار مدلتون رو مسلط باشین، سالور رو بشناسین، و تعدادی آپشن که باعث میشه سالور جواب بهتری رو بده رو استفاده کنین.
      این سوال شما دانش ریاضی و کدینگ قوی ای می طلبه که باید خیلی مطالعه کنین اگه حیاتیه براتون.

  24. سلام. به یک مشکلی برخوردم. وقتی مدل را ران می کنم بدون غلط ران میشه ولی جواب نمیده. وقتی از تعداد ارقام اطلاعاتم یک رقم کم می کنم جواب میده. ارقام حداکثر ۷ رقم هستن. باید چیکار کنم؟ ممنون

پاسخ دهید

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