برمجة عشوائية
{{يتيمة|تاريخ=فبراير 2015}}

في مجال [[استمثال (رياضيات)|الاستمثال]]، تعتبر '''البرمجة العشوائية''' الهيكل الأساسي لحل المشاكل المتعلقة بالنمذجة القائمة على عدم التأكد.<ref>[https://are.ucdavis.edu/aredepart/facultydocs/Howitt/Polyapprox3a.pdf/ "Using Polynomial Approximations to Solve Stochastic Dynamic Programming Problems: or A "Betty Crocker " Approach to SDP."]{{وصلة مكسورة|date=يوليو 2018 |bot=JarBot }}University of California, Davis, Department of Agricultural and Resource Economics Working Paper. {{استشهاد بويب |مسار=https://are.ucdavis.edu/aredepart/facultydocs/Howitt/Polyapprox3a.pdf/ |عنوان=نسخة مؤرشفة |تاريخ الوصول=18 ديسمبر 2017 |تاريخ أرشيف=11 سبتمبر 2006 |مسار أرشيف=https://web.archive.org/web/20060911233246/http://www.agecon.ucdavis.edu/aredepart/facultydocs/Howitt/Polyapprox3a.pdf |حالة المسار=bot: unknown }}{{وصلة مكسورة}}</ref><ref>{{استشهاد بكتاب| الأخير1=Shapiro|الأول1=Alexander|الأخير2=[[Darinka Dentcheva|Dentcheva]]|الأول2=Darinka|الأخير3=[[Andrzej Piotr Ruszczyński|Ruszczyński]]|الأول3=Andrzej|عنوان=Lectures on stochastic programming: Modeling and theory| سلسلة=MPS/SIAM Series on Optimization| المجلد=9| ناشر=Society for Industrial and Applied Mathematics (SIAM)|مكان=Philadelphia, PA |وكالة=Mathematical Programming Society (MPS)| سنة=2009|صفحات=xvi+436|isbn=978-0-89871-687-0| مسار=http://www2.isye.gatech.edu/people/faculty/Alex_Shapiro/SPbook.pdf | mr=2562798 | مسار أرشيف = https://web.archive.org/web/20200324131907/https://www2.isye.gatech.edu/people/faculty/Alex_Shapiro/SPbook.pdf | تاريخ أرشيف = 24 مارس 2020 }}</ref><ref>{{استشهاد بكتاب|الأول2=Alexander|الأخير2=Shapiro|الأخير1=[[Andrzej Piotr Ruszczyński|Ruszczyński]]|الأول1=Andrzej|عنوان=Stochastic Programming|ناشر=[[إلزيفير]]|سنة=2003|isbn=978-0444508546|سلسلة=Handbooks in Operations Research and Management Science|المجلد=10|مكان=Philadelphia|صفحات=700}}</ref> في حين أن مشاكل النمذجة المحددة تصاغ باستخدام بارامترات معلومة. وتشمل مشاكل الواقع بعض البارامترات غير المعلومة، في حال وقوع البارامترات ضمن حدود معينة تكون هناك طريقة واحدة لحل هذا النوع من المشاكل تسمى النمذجة القوية (Robust Optimization)، والهدف من البرمجة العشوائية هو العثور على حل مناسب وأمثل لجميع البيانات. نماذج البرمجة العشوائية متشابهة في الأسلوب لكن تأخذ في عين الاعتبار حقيقة أن التوزيعات الاحتمالية التي تحكم البيانات معلومة أو يمكن حسابها. والهدف هنا هو إيجاد خطة مناسبة لكل أو بالكاد كل البيانات وهذه الخطة تتوقع بعض القرارات والمتغيرات العشوائية. عموما هذه النماذج تتم صياغتها وحلها نظريا وعدديا وتحليلها لتوفير معلومات مفيدة لمتخذي القرار.

== المشاكل ذات المرحلتين ==
الفكرة الأساسية التي تقوم عليها مشاكل البرمجة العشوائية ذات المرحلتين هي أن القرارات المثلى يجب أن تكون قائمة على البيانات المتاحة في الوقت الذي تم فيه اتخاذ القرار ويجب ألا تعتمد على الملاحظات المستقبلية.

الصيغة العامة للمشاكل ذات المرحلتين توصف كالتالي

<math>
\min_{x\in X}\{ g(x)= f(x) + E[Q(x,\xi)]\}
</math>

حيث <math>Q(x,\xi) </math> هي القيمة المثلى للمشكلة ذات المرحلة الثانية

<math>
\min_{y}\{ q(y,\xi)| T(\xi)x+W(\xi) y = h(\xi)\}
</math>

مشاكل البرمجة الخطية العشوائية يمكن صياغتها كالآتي

<math>
\begin{array}{llr}
\min\limits_{x\in \mathbb{R}^n}   &g(x)= c^T x + E[Q(x,\xi)]    &   \\
\text{subject to} & Ax    =    b &\\
		    & x     \geq 0 &
\end{array}
</math>

حيث <math>Q(x,\xi) </math> هي القيمة المثلى للمشكلة ذات المرحلة الثانية

<math>
\begin{array}{llr}
\min\limits_{y\in \mathbb{R}^m}   & q(\xi)^T y     &   \\
\text{subject to} & T(\xi)x+W(\xi)y    =    h(\xi) &\\
		    & y     \geq 0 &
\end{array}
</math>

في هذه الصيغة <math>x\in \mathbb{R}^n</math> هو المتجه الخاص بمتغيرات القرار في المرحلة الأولى و <math>y\in \mathbb{R}^m</math> هو المتجه الخاص بـمتغيرات القرار في المرحلة الثانية. في هذه الصيغة; في حاله المرحلة الاولي نكون بحاجه لاتخاذ قرار <math>x</math> حالا قبل إدراك المعلومات غير المؤكدة <math>\xi</math>. في المرحلة الثانية بعد إدراك <math>\xi</math>, نقوم بتحسين الأداء عن طريق حل المشكلة المناسبة.

في الخطوة الأولى نقوم بأمثلة الـ <math>c^Tx</math> الخاصة بالمرحلة الأولى إلى جانب الـ <math>c^Tx</math> الخاص بالمرحلة الثانية وهذا يمكننا من عرض مشاكل المرحلة الثانية على أنها مشكلة نمذجة، حيث أنها تقوم بوصف الحل الافتراضي الأمثل في حالة أن تكون المعلومات غير مؤكدة.

=== فرض التوزيع ===
صياغة مشاكل المرحلتين التي تم شرحها مسبقا تفترض أن المعلومات الخاصة بالمرحلة الثانية يمكن وصفها على أنها متجه عشوائي ذات توزيع احتمالي معلوم. على سبيل المثال <math>\xi</math> من الممكن أن يكون معلومات تم الوصول إليها عن طريق معلومات مسبقة مع العلم أن التوزيع لم يتغير مع طول الفترة الزمنية. في مثل هذه الحالات من الممكن حساب التوزيع الاحتمالي المطلوب والقيام بالنمذجة ويمكن أن تفسر باستخدام قانون الأرقام الكبيرة.

=== التقسيم ===
لحل مشاكل النمذجة العشوائية ذات المرحلتين عددياً، نحتاج غالبا لفرض أن المتجه العشوائي يحتوي على عدد من الحالات الممكنة المسماة بسيناريوهات حيث أن <math>\xi_1,\dots,\xi_K</math> مناظره للاحتمالات <math>p_1,\dots,p_K</math> وبذلك ممكن أن تصاغ دالة الهدف (Objective function) الآتي:

<math>
E[Q(x,\xi)]=\sum\limits_{k=1}^{K} p_kQ(x,\xi_k)
</math>

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

== البرمجة العشوائية الخطية ==

هي حالة خاصة بمشاكل المرحلتين الاعتيادية للبرمجة العشوائية. البرمجة العشوائية الخطية قائمة على تجميع المشاكل الخطية ذات الفترات المتعددة كل منها له نفس البناء لكن باختلاف بسيط في البيانات. البرمجة الخطية ذات الفترتين تقوم بعرض الـ<math>k^{th}</math> سيناريو في الصيغة الآتية:

<math>	
\begin{array}{lccccccc}
\text{Minimize} & f^T x & + & g^T y & + & h_k^Tz_k &  &  \\ 	
\text{subject to} & Tx & + & Uy &  &  & = & r \\ 	
 &  &  & V_k y & + & W_kz_k & = & s_k \\ 
 & x & , & y & , & z_k & \geq & 0
\end{array}
</math>

المتجهين <math>x</math> و <math>y</math> يشملان متغيرات الفترة الاولي حيث انه يجب اختيار قيمتهم فورا. المتجه <math>z_k</math> يحتوي على جميع المتغيرات للفترات التالية. القيود <math>Tx + Uy = r</math> تشمل متغيرات الفترة الأولى ولا تتغير من سيناريو لأخر، القيود الخرى تتضمن متغيرات الفترات الأخرى وتختلف من سيناريو لأخر وتعكس عدم التأكد من المستقبل.
 لاحظ أن حل مشاكل البرمجة الخطية للفترتين مكافئه لفرض الـ <math>k^{th}</math> سيناريو في الفترة الثانية مع عدم التأكد.

=== التحديد المكافئ للمشكلة العشوائية ===
باستخدام عدد محدود من السيناريوهات، يمكن وصف مشاكل البرمجة الخطية العشوائية ذات المرحلتين على أنها مشاكل برمجه خطيه كبيرة. هذه الصيغة غالبا ما يطلق عليها التحديد المكافئ للمشكلة العشوائية. التحديد المكافئ هو أي عملية حسابية يمكن أن تستخدم لحساب الحل الأمثل للمرحلة الأولى. على سبيل المثال نجعل الاحتمالية <math>p_k</math>  لكل سيناريو حيث <math>k=1,\dots,K</math> ثم نقوم بتقليل القيمة المتوقعة للهدف كالآتي

<math>
\begin{array}{lccccccccccccc}
\text{Minimize} & f^T x & + & g^T y & + & p_1h_1^Tz_1 & + & p_2h_2^Tz_2 & + & \cdots & + & p_Kh_K^Tz_K &  &  \\ 
\text{subject to} & Tx & + & Uy &  &  &  &  &  &  &  &  & = & r \\ 
 &  &  & V_1 y & + & W_1z_1 &  &  &  &  &  &  & = & s_1 \\ 
 &  &  & V_2 y &  &  & + & W_2z_2 &  &  &  &  & = & s_2 \\ 
 &  &  & \vdots &  &  &  &  &  & \ddots &  &  &  & \vdots \\ 
 &  &  & V_Ky &  &  &  &  &  &  & + & W_Kz_K & = & s_K \\ 
 & x & , & y & , & z_1 & , & z_2 & , & \ldots & , & z_K & \geq & 0 \\ 
\end{array}
</math>

لكل سيناريو <math>k</math> يوجد متجه <math>z_k</math> مختلف والمتغيرات <math>x</math> و <math>y</math> لا تتغير من سيناريو لأخر.

== بناء السيناريوهات ==

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

في نظرية أخرى بعض القياسات تم حسابها لضمان أن الحل الذي تم الحصول عليه يقوم بحل المشكلة الأصلية بدقة مناسبة. عادة في التطبيقات، الحل الأمثل للمرحلة الأولى فقط هو قيمة معينة.

نفترض أن <math>\xi</math> تشمل <math>d</math> عناصر عشوائية مستقلة، كل منها له ثلاث حالات ممكنة لذلك يكون عدد السيناريوهات <math>K=3^d</math> .النمو الطبيعي لعدد السيناريوهات يجعل تحسين النماذج بالاستناد إلى رأي خبير صعبًا للغاية.

=== أخذ العينات بطريقة مونت كارلو ===
تستخدم طريقة مونت كارلو لتقليل السيناريوهات لحجم معقول. بفرض أن عدد السيناريوهات كبير جدا أو حتى لا نهائي وبفرض أيضا أننا نستطيع استخراج عينات <math>\xi^1,\xi^2,\dots,\xi^N</math> لعدد <math>N</math> من التكرارات للمتجه العشوائي <math>\xi</math>

<math>
\hat{q}_N(x) = \frac{1}{N} \sum_{j=1}^N Q(x,\xi^j)
</math>

حيث أن المشكلة ذات المرحلة الأولى تصاغ كالآتي

<math>
\begin{array}{rlrrr}
\hat{g}_N(x)=&\min\limits_{x\in \mathbb{R}^n}   & c^T x + \frac{1}{N} \sum_{j=1}^N Q(x,\xi^j)    &   \\
&\text{subject to} & Ax    &=&    b \\
&		    & x     &\geq& 0
\end{array}
</math>

و تعرف هذه الصيغة بتقريب متوسط العينة.

== الاستدلال الإحصائي ==
بفرض أن مشكلة البرمجة العشوائية تكون كالتالي

<div class="center" style="width: auto; margin-left: auto; margin-right: auto;"><math>
\min\limits_{x\in X}\{ g(x) = f(x)+E[Q(x,\xi)] \}
</math></div>

بفرض أن هناك عينات <math>\xi^1,\dots,\xi^N</math> لعدد <math>N</math> حلول للمتجه العشوائي <math>\xi</math> . العينة العشوائية من الممكن أن توصف على أنها معطيات سابقة لعدد <math>N</math> ملاحظات ل<math>\xi</math> أو يمكن استنباطها بطريقة مونت كارلو ويمكن صياغة تقريب متوسط العينة كالآتي:

<div class="center" style="width: auto; margin-left: auto; margin-right: auto;"><math>
\min\limits_{x\in X}\{ \hat{g}_N(x) = f(x)+\frac{1}{N} \sum_{j=1}^N Q(x,\xi^j) \}
</math></div>

=== اتساق مقدرات تقريب متوسط العينة ===
بفرض أن مجموعة <math>X</math> من مشاكل تقريب متوسط العينة ثابتة، بمعنى أن تكون مستقلة عن العينة. وبجعل <math>\vartheta^*</math> و <math>S^*</math> القيمة الأمثل والمجموعة الأمثل للحلول بالترتيب.

# بفرض أن <math>g: X \rightarrow \mathbb{R}</math> هو تسلسل القيم الحقيقية للدوال
# إذا كان الـ objective الخاص بـ تقريب متوسط العينة <math>\hat{g}_N(x)</math> يتقارب مع objective المشكلة الحقيقية حيث تكون الاحتمالية = 1 <math>N \rightarrow \infty</math>
# •	بفرض أن:
#* المجموعة <math>S</math> من الحلول الأمثل للمشاكل الحقيقية واردة في ال<math>C</math>
#* الدالة<math>g(x)</math> محدودة القيمة ومتصلة عند الـ <math>C</math>
#* المتسلسلة الخاصة بالدالة <math>\hat{g}_N(x)</math> تقترب من الـ <math>g(x)</math> أن تكون الاحتمالية 1 لكل <math>N \rightarrow \infty</math>

== التطبيقات البيولوجية ==
البرمجة الديناميكية العشوائية تستخدم لنمذجة سلوك الحيوان في مجالات مختلفة مثل البيئة السلوكية. الاختبارات التجريبية لنمذجة السلوك الأمثل للبحث عن المؤن، التحولات الحياتية مثل الطيور الوليدة أو وضع البيض في الطفيليات، وظهرت نتائج النمذجة في شرح تطور عملية أخذ القرار السلوكي. هذه النماذج عادة ما تكون متعددة المراحل وليس من مرحلتين فقط.

== التطبيقات الاقتصادية ==
- التطبيقات الاقتصادية: البرمجة الديناميكية العشوائية أداة مهمة في فهم عملية اتخاذ القرار تحت ظرف عدم التأكد. تراكم رأس المال في حالة عدم التأكد تعتبر مثالًا. عاده ما يستخدم من قبل الاقتصاديين لتحليل المشاكل الحيوية الاقتصادية والتي يدخل فيها عدم التأكد مثل المناخ.

== مراجع ==

{{مراجع}}
[[:en:Stochastic programming|Stochastic programming]]

== قراءات أخرى ==
* John R. Birge and François V. Louveaux. ''Introduction to Stochastic Programming''. Springer Verlag, New York, 1997.
* {{استشهاد بكتاب | الأخير1=Kall|الأول1=Peter |الأخير2=Wallace|الأول2=Stein W.| عنوان=Stochastic programming |  سلسلة=Wiley-Interscience Series in Systems and Optimization| ناشر=John Wiley & Sons, Ltd.| مكان=Chichester|سنة=1994|صفحات=xii+307|ردمك=0-471-95158-7| مسار= http://stoprog.org/index.html?introductions.html |mr=1315300|مسار أرشيف= https://web.archive.org/web/20120320084430/http://stoprog.org/index.html?introductions.html|تاريخ أرشيف=2012-03-20}}
* G. Ch. Pflug: ''Optimization of Stochastic Models. The Interface between Simulation and Optimization''. Kluwer, Dordrecht, 1996.
* [[Andras Prekopa]]. Stochastic Programming. Kluwer Academic Publishers, Dordrecht, 1995.
* [[Andrzej Piotr Ruszczyński|Andrzej Ruszczynski]] and Alexander Shapiro (eds.) (2003) ''Stochastic Programming''. Handbooks in Operations Research and Management Science, Vol. 10, Elsevier.
* {{استشهاد بكتاب| الأخير1=Shapiro|الأول1=Alexander|الأخير2=[[Darinka Dentcheva|Dentcheva]]|الأول2=Darinka|الأخير3=[[Andrzej Piotr Ruszczyński|Ruszczyński]]|الأول3=Andrzej|عنوان=Lectures on stochastic programming: Modeling and theory| سلسلة=MPS/SIAM Series on Optimization| المجلد=9| ناشر=Society for Industrial and Applied Mathematics (SIAM)|مكان=Philadelphia, PA |وكالة=Mathematical Programming Society (MPS)| سنة=2009|صفحات=xvi+436|ردمك=978-0-89871-687-0| مسار= http://www2.isye.gatech.edu/people/faculty/Alex_Shapiro/SPbook.pdf | mr=2562798|مسار أرشيف= https://web.archive.org/web/20170329055122/http://www2.isye.gatech.edu:80/people/faculty/Alex_Shapiro/SPbook.pdf|تاريخ أرشيف=2017-03-29}}
* Stein W. Wallace and William T. Ziemba (eds.) (2005) ''Applications of Stochastic Programming''. MPS-SIAM Book Series on Optimization 5
* {{استشهاد بكتاب | الأخير1=King|الأول1=Alan J.|الأخير2=Wallace|الأول2=Stein W.| عنوان=Modeling with Stochastic Programming |  سلسلة=Springer Series in Operations Research and Financial Engineering| ناشر=Springer| مكان=New York|سنة=2012|ردمك=978-0-387-87816-4| مسار= http://www.springer.com/mathematics/probability/book/978-0-387-87816-4|مسار أرشيف= https://web.archive.org/web/20141004061229/http://www.springer.com:80/mathematics/probability/book/978-0-387-87816-4|تاريخ أرشيف=2014-10-04}}

{{ضبط استنادي}}
{{شريط بوابات|علم الحاسوب}}

[[تصنيف:استمثال رياضي]]
[[تصنيف:برمجة]]
في مجال الاستمثال، تعتبر البرمجة العشوائية الهيكل الأساسي لحل المشاكل المتعلقة بالنمذجة القائمة على عدم التأكد."Using Polynomial Approximations to Solve Stochastic Dynamic Programming Problems: or A "Betty Crocker " Approach to SDP."University of California, Davis, Department of Agricultural and Resource Economics Working Paper.  في حين أن مشاكل النمذجة المحددة تصاغ باستخدام بارامترات معلومة. وتشمل مشاكل الواقع بعض البارامترات غير المعلومة، في حال وقوع البارامترات ضمن حدود معينة تكون هناك طريقة واحدة لحل هذا النوع من المشاكل تسمى النمذجة القوية (Robust Optimization)، والهدف من البرمجة العشوائية هو العثور على حل مناسب وأمثل لجميع البيانات. نماذج البرمجة العشوائية متشابهة في الأسلوب لكن تأخذ في عين الاعتبار حقيقة أن التوزيعات الاحتمالية التي تحكم البيانات معلومة أو يمكن حسابها. والهدف هنا هو إيجاد خطة مناسبة لكل أو بالكاد كل البيانات وهذه الخطة تتوقع بعض القرارات والمتغيرات العشوائية. عموما هذه النماذج تتم صياغتها وحلها نظريا وعدديا وتحليلها لتوفير معلومات مفيدة لمتخذي القرار.

 المشاكل ذات المرحلتين 
الفكرة الأساسية التي تقوم عليها مشاكل البرمجة العشوائية ذات المرحلتين هي أن القرارات المثلى يجب أن تكون قائمة على البيانات المتاحة في الوقت الذي تم فيه اتخاذ القرار ويجب ألا تعتمد على الملاحظات المستقبلية.

الصيغة العامة للمشاكل ذات المرحلتين توصف كالتالي

حيث  هي القيمة المثلى للمشكلة ذات المرحلة الثانية

مشاكل البرمجة الخطية العشوائية يمكن صياغتها كالآتي

حيث  هي القيمة المثلى للمشكلة ذات المرحلة الثانية

في هذه الصيغة  هو المتجه الخاص بمتغيرات القرار في المرحلة الأولى و  هو المتجه الخاص بـمتغيرات القرار في المرحلة الثانية. في هذه الصيغة; في حاله المرحلة الاولي نكون بحاجه لاتخاذ قرار  حالا قبل إدراك المعلومات غير المؤكدة . في المرحلة الثانية بعد إدراك , نقوم بتحسين الأداء عن طريق حل المشكلة المناسبة.

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

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

 التقسيم 
لحل مشاكل النمذجة العشوائية ذات المرحلتين عددياً، نحتاج غالبا لفرض أن المتجه العشوائي يحتوي على عدد من الحالات الممكنة المسماة بسيناريوهات حيث أن  مناظره للاحتمالات  وبذلك ممكن أن تصاغ دالة الهدف (Objective function) الآتي:

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

 البرمجة العشوائية الخطية 

هي حالة خاصة بمشاكل المرحلتين الاعتيادية للبرمجة العشوائية. البرمجة العشوائية الخطية قائمة على تجميع المشاكل الخطية ذات الفترات المتعددة كل منها له نفس البناء لكن باختلاف بسيط في البيانات. البرمجة الخطية ذات الفترتين تقوم بعرض الـ سيناريو في الصيغة الآتية:

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

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

لكل سيناريو  يوجد متجه  مختلف والمتغيرات  و  لا تتغير من سيناريو لأخر.

 بناء السيناريوهات 

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

في نظرية أخرى بعض القياسات تم حسابها لضمان أن الحل الذي تم الحصول عليه يقوم بحل المشكلة الأصلية بدقة مناسبة. عادة في التطبيقات، الحل الأمثل للمرحلة الأولى فقط هو قيمة معينة.

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

 أخذ العينات بطريقة مونت كارلو 
تستخدم طريقة مونت كارلو لتقليل السيناريوهات لحجم معقول. بفرض أن عدد السيناريوهات كبير جدا أو حتى لا نهائي وبفرض أيضا أننا نستطيع استخراج عينات  لعدد  من التكرارات للمتجه العشوائي 

حيث أن المشكلة ذات المرحلة الأولى تصاغ كالآتي

و تعرف هذه الصيغة بتقريب متوسط العينة.

 الاستدلال الإحصائي 
بفرض أن مشكلة البرمجة العشوائية تكون كالتالي

بفرض أن هناك عينات  لعدد  حلول للمتجه العشوائي  . العينة العشوائية من الممكن أن توصف على أنها معطيات سابقة لعدد  ملاحظات ل أو يمكن استنباطها بطريقة مونت كارلو ويمكن صياغة تقريب متوسط العينة كالآتي:

 اتساق مقدرات تقريب متوسط العينة 
بفرض أن مجموعة  من مشاكل تقريب متوسط العينة ثابتة، بمعنى أن تكون مستقلة عن العينة. وبجعل  و  القيمة الأمثل والمجموعة الأمثل للحلول بالترتيب.

 بفرض أن  هو تسلسل القيم الحقيقية للدوال
 إذا كان الـ objective الخاص بـ تقريب متوسط العينة  يتقارب مع objective المشكلة الحقيقية حيث تكون الاحتمالية = 1 
 •	بفرض أن:
 المجموعة  من الحلول الأمثل للمشاكل الحقيقية واردة في ال
 الدالة محدودة القيمة ومتصلة عند الـ 
 المتسلسلة الخاصة بالدالة  تقترب من الـ  أن تكون الاحتمالية 1 لكل 

 التطبيقات البيولوجية 
البرمجة الديناميكية العشوائية تستخدم لنمذجة سلوك الحيوان في مجالات مختلفة مثل البيئة السلوكية. الاختبارات التجريبية لنمذجة السلوك الأمثل للبحث عن المؤن، التحولات الحياتية مثل الطيور الوليدة أو وضع البيض في الطفيليات، وظهرت نتائج النمذجة في شرح تطور عملية أخذ القرار السلوكي. هذه النماذج عادة ما تكون متعددة المراحل وليس من مرحلتين فقط.

 التطبيقات الاقتصادية 
- التطبيقات الاقتصادية: البرمجة الديناميكية العشوائية أداة مهمة في فهم عملية اتخاذ القرار تحت ظرف عدم التأكد. تراكم رأس المال في حالة عدم التأكد تعتبر مثالًا. عاده ما يستخدم من قبل الاقتصاديين لتحليل المشاكل الحيوية الاقتصادية والتي يدخل فيها عدم التأكد مثل المناخ.

 مراجع 

Stochastic programming

 قراءات أخرى 
 John R. Birge and François V. Louveaux. Introduction to Stochastic Programming. Springer Verlag, New York, 1997.
 
 G. Ch. Pflug: Optimization of Stochastic Models. The Interface between Simulation and Optimization. Kluwer, Dordrecht, 1996.
 Andras Prekopa. Stochastic Programming. Kluwer Academic Publishers, Dordrecht, 1995.
 Andrzej Ruszczynski and Alexander Shapiro (eds.) (2003) Stochastic Programming. Handbooks in Operations Research and Management Science, Vol. 10, Elsevier.
 
 Stein W. Wallace and William T. Ziemba (eds.) (2005) Applications of Stochastic Programming. MPS-SIAM Book Series on Optimization 5
 

تصنيف:استمثال رياضي
تصنيف:برمجة