استرخاء البرمجة الخطية

برنامج عدد صحيح (عام) وبرنامج الاسترخاء الخطي الخاص به. مجموعة حلول البرنامج الأول (الموضحة باللون الأحمر) أصغر بكثير من مجموعة حلول البرنامج الثاني (باللون الأزرق)، مما يؤدي إلى حلول مثلى مختلفة.

في الرياضيات، يُعد تخفيف برنامج خطي (مختلط) للأعداد الصحيحة هو المشكلة التي تنشأ عن إزالة قيد التكامل لكل متغير.

على سبيل المثال، في برنامج عدد صحيح ثنائي (0-1) ، تكون جميع القيود على الشكل التالي:

xأنا{0،1}{\displaystyle x_{i}\in \{0,1\}}.

بدلاً من ذلك، يستخدم تخفيف برنامج الأعداد الصحيحة الأصلي مجموعة من القيود الخطية

0xأنا1.{\displaystyle 0\leq x_{i}\leq 1.}

ينتج عن عملية الاسترخاء برنامج خطي ، ومن هنا جاءت التسمية. تحوّل تقنية الاسترخاء هذه مسألة تحسين صعبة الحل (برمجة عددية صحيحة) إلى مسألة مشابهة قابلة للحل في وقت متعدد الحدود (برمجة خطية)؛ ويمكن استخدام حل البرنامج الخطي المسترخي للحصول على معلومات حول حل البرنامج العددي الصحيح الأصلي.

مثال

لنأخذ على سبيل المثال مسألة تغطية المجموعة ، والتي تم النظر في استرخاء البرمجة الخطية لها لأول مرة بواسطة لوفاس في عام 1975. [ 1 ] في هذه المسألة، يتم إعطاء عائلة من المجموعات F = { S 0 , S 1 , ...} كمدخل؛ والمهمة هي إيجاد عائلة فرعية، بأقل عدد ممكن من المجموعات، لها نفس الاتحاد مثل F.

لصياغة هذا كبرنامج عددي ثنائي (0-1)، نُنشئ متغيرًا مؤشرًا xᵢ لكل مجموعة Sᵢ ، يأخذ القيمة 1 عندما تنتمي Sᵢ إلى المجموعة الفرعية المختارة ، والقيمة 0 عندما لا تنتمي إليها. عندئذٍ، يمكن وصف غطاء صالح بتعيين قيم لمتغيرات المؤشر التي تُحقق القيود .

xأنا{0،1}{\displaystyle \textstyle x_{i}\in \{0,1\}}

(أي أنه لا يُسمح إلا بقيم متغير المؤشر المحددة) ولكل عنصر e j من اتحاد F ،

{أنا|هـجSأنا}xأنا1{\displaystyle \textstyle \sum _{\{i\mid e_{j}\in S_{i}\}}x_{i}\geq 1}

(أي أن كل عنصر مغطى). يتوافق الحد الأدنى لتغطية المجموعة مع تعيين متغيرات المؤشر التي تفي بهذه القيود وتقلل دالة الهدف الخطية.

مينأناxأنا.{\displaystyle \textstyle \min \sum _{i}x_{i}.}

يصف استرخاء البرمجة الخطية لمشكلة تغطية المجموعة تغطية جزئية يتم فيها تعيين أوزان لمجموعات الإدخال بحيث يكون الوزن الإجمالي للمجموعات التي تحتوي على كل عنصر واحدًا على الأقل ويتم تقليل الوزن الإجمالي لجميع المجموعات.

كمثال محدد لمسألة تغطية المجموعات، لنفترض الحالة F = {{ a , b }, { b , c }, { a , c }}. توجد ثلاث تغطيات مثلى للمجموعات، تتضمن كل منها مجموعتين من المجموعات الثلاث المعطاة. بالتالي، فإن القيمة المثلى لدالة الهدف في برنامج الأعداد الصحيحة المقابل (0-1) هي 2، وهو عدد المجموعات في التغطيات المثلى. مع ذلك، يوجد حل كسري تُخصص فيه لكل مجموعة وزن 1/2، وتكون القيمة الإجمالية لدالة الهدف فيه 3/2. لذا، في هذا المثال، تختلف قيمة تخفيف البرمجة الخطية عن قيمة برنامج الأعداد الصحيحة (0-1) غير المُخفف.

جودة حلول البرامج المريحة والأصلية

يمكن حلّ مسألة البرمجة الخطية المُبسّطة لبرنامج عدد صحيح باستخدام أي تقنية برمجة خطية قياسية. إذا كانت جميع المتغيرات في الحل الأمثل ذات قيم صحيحة، فسيكون هذا الحل الأمثل للبرنامج الأصلي. مع ذلك، لا ينطبق هذا عمومًا، باستثناء بعض الحالات الخاصة (مثل المسائل ذات مواصفات المصفوفات أحادية المعيار تمامًا ).

