مدل هایی که در GAMS نوشته می شوند به طور مستقیم با استفاده از برنامه های دیگر نظیر Cplex, Baron, Lingo و… حل می شوند. هر مدلی که می نویسید باید و باید solver مربوطه را نیز مشخص کنید. این عمل به دو صورت امکان پذیر است.
روش اول: در روش اول، با استفاده از دیالوگ مربوطه در مسیر File/Options/Solver برای انواع مدل ها، solver مخصوص را مشخص می کنیم. البته نرم افزار GAMS برای هر نوع مدل، حل کننده ای را تعیین کرده است و شما می توانید از دیفالت نرم افزار استفاده کنید.
روش دوم: با استفاده از یک دستور ساده نیز، می توان برای مدل خود یک solver تعیین کرد. این دستور در خود برنامه و به دلخواه و توسط کاربر وارد می شود. این دستور را می توان در قالب کلی زیر خلاصه کرد:
Option modeltype = solver name ;
شکل زیر تعیین می کند که مدل های Lp، NLP، QCP و MIP به ترتیب با استفاده از solverهای LINGO، CONOPT، BARON و CPLEX حل شوند:
به عنوان مثال، در شکل بالا به GAMS دستور داده شده است که اگر مدلی دیدی که از نوع mip بود، آن را با حل کننده ی cplex حل کن!
توجه!: دقت کنید solverی که برای حل مدلتان انتخاب می کنید، واقعاً توانایی حل مدل شما را داشته باشد. مثلا Lingo baron نرم افزار قدرت مندی برای حل مسائل غیر خطی است ولی سرعت پایینی در حل مسائل دارد. و برای هر نوع مدلی نباید مورد استفاده قرار گیرد. پس شناخت solver ها یک رکن اساسی در حل مدل ها به وسیله GAMS خواهد بود. در صورت نیاز به بخش حل کننده ها مراجعه کنید. خاتمه
بپردازیم به ادامه ی مثال کاربردی1:
همانطور که می دانید مثال کاربردی1 مدلی خطی می باشد و همچنین solverی مناسب برای حل مدل های خطی cplex خواهد بود.
بنابر آنچه که گفته شد، ادامه ی مثال کاربردی1 : به صورت زیر خواهد بود:
خدمت عزیزانی که آموزش گام به گام را از ابتدا همراه با ما شروع نموده اند توصیه می شود که پس از مطالعه و مرور این صفحه، جهت ادامه مراحل آموزش به بخش دستور solve، در لیست مطالب مراجعه نمایند.
با تشکر
مدیریت سایت gamsbook.ir
ایمیل: Support@gamsbook.ir
شماره تماس: 3325-405—0919
سلام و احترام خدمت شما اقای محمودی
یک کد گمز که سعی در bilevel کردن ان داشتم همراه توضیحات مربوطه خدمت شما ایمیل شد کد ارر نمیدهد اما انگار در نوشتن متغییر ها و فرمول ها در قالب یک برنامه bilevel اشتباهی انجام داده ام. اگر امکانش هست در این خصوص راهنمایی ام کنید.
سلام، وقتتون بخیر
چطوری میتونیم بفهمیم جوابی که سالور بارون داره میده، گلوبال هست یا نه؟ آیا راهی هست که بشه اطمینان کرد مهندس؟
با تشکر
سلام. سالور بارون براي مسايل خطي، عدد صحيح، غيرخطي و غيرخطي عدد صحيح جواب گلوبال دارد.
اگر سالور بدون تغيير در پارامترهاي ان به صورت ديفالت مدل را حل كرده و در بخش مدل و حل گزينه مرتبط به بهينگي و نرمال را ميبينيد، پاسخ شما گلوبال هست. البته براي مسايل نامحدب و با درجه سختي بالا، ممكن است بهترين جوابي كه ايجاد بشه براي مسئله يك جواب لوكال باشد و شما با اين گزينه مواجه باشيد. در كل و با رعايت وليد بودن مقادير متغييرها، ميتواننيد ان را هم به عنوان گلوبال درنظر بگيريد.
با سلام
من یک مدل minlp دارم و اونو با سالور baron هم با سیستم خودم و هم روی سرور نئوس حل کردم. مدل بعد چن ساعت حل میشه و با اینکه وضعیت normal completion و optimal هستش اما هیچ جوابی به دست نمیاره و تمامی پارامتر ها خالی هستن مقادیرشون. ممنون میشم راهنمایی بفرمایید که ممکنه مشکل از چی باشه.
سلام
یعنی چی خالی هستن؟
اگر منظورتون این هست که صفر میده، خب جواب کدی که نوشتین صفره. با سالورهای دیگه هم تست کنید.
با سالور های دیگه هم امتحان کردم ولی جواب به دست نمیارن اونا فقط baro,n جواب میده که اونم صفر میشه. به نظرتون مشکل کار میتونه از کجا باشه که جواب عدد صحیح نداره مدل؟
از قسمت solution report باید ببینید solver status و model status چه مقادیری گرفتن؟
سلام ببخشید میگم خروجی یک مدل minlpبه صورت زیر شده است. چطوری باید درستش کنم. ممنون میشم کمکم کنید.
**** SOLVER STATUS 3 Resource Interrupt
**** MODEL STATUS 14 No Solution Returned
**** OBJECTIVE VALUE NA
سلام و ادب
زمان حل مسئله به اتمام رسیده و گمز به جواب نرسیده، گمز بصورت دیفالت بعد از هزار ثانیه یا ۱۶ دقیقه متوقف میشه و در این زمان به جواب نرسیده، پس باید زمان بیشتری مثل ده هزار ثانیه بهش بدید.
کد زیر رو به قبل از دستور سالو اضافه کنید.
[Css]
Option reslim=10000;
[/Css]
سلام و وقت بخیر
من وارد سایت نئوس شدم اما نمیدونم چجوری ازش استفاده کنم
میشه لطفا راهنمایی کنید؟ یا اگر آموزشی داره در اختیارم بذارید؟
سلام.
اين لينك را ببينيد:
روش استفاده از سرور نئوس
سلام
ببخشید سوالم رو اینجا مطرح می کنم.
اگر بخوام جواب tsp رو به صورت تصویری ایجاد کنم، چطور امکانش هست؟
سلام ارادت
بهتره ببرین تو اکسل یا متلب یا زبان هایی که بلدین.
سلام، وققتون بخیر
آیا از سرور نئوس میتوان برای اجرا کردن کدهای متلب نیز کمک گرفت؟ آیا سرور مشابهی برای انجام این کار وجود دارند؟
با تشکر
سلام و ادب
تا جایی که من اطلاع دارم خیر نئوس متلب نداره.
سایت آنلاین اجرای متلب زیاد هست. معمولا هم همه از سایت اوکتاو استفاده میکنن.
سلام مجدد
ساز و کار سالور Baron در نرم افزار گمز، بر چه اساسی هستش؟ آیا همون روش شاخه و کران معروفه؟
با تشکر
بله، اما در کنارش تکنیکهایی مثل تخمینزنی، قطع شاخههای غیرواجد و بهرهگیری از جستجوی بهترین محدودیتها هم استفاده کنه، اما اساس همون شاخه و کران هست.
سلام مجدد مهندس
مهندس من برای مساله ی بهینه سازی غیر خطی ام از سالور بارون استفاده کرده ام منتهی تا یک سایزی از مسالهم مقدار solution و best possibleام تقریباً یکی شده ولی از یک سایزی به بالا این دوتا از هم فاصله گرفته اند و گپشون زیاد شده، اینجا سالور بارون یعنی چیکار کرده؟ رفته سمت الگوریتم های هیوریستیک و متاهیوریستیک؟ از کجا باید فهمید این موضوعو که سمت چه موردی رفته؟
سلام وقت بخیر
یعنی چی بارون سراغ چی رفته؟ بارون از روش های مختلفی برای سعی در پیدا کردن جواب استفاده میکنه، اینکه گفته گپ داره، یعنی دوال مسئله رو حل کرده و با جوابی که تا الان به دست آورده هنوز مقادیرش متفاوت هست.
سلام مجدد
برای اینکه گپ صفر بشه باید چه دستوریو اعمال کرد؟
من در قسمت option این دستوراتو نوشتم براش ولی نمی دونم چرا گپ انداخته برای سایزهای کمی بزرگتر:
option optca=0,optcr=0,minlp=baron;
با تشکر
ببینید، گپ صفر یک شرط توقف هست به این معنی که (در صورتی که به گپ صفر رسیدی توقف کن) . اما اگر در زمان در دسترس (یا سایر محدودیت های سالور مانند تعداد تکرارها) به گپ صفر نرسید، به هر جوابی که رسیده باشه به ما نمایش میده.
مثلا اگر محدودیت 1000 ثانیه باشه، سه حالت پیش میاد
1- اگر قبل از این زمان به گپ صفر برسه، همونجا متوقف میشه ومیگه گپ صفره.
2- اگر در این زمان به گپ صفر نرسیده باشه و حداقل یک جواب feasible پیدا کرده باشه، همون رو به ما نشون میده به همراه گپ.
3- اگر در این زمان به هیچ جواب feasibleی نرسیده باشه، بنابراین جواب نشدنی به ما میده.
سلام
بنده می خوام مسئله ی فروشنده دوره گرد رو با الگوریتم های مختلف دقیق و ابتکاری و فراابتکاری حل کنم تا نتایج رو مقایسه کنم. با چه نرم افزاری بهتر می شه این کار رو انجام داد؟
سلام وقت بخیر
روش دقیق رو با گمز بزنید بقیه رو هم با هر زبانی که مسلط هستید انجام بدید. جاوا، پایتون متلب یا هر زبانی که براتون مقدور هست.
تشکر از پاسختون
با سلام و احترام، من میخوام پارامتر زمان سفر از مبدأ i به مقصد j را به صورت یک تابع در گمز تعریف کنم که تابعی از یک متغیر تصمیم در مدل هست. از کدام قابلیت گمز برای این کار باید استفاده کنم؟ از نوشتن ماکرو استفاده کردم و تابع زمان رو به صورت یک ماکرو نوشتم ولی خطا میده و میگه پارامتر باید مشخص باشه. چون این پارامتر تابعی از متغیر تصمیم هست فقط در زمان اجرا مقدارش مشخص میشه و بعد این مقدار در محاسبه تابع هدف و همچنین محدودیتها استفاده میشه. میشه از قابلیت load_execute کردن یک فایل که تابع توی اون تعریف شده برای این کار استفاده کرد؟
سلام و ادب
لطفا بفرمایید که این زمان سفر رو که میخواید حساب کنید بد از دستور سالو هست؟
با سلام و سپاس فراوان، قبل از دستور سالو هست، چون زمان سفر به عنوان پارامتر در محدودیتها استفاده شده و در تابع هدف هم ضریب متغیر تصمیم هست که در نهایت باید زمان کل سفر مینیمم بشه. در واقع در هر گره از درخت شاخه و کران که جواب جدیدی محاسبه میشه مقدار پارامتر زمان سفر هم تغییر میکنه چون تابعی از متغیرهای تصمیم هست. از load_execute استفاده کردم و بعد متغیر رو به صورت x.L توی یک رابطه قراردادم تا زمان های سفر محاسبه بشه خطا نداد ولی خروجی رو که دیدم مشخص شد x.L فقط مقدار اولیه X رو که صفر بوده در زمان اجرا گرفته و زمان های سفر رو محاسبه کرده و این زمان ها به عنوان پارامتر ثابت تا انتهای فرآیند حل استفاده شدند و مقدارشون تغییری نکرده. درصورتیکه من منظورم از X.L مقدار جاری متغیر X در زمان حل بوده که فقط مقدار صفر گرفته.
سپاس فراوان از راهنمایی شما
سلام و ارادت
تابع هدف، اون پارامتر و متغیری، لوپ اصلی رو بفرستید که ببینیم فرایند چجوری جلو میره اصلا
البته ببخشید دستور صحیحش execute_load هست که بالا اشتباه نوشتم.
لوپ اصلی این هست:
execute_unloaddi ‘time’ y,s;
execute_load ‘time’ y,s;
loop((i,d),
pp(i,d)=y.l(i,d)+s(i,d);
);
pp و s پارامترند و y متغیر هست. بعد توی لوپ بعدی زمان سفر(tt) محاسبه میشه و a پارامتراست:
loop((i,j,d),
…..)if
tt(i,j,d)=a(i,j,d)-pp(i,d);
;(
تابع هدف هم ObjectiveFunction .. OF =e= sum((i,j,k,d),tt(i,j,d)*x(i,j,k,d)); است.
با سپاس فراوان
طبق چیزی که من دارم برداشت میکنم، زمان سفر پارامتر نیست، و یک متغیر هست. شما یا باید به صورت متغیر تعریف کنید، یا اینکه مستقیما فرمولش رو بذارید تو تابع هدف و نهایتا خطی سازی کنید.
سلام وقتتون بخیر
ببخشید من یک مدل دارم ران شده ولی شک دارم آیا درست ران شده یا نه.امکانش هست کدش رو بفرستم خدمتتون چک کنید؟
با سلام
بنده یک برنامه دارم که تعداد تابع هدف وابسته به تابع هدف دیگری می باشد. یا به عبارتی تئوری بازی استراکلبرگ. خودم جستجو کردم دیدم با solver emp ظاهرا میشه همچین برنامه ای رو حل کرد می خواسم اگگگر ممکنه روش اسفاده از این سالور رو بیان کنید. با تشکر
با عرض سلام
من یک تابع هدف دارم که قسمتی از آن عبارت e به توان یک عددی هست. یا همون تابع نمایی exp
برای حل این نوع تابع هدف، چه solver ی انتخاب کنم
Error نداده ولی مدل که حل شده نمایش نتایج وجود نداره و Error اجرا داده
Exec Error at line 126: A constant in a nonlinear expression in equation
obj evaluated to UNDF
Solver رو من MINLP انتخاب کرده بودم
سلام وقت بخیر
به چه شکل به توان میرسونید؟
هم با دو تا ستاره و هم با power(e,x) تست کنید.
exp( (-1)*Landaa(k)*time*sum(j,y(k,j))
به این نحو به توان رسوندم
به ایمیل سایت کد را ارسال بفرمایید تا رفع شود.
وقتی power(e,x) مینویسم، e رو نمیشناسه
چطور این e رو به عنوان عدد اویلر به گمز باید بشناسونیمش؟؟؟
روش های مختلفی هست، میتونید بزنید مثلا power(exp(1),…)
سلام وقت بخیر
برای حل مدلهای mip غیر از حل کننده ی سیمپلکس و گروبی چ حل کننده ی دیگ خوب هست واس این مسائل؟
مثلا وقتی با گروپی حل میکنم جواب خیلی بهتری رو نسبت به سیمپلکس بهم میده
سلام روز خوش
معمولا این دو از همه بهتر هستند، امل در یک سری مسائل ممکنه بارون و لیندو هم خوب جواب بدن.
سلام جناب دکتر محمودی
وقت بخیر
من یه مساله MIP بزرگ رو دارم با Gurobi حل میکنم، بعد از چندین بار ران گرفتن به طور متوسط بعد از گذشت حدود 4/5 ساعت به گپ 1/54% میرسه و اگه بخوام کمتر از این بشه گپ خیی باید زمان صرف بشه و به نظر منطقی نمیاد.
به نظرتون با این گپ امکان ریپورت نتایج به عنوان عدد بهینه تابع هدف در مقاله ژورنالی وجود داره یا خیر؟
سلام وقت بخیر
اگر دقت بکنید، حد بالای این مسئله ثابت هست و حد پایینه که داره بهتر میشه. به نظر من جواب بهینه شما عملا به دست اومده، ولی حد پایین کماکان در حال بهبود هست. برای رفع این مشکل معمولا از نامساوی معتبر یا بندرز یا هر دو استفاده میکنن.
برای گزارش معمولاً مشکلی پیش نمیاد، مگه اینکه داور متوجه این داستان بشه که حد پایین بهبود کندی داره.
میتونید یه زمان مثل 4 ساعت به عنوان شرط توقف در نظر بگیرید، به هر جوابی رسید گزارش کنید.
سلام دوستان
آیا بین نتایج خروجی یک مدل یکسان در نرم افزار لینگو و گمز تفاوت وجود داره؟
سلام و ادب
تحت شروطی ممکنه یکسان یا متفاوت باشن.
مواردی نظیر گپ، محدب بودن، خطی بودن و… روی جواب ها تأثیر گذار هست.
سلام
ممنون از پاسخ شما. آیا این تفاوت توجیه پذیر است؟
بله. یه جاهایی مدل غیر خطیه، و سالورها ممکنه جواب های مختلف ارائه بدن.
جاهایی که مدل خطی و محدبه و زمان حلش پایینه، باید یک جواب بدن هر دو
با سلامُ من به gurobi در متلب یا لینوکس برای C++ نیاز دارم ولی نمیتونم اکتیوش کنم ممکنه من رو راهنمایی بفرمایید.
سلام
لایسنس گورابی رو ما نداریم. و نمیدونم پیدا میشه یا نه.
ولی یه کاری که میتونین بکنین اینه که از بخش دانلود همین سایت نسخه 24.7 یا 25.1 رو دانلود کنین و لایسنس سوم رو روش نصب کنین (که نیاز هست تاریخ سیستم رو برگردونین به 2014). و گورابی رو به صورت فول استفاده کنین. حالا میتونین از طریق متلب، c++ یا هر محیط دیگه ای گمز رو فراخونی کنین و از گورابی استفاده کنین.
سلام،
یعنی مدلی که توی متلب نوشتم رو میتونم بدون اینکه مجدد همون مدل رو توی گمز بنویسم، با استفاده از سالور گورابی حل کنم؟
نه. یعنی مدل رو توی پمز کد میکنین، بعد یا از طریق گمز یا مثلا از طریق متلب به گمز دستور میدین که با استفاده از solver گروبی حلش کن.
سلام وقتتون بخیر باشه
جناب محمودی ایا گمز ،مدل رو با داده های بزرگ رو می تونه حل کنه یا خیر(یعنی جواب بهینه رو میتونه بده؟)
برای حل داده های بزرگ در گمز از چه الگوریتم هایی می شه استفاده کرد و زمان حل رو کوتاه تر کرد؟
سلام و ادب
کلا نرم افزارهای بهینه سازی تو سایزهای بزرگ کم میارن. برای بهبود زمان حل بستگی به مدل باید راه حل های خلاقانه استفاده کرد. مثلا استفاده از valid inequality ها و یا استفاده از برش های منطقی، فکس کردن متغیرهایی که از قبل میدونیم مقدارشون چند میشه، بهبود مدلسازی، استفاده از روش های تجزیه مثل بندرز و…. . روش ها فراوون هستن.
ممنون
من الان ی مدلی دارم با داده های نسبتا بزرگ و برای من حل میکنه ولی توی قسمت solve summery گفته
**** SOLVER STATUS 3 Resource Interrupt
**** MODEL STATUS 8 Integer Solution
**** OBJECTIVE VALUE 56825.3350
به من جواب opt رو نشون نمیده باید چیکار کنم که جواب opt رو نشون بده؟
سلام
زمان حل رو با دستور reslim ببرید بالا. ممکنه جواب بده.
reslim رو 3600و7200 گذاشتم ولی باز بهم SOLVER STATUS 3 Resource Interrupt
**** MODEL STATUS 8 Integer Solution نشون میده
مدلمم خطی هست
حتی گپ هم صفر گذاشتم
ممکنه بخاطر داده ها باشه ؟
الان مدل استاتوس که Integer Solution هست به معنای جواب قابل قبوله؟ در واقعInteger Solution یعنی چی جوابیه؟
یعنی اینکه حداقل یک جواب شدنی (منطقی- امکان پذیر) پیدا شده. و مسئله نشدنی نیست.
گپ به چند میرسه؟
معمولا مسائلی که زمان حلشون بالا هست، یک زمانی مثل 3600 یا هر زمان دیگری رو به عنوان شرط توقف میذارن و میگن که به هر گپی رسید گزارش میکنیم.
در reslim 3600
MIP Solution: 78416.957472 (510907 iterations, 31081 nodes)
Final Solve: 78416.957472 (0 iterations)
Best possible: 16657.515086
Absolute gap: 61759.442386
Relative gap: 0.787578
میشه با روش هایی مث تجزیه بندرز حلش کرد که بهم یک جواب opt بده؟
اگ سالور رو تغییر بدم امکانش هست درست شه ؟
یا اینکه داده ها رو دستکاری کنم؟
با داده هایی توی مساحت کمتر استفاده کردم بهم جواب opt رو میده
تغییر داده ممکنه مسئله رو سریع تر کنه. بله. ولی الزاما برای سایزهای بزرگ شاید بازم این مشکل باقی بمونه.
گپ خیلی بالاست و عملا قابل اتکا نیست. و باید خیلی کم و یا صفر بشه
بندرز معمولا خوب جواب میده. مهم پیاده سازی صحیحش هست.
مسئله mip هست، تغییر سالور کمک خیلی کوچکی ممکنه بکنه و خیلی تاثیرگذار نیست. اگر خواستید میتونید gurobi رو هم تست کنید.
یعنی زمانی که گپ خیلی بالا باشه، جواب مسئله قابل اتکا نیست؟
نمیشه بطور قطع گفت قابل قبول نیست. ولی 99% پروژه های تحقیقاتی گپ پایین نیاز دارن. پروژه های صنعتی قضیه شون فرق میکنه. بعضی وقتا حتی یک جواب فیزیبل هم براشون کافیه
با عرض سلام و تشکر از راهنماییتون ، من مدل را با solver baron ، ران کردم و بعد از ۴ ساعت بهم جواب نداد و مجبور شدم stop کنم ، ولی با solver knitro در ۸ ثانیه بهم جواب میده ! ایراد کار کجاست بنظر شما؟
Solver status ۱ normal completion
Model status 8 integer solution
Objective value 32526.7809
سلام
ممکن هیچ ایرادی وجود نداشته باشه. شما باید model status و gap رو چک بکنین. بعد یک مثال ساده رو حل کنید و متغیرهاش رو چک کنید که درست جواب داده یا نه.
با سالورهای دیگری هم تست کنید.
میتونید برای اینکه کامپیوترتون اذیت نشه از سرور نئوس هم کمک بگیرید. یعنی اونجا فایلتون رو آپلود میکنین، و بعد از اینکه حلش کرد بهتون ایمیل میزنه. محدودیت زمانیش هم حداکثر 8 ساعت هست.
با سلام و تشکر از سایت خودتون، استاد چطور میتونم چک کنم که آیا مدل در نرم افزار درست حل شده ؟
در قسمت solver summary اینطور نوشته:
Solver status 3 resource interrupt
Model status 8 integer solution
Objective value 32526.7809
سلام
همونطور که مدل استاتوس گفته، مسئله جواب شدنی عدد صحیح پیدا کرده، ولی با توجه به solver status میبینیم که کمبود منابع موجب شده که مسئله به حل بهینه نرسه. این منابع شامل زمان میشه، زمان حل رو ببرید بالا با دستور reslim و گپ هم بذارین صفر بشه اگه جواب نهایی میخواین.
ممنونم استاد ، ولی الان بدون اعمال تنظیماتی که شما فرمودید با solver baron حدود ۱۷ دقیقه طول می کشه مدل حل بشه ، و برای اینکه به توابع وزن دادم و باید ۶۴ بار مدل اجرا بشه در حال حاضر بدون اعمال تنظیمات gap و reslim نزدیک ۲۴ ساعت طول می کشه به جواب برسم،
استاد چطور میتونم با کمترین زمان به جواب بهینه مناسبی برسم ؟ مدام minlp هست
این 17 دقیقه یعنی همون حدود 1000 ثانیه دیفالت گمز. گپی که برای سالو های مختلف ایجاد میشه ممکنه مشکل ساز بشه مگه اینکه صلاحی در کار باشه.
میتونین از سالورهای مختلف استفاده کنین. بسته به نوع مسئله هر کدوم ممکنه سریعتر بشه. مثلا lindo، dicopt، minos, knitro, و…
اگر مسئله رو بتونین خطی کنین که سرعت حل خیلی بالا میره.
سلام
ممنون از مطالب خوب شما
آیا ترتیب قرار گرفتن محدودیتها در گمز برای سالور گورابی میتواند در زمان حل آن موثر باشد؟
من یک مدلی را در گمز کد کردم که با سالور گورابی در زمان ۱۱۰۰ ثانیه به جواب بهینه رسید. بعد از آن فقط برای اینکه کد قشنگتر و منظم تر بشود ترتیب محدودیتها رو به طوری عوض کردم که جای محدودیت ۶ و ۱۹ جا به جا شد. وقتی دوباره ران گرفتم زمان حل برای رسیدن جواب بهینه ۲۵۰۰ ثانیه شد!
این که گورابی برای رسیدن به جواب اولیه از ابتکاری استفاده میکند و ممکنه است زمان حل برای گورابی در هر بار ران گرفتن کمی متفاوت باشد را میدانم ولی حقیقتا این تفاوت زیاد زمان کمی عجیب است!
ضمن اینکه هیچ چیز عوض نشد و فقط جای دو محدودیت در کد جا به جا شد!
سلام
ببینید در واقع این مسئله که اشاره فرمودین از لحاظ منطق ریاضی نباید درست باشه. ولی ما داریم در مورد کامپیوتر و الگوریتم ها صحبت می کنیم. بنابراین کسی که این الگوریتم ها رو کد میکنه، ممکنه ترتیب خیلی خاصی برای برش ها، شاخه ها و… تعریف نکرده باشه. البته طبیعتاً یه حاهایی هم کد نویس چاره ای نداره.
فرض کنیم ما سه متغیر باینری x و y z, داریم. الکوریتم بصورت ترتیبی (خطی اسکتند شده) یکی از اینا رو انتخاب میکنه که شاخه بزنه. ممکنه x یا z انتخاب بشن. بنابراین زمان حل هم میتونه متفاوت باشه. من این رو با cplex دیدم تو چند تا کد. ولی تو گروبی ندیده بودم. ممنون بابت شیر کردن اطلاعات
درود، من می خوام یک مدل رو مربوط به حمل و نقل کالای خطرناک هست و دو هدف داره با گمز پیاده سازی کنم
اولا نمی دونم چطور می شه دو تابع هدف رو تعریف کرد و اینکه از چه solver استفاده کنم؟؟؟
و اینکه در مقاله خودش گفته با کد نرم افزار GAMZ IDE/Cplex حلش کرده
می شه لطف کنید راهنمایی بفرمایید
سلام
باید از روش های چند هدفه استفاده کنین مانند:
روش وزنی، روش برنامه ریزی آرمانی، محدودیت اپسیلون، ال پی متریک، لکسیکوگرافی و… سالورش مهم نیست
سلام خسته نباشید
ببخشید من میخوام یک عدد توان دار وارد گمز بکنم که قسمت توانش عدد صحیح نیست باید چی کار کنم . در دستور power باید عدد صحیح باشه حتما
ممنون
سلام
سلام خسته نباشید برای تابع توانی که به شکل زیر باشه کد گمز آن چه جوری میشه؟
(r+1) به توان y
r=.02
y=1,2 توی ست به عنوان سال تعریف شده
سلام
سلام
من یه سوال داشتم شاید یکم ابتدایی به نظر برسه ممنون میشم پاسخ بدید.
یک مدل minlp دارم وضعیت جواب با سالور baron به این صورته
Resource interrupt
Integer solution
سوالم اینه امکان داره زیاد کردن زمان حل و صفر کردن گپ وضعیت جواب به صورت
Normal completion
Optimal
تبدیل بشه؟
سلام
سوالتون ابتدایی نیست. بله امکانش هست. خواستید با سالورهای دیگه ای نظیر lindo هم چک کنین. شاید سریعتر باشه
MIQCP حل کننده چه ز مانی استفاده می شود
سلام
وقتی که مسئله شما از نوع درجه دوم باشه. quadratic
مثلا تابع هدفتون یه متغیر به توان دوم رسیده یا یه متغیر ضرب یکی دیگه شده.
سلام خسته نباشید من فرمول مینویسم با همین تابع برام خطا میاد تابع هدف فرمول نداره در حالی که مینویسم مشکل کجاست؟
سلام
چه خطایی؟ متنش رو بفرستید
سلام یه راهنمایی ازتون داشتم
لپ تاپ من سرعت خیلی بالایی دارد ولی وقتی روی حل میزارم فقط مقدار کمی از ram و cpu من استفاده میشه
میخوام بدونم لینگو تنظیمات خاصی داره تا من بتونم ببرم بالا و زودتر به جواب برسم
مثلا رم لپ تاپ 16 هستش ولی برنامه فقط 4 گیگ و استفاذه میکنه
Cpu هم core i7 نسل 9 هست ولی فقظ 10 درصد و استفاده میکنه
سلام
اولا شاید نیازی نباشه.
ثانیا لینگو رو نمیدونم چجوری درگیر این قضیه میشه.
برای گمز هم خودشون سعی کردن از همه هسته ها استفاده کنن.
می تونین تو تنظیمات ویندوز گمز رو بذارین تو اولویت. یا با استفاده از option threads های بیشتری رو در گیر کنین. توی سایت سرچ کنین خطای 1001 در گمز. آپشن مربوط به هسته ها رو استفاه کنید.
برای اولویت دهی هم باید از تنظیمات ویندوز استقاده کنین. با یه سرچ ساده گیرتون میاد
سلام با تشکر از سایت خوبتون ، چطوری باید اجازه ندیم که گمز اعداد اعشار تولید کنه؟ از epintاگه هست کجاست و چطوری باید پیدا کنیم ؟ مرسی
سلام
اگه میخواین پارامتر تعریف کنین که تصادفی تولید میشه، کافیه یه بخش تصادفی رو بذارین تو تابع round
اگه میخواین متغیرتون اعشاری نشه، از نوع integer تعریفش کنین.
با سلام
در مسئله بنده هم عبارت خطي وجود داشته و هم عبارت غيرخطي،بخش غيرخطي و تو مسئله تبديل به خطي كردم حالا براي انتخاب solver لطفا راهنماي كنيد كه ايا زماني كه با تو بخش file/option و در قسمت solver چيزي انتخاب نميكنيم گمز دي فالت از چه سولوري استفاده ميكنه
در ضمن چطور ميشه همه سولورها تو برنامه نوشت تا هر بار نخواهيم تو مسيري كه گفتم بريم سولوري عوض كنيم
بطور نمونم من دو تا سولور و بصورت زير تو برنامه نوشتم گمز چطور و كدوم سولور و انتخاب ميكنه
Option mnilp=cbc
Option minlp=lindo
در اجرا وضعيت بهينه سازي هم محلي بهينه ميشه و پيغام زير صادر ميشه
Rlaxed nlp gives integer solution
سلام
این پیام معمولا خوبه. یعنی اینکه Mipnlp یا Nlp یک جواب بهتون میده.
برا سالورها بهتره که چندتا رو دستی تست کنین.
مثلا:
سلام
وقت بخیر
من یک مدل mipدر گمز وارد کردم وقتی که مدل را اجرا میکنم هیچ مشکلی ندارد و الگوریتم بندرز را روی مدلم پیاده سازی کردم. ولی سرعت حل پایینی دارد وقتی اجرا میشود. باید چه دستوری وارد که زمان اجرا حل الگوریتم را بالا ببرد تا به جواب optimalبرسد.؟ممنون میشم راهنمایی کنید.
سلام
شرایط حل هر دو مدل باید یکسان باشه. کمک خاصی از دستم بر نمیاد.
سلام
من یه مدل minlp دارم که با سالور boñmin جواب لوکالی اینفیزیبل میده و با سالور oqnlp روی iteration ۱۰۰۰ توقف میکنه. تا قبل ۱۰۰۰ یه مقادیری حاصل میشه ولی بعدش دیگه جواب نمیده. دستور iterlim هم استفاده کردم تاثیری نداره بازم جواب نمیده. چه کاری میتونم انجام بدم تا جواب بگیرم. همه سالورارو امتحان کردم هیچ کدوم جوابی ندارن فقط bonmin و oqnlp که لوکالی اینفیزیبل میدن. میشه لطفا کمک کنید؟؟؟
سلام
چب باعث شده مدل غیر خطی بشه؟ امکان خطی شدنش رو ندارین؟
زمان رو چند گذاشتین؟ کی متوقف میشن؟
سلام زمان ندادم بهش. ولی خطیش کردم درست شد
ممنون ا راهنماییتون
سلام
من یه برنامه با گمز نوشتم جواب درست نمیده با solver بارون و scip هم حل کردم همه ی متغیرها رو صفر میده و تابع هدف هم به جای یک عدد مثبت منفی میده به نظر شما اشکال کجاست؟ ( چند تا مدل دیگه رو با همین نرم افزار حل کردم جواب درست داده )
اشکال اینه که بدون اینکه استاتوس مدلتون رو چک کنید دارید جوابا رو چک می کنید
اگر مساله شما infeasible باشه جواب ها رو نمی تونید تفسیر کنید
استدلالتون اینطوریه که من که 10 سال تصادف نکردم حالا که تصادف کردم چطوری تصادف کردم ؟ مگه میشه اشکال کجاست؟
بگردید ببینید معادلاتتون چه ایرادی داره
گمز اشتباه نمی کنه این شما به عنوان برنامه نویس هستید که اشتباه کردید
کجای کارتون اشتباهه ؟ شما باید پیدا کنید
اولین اشتباهتون اینه که فکر می کنید اشتباه رو توی اینترنت می تونید پیدا کنید
اشتباه توی کد شماست
اونجا دنبالش بگردید
سلام خسته نباشید من صنایعی نبودم بخاطر همین روی تحقیق در عملیات یکم ضعیفم
الان باید یه کدی بزنم که متغیراش باینری و پیوسته هستند که برای متغیرای پیوسته اخرین محدودیت گفته که همه متغیرای پیوسته بزرگتر مساوی صفر هستن، تو محدودیت ها و تابع هدف هم هیچ عبارتی ضرب بین پیوسته با پیوسته یا باینری نیست. دیتا های مدلمم همه رو با یونیفرم بصورت تصادفی تولید کردم وقتی مدلو ران میکنم ارور نمیگیره ولی این پیغامو میده
MODEL biomasssupplychain OBJECTIVE z
TYPE MIP DIRECTION MINIMIZE
SOLVER CPLEX FROM LINE 295
**** SOLVER STATUS 1 Normal Completion
**** MODEL STATUS 10 Integer Infeasible
**** OBJECTIVE VALUE NA
RESOURCE USAGE, LIMIT 0.015 1000.000
ITERATION COUNT, LIMIT 0 2000000000
الان نمیدونم مشکلم از چیه از دیتاهاست یا از مدلی که انتخاب کردمه.(mip) میشه راهنماییم کنید؟
سلام
مدل شما نشدنیه. مشکل یا از داده هاست. یا از مدلسازی. یا از نحوه پیاده سازیتون. باید همه رو چک کنید.
سلام خسته نباشید من یک مدل مکان یابی دارم که هرچی ران میکنم جواب صفر میده به نظرتون باید چه کار کنم؟
اپتیمال میشه مدل؟
تو را خدا لایسنس با این اسم برایم می فرستید؟
4_5922724141286295133
سلام
بهترین نسخه ای که میتونید بیدا کنین. اینجاست
برای متغییر های اینتیجرتون حد بالا تعریف کنید.
X.up=1000000
اینو بعد از تعریف متغییرها وارد کنید.
با سلام من یک مساله دو سطحی دارم که از emp lib. برای حل اون استفاده میکنم.
با یک سری داده مشخص و با ساب سالور بارون مساله مو حل کردم و جواب گلوبال و گپ نزدیک به صفر به دست آوردم.
حالا فقط داده های ورودی رو عوض کردم ولی برای مدلم این ارور رو دارم :
No Solution Returned
دلیلش چی می تونه باشه؟
بذارید یک مثال برای شما بزنم
شما یک کد ساده دارید که کار می کند و تنها دستور آن x=2 است
حالا شما بیایید و یک قید خیلی ساده به آن اضافه کنید مثلا
x=0
قیدی که شما اضافه کردید بسیار ساده و خطی است
ولی مساله باید مقداری برای x پیدا کند که هم برابر 0 باشد هم برابر 2 باشد !
به همین سادگی
وقتی شما کمیتی را در کد عوض می کنید می توانید آن را غیر قابل حل کنید
حالا اینکه چه اتفاقی افتاده بستگی دارد که چه کاری انجام داده اید
بگردید علت خطا را پیدا کنید
پیشنهاد : دیتای ورودی را چک کنید
دلیلی ندارد یک کد برای هر دیتای ورودی جواب داشته باشد
سلام
خسته نباشید و سال نو مبارک باشه.
آیا در گمز آپشنی وجود داره که بتونیم با اون از سالور نتیجه فقط یک تکرار رو بگیریم؟
مثلا در روش نیوتون رافسون فقط به مقدار یک تکرار کار انجام بشه و نتیجه نمایش داده بشه.
ممنون از راهنماییتون.
سلام
اینکه از چه روش و سالوری استفاده میکنین نمیدونم. ولی بهترین کاری اینه که تعداد تکرار رو به یک عدد محدود کنین و نتیجه رو نشون بدین.
با سلام
من یه مساله بای لول دارم که از سایت NEOS و emp و سالور jams استفاده میکنم
ابعاد مساله من بسیار بزرگ است.
خروجی های INFEASIBLE ندارم
ولی این پیام رو هم دارم
**** SOLVER STATUS 4 Terminated By Solve
چیکار کنم؟
سلام
کاملش رو بفرستین. این کامل نیست.
با عرض سلام و خسته نباشید
سوالی در ارتباط با انتخاب نوع سالور داشتم
آیا سالور Dicopt که برای مسائل minlp می باشد قید غیر خطی non convex را نیز حل می کند؟
اگر جواب خیر است باید چه سالوری انتخاب شود؟ آیا گمز اصلا توانایی حل اینگونه مسائل غیر خطی noncovex را دارد؟
ممنون
سلام
تقریبا همه سالورهای غیرخطی گمز توانایی برخورد با هر دو نوع مسئله محدب و غیر محدب رو دارن. فقط برای غیز محدب هایی که از نوع بدخیم هستن و از هیچ قاعده ای پیروی نمیکنن، نمیشه نظر قطعی داد. چون سالورها نمی تونن از روش خاصی مسئله رو حل کنن و در نتیجه اطمینانی از یافتن جواب بهینه به ما نمیدن. هر چند ممکنه در عمل بتونن حل کنن این مسائل رو.
با سلام
چندین داده را از اکسل می خواهم فراخوانی کنم اما ارور میده.هر کاری کردم مشکل حل نشده. نمیدونم مشکل کجاست.
سلام
اولین خطا رو باید ببینید. توجه کنین که فایل اکسل باید در دایرکتوری شما باشه. یا اینکه دقیق ادرس فولدر رو در گمز وارد کنین.
اگه همه اینا رو رعایت کردین، بازم نشد، کدی که مربوط به فراخوانیه اینجا بذارین و تو ضیح بدین که اکسل رو چجوری عدد دهی کردین و …
با سلام خدمت آقای محمودی
آقای محمودی کد گمز شبیه سازی را برایتان ایمیل کردم. اگر برایتان مقدور است لطفا بررسی نمایید و کمکم کنید.
با تشکر از شما
با سلام خدمت آقای محمودی
آقای محمودی بنده یک مقاله با گمز شبیه سازی کردم اما متاسفانه جواب نگرفتم. هر کاری انجام دادم اما متاسفانه باز هم جواب نگرفتم. اگر امکان داشته باشد لطفا به بنده کمک کنید. خیلی واجبه.
با تشکر از زحمات شما
سلام مشکل چیه
سلام و وقت بخیر..این دستور P.optCR= 0( هر جا به گپ صفر رسید برنامه متوقف بشه) باید دقیقا کجا و چجوری وارد کنم؟؟ قبل از solve؟هر جا وارد میکنم ارور میده نرم افزار
سلام
خط اول رو بردارین. تو خط بعدی بهش اشاره کردین و کافیه. بله قبل از سالو باید بیاد.
چشم امتحان خواهم کرد…فقط این resource limit یعنی چی؟یعنی اینکه باید زمان بیشتر بشه؟میخوام بدونم مدل مشکلی نداره
اینکه مدل مشکلی داره یا خیر با این مشخص نمیشه. این خطا میگه که زمان رو کم گذاشتی و من زمان بیشتری نیاز دارم که مدل رو حل کنم. زمان رو خیلی بیشتر کنین، تا ببینیم کامل حل میشه یا نمیشه یا چقدر زمان میبره.
میبخشین بله درست فرمودین …این پیام میده Resource limit exceeded…
سلام….نه همچین پیامی نمیده.اگه دستور option optca=0,optcr=0,mip=cplex,reslim=3600 وارد نکنم تو همون 16 مین جواب میده.ولی وقتی دستور وارد میکنم 1 ساعت طول میکشه البته بگم که میزان گپش 1000 تا کم میشه..
سلام
لطفا به همون گفتگو جواب بدید. تشکر
خب 3600 میشه همون یه ساعت دیگه. زمانو میتونین بیشتر کنین.
سلام و وقتتون بخیر…سوالی داشتم ممنون میشم راهنماییم کنین
در مساله بهینه سازیم مقادیر absolute gap حدود 6000 و relative gap 0.29 درمیاد( Mip سالور cplex)…میخواستم بدونم ایراد کار کجاست؟؟؟
دستور مربوط به گپ و زمانم وارد میکنم فایده ای نداره..
solve Acm using MIP minimizng zz1;
option optca=0,optcr=0,mip=cplex,reslim=3600;
mip solution=21000 و best solution=15000…
میخوام بدونم الان کل مدل سازیم زیر سوال میره یا نه این میزان گپ ایرادی نداره؟
باتشکر
سلام
چقدر طول میکشه حل مسئله؟
آیا پیامی مبنی بر اتمام منابع resource limit یا iteration limit بهتون میده؟
با سلام
خواهش می کنم در نوشتن کد گمز مسئله زیر به من کمک کنید.
می خواستم تابع درجه دوم زیر را به صورت خطی تقریب بزنم.
تمام sum ها بر روی s هستند.
می خواهیم تابع درجه دوم را با چند خط تقریب بزنیم. Z جمع معادله خطوطی است که دو نقطه از تابع درجه دوم را بهم وصل می کند. Xstart(s) و Xend(s) به ترتیب نقاط ابتدا و انتهای خط مذکور است. در معادله u(s) ,z به این دلیل ضرب شد که اگرXk(s) در یک بازه صفر شد، Xstart(s) هم در آن بازه قرار نگیرد. Xk(s) چون فقط در یک تکه از این خطوط است، پس یک متغیر باینری است.
خودم یک کد نوشته ام که خیلی ناقص است. لطفا در نوشتن کد گمز به من کمک کنید.
با تشکر از شما
سلام
من نمیدونم این چه رویکردی هست. رویکرد باید واضح باشه با یک کد نمیشه نظر داد. معمولا برای تقریب ها از حلقه ها هم استفاده میکنن.
اقا خیلی ممنون
اگرچه لازم شد یخورده فسفر بسوزونم تا منظورتونو از جمله ی ” اندیس i رو به صورت ۱و۲و۳و… تعریف کنین” متوجه بشم و (A(0 رو حذف کنم .
خدا رو شکر مشکل حل شد
حالا که مزاحم شدم یه سوال دیگه هم بپرسم . این حالت ینی چی ؟؟
**** SOLVER STATUS 1 Normal Completion
**** MODEL STATUS 8 Integer Solution
سلام
خواهش میکنم. خوبه که فسفر بسوزه دیگه. چارتا بادوم پسته جبرانش میکنه. :دی
این حالت یعنی اینکه سالور با حل مسئله مشکلی نداشته و جواب عدد صحیح و شدنی پیدا کرده ولی ممکنه کماکان بهینه نباشه. بهتری model status برابر optimal هست.
منظورم یه همچین چیزیه
eq(i) .. D(i)=e=A(i)+0.5*A(i-1)
eq(i) .. D(i)=e=A(i)+0.5*A(ord(i)-1)
ولی خب به جفتشون ارور میده
اولی درسته. فقط اندیس i رو به صورت 1و2و3و… تعریف کنین.
سلام
ممنون از سایت خیلی خوبتون
سوالم اینه که اگه تو قیدی از عبارت های با اوردر مختلف استفاده شده باشه مثلا اگه از ست i برای تعریف معادله استفاده شده باشه در سمت چپ معادله i داشته باشیم و در سمت راست i و i-1 چنین مجموعه قیدی رو چجوری باید بنویسیم؟؟؟
سلام
از دستورات ord و uel استفاده کنین.
مثالای زیادی تو کامنتهای این پست مشاهده میشه. همه رو ببینین.
متشکر
سلام
یک سوال دیگه: میشه لطفا راهنماییم کنین این ارور معنیش چیه؟
( Exec Error at line 219: division by zero (0****
سلام
یه متغیر تو مخرج دارین. یا خطیش کنین و طرفین وسطین کنین. یا اینکه یه مقدار خیلی کوچیک مثل 0.0001 به مخرج میتونین اضافه کنین.
سلام
متشکر از سایت مفیدتون
برای مدل dnlp چه سالوری مناسبتره؟
سلام
نمیشه نظر قطعی داد. lindo ،baron خوبن معمولا.
سلام
خیلی ممنون از راهنمایی های بسیار مفیدتون. من یک برنامه در گمز نوشته ام که الان لازم دارم یک قید به آن اضافه کنم. منتها چون قید مورد نظر شامل یکی از متغیرها میباشد درواقع باعث میشود برنامه غیرخطی شود. خواهش میکنم راهنماییم کنید که باید چی کار کنم؟
سلام
یعنی چی که شامل یه متغیره؟ خب همیشه متغیر داره محدودیت.
اگه غیر خطی میشه، یا خطیش کنین. یا اینکه سعی کنین یه جوری عبارتی معادل اون محدودیت که خطی هست به صورت خلاقانه یا از مقالات مشابه بدست بیارین.
لاینسس هایی که تو سایت گداشتین دانلود نمیشن لطفا لنک آن را تصحیح کنین.
سلام
دانلود میشن، کلیک که میکنین بسته به تنظیمات مرور گر شما، یا دانلود میشه، یا میره تو یه صفحه جدید باز میشه که شامل یک متن هست. این متن رو کپی کنین تو فایل notepad و ذخیره کنین و استفاده کنین.
سلام وقتتون بخیر
یه برنامه ی گمز نوشتم تو پنجره یno active process، normal conpretion میده ولی قسمت solver status کد11 licensing problem رده مشکل از لایسنس گمزر؟.
لطف میکنین لاینس مربوط به سالور sbb تو سایتتون قرار بدین و بفرمایید برای چه نسخه ی جواب میده؟
پیشاپیش ممنونم ازتون
سلام
لایسنس کامل تمام سالورها رو گذاشتیم تو سایت. تو بخش دانلود و نصب گمز بگردین و لایسنس مربوط به 2014 که توضیح دادیم رو دانلود کنین.
برای SOLVER STATUS نوشته Normal Completion و برای MODEL STATUS نوشته Integer Solution. اینا به چه معناست؟
لطفا به همون گفتگویی که داشتیم ریپلای کنین. تشکر.
solver status که خوبه. ولی model status میگه که من تونستم یه جواب شدنی برای مسئله پیدا کنم. حالا این جواب شدنی ممکنه بهینه باشه یا نباشه. شما optcr,optca رو مساوی صفر بگیرین و مجددا ران کنین. احتمالا جواب نهایی براتون به دست میاره
خیلی ممنون، درست شد. فقط اگه ممکنه میشه در مورد optcr,optca یه توضیح مختصر بدید؟؟
زیاد در موردش صحبت کردیم تو سایت. جستجو بزنین تو سایت.
این دو میان گپ gap رو صفر میکنن. و کاری میکنن که جواب نهایی ای که گمز به دست میاره دقیق و بهینه باشه.
ببخشید وقت شما رو هم می گیرم. solver status و model status تو کدوم قسمت هستن. من هرچی گشتم نتونستم پیدا کنم
تو فایل lst بخش summary report
سلام و وقت بخیر دوباره،
من با سالورای دیگه امتحان کردم همون بهینه محلی و میدن.
مثلا با سالور conopt:
optimal solution. Reduced gradient less than tolerance
(مقدار تابع هدفم روی مقدار 100585 باقی می مونه و تغییری نمی کنه)
به نظر شما من چیکارش کنم؟
ممکنه مشکل از مقادیر اولیه ام باشه؟
یا توی نوشتن مدل اشتباه داشته باشم؟
یا برای اینکه جواب سراسری نداده قسمت های غیرخطی رو باید خطی کنم؟
یا با الگوریتم های هوشمند بنویسم بهتره و ممکنه جواب سراسری بدن؟
ببخشید سوالام زیاد شدن
ممنون
سلام
شما اول مطمئن بشین که جواب محلی هست یا خیر. لیندو و بارون و ماینس رو هم استفاده کنین. عملکرد نسبتا خوبی دارن.
جواب اولیه خیلی متونه بهتون کمک کنه قطعا.
در مورد اشتباه در مدل نمیتونم نظری بدم.
اگه میتونین خطی کنین، که باید خطی کنین. و اصلا روش فکر نکنین.
فعلا اینا رو انجام بدین تا بعد.
و لطفا فقط به این بحث ریپلای کنین، الان اگه دقت کنین بحث تکه تکه شده و کسی که بعدا بیاد از گفتگو استفاده کنه گیج میشه. تشکر
ممنون، چشم
سلام
ببخشید از کجا باید بدونیم که جواب بدست اومده محلی هستش یا سراسری؟
سلام
شما باید solver status و model status رو چک کنین. برای اینکه بدونین اینا چی هستن، اینجا رو بازدید کنین.
سلام خسته نباشید، وقتتون بخیر
مسئله بهینه سازی minlp یا nlp (با متغییرهای زیاد)جواب بهینه محلی بده قابل قبوله؟
سلام
خیر. اگه محلی بده نمیشه مطمئن بود که جواب بهینه هست یا نه. و ممکنه خیلی با جواب اصلی تفاوت داشته باشه. با سالورای مختلف تست کنین، شاید بقیه تونستن بهینه سراسری بدست بیارن.
سلام
من تو کدی که نوشتم سه تا متغیر باینری تعریف کردم ولی وقتی ران میگیرم بصورت 0.3و 0.7 و 0.4و… نشون میده.اگه ممکنه کمکم کنید.در ضمن مساله رو با rminlp حل کردم.
سلام
rminlp یعنی متغیرهای عدد صحیح و صفر و یک من رو آزادشون کن! پس گمزم میره همین کارو میکنه. پس تایپ رو بذارین minlp .
اخه وقتی رو minlp میذارم جواب کلا صفر میده و فقط با rminlp جواب میده. به نظرتون ایراد از کجا میتونه باشه؟
تو این حالت، یا مسئله کلا نشدنیه که دلیلش ساختار مدل، و یا داده های ورودی و کد نویسی هست. که باید چک کنین دلیل از چیه. یا اینکه شدنیه، ولی سالورها نمیتونن حل کنن. سالورای مختلف رو تست کنین و اگه سایز مسئله شما بزرگه، کوچیکش کنین و مجددا تست کنین. تازه اول کارتون هست.
سلام.با تشکر از مطالب مفیدی که میذارید. تا الان که خیلی ازش استفاده کردم. چند تا سئوال داشتم ممنون میشم اگر فرصت داشتید پاسخ بدید
۱. یه جایی گفتید که میشه به گمز جواب اولیه داد.میشه بیشتر توضیح بدید و اگر اندازه مسئله بزرگ باشه چطور میشه جواب اولیه رو بهش داد؟
۲. اگر مسئله جواب چندگانه داشته باشه چطور میشه همه اش رو دید؟ آیا در خلال حل و ارائه جواب نهایی باقی رو هم داره محاسبه می کنه؟ و در صورتی که بخواهیم گمز جوابی رو بده که کمترین استفاده از منابع (مقادیر سمت راست محدودیت ها) رو کرده باشه راهکاری وجود داره؟
۳. یه جایی تو گروهتون گفتید که گمز یه مقدار اولیه تخمینی پیدا میکنه و اون رو برای اعلام مقدار گپ ها استفاده میکنه.میشه در این خصوص هم بیشتر توضیح بدید. چطور میشه اون جواب رو مثلا در یک مسئله تخصیص دید؟
با تشکر فراوان
سلام
خدا روشکر که براتون مفید بوده.
1- جواب اولیه دادن به یه مسئله مقداری بحثش طولانی هست. برای مسائل کوچیک که قابل درک هستن برای ما، با توجه به شناختی که نسبت به ساختار مدل و داده ها داریم ما میتونیم جواب اولیه به مدل بدیم. مثلا ما تو مسئله ی فروشنده دوره گرد، به گمز میگیم که من حس میکنم جستجو رو از فلان نقطه شروع کنی و بعدش بری فلان جا احتمالا جواب خوبی به دست میاد. اینم حرفتو در نظر میگیره و میره طبق الگوریتمایی که تعریف شده براش حل مدل رو شروع و ادامه میده. ممکنه اصلا جواب اولیه شما رو هم براش ارزشی قائل نشه، ولی به هر حال بررسیش میکنه. مثلا یه متغیر داریم به اسم x، حالا قبل از دستور solve به گمز میگیم x.l=5; یعنی جناب گمز سعی کن حل رو از این نقطه شروع کنی. چرا؟ چون ما فکر میکنیم این نقطه برای ما نزدیک به بهینه هست. اونم میاد در نظر میگیره و اگه جواب خوبی باشه، سرعت حل مدل رو بسته به جواب و ساختار مدل بهتر میکنه و زودتر به جواب میرسه. برای مدلای غیر خطی زیاد پیش میاد که سالور نتونه حل کنه مدل رو. پس بد نیست حس خودمون رو به عنوان جواب بهش بدیم شاید به دردش خورد. سایزای بزرگ هم همین قانون رو دارن. ممکنه اصلا شما جواب اولیه ای هم به نظرتون نرسه.
2- جواب چندگانه رو گمز نشون نمیده. میتونین یه بار مدل رو حل کنین، بعد تابع هدف رو فیکس کنین یا ببرین تو محدودیت و با یه سری حرکت دیگه یه چند تا جواب دیگه هم براش پیدا کنین. خودش اینکار رو نمیکنه. برا سوال دومتون اینکه این حالت رو میخواین با تابع هدف اولا نباید تناقض داشته باشه ثانیا اگه اینجوریه خب اون مقادیر رو بذارین تو تابع هدف (مثلا x<2 آنگاه x+s=2 حال تابع هدف میشه max s).
3- جواب اولیه الگوریتماش پیچیده ست. ولی تو یه سالور مثل CPLEX کلیات کار اینجوری هست که سعی میکنه برای مسئله یه دوگان تعریف کنه و اون رو حل کنه و یه جواب اولیه براش بدست بیاره. (دوگان رو مطالعه کنین) بعد این جواب رو با جواب تابع هدف مقایسه میکنه. شما برای مسئله تخصیص شما، میتونین مقادیری که تو Process Window یا همون پنجره Log تحت عنوان Dual Objective مطرح میشه رو نگاه کنین و این میشه همون مقدار دوگان (که احتمالا هر بار گمز میاد جوابه رو بهتر میکنه)
ببخشید بابت جمله سازی. مقداری خسته م و هر چی تو ذهنم اومد نوشتم.
Functions with discontinuous derivatives are illegal
In nlp models. use “dnlp”
باز هم این ارور رو میاره
خب تایپ مدل رو بزنین dnlp
سلام. من میخوام مینیمم یک تابع چند متغیره با گمز بدست بیارم. اما میگه تابع با سالورای مربوط به NLP حل نمیشه. ممنون میشم راهنمایی کنید…
سلام
قبل از دستور solve عبارت زیر رو اضافه کنین. میتونین به جای baron از lindo یا Minos یا هر سالور غیر خطی دیگه ای استفاده کنین. لایسنس هم نصب کنین. تو سایت گذاشتیم.
سلام ضمن تشکر من مدلم minlp هستش میشه با cplex حل کرد؟
سلام
خیر. فقط در صورتی میشه که مدل شما lp,mip و یا MIQCP باشه.
این مقدار رو زده
پس ظاهرا بدون مشکل مسئله حل شده و گمز اعلام کرده که جواب بهینه هست. دقت کنین که جواب نرم افزارها الزاما یکی نیست. جوابی که ارائه شده تو دو نرم افزار تقریبا برابر هست. اینکه لینگو گفته لوکال دلیلش اینه که نتونسته ثابت کنه که گلوبال هست. به همین جواب گمز میشه اعتماد کرد. لینگو هم همینطور. خواستین با سالورای دیگه هم تست کنین تو گمز. ولی اوکیه جواب
خیلییئیییییی ممنون
داشتن این مقدار گپ برای مدلهای غیر خطی طبیعیه ؟
یا اینکه حتمن باید جواب بهینه رو بدست آورد؟
متشکر
سلام
کدوم مقدار گپ؟
ببخشید سوالم کامل نیومده بود.
من یه مدل غیر خطی دارم که با گمز و سالورهای بارون وگلوبال لیندو ران کردم.جوابم یه مقدار گپ نشون میده
میشه از این مقدار گپ چشم پوشی کرد و گفت همون جواب گلوبال رو پیدا کرده؟توی قسمت
اینو نوشته.
البته وقتی همین مدل رو با نرم افزار لینگو(میگن لینگو برای حل غیر خطی دقیق تره) ران کردم میگه بهینه محلی 382615.6 با
بدست میاد.
با این توضیحات بنظر شما کدوم ران جواب بهینه گلوبال رو بمن میده ؟ لینگو یا گمز؟
متشکرم و شرمنده توضیحاتم طولانی شد.میخاستم جواب مطمعنی دریافت کنم .ممنونم
سلام
solver status چند شده؟
مدل تصادفی ما برنامه ریزی مختلط عدد صحیح هستش.
با سالور سیپلکس قابلیت حل داره؟
سلام
سیپلکس مختص همین مدلهای mip هست. بله. البته نباید سایز مدل خیلی بزرگ بشه.
سلام ، خسته نباشید
میخواستم بپرسم مدل های برنامه ریزی تصادفی را می شود با نرم ازار گمز حل کرد؟
اگر بله با کدام حل کننده؟
سلام
بله. بسته به نوع مسئله سالورای مختلف میتونن حل کنن. هر نوع مدلی با حداقل یه سالور قابل حل هستن.
ببخشید میشه توضیحاتی در مورد options یک solver بدید؟ چون میشه تغییراتی در روش حل و نقطه انتدایی و خیلی چیزهای دیگه داد
سلام
تو کانال مقداری در مورد بهتر کردن جواب اولیه صحبت شده. تو کامنت های مختلف هم همینطور. سرچ کنین احتمالا می بینید.
برای استفاده از آپشن ها باید اول در مورد اون سالور مطالعه کنین، بعد از آپشناش استفاده کنین. فعلا مطالعه کنین تا بعد. کافیه سرچ بزنین gams solvers یا solver manual
سلام
ببخشید میخوام مدلم دقیقا از روش سیمپلکس مساله خطیمو حل کنه. از چه سالوری استفاده کنم؟
سلام
فکر نمیکنم همچین سالوری تو گمز باشه. حداقل من باهاش برخورد نکردم. اگه پیداش کردین لطفا به ما هم بگین که بدونم. مرسی
به عنوان یه روش، میتونین خود الگوریتم سیمپلکس رو کد کنین و جواب بگیرین.
وقتی جواب بی کران میشه مشکل از کجای مدله؟
تقریبا تو دنیای واقعی جواب بی نهایت نداریم. مشکل میتونه از مدلسازی، کد نویسی، سالور و… باشه.
سلام مهندس محمودی
یه مدل MIP دارم که Cplex حلش کردم. ابعاد مسئله هم زیاد نیست. 27 گره دارم.
ران که می گیرم solver status: terminated by solver بهم میده.
چند خط پایین تر هم خطای out of memory برای cplex اعلام می کنه.!!
ایراد کار کجاست بنظرتون؟ ابعاد کسئله که زیاد نیست!
سلام
ببخشید بابت تاخیر در پاسخگویی. دیدگاه شما رو روباتای سایت برده بودن قسمت جفنگ سایت.
این خطایی که گفتین ما یه تاپیک براش گذاشتیم تو سایت. فک کنم براتون مفید باشه.
رفع خطای 1001 cplex
مقادیر marginal در خروجی نرم افزار چگونه به دست می آیند؟
سلام
مقادیر دوگان مربوط به متغیر یا محدودیت هست. به یاد داشته باشید که “مقدار مارجینال برای یه متغیر برابر است با مقدار اسلک محدودیت نظیر آن متغیر”.
سلام اقای محمودی خوب هستید؟
من مطالب سایت شما رو دیدم و استفاده کردم
یک سوالی داشتم که نتونستم با سرچ پیدا کنم لذا از شما گفتم بپرسم
من دارم روی پخش بار بهینه کار میکنم
توی پایان نامه ام زیر به ریز بهینه سازی رو هم باید بیارم
سوالم اینه:
در بهینه سازی کلاسیک روش های مختلفی مثل نیوتن سیمپلکس و نقطه میانی و … وجود داره
ما در استفاده از سالور هامون در گمز با توجه به نوع مدلمون که میتونه خطی یا غیر خطی و یا … باشه سالور رو انتخاب میکنیم اما روش ای که هر سالور برای رسیدن به جواب استفاده میکنه چیه؟
مثلا از کجا میشه فهمید سالور MINOS از کدوم روش برای حل استفاده میکنه نیوتن نقطه میانی و و …؟؟
سوال دیگه بنده نحوه ی بدست اوردن ضرایب لاگرانژ در گمز هست در صورتی که ما با روش لاگرانژ مسئله رو حل کنیم ضرایب لاگرانژ رو داریم چجور میشه که نرم افزار این حساسیت ها رو به ما میده در صورتی که قطعا با لاگرانژ مسئله رو حل نمیکنه؟!
ممنون میشم پاسخ بدین و یا راهنمایی فرمائید
سلام
مچکرم مهندس عزیز.
سوال اولتون: هر سالوری ویژگی ها، الگوریتم ها، رویکردها و متدهای مختلفی برای رسیدن به جواب داره. برای اینکه ببینید هر سالور چجوری داره مسئله رو حل میکنه باید برید قشنگ الگوریتم مربطو به هر کدوم رو مطالعه کنین که کار ریز و تخصصی هست، مثلا همین سالوری که فرمودین ممکنه از چند تا الگوریتم ترکیبی مختلف استفاده کنه.
سوال دوم رو متوجه نشدم.
با سلام
هر وقت گزینه ی run رو میزنم این پیغام میده
the file you want to run is not in the current process directory ;start the run any way
بعد کل جواب مسئله را صفر میده
ممنون میشم منو راهنمایی کنید این مسئله رو برای پروژه ام میخوام ضروریه بازم ممنون
اینکه این پیغام رو میده به خاطر اینه که شما یه دایرکتوری ایجاد نکردین تو اون پوشه تون. اگه تو دایرکتوری ران کنین این پیامو نمیده. دایرکتوری دیفالت گمز اینه: documents/gamsdir/projdir
صفر شدنش میتونه به دلیل نبود لایسنس یا نشدنی بودن یا مشکلات دیگه باشه.
با سلام
من یه مسئله ی MINLP دارم که با هر SOLVER حل میکنم جواب صفر به من میده و من مطمئنم درست مدل کردم لطفا منو راهنمایی کنید
سلام
لایسنس دارین؟ (اینجا رو بخونین حتما)
همه یه جورایی مطمئنن که مدلشون درسته. اگه شک داشته باشن که ارائه ش نمیدن.
مدل، داده ها، لایسنس و کدی که نوشتین رو چک بفرمایین
لایسنس رو که از همین سایت گرفتم مدل وداده ها رو چند بار چک کردم حتی کران بالا و پایین یک متغیر رو مثل هم گذاشتم ولی هر وقت اجرا میکنه به اون متغیر هم جواب صفر میده یعنی کلا جواب صفره
با این اوصاف ظاهرا مدل شما نشدنیه. process window رو ببینید. ببینید model status چی گفته. احتمالا گفته که نشدنیه. اگه اینو نگفته که کد رو بفرستین به ایمیل سایت که ببینیم چیه مشکل
با سلام
در مدلی که دارم لازمهpreindرو مقدار صفر دهم.اما نمیدونم کجاست!!!لطفا راهنماییم کنین
باتشکر
سلام
این کد رو بین دستور model و دستور solve قرار بدین:
$onecho > cplex.opt
preind 0
$offecho
Your_mode_name.optfile=1;
که در خط اخر باید به جای modelname اسم مدل خودتون رو بنویسین که با دستور model تعریفش کردین.
مینویسه جواب بهینه است
پس مشکلی نیست. از لحاظ نرم افزاری. جوابی که برای متغیرها داده رو باید بخونین و تجزیه و تحلیل کنین.
ببخشید پی به اشتباهم بردم.
یه سوال دیگه داشتم.
من از لایسنسی استفاده میکنم که سالور مورد نظرمو full نشون میده.
ولی موقع اجرای برنامه ابتدای کار مینویسه above license is invalid
آیا به مقادیری که بعد از اجرا بهم میده اعتماد کنم؟؟؟!!!! یا لایسنس مشکل داره؟؟؟؟
سلام
اینکه همچین اروری بده، احتمالا خروجی خواصی هم به شما نمیده. بخش دانلود نرم افزار رو بخونین که قشنگ متوجه بشین باید چیکار کنین.
خروجی میده ولی مورد قبول من نیست. بخش دانلود نرم افزار رو خوندم. کمکی نکرده
ضمنا این ارور مشکلی توی اجرا ایجاد نمیکنه. فقط همون اول نشون میده و اجرا ادامه پیدا میکنه
تو solver status چی نوشته؟
سلام
ببخشید برنامه من مقدار تابع هدف را برای J /1*2/ با وقتی کهJ /1*5/ متفاوت میده.
یعنی مثلا واحد 1 وقتی تعداد واحدها بیشتر میشه تغییر میکنه. در صورتی که نباید تغییر کنه. چون ارتباطی وجود نداره بین واحدها. فقط در هر بار اجرای برنامه تعداد واحدهای تحت ارزیابی تغییر میکنه
تورو خدا کمکم کنید
راستی مدلم غیرخطیه و
option NLP=IPOPT;
F11222.iterlim = 1000;
سلام
سوالتون اصلا واضح نیست. خیلی شفاف توضیح بدین چشم.
با سلام و عرض ادب
ببخشيد من يك مسئله minlp دارم كه با solver sbb حل ميكنم مينويسه terminated by solver وقتي با baron يا dicopt هم حل ميكنم فقط ساعت ها فقط تعداد تكرارش اضافه ميشه خيلي طول ميكشه نمي دونم چيكارش كنم ممنون ميشم راهنمايي كنين.
سلام
sbb ظاهرا نمیتونه مسئله رو با اون فانکشن هایی که تعریف کردین حل کنه. برای بارون و دیکاپت هم ظاهرا وقت گیره. چاره ای ندارن خب مسئله شما وقت گیر هست ظاهرا. باید صبر کنین. از لیندو هم استفاده کنین. خیلی سالور قوی ای هست.
خيلي ممنونم از راهنماييتون اجراش خيلي بيشتر از دوازده ساعت ميشه
خواهش میکنم. خب پس به صرفه نیست دقیق حلش کنین. یه محدودیت زمانی بزنین، مثلا 5000 ثانیه بعد هر جوابی که به دست اومد رو گزارش کنین و بگین که با این محدودیت زمانی بوده. و تو سایزای پایین هم تست کنین مدل رو.
معمولا تو این مواقع فراابتکاری میزنن.
سلام. خسته نباشید. مدل من غیر خطی است . برای دستور solve آن
solve elec using MIP Minimizing Cobj
نوشتم. خطای 257 میده. علتش چیه؟
از راهنماییتون سپاسگزارم
سلام
چون غیر خطی هست، اینا رو امتحان کنین MINLP, NLP, DNLP
سلام خسته نباشید راه اول که فرمودید برای پیدا کردن سالور و در نهایت نوشتن اون هست؟ینی در هر صورت باید دستور optionنوشته شود؟این کار رو خود نرم افزار با توجه به مدلی که نوشتیم انجام نمیده که خودش تشخیص بده و از سالور مناسب استفاده کنه؟
سلام
چرا خودش یه سری دیفالت داره. تو تنظیمات میتونین ببینین.
ولی همیشه تشخیصش درست نیست. پس بهتره که با توجه به شناختی که از مدلتون دارین سالور رو براش تنظیم کنین.
سلام ممنون بابت سایت خوبتون. مدل من minlp هستش با سالور baron هم حل کردم ولی این اخطار وو میده:
The symbol shown has not been defined or assigned
A wild shot: You may have spurious commas in the explanatory
text of a declaration. Check symbol reference list.
دلیل اخطار چیه؟
از پاسخگوییتون کمال تشکر رو دارم.
سلام
دقت کنین که همه ی پارامترهای شما عدد گرفته باشن. پارامتر، اسکالر، مجموعه و جدول، همه باید عدد گرفته باشن و نه فقط تعریف شده باشن و بدون عدد گذاری. هر اسمی هم تو بخش equation اگه بیاد و تو دستور model هم استفاده بشه ازش باید فرمولش رو هم نوشته باشین.
توان یک جواب گرفتم.
در این قسمت هیچ عکسی را نمی توان بارگذاری کرد . با ایمیل بفرستم
ارسال کنید.
با سلام، ببخشید میخوام تو گمز پارامتر minimum uptime (مدت زمانی که یک واحد پس از روشن شدن، باید روشن بماند) و minimum downtime (مدت زمانی که یک واحد پس از خاموش شدن، باید خاموش بماند) رو داخل مدلم، پیاده سازی کنم، مدل مربوط به درس بازار برق هست و تو بازه زمانی ۲۴ ساعت، روشن یا خاموش بودن واحدها رو مشخص میکنه تا ماکزیمم توان رو داشته باشم، ممنون میشم اگه راهنمایی کنید. با تشکر
تا این حد هم کد رو نوشتم و میخوام از روش 3binary Variable Formulation حل بشه.
.
.
.
سلام
مهندس این صحیح نیت که همه کدتون رو بذارین اینجا که. سوال رو بپرسین در خدمیتم دیگه این همه کد چرا اخه.
شما باید طبق فرمول ریاضی که بهتون گفته شده پیش برین
ببخشید، من نمیدونستم. چطوری باید از روش ۳binary Variable Formulation استفاده کرد؟ در کل مقادیر باینری در چه قسمتی و چطور باید تعریف شوند؟ ممنون
این 3 قبل متن چیه؟
میشه برنامه ریزی صفر و یک. شما اگه بهتون اینو گفتن که باید برنامه ریزی صفر و یک استفاده کنین. اون 3 احتمالا سرفصلی چیزیه
واقعا پاسختون جامع و کامل بود .ممنون
دیگه ببخشید سوال کلی رو نمیشه خوب جواب داد
با سلام
من یک مدلی رو برای کد کردنبه ایمیلتون فرستادم میشه لطفا بررسی کنید
مدلم حالتی کل تا بع هدف به توان دو می رسد و غیر خطی minlp می شود با سالور baron حل می کنم جواب نمیده، لایسنس ها را از سایت شما دانلود کردم نصب کردم
سلام
بدون توان چی میگه؟
ده خط آخر لاگ رو بذارین اینجا لطفا.
سلام. خسته نباشید. من یک مدل تصادفی دارم که به قطعی غیر خطی غیر محدب تبدیلش کردم. میخوام بدونم از کدوم حل کننده استفاده کنم و چه تعییراتی در آپشنش بدم؟ ممنون میشم کمکم کنید
سلام
شما بهتره مدلهایی که شبیه کار شماست رو یه مروری بکنین، ببینید با کدوم سالور ها معمولا حل شده.
ولی در حالت کلی، لیندو و بارون سالورهای قوی هستن. بازم عرض میکنم که برای هر مدلی سالورای مختلف میتونن موفق عمل کنن و قانون خاصی وجود نداره. امتحان کنین همه رو.
میشه مثلا برای solver ای مثل NLP=IPOPT نقطه شروع الگوریتم را تغییر داد تا مدل شدنی بشه؟
لطفا بفرمایید چطور نقطه شروع را تغییر دهم
از baron استفاده میکنم مدل شدنی میشه و جواب شدنی میده. ولی از ipopt استفاده میکنم جواب نمیده. lindo هم همش حالت دمو هست. چطور ازش استفاده کنم؟؟؟؟
برای استفاده از لیندو بخش دانلود و نصب نرم افزار رو بخونین حتما. لایسنس مناسبی براش گذاشتیم
سلام
یه جواب آغازین تو همه ی سالورها ممکنه مفید باشه.
مثلا شما حدس میزنین که جواب x حدود 43 میشه. قبل از دستور solve شما میتونین بنویسین x.l=43 و این یه جواب آغازی برای سالور محسوب میشه.
سلام و خسته نباشید. برای حل مدل دو هدفه باید چه کرد؟
سلام
باید یه روش مث وزنی، لکسیکو ، اپسیلون و… رو انتخاب کرد و طبق رویه ای که معرفی میکنه، کد رو پیاده سازی کنید.
با سلام.
من یک مدل غیر خطی وسیع با چند تابع هدف در گمز نوشتم که با سالور conopt حل میشه و با سالور های دیگه متاسفانه حل نمیشه. میخواستم بدونم پاسخ های بهینه در روشهای مختلف تفاوت زیادی داره؟
ضمنا از کجا میتونم اطلاعاتی در مورد سالور conopt و نحوه عملکرد اون بدست بیارم؟
سلام
اینکه با سالورای دیگه حل نمیشه رو بهتره دقیق تر بررسی کنین. اولا مطمئن شین که لایسنستون مناسب هست. تو سایت هست.
لایسنس مناسب برای گمز
بعدش اینکه بله ممکنه متفاوت باشه. وقتی مدلتون غیر خطی باشه، هر کدوم از سالورها از الگوریتم ها و رویه های مخصوص به خودشون میرن جواب رو پیدا کنن. ممکنه جواب همشون یکی نشه. بهتره بیشتر از ساختار تحدب و تعقر مدلتون شناخت داشته باشین. در مورد non-convex programming مطالعه کنین. نکته ی دیگه اینکه تا جایی که میتونین مدل رو خطی کنین.
برای اطلاعات در مورد سالور سایت خود گمز مناسب هست.
سایت گمز
سلام
مدل بنده یک مدل MIP هست ولی میخوام توابع هدف رو با روش تئوری مطلوبیت جمع کنم و چون مینیمم سازی هست زمانی که استار ها رو بر توابع هدف تقسیم میکنم پیغام میده که در مدلهای خطی ممکن نیست و وقتی از سولورهای MINLP هم استفاده میکنم بدون اینکه ارور بده هیچ جوابی هم ارائه نمیده. ممنون میشم اگه راهنمایی کنید که بهتره چیکار کنم
سلام
احتمالا یه ارور آبی تقسیم برصفر داده، یا اینکه لایسنس ندارین، چک کنین حتما
سلام
احتمالا یا حل نشده، و لاینسنس ندارین یا اینکه ارور آبی از خانواده تقسیم بر صفر دارین.
باسلام
مدلی MIP را با سالور CPLEX در نسخه 24.7.3 گمز حل کردم. با فرض اینکه مسئله ماکزیمم سازی و مشروط بر یکسری محدودیت ها است، یک جواب نهایی مثلاً عدد 100 گزارش شد که GAP آن هم صفر بود (در کد option optcr=0 لحاظ شده بود)، اما خروجی به نظر غیرمنطقی می رسید. لذا مدل را مجددا حل کردم و این بار محدودیتی اضافه کردم که میزان تابع هدف بیش از فرضا 100.5 باشد. با توجه به اینکه مقدار بهینه در گام اول 100 بود مسئله باید غیرموجه می شد چون قاعدتاً جواب بهتری با گپ صفر نمی توانست وجود داشته باشد. اما جالب بود که پس از حل جوابی بهتر از گام اول داد مثلاً 106. این جواب معقول تر بود ولی باز هم به نظر بهینه نبود لذا مجددا مدل را حل کردم ولی این بار با این شرط که جواب از 106.5 بیشتر باشد. بعد از حل مجدد جواب بهتری گزارش شد مثلاً 108. مجدد مسئله را حل کردم مشروط بر اینکه میزان تابع هدف از 108.1 بیشتر باشد که این بار جواب غیرموجه گزارش شد و این یعنی همان 108 بهترین جواب ممکن بوده است. این نشان می دهد که حتی اگر گمز با سالور CPLEX گپ صفر هم گزارش دهد ممکن است جواب نهایی اصلاً بهینه نباشد و حتی فاصله ی زیادی با جواب بهینه داشته باشد. با سالور Gurobi هم همین مثال را حل کردم و جالب اینکه در این سالور هم همین تکرار برای برخی مسائل لازم بود. علت این اتفاق چیست؟
سلام
مسئله شما ماکزیمم سازی بود؟ مقادیری که برای متغیرهای گسسته شما به دست اومده چجوری هستن؟ کامل گسسته هستن؟
از option های دیگه ای هم استفاده کردین توی کد؟ زمان حل چقدر هست؟ لطفا اینا رو چواب بدین، اگه چیزی به ذخنم رسید خدمتتون عرض میکنم. این اتفاقا بعضی وقتا پیش میاد
سلام یه سوال داشتم ممنون میشم کمک کنید.
بنده مدلم رو تو گمز كد كردم اما واسه بخش فازيش بايد همين مدل رو با مقادير متفاوتي از دو پارامتر ران بگيرم. به ازاي ٢٠ مسئله ران گرفتم. متوسط زمان اجراش حدودا ٤٥ دقيقه شد.
اما به طرز عجيبي براي ٤ تا از اين مسائل گمز تو حدود ٤ يا ٥ دقيقه جواب ميده اونم با اختلاف زيادي بزرگتر از جواباي ديگه(تابع هدف هزينه) و با گپ صفر كه غلطه جوابش. سالورم هم سيپلكسه. بعد از اون يه محدوديت به مدل اضافه كردم كه مثلا مقدار تابع هدف كوچكتر مساوي آخرین جوابی که با گپ صفر داده بشه كه بعد از اجرا جواب بهتري از اون داد!! تصميم گرفتم سالورو عوض كنم و از سالور gurobi استفاده كردم كه وقتي با اين سالور ران گرفتم همون جوابي رو داد كه بعد از اضافه كردن اون محدوديت و ران گرفتن بهش رسيدم. حالا نمي دونم كه اين سالور تا چه اندازه جواب درستي ميده. ممکنه راهنمایی کنید؟
بعد از اون هم نسخه ی گمز رو عوض کردم و جوابی بهتر از جواب های قبل داد. اینکه جواب بهینه ی گلوبال از نسخه ای به نسخه ی دیگه تغییر کرده علتش چه چیزی میتونه باشه؟
ممنونم
سلام
اینکه نسخه ها ممکنه جواب متغاوتی داشته باشند بله ممکنه و این اشکال اصلی گمزه، معمولا بهتره با نسخه 23.3.3 و 24.5.6 و 24.7.3 جوابا رو با هم مقایسه کنین.
اینکه هدف مقدار بزرگی بگیره به خاطر اینه که جواب بی نهایت شده با توجه به این داده ها! اگه مدل غیرخطی صحیحه که از لیندو استفاده کنین، اگه خطی صحیحه از سیپلکس.
اینم تو خاطرتون باشه که اگه جواب بی نهایت داشته باشین یعنی یا مدل غلطه یا داده ها. تو دنیای واقعی بی نهایت نداریم.
سلام. از سایتتون که بارها کمکم کرده متشکرم. ممکنه این سوال من رو جواب بدید؟
یک مساله خیلی بزرگ رو با سالور های مختلف مناسب ماهیت مساله (مثل baron, dicopt , lindo ) می خوام حل کنم ولی نمی تونن و بعد از چند ساعت یا پیام exit code 3 می اد یا می گه حافظه کافی وجود ندارد (enough memory … ). چه باید بکنم؟ امکان ساده سازی مدل هم وجود ندارد.
سلام. یک راهش استفاده از الگوریتم های فراابتکاری هست. همان گونه که می دانید گمز توانایی حل مسائل متوسط و بزرگ را نداره
با سلام
سوال 1)
آیا در گمز میتوان چند خروجی متفاوت برای بهینه بودن گرفت؟
سوال 2)
آیا در گمز این امکان وجود دارد چند خروجی گرفت ؟
به عبارتی :
من در خروجی گمز اعداد 3-5-6-4 را گرفتم آیا میشود ده عدد چهار رقمی بمن بده و من تشخیص بدم کدام را میخواهم استفاده کنم؟
با تشکر
سلام
جواب بهینه منحصر به فرد است. پس چند تا جواب بهینه برای یک مدل و یک داده نداریم.
می تونید با یغییر داده ها جواب های بهینه بیشتری از مساله تون بگیرید.
یعنی چه جوری 10 تا عدد بهتون بده؟
خود نرم افزار تشخیص میده کدوم جواب بهتر است.
با سلام
آيا گمز در cplex از چند الگريتم استفاده ميكند و هر كدام زود تَر به جواب رسيد اون رو در نظر ميگيره؟؟؟
آيا ميشود از كد برنامه چند خروجي احتمالي گرفت؟
شما ميتوانيد اين كار را انجام بديد؟ منتظر جوابتون هستم؟؟؟؟
با تشكر
سلام سیمپلکس یک روش بهینه سازی هست . توضیحاتتون برای سایت بفرستید.
salam
agar 2 sets i , ii dashte basham ke hardo ba ham alias shode bashand angah baraye jame to tame ke vabaste be in do mibashand dar sorate nabarbari i , ii chegone bayad shart ra nevesht
سلام جمع چی ؟ نابرابری i و ii این جوریه
set
i/1*10/
alias(i,ii);
equation
eq;
eq(i,ii)$(ord(i) ne ord(ii))..
اگر درست فهمیده باشم این دستور می تونه کمکتون کنه . اگر سوالتون در مورد چیز دیگری بود درباره بپرسین.
با سلام
جناب محمودی ،بنده در گمز یک مسئله دارم که به صورت خطی می باشد و خروجی آن را با mip می گیرم چگونه میشود خروجی را بهصورت غیر خطی یامکمل خطی حل کرد
Obj.. Num_PMU=e=sum(j,u(j));
Observability(i).. f(i)=e=sum(j,a(i,j)*u(j)+a(i,j)*z(j)*y(i,j));
Observability_Con(i).. f(i)=g=1;
Zero_inj(j).. sum(i,a(i,j)*y(i,j))=g=z(j);
Zero_inj1(j).. sum(i,a(i,j)*y(i,j))=l=z(j);
*No_PMU_Zero(j).. z(j)*u(j)=e=0;
*Loss_measurment(i).. f(i)+sum(j,a(i,j)*y(i,j))=g=2;
*******************************************************
model Placement /all/;
solve Placement using mip minimizing Num_PMU;
با تشکر
سلام
زمانی که در مساله دو متغیر در هم ضرب یا تقسیم شوند مساله غیر خطی هست. یا اینگونه غیر خطی کنید یا اگر می خواین با سالور غیر خطی مدلتونو حل کنید به جای mip مدلتونو nlp کنید یا minlp . و قبل خط solver بنویسید : option minlp=baron; به جای بارون می تونید هر سالوری که دوست دارید بنویسید.
با سلام
جناب رمضانی این کار را انجام دادم اما برای minlp فقط جواب داد وبرای غیر خطی جواب نمیده ؟
من میخواهم برای nlp هم جواب بده ،چیکار کنم؟
با تشکر
خوب این برای این هست که در مدلتون متغیر integer دارین (احتمالا متغیر باینری ) . باید اونو از بین ببرین تا بتونین از nlp استفاده کنین.
من چطوری میتونم انواع سالورها وکارایشون رو بدونم
سلام
نوار ابزار نرم افزار -> help -> solver manual
سلام آقای محمودی. ببخشید مزاحم شدم. من یک مساله minlp دارم و اون رو با LGO حل میکنم. چون تنها با این سالور جواب feasible میگیرم.
منتها مشکل اینجاست که MaxInf و SumInf یک اعداد کوچک مثلا 1 هستند. ولی به قیود که نگاه میکم میبینم در هرکدام Infeasibility حداقل برابر 1.5 است.
ثانیا در تکرارهای قبل مقادیر MaxInf و SumInf خیلی کوچک و در حد e-5 هستند ولی جواب در آنها متوقف نمیشود و در مقادیر بالاتر متوقف میشود.
ممنون اگه جواب رو زود بفرستید.
سلام
سالور baron و یا lindo رو امتحان کنین. تو سایت هست، نسخه های مختلف رو گذاشتیم. شما برای استفاده از lindo باید نسخه ی 24.7.3 رو دانلود کنین. ولی بارون معمولا با نسخه ی 23 خوب جواب میده. از sbb هم غافل نشید.
یک دنیا ممنون از لطفتون
سلام و خسته نباشید
ببخشید می خواستم بدونم آپشن epint رو چجوری میشه تغییر داد؟من تغییراتش رو در قسمت utilities>>option editor اعمال کردم سیوشم کردم و تو خود کد دستور option EpInt=0.01;رو میذارم ولی ارور 250 رو میده میشه بفرمایید مشکل کجاست؟
ممنون از لطفتون
سلام
فایل opt بهتون داد؟ ذخیره ش کردین؟ فراخوانیش کردین؟
سلام
بله یک فایل به اسم cplex.opt ذخیره شد. چجوری باید فراخوانیش کنم؟
YourModelName.optfile=1;
اینو بین دستور model و solve بنویسین. YourModelName هم که اسم مدلتونه
سلام خسته نباشید:
من توی پیغام ها دیدم بچه هایی که مدلشونMINLP هستش و گمز جوابها غیر منطقی داده(اینتیجر نداده) بهشون فرمودید که “اگه جواب شدنی داشته باشه مدل شما و دستور زیر رو وارد کنین قبل از دستور solve و سالور مناسبی مث baron رو انتخاب کنین. بله بهینه هست. شرط توقف زمانی هم یادتون نره
option optcr=0”
اما چرا ؟
این دستور مربوط به relative gap هستش.با تغییر این اپشن ما نمی تونیم مطمین بشیم که جواب بهینه محلی نیس.من با تغییر این اپشن متوجه شدم مدلها بسیار به این پارامتر و absolute gap حساس هستند.
ممنون میشم نظرتون رو راجع به کاربرد absolute gap وrelative gap بدونم
سپاس
سلام
بله بسیار حساس هستن. این دو گپی که فرمودین فقط تو فرمولشون با هم فرق دارن. از طرفی وقتی سالور جواب proven optimal که اعلام بکنه، و گپ رو هم صفر اعلام کنه این یعنی مدل دقیق حل شده، و ذیگه بهینه عمومی هست و بهینه محلی نیست، چون سالور میاد همه حالتهای متغیرها رو بررسی میکنه بعد اعلام میکنه بهترین رو.
سلام خسته نباشید میگم بابت سایت خوبتون.
ببخشید امکانش هست یه لایسنس خوب برای فعال سازی cplex معرفی کنید.
سلام
ممنون از لطف شما.
لایسنسی که تو سایت گذاشتیم بد نیست. هر چند کامل هم نیست. نصبش کنین و تاریخ سیستمتون رو هم بذارین رو 2004
دانلود لایسنس نرم افزار گمز
با سلام
بعد از ران کردن در قسمت solver status پیام شماره ۶ میاد با این عنوان
Capability problems
برای رفع این حالت چکاری باید انجام داد؟
مدل minlp هست و سالور را بارون گذاشتم
اگر لطف کنید راهنمایی کنید ممنون میشم
با تشکر
سلام
احتمالا تابعی چیزی استفاده کردین که بارون باهاش خیلی خوب نمیتونه کار کنه. مثلا بارون مقداری با لگاریتم مشکل داره. سعی کنین از سالورای دیگه هم کمک بگیرین
با سلام.
در مدل تابع لگاریتم یا توابع دیگه نیست
تمام سالورهایی که minlp رو پوشش میدادن امتحان کردم یسریاشون پیغام Resource interrupt میدادن که با وجود اینکه زمان حل رو زیاد گذاشته بودم باز نهایت همون پیغام رو نشون میداد یسری ها هم پیغام Error system failure میدادند.
ممنون میشم راهنماییم کنید
با تشکر
زمان رو چقد گذاشتین. بالای چند هزار هم امتحان کردین؟
باسلام
با زمان ۳۶۰۰ ثانیه هم امتحان کردم باز پیام Resource Interrupt داد.
سلام
یه عکس از process window بگیرین و بفرستین به ایمیل سایت
سلام
دیدم.
زمان حل رو باید خیلی بیشتر کنین. ظاهرا گمز براتون به صرفه نیست. احتمالا خطی سازی بتونه بهتون کمک کنه. سایز کوچیکتر هم امتحان کنین
سلام.تو مدلی که من نوشتم خطای اندیس میده میخواستم ببینم اندیسهام اشتباه وارد شدن؟
(sum(i,v1k(i)*xk(i))+sum(f,w1k(f)*z1k(f)))-sum(r,u(r)*(yk(r)+dyk(r))+sum(f,w(f)*(z5k(f)+dz5k(f))))=g=0;
اینجا متغیرهایی که درکنارK نوشته شده اند، جزو پارامترهای مساله هستند و برای هرکدامشون یه حلقه تعریف شده است.
سلام
توی تعریف مجموعه و پارامترها دقت کنین. و ببینید هر پرانتز درست بسته شده یا نه.
sum(i,v1k(i)*xk(i))
+sum(f,w1k(f)*z1k(f))
-sum(r,u(r)*(yk(r)+dyk(r)))
+sum(f,w(f)*(z5k(f)+dz5k(f)))
=g=0;
اگه ارور داد میل کنید تا رفع کنم.
ممنون.خیلی لطف کردید.
سلام.برای حل برنامه ریزی غیر خطی 0و1 با دستور سالور baron حتما مسئله باید convex باشه؟
سلام
حل کننده ی بارون در اصل برای مثائل غیر محدب طراحی شده ولی همه چیو حل میکنه. خیلی گله
من هر جا که گیر کنم به بارون میگم کمک کنه. معمولا هم کمک میکنه
سلام. خسته نباشید. من یه مدل مکان یابی مسیریابی غیرخطی دارم که مدل به صورت MINLP هست. جوابی که گمز بهم میده جواب بهینه است؟ از کجا مطمئن شم جواب بهینه محلی نمیده و حتما جواب بهینه global بهم میده؟
سلام
اگه جواب شدنی داشته باشه مدل شما و دستور زیر رو وارد کنین قبل از دستور solve و سالور مناسبی مث baron رو انتخاب کنین. بله بهینه هست. شرط توقف زمانی هم یادتون نره
option optcr=0;
با گذاشتن شرط توقف زمانی ممکنه به جواب بهینه نرسه؟ ممکنه تو زمان بیشتری به جواب بهینه global برسه
یه سوال دیگه هم داشتم. گمز مدل 2 هدفه که توابع هدف رو جدا از هم بنویسیم حل میکنه یا باید از روش وزن دهی و اپسیلون حتما استفاده بشه؟
گمز فقط میاد دستوری که شما بهش میدین رو اجرا میکنه. اگه ما چند هدف داشته باشیم، میتونیم بهش بگیم با وزنی حل کن یا هر روش دیگه ای. اون خود به خود نمیاد حل کنه
شما باید زمان بالایی رو در نظر بگیرین. که کمبود وقت نیاره گمز. به جواب میرسه. از طرفی هم solver status هم چک کنین.
با سلام و خسته نباشید خدمت شما، می خواستم بدانم وقتی یک پرانتز به توان میرسد چگونه کد آن را باید نوشت؟ و وقتی علامت سیگما بروی مثلا s زیر مجموعه q است چگونه در گمز کد نویسی می شود.با تشکر
سلام
از دستور
power(A,B)
استفاده کن , A پایه و B توان هست یا اگه توان دو هست از دستورsqr(A)
یا اینکه A**B.و جواب سوال دوم در تعریف مجموعه ها بنویس
q/1*3/
s(q)/1,3/;
بعد هر موقع خواستی بگی عضو s باشه کافیه بگی
$S
سلام واقعا از راهنمایی های ارزنده یتان متشکرم.
خیلی ممنون
با سلام
من برای انجام برنامه ریزی تصادفی نیاز به حل کننده lindo دارم ولی تو هیچ کدوم از لایسنس هایی که دانلود کردم full نداره چطور می تونم این solver رو هم نصب کنم.
ممنون میشم این رو هم بگید که برای برنامه ریزی تصادفی غیر خطی چه سالورهای دیگه ای وجود داره؟
با تشکر از سایت بسیار مفیدتون
سلام
متاسفانه منم سراغش رو گرفتم. پیداش نکردم
ممنونم. لطف دارین
منظورم اینه که در حالتی که بصورت غیرخطی حل کردم، گمز بعد از 16 دقیقه جواب پیدا شده رو اعلام میکنه (یعنی از گمز نخواستم که بیشتر بگرده). یعنی در این حالت (حل غیرخطی) جواب دقیق نیست. حالا اگه بخوام خطیش کنم و دوباره حل کنم (البته اگه گمز بتونه، چون کلی محدودیت اضافه میشه) ممکنه جوابی که گمز پیدا میکنه بهتر باشه.
بله درسته
مرسی مرسی
سلام. تشکر ویژه از سایتتون و ممنون از این دقت و حوصله ای که بکار میگیرین تا سوالای مارو جواب بدین. من یه سوال دارم که به تجربه شما مربوط میشه:
آیا اگه مدلی رو
الف) به صورت غیرخطی و با سالورهای غیرخطی با گمز حل کنیم
ب) مدل را اول خطی کنیم و با سالورهای خطی حل کنیم،
جواب در این دو حالت متفاوت خواهد بود؟؟
مسأله من مسیریابی-مکانیابی هست.
خیلی خیلی ممنونم
سلام
ممنونم لطف دارین. در خدمتیم قربان.
به دو شرط جواب یکی میشن:
اول اینکه مدل رو صحیح خطی کرده باشین
دوم اینکه جواب هر دو مدل دقیق حل شده باشه. دقیق یعنی اینکه گپ صفر باشه.
آها متوجه شدم.
راستش من از شرط توقف زمانی استفاده کردم. پس اگه خطیش کنم و گمز با توجه به تعداد زیاد محدودیتها بتونه حلش کنه، بعد از خطی کردن احتمالا باید جواب بهتری بگیرم. درسته؟
شرط توقف گپ رو هم بذارین.
نه من عرض کردم جوابشون یکیه اگه دقیق باشه.
سلام خسته نباشید،ببخشید من وقتی کدم را ران میکنم ارور 66 را می دهد با این مضموم که سیمبل نشان داده شده تعریف نشده،در صورتی که متغیر مورد نظر جمع توابع هدف است که باید مینیمم شود و قبلا تحت عنوان متغیر تصمیم تعریف شده،لطفا مرا راهنمایی بفرمایید با تشکر
آخرین قسمت کد
model main /all/ ;
option MIP=Cplex ;
solve main using mip Minimizing zt ;
سلام
ارور رو دستور solve هست؟
شما مطمئن بشین که همه پارامترهایی (به طور کلی داده های ورودی) که تعریف کردین مقدار دهی شدن. نتیجه رو بگین در هر صورت.
موفق باشین
من همه رو چک کردم دوباره مطمئنم مشکلی ندارن داده ها چون تا قبل از زدن کد solve گمز ران میشد و اروری نداشت!بعله ارور را روی solve نشان می دهد!
بله ران میشه، ولی مقدار میخواد واسه داده هاتون تا بتونه جواب بگیره
سلام
میخواستم بدونم برای مدل های VRP (مسیریابی) کدام solver سریعتر بهم جواب میده؟ “مدل MIP هستش و یه مقدار زمان حل طولانی”
سلام
سالور cplex احتمالا بهتره.
خیلی ممنون،
توی یکی از کامنت ها گفته بودین از option توقف زمان و یا گپ استفاده کنن.
میتونم بپرسم کاربردش چیه و چطور استفاده میشه؟
خواهش میکنم.
این ها که فرمودین دو تا دستور هستن که هر کدوم معنی خواصی دارن.
option توقف زمانی برای مسائلی استفاده میشه که زمان حلشون بالاست. مثلا شما یه مدل دارین و دارین حلش میکنین. این مدل زمان بالایی میخواد واسه حلش. مثلا 10000 هزار ثانیه وقت میبره تا کامل حل بشه و خود گمز متوقف بشه. حالا شما می تونین با این option به گمز بفهمونین که “آقای گمز درسته واسه حل مدلم 10000 ثانیه وقت میخوای، ولی سر هزار ثانیه متوقف شو و بهترین جوابی که بهش رسیدی بهم نشون بده” . یه کاربرد دیگه این دستور اینه که شما نتیجه ای که گمز به دست آورده رو با نتیجه ای که الگوریتمای دیگه مث ژنتیک مقایسه کنین و تو یه جدول گذارش بدین.
option توقف گپ هم به گمز دستور میده که ” درسته واسه رسیدن به گپ صفر (گپ صفر یعنی جواب کامل) وقت بیشتری میخوای، ولی وقتی به گپ فلان رسیدی متوقف ش” یا مثلا بهش بگی که تا وقتی گپ صفر نشده متوقف نشو.
دیگه اینجوریا
علت اینکه یک لایسنس واحد در یک کامپیوتر solver baron را demo نمایش میدهد و در یک کامپیوتر دیگر full چیست؟ تاریخ را عقب میکشم اما باز هم درست نمی شود
سلام
این مشکل وقتی پیش میاد که نسخه ها یکی نباشن. البته 32 یا 64 بیت بودن ویندوز هم بعضاً تأثیر گذاره
خیلی ممنون از راهنماییتون
متاسفانه هیچ کدوم از لایسنسایی که نصب میکنم این دو تا سالور رو نداره و جلوشون زده Demo. تاریخ کامپیوتر هم 2004 زدم ولی باز هم جواب همینه.
**** SOLVER STATUS 7 Licensing Problems
**** MODEL STATUS 11 Licensing Problem
**** OBJECTIVE VALUE 0.0000
RESOURCE USAGE, LIMIT 0.000 1000.000
ITERATION COUNT, LIMIT 0 2000000000
EVALUATION ERRORS 0 0
*** No license found
*** To update your license, please contact your distributor.
*** Too many equations for global demo mode
*** Number of equations : 2284
*** Maximum allowed : 10
*** Too many variables for global demo mode
*** Number of variables : 1671
*** Maximum allowed : 10
No solution returned
سلام
لایسنس مناسب برا نسخه خودتون دانلود کنید، نرم افزار رو uninstall کنین و باز نصب کنین و لایسنس رو بزنین.
با سلام
خیلی ممنون از سایت مفیدتون
عذرمیخوام مزاحم وقتتون شدم یه سوال داشتم
من یه مدل MINLP دارم و با سالور BONMIN و سالورای دیگه که حل کردم. در قسمت خروجی به همه متغیرها و تابع هدفم جواب صفر میده. این خطاها رو هم داده.
امکانش هست راهنمایی کنید که مشکل از کجاست؟
با تشکر
**** SOLVER STATUS 13 System Failure
**** MODEL STATUS 13 Error No Solution
**** OBJECTIVE VALUE NA
RESOURCE USAGE, LIMIT NA 1000.000
ITERATION COUNT, LIMIT NA 2000000000
EVALUATION ERRORS NA 0
*** Failure calling solver: BONMIN (rc=1)
No solution returned
=C*** Failure calling solver: BONMIN (rc=1)
سلام
لطفا با baron و dicopt هم حل کنین و پیامش رو بذارین.
خیلی ممنون از راهنماییتون
متاسفانه هیچ کدوم از لایسنسایی که نصب میکنم این دو تا سالور رو نداره و جلوشون زده Demo. تاریخ کامپیوتر هم 2004 زدم ولی باز هم با هر دوش جواب همینه.
**** SOLVER STATUS 7 Licensing Problems
**** MODEL STATUS 11 Licensing Problem
**** OBJECTIVE VALUE 0.0000
RESOURCE USAGE, LIMIT 0.000 1000.000
ITERATION COUNT, LIMIT 0 2000000000
EVALUATION ERRORS 0 0
*** No license found
*** To update your license, please contact your distributor.
*** Too many equations for global demo mode
*** Number of equations : 2284
*** Maximum allowed : 10
*** Too many variables for global demo mode
*** Number of variables : 1671
*** Maximum allowed : 10
No solution returned
با سلام
خیلی ممنون از سایت مفیدتون
عذر میخوام مزاحمتون میشم یه سوال داشتم
من یه مدل MINLP دارم و با سالور BONMIN و سالورای دیگه که حل کردم در قسمت خروجی همه متغیرها و تابع هدفایی که دارم رو صفر میده . این خطاها رو هم بهم داده. میشه راهنمایی کنید که مشکل از کجاست. خیلی ممنونم
**** SOLVER STATUS 13 System Failure
**** MODEL STATUS 13 Error No Solution
**** OBJECTIVE VALUE NA
RESOURCE USAGE, LIMIT NA 1000.000
ITERATION COUNT, LIMIT NA 2000000000
EVALUATION ERRORS NA 0
*** Failure calling solver: BONMIN (rc=1)
No solution returned
=C*** Failure calling solver: BONMIN (rc=1)
سلام
وقتتون به خیر
عذر میخوام مزاحمتون میشم
بنده یک مدل MINLP دارم، با سالور Baron و با هر لایسنسی که امتحان میکنم باز هم خطای زیر رو میده، میشه راهنمایی کنید که چ طور میتونم این مشکل رو حل کنم؟
Terminated due to a licensing error
خیلی ممنون
سلام
لایسنس رو نصب کردین؟
سلام
بله از مسیر File options license
تاریخ کامپیوترتون چی؟ بزنین 2004 تاریخشو احتمالا درست میشه، اگه نشد نسخه دیگه ای رو دانلود کنین و لایسنس مخصوص بهش رو نصب کنین
با سلام
ببخشید آقای محمودی ،مسیله ای که در مورد متغییرهای باینری بود تنظیمات را اجرا کردم ولی بازم dicopt میباشد و لایسنس مربوطه را پیدا نمیکنه .
البته ورژن گمز من 24.1.2 میباشد و سالور baron رو نداره .
سلام
از solver های دیگه گمز که مناسب مدلتون هست استفاده کنین، این سالورها رو تو منوی options میتونین ببینین
خواهش میکنم
سلام
زمانیکه تعدادی از متغیرها باینری انتخاب میشوند .در خروجی مقادیری غیر از 0 و1 بین این دو میباشد علت چیه ؟
باتشکر
سلام
یا مدلتون نشدنیه، یا اینکه با الگوریتم دقیق حل نشده، تو کامنتا جواب این سوال رو بارها نوشتیم
سلام و خسته نباشید
من یک مدل غیرخطی عددصحیح مختلط دارم که در گمز کدنویسی کردم اما نمیدونم با چه SOLVER باید حلش کنم، میشه طفا راهنماییم کنید؟
کلا برای انتخاب solver برای مسائل minlp باید کدام را انتخاب کرد؟
آیا داشتن لایسنس در جواب تاثیری داره؟
سلام
ممنون
از سالورهایی نظیر dicopt و baron استفاده کنید. اگر جواب دقیق نداد از شروط توقف زمان و گپ استفاده کنید
با سلام
راستش من تو گمز مدل خطی که میزنم حل میشه و مشکلی نداره اما وقتی مدلم غیر خطی میشه هر solverی که انتخاب میکنم ایراد میگیره.
baron: no license found/ to update your license, please contact your distributor
SCIP: use of scip is limited to academic users/ please contact koch@zib.de to arrange for a license
bonmin: no soulution found. best possible=5.6e+006/ only reliable for convex models
الان نمیدونم مدلم ایراد داره یا license. البته همونطور که گفتم برای mip با cplex جواب میده و مشکلی نداره. اگه لطف کنید راهنمایی کنید ممنون میشم
با تشکر
سلام
مشکل لایسنس هست و همچنین احتمالاً مدل شما نشدنی است. احتمالاً
خواهش میکنم
سلام.
در کدنویسی گمزی که انجام دادم تا پیش از اینکه دستور solve رو وارد کنم هیچ خطایی وجود نداره، اما با نوشتن دستور حل خطای 53 و 256 رو تشخیص میده، نمیتونم مشکلش رو پیدا کنم. اگه راهنماییم کنید ممنون میشم.
مرسی از پاسخگویی سریع و کاملتون و خسته نباشید.