في هذا الشارح، سوف نتعلَّم كيف نُوجِد الحل الأمثل لنظام خطي يتضمَّن دالة هدف وعدة قيود.
البرمجة الخطية هي طريقة تُستخدَم في إيجاد القيمة العظمى أو الصغرى لكمية مُعطاة تحت قيود معيَّنة. في هذه الحالة، تُسمَّى الكمية التي نحتاج إلى التوصل إلى حلها الأمثل دالة الهدف، ونُسمِّى الشروط القيود.
في التمثيل الخطي، تكون دالة الهدف هي دالة خطية في متغيِّرات. بعبارة أخرى، لأي مسألة دالة برمجة خطية في متغيِّرين، يجب أن تكون دالة الهدف مكتوبة على الصيغة: لأي ثوابت ، ، .
وقيود البرمجة الخطية مُعطاة على صورة مجموعة من المتباينات الخطية، بمعنى أنها تكون متباينات على الصورة: لأي ثوابت أ، ب، . وتكون المتباينات في القيود غير صارمة بوجه عام، والحل الأمثل لمسألة برمجة خطية، إن وُجِد، يقع على أحد رءوس منطقة الحل. يمكن أن يكون هناك أيُّ عدد من المتباينات في صورة قيود لمسألة واحدة من مسائل البرمجة الخطية.
وكل قيد على الصورة يُعرِّف منطقة نصف مستوى على المستوى ، نرسم حدودها بالخط المستقيم . إنَّ رسم المنطقة المُعطاة من القيد مهارة مهمة في البرمجة الخطية.
هيا نرسم المنطقة المُعطاة من القيد . أولًا، علينا رسم الخط الفاصل . يمكننا إعادة ترتيب هذه المعادلة لنكتبها ، وهو ما يعطينا المعادلة القياسية للخط المستقيم. هذا الخط يتضمَّن جزءًا مقطوعًا من المحور قيمته ١، وميلًا موجبًا قيمته ٤. علينا أولًا تمثيل هذا الخط بيانيًّا على المستوى.
هذا الخط يقسم المستوى إلى منطقتين. لتحديد المنطقة التي تحقِّق القيد المُعطى، يمكننا اختيار أي نقطة ليست على الخط لاختبار إذا ما كانت النقطة تحقِّق القيد المُعطى. ويُنصَح باختيار أبسط نقطة ممكنة لهذا الغرض. وإذا لم تكن نقطة الأصل على الخط الحدودي، فهذا دائمًا هو أبسط اختيار. يمكننا التحقُّق ممَّا إذا كانت نقطة الأصل واقعة على الخط المستقيم بالتعويض بالنقطة في المتباينة. وإذا تحقَّق «التساوي»، فهذا يشير إلى أن نقطة الأصل تقع على الخط المستقيم. في هذا المثال، عندما نعوِّض بالنقطة في المتباينة ، نلاحظ أن الطرف الأيسر يساوي . وبما أن التساوي لم يتحقَّق، ، إذن نقطة الأصل لا تقع على الخط.
والآن، يمكننا التحقُّق ممَّا إذا كانت نقطة الأصل تقع داخل المنطقة المُعطاة من القيد عن طريق اختبار المتباينة التامة . نعوِّض بالنقطة في التعبير ، ويكون الناتج:
لكن، بما أن ، وهو ما يناقض المتباينة المُعطاة، إذن لا تحقِّق النقطة المتباينة . بعبارة أخرى، نقطة الأصل لا تقع في المنطقة التي وصفتها هذه المتباينة. وهذا يعني أن المنطقة المُعطاة بالقيد هي منطقة لا تتضمَّن نقطة الأصل. هذه المنطقة مظلَّلة في التمثيل البياني الآتي.
في البرمجة الخطية، تُوجَد عدة قيود؛ بحيث تكون المنطقة الناتجة هي المنطقة المشتركة بين كل منطقة على حِدَةٍ. على سبيل المثال، انظر القيود الثلاثة الموضَّحة هنا.
عندما ندمج القيود الثلاثة نحصل على المنطقة المثلثة المشتركة الموجودة بالأسفل.
في البرمجة الخطية، تشترك عدة قيود خطية لتكوين منطقة حدِّية على شكل مضلَّع. يُسمَّى هذا الجزء المشترك الذي تَحدُّه جميع القيود منطقة الحل، وتُسمَّى رءوس المضلع الحدِّي النقاط القصوى.
ونقول إن المنطقة على المستوى محدودة إذا كان يمكن رسم دائرة حولها. وإذا كان الأمر خلاف ذلك كانت المنطقة غير محدودة. يمكن أن تكون منطقة الحل المعرَّفة بواسطة مجموعة من القيود محدودة أو غير محدودة. يوضِّح الشكل التالي مثالًا لمنطقة حل غير محدودة.
ودون النظر إلى نصف قطر الدائرة، نلاحظ أنه لا يمكن أن تقع هذه المنطقة داخل دائرة. ومن ثَمَّ، فإن المنطقة المظلَّلة في الشكل السابق غير محدودة.
نظرية: النظرية الأساسية للبرمجة الخطية
إن وُجِد حلٌّ أمثل لمسألة برمجة خطية، فهو يقع على الحدود (أي المستقيمات والرءوس). علاوةً على ذلك، إذا كان لدينا خطٌّ حَدِّي يقع عليه الحل الأمثل، ووُجِد رأس أو أكثر، فسيقع الحل عند أحد هذه الرءوس.
لفهم هذا المبدأ على نحوٍ أفضل، نتناول مثالًا معًا. هيا نُوجِد القيمة العظمى لـ باستخدم القيود:
من خلال المناقشات التي أجريناها سابقًا، نجد أن منطقة الحل المثلثة موضَّحة هنا.
دعونا نرمز إلى دالة الهدف بالرمز . نريد إيجاد أكبر قيمة ممكنة للدالة في حين نُقيِّد قيم ، ؛ بحيث يقع داخل منطقة الحل المثلثة. يمكننا حل معادلة دالة الهدف لإيجاد قيمة لنكتب:
ولقيم مختلفة من ، هذه هي معادلة الخط المستقيم الذي ميله ٣ والجزء المقطوع من المحور يساوي . على سبيل المثال، علينا أن نمثِّل هذا الخط بيانيًّا ، ، ، فوق التمثيل البياني لمنطقة الحل. نلاحظ هنا أن:
لدينا إذن الخطوط التي تقطع المحور ، في النقطة عندما تكون ، والنقطة عندما تكون ، والنقطة عندما تكون ، والنقطة عندما تكون .
كل خط من الخطوط الحمراء المرسومة بيانيًّا سابقًا يمثِّل قيمًا مختلفة لدالة الهدف، كما هو موضَّح. نلاحظ أن جميع الخطوط الحمراء لها الميل نفسه. ولن تؤثِّر القيم المختلفة لـ إلا على الجزء المقطوع من المحور . ومن ثَمَّ، فإن مجموعة الخطوط التي تمثِّل دالة الهدف متوازية.
إذا كان أيُّ خط يتداخل مع منطقة الحل، حتى لو عند نقطة واحدة، فسيكون هناك زوج من قيم داخل منطقة الحل يمكن أن يُنتِج قيمة لدالة الهدف المرتبطة بالخط المستقيم. إذا كان الخط لا يتقاطع مع منطقة الحل عند أيِّ نقطة من النقاط، فإن قيمة لا تتحقَّق داخل منطقة الحل. على سبيل المثال، لا يتقاطع مع المنطقة المظلَّلة بالأعلى؛ لذا، لا يمكن تحقيق هذه القيمة.
إذن مهمة إيجاد القيمة العظمى لـ من منطقة الحل تُختزَل إلى مهمة إيجاد الخط الأحمر المرتبط بأعلى قيمة لـ . يمكننا رسم مستقيم ميله ٣ متحرِّكًا لأعلى وأسفل منطقة الحل حتى لا يعود متلامسًا مع منطقة الحل. وبما أن التحرُّك بالمستقيم إلى أعلى يرتبط بزيادة قيم في هذا المثال، ننظر إلى أعلى خط تلامس مع المنطقة المظلَّلة.
يمكننا ملاحظة أن هذا الخط يرتبط بـ ، وهو يتقاطع مع منطقة الحل عند نقطة وحيدة هي . أيُّ خط يرتبط بـ لن يتقاطع على الإطلاق مع المنطقة؛ لذا، لا يمكن تحقيقه. وهذا يقودنا إلى استنتاج أن هي القيمة العظمى لدالة الهدف داخل منطقة الحل.
في هذا المثال، نبحث عن «الخط الأخير» الملامس لمنطقة الحل. إذا كان هذا الخط موجودًا، فلا بد أن يمر عبر خط من الخطوط التي تحد المنطقة. وأيضًا، إذا كان الخط المستقيم يحتوي على رأس (أو أكثر)، فيجب أن يتقاطع «الخط الأخير» مع الخط في رأسٍ واحد. وهذا يوفر مبرِّرًا بديهيًّا للنظرية الأساسية في البرمجة الخطية.
مع أنه من الجيد وَضْع الحدس الهندسي في الاعتبار عند حل المسائل المتعلِّقة بالبرمجة الخطية، تُوجَد طريقة حسابية أبسط عندما تكون منطقة الحل محدودة. تذكَّر أن المنطقة المحدودة تعني أنه يمكن رسم دائرة حولها. منطقة الحل الموجودة في المثال السابق هي منطقة محدودة، كما هو موضَّح في الآتي.
إذا كانت منطقة الحل محدودة، فلا بد من وجود دالة الهدف الخطية العظمى والصغرى. ونلاحظ أيضًا أن الخط الحدي لأي منطقة مضلعة محدودة لا بد أن يتضمَّن رأسين. وهذا لأن الخط الذي لا يتضمَّن رأسين سيمتد إلى ما لا نهاية؛ بحيث لا يمكن رسم أي دائرة حوله. وهذا يقودنا إلى العبارة الآتية.
نظرية: البرمجة الخطية لمناطق حل محدودة
في مسائل البرمجة الخطية التي تتضمَّن منطقة حل محدودة غير فارغة يجب أن يُوجَد حل عند أحد رءوس المنطقة.
بعبارة أخرى، يمكننا حل أي مسألة برمجة خطية تتضمَّن مناطق حل محدودة بالبحث عن القيمة المثلى بين رءوس المنطقة. وهذا يقودنا إلى الطريقة التالية لحل مسألة برمجة خطية باستخدام مناطق حل محدودة.
كيف نستخدم البرمجة الخطية في مناطق الحل المحدودة
ننظر إلى دالة هدف خطية باستخدام مجموعة من القيود الخطية. نفترض أن منطقة الحل محدودة. لإيجاد القيمة العظمى أو القيمة الصغرى لـ وفقًا للقيود المُعطاة، علينا اتباع الخطوات الآتية.
- مثِّل منطقة الحل بيانيًّا باستخدام القيود.
- أوجد جميع الرءوس.
- عوِّض بإحداثيات كل رأس في دالة الهدف.
- أكبر قيمة في الخطوة السابقة هي القيمة العظمى، وأصغر قيمة هي القيمة الصغرى.
هيا نستخدم هذه الطريقة في المثال السابق. من منطقة الحل، نلاحظ أن الرءوس موجودة عند:
نعوِّض بهذه النقاط في دالة الهدف ، لنحصل على:
أكبر قيمة لدالة الهدف في القائمة السابقة هي ٣؛ لذا، هذا هو حل هذا المثال. بعبارة أخرى، القيمة العظمى لـ عند التقيُّد بالمنطقة المظلَّلة تساوي ٣، وتقع عند ، . وهذا يتفق مع الإجابة باستخدام الطريقة السابقة.
هيا نتناول الأمثلة المتعلِّقة بالبرمجة الخطية التي تتضمَّن مناطق حل محدودة باستخدام هذه الطريقة.
مثال ١: إيجاد النقطة التي تحقِّق القيمة العظمى لدالة الهدف بمعلومية التمثيل البياني للقيود
باستخدام البرمجة الخطية، أوجد القيمة الصغرى والقيمة العظمى للدالة ، علمًا بأن ، ، ، .
الحل
في هذا المثال، نستخدم التمثيل البياني لمنطقة الحل. نلاحظ أن منطقة الحل الممكنة محدودة (بمعنى أنه يمكن أن تقع داخل دائرة). نتذكَّر هنا أنه إذا كانت منطقة الحل محدودة، فستكون القيمتان العظمى والصغرى لدالة الهدف الخطية عند رأسٍ من الرءوس. وفيما يلي خطوات تحديد القيمتين العظمى والصغرى.
- مثِّل منطقة الحل بيانيًّا باستخدام القيود.
- أوجد كل الرءوس.
- عوِّض بإحداثيات كل رأس في دالة الهدف.
- حدِّد الحل.
بما أن التمثيل البياني لمنطقة الحل مُعطى، ننتقل لإيجاد الرءوس. في هذا التمثيل البياني، نلاحظ أن رءوس منطقة الحل المثلثة هي:
بعد ذلك، نعوِّض بهذه القيم في دالة الهدف :
من القائمة السابقة، أكبر قيمة لـ تساوي ١، وأصغر قيمة لـ تساوي .
إذن هو القيمة الصغرى لـ (عندما تكون ، )، و١ هو القيمة العظمى لـ (عندما تكون ، ).
مثال ٢: إيجاد القيمة العظمى لدالة الهدف بمعلومية القيود والتمثيل البياني
أوجد القيمة العظمى لدالة الهدف ، علمًا بأن القيود ، ، ، ، .
الحل
لدينا التمثيل البياني لثلاث مناطق مظلَّلة، تناظر القيود المُعطاة. المنطقة المشتركة هي الشكل الرباعي البني الذي له رأس عند نقطة الأصل. هذه هي منطقة الحل في مسألة البرمجة الخطية المُعطاة.
بالنظر إلى الصورة المُعطاة، نلاحظ أن الرءوس هي النقاط:
نتذكَّر هنا أنه إذا كانت منطقة الحل محدودة (أي يمكن أن تقع داخل دائرة)، فإن كلًّا من القيم العظمى والصغرى ينبغي أن تقع عند أحد هذه الرءوس. نعوِّض بإحداثيات كل رأس في دالة الهدف :
أكبر قيمة في القائمة السابقة هي ٢٤.
إذن القيمة العظمى لدالة الهدف تساوي ٢٤، وهي تحدث عندما تكون ، .
يمكن استخدام البرمجة الخطية في مسائل حياتية لإيجاد الحلول المثلى. في الأمثلة القليلة التالية، نتناول مسائل كلامية تتضمَّن مواقف حياتية.
مثال ٣: تكوين مجموعة المتباينات ودالة الهدف لمسألة كلامية تتعلَّق بالبرمجة الخطية
تُنتِج ورشة بها عاملان نوعَيْن من المكاتب المعدنية: النوع أ والنوع ب. يقوم أحد العاملَيْن بتصنيع المكاتب، ويقوم الآخر بطلائها. يستغرق العامل الأول ٤ ساعات لصناعة وحدة واحدة من النوع أ، و٣ ساعات لصناعة وحدة واحدة من النوع ب. في حين يستغرق العامل الثاني ٣ ساعات لطلاء وحدة واحدة من النوع أ، و٤ ساعات لطلاء وحدة واحدة من النوع ب. يعمل العامل الأول ٥ ساعات على الأقل يوميًّا، ويعمل الآخر ٧ ساعات يوميًّا كحدٍّ أقصى. إذا كانت الورشة تحقِّق ربحًا قيمته ٦٠ جنيهًا مصريًّا (من كل وحدة)، فأوجد دالة الهدف والمتباينة المطلوبة لحساب عدد الوحدات اللازم إنتاجها يوميًّا من كل نوع لزيادة الربح .
الحل
هيا نُحدِّد المتغيِّرات الأساسية لهذه المسألة. نُعرِّف بأنه عدد الوحدات المنتجة من النوع أ، ونُعرِّف بأنه عدد الوحدات المنتجة من النوع ب. تحقِّق الورشة ربحًا قيمته ٦٠ جنيهًا مصريًّا لكل مكتب من أيِّ نوعٍ منهما؛ لذا، فإن الربح يُعطى من العلاقة . هذه هي دالة الهدف التي نريد إيجادها في هذا المثال.
بعد ذلك، دعونا نتناول الوقت الذي يستغرقه العامل الأول. يستغرق العامل الأول ٤ ساعات لصناعة وحدة واحدة من النوع أ، و٣ ساعات لصناعة وحدة واحدة من النوع ب. لذا، فإن عدد الساعات الإجمالي الذي يقضيه العامل الأول يُعطى من . ويعمل العامل الأول يوميًّا على الأقل، وبذلك نحصل على القيد:
الآن، دعونا نتناول الوقت الذي يستغرقه العامل الثاني. يستغرق العامل الثاني ٣ ساعات لطلاء وحدة واحدة من النوع أ، و٤ ساعات لطلاء وحدة واحدة من النوع ب. لذا، فإن عدد الساعات الإجمالي الذي يقضيه العامل الثاني يُعطى من العلاقة . ويعمل العامل الثاني ٧ ساعات يوميًّا بحدٍّ أقصى، وهذا يعطينا القيد:
وأخيرًا علينا التأكُّد من أن ، ؛ لأنه لا يمكن إنتاج عدد سالب من المكاتب. بوضعهما معًا، لدينا القيود ودالة الهدف:
مثال ٤: استخدام الحل الخطِّي الأمثل في تحقيق أعلى ربح
تقوم شركة صغيرة بصبغ القمصان بلون واحد أو بعدة ألوان، وترغب إدارة الشركة في تحديد عدد القمصان من كل نوع لتجهيزها لموسم التخفيضات المقبل. تبلغ الميزانية ٢٤٠ دولارًا أمريكيًّا. ويتكلَّف شراء كل قميص دولارين أمريكيين. ويتكلَّف صبغ القميص بلون واحد ٠٫٥٠ دولار أمريكي، في حين تبلغ تكلفة صبغه بعدة ألوان ١٫٥٠ دولار أمريكي. لا يتبقى للشركة سوى ٨ ساعات لتجهيز جميع القمصان، وتستغرق دقيقتين لصبغ قميص بلون واحد، وتستغرق ١٠ دقائق لصبغ قميص متعدِّد الألوان.
تريد الشركة زيادة الأرباح، علمًا بأنه يمكن بيع القمصان التي بلون واحد مقابل ٨ دولارات أمريكية لكل قميص، والقمصان المتعددة الألوان مقابل ١٠ دولارات أمريكية لكل قميص.
افترض أن تمثِّل عدد القمصان ذات اللون الواحد، وتمثِّل عدد القمصان المتعدِّدة الألوان.
أيُّ الاختيارات الآتية يوضِّح المنطقة الممثِّلة للحل؟
حدِّد دالة الهدف.
ما عدد القمصان من كل نوع التي يجب على الشركة إنتاجها لزيادة أرباحها؟
الحل
الجزء الأول
علينا أولًا تحديد قيود هذه المسألة. افترض أن تمثِّل عدد القمصان ذات اللون الواحد، وتمثِّل عدد القمصان المتعدِّدة الألوان. وبما أنه لا يمكن أن يكون هناك عدد سالب من القمصان، إذن ينبغي أن تكون ، .
بعد ذلك، دعونا نتناول التكلفة الإجمالية. يتكلَّف شراء كل قميص دولارين أمريكيين، ولكن هناك تكلفة إضافية للصبغ. ويتكلَّف صبغ القميص بلون واحد ٠٫٥٠ دولار أمريكي، إذن التكلفة الكلية هي ٢٫٥٠ دولار أمريكي لكل قميص بلون واحد. ويتكلَّف صبغ القميص بعدة ألوان ١٫٥٠ دولار أمريكي، إذن التكلفة الكلية هي ٣٫٥٠ دولارات أمريكية لكل قميص متعدِّد الألوان. إذن التكلفة الإجمالية للقمصان بفئة دولار أمريكي تُعطى من العلاقة . وبما أن التكلفة الإجمالية لا يمكن أن تزيد على ٢٤٠ دولارًا أمريكيًّا نحصل على القيد:
ونلاحظ أن نقطة الأصل تحقِّق المتباينة الصعبة ، وبما أن ، إذن هذه المتباينة تناظر المنطقة التي تشمل نقطة الأصل. بالتقاطع مع القيدين ، ، نحصل على المنطقة المظلَّلة التالية.
هيا نتناول الآن الزمن الإجمالي. يستغرق صبغ قميص بلون واحد دقيقتين، ويستغرق صبغ قميص بعدة ألوان ١٠ دقائق. ومن ثَمَّ، فإن إجمالي الزمن (بالدقيقة) يُعطى بالعلاقة . وبما أن الزمن لا يمكن أن يتجاوز ٨ ساعات (أي: )، إذن نحصل على القيد:
ونلاحظ أن نقطة الأصل تحقِّق المتباينة الصارمة ؛ لأن ، إذن هذه المتباينة تناظر المنطقة التي تشمل نقطة الأصل. بالتقاطع مع القيدين ، ، نحصل على المنطقة المظلَّلة الآتية.
عند تداخل هاتين المنطقتين، نحصل على منطقة الحل الموضَّحة بالأسفل.
الجزء الثاني
نريد إيجاد أعلى ربح. لقد عرفنا أن الشركة تبيع القمصان التي بلون واحد مقابل ٨ دولارات أمريكية لكل قميص، والقمصان المتعدِّدة الألوان مقابل ١٠ دولارات أمريكية لكل قميص. إذن يُعطى الربح من العلاقة:
هذه هي دالة الهدف المطلوب إيجاد قيمتها العظمى.
الجزء الثالث
لعلنا نتذكَّر أن مسائل البرمجة الخطية التي تقع في منطقة حل محدودة لا بد أن يوجد حلها الأمثل عند أحد الرءوس. إذن منطقة الحل الموضَّحة في الجزء الأول لها أربعة رءوس. نقطة الأصل من الرءوس الواضحة. ورأس آخر هو نقطة التقاطع مع المحور . يمكن أن يُحسَب هذا الرأس من العلاقة عندما تكون :
هذا الرأس إذن هو . وهناك رأس آخر هو نقطة التقاطع مع المحور ، والمُعطى من العلاقة . يمكننا حساب ذلك بوضع :
هذا الرأس إذن هو . والرأس الأخير هو نقطة تقاطع الخطين المستقيمين المُعطيين من المعادلتين. ومن ثَمَّ، علينا حل نظام المعادلات الخطية:
يمكننا إعادة ترتيب المعادلة الأولى لإيجاد ، لنحصل على . وبالتعويض بذلك في المعادلة الثانية، نحصل على:
ونعوِّض بقيمة ص في . من ثَمَّ، نحصل على الرأس . إذن حصلنا على الرءوس الأربعة:
وأخيرًا، نعوِّض بهذه الرءوس في دالة الهدف لإيجاد نقطة الحل الأمثل.
وبناءً على ذلك، فإن أعلى ربح هو ٧٦٨ دولارًا أمريكيًّا، ويتحقَّق عندما تكون ، .
لتحقيق أعلى ربح يجب أن تُنتِج الشركة ٩٦ قميصًا ملوَّنًا بلون واحدٍ ولا تنتج أي قمصان متعدِّدة الألوان.
لقد تناولنا حتى الآن أمثلة فيها منطقة الحل محدودة. في هذه الحالة، من المؤكَّد أن حل مسألة البرمجة الخطية موجود؛ لذا، يمكننا اتباع الطريقة المذكورة لإيجاد الحل.
ولكن، في حالة مناطق الحل غير المحدودة، ليس من الضروري أن يوجد حل أمثل. في هذه الحالات، علينا تمثيل مجموعة الخطوط المرتبطة بقيم دوال الهدف المختلفة بيانيًّا لنعرف إذا ما كان الحل موجودًا أو لا.
على سبيل المثال، هيا نحصل على أكبر قيمة لدالة الهدف بالقيود:
منطقة الحل ممثَّلة بيانيًّا في الآتي.
نلاحظ أن المنطقة المظلَّلة غير محدودة؛ لأنه لا يمكن رسم دائرة حولها. وكما فعلنا من قبل، يمكننا حل دالة الهدف ، لنحصل على . بعد ذلك نمثِّل بيانيًّا لمجموعة الخطوط:
وبتمثيل هذين الخطين بيانيًّا في أعلى منطقة الحل، نحصل على:
ونلاحظ، دون النظر إلى كبر مساحة ، أن الخط المستقيم يظل يتقاطع مع منطقة الحل. وهذا يعني ضمنيًّا أن يمكن أن تكون كبيرة كما نشاء، حتى في ظل هذه القيود. في هذه الحالة، نقول إنه لا توجد قيمة عظمى لدالة الهدف. بعبارة أخرى، الحل الخاص بالبرمجة الخطية غير موجود.
في بعض الحالات، قد يكون حل مسألة برمجة خطية موجودًا على الرغم من منطقة الحل غير المحدودة. هناك عدة طرق يمكننا استخدامها للتحقُّق ممَّا إذا كان للمسألة حل أمثل أو لا.
كيف: التحقُّق من حلول البرمجة الخطية لمناطق الحل غير المحدودة
افترض أن هي دالة الهدف على منطقة حل غير محدودة. ومن ثمَّ:
- إذا كانت محدودة من الأسفل (أي لثابت ما )، فإن لها قيمة صغرى تقع في منطقة الحل.
- وإذا كانت محدودة من الأعلى ( أي لثابت ما )، فإن لها قيمة عظمى تقع في منطقة الحل.
- إذا كانت الشروط السابقة غير واضحة، فعلينا تمثيل مجموعة من الخطوط تناظر دالة الهدف لنرى إذا ما كانت القيمة المثلى قابلة للتحقيق.
إذا استطعنا تحديد أن القيمة المثلى موجودة، فسنتمكن من اتباع طريقة الحل السابقة للمناطق المحدودة لإيجاد القيمة المثلى.
في المثال الأخير، سنتناول مسألة برمجة خطية بمنطقة حل غير محدودة.
مثال ٥: تكوين دوال الهدف لخفض التكلفة إلى الحد الأدنى، بمعلومية التمثيل البياني للقيود
يستطيع مُزارعٌ تحسين جودة إنتاجه في حال استخدامه ١٨ وحدة على الأقل من مركَّبات النيتروجين، و٦ على الأقل من مركَّبات الفوسفات. يمكنه استخدام نوعين من الأسمدة: أ، ب. يوضِّح الجدول تكلفة كل نوع من الأسمدة ومحتوياته.
السماد | عدد وحدات مركبات النيتروجين لكل كيلوجرام | عدد وحدات مركبات الفوسفات لكل كيلوجرام | التكلفة لكل كيلوجرام (جنيه مصري) |
---|---|---|---|
أ | ٣ | ٢ | ١٧٠ |
ب | ٦ | ١ | ١٢٠ |
إذا كان التمثيل البياني يمثِّل القيود المذكورة بالجدول، فأوجد أقل تكلفة يدفعها المُزارع لشراء الأسمدة؛ ليوفر كمية كافية من مركَّبات كلا النوعين.
الحل
نبدأ باستنتاج القيود الممثَّلة في التمثيل البياني. افترض أن الكمية المُستخدَمة من السماد أ بالكيلوجرمات، وأن الكمية المستخدمة من السماد ب بالكيلوجرمات. بعد ذلك، بناءً على الجدول الموضَّح، يمكن الحصول على كمية مركبات النيتروجين من العلاقة: . وبما أن المُزارع يحتاج إلى ١٨ وحدة على الأقل من مركبات النيتروجين، فسنحصل على:
ويُعطى مقدار مركَّبات الفوسفات حسب: . وبما أن المُزارع يحتاج إلى ٦ وحدات على الأقل من المركبات، نحصل على:
وبما أنه لا يمكن استخدام كمية سالبة من الأسمدة، إذن نحتاج أيضًا إلى القيدين ، .
إذن القيود هي:
هذه هي المنطقة المظلَّلة باللون الأرجواني في التمثيل البياني الموضَّح.
بعد ذلك، دعونا نُحدِّد دالة الهدف. تريد المزرعة تقليل تكلفة الأسمدة المستخدَمة. استنادًا إلى الجدول التالي، تُعطى التكلفة الإجمالية للأسمدة من العلاقة . ومن ثَمَّ، تكون دالة الهدف هي:
هناك طريقتان مختلفتان لحل هذه المسألة. وبما أن منطقة الحل غير محدودة (أي لا يمكن أن تقع داخل دائرة)، إذن علينا أولًا التحقُّق ممَّا إذا كان للمسألة حل.
الطريقة الأولى
نبدأ بالإشارة إلى أن دالة الهدف تمثِّل التكلفة، التي لا يمكن أن تكون سالبة. إذن ، ما يعني أن محدودة من أسفل. نتذكَّر أنه إذا كانت دالة الهدف محدودة من أسفل، فسيكون لها القيمة الصغرى في منطقة الحل. ومن ثَمَّ، يوجد حل.
ونتذكَّر أنه إذا كان يُوجَد حل لمسألة برمجية خطية، فلا بد أن يقع على خطٍّ حَدِّي. علاوةً على ذلك، إذا كان كل خط حَدِّي يحتوي على رأس، فلا بد أن يقع الحل عند أحد الرءوس. في التمثيل البياني المذكور، نلاحظ أن الرءوس هي:
نعوِّض بهذه النقاط في دالة الهدف .
بما أن أصغر قيمة فيما سبق هي ٥٨٠، إذن هذه هي القيمة الصغرى لدالة الهدف . ونلاحظ أيضًا أن هذه القيمة موجودة عندما يكون ، وهو ما توقَّعناه باستخدام التمثيل البياني.
الطريقة الثانية
بدلًا من ذلك، يمكننا التحقُّق من أن الحل موجود بالنظر إلى التمثيل البياني لمجموعة من الخطوط لدالة الهدف. في هذه الطريقة، نبدأ بإعادة ترتيب دالة الهدف لإيجاد ، لنحصل على:
وميل هذا الخط هو ، وهو يقع بين ميل خطين مستقيمين (، ). يمكننا التمثيل بيانيًّا لبعض الخطوط المناظرة لـ:
ونلاحظ أنه كلما كانت أصغر، انخفض الخط إلى أسفل أكثر. والخط المرتبط بـ لا يتداخل على الإطلاق مع منطقة الحل؛ أي هذه القيمة لـ لا يمكن تحقيقها. من ناحية أخرى، الخطان المرتبطان بـ ، يتداخل كلٌّ منهما مع منطقة الحل؛ ومن ثَمَّ، يمكن تحقيقهما. يمكننا من الصورة ملاحظة أنه لا بد من وجود قيمة صغرى ، وهو ما يعطينا «الخط الأخير» قبل أن يخرج هذا الخط بالكامل من منطقة الحل.
في الواقع، بتحريك الخطوط المتوازية إلى أعلى وإلى أسفل منطقة الحل، يمكننا أن نعرف أن «الخط الأخير» يجب أن يتقاطع مع منطقة الحل عند الرأس . إذن بالتعويض بـ في دالة الهدف، نحصل على القيمة الصغرى:
نلاحظ أن هذا يتفق مع إجابة الطريقة الأولى.
وبناءً على ذلك، فإن أقل تكلفة يمكن أن يدفعها المُزارع مقابل السماد مع توفير كميات كافية من المركَّبين هي ٥٨٠ جنيهًا مصريًّا باستخدام ٢ كجم من السماد أ، و٢ كجم من السماد ب.
النقاط الرئيسية
- البرمجة الخطية طريقة تُستخدَم لإيجاد الحل الأمثل لدالة الهدف الخطية، وذلك باستخدام مجموعة من القيود الخطية.
- بالنسبة إلى المتغيِّرات الفيزيائية التي لا يمكن أن تكون سالبة، تذكَّر القيدين ، .
- يمكننا التحقُّق ممَّا إذا كانت إحدى المسائل المتعلِّقة بالبرمجة الخطية تتضمَّن حلًّا بالطرق الآتية.
- إذا كانت منطقة الحل محدودة، فستوجد قيمة عظمى وقيمة صغرى.
- إذا كانت دالة الهدف محدودة من أسفل، فستوجد قيمة صغرى.
- إذا كانت دالة الهدف محدودة من أعلى، فستوجد قيمة عظمى.
- إذا لم ينطبق أيٌّ ممَّا سبق، فعلينا رسم مجموعة من الخطوط تمثِّل دالة الهدف؛ للتأكُّد ممَّا إذا كان الحل الأمثل قابلًا للتحقيق.
- إذا كان للبرمجة الخطية حل، يجب أن يقع الحل على حد المنطقة. وإذا كان كل خط حَدِّي يحتوي على رأس أو رءوس، فلا بد أن يكون الحل عند أحد الرءوس.
- في حالة وجود حل للبرمجة الخطية، يمكننا إيجاد الحل باستخدام الخطوات الآتية.
- مثِّل منطقة الحل بيانيًّا باستخدام القيود.
- أوجد كل الرءوس.
- عوِّض بإحداثيات كل رأس في دالة الهدف.
- حدِّد الحل.