۳۸

infeasible solution. there are no superbasic variables

گاهی کابر با ارور infeasible solution. there are no superbasic variables مواجه می‌شود. در حالی که ممکن است مدلی که کاربر در گمز و یا DICOPT کد کرده است واقعا شدنی باشد. برای متوجه شدن این موضوع می‌توان مدل را با یک solver دیگر نیز حل کرد. اگر مدل با سالور ثانویه مانند baron قابل حل بود، پس یقیناً مشکل از dicopt بوده است. در غیر اینصورت واقعا مدل شما غیر شدنی است.
این خطا معمولاً وقتی رخ می‌دهد که سالور گمز روی dicopt تنظیم شده باشد. مانند هر سالور دیگری، این سالور نیز محدودیت‌هایی دارد، یکی از این محدودیت ها سقف تعریف شده اعداد بزرگ و یا تعداد متغیرهای superbasic هست. سوپربیسیک ها عمدتا به جوابهایی گفته می شود که در نقاط گوشه ای فضای شدنی نیستند.
راه حل:
اگر مدلتان MINLP است، به سالور اجازه دهید که مدل را به صورت RMINLP در نظر گیرد.
مدل را با چند solver دیگر حل کنید. اگر جواب داد که بهتر، در غیر اینصورت به احتمال زیاد واقعا مدل شما نشدنی هست و باید برای آن تدبیری بیاندیشید.
با option مربوط به superbasic یا LFMXNS, LFNSUP برای dicopt فضا را محدودتر کرده و مدل را دوباره ران کنید.
پیشنهاد گمزبوک:
تغییر سالور و به طور همزمان optcr=0 در صورت لزوم.

سربلند و آزاده باشید

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

 

