توليد الأعمدة
يُعد توليد الأعمدة أو توليد الأعمدة المؤجل خوارزمية فعالة لحل البرامج الخطية الكبيرة . [ 1 ]
تتلخص الفكرة الأساسية في أن العديد من البرامج الخطية كبيرة جدًا بحيث لا يمكن مراعاة جميع المتغيرات بشكل صريح. لذا، تبدأ العملية بحل البرنامج المدروس باستخدام مجموعة فرعية فقط من متغيراته. ثم تُضاف المتغيرات التي يُحتمل أن تُحسّن دالة الهدف إلى البرنامج بشكل تكراري. وبمجرد إثبات أن إضافة متغيرات جديدة لن تُحسّن قيمة دالة الهدف، تتوقف العملية. عند تطبيق خوارزمية توليد الأعمدة، يُؤمل أن يتم توليد جزء صغير جدًا من المتغيرات. ويدعم هذا الأمل حقيقة أن معظم المتغيرات في الحل الأمثل ستكون غير أساسية وتأخذ القيمة صفر، وبالتالي يمكن إيجاد الحل الأمثل بدونها.
في كثير من الحالات، تُمكّن هذه الطريقة من حلّ مسائل البرمجة الخطية الكبيرة التي يصعب حلّها بطرق أخرى. ومن الأمثلة الكلاسيكية على المسائل التي تُستخدم فيها هذه الطريقة بنجاح مسألة تقطيع المخزون . ومن التقنيات المحددة في البرمجة الخطية التي تستخدم هذا النوع من الأساليب خوارزمية دانتزيغ-وولف للتحليل. بالإضافة إلى ذلك، طُبّقت تقنية توليد الأعمدة على العديد من المسائل مثل جدولة الطاقم ، وتوجيه المركبات ، ومسألة الوسيط p ذي السعة المحدودة .
الخوارزمية
تعتمد الخوارزمية على مسألتين: المسألة الرئيسية والمسألة الفرعية. المسألة الرئيسية هي المسألة الأصلية مع مراعاة مجموعة فرعية فقط من المتغيرات. أما المسألة الفرعية فهي مسألة جديدة تُنشأ لتحديد متغير مُحسِّن ( أي متغير يُمكنه تحسين دالة الهدف للمسألة الرئيسية).
ثم تتابع الخوارزمية عملها على النحو التالي:
- قم بتهيئة المسألة الرئيسية والمسألة الفرعية.
- حل المسألة الرئيسية
- ابحث عن متغير مُحسِّن في المسألة الفرعية
- إذا تم العثور على متغير مُحسِّن: أضفه إلى المسألة الرئيسية ثم انتقل إلى الخطوة 2
- وإلا: فإن حل المسألة الرئيسية هو الحل الأمثل. توقف.
إيجاد متغير مُحسِّن
أصعب جزء في هذه العملية هو كيفية إيجاد متغير يُحسّن دالة الهدف للمسألة الرئيسية. يُمكن تحقيق ذلك بإيجاد المتغير ذي التكلفة المُخفّضة الأكثر سلبية (بافتراض، دون الإخلال بعمومية المسألة، أنها مسألة تصغير). إذا لم يكن لأي متغير تكلفة مُخفّضة سلبية، فإن الحل الحالي للمسألة الرئيسية هو الحل الأمثل.
عندما يكون عدد المتغيرات كبيرًا جدًا، يتعذر إيجاد متغير مُحسِّن بحساب جميع التكاليف المُخفَّضة واختيار متغير ذي تكلفة مُخفَّضة سالبة. لذا، تكمن الفكرة في حساب المتغير ذي أقل تكلفة مُخفَّضة فقط. يُمكن تحقيق ذلك باستخدام مسألة تحسين تُسمى مسألة التسعير الفرعية، والتي تعتمد بشكل كبير على بنية المسألة الأصلية. دالة الهدف في المسألة الفرعية هي التكلفة المُخفَّضة للمتغير المطلوب بالنسبة للمتغيرات الثنائية الحالية، وتتطلب القيود أن يلتزم المتغير بالقيود الطبيعية. تُعدّ طريقة توليد الأعمدة فعّالة للغاية عندما تُتيح هذه البنية حلّ المسألة الفرعية باستخدام خوارزمية فعّالة، عادةً ما تكون خوارزمية توافقية مُخصصة .
سنشرح الآن بالتفصيل كيفية حساب التكلفة المخفضة للمتغيرات وسبب ذلك. لننظر إلى البرنامج الخطي التالي في صورته القياسية:
والتي سنسميها المسألة الأولية وكذلك برنامجها الخطي الثنائي :
علاوة على ذلك، دعوتُعتبر هذه الحلول الأمثل لهاتين المسألتين، والتي يمكن لأي برنامج حل خطي توفيرها. تحقق هذه الحلول قيود برنامجها الخطي، وبحسب مبدأ الازدواجية ، فإن لها نفس قيمة دالة الهدف () والتي سنسميهاهذه القيمة المثلى هي دالة لمعاملات المسألة الأولية المختلفة:لاحظ أن هناك متغيرًا ثنائيًالكل قيد من قيود النموذج الخطي الأولي. من الممكن إثبات أن المتغير الثنائي الأمثليمكن تفسيرها على أنها المشتقة الجزئية للقيمة المثلىدالة الهدف بالنسبة للمعاملمن الجانب الأيمن للقيود:أو غير ذلكوبعبارة أبسط،يشير إلى مقدار الزيادة المحلية في القيمة المثلى لدالة الهدف عندما يكون المعامليزيد بمقدار وحدة واحدة.
لنفترض الآن أن المتغيرلم يُؤخذ هذا المتغير في الاعتبار حتى ذلك الحين في المسألة الأصلية. لاحظ أن هذا يُعادل القول بأن المتغيركان موجودًا في النموذج ولكنه كان يأخذ قيمة صفرية. سنلاحظ الآن تأثير تغيير قيمة على المشكلة الأساسية.منل. لووتمثل هذه المعاملات على التوالي المعاملات المرتبطة بالمتغيرفي دالة الهدف وفي القيود، يتم تعديل البرنامج الخطي على النحو التالي:
لكي تعرف ما إذا كان من المفيد إضافة المتغيرلحل المشكلة ( أي للسماح لها بأخذ قيمة غير صفرية)، نريد أن نعرف ما إذا كانت القيمةتتناقص قيمة دالة الهدف لهذه المسألة الجديدة مع ازدياد قيمةمن المتغيريزداد. بعبارة أخرى، نريد أن نعرفوللقيام بذلك، لاحظ أنيمكن التعبير عنها وفقًا لقيمة دالة الهدف للمسألة الأولية:ثم يمكننا حساب المشتقة التي تهمنا:
بمعنى آخر، تأثير تغيير القيمةعلى القيمةيترجم ذلك إلى مصطلحين. أولاً، يؤثر هذا التغيير بشكل مباشر على دالة الهدف، وثانياً، يتم تعديل الجانب الأيمن من القيود مما يؤثر على المتغيرات المثلى.والتي يتم قياس مقدارها باستخدام المتغيرات الثنائيةالمشتقيُطلق عليه عمومًا التكلفة المخفضة للمتغيروسيُشار إليه بـفيما يلي.
مراجع
- خوارزميات وأساليب التحسين
- مقالات قصيرة في الرياضيات التطبيقية
