فرض کنید یک مدل بهینه سازی را در گمز کد نویسی کرده اید. ولی مشاهده می کنید که در process window پیامی تحت عنوان نشدنی بودن مسئله (infeasible) ملاحظه می کنید. مشکل ممکن است از کجا باشد؟ برای بر طرف کردن این مشکلات چه تدبیری می اندیشید؟
ضمناً مناسب تر است که کامنت های خود، که شامل کد می باشند، را یک بار در GAMS و یا Notepad کد نویسی کرده و سپس به عنوان کامنت ارسال کنید.
با تشکر
مدیریت سایت gamsbook.ir
ایمیل: Support@gamsbook.ir
شماره تماس: 3325-405—0919
سلام وقتتون بخیر
من زمانی که در مدلم داده ها را بصورت تابع یکنواخت وارد میکنم بهینه است .ولی زمانی که داده های واقعی را که در اکسل نوشته ام و به گمز لینک میکنم بعد از ران شدن Integer Infeasible است . من برای رفع ان باید چه کار کنم؟
سلام و ادب
چند تا نکته ممکنه وجود داشته باشه.
اول، ممکنه داده های یکنواخت شما بصورت عدد صحیح باشن، اما در اکسل اینطور نباشه، و به مسئله شما نخوره. هر چند ممکنه اکسل بخش اعشار رو به شما نشون نده. دسیمال اکسل رو ببرید بالا ببینید چی میشه.
دوم، جنس اعداد رو شبیه به هم کنین، یعنی مثلا اگر در گمز گفتین که عدد صحیح تولید کنه، در اکسل هم باید همینطور باشه. پارامتر رو در هر دو حالت دیسپلی کنین و ببینین فراخونی درسته یا نه و تیپ اعداد رو ببینید.
سوم، اعدادی که ممکنه برای شما بحرانی باشن رو شناسایی کنین، مثلا ممکنه ماتریس شما نباید عدد صفر رو داشته باشه. پارمتر رو در هر د
چهارم، ممکنه این یک اتفاق طبیعی باشه، مشکل از جور نبودن داده های وارد شده در اکسل با مسئله باشه. و بنده هم همین احتمال آخری رو فکر میکنم قویتر باشه.
سلام وقتتون بخیر مدل من نشدنی شده و با حذف هر محدودیتی هم این تو خلاصه میاد
REPORT SUMMARY : 4481 NONOPT ( NOPT)
0 INFEASIBLE
1 UNBOUNDED (UNBND)
ممنون میشم راهنمایی کنین
سلام
ظاهرا مسئله شما جواب نا محدود داره. یعنی تو تابع هدفتون یه متغیر هست که می تونه در جهت تابع هدف تا بی نهایت ما رو برسونه. اون رو کنترل کنین.
سلام عرض میکنم.
یکی از شروط در یکی از محدودیت های بنده بصورت زیره:
v>v1
لازم به ذکره که v یک اندیسه و بنده مفهوم محدودیت رو متوجه میشم که میگه: به ازای vهای بزرگتر از اولین عضو مجموعه v.
فقط درست نمیتونم این شرط رو در مساله کد کنم.
با تشکر از جنابعالی
سلام
بعد از حل مدل integer infeasible ميشه و ٢تا محدوديت در واقع در تناقض هستند ،باوجود اينكه محدوديت ها كاملا منطقي مي باشنداما در گمز براي محدوديت دوم انديس ها محدوديت اول را شمارش نميكند و به همين دليل اينفيزيبل مي شود.راهكاري براي حل اين موضوع وجود دارد؟
سلام من یک مدل گمز دارم که غیر خطی هست وinfeasibleمیشه و تو عبارت هست که توی چندین فرمو استفاده شده اما نمیدونم که متغیره یا محدودیت چطور تشخیص بدم؟
سلام
متوجه نشدم.
سلام و تشکر بابت سایت عالیتون
جناب دکتر من خیلی کم از بهینه سازی می دونم اما با این علم کم یک مقاله را با گمز شبیه سازی کردم. اما گمز میگه که نوع برنامه از نوع ناشدنی است. در کامنت های مختلف فرمودید که به احتمال زیاد با تغییر سالور اگر مشکل رفع نشد باید خود کدنویسی بررسی شود.
من تک تک معادلات را به مدل مربوطه میدادم و ران می کردم، تا اینکه فهمیدم 5 تا معادله دارم که اینا اجازه شدنی بودم حل مسئله را نمی دهند. حال واقعا با این علم کم نمی دانم از کجا باید شروع به اصلاح و تغییر کنم .
ممنون میشم راهنمایی بفرمایید. خدا خیرتان دهد.
سلام
شما برای اینکه مسئلتون نشدنی نشه سه تا نکته رو باید رعایت کنین.
اول اینکه مدلسازیتون باید قوی باشه.
دوم اینکه کد نویسی رو خوب انجام بدین و داده های مناسب رو بهش بدین.
نکته سوم اینه که اینا رو بعد از هر بار ران کردن تکرار کنین. علت نشدنی بودن. علت جواب غیر منطقی دادن یا هر مشکل دیگه رو باید با تحلیل خروجی ها پیدا کنین. این دیگه دانش خیلی خاصی نمیخواد. باید بعد از هر بار ران کردن تحلیل کنین حروجی رو مشکلا رو سعی کنین رفع کنین.
مقاله پایه، اندیس ها، شرط ها، سیگماها، صور عمومی محدودیت ها و… همه رو دقت کنین.
سلام
من مدلی نوشتم که بعد از ران عبارت زیرو میاره
** An equation is inconsistent with other equations in the
pre-triangular part of the model.
این ایراد معمولا وقتی پیش می آید که شما مثلا نوشته باشید
X>1
X<-3 یا مثلا نوشته باشید x=2 در حالی که x باینریه باید معادلاتتون رو چک کنید
یعنی به چه صورت؟ من الان 5 تا هدف دارم و 2 تا محدودیت. و به ازا هر هدف هم یک ارمان دارم.یعنی 5 تا ارمان. ارمان ها رو تک به تک وارد کنم؟ متوجه نشدم متاسفانه باید چه کنم.
قیود مساله را تک تک اعمال کنید و ببینید ایراد از چیست
ببخشید یه سوال دیگه هم داشتم. الان من همین مدل رو با روش lp metric ران کردم و جواب داد، ولی با روش آرمانی مشکل اینفیسیبل بودن داره
میشه گفت مشکل از دیتا ست 100 درصد؟
سلام
به نظرم یک جای کار می لنگه! یا مدل و داده ها و کد مشکل داره، یا اینکه روش آرمانی که به کار بردین رو دقیق اجرا نکردین.
سلام وقت بخیر
ممنون میشم راهنمایی کنید
من یه مدل غیر خطی دارم که به جواب نمی رسه و می نویسه که از ipopt استفاده کن .
Ipopt چیه و چه طور می تونم ازش استفاده کنم؟
سلام و ادب
اونم یه سالور هست، که میشه اونم تست کرد. ممکنه جواب بهتر یا بدتری هم ارائه بده. این سالورها رو هم تست کنید، lindo, baron, sbb
این کد رو قبل از دستور solve بذارین که به گمز دستور داده باشین که حل مسئله رو با ipopt انجام بده
سلام من یک مدل برنامه ریزی خطی 5 هدفه دارم که با روش آرمانی تو گمز میخوام حلش کنم ولی ارور Problem is integer infeasible.
مشکل کار از کجاست؟
سلام
سعی کنید فیود را تک تک وارد مدل کنید
یعنی یکبار مدل را با قید ۱
یعنی یکبار مدل را با قید ۱ و ۲
یعنی یکبار مدل را با قید ۱ و ۲و ۳
حل کنید
دفت کنید هیچ کدی بدون داشتن ارور تولید نشده و نخواهد شد
این کار شما به عنوان برنامه نویس است که علت آن را پیدا و رفع کنید
موفق باشید
سلام آقای محمودی بزرگوار
سوالم شاید مربوط به این صفحه نباشه. ی معادله توازن انرژی داریم که باید برای هر دقیقه بررسی بشه که توازن به هم نخوره. مشکلم تو نحوه تعریفشه. انرژی تو بازه اول یعنی t=1 , i=1 ، ( هر ده دقیقه i یکی اضافه میشه و هر شش بار اضافه شدن i به t یکی اضافه میشود و یک شبانه روز را در 144 بار بررسی میکنه یعنی 144=24*6 ) برابر است با انرژی تو بازه t=1 , i=0 که اولین مشکلم اینه که مجموعه i از 1 تا 6 تعریف شده. و مشکل دوم در ابتدای هر ساعته که باید به ساعت قبل ربطش بدهم. اینم معادله هستش:
Energy(t,i)=e=Energy(t,i-1)+ChargePower(t,i)*Interval-(1-Availability(t,i))*EVnumber*Driving;
(اون بالا اشتباهه تایپی بودش. منظورم اینه که معادله توازن انرژی باید هر ده دقیقه بررسی ….)
سلام
کوچیک شماییم.
سوال رو مطرح نفرمودین.
مشکلتون رو i=0 هست؟
سلام
وقتتون به خیر
میبخشید من وقتی مدلم رو ران میکنم Infeasible میشه و این رو مینویسه
row ‘Eq10(i1,t1)’infeasible , all entries at implied bounds
مشكل چیه؟
میشه یکمم درباره چک کردن داده های ورودی توضیح بدید؟ من دقیقا نمیدونم چطور باید این کارو انجام بدم
خیلی متشکرم از لطفتون
سلام
اول باید مدلتون رو کامل چک کنین (وقتی میگم چک کنین یعنی هم ار لحاظ مفهومی و هم از این لحاظ که باید با مقالات پایه تطبیقش بدین همه چی رو) وقتی که احساس کردین همه چی درسته، دنبال داده بگردین تو این مقالات، معمولا برای اکثر مدلها یک سری داده های استاندارد وجود داره و محققا ازشون استفاده میکنن. ببینید فرضا اگه داده ای هم نداشته باشین، یاید طبق مفهوم مدلتون داده تولید کنین، مثلا به ظرفیت مخزن عدد 100 میدین، پس منطقیه که آبی که واردش میشه باید کمتر از 100 باشه! یعنی عددا باید به هم بخونن. منطقی باشه همه چی. بارها و بارها بیاین این چیزا رو چک و مرور و اصلاح کنین.
مسئله میگه نشدنیه، پس باید کم کم محدودیتا رو به مدل اضافه کنین و هر سری تست کنین و نتیجه رو تحلیل کنین و ببینین کجا میگه نشدنیه و بیشتر تحلیل کنینو گیر بدین بهش.
با سلام و تشکر از پاسخگویی شما.
من یک مدل غیرخطی دارم (یک تابع هدف از درجه ی 2 متغیرها و قیدهای خطی). برای حل از سالور پیش فرض استفاده کردم. با بارون هم تست کردم، جواب نداد. میخواستم بدونم مشکل از کجاست؟ گزارش خروجی به این صورته
سلام
مدلتون نشدنی هست، علت یابی کنین.
با سلام من مدلی رو حل میکنم با دیتا کم شدنی و با تا زیادتر نشدنی میشه مشکل از چیه؟
سلام
از هر چیزی میتونه باشه. یا داده اشتباه باشه. یا کد نویسی مشکل داشته باشه. با سالورهای مختلف هم تست کنین.
با عرض سلام و ادب
آیا امکانش هست که مثلا یک if بنویسیم که در صورت infeasible شدن مسئله به ازای برخی متغیر ها ، یک قید را حذف و مسئله ار حل کند؟ سوال بنده اینه که عبارت if مربوطه رو باید چطور بنویسیم؟
1. مدل کردن مسئله با تمامی قیود
2. حل مدل فوق
3. اگر (شرط) آنگاه (حذف یک قید و مدل کردن مسئله)
4. حل مدل فوق
بجای کلمه ی (شرط) چه عبارتی باید بنویسم؟
سلام
فقط یک قید؟
بله فقط یک قید. البته حذف قید مورد سوال بنده نیست.
سوالم اینه که در عبارت شرط، چی بنویسم؟ بجای infeasible
if (infeasible) then … do
به جاش از modelstat استفاده کنین. ببینین چه Modelstatی براتون خوبه. سرچ بزنین تو سایت گمز modelstat
سلام
به نظرم یکی از دلایل infeasible بودن مساله تضاد داده هایی است که وارد کرده ایم،علاوه بر بررسی محدودیت ها لازم است که داده ها را نیز بررسی کنیم و مقادیر آنها را تغییر دهیم.
سلام
بله دقیقا
یکی از موارد همین هست که متاسفاده بسیاری از دوستان درحالی که مدلشون درست هست ولی داده های اشتباهی دارن میزنن، شروع به تغییر ساختار مدل میکنن.
مرسی بابت پاسخ
سلام و خسته نباشید
با توجه به توضیحاتی که در سایت هست بنظر من شاید مهمترین مساله در این است که یک یا چند محدودیت با هم در تضاد هستند و اولین کار اینه که محدودیت های تعریف شده بررسی بشن.
بعد اگر مشکلی نداشت ،سایز مساله بررسی بشه مثلا بیایم با سایز کوچکتری مساله را حل کنیم
و در نهایت شاید اگر حل کننده را تغییر بدیم ، مشکل نشدنی بودن حل شه.