پشتیبانی CPLEX از روش های شاخه، برش و قیمت‌گذاری

با توجه به تعدد سوالات دوستان مبنی بر قابلیت‌های نرم‌افزار CPLEX در پیاده‌سازی دو الگوریتم شاخه و قیمت‌گذاری (branch&price) و شاخه و برش (branch&cut)، سه نکته مهم را بایستی خدمت این بزرگواران برسانیم:

۱- سالور cplex از الگوریتم branch&price پشتیبانی نمی‌کند. چرا؟ به این دلیل که این نرم‌افزار اجازه ایجاد متغیر جدید در حین فرایند حل را نمی‌دهد (حتی با استفاده از تکنیک‌های callbacks). توجه داشته باشیم که cplex از تکینک تولید ستون (column generation) حمایت می‌کند.

۲- هسته اصلی الگوریتم حل cplex مجهز به الگوریتم branch&cut است. همه برش‌هایی که در حین فرایند حل تولید می‌شوند در فایل option قابل سفارشی شدن هستند.

۳- سالور cplex از الگوریتم branch&cut اختصاصی پشتیبانی می‌کند. این موضوع در محیط نرم‌افزاری clplex پشتیانی نمی‌شود ولی در سایر پلتفرم‌های برنامه‌نویسی قابلیت‌های متنوعی برای اختصاصی کردن این الگوریتم وجود دارد. با استفاده از یکی از زبان‌های سطح بالا و همچنین قابلیت concert technology، می‌توان از کلاس ها و توابع UserCutCallback در این خصوص بهره گرفت.