38 دیدگاه در “infeasible solution. there are no superbasic variables

  1. سلام
    تشکر از سایت خوبتون
    با دستور solve میشه دو تا متغیر رو بهینه سازی کرد
    مثلا بگیم
    Solve model using mip maximizing a;
    Solve model using lp minimizing b
    Model شامل معادلات مشابه در هر دوتا دستور هست
    مرسی

  2. سلام و خسته نباشید.
    با اینکه مدل و کدهایم ظاهرا درست هستند اما مقدار گپ خیلی زیاد است.
    لطفا راهنمایی کنید.آیا برنامه ام ایراد دارد؟
    $set p 4
    $set m 2
    $set V 6
    $set f 8
    .
    .
    display zz.l, cap, h;

  3. با سلام
    بعد از حل گمز در خروجی آن بعد از بعضی معادلات در بخش equations نوشته infes.
    اما در قسمت model statistic نوشته Fixed MIP status(1): optimal. آیا حل مدل درست است یا خیر؟

  4. با سلام و خسته نباشید.
    در موقع وارد کردن ورودیهای گمز بعضی از انها را به صورت دستی ورد کردم. (به صورت جدول یا پارامتر). اما بعضی دیگر از ورودیها حاصل جمع یا حاصلضرب ورودیهایی بود که دستی وارد کردم. آیا باید این ورودیها را حتمابه صورت دستی وارد کنم یا به صورت عبارت ریاضی از سایر ورودیها هم میتوانم؟
    الان به صورت عبارت ریاضی وارد کردم و مدل را حل نمیکند و خطا میده. اسم مدل رو میگه the symbol shown has not been defined or assigned a wild shot…..

  5. با سلام و خسته نباشید.
    بعد از حل مساله گمز best possible میدهد اما این جواب اصلا شدنی نیست و خیلی کم است و به نظر غلط میرسد. طوری که با جوابی که گمز در ۱۰۰۰ ثانیه میدهد گپ زیادی دارد.
    آیا این best possible شدنی است؟

    • سلام
      یعنی چی با جوابی که گمز در ۱۰۰۰ ثانیه می دهد گپش زیاده؟
      شدنیه احتمالا. خطوط اخر process window رو لطفا بذارین اینجا. ده خط اخر


      • final solve: 17205
        best possible: 6955
        absolute gap: 10250
        relative gap: 0.59
        restarting execution
        reading solution for model....
        executing after solve : elapsed 16:41
        status: normal completion
        job gams.gms stop 4/6/14 12:15:00 elapsed 16:41

        این جواب best possible اصلا شدنی نیس.

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

  6. سلام
    برنامه من ران میشه و اعلام میکنه که بهینه حل شده ولی این رو جلوش مینویسه
    optimal solution: there are no superbasic variables
    منظور از این جملش چی هست
    ممنون میشم راهنمایی بفرامایید

  7. با سلام و خسته نباشید.
    من مدلم MINLP هست و بعد از ران مقدار تابع هدف ۰٫۰۰۰۰۰۰۰۰ رو به همراه ارورoptimal solution: there are no superbasic variables نشون میده. سالور را عوض کردم ، محدودیتها را یکی یکی ازاد کردم ولی هیچ تغییری در نتیجه نداره حتی با یک محدودیت. مدل با عدد رقم های داده شده حداقل یک جواب شدنی دارد و دستی امتحان شده ولی نتیجه در گمز ۰٫۰۰۰۰۰۰ برای تابع هدف و مقداد نگرفتن متغیرهای تصمیم است متاسفانه.
    ممنون میشم راهنمایی بفرمایید.

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

  8. با سلام و خسته نباشید…
    یک قید بصورت زیر دارم و t هم از ۱ تا ۷ تعریف شده:
    (a2(t,tt,p)$(ord(t) eq ord(tt)+1).. xi(t,p)=e=xi(tt,p)+sum(v$mapw(t,p,v),xu(t,p,v))+S(t,p)-sum(v$mapv(t,p,v),xl(t,p,v))-D(t,p)-xs(tt,p;
    در نهایت با این مواجه میشم:
    Row ‘a2(2.1.3)’ infeasible,all entries implied bounds

  9. با سلام و خسته نباشید
    من تو یک ک بهینه سازی با سالور snopt برای مدل nlp با خطای زیر مواجه میشم.
    the superbasics limit is too small
    چجوری میتونم رفع کنم؟ لظفا راهنمایی کنید
    ممنون
    بهینه سازی سناریو بنیان و برای ۲۴ ساعت هستش که تا ساعت ۱۶ ران میکنم بهینه میشه ولی وقتی ۱۷ ساعته میشه یا بالاتر این خطا رو میده
    سپاس فراوان

    • سلام

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

      option intvarup=0;
      

      سالورهای دیگه هم تست کنین. سالوری مثل lindo و baron خیلی قوی هستن. همچنین در برخی از مدلهای خیلی غیر خطی با سایز بالا میتونین از سالور minos هم استفاده کنین.

  10. خیلی ممنون از راهنمایی هایی که کردید.
    متاسفانه کدی که گفتین فکر کنم برای سالور snopt جواب نمیده چون کاری که گفتید رو انجام دادم و خطا داد.
    و الینکه لایسنسی که من برای گمز استفاده می کنم اجازه استفاده از سالور های baron و lindo رو نمیده. اگر لایسنسی دارید که اجازه استفاده از این سالور هارو میده لطف کنید بهم ایمیل کنید.
    خیلی ممنون و سپاس از وقتی که گذاشتید.

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

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

  12. با سلام و تشکر فراوان
    من یک مدل غیر خطی دارم که توابع مثلثاتی داره پس از حل با سالور conoptجواب داره ولی از نوع intermediate infeasible هست آیا این جواب میتواند مورد قبول باشد؟ در ادبیات موضوع نوشته شده که ممکنه جواب feasible نباشد چون در این مدل دو متغیر در فرمولاسیون حتما باید مشخص باشد.

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

    • نه فقط تابع هدف، بقیه متغیرها هم. سعی کنین منطقی باشه مقدار اولیه.
      اگه متغیرهای integer هم دارین. دستور زیر رو قبل از دستور solve وارد کنین. و نیاز هست گمزتون آپدیت باشه.

      option intvarup=0;
      
  13. با سلام و خسته نباشید
    ببخشید من ی مدل در گمز نوشتم ارور نداره ولی مساله رو نشدنی میزنه. یا پیغام : (infeasible solution. reduced gradient less than tolerance**) یا پیغام infeasible solution. convergence too slow. the change in objective has less than 3.000e-12 for 20 consecutive iteration) رو میده. ممنون میشم راهنماییم کنید.

    • سلام
      شما باید Model status و solver status رو چک کنین. اونجا وضعیت locally infeasible گزارش شده. این یعنی سالورتون به یه نقطه رسیده که نمیتونه بهبود بده جواب مدل رو و همون نشدنی مونده. شما میتونین سالور رو عوض کنین. یا نقطه شروع بذارین برای تعدادی از متغیرها. دقت هم بکنین که حدود هر متغیر رو اگه حدس بزنین و به عنوان کران به مدل اضافه کنین ممکنه جوابتون بهتر بشه.

پاسخ دهید

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