البرمجة الخطية

تعد البرمجة الخطية (Linear programming) من الأساليب الأساسية والمهمة التي تساعد متخذي القرار على اتخاذ قرارات صحيحة وبطريقة علمية. وتعد مسائل البرمجة الخطية جزءاً من مسائل البرمجة الرياضية التي تشمل الخطية منها واللاخطية؛ ثم إن البرمجة الرياضية هي بدورها جزء من موضوع أكثر شمولية، يسمى ببحوث العمليات، أو البحث العملياتي، التي تتعلق جميعها بمسائل التنظيم والإدارة ومسائل النقل والزراعة والصناعة وما إلى ذلك.

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

آلية وضْع البرنامج الرياضي الخطي

لوضع البرنامج الرياضي الخطي يجب اتباع الخطوات التالية:
1.تحديد المتحولات التي يجب إيجاد قيمها (متحولات القرار) وتمثيلها برموز جبرية.
2.تحديد جميع القيود والعلاقات الممكنة التي تربط بين هذه المتحولات، ويعبَّر عن ذلك بمعادلات خطية أو متراجحات بحيث تكون هذه القيود خطية.
3.تحديد تابع الهدف وتمثيله بتابع خطي بالنسبة للمتحولات، وتحديد ما إذا كان الهدف من المسألة تعظيم التابع الهدفي أو تقليله.

ويمكننا أن نكتب البرنامج الرياضي الخطي بطريقة المصفوفات كما يلي:

حيث عدد المتحولات غير المعلومة هو n وعدد القيود m و A مصفوفة القيود m×n و c متجهة عمود ب n مركبة و b متجهة عمود ب m مركبة أيضاً و T يرمز إلى المنقول.

إن حل البرنامج السابق يعني إيجاد القيمة الحقيقية التي تعطي التابع قيمة أعظميه (قيمة مثلى للتابع) على منطقة القيود، التي تسمى عادة منطقة الإمكانات. أما إذا أردنا أن نفتش عن النقطة (قيم مثلى للمتحولات) من منطقة الإمكانات، والتي توافق القيمة فنكتب المسألة على الشكل التالي:

ويجب الإشارة هنا إلى أن العلاقة التالية في مسائل التفضيل دوماً صحيحة:

وهذا يعني أن الخوارزميات الموضوعة لحل البرامج الرياضية الخطية في حالة تعظيم، هي نفسها تصلح لحل البرامج الرياضية الخطية في حالة تقليل، وذلك بالاستفادة من العلاقة السابقة. الثنائية في البرمجة الخطية A series of linear constraints on two variables produces a region of possible values for those variables. Solvable problems will have a feasible region in the shape of a simple polygon.

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

البرنامج الخطي الثنائي للبرنامج الرياضي الخطي

حيث

يعطى كما يلي:

حيث

إذا كان للمسألة (P) حل مثالي ولنرمز له بـ وكذلك للمسألة حل مثالي ولنرمز له بـ فعندئذ يكون لدينا.

[عدل] أهم الخوارزميات لحل البرامج الرياضية الخطية

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

عملية حسابية وهي تعقيدية أسية. لكن في عام 1979م اقترح عالم روسي كاشيان (Khachian) طريقة جديدة لحل البرامج الرياضية الخطية بتعقيدية جبرية (O(n7L حيث n ترمز إلى عدد متحولات القرار و L ترمز إلى عدد البتات bits اللازمة لتوصيف معطيات الدخل للمسألة الخطية (c,b,A) وهذه الطريقة تعرف بطريقة القطوع الناقصة. إن هذه الطريقة مبنية بناء رياضياً مبدعاً، وهي تتفوق على طريقة السمبلكس نظرياً، لكن في المسائل العملية بقيت السمبلكس أكثر استعمالاً وموثوقية، لأن طريقة كاشيان لم تعط نتائج أكثر دقة وقناعة في المسائل العملية الحقيقية. في عام 1984م حصل تحول كبير في البرمجة الخطية، إذ نشر العالم الأمريكي كارماركار (Karmarkar) طريقتة الشهيرة ذات التعقيدية الجبرية (O(n3.5L وعلى ما يبدو، هذه الطريقة واعدة إذ عولج بها كثير من المسائل التطبيقية، ولا سيما في البحوث البترولية، وأعطت نتائج ممتازة. لكن مع كل هذا سيبقى أمام طريقة السمبلكس أيضاً أيام جميلة بسبب سهولتها الفائقة.

مثال1: مسألة المزج

يراد تحضير منتج ذي تركيب معين بحيث تحتوي الواحدة منه على الكميات (bi(i=1,...,m من العناصر (Bi(i=1,...,m كحد أدنى ويمكن تحضير هذا المنتج من المواد (Aj(j=1,...,n حيث تحتوي الواحدة من Aj على الكمية aij من العنصر Bi وتكلف الواحدة من Aj المبلغ cj ويراد تحضير هذا المنتج بأقل كلفة ممكنة.

يصاغ البرنامج الخطي لهذه المسألة على الشكل التالي:

مثال2: مسألة التنظيم الغذائي

اقترح طبيب على مريضه أن يتناول يومياً كحد أدنى كميات معينة bi من فيتامينات أو مقويات أساسية i=1,2,...,m)Bi) ضرورية لجسمه. يريد هذا المريض أن يحصل على هذه الفيتامينات بتناوله الخضراوات والفواكه المتوفرة في الأسواق المحلية ولنرمز لهذه المواد بـ (Aj(j=1,...,n. لنفترض أن ثمن الوحدة الواحدة (مقدرة بـ غ أو كغ أو....الخ) من المادة Aj هو cj وحدة نقدية حيث تحتوي هذه الوحدة على الكمية aij من الفيتامين الأساسي الأول Bi و a2j من الفيتامين الأساسي الثاني B2 وهكذا...

والمطلوب في هذه المسألة تحديد الكميات (xj(j=1,...,n الواجب تناولها من المواد الغذائية من قبل المريض للحصول على تنظيم غذائي صحيح يحقق طلب الطبيب من جهة وبأقل التكاليف من جهة أخرى.

مثال3: مسألة تنظيم الإنتاج

لنفترض أن معملاً ينتج الأنواع (Aj(j=1,...,n من مادة معينة قابلة للتسويق، حيث يجري في عملية الإنتاج استخدام المواد الأولية (Bi(i=1,...,m المتوفر منها في المعمل وفي الوقت الحاضر الكميات (bi(i=1,...,m. إذا كانت الوحدة الواحدة من المنتج Aj تستهلك من المادة الأولية Bi الكمية aij وإذا كان الربح الصافي من إنتاج تلك الوحدة هو فالمطلوب تنظيم الإنتاج بحيث يحقق المعمل ربحاً أعظمياً.

ملف مرفق: 
المرفقالحجم
PDF icon _lkhTy.pdf168.12 كيلوبايت
Microsoft Office document icon Linear_Programming.doc256 كيلوبايت
ملحقات المادة الدراسية