خطای ۱۰۰۱ out of memory در گمز – cplex

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

برای رفع این خطا چندین راهکار پیشنهاد می‌شود که هر کدام به نوبه‌ی خود و بنا بر ساختار مسئله‌ی شما ممکن است مفید باشند.
رفع خطای ۱۰۰۱ در گمز
برای رفع این خطا راهکارهای زیر پیشنهاد می شود.
۱- در صورت امکان RAM سیستم خود را افزایش دهید.
۲- در صورتی که نیازی به حل مدل در سایز بالا ندارید، سایز آن را کاهش دهید.
۳- شاید solver های دیگر بتوانند سریعتر مدل را حل کنند. آنها را نیز امتحان کنید.
۴- اگر از سیستم عامل ویندوز استفاده میکنید، حتما از نسخه‌ی ۶۴ بیت استفاده کنید. (اینکه سیستم عامل های دیگر مانند لینوکس چه قابلیتی در حل گمز دارند را بررسی نکرده ایم)
۵- اگر متغیر شما اندیس دار است، حتما آن را به صورت اندیس دار تعریف کنید. به عنوان مثال اگر متغیر Xj دارید، در تعریف متغیر آن را دقیقا به صورت Xj تعریف کنید، و نه به صورت X.
6- محدودیت‌های زائد مدل را تشخیص داده و آنها را حذف کنید. این عمل بسیار به حل مدل کمک می‌کند.
۷- در صورتی که جواب تعدادی از متغیرها را از قبل می‌دانید، آنها را Fix کنید.
۸- تعدادی 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;

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

your_model_name.solvelink=0;
your_model_name.dictfile=0

راهکارهای کمکی دیگری هم وجود دارند که در اینجا ذکر نشده‌اند. البته این پست در آینده توسعه خواهد یافت.

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

 

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

 

این مقاله برای شما مفید بود؟

مطالب مشابه

2 دیدگاه

  1. مهرداد

    سلام
    ممنون از سایت خوبتون
    من کپی کردم ولی ارور میده و اون علامت & رو گیر میده بهش

    1. محمودی

      سلام
      نوشته اصلاح شد. سپاس از شما. مشکل از کدینگ سایت بود. اون بخش اضافی بوده

دیدگاهی دارید؟