في جميع الحالات، تكون جودة حل البرنامج الخطي على الأقل بمستوى جودة حل البرنامج الصحيح، لأن أي حل للبرنامج الصحيح سيكون حلاً صحيحاً للبرنامج الخطي أيضاً. أي، في مسألة تعظيم، تكون قيمة البرنامج المُخفف أكبر من أو تساوي قيمة البرنامج الأصلي، بينما في مسألة تصغير، مثل مسألة تغطية المجموعات، تكون قيمة البرنامج المُخفف أصغر من أو تساوي قيمة البرنامج الأصلي. وبالتالي، يوفر التخفيف حداً متفائلاً لحل البرنامج الصحيح.

في مثال مسألة تغطية المجموعات الموصوفة أعلاه، حيث تبلغ قيمة الحل الأمثل للحل المُخفف 3/2، نستنتج أن قيمة الحل الأمثل لبرنامج الأعداد الصحيحة غير المُخفف لا تقل عن هذه القيمة. وبما أن حلول مسألة تغطية المجموعات هي أعداد صحيحة (عدد المجموعات المختارة في المجموعة الفرعية)، فإن جودة الحل الأمثل يجب أن تكون على الأقل مساوية للعدد الصحيح الأكبر التالي، وهو 2. وبالتالي، في هذه الحالة، على الرغم من اختلاف قيمة الحل الأمثل عن قيمة الحل في المسألة غير المُخففة، فإن تخفيف البرمجة الخطية يُعطينا حدًا أدنى دقيقًا لجودة حل المسألة الأصلية.

فجوة التقريب والتكامل

يُعدّ استرخاء البرمجة الخطية أسلوبًا قياسيًا لتصميم خوارزميات تقريبية لمسائل التحسين المعقدة. في هذا التطبيق، يُعدّ مفهوم فجوة التكامل مفهومًا مهمًا ، وهو النسبة القصوى بين جودة حل البرنامج الصحيح واسترخاءه. في حالة مسألة تصغير، إذا كانت القيمة الصغرى الحقيقية (القيمة الصغرى للمسألة الصحيحة)معدد صحيح{\displaystyle M_{\text{int}}}، والحد الأدنى المُرخى (الحد الأدنى لتخفيف البرمجة الخطية) هومالتكسير الهيدروليكي{\displaystyle M_{\text{frac}}}إذن، فإن فجوة التكامل في تلك الحالة هيأناجي=معدد صحيحمالتكسير الهيدروليكي{\displaystyle IG={\frac {M_{\text{int}}}{M_{\text{frac}}}}}في مسائل التعظيم، يُعكس الكسر. وتكون فجوة التكامل دائمًا 1 على الأقل. في المثال أعلاه ، تُظهر الحالة F = {{ a , b }, { b , c }, { a , c }} فجوة تكامل مقدارها 4/3.

عادةً، تُترجم فجوة التكامل إلى نسبة التقريب لخوارزمية التقريب. وذلك لأن خوارزمية التقريب تعتمد على استراتيجية تقريب معينة تجد، لكل حل مُخفف بحجممالتكسير الهيدروليكي{\displaystyle M_{\text{frac}}}، حل صحيح بحجم لا يتجاوزRRمالتكسير الهيدروليكي{\displaystyle RR\cdot M_{\text{frac}}}(حيث RR هي نسبة التقريب). إذا وُجدت حالة بفجوة تكاملية IG ، فإن كل استراتيجية تقريب ستُعيد، في تلك الحالة، حلاً مُقرباً بحجم لا يقل عنمعدد صحيح=أناجيمالتكسير الهيدروليكي{\displaystyle M_{\text{int}}=IG\cdot M_{\text{frac}}}لذلك بالضرورةRRأناجي{\displaystyle RR\geq IG}نسبة التقريب RR هي مجرد حد أعلى لنسبة التقريب، لذا نظريًا قد تكون نسبة التقريب الفعلية أقل من IG ، ولكن قد يصعب إثبات ذلك. عمليًا، تشير قيمة IG الكبيرة عادةً إلى أن نسبة التقريب في استرخاء البرمجة الخطية قد تكون غير دقيقة، وقد يكون من الأفضل البحث عن طرق تقريب أخرى لهذه المسألة.

