صفر تا صد مدل سازی سریع در سیپلکس CPLEX

در این پست صفر تا صد کدنویسی یک مساله زنجیره تامین و تعریف چارچوب اولیه برای مدل‌های ریاضی سناریومحور را در نرم‌فزار سیپلکس CPLEX شرح می‌دهیم. فایل تصویری رایگان در ادامه پست قابل مشاهده است.

بیشتر بخوانید

نسخه جدید CPLEX با طعم یادگیری ماشینی !

 

بالاخره پس از سال‌ها گفتمان در خصوص امکان حل مسایل بهینه‌سازی با استفاده از مفاهیم یادگیری ماشینی، نرم‌افزار CPLEX از نسخه جدید ۱۲٫۱۰ با امکان بهره‌گیری از ابزارهای یادگیری ماشینی machine learning رونمایی کرد. این رویکرد مزایای فراوانی در پی دارد، مانند تخمین توابع هدف مبهم unknown objective functions، تخمین فضای حل نامحدب، مسایل بهنیه‌سازی ترکیبیاتی با تعداد متغیر بسیار زیاد یا محدودیت‌های سخت ارضاشونده اشاره کرد. در این پست قصد داریم گام به گام یک مساله ساده را با اتصال نرم‌افزار به فضای ابری IBM Watson حل نماییم.

بیشتر بخوانید

بهینه سازی و فناوری پردازش گرافیکی GPU

 

توسعه دهندگان بسته‌های بهینه‌سازی در سال‌های اخیر فناوری پردازش موازی parallel computing به کمک کارت های گرافیکی نسل پیشرفته و قابلیت GPU computing را با حساسیت بالایی پیگیری می‌کنند. محدودیت‌های جدی در حل مسایل برنامه‌ریزی خطی linear programming، عدد صحیح integer programming و درجه دو quadratic programming با استفاده از پردازش GPU وجود دارد. شایان ذکر است که این امر تا این لحظه محقق نشده است. دلایل متعددی برای عدم تحقق این پدیده ‌می‌توان عنوان کرد. این محدودیت‌ها در این پست بحث و بررسی می‌شود.

بیشتر بخوانید

اجرای دسته ای و گروهی کدهای cplex

 

مدتی است دوستان علاقه‌مند به وب‌سایت ortimes درخواست‌های مکرری جهت ارائه سازوکار مشخص و باثباتی جهت حل دسته‌ای (گروهی) مسائل در نرم‌افزار cplex به همراه چندین دیتاست مختلف داشته‌اند.

توجه !
روی سخن ما کاربرانی که از conert technology بهره می‌برند، نیست. طبیعتاً راه‌های ساده‌تری برای انجام این مهم با استفاده از این فناوری وجود دارد.

برای کاربرانی که از محیط IBM ILog CPLEX Optimization Studio استفاده می‌کنند یک راه‌حل موقتی در همین وب‌سایت ارائه گردید:

فایل اکسل اجرای کد CPLEX در تکرارهای مختلف

در این پست قصد داریم راه‌حل کاراتر دیگری را ارائه دهیم.

بیشتر بخوانید

شمارش تعداد جواب‌های مربع جادویی در CP Optimizer

 

 

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

بیشتر بخوانید

فراخوانی ماتریس سه بعدی از اکسل در CPLEX

اخیرا سوالات و مشکلات زیادی در خصوص نحوه‌ی تعامل نرم‌افزار CPLEX با نرم‌افزار اکسل دریافت نموده‌ایم. در این پست قصد داریم نحوه‌ی ارتباط اساسی این دو نرم‌افزار و نحوه‌ی ورود و فراخوانی پارامترهای سه بعدی از نرم‌افزار اکسل را تشریح کنیم.

بیشتر بخوانید

الگوریتم تجزیه بندرز خودکار CPLEX

در نسخه‌ی ۱۲٫۷ نرم‌افزار [icon name=”external-link” class=”” unprefixed_class=””] CPLEX رویه‌ی جدیدی جایگزین هسته‌ای اصلی الگوریتم حل یعنی شاخه و برش Branch and Cut مطرح گردید. تحت این رویه مساله‌ی اولیه به یک مساله‌ی اصلی Master و یک یا چند زیرمساله Worker تجزیه می‌شود. این رویه در ادبیات علم بهینه‌سازی به الگوریتم تجزیه بندرز Benders Decomposition مشهور است. در این پست نحوه‌ی بکارگیری رویه بندرز در پلتفرم پایتون PYTHON در رابط کاربری SPYDER نرم‌افزار [icon name=”external-link” class=”” unprefixed_class=””] ANACONDA به همراه مثال تشریح خواهد شد. جهت کسب اطلاعات بیشتر به راهنمای [icon name=”external-link” class=”” unprefixed_class=””] Prescriptive Analytics for Python مراجعه نمایید.

 

توجه !
این راهنما برای کاربرانی قابل استفاده است که اشتراک نسخه‌ی ابری Decision Optimization on the Cloud شرکت IBM را تهیه نموده‌اند.

بیشتر بخوانید

محدودیت های تنبل در CPLEX


بسته به شرایط فضای شدنی و تابع هدف، محدودیت‌ها عملکردهای متفاوتی از خود نشان می‌دهند: محدودیت‌های کارکردی، غیرکارکردی، الزام‌آور، غیرالزام‌آور، فعال، زائد و غیره. محدودیت‌های دیگری نیز در این فضا قابل ارائه است که برخی از خواص محدودیت‌های سنتی را دارا هستند: هم الزام‌آور و هم غیرالزام‌آور. جای تعجب نیست که چنین محدودیت‌هایی در علم بهینه‌سازی محاسباتی نقش‌آفرینی می‌کنند. یک دسته از این محدودیت‌ها به محدودیت‌های تنبل lazy constraints مشهور هستند. در این پست قصد داریم این دسته محدودیت‌ها را معرفی و با ویژگی‌ها و کارکردهای آن در نرم‌افزار CPLEX آشنا شویم.

بیشتر بخوانید

نحوه ایجاد متغیر تصمیم چند بعدی در پلتفرم ++C با رابط Concert Technology

در این پست قصد داریم نحوه ایجاد یک دسته متغیر تصمیم سه بعدی را بررسی نماییم. در زبان OPL یک متغیر سه بعدی باینری به صورت زیر تعریف می‌شود:

i in 1..sizeSet1;
j in 1..sizeSet2;
k in 1..sizeSet3;
dvar Boolean x[i][j][k];

در زبان ++C از عبارت <>IloArray می‌توان جهت ایجاد لیستی از متغیرها (یک بردار متغیر تصمیم) و بدین ترتیب ماتریس‌های متغیر چند بعدی بهره گرفت. به عنوان مثال یک دسته متغیر تصمیم سه بعدی به صورت رویه‌ای که در ادامه آمده است، تعریف می‌شود. ابتدا لیست‌های مورد نظر تعریف می‌شود.

بیشتر بخوانید