در صورتی که این پست را مطالعه می‌کنید، احتمالا خطای کمبود مموری یا out of memory در گمز برای شما مشکل ساز شده‌است. این خطا وقتی پیش می‌آید که ما مدل را توسط حل کنند‌ه‌ی CPLEX حل کنیم. ولی سی پلکس قادر به حل آن نباشد. این مشکل بیشتر مواقعی پیش می‌آید که مسئله‌ی شما در سایز بزرگ حل شده و تعداد متغیرهای عدد صحیح و یا صفر و یک آن بسیار بالا باشد. در واقع این خطا ممکن است خطا به علت ساختار مدل باشد، ممکن است به خاطر سایز بالا پیش بیاید.

برای رفع این خطا چندین راهکار پیشنهاد می‌شود که هر کدام به نوبه‌ی خود و بنا بر ساختار مسئله‌ی شما ممکن است مفید باشند.
رفع خطای 1001 در گمز
برای رفع این خطا راهکارهای زیر پیشنهاد می شود.
1- در صورت امکان RAM سیستم خود را افزایش دهید.
2- در صورتی که نیازی به حل مدل در سایز بالا ندارید، سایز آن را کاهش دهید.
3- شاید solver های دیگر بتوانند سریعتر مدل را حل کنند. آنها را نیز امتحان کنید.
4- اگر از سیستم عامل ویندوز استفاده میکنید، حتما از نسخه‌ی 64 بیت استفاده کنید. (اینکه سیستم عامل های دیگر مانند لینوکس چه قابلیتی در حل گمز دارند را بررسی نکرده ایم)
5- اگر متغیر شما اندیس دار است، حتما آن را به صورت اندیس دار تعریف کنید. به عنوان مثال اگر متغیر Xj دارید، در تعریف متغیر آن را دقیقا به صورت Xj تعریف کنید، و نه به صورت X.
6- محدودیت‌های زائد مدل را تشخیص داده و آنها را حذف کنید. این عمل بسیار به حل مدل کمک می‌کند.
7- در صورتی که جواب تعدادی از متغیرها را از قبل می‌دانید، آنها را Fix کنید.
8- تعدادی option برای cplex هست که شما باید آنها را در فایلی با نام cplex.opt ذخیره کرده و در cplex به آن آدرس دهید. راهی که ما پیشنهاد میکنیم، ساده تر از این است. شما کافیست کد زیر را به قبل از دستور solve و بعد از دستور model کپی کرده و مجددا مدل را ران کنید. توجه: your model name همان نام مدل شماست.

 

$onecho > cplex.opt
threads 4
nodefileind 2
workmem 2048
nodesel 2
varsel 3
nodsel 2
cuts -1
$offecho
Your_mode_name.optfile=1;
</code>

9- دو دستور زیر نیز می‌توانند مفید باشند. آنها را به قبل از دستور solve انتقال دهید.

your_model_name.solvelink=0;
your_model_name.dictfile=0
</code>

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

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

ایمیل: Support@gamsbook.ir
شماره تماس: 3325-405–0919