في مسألة تغطية المجموعات، أثبت لوفاس أن فجوة التكامل لحالة تحتوي على n عنصرًا هي H <sub>n</sub> ، وهو العدد التوافقي النوني . يمكن تحويل استرخاء البرمجة الخطية لهذه المسألة إلى حل تقريبي لحالة تغطية المجموعات الأصلية غير المسترخية باستخدام تقنية التقريب العشوائي . [ 2 ] بافتراض وجود تغطية كسرية، حيث يكون لكل مجموعة S<sub> i </sub> وزن w<sub> i</sub> ، يتم اختيار قيمة كل متغير مؤشر ثنائي (0-1) x<sub> i </sub> عشوائيًا لتكون 1 باحتمالية w <sub>i </sub> × (ln n + 1)، و0 فيما عدا ذلك. عندئذٍ، يكون احتمال بقاء أي عنصر e<sub> j</sub> غير مغطى أقل من 1/( e × n )، وبالتالي، باحتمالية ثابتة، تكون جميع العناصر مغطاة. يبلغ الحجم الكلي للتغطية الناتجة عن هذه التقنية، باحتمالية عالية ، (1 + o(1))(ln n ) W ، حيث W هو الوزن الكلي للحل الكسري. وبالتالي، تؤدي هذه التقنية إلى خوارزمية تقريب عشوائية تجد تغطية مجموعة ضمن عامل لوغاريتمي من الحل الأمثل. كما أوضح يونغ في عام 1995 [ 3 يمكن التخلص من كلٍّ من الجزء العشوائي لهذه الخوارزمية والحاجة إلى بناء حل صريح لمعادلة البرمجة الخطية باستخدام طريقة الاحتمالات الشرطية ، مما يؤدي إلى خوارزمية جشعة حتمية لتغطية المجموعات، والتي كانت معروفةً بالفعل للوفاس، حيث تقوم هذه الخوارزمية باختيار المجموعة التي تغطي أكبر عدد ممكن من العناصر المتبقية غير المغطاة بشكل متكرر. وتقارب هذه الخوارزمية الجشعة تغطية المجموعات ضمن نفس عامل H<sub> n</sub> الذي أثبته لوفاس كفجوة التكامل لتغطية المجموعات. وهناك أسباب قوية من منظور نظرية التعقيد تدعو إلى الاعتقاد بأنه لا توجد خوارزمية تقريبية ذات زمن متعدد الحدود يمكنها تحقيق نسبة تقريب أفضل بشكل ملحوظ. [ 4 ]     

يمكن استخدام تقنيات التقريب العشوائي المماثلة ، وخوارزميات التقريب غير العشوائية، جنبًا إلى جنب مع استرخاء البرمجة الخطية لتطوير خوارزميات التقريب للعديد من المشاكل الأخرى، كما وصفها راغافان وتومبسون ويونغ.

استخدم التفرع والتقييد للحصول على حلول دقيقة

إلى جانب استخداماتها في التقريب، تلعب البرمجة الخطية دورًا مهمًا في خوارزميات التفرع والتقييد لحساب الحل الأمثل الحقيقي لمشاكل التحسين الصعبة.

إذا كانت بعض المتغيرات في الحل الأمثل ذات قيم كسرية، فيمكننا البدء بعملية من نوع التفرع والتقييد ، حيث نحل بشكل متكرر مسائل فرعية تكون فيها قيم بعض المتغيرات الكسرية ثابتة عند الصفر أو الواحد. في كل خطوة من خوارزمية من هذا النوع، نعتبر مسألة فرعية من برنامج الأعداد الصحيحة الأصلي (0-1) حيث تكون قيم بعض المتغيرات إما 0 أو 1، بينما تظل المتغيرات المتبقية حرة في أخذ أي من القيمتين. في المسألة الفرعية i ، لنرمز بـ V <sub> i </sub> إلى مجموعة المتغيرات المتبقية. تبدأ العملية بالنظر في مسألة فرعية لم تُحدد فيها أي قيم للمتغيرات، حيث V <sub>0</sub> هي مجموعة المتغيرات الكاملة للمسألة الأصلية. ثم، لكل مسألة فرعية i ، تُنفذ الخطوات التالية.

  1. احسب الحل الأمثل لتخفيف البرمجة الخطية للمسألة الفرعية الحالية. أي، لكل متغير x j في V i ، نستبدل القيد الذي ينص على أن x j يساوي 0 أو 1 بالقيد المخفف الذي ينص على أن يكون في الفترة [0,1]؛ ومع ذلك، فإن المتغيرات التي تم تعيين قيم لها بالفعل لا يتم تخفيفها.
  2. إذا كان الحل المُخفف للمشكلة الفرعية الحالية أسوأ من أفضل حل صحيح تم العثور عليه حتى الآن، فارجع من هذا الفرع من البحث المتكرر.
  3. إذا كان الحل المخفف يحتوي على جميع المتغيرات مضبوطة على 0 أو 1، فقم باختباره مقابل أفضل حل صحيح تم العثور عليه حتى الآن واحتفظ بأي من الحلين هو الأفضل.
  4. وإلا، فليكن xj أي متغير يُعيّن له قيمة كسرية في الحل المُخفف. كوّن مسألتين فرعيتين، إحداهما يُعيّن فيها xj إلى 0 والأخرى يُعيّن فيها xj إلى 1؛ في كلتا المسألتين الفرعيتين، لا تزال القيم المُعيّنة لبعض المتغيرات مستخدمة، لذا تصبح مجموعة المتغيرات المتبقية Vi \  {  xj } . ابحث بشكل متكرر في كلتا المسألتين الفرعيتين .

على الرغم من صعوبة إثبات الحدود النظرية لأداء الخوارزميات من هذا النوع، إلا أنها يمكن أن تكون فعالة للغاية في الممارسة العملية.

طريقة القطع بالمسحاة

قد يمتلك برنامجان صحيحان ثنائيا القيمة (0-1) متكافئان، أي لهما نفس دالة الهدف ونفس مجموعة الحلول الممكنة، استرخاءات برمجة خطية مختلفة تمامًا: يمكن النظر إلى استرخاء البرمجة الخطية هندسيًا على أنه متعدد سطوح محدب يشمل جميع الحلول الممكنة ويستبعد جميع المتجهات الثنائية الأخرى، وتتمتع بهذا الخاصية عدد لا نهائي من متعددات السطوح المختلفة. من الناحية المثالية، يُفضل استخدام الغلاف المحدب للحلول الممكنة كاسترخاء؛ إذ أن البرمجة الخطية على هذا متعدد السطوح ستؤدي تلقائيًا إلى الحل الصحيح للبرنامج الصحيح الأصلي. مع ذلك، بشكل عام، سيكون لهذا متعدد السطوح عدد هائل من الأوجه ، وسيكون من الصعب إنشاؤه. تشكل الاسترخاءات النموذجية، مثل استرخاء مسألة تغطية المجموعة التي نوقشت سابقًا، متعدد سطوح يحتوي بدقة على الغلاف المحدب، وله رؤوس أخرى غير المتجهات الثنائية التي تحل المسألة غير المسترخية.

تستغل طريقة القطع المستوي لحل برامج الأعداد الصحيحة الثنائية (0-1)، التي طُرحت لأول مرة لمسألة البائع المتجول من قِبل دانتزيج وفولكرسون وجونسون عام 1954 [ 5 ] ، ثم عُممت لتشمل برامج أعداد صحيحة أخرى بواسطة جوموري عام 1958 [ 6 ] ، تعددَ التسهيلات الممكنة من خلال إيجاد سلسلة من التسهيلات التي تُقيد فضاء الحل بشكل أدق حتى يتم الحصول في النهاية على حل صحيح. تبدأ هذه الطريقة من أي تسهيل للبرنامج المُعطى، وتجد الحل الأمثل باستخدام مُحلل البرمجة الخطية. إذا كان الحل يُسند قيمًا صحيحة لجميع المتغيرات، فهو أيضًا الحل الأمثل للمسألة غير المُستحدثة. وإلا، يتم إيجاد قيد خطي إضافي ( مستوى قطع أو قطع ) يفصل الحل الكسري الناتج عن الغلاف المحدب للحلول الصحيحة، وتُكرر الطريقة على هذه المسألة الجديدة ذات القيود الأكثر دقة.

تتطلب هذه الطريقة أساليب خاصة بكل مسألة لإيجاد القطوع المستخدمة فيها. ومن المستحسن بشكل خاص إيجاد مستويات القطع التي تُشكّل أوجه الغلاف المحدب للحلول الصحيحة، لأن هذه المستويات هي التي تُقيّد فضاء الحلول بشكل أدق؛ إذ يوجد دائمًا مستوى قطع من هذا النوع يفصل أي حل كسري عن الحلول الصحيحة. وقد أُجريت أبحاث كثيرة حول طرق إيجاد هذه الأوجه لأنواع مختلفة من مسائل التحسين التوافقي ، في إطار التوافقية متعددة السطوح . [ 7 ]

تجمع طريقة التفرع والقطع ذات الصلة بين طريقتي القطع المستوي والتفرع والتقييد. في أي مسألة فرعية، تُطبَّق طريقة القطع المستوي حتى يتعذر إيجاد المزيد من مستويات القطع، ثم تتفرع عند أحد المتغيرات الكسرية المتبقية.

انظر أيضاً

مراجع