Professional Documents
Culture Documents
Simulation and Mod Ling
Simulation and Mod Ling
Books
المحاكاة والنمذجة
الدكتور رند القوتلي
هذا الكتاب منشور تحت رخصة المشاع المبدع – النسب للمؤلف – حظر االشتقاق ()CC– BY– ND 4.0
https://creativecommons.org/licenses/by-nd/4.0/legalcode.ar
يحق للمستخدم بموجب هذه الرخصة نسخ هذا الكتاب ومشاركته وإعادة نشره أو توزيعه بأية صيغة وبأية وسيلة للنشر وألية غاية تجارية
أو غير تجارية ،وذلك شريطة عدم التعديل على الكتاب وعدم االشتقاق منه وعلى أن ينسب للمؤلف األصلي على الشكل اآلتي حصرا:
رند القوتلي ،المحاكاة والنمذجة ،من منشورات الجامعة االفتراضية السورية ،الجمهورية العربية السورية2018 ،
https://creativecommons.org/licenses/by-nd/4.0/legalcode
.1ﻣا المحاكاة؟
oتھدف المحاكاة باستخدام الحاسب إلى محاكاة Simulateأو تقليد Imitateنظم Systems
موجودة ومستخدم ة في الواقع.
oلدراسة ھذه النظم يجب وضع فرضيات حول طريقة عملھا ،ھذه الفرضيات تؤدي عادة إلى
الحصول على معادالت رياضية ومنطقية .تشكل ھذه المعادالت والفرضيات نموذج النظام
.Model of the system
oعندما تكون العالقات التي تشكل النموذج قليلة التعقيد ،بحيث يمكن للمعادالت الرياضية أن
تعبر بشكل تام عن النظام يدعى النموذج عندھا بالنموذج التحليلي .Analytical Model عند وضع الفأرة
على المحاكاة
oعندما يكون النظام معقد ) كما في الحياة العملية( ،يمكن عندھا دراسة النظام فقط باستخدام
] 1إيضاح[
المحاكاة .Simulation
oتستخدم المحاكاة Simulationباستخدام الحواسب االلكترونية لجمع المعلومات والمعطيات
وذلك لتوقع طبيعة النظام الحقيقية 1 ] .إيضاح[
1
عند وضع الفأرة عند وضع الفأرة
على مكونات على المكونات
] 2إيضاح[ ] 2إيضاح[
2
للقيام بمحاكاة نظام ما باستخدام النموذج الرياضي ،يجب استخدام وسائل خاصة لتحقيق ذلك ،إذا من
المفيد تصنيف نماذج المحاكاة إلى ثالثة أصناف:
oالنموذج الستاتيكي Staticأو الديناﻣيكي :Dynamicنموذج المحاكاة الستاتيكي ھو
تعبير عن نظام ما عند وقت محدد ] 4مثال[ .أما النموذج الديناميكي فھو تعبير عن نظام ما
خالل فترات زمنية محددة 5 ] .مثال[
oالنموذج المحدد Deterministicأو العشوائي :Stochasticالنموذج المحدد ھو
النموذج الذي ال يحتوي على أي محددات عشوائية ] 6مثال[ .أما النموذج العشوائي فھو
النموذج الذي يحتوي على األقل محدد واحد عشوائي 7 ] .مثال[
oالنموذج المستمر والمتقطع :في النظام المتقطع تتغير معامالت النظام عند فترات زمنية
متفاوتة وغير ثابتة .بينما في النظام المستمر تتغير معامالت النظام بشكل مستمر مع
الزمن ،كما بينا سابقا.
3
.1.3تقنية زيادة الزﻣن Time- Advance Mechanism
oبسبب الطبيعة الدينامكية لنمذجة الحدث المتقطع فانه من الضروري تعقب بدقة تغيرات
الزمن المستخدم في المحاكاة ،وكذلك يجب تحديد آلية لزيادة الزمن خالل التغيرات من حدث
إلى حدث آخر.
oيدعى المتحول المستخدم لنمذجة تغيرات الزمن في نظام محاكاة ساعة المحاكي
.Simulation Clock
oإن وحدة الزمن المستخدمة لساعة المحاكي غير محددة تماما ً وذلك عند تصميم برنامج
المحاكاة بلغات برمجة عالية المستوى ] 7إيضاح[ ،ويمكن اعتبار وحدة الزمن مساوية إلى
تغيرات مدخالت النظام 8 ] .إيضاح[
oتوجد طريقتان لتحديد آلية لزيادة الزمن خالل المحاكاة:
• آلية الحدث القادم :Next even time Advancedوتستخدم في معظم نظم
المحاكاة ،حيث يزاد ساعة المحاكي عند ظھور حدث جديد.
• آلية زيادة الزمن الثابت :Fixed increment time advanceحيث يزاد متحول
ساعة المحاكي بصورة ثابتة مع مرور الزمن .وتعتبر حالة خاصة من النوع األول.
oعند استخدام آلية الحدث القادم يتم في البداية جعل قيمة متحول ساعة المحاكي مساوياً إلى
الصفر ،ويتم بعد ذلك تحديد األزمان المتوقعة لألحداث القادمة.
oعند ظھور أول حدث يتم تحديث متحوالت النظام ويتم تحديد قيمة ساعة المحاكي عند قيمة
أول زمن بدقة ،يتم كذلك تحديث قيم األزمنة المتوقعة لألحداث القادمة.
oعند ظھور الحدث التالي ،يتم أيضا تحديث متحوالت النظام ويتم تحديد قيمة ساعة المحاكي
عند قيمة ثاني زمن بدقة ،يتم كذلك تحديث قيم األزمنة المتوقعة لألحداث القادمة ،وھكذا
تستمر العملية حتى ظھور شرط التوقف.
] 9مثال[
4
.2.3ﻣكوﻧات ﻧمذجة الحدث المتقطع Components of Discrete Event
Simulation
oبالرغم من تنوع نظم المحاكاة باستخدام نمذجة الحدث المتقطع إال أنھا تشترك جميعھا بعدد
من المكونات ،بحيث يمكن أن تنظم ھذه المكونات لتساعد المبرمجين في تعديل البرمجيات
الحقا ً وكشف األخطاء.
oحالة النظام :System stateويمثل مجموعة المتحوالت المستخدمة في معرفة
حالة النظام عند زمن محدد.
oساعة المحاكي :Simulation Clockويمثل متحول يحتفظ بالقيمة الحالية للزمن
في المحاكاة.
oقائمة الحدث :Event listوھي قائمة تحتوي على طبيعة الحدث القادم.
oعدادات إحصائية :Statistical countersوھي عبارة عن متحوالت تحفظ قيم
اإلحصائية عن أداء النظام.
oبرنامج ابتدائي :Initialization routineبرنامج جزئي يستخدم إلعطاء القيم
االبتدائية لجميع المتحوالت عند البدء بالمحاكاة )أي عند الزمن .(0
oبرنامج التوقيت :Timing routineبرنامج جزئي يستخدم قائمة الحدث لمعرفة
الحدث القادم ومن ثم تحديث قيمة متحول ساعة المحاكي لتصبح مساوية لزمن
حدوث الحدث الجديد.
oبرنامج الحدث :Event routineبرنامج جزئي يحدث قيم متحوالت النظام عند
قدوم حدث ما )في أي نظام محاكاة يوجد برنامج جزئي واحد لكل حدث(.
oبرامج المكتبة :Library routinesوھي عبارة عن مجموعة برامج جزئية تقوم
بتوليد قيم عشوائية المطلوبة لنظام المحاكاة.
oمولد التقارير :Report generatorوھو عن برنامج جزئي يستخدم العدادات
اإلحصائية لكتابة التقارير عن نظام المحاكاة.
oالبرنامج الرئيسي :Main programوھو البرنامج الجزئي المسؤول عن إدارة
نظام المحاكاة ،ومن ثم إظھار التقارير وإنھاء المحاكاة.
5
. لنظام نمذجة الحدث المتقطعFlow control الشكل التالي يبين المخطط االنسيابيo
Start
2
Event Routing i
Library Routing
1. Update system state.
2. Update statistical counters. Generate random
3. Generate future events and add to variable
event list.
is
simulation No
over?
Report generator
1. Compute estimate of interest.
2. Write report.
Stop
6
.4بناء ﻧموذج ﻣحاكاة Building a simulation model
oيتصف أي نظام بالخصائص التالية:
• البيئة :Environmentأي نظام يمكن إن يرى عبارة عن نظام جزئي من نظام
أوسع.
• االعتمادية :Interdependencyال يمكن ألي فاعلية أن تكون مستقلة عن غيرھا.
• النظام الجزئي :Sub-systemيمكن ألي نظام أن يقسم إلى أنظمة جزئية.
• التنظيم :Organizationكل األنظمة عبارة عن مجموعة مكونات منظمة بشكل
كبير بحيث تتفاعل مع بعضھا البعض لتكون النظام.
oعند بناء نظام نمذجة لمحاكاة نظام في حقيقي ،فان ذلك يتم عن طريق محاكاة نظم جزئية
عند مستويات وتفاصيل مختلفة ومن ثم تجميع ھذه النظم الجزئية لتكوين النظام الكلي.
oيبين الشكل التالي كيف يتم نمذجة أنظمة جزئية مختلفة عند مستويات مختلفة ،لتشكل
بمجموعھا النظام الكامل.
مستويات
التفاصيل
7
oإن الخطوات األساسية المتبعة لبناء مبينة في الشكل التالي:
تعريف المشكلة
التحقق من النموذج
A
8
.5ﻣنھجية المحاكاة Simulation methodology
سنبين في ھذه الفقرة المنھجية المتبعة في بناء نظام محاكاة عبر عرض مثال بسيط ومشھور ،وھو
نظام خدمة الزبون لمخدم وحيد .Single Server Queuing
المسألة:
لنفترض أﻧنا ﻧريد بناء نظام محاكاة لنظام مخدم وحيد بعدد زبائن محدود .لنفترض انه لدينا
مصنع تعمل فيه آالت تساوي ،Mلنفترض أن كل اله تعمل لفترة زمنية محددة ثم تتعطل
وتتوقف عن العمل .ولنفترض أيضا انه يوجد لدينا عامل إصالح واحد فقط مسؤول عن
إصالح اآلالت المعطلة وبحيث تبقى اآللة معطلة حتى يتم إصالحھا من قبل العامل .ويتم
اإلصالح وفق مبدأ المتعطل أوالً يخدم أوالً ،FIFOبحيث تبقى اآلالت المعطلة تنتظر في
الصف حتى يأتي دورھا في اإلصالح.
وبالتالي كل آلة من اآلالت المصنع سوف تتبع دورة العمل التالية:
المطلوب
بناء نظام محاكاة لتحديد زمن توقف اآلالت عن العمل.
9
الحل:
• لمعرفة زمن توقف اآللة يجب معرفة الزمن الالزم إلصالح آلة وانتظار اآللة في
الصف.
• يمكن تشبيه عمل عامل اإلصالح بنظام بمخدم وحيد بعدد زبائن محدود.
عامل اإلصالح
عدد محدد من
اآلالت
• لنفترض أن زمن عمل اآللة بشكل طبيعي ھو عشر وحدات زمنية ،Unit time
ولنفترض أن زمن إصالح اآللة أيضا ً ثابت ويساوي خمس وحدات زمنية.
] 10إيضاح[
10
• الخطوة األولى تتم بتحديد األحداث eventsالمھمة والتي يؤدي ظھورھا إلى تغير
أحداث في النظام.
يمكن تمثيل األحداث بالنظام باستخدام مخططات األحداث event-grave
حيث يمثل كل حدث عبارة عن عقدة تتصل بالعقد األخرى بواسطة أسھم تشير إلى
انتقال األحداث في النظام.
] 10مثال[
• الخطوة الثالثة تتم بتحديد متحوالت التي تصف األحداث المتغيرة للنظام.
• الخطوة الثالثة ھي تحديد أداء النظام الذي يمكن أن يغير متحوالت النظام السابق
الذكر.
] 11إيضاح[
11
• لتحديد بدقة الحدثين السابقين يجب إضافة مجموعة متحوالت جديدة ،تعرف
بمتحوالت الساعة ،والذي يالحق مسار تغيرات وقت حدوث وانتھاء األحداث
السابقة.
• سوف يتم استخدام متحول ساعة لكل آلة ،حيث سوف يبين ھذا المتحول اللحظة
الزمنية التي تتعطل فيھا اآللة وتدخل في صف اإلصالح.
• كما سوف يستخدم متحول ساعة آخر ليحدد الزمن التي يتم فيھا إصالح اآللة.
• إي إذا كان لدينا mآلة فانه نحتاج إلى m+1متحول ساعة بحيث يستخدم m
متحول ليصف زمن تعطل كل آلة من اآلالت بينما نستخدم متحول واحد ليحدد زمن
إصالح أية آلة.
• كذلك يجب استخدام متحول ساعة عام master clockليالحق مسار متغيرات
نظام المحاكاة.
12
لنفترض إننا نرغب بإجراء محاكاة لثالث آالت في المعمل:
• لنفترض أن متحوالت الساعة لآلالت الثالث ھي CL2 ،CL1و CL3والتي
تصف زمن تعطل اآلالت الثالث.
• لنفترض أن المتحول الذي يصف إصالح الحد اآلالت السابقة ھو .CL4
• وان متحول الساعة العام ھو .MC
• وان المتحول Rيصف ما إذا كان العامل يقوم باإلصالح أم في حالة راحة.
• لنفترض أن الشروط االبتدائية والتي يحدث خاللھا األعطال ھي،CL1=1 :
CL2=4,و ،CL3=9وان زمن إصالح اآللة الواحدة ھو خمس وحدات زمنية
وان زمن عمل اآللة ھو عشر وحدات زمنية كما بينا سابقا.
] 14إيضاح[ 15 ]،إيضاح[.
13
يتم تحقيق محاكاة النظام السابق باستخدام لغة برمجة عالية المستوى ،يبين الشكل التالي
المخطط التدفق لبرنامج المحاكاة السابق.
] 16إيضاح[
14
ﻣلحقات
] 1إيضاح[
كمثال على استخدام المحاكاة ،لنفترض أن مدير مصنعا ً يريد يقيم دراسة لتوسيع مصنعه وذلك عن
طريق بناء قسم إضافي .ولكن مجلس إدارة المصنع غير متأكد من أن التوسع سوف يعطي المردود
االقتصادي الذي يغطي تكاليف اإلنشاء ،فمن غير المعقول بناء التوسع ومن ثم ھدمه إذا لم يغطي
تكاليفه االقتصادية) .يمكن الحصول على االيجابة باستخدام المحاكاة لدراسة المردود االقتصادي
للتوسع(.
] 2إيضاح[
أشخاص أو آالت.
] 1مثال[
فمثالً لدراسة نظام خدمة الزبائن في مصرف وذلك لتحديد عدد العاملين المفترض توظيفھم للحصول
على خدمة جيدة في صرف أو تحصيل الشيكات .فالنظام ھو عبارة عن نظام جزئي يدرس العالقة
بين الموظفين و الزبائن المنتظرين في الصف لتخديمھم.
] 2مثال[
نظام خدمة الزبائن في مصرف يعتبر نظام متقطع حيث يتغير عدد الزبائن في الصف عند قدوم
زبون جديد أو عند االنتھاء من تخديم زبون.
] 3مثال[
نظام الطائرة يعتبر نظام مستمر حيث يتغير معامالت النظام )كارتفاع وموقع الطائرة( بشكل مستمر
مع الزمن.
] 3إيضاح[
للمقارنة بين نتائج التجربة العملية للنظام ونتائج والنتائج العملية في حال تغير الشروط عندھا نحصل
على نتائج دقيقة للنظام .إال ان ھذه الطريقة مكلفة اقتصاديا ً.
] 4إيضاح[
وھي مقارنة بين نموذج فيزيائي )مثال دراسة تأثير حركة الھواء مولد بواسطة مراوح ضمن غرفة(،
وبين النموذج الرياضي المقابل.
15
] 5إيضاح[
لدراسة مدى وثوقية النموذج الرياضي ،وذلك بتحليل النتائج الرياضية يدويا ،أو باستخدام المحاكاة
عندما يكون التحليل الرياضي معقدا.
] 4مثال[
نموذج مونتي كارلو .Monte Carlo
] 5مثال[
نظام التغليف في مصنع.
] 6مثال[
نظام المحاكاة لتفاعل الكيماوي.
] 7مثال[
نظام خدمة الزبائن في مصرف.
] 6إيضاح[
عمليا تتغير متحوالت النظام بالنسبة لنقاط زمنية بعدد محدد تقريبا ً.
] 8مثال[
لنفرض إننا نريد محاكاة نظام خدمة الزبائن في متجر للحالقة حيث يقوم حالق واحد بخدمة الزبائن
المنتظرين ،وبحيث يراد حساب الزمن الذي يستغرقه الزبون في االنتظار )الفارق الزمني بين قدوم
الزبون إلى المتجر والزمن الذي يبدأ فيه بالحالقة( .ويمكن تحديد متحوالت النظام بـ:
-حالة الحالق )المخدم( ھل ھو مشغول ،idleأم غير مشغول .busyويفيد المتحول في
معرفة ھل الزبون الجديد سوف يخدم مباشرتا ً )عندما يكون الحالق غير مشغول( أو ينتظر
في الصف )عندما يكون الحالق مشغوالً(.
-عدد الزبائن المنتظرين في الصف .ويفيد المتحول في معرفة ما إذا كان المخدم سوف يصبح
غير مشغول ،أي يخدم أول زبون منتظر في الصف.
-زمن قدوم الزبون إلى متجر الحالقة .ويفيد ھذا المتحول في معرفة زمن انتظار الزبون في
الصف.
يوجد حدثين لھذا النظام ،وھما قدوم الزبون إلى متجر الحالقة ،واالنتھاء من تخديم الزبون.
16
] 7إيضاح[
كلغة Cمثال.
] 8إيضاح[
في معظم الحاالت ال توجد عالقة بين زمن المحاكاة وبين الزمن الحقيقي الذي يستغرقه برنامج
المحاكاة أثناء تنفيذه على الحاسب.
] 9إيضاح[
سوف نستخدم الطريقة األولى )آلية الحدث القادم (Next even time Advancedفي جميع نظم
المحاكة التي سوف نتحدث عنھا في ھذا المقرر.
] 9مثال[
لنحدد اآلن متحوالت النظام لنظام محاكاة لمتجر حالق المبين في ] ٨مثال[:
• :tiيمثل زمن قدوم الزبون رقم iإلى محل الحالقة.
• :Ai=ti-ti-1يمثل فرق الزمن بين قدوم الزبون رقم iو الزبون رقم i-1إلى محل الحالقة.
• :Siالزمن الذي يستغرقه الحالق لخدمة الزبون رقم ) iبدون زمن االنتظار(.
• :Diالزمن الذي ينتظره الزبون ذو الرقم iفي الصف )زمن التأخير( حتى يتم تخديمه.
• :ci=ti+Di+Siالزمن الالزم النتھاء من تخديم الزبون ذي الرقم ) iزمن رحيل الزبون(.
• :eiزمن ظھور الحدث .i
يبين الشكل التالي مثاال على دخول ثالثة زبائن إلى متجر الحالقة ،يخدم الزبون األول فور قدومه
إلى متجر الحالقة بسبب كون الحالق غير مشغول .يأتي الزبون الثاني عند الزمن t1وينتظر في
الصف كون الحالق مشغول في تخديم الزبون األول ،ثم يأتي الزبون الثاني عند الزمن t2وينتظر في
الصف كون الحالق مشغول في تخديم الزبون األول .عند الزمن c1يغادر الزبون األول ويبدأ بتخديم
الزبون الثاني فيكون زمن انتظار الزبون الثاني في الصف ھو ،A1وھكذا...
e0 e1 e2 e3 e4 e5
S1 S2
17
] 10إيضاح[
يمكن أن ندرس المسالة بتعقيد اكبر وذلك بافتراض ان زمن عمل وإصالح اآلالت غير متساوي
وغير ثابت وإنما يتغير بشكل عوائي.
] 10مثال[
يمكن أن نمثل مخطط األحداث لنظام محاكاة صف وفق الشكل التالي:
Arrival Departure
] 11إيضاح[
في مثالنا:
إن الحدث المھم المالحظ في ھذا النظام ھو تعطل اآللة.
أما متحول النظام التي تصف الحدث السابق ھو عدد اآلالت المعطلة .n
• إذا كان n=0فان عدد اآلالت المعطلة مساويا للصفر إي ال يوجد آالت تنتظر في الصف،
وعامل اإلصالح في حالة راحة.
• إذا كان n=1فانه توجد آله واحدة معطلة وال توجد اآلالت تنتظر في الصف ،ولكن عامل
اإلصالح يعمل بإصالح اآللة.
• في حالة n>1فانه توجد n-1اله تنتظر بالصف لحين إصالحھا وعامل اإلصالح يقوم
بإصالح اآللة األولى المعطلة.
18
] 12إيضاح[
يوصف ھذا الحدث وفق المخطط االنسيابي التالي:
تعطل اآللة
عامل نعم
دخول اآللة
اإلصالح في الصف
مشغول
عامل اإلصالح
أصبح مشغول
دورة اإلصالح
] 13إيضاح[
يوصف ھذا الحدث وفق المخطط االنسيابي التالي:
اآللة أصلحت
دورة إصالح
جديدة
] 14إيضاح[
نالحظ من الحل اليديوي للنظام السابق أن األحداث تحدث خالل أزمنة ثابتة ،٦ ،4 ،1 ،0
.....،16 ،11 ،٩بين ھذه األحداث يكون النظام مستقراً .أي يكفي لمراقب النظام التحقق من
النظام في ھذه األوقات فقط.
19
] 15إيضاح[
يمكن أن يوصف النظام بطريقة أوضح وفق المخطط الزمني التالي:
n
اآللة األولى
اآللة الثانية
3
اآللة الثالثة
2
1
0
1 2 3 4 5 6 7 8 9 10 11 12 t
] 16إيضاح[
على الطالب القيام بكتابة برنامج يحقق المخطط السابق ويقوم بتنفيذه ومالحظة النتائج عن
قيم مختلفة من المتحوالت والشروط االبتدائية.
20
التمارين
-1ھل تعتقد أن نظام المحاكي في مسألة إصالح اآلالت في مصنع قد أخذ بعين االعتبار أن
زمن إصالح اآللة متغير.
(Aنعم أخذ بعين االعتبار.
(Bال لم يأخذ بعين االعتبار.
-2ھل تعتقد أن نظام المحاكي في مسألة إصالح اآلالت في مصنع قد أخذ بعين االعتبار أن
زمن عمل اآللة ثابت.
(Aنعم أخذ بعين االعتبار
(Bال لم يأخذ بعين االعتبار.
-3ما ھو عدد عمال اإلصالح في نظام المحاكاة في مسألة إصالح اآلالت في مصنع.
(Aثالث عمال.
(Bعاملين.
(Cعامل واحد.
(Dمتغير حسب عدد اآلالت المعطلة.
21
ﻣسائل
-1أكتب برنامجا يقوم بإجراء محاكاة لنظام مخدم زبون وحيد إلصالح اآلالت في مصنع،
بحيث يقوم البرنامج بطباعة المخرجات التالية عند ظھور كل حدث ،وكرر التنفيذ حتى
الوصول إلى القيمة 20للساعة الرئيسية .Master clockثم تأكد من أن نظام المحاكاة التي
قمت بتنفيذه صحيحا ً عن طريق المحاكاة اليديوية.
-2قم بتنفيذ نظام محاكاة يدوية لنظام مخدم زبون في مصرف بحيث أن عدد المخدمين
المستخدمين واحد ،ثم قم بكتابة البرنامج للنظام وقم بتنفيذه كما في السؤال السابق.
-3كرر السؤال السابق عندما يكون لدينا مخدمين يقومان بتخديم الزبائن.
22
المدخل إلى االحتماالت و اإلحصاء
Basic Probability and Statistics
.1ﻣقدﻣة
oال يكفي فقط لتحقيق أية نظام محاكاة بشكل صحيحي إلى استنتاج مخطط التدفق النظام ومن
ثم تحقيق المخطط باستخدام برامج حاسوبية عالية المستوى ،وإنما يحتاج نظام المحاكاة إلى
مجموعة من متحوالت عشوائية و إحصائية ليكون اقرب إلى الواقع.
ال يتم استخدام االحتماالت واإلحصاءات لمحاكاة التصرف العشوائي للنظام ،ومن ثم oفمث ً
للتحقق من جودته وكفاءته،
oأو يتم استخدام االحتماالت واإلحصاءات الختيار تابع التوزيع االحتمالي لمتحوالت الدخل،
او لتوليد متحوالت عشوائية تحاكي ھذا التوزيع ،أو لتحليل نتائج النظام و تصميم التجربة
العملية الكاملة لنظام المحاكاة.
سوف نستعرض في ھذا الدرس بعض األفكار األساسية عن االحتماالت واألعداد العشوائية والمتعلقة
بنظام المحاكاة.
23
oيعرف المتحول العشوائي المتقطع Discreet Random Variableبأنه عبارة عن
مجموعة من األرقام العشوائية 4 ] ...،x2 ،x1مثال[ التي تأخذ قيم محددة.
oيعطى تابع االحتمال لمتحول العشوائي المتقطع بالعالقة:
∞
) p ( xi ) = P ( X ≤ xi for i = 1,2,... ⇒ ∑ p ( xi ) = 1
i =1
حيث ∋ تدل على االحتواء .أي احتمال أن المتحول Xينتمي إلى المجموعة Iيساوي إلى
مجموع احتمال ) p(xiلجميع قيم xiالمحصورة ضمن المجال .a≤xi≤b
oإن تابع التوزع االحتمال للمتحول العشوائي المتقطع يعطى:
= )F ( x ) ∑ p( x
xi i ≤ x
i ∞ < for all − ∞ < x
∞
oيسمى التابع ) f (xبتابع توزع الكثافة االحتمالي والذي يعبر عن جميع احتماالت الممكنة
للمتحول العشوائي المستمر 3 ] .Xإيضاح[
)f(x
)]P(X∈[x,x+∆x
24
] 6مثال[
.4توليد األعداد العشوائية Generating Random Numbers
oتستخدم األعداد العشوائية في كثير من التطبيقات ،فمث ً
ال:
oيمكن استخدام األعداد العشوائية في حساب التكامالت المعقدة.
oيمكن استخدام األعداد العشوائية في التحقق من كفاءة الخوارزميات.
oفي المحاكاة تستخدم األعداد العشوائية لمحاكاة الحاالت الحقيقية والتأكد من أداء
النظام.
oلقد استعرضنا في الفصل السابق مثاالً على إصالح آالت في المعمل بوجود عامل إصالح
واحد ،وذلك بافتراض أن زمن عمل اآللة ثابت وزمن اإلصالح أيضا ً ثابت ،ولكن في الحياة
العملية زمن اإلصالح أو زمن العمل متغير تبعا ً لنوع وطبيعة العطل ،إذاً من اجل محاكاة
المصنع بشكل واقعي يجب على نظام المحاكاة استخدام أعداد عشوائية.
oالستخدام األعداد العشوائية في نظام محاكاة بحيث تتبع تابع توزع احتمال مطلوب يجب أوال
التعرف على طرق توليد األعداد العشوائية المنتظمة باستخدام الحاسب.
25
.2 .4الطرق التطابقيه Congruential methods
oتعتمد الطرق التطابقية على توليد األعداد بطريقة محددة وثابتة ،أي باستخدام معادالت
محددة مسبقا لتوليد سلسلة من األعداد محددة ومعروفة مسبقاً ] 5إيضاح[ .
oفي الحقيقة سلسلة ھذه األعداد غير عشوائية ولكن يمكن اعتبارھا عشوائية إذا اجتازت
اختبارات خاصة مصممة لفحص األعداد العشوائية ] 6إيضاح [ .
oتعتمد ھذه الطريقة على العالقة التكرارية التالية:
)x i +1 = ax i + c(mod m
حيث ،m ، c ،a ،xiھي أعداد موجبة 7 ] .إيضاح[ 8 ] .مثال[ .
oنالحظ من المثال السابق ] 8مثال[ أن األعداد المولدة ھي شبه عشوائية وليست عشوائية
تماما الن األعداد تتكرر بعد عدد مرات محددة وان دورة التكرار ] 8إيضاح[ يمكن آن
تتغير عن اختيار قيم مختلفة للثوابت 9 ] .إيضاح[ .
oلتبسيط الطريقة السابقة يمكن تعديل العالقة التكرارية إلى:
)x i+1 = axi (mod m
حيث ، m ،a ،xiھي أعداد موجبة 10 ] .إيضاح[ .
oإذا كان دور التكرار ] 8إيضاح [ يساوي إلى mفان مولد المتحوالت العشوائية له دور
يسمى الدور بالدور الكامل .Full Periodو كلما كانت قيمة mكبيرة كان الدور كبيرا ً.
oللحصول على الدور الكامل يجب أن نحقق الشروط التالية:
• mو cيجب أن ال يكون لھما عامل مشترك .
• ) a=1(mod rحيث rعدد أولي للعدد mأي يقبل القسمة على نفسه أو .1
• ) a=1(mod 4إذا كانت mمن مضاعفات .4
• يمكن اختيار أية قيمة االبتدائية ، x0حيث ال تؤثر على عمل توليد السلسلة.
] 9مثال[
oويجب االنتباه إلى تجنب حدوث طفح في سجالت المعالج عندما تستخدم عمليات الضرب
عند حساب العدد العشوائي الجديد ،حيث يمكن أن يؤدي ذلك إلى توقف البرنامج آو إھمال
البيت األكثر أھمية في أثناء إجراء العمليات الحسابية ،مما يؤدي إلى الحصول على نتائج
خاطئة تماما ً.
.3.4طرق أخرى
بالرغم من أن الطريقة التطابقية ھي األكثر استخداماً لتوليد سلسلة األعداد العشوائية إال انه تم
تطوير طرق أخرى لتحسين أدائھا من حيث زيادة دور التكرار ،وتحسين خصائصھا من ھذه
الطرق:
• الطريقة التطابقية العامة .General congruential method
• المولد التركيبي .Composite generator
• مولد توسورث .Tausworthe generator
26
1.3.4الطريقة التطابقية العاﻣة General congruential method
oھذه الطريقة تستخدم معادلة التوليد التالية:
)xi +1 = f ( xi , xi −1 , xi − 2 ,....)(mod m
حيث ) f(xتابع ما يستخدم لتوليد الرقم xiمن مجموعة من األعداد العشوائية المولدة سابقا ً.
oمن التوابع الشھيرة التابع التربيعي والذي يأخذ الشكل التالي:
2
xi +1 = a1 xi + a 2 xi −1 + c
حيث a1, a2, cثوابت.
oعند جعل القيم a1=a2=1و c=0فإننا نحصل على طريقة متوسط التربيع ] 7مثال[
oالحالة الخاصة الثانية تدعى الطريقة التطابقية التجميعية والتي تعتمد على العالقة:
f ( xi , xi −1 , xi − 2 ,...., xi − k ) = a1 xi + a 2 xi −1 + L + a k xi − k
27
3 .3.4ﻣولد توسورث Tausworthe generator
oتعتمد ھذه الطريقة على الطريقة التطابقية التجميعية عندما يكون .m=2
)xi +1 = f ( xi , xi −1 , xi − 2 ,....)(mod 2
حيث
f ( xi , xi −1 , xi − 2 ,...., xi − k ) = a1 xi + a 2 xi −1 + L + a k xi − k
أي:
xi +1 = ( a1 xi + a 2 xi −1 + L + a k xi − k ) mod 2
حيث xiتأخذ احد القيمتين 0آو 11 ] .1إيضاح[
oيمكن تبسيط الطريقة باستخدام العالقة المنطقية 12 ] EX-ORإيضاح[ حيث تستخدم
مجموعة البيتات المولدة لتكوين سلسلة من n-bitsتشكل الرقم العشوائي المحصور بين
القيمة 0و .2n-1
28
1.5اختبارات التشغيل Runs Test
oيستخدم ھذا االختبار لمعرفة ما إذا كانت سلسلة األعداد العشوائية الزائفة مستقلة
independentأم ال
.
مثال السلسلة0.8, 0.7, 0.75, 0.55, 0.6, 0.7, 0.3, 0.4, 0.5 :
. 2سوف نقسم ھذه السلسلة إلى مجموعات من السالسل صغيرة run upيمكن أن يكون
طول الواحدة منھا عدد واحد ،وبحيث تكون األعداد العشوائية فيھا تتزايد بشكل
تصاعدي مثال: .
. 3ترمز السالسل الجزئية run upالمتساوية الطول بالرمز riحيث iط ول السلسلة
وبحيث تجمع جميع السالسل i≥ 6مع بعضھا البعض .
مثال.r1=1, r2=1, r3 =2 :
إذا عند قيمة لـ R ≥4000ف إن تابع التوزيع االحتمالي للعدد العشوائي سيكون بشكل
Chi-squareبدرجة حرية تساوي .6
29
2.5اختبار Chi-Square
oالخطوة التالية الختبار استقاللية المتحوالت المنطقية ،ھي باختبار توزع المنتظم
للمتحوالت المنطقية العشوائية.
oيتم اختبار chi-squareبإتباع الخطوات التالية:
.1ليكن لدينا سلسلة األعداد العشوائية المحصورة بين 0و .1
.2يتم تقسيم ھذه السلسلة إلى kسلسله جزئية بطول متساوي ،حيث .k>100
.3عدد األرقام العشوائية ضمن السلسلة الجزئية ذات الترتيب iيساوي fiبحيث
يجب أن يكون 13 ] .fi>5إيضاح[
.4إذا كانت األرقام العشوائية ضمن السلسلة الجزئية موزعة بشكل منتظم تماماً،
يتم حساب متوسط األرقام العشوائية ضمن السلسلة الجزئية n/k ،حيث nعدد
العينات.
] 14إيضاح[
.5يتم بعد ذلك حساب العالقة التالية:
k k n
χ = ∑ ( fi − )2
2
30
ﻣلحقات
] 1مثال[
عند رمي قطعة نقدية فإننا نحصل على الفضاء Sعلى احد النتيجتين ) Hالصورة( أو ) Tالنقش(:
}S = {H, T
] 2مثال[
عند رمي النرد فإننا نحصل على الفضاء Sعلى احد النتائج التالية:
}S = {1,2,3,4,5,6
] 3مثال[
عند رمي نردين في أن واحد فإننا نحصل على الفضاء التالي:
})S = {(1,1), (1,2), (1,3),...., (6,6
حيث يمثل الرقم األول iفي المجموعة ) (i, jبالرقم الناتج من النرد األول و jبالرقم الناتج من النرد
الثاني .ويمثل المتحول العشوائي Xھو ناتج جمع قمتي النردين.
] 1إيضاح[
سوف نرمز للمتحول العشوائي بالحرف الالتيني الكبير Z،Y،Xبينما لقيم المتحول العشوائي
بالحرف الصغير .x,y,z
] 2إيضاح[
يتميز تابع توزع االحتمالي بالخصائص التالية:
0≤F(x)≤1من اجل كل قيم .x
إن التابع ) F(xغير متناقص أي إذا كان x1<x2فان ).F(x1)≤F(x2
. xlim دوما ً lim F ( x) = 1و F ( x) = 0
∞→ − ∞→ x
سوف نرمز للمتحول العشوائي بالحرف الالتيني الكبير Z،Y،Xبينما لقيم المتحول العشوائي
بالحرف الصغير .x,y,z
31
] 3مثال[
نظام الطائرة يعتبر نظام مستمر حيث تتغير معامالت النظام )كتغير علو الطائرة( بشكل مستمر مع
الزمن.
] 4مثال[
األعداد الحقيقية المحصورة بين ٠و .1
] 5مثال[
األعداد الحقيقية الموجبة.
] 3إيضاح[
يعبر تابع الكثافة االحتمالي للمتحول العشوائي Xبأنه عدد مرات تكرار العدد العشوائي .xi
] 6مثال[
المتحول العشوائي المنتظم بين المجال ] [0, 1له تابع كثافة االحتمالي التالي:
)f(x
1
] 7مثال[
لنفترض أن العدد العشوائي القديم ھو 5772156649إذا بحساب المربع نجد النتيجة
33317 7923805949 09201أي أن الرقم العشوائي الجديد ھو.7923805949 :
32
] 4إيضاح[
من المھم معرفة ما إذا كانت ھذه الطريقة تولد سلسلة من األعداد العشوائية صحيحة بحيث ال يوجد
ترابط بين ھذه األعداد ،في الحقيقة ال يمكن مالحظة أن ھذه الطريقة ال تولد سلسلة من األعداد
العشوائية.
] 5إيضاح[
أي انك تستطيع معرفة قيمة العدد العشوائي مثال الخامس قبل توليد السلسة أصال.
] 6إيضاح[
يتم اختبار انتظام سلسلة األعداد وعدم ارتباط ھذه األعداد مع بعضھا البعض.
] 7إيضاح[
يتم حساب الرقم العشوائي الجديد xi+1من العدد القديم xiوذلك بضربه أوالً بالثابت aوجمع الناتج
مع الثابت cومن ثم تقسيم الناتج على mواختيار باقي القسمة فقط.
] 8مثال[
مثالً x0=a=c=7و m=10إذاً نحصل على:
x1=mod((7*7+7)/10)=mod(56/10)=mod(5.6)=6,
x2=mod((6*7+7)/10)=mod(49/10)=mod(4.9)=9,
x3=mod((9*7+7)/10)=mod(70/10)=mod(7.0)=0,
x4=mod((0*7+7)/10)=mod(7/10)=mod(0.7)=7,
x5=mod((7*7+7)/10)=mod(56/10)=mod(5.6)=6,
x6=mod((6*7+7)/10)=mod(49/10)=mod(4.9)=9,
…
] 8إيضاح[
ويعرف دور التكرار بعدد األرقام العشوائية )المسافة( التي تولدھا الخوارزمية )المعادلة( قبل أن
تتكرر مره أخرى.
33
] 9إيضاح [
قم باختيار قيم أخرى للثوابت m ، c ، aواحسب السلسلة وحاول آن تجد التكرار .
] 10إيضاح [
نالحظ أن سلسلة األعداد المولدة محصورة بين ٠و m-1ويمكن الحصول بسھولة على سلسلة
األعداد العشوائية محصورة بين 0و 1بتقسيم . xi/m
] 9مثال[
إن القيم المثالية المستخدمة في توليد سلسلة األعداد العشوائية ھي:
a =314, 159, 269, c=453, 806, 245, m =231
] 11إيضاح [
يمكن نالحظ أن ھذه الطريقة تولد سلسلة من البيت } ،{biوذلك عند افتراض أن aiذات قيم ثنائية
أيضاً
.
] 12إيضاح [
إن عالقة EX-ORتعطى وفق جدول الحقيقة التالي:
A B A⊕B
0 0 0
0 1 1
1 0 1
1 1 0
] 13إيضاح [
تسمى f iبالمراقب .observed
] 14إيضاح [
تعتمد فكرة اختبار chi-squareعلى حساب تغيرات الفرق بين القيمة المالحظة من القياس الحقيقي
) األعداد المولدة( وبين القيمة النظرية والمفترض الحصول عليھا.
] 15إيضاح [
يمكن للطالب تحميل الملف المرفق chi-square.pdfالذي يحتوي على جداول .χ 2
34
التمارين
-5أستخدم الطريقة التطابقية لتوليد سلسلة من األعداد العشوائية يدويا ً عندما تكون m=10و
c=7و a=1ومن ثم احسب دور التكرار.
-6أستخدم الطريقة التطابقية لتوليد سلسلة من األعداد العشوائية يدويا ً عندما تكون m=7و
c=5و a=3ومن ثم احسب دور التكرار.
-7أستخدم الطريقة التطابقية لتوليد سلسلة من األعداد العشوائية يدويا ً عندما تكون m=36و
c=5و a=3ومن ثم احسب دور التكرار ،ھل حققت الدور الكامل.
-8أستخدم الطريقة التطابقية العامة لتوليد سلسلة من األعداد العشوائية يدويا ً عندما تكون a3=7
و a2=5و a1=3و ، c=4وابتدأ من القيمة االبتدائية الواحد .من ثم احسب دور التكرار.
-9أستخدم الطريقة التطابقية العامة التجميعية لتوليد سلسلة من األعداد العشوائية يدويا ً عندما
تكون القيمة االبتدائية الواحد.
استخدم طريقة التوسورث لتوليد سلسلة من األعداد العشوائية يدويا ً عندما تكون -10
a3=7و a2=5و ، a1=3من ثم احسب دور التكرار.
35
ﻣسائل
-4أكتب برنامجا يقوم بإجراء بتوليد األعداد العشوائية وفق نفس الشروط في التمرين األول
السابق ،ثم ارسم الـ Histogramباستخدام برنامج Excelثم تأكد من النتائج باستخدام
Run testو .Chi-test
-5أكتب برنامجا يقوم بإجراء بتوليد األعداد العشوائية وفق نفس الشروط في التمرين الثاني
السابق ،ثم ارسم الـ Histogramباستخدام برنامج Excelثم تأكد من النتائج باستخدام
Run testو .Chi-test
-6أكتب برنامجا يقوم بإجراء بتوليد األعداد العشوائية وفق نفس الشروط في التمرين الثالث
السابق ،ثم ارسم الـ Histogramباستخدام برنامج Excelثم تأكد من النتائج باستخدام
Run testو .Chi-test
-7أكتب برنامجا يقوم بإجراء بتوليد األعداد العشوائية وفق نفس الشروط في التمرين الرابع
السابق ،ثم ارسم الـ Histogramباستخدام برنامج Excelثم تأكد من النتائج باستخدام
Run testو .Chi-test
-8أكتب برنامجا يقوم بإجراء بتوليد األعداد العشوائية وفق نفس الشروط في التمرين الخامس
السابق ،ثم ارسم الـ Histogramباستخدام برنامج Excelثم تأكد من النتائج باستخدام
Run testو .Chi-test
-9أكتب برنامجا يقوم بإجراء بتوليد األعداد العشوائية وفق نفس الشروط في التمرين السادس
السابق ،ثم ارسم الـ Histogramباستخدام برنامج Excelثم تأكد من النتائج باستخدام
Run testو .Chi-test
36
توليد األعداد العشوائية
Generating Stochastic Varieties
.1ﻣقدﻣة
oلقد استعرضنا في الفصل السابق طرق توليد األعداد العشوائية المحددة )الزائفة(
والموزعة بشكل منتظم .random numbers
oفي ھذا الفصل سوف ندرس طرق توليد األعداد العشوائية الغير محددة والتي
تسمى random variatesأو .stochastic variates
oحيث تلعب األعداد العشوائية المحددة دوراً مھماً في توليد األعداد العشوائية
الغير محددة.
37
مثال:
oلنفترض أننا نريد توليد أرقام عشوائية غير محددة لھا تابع الكثافة االحتمالي التالي:
2
f ( x ) = 2 x, 0 ≤ x ≤1
)f(x
أي:
١
x
)F(x F ( x) = ∫ 2tdt = x 2 0 ≤ x ≤1
r 0
38
1.3توليد األعداد العشوائية ﻣن تابع توزع ﻣنتظم
oإن تابع الكثافة االحتمالي للتوزع المنتظم يعطى بالعالقة:
1
a≤ x≤b
f ( x) = b − a ,
0 otherwise
)f(x
)1/(b-a
39
2 .3توليد األعداد العشوائية ﻣن تابع توزع أسي
oإن تابع الكثافة االحتمالي للتوزع األسي يعطى بالعالقة:
)f(x f ( x) = ae − ax , a > 0, x ≥ 0
ae-a2
40
3 .3توليد األعداد العشوائية ﻣن تابع إيرالﻧغ Erlang
oيستخدم في معظم نظم المحاكاة األعداد العشوائية الغير محددة والتي تتبع تابع توزع
االحتمالي األسي ولكنھا ال تغطي الحالة الواقعية لتغير متحوالت دخل نظام المحاكاة.
oبينما تتبع الحاالت الواقعية تغيرات متحوالت بتوزع احتمالي يساوي إلى مجموع توابع أسية
تتابع تسلسليا ً.
oعندما يكون متوسط meanھذه التوابع األسيه واحد تقريبا ً ،فان تابع التوزيع الكلي الناتج
يساوي إلى تابع توزيع إيرالنغ .Erlang
oإن تابع الكثافة االحتمالي للتوزع إيرالنغ ھو عبارة عن جداء طي لـ kتابع توزع أسي له
متوسط meanيساوي إلى .1/a
oإذا القيمة المتوقعة expectationواالنحراف varianceعبارة عن تكرار القيمة المتوقعة
واالنحراف المعياري بعدد kمرة أي:
k
= )E ( x
a
k
= ) Var ( x 2
a
oيتم حساب العدد العشوائي المطلوب من تابع توزيع األسي وذلك عن طريق حساب مجموع
لـ kمتحول عشوائي ذو تابع توزيع أسي أي:
k
1 k 1 k
x = ∑ xi = − ∑ log ri = − log ∑ ri
i= 1 a i =1 a i =1
41
4 .3توليد األعداد العشوائية ﻣن تابع توزع الطبيعي
oإن تابع الكثافة االحتمالي للتوزع الطبيعي يعطى بالعالقة:
1 ( x−µ ) 2
1 −
= )f ( x e 2 σ2
, ∞− ∞ < x < +
σ 2π
حيث أن القيمة المتوقعة تساوي µواالنحراف يساوي .σ2
] 1إيضاح[ .
oلتوليد أعداد عشوائية ذات تابع كثافة احتمالي طبيعي يجب استخدام نظرية المركز المحدد
] 2إيضاح[
oإذا بتوليد kعدد عشوائي منتظم rk …. ،r2 ،r1محصورة بين 0و ،1نحصل على:
a+b 1
= ) E ( ri =
2 2
(b − a ) 2 1
= ) Var (ri =
12 12
42
oبتطبيق نظرية المركز المحدد ] 2إيضاح[ نحصل على:
k k
∑r i ≈ N( ,
2 12
)
k / 12
oلنفترض أن xتوزع طبيعي فان:
x−µ
⟹ )≈ N (0,1
x−µ
=
∑r − k / 2
i
43
.1.4توليد األعداد العشوائية ﻣن تابع توزع الھندسي
oليكن لدينا سلسلة من مجموعة من التجارب نتيجتھا أما نجاح أو فشل )صح أو خطأ(.
oلنرمز الحتمال النجاح بـ pو الحتمال الخطأ بـ qعلى الترتيب و بحيث .p+q=1إن
المتحول العشوائي لتتابع األخطاء يتبعھا نجاح واحد يتبع تابع توزع احتمالي ھندسي.
oإن تابع الكثافة االحتمالي للتوزع الھندسي يعطى بالعالقة:
p(n) = pq n , n = 0,1,2,3,....
اي ان تابع الكثافة التراكمي ) F(nباستخدام العالقة:
n
F (n) = ∑ pq s , n = 0,1,2,3,...
s =0
log q
n
oوباعتبار أن ،(1- F(n))/q=qو (1-F(n))/qيتغير بين 0و 1نحصل على:
log r
=r= q ⇒ n
n
log q
44
.2.4توليد األعداد العشوائية ﻣن تابع توزع الثنائي
oليكن لدينا سلسلة من مجموعة من التجارب نتيجتھا إما نجاح أو فشل )صح أو خطأ(.
oلنرمز الحتمال النجاح بـ pو والحتمال الخطأ بـ qعلى الترتيب و بحيث .p+q=1
ولنفترض أن المتحول العشوائي Xھو متحول لتتابع ظھور حاالت النجاح ،إذا فالمتحول
العشوائي Xيتبع تابع توزع احتمالي الثنائي.
oإن تابع الكثافة االحتمالي للتوزع الثنائي يعطى بالعالقة:
n
p (k ) = p k q n −k , k = 0,1,2,3,....
k
oإن القيمة المتوقعة expectationواالنحراف varianceيعطيان بالعالقتين:
E ( x) = np
Var ( x) = npq
oلتوليد المتحول العشوائي Xالمطلوب يتم عن توليد nرقم عشوائي بجعل k0=0ثم يتم
زيادة المتحول kiحسب العالقة:
k + 1 if ri < p
k i = i −1
k i −1 if ri > p
إن المتحول الناتج knھو المتحول العشوائي المطلوب.
] 5إيضاح[
oإن الط ريقة المتبعة لتوليد عدد عشوائي بتابع توزع كثافة احتمالي بتوزع بويسن تتم بتوليد
متحو الت عشوائية بتابع توزع أسي بقيمة متوقعة 1/λضمن فترة زمنية محددة ثم جمع
المتحوالت ضمن واحدة الزمن :
n n +1
<∑ ti < 1
i=1
∑t i= 1
i
45
.5توليد األعداد العشوائية ﻣن توابع االحتمالية التجريبية
oفي كثير من األحيان األعداد العشوائية المولدة ليس لھا تابع توزع احتمالي معروف ،في ھذه
الحالة يتطلب من نظام المحاكاة توليد أعداد عشوائية تتبع توابع احتمالية ذات توزيع مطابق
للقيم للتجريبية.
oفي ھذا القسم سوف نستعرض طريقتين لتوليد األعداد العشوائية ذات تابع توزيع تجريبي
وذلك من توابع احتمالية مستمرة أو متقطعة.
1
.
.
P3
r
P2
P1
x
46
مثال:
oليكن لدينا المتحول العشوائي Xوالتي تمثل أعداد الصحف التي توزع يومياً ،حيث وجدد أن
توزع توزيع الصحف على النحو التالي:
oإن العدد العشوائي التجريبي rوالذي يتبع التوزيع السابق يساوي إلى نھاية المجال المحدد
تجريبيا ً كما يلي:
• If 0.85<r≤1.00 then x=5
• If 0.70<r≤0.85 then x=4
• If 0.40<r≤0.70 then x=3
• If 0.20<r≤0.40 then x=2
• Otherwise x=1
47
2.5توليد األعداد العشوائية التجريبية ﻣن توابع االحتمالية المستمرة
oليكن لدينا المتحول العشوائي ،Xوالذي يمكن التعبير عنه بالھيستوغرام Histogram
التالي:
)f (x3
)f (x2
)f (x4
)f (x6
)f (x7
)f(x1
48
oليكن لدينا اآلن العدد العشوائي ،rولتفترض أن ) f(xi-1)<r<f(xiوباستخدام اإلقحام الخطي
،linear interpolationفان المتحول العشوائي xنحصل عليه باستخدام العالقة:
) r − f ( xi −1
) x = xi −1 + ( xi − xi −1
) f ( xi ) − f ( xi −1
حيث xiالقيمة العظمى من المجال.
)f(x2
)f(x3
)f (x
)f(x1 )f(x4
)f(xn
49
6طريقة الرفض Rejection methods
.٥يمكن استخدام طريقة الرفض في توليد متحول عشوائي xبتابع توزع مطلوب ) f(xوذلك
بإتباع الخطوات التالية:
ليكن المتحول xمحصور ضمن المجال .a≤x≤b
يتم تحديد قيمة ) f(xبحيث أن معامل ضرب cيجعل قيمة التابع:
cf(x)≤1, .a≤x≤b
لنحدد المتحول xكتابع خطي لـ rبحيث يكون ،x=a+(b-a)rحيث rعدد
عشوائي.
نقوم بتوليد أزواج من األعداد العشوائية ).(r2،r1
بعد ذلك نقوم باختبار أزواج األعداد العشوائية باستخدام المعادلة x=a+(b-a)r1
ونقوم باختيار األعداد التي توافق العالقة ) r2≤cf(a+(b-a)r1والتي تقع تحت
المنحني المبين في الشكل.
)cf (x
50
مثال:1 -
استخدم طريقة الرفض لتوليد متحول عشوائي xله تابع توزع كثافة احتمالي يساوي f(x)=2x,
0≤x≤1
الحل:
.١يتم اختيار قيمة معامل ضرب cبحيث cf(x)≤1, .0≤x≤1أي .c=0.5
.٢نقوم بتوليد العدد العشوائي r1ونجعل .x=r1
.٣نقوم بتوليد العدد العشوائي r2إذا كان r2≤cf(r1)=0.5(2r1)=r1 :نقوم بقبول r2
وإال نقوم برفضھا ونعود للخطوة .2
مثال : 2
-
استخدم طريقة الرفض لحساب مساحة دائرة ذات قطر واحدي .
الحل:
.1إن قيمة العددين العشوائيين .r 12+r2 2 =1
.2نقوم بتوليد العددين العشوائيين r1و.r2
3إذا كان r2≤f (r1) :حيث f ( r1) = 1 r12إذا فان r2تحت )أو على( المنحني
−
.
وبالتالي يتم قبول الزوجين r1و r2وإال نقوم برفضھا ونعود للخطوة .2
.4ويتم حساب المساحة باستخدام المعادلة:
total number of acceptable pairs
= area
total number of generated pairs
] 8إيضاح[
51
7طريقة ﻣوﻧتيكارلو Monte Carlo Method
oتعتبر طريقة مونتيكارلو كجزء من الطريقة التجريبية حيث تركز على توليد األعداد
العشوائية التجريبية.
oتعتبر طريقة مونتيكارلو من أكثر الطرق استخداما ً عندما تكون النتائج تجريبية أو
تستخدم في حال الرغبة في توقع ھذه النتائج.
oفي الفقرة السابقة وجدنا أن طريقة الرفض قد استخدمت في حساب قيمة تكامل ما عن
طريق حساب احتمال النقاط الموجودة تحت منحني التكامل .ھذه الطريقة تعتبر احد
تطبيقات مونتيكارلو أيضا ً.
oويمكن استخدام مونتيكارلو أيضا في حساب التكامل باستخدام طريقة مختلفة .فلنفترض
أننا نريد حساب التكامل التالي:
1
θ = ∫ f ( x ) dx
0
f )2
i =1
oاذا كان لدينا في الحالة العامة المتحول العشوائي Xيأخذ القيم ] [0, 1وتابع المتحول
العشوائي ھو ) f(xفان :
1
oحيث ) g(xتابع الكثافة للمتحول ،Xوبافتراض أ ن Xذو تابع بتوزع منتظم فان
g(x)=1أي نحصل :
1
أي أن:
E( f ( x)) = f
52
ﻣلحقات
] 1إيضاح[
عندما يكون µ=0و σ =1فان تابع التوزيع يسمى تابع كثافة التوزيع الطبيعي القياسي ويعطى
بالعالقة:
1
1 − x2
= )f ( x e 2
, ∞− ∞ < x < +
2π
] 2إيضاح[
تعتمد نظرية المركز المحدد على انه إذا كان لدينا xn،…. ،x2 ،x1متحول عشوائي مستقل وجميعھا
لھا تابع توزيع واحد بتوقع E(xi)=μو انحراف Var(x)=σ2إذا فالمجموع:
∑x i = x1 + x2 + K + xn
ھو تقريبا متحول عشوائي بتوزع كثافة احتمالي طبيعي ،ويقترب تابع التوزع إلى الطبيعي أكثر كلما
زادت .nعندھا فان التوقع و االنحراف للمتحول الناتج يساوي إلى:
E ( ∑ xi ) = nµ
Var ( ∑ xi ) = nσ 2
] 3إيضاح[
ھذه المعادلة تستخدم لتوليد األعداد العشوائية الغير محددة بتابع توزع كثافة احتمال طبيعي.
] 4إيضاح[
إن قيمة kيجب أن تكون كبيرة حتى تكون الدقة اكبر ،وقد وجد أن اقل قيمة يمكن استخدامھا ھي
.k=12
] 5إيضاح[
يمكن مالحظة أن النافذة الزمنية التي تتداخل فيھا فترات النجاح تساوي إلى تابع توزع احتمالي بشكل
أسي و أن قيمة المتوسط تساوي .1/λ
53
] 6إيضاح[
في الحالة العامة إذا كان pi-1<r<piفان x=i
] 7إيضاح[
تابع التوزع التراكمي يمكن الحصول عليه من العالقة:
= ) F ( xi ∑ f (x
1≤ k ≤ n
k )
] 8إيضاح[
إن طريقة الرفض غير دقيقة في توليد العدد العشوائي وخصوصا ً عند ) c(b-aذات قيم كبيرة
54
ﻣسائل
قم بكتابة برنامج بلغة عالية المستوى لتوليد األعداد العشوائية الغير محددة المذكورة -11
في ھذا الفصل.
قم باختبار األعداد العشوائية الغير محددة المولدة باستخدام الطرق المذكورة في ھذا -12
الفصل.
أستخدم البرنامج الذي قمت بتصميمه في الفصل األول لمحاكاة نظام إصالح اآلالت -13
في مصنع ،وقم بتعديل زمن اإلصالح و زمن العمل متحول عشوائي غير محدد بتوزيع
احتمالي أسي.ثم نفذ المحاكاة وأطبع النتائج.
55
تصميم المحاكاة
Simulation Design
.1ﻣقدﻣة
oفي ھذا الفصل سوف نستعرض ثالث طرق تستخدم في بناء محاكي
oالطريقة األولى تسمى تقدم الحدث ،event-advanceوالثانية تسمى تقدم واحدة
الزمن ،unit-time advanceو تعتمدان على تغير حدث المحاكاة ولكنھما
تختلفان في طريقة حساب تغيرات الزمن.
oتعتمد الطريقة الثالثة على أسس األنشطة activities basedحيث تعتبر من
أشھر طرق المحاكاة المستخدمة.
oويقوم نظام المحاكي عند االنتھاء من تنفيذ حدث ما )مثالً :(t 1
1بتجميع األ حداث الممكن ظھورھا بالمستقبل،
.
ً
.
3ثم يبدأ بالحدث األقل زمنا.
4يقوم بتقديم عداد الساعة الرئيسي Master clockإلى زمن يساوي زمن ظھور .
56
مثال[ أن يؤدي إلى نشوء أحداث1 ] primary events يمكن لظھور األحداث الرئيسيةo
. [ مثال2 ] conditional events جديدة تسمى أحداث شرطية
: يبين المخطط التدفقي التالي الخطوات األساسية لطريقة تقدم الحدثo
Advance
time
Take appropriate
action depending on
the type of event
Any
A Conditional
events?
Future
Create a new event
event(s)
list
[ إيضاح5 ]
57
.3قائمة األحداث المستقبلية Future event list
oتعرف قائمة األحداث المستقبلية Future event listبأنھا القائمة التي تحتوي على جدول
لجميع األحداث التي سوف تحدث في المستقبل )أي بعد الزمن .(t
oأي أن القائمة سوف تحتوي على:
oالزمن الذي يحدث فيه الحدث .Time of occurrence
oطبيعة الحدث 6 ] Type of eventإيضاح[ .
] 3مثال[
oيجب أن ترتب القائمة األحداث المستقبلية بحيث ت قلل عدد العمليات الحسابية التي يمكن أن
يجريھا المحاكي للبحث عن الحدث القادم ،أي يجب أن تحقق:
oيجب أن تبين زمن الحدث الجديد )القادم ( و طبيعة الحدث .
oمسح المعلومات الخاصة باألحداث التي انتھت )نفذت(.
oتتمكن من إضافة حدث جديد إلى القائمة ) عند ظھور حدث شرطي مثالً( أو تعديل
في القائمة .
oسوف نبين في الفقرة القادمة طريقتين مستخدمتين في تحقيق قائمة األحداث المستقبلية :
• طريقة المصفوفة التسلسلية .Sequential array method
.
58
1.3طريقة المصفوفة التسلسلية Sequential array method
oتستخدم المصفوفة التسلسلية لتخزين أوقات حدوث األحداث بشكل تسلسلي في المصفوفة.
oإن أسھل طريقة لتحقيق ذلك ھي بتخصيص كل حدث برقم iيعبر عن موقع التخزين في
المصفوفة ،بينما يخزن في الموقع نفسه زمن حدوث الموقع.
oالشكل التالي يبين مثاالً على طريقة تخزين المعلومات باستخدام المصفوفة ،حيث يستخدم
الموقع األول في المصفوفة لتخزين زمن الحدث األول CL1وزمن الحدث الثاني في الموقع
الثاني ويساوي CL2وھكذا.
CL1 CL2 CL3 ..... CLn
oإن تحديد الحدث التالي الممكن حدوثه يتم بسھولة عن طريق تحديد موقع المصفوفة التي
تحتوي على أقل زمن .يتم ذلك باستخدام خوارزمية بسيطة التالية:
num =1
)time = A(1
for i = 1 to n then
if time > A(i) then
)time = A(i
num = i
وبالتالي فان المتحول numسوف يحتوي على موقع الحدث التالي والذي يحتوي على اقل
زمن.
oالمشكلة أن ھذه الطريقة ال تحذف األحداث التي تم تنفيذھا ،ويتم حل المشكلة بتغيير قيمة
الزمن المخزن في المصفوفة للحدث المنفذ بقيمة كبيرة بحيث ال تؤدي إ لى اختيار الحدث
المنفذ مرة أخرى .ويتم أيضاً إضافة حدث جديد jإلى القائمة عن طريق تغيير الزمن ). A(j
oتتميز ھذه الطريقة بسھولتھا وذلك عند إضافة أو حذف أية حدث.
oإن من أھم مساؤئھا تكمن بدرجة تعقيدھا العالي في البحث عن الحدث التالي ،حيث يحتاج
ذلك إلى البحث عن أصغر عنصر في المصفوفة ،وتكون المشكلة أكبر عندما يكون عدد
عناصر المصفوفة كبير ًا .لذلك يتم استخدام القوائم المترابطة .
59
2 .3طريقة القوائم المترابطة Linked lists method
oتعتمد طريقة القوائم المترابطة على تخزين المعلومات عشوائيا ً ضمن أجزاء مختلفة في
الذاكرة وعلى شكل عقد nodesبحيث تحتوي العقدة على جزئين األول يحتوي على
المعلومات المراد تخزينھا ،ويحتوي الجزء الثاني )المؤشر (pointerعلى موقع العقدة
التالية.
] 7إيضاح[
oيمكن لھذه القائمة أن تستخدم كقائمة األحداث المستقبلية ،حيث يقسم جزء المعلومات إلى
قسمين األول لتخزين الزمن Clockويستخدم الثاني للحدث.
مثال :
oلنفترض أننا نرغب في ترتيب مجموعة أرقام تصاعدياً والمخزنة بطريقة عشوائية ضمن
مصفوفة .T
oلتحقيق ذلك فإننا نحتاج إلى مصفوفة جديدة Pلھا نفس الطول بحيث أن تسلسل الموقع التالي
في Tيجب أن يحدد في Pوبحيث يتم ترتيب المصفوفة تصاعديا .فمثالً P(1)=7أي أن
الرقم التالي األكبر يقع في الموقع السابع في .T
60
oإن عملية اإلضافة أو الحذف من القوائم المترابطة سھل جداً.
oلنفترض أننا نرغب في حذف الرقم ،10نقوم أوال بفحص أول موقع )) (T(5), P(5والذي
يشير إلى موقع النقطة التالية )).(T(3), P(3
oالموقع ) P(3يدل على موقع النقطة التالية )) ،(T(1), P(1حيث يشير الموقع ) P(1إلى
النقطة التالية )) .(T(7), P(7فالقيمة المراد إضافتھا يجب أن تقع بين المركزين ) P(1و
).P(8
تظھر مجموعة T P
الحمراء عند
الضغط الفأرة )(1 5 7
تظھر مجموعة
4 1
الخضراء عند
الضغط الفأرة )(2 12 8
F يظھر الشكل عند
1 3 الضغط الفأرة )(5
تظھر مجموعة
الزرقاء عند
الضغط الفأرة )(3 10 4
13 0
تظھر مجموعة
الصفراء عند
الضغط الفأرة )(4
61
oلنفترض أننا نرغب في إضافة الرقم ،6نقوم أوال بتحديد موقع العقدتين المتتاليتين والتي
تحتويان على قيمتين أكبر وأصغر من القيمة .6
oثم نقوم بفحص أول موقع )) (T(5), P(5والذي يشير إلى موقع النقطة التالية (T(3),
)) .P(3الموقع ) P(3يدل على موقع النقطة التالية )) ،(T(1), P(1حيث يشير الموقع )P(1
إلى القيمة المطلوبة .10
oلحذف العقدة 10يتم فقط تغيير قيمة المؤشر للعقدة السابقة ،ووضع قيمة العقدة التالية ،أي أن
P(1)=7تصبح ،P(1)=4عندھا سوف تصبح العقدة 10كأنھا غير موجودة أو تم مسحھا.
تظھر مجموعة T P تظھر مجموعة
الحمراء عند الكحلي عند
الضغط الفأرة )(1 5 2 الضغط الفأرة )(5
6 8
تظھر مجموعة تظھر مجموعة
4 1
الخضراء عند السوداء عند
الضغط الفأرة )(2 F
12 8 الضغط الفأرة )(6 يظھر الشكل عند
1 3 الضغط الفأرة )(7
تظھر مجموعة
الزرقاء عند
الضغط الفأرة )(3 10 4
13 0
تظھر مجموعة
الصفراء عند
الضغط الفأرة )(4
6٦
62
3.3تحقيق القوائم المترابطة Implementation of Linked lists
oإن تحقيق القوائم المترابطة برمجيا ً يجب أن يضمن تحقيق ثالثة عمليات أساسية:
ترتيب المعلومات ضمن عقد.
الوصول إلى أية عقدة بالداللة إلى مؤشرھا.
خلق عقدة جديدة أو حذف عقدة غير مستخدمة.
oتحتوي لغات البرمجة على تعليمات يمكن أن تحقق العمليات الثالث السابقة ،ولكن إذا كانت
ھذه التعليمات غير متوفرة فانه يجب تصميم برامج جزئية تحققھا.
oعلى المصمم أن يفكر أيضا ً بالطريقة المناسبة لتخزين المعلومات ،ويمكن في كثير من
األحيان استخدام مصفوفات ،فإذا كانت لدينا kمعلومة لكل حدث فإن المحاكي يحتاج إلى
مصفوفة بطول k+1لكل حدث ،وإذا افترضنا أنه نحتاج إلى nحدث لتصميم نظام المحاكاة،
فان حجم التخزين يحتاج إلى nمصفوفة بطول .k+1
oلتحقيق القوائم المترابطة بسھولة سوف نعتبر أن كل عقدة تتألف من حقلين فقط :األول
لتخزين المعلومات ،Dataوالثاني لتخزين قيمة المؤشر 8 ] .Linkإيضاح[
oسوف نستخدم برنامجين جزئيين للتحكم بفضاء التخزين وھما :
) Getnode(Xسوف ي ضيف العقدة إلى القائمة المترابطة عند الموقع .X
) Ret(Xوالذي يعيد العقدة ذات القيمة Xإلى الحالة االبتدائية ،أي إلى فضاء
التخزين
] 9إيضاح [
63
oسوف نشرح أربع خوارزميات تستخدم لتحقيق القوائم المترابطة:
.Aخوارزمية إنشاء قوائم مترابطة .Create linked lists
.Bخوارزمية حذف عقدة .Deleting of a node
.Cخوارزمية إضافة عقدة جديدة .Inserting of a new node
.Dخوارزمية التحكم بفضاء التخزين .Managing the storage
– Aخوارزمية إنشاء قوائم مترابطة
oتقوم الخوارزمية التالية بإنشاء قائمة مترابطة مكونة من عقدتين تحتويان الرقمان 1و ، 4
حيث يشير المتحول Fإلى المؤشر ألول عقدة و Iالموقع المحتمل للعقدة الثانية.
)Procedure Create (F
End Create
– Bخوارزمية حذف عقدة
oتقوم الخوارزمية التالية بحذف عقدة تحتوي على القيمة 10من القائمة المترابطة المبينة في
الفقرة السابقة حيث نفترض أن القيمة 10تظھر مرة واحدة في القائمة ،وباعتبار أن المتحول
Fيمثل المؤشر ألول عقدة و C=10الموقع المحتمل للعقدة ال تي تحتوي على القيمة
المطلوبة.
)Procedure Delete (F,C
{ Else
J=+I
)I= Link(I
}
}
If F=0 then {
Getnode(G)
Data(G)=C
Link(G)=0
exit
}
If Data(F)≥C then {
Getnode(G)
Data(G)=C
Link(G)=F
F=G
exit
}
J=F
I=Link(J)
do {
if Data(I)≥C then {
Getnode(G)
Data(G)=C
Link(G)=Link(I)
Link(J)=X
exit
}
else {
J=I
I=Link(I)
}
}
End Insert
65
– Dخوارزميات التحكم بفضاء التخزين
oتقوم الخوارزمية التالية بتھيئ فضاء التخزين لتحديد عدد العقد الالزمة لتحقيق القائمة
المترابطة ،حيث يمثل المتحول nعدد العقد المفترض استخدامھا في القائمة ،ويمثل المتحول
vمؤشر أول عقدة.
)Procedure Init(n
oتقوم الخوارزمية ) getnode(xبإزالة العقدة من فضاء التخزين ،أي تقوم بتھيئ عقدة
جديدة ،حيث يشير xإلى المؤشر المستخدم في القائمة.
)Procedure Getnode(x
oتقوم الخوارزمية ) Ret(xبإضافة عقدة فارغة إلى فضاء التخزين ،أي تقوم بحذف عقدة من
القائمة ،حيث يشير xإلى المؤشر المستخدم في القائمة.
)Procedure Ret(x
Link(x)=v
v=x
End Ret
66
4.3القوائم المترابطة الزوجية Double linked lists
oتعتمد طريقة القوائم المترابطة الزوجية على تخزين المعلومات عشوائيا ً ضمن أجزاء
مختلفة في الذاكرة وعلى شكل عقد nodesكما ھو الحال في القوائم المترابطة ،ولكن يتم
عملية االرتباط بين العقد في اتجاھين مختلفين.
oحيث تحتوي القائمة على مؤشرين عوضا ً عن مؤشر واحد ،يخصص كل واحد منھما
لإلشارة إلى اتجاه مختلف.
oتتميز ھذه الطريقة بأنھا تعطي مرونة أكبر عند تصميم نظام المحاكاة.
Time unit
67
. يبين الشكل التالي المخطط التدفقي لھذه الطريقةo
Master clock is
increased by unit-time
is
any future No
event clock A
=MC?
Yes
An event has
occurred
Take appropriate
action
Any No
Conditional A
events?
Yes
Schedule
new event(j)
68
oنالحظ من المخطط انه لتحقيق المحاكاة بشكل صحيح يجب أن تتوفر لدينا مسبقا جميع
أوقات حدوث األحداث المستقبلية ،future event clocksولكن ال يمكن تحقيق ذلك من
الناحية العملية بشكل دقيق ،مثالً ال يمكن توقع زمن إصالح اآللة بشكل دقيق قبل البدء
بإصالحھا ،لذلك يجب اعتماد طريقة معدلة.
ال من وقت ظھور oالطريقة المعدلة تعتمد على الفترة الزمنية الالزمة الستمرار الحدث بد ً
الحدث )زمن صالح اآللة عوضا ً عن وقت حدوث اإلصالح(.
oفي ھذه الحالة تعدل الخوارزمية بحيث تصبح كالتالي:
.1في كل مرة تزاد فيھا الساعة الرئيسية لمرة واحدة بمقدار واحدة الزمن.
.2يتم إنقاص جميع أوقات األحداث المستقبلية ،future event clocksبمقدار قيمة
واحدة الزمن.
.3عند تساوي أحد أوقات األحداث المستقبلية إلى الصفر ينفذ الحدث ،ومن ثم نعود إلى
الخطوة األولى.
.4عند عدم المساواة نعود للخطوة األولى ويتم تكرار البحث.
69
يبين الشكل التالي المخطط التدفقي للطريقة المعدلة وذلك عند محاكاة نظام المخدم فيo
.المصنع
Master clock is
increased by unit-time
>1 Service =1
Time (ST)
ST=ST-1 ST=ST-1
End of Services
Take appropriate
action
>1 Arrival =1
Time (AT)
AT=AT-1 AT=AT-1
70
.1.4اختيار واحدة الزﻣن Selecting unit time
oعند اختيار قيمة واحدة الزمن يجب في البداية أن نحقق الشرط بان جميع األحداث الممكن
حصولھا يجب أن تغطى بھذه القيمة ،فمثالً تحدث المشكلة عندما يكون زمن حدوث الحدث
رقم حقيقي )كسري( ،بينما تكون واحدة الزمن رقما صحيحاً ،عندھا سوف يظھر الحدث بين
تغيرين زمنين )أي محصور ضمن مجال(.
Time unit
i i+1 i+2 i+3 i+4 i+5 i+6 i+n-1 i+n t
Master Clock
E1 E2 E3 Ej
71
.5طريقة ﻣحاكاة النشاط Activity based simulation design
oتعتمد ھذه الطريقة في المحاكاة على مراقبة النشاط activityالذي يحدث أثناء المحاكاة بدالً
من مراقبة الحدث.
oوتستخدم ھذه الطريقة بكثرة في محاكاة األنظمة المعقدة complex systemsحيث يصعب
في ھذه األنظمة تحديد األحداث المتالحقة.
oعلى سبيل المثال في نظام المخدم في المصنع يوجد حدثين )تعطل اآللة أو إصالحھا( ،بينما
يمكن لھذا النظام اعتباره مجموعة من األنشطة أو العمليات التالية:
(aالدخول إلى الصف ) inter arrivingالتعطل(.
(bالخروج من الصف ) being servedاإلصالح(
(cاالنتظار في الصف .waiting for services
oالمھم معرفة بداية ونھاية كل نشاط من األنشطة.
oلنفترض أننا نريد أن نقوم بتصمي م نظام محاكاة بطريقة محاكاة النشاط لمخدم زبون وحيد
،single sever queuingإذا :
(aلنفترض أن زمن التخديم STiللزبون .i
(bلنفترض أن زمن اإلنتظار WTiللزبون i
.
(cلنفترض أن زمن اإلنتظار بين الزبون iو الزبون التالي ھو .AT i+1
(dلنفترض أن الزبون iيظھر عند الزمن aiويبدأ التخديم عند الزمن s iوينتھي
التخديم عند الزمن s i +ST i
.
ST i
WT i
AT +i 1
t
72
oلنفترض أننا نعرف قيم كل من WTiو STiللزبون ،iإذا لدينا ثالث حاالت:
(aيظھر الزبون i+1خالل فترة انتظار تخديم للزبون . i
] 10إيضاح[
(bيظھر الزبون i+1خالل فترة تخديم للزبون . i
] 11إيضاح[
(cيظھر الزبون i+1خالل بعد فترة تخديم للزبون . i
] 12إيضاح[
oعندھا يمكن حساب وقت االنتظار للزبون i+1للحاالت الثالث السابقة على الترتيب:
. WTi +1 = (WTi − ATi +1 ) + STi (a
. WTi +1 = (WTi + STi ) − ATi +1 (b
WTi +1 = 0 (c
عند حساب WTiنستطيع حساب جميع قيم الزبون i+1ومنھا يمكن إيجاد القيم الخاصة
بالزبون التالي i+2وھكذا..
73
. يبين الشكل التالي المخطط التدفقي لنظام المحاكاة باستخدام طريقة محاكاة النشاطo
Initial conditions
Generate AT
Generate ST Generate ST
TW=ST+(TW-AT) TW=ST
A A
74
6أﻣثلة Examples
.6في ھذه الفقرة سوف نشرح مثالين معتمدين على طرق المحاكاة المبينة سابقا ً وھما:
نظام جرد مستودع .Inventory system
نظام الصف الدائري .Round robin queue
75
.9لنفترض اآلن أن المتحول Itيمثل كمية البضائع عند البدء أي في الزمن ،tوأن Sكمية
المواد المضافة إلى النظام و Dكمية المواد المطلوبة بين الفترة الزمنية tو ' ،tوبالتالي فأن
كمية البضائع عند الزمن ' tيساوي:
I t' = I t + S − D
عندما تصبح القيمة ' Itتحت مستوى محدد عندھا يجب إعطاء أمر بطلب المادة الناقصة.
لنفترض أن طلب مادة )أو مواد( جديدة يتم يوميا ً وفي نھاية يوم العمل ،وأن زمن .10
التأخير lead timeوھو الزمن الالزم لوصول الكمية المطلوبة إلى مستودعات الشركة )أي
الفرق بين وقت طلب المادة و وقت وصول المادة إلى المستودع( سوف يحسب من اليوم
التالي حيث أن الطلب يتم في نھاية يوم العمل .يمكن أن نالحظ أن تغير قيمة البضائع في
المستودع تتغير وفق الشكل التالي:
76
سوف نستخدم نظام المحاكاة بطريقة تقدم الزمن ونعتبر أن واحدة الزمن تساوي .11
ً ً ً
يوما وحدا حيث أن الطلب يتم يوميا وفي نھاية العمل الرسمي.
سوف نعتبر مجموعة مدخالت إلى النظام وھي:
النقطة التي يتم عندھا الطلب .ROP
كمية البضاعة المطلوبة .Q
كمية البضاعة عند البدء .BI
الزمن الكلي .T
الكلفة االقتصادية للتخزين والكلفة االقتصادية للطلب والكلفة االقتصادية للنقص ،C1
C3 ،C2على الترتيب.
الكلفة التقتصادية الكلية والمطلوب حسابھا لكل من للتخزين والطلب والنقص ،TC1
TC3 ،TC2على الترتيب.
إن المخطط التدفقي للنظام مبين في الشكل التالي: .12
77
Initialization
Generate AT
Print
t≥AT
Yes results
No
>1 =1 End
LT
Order has
=0
arrived
LT=LT-1 no order LT=0
outstanding I=I+Q
Generate daily
demand D
78
B
I<ROP TC1=TC1+I×C1
No
Yes
No A
LT=0
Yes
Generate AT
TC2=TC2+C2
No
I<0 TC1=TC1+I×C1
Yes
TC3=TC3+I×C3
A
79
2.6ﻧظام الصف الدائري Round robin queue
يھدف نظام الصف الدائري إلى تصميم نظام محاكاة لدراسة أداء مجموعة Nطرفية .13
تتشارك جميعھا بمعالج صغري CPUواحد.
Terminal n
CPU
Terminal n-1
Terminal 1
Terminal 2
Terminal 3
لنفترض أن المستخدم عند كل طرفية يفكر لفترة زمنية ما ) Thinkingأي يقوم .14
ً
بكتابة سطر مثال ،يفكر ماذا يفعل بعد ذلك ،(..ومن ثم يستخدم المعالج المركزي أو يقوم
بتنفيذ أمر ما عندما يقوم بالضغط على مفتاح .Enter
لنفترض أن المستخدم يقوم بالتفكير ومن ثم استخدام CPUبشكل متناوب ومتكرر، .15
كما ھو موضح بدورة العمل في الشكل التالي ،حيث ال يمكن للمستخدم خالل استخدام
المعالج أن يقوم بإرسال أمر آخر.
80
تعمل وحدة المعالجة CPUبالتناوب بين الطرفيات بشكل حلقة ،Round robin .16
بحيث تنفذ التعليمة في الطرفية األولى ومن ثم الثانية ،إلى أن تنتھي بأخر طرفية وعندھا
تعود الطرفية األولى لتخدمھا من جديد.
يخصص المعالج CPUزمن التنفيذ صغيراً جدا لكل طرفية يسمى ،Quantum .17
وبحيث إذا لم ينتھي المعالج CPUمن إنھاء العمل المخصص للطرفية خالل الوقت
Quantumينقل بقية العمل لھذه الطرفية إلى بداية الصف ،ويتابع CPUتنفيذ العمل
للطرفية الالحقة.
يبين الشكل التالي الفكرة األساسية من دورة العمل لوحدة المعالجة .CPU .18
Terminals
CPU
81
في الحالة العملية يكون زمن التفكير أطول بكثير من زمن التنفيذ ،فمثالً زمن التفكير .19
يكون بحدود 30ثانية ،ويكون زمن التنفيذ Quantumبحدود .1msecلنفترض أن تنفيذ
طلب ما يحتاج إلى 5 secمن وحدة المعالجة CPUإذا يتطلب تنفيذ ھذا العمل 5000دورة
ضمن الصف.
يشبه نظام المحاكاة نظام محاكاة إلصالح اآلالت في مصنع ،حيث يشبه CPUعمل .20
عامل اإلصالح ،ويختلفان بأن الدخول إلى الصف يتم بشكل دائري وليس بطريقة .FIFO
ويمكن تقسيم نظام المحاكاة إلى حدثين أساسيين: .21
األول :ھو وصول العمل إلى صف االنتظار للمعالج ،وقسم إلى قسمين:
.iوصول عمل جديد ناتج عن طلب من أحد الطرفيات )عند الضغط
على مفتاح Enterمثالً(،
.iiأو وصول من عمل غير منتھي.
الثاني :خروج العمل من الصف .ويقسم أيضا ً إلى قسمين
.iاألول عند انتھاء من تنفيذ العمل المطلوب،
.iiوالثاني ھو انتھاء الوقت المخصص Quantumلتنفيذه الحقا ً.
82
يمكن تصميم نظام محاكي للصف الدائري باستخدام طريقة الحدث المتقدم. .22
سوف تحتوي قائمة األحداث المستقبلية على حدث خروج العمل من الصف CPU .23
و دخول األحداث الجديدة إلى الصف ،وباعتبار أن زمن التنفيذ ثابت ويساوي Quantum
فان القائمة ثابتة.
ولتصميم القائمة سوف تحتوي كل عقدة نوعين من المعلومات األول الحدث التالي .24
ً
،Future eventوالثاني انتھاء العمل )للداللة إذا كان العمل المراد تنفيذه قد نفذ كامال أو
يحتاج إلى إعادته إلى بداية القائمة(.
ويبين الشكل التالي قائمة األحداث المستقبلية حيث tjيمثل زمن دخول الحدث إلى .25
القائمة.
83
:يبين الشكل التالي المخطط التدفقي لمحاكي الصف الدائري .2 6
Is CPU
Yes No
MCL=tarr Queue MCL=MCL+1
Empty
A
No Is
A MCL=tarr
Yes
A new arrival
event occurs
84
ﻣلحقات
] 1إيضاح[
راجع مثال إصالح اآلالت في مصنع المبين في الفصل األول.
] 2إيضاح[
إذا يكفي مالحظة أو تسجيل تغير األحداث eventsفي النظام إلجراء المحاكاة.
] 3إيضاح[
وذلك باستخدام المسجلة في عداد الساعة clockلكل حدث.
] 4إيضاح[
لذلك تدعى ھذه الطريقة بطريقة تقدم الحدث حيث يتم االعتماد على تغيرات الحدث في تصميم نظام
المحاكاة.
] 1مثال[
لقد بينا في مثال إصالح اآلالت في المصنع )راجع الفصل األول( انه يوجد حدثين فقط ،األول دخول
اآللة إلى صف اإلصالح )أي تعطل اآللة( والثاني خروج اآللة من الصف )أي إصالحھا( .حيث
تدعى ھذه األحداث باألحداث األولية .Primary events
] 2مثال[
إن تكرار حدوث أعطال في اآلالت ودخول اآلالت إلى صف االنتظار قد يؤدي إلى حدوث حالة
جديدة ال تخرج اآلالت من صف االنتظار )إي ال تصلح( وذلك عندما يكون عامل اإلصالح بحاجة
إلى وقت للراحة idleحتى ولديه عدد كبير من اآلالت بحاجة إلى إصالح.
] 5إيضاح[
سوف نشرح قائمة األحداث المستقبلية في الفقرة التالية.
85
] 6إيضاح[
طبيعة الحدث يعبر عن الفعل الذي يجب اتخاذه عندما يظھر الحدث ،أي البرنامج الجزئي المخصص
لتنفيذ ھذا الحدث.
] 3مثال[
لقد بينا في المثال إصالح اآلالت في المصنع )راجع الفصل األول( انه يوجد حدثين فقط ،األول
دخول اآللة إلى صف اإلصالح )أي تعطل اآللة( والثاني خروج اآللة من الصف )أي إصالحھا(.
ولكن عند الرغبة في تصميم نظام محاكاة ألنظمة معقدة complex systemsفان عدد األحداث
يصبح كبيراً جداً ،وبالتالي البحث عن حدث جديد سوف يحتاج إلى خوارزميات معقدة لتحقيق ذلك
لتحقيق المطلوب بأقل عدد ممكن من العمليات الحسابية .و يعتمد كفاءة ھذه الخوارزميات على كمية
المعلومات التي وسوف تبقى في القائمة المستقبلية وكيفية تخزين ھذه المعلومات.
] 7إيضاح[
نالحظ أن كل عقدة تمثل بمربعين األول يمثل المعلومات المخزنة في العقدة ،حيث يمكن أن تكون
ھذه المعلومات متحول ما بسيط ويمكن أن تكون مجموعة مصفوفات ،بينما يمثل المربع الثاني موقع
العقدة الثانية أو اسم العقدة الثانية في القائمة .ونالحظ أن المؤشر Fيشير إلى أول عقدة بينما يشير
المؤشر في العقدة األخيرة إلى القيمة 0مما يدل على أنه ال توجد عقدة تالية.
] 8إيضاح[
ويتم الولوج إلى المعلومة للعقدة iباستخدام ) Data(iأو ).Link(i
] 9إيضاح[
سوف نبين بالتفصيل ھذين البرنامجين الحقا ً.
86
STi [ إيضاح10 ]
WTi
ATi+1
t
ai ai+1 si si+STi
STi [ إيضاح11 ]
WTi
ATi+1
t
ai si ai+1 si+STi
STi
[ إيضاح12 ]
WTi
ATi+1
t
ai si si+STi ai+1
87
التمارين
88
ﻣسائل
قم بتعديل برنامج المحاكاة الذي قمت بتصميمه سابقا ً حول محاكاة مصنع ،بحيث -10
تضيف قائمة مترابطة ،وأطبع النتائج.
كرر السؤال السابق عند زيادة عدد عمال اإلصالح من ٢إلى ١٠عمال وقارن -11
النتائج.
قم بتنفيذ برنامج يقوم بمحاكاة نظام الصف الدائري المبين في الفقرة .2.6 -12
89
تقنيات التقييم لمخرجات ﻧظم المحاكاة
Estimation Technology For Analyzing
Endogenously Created Data
.1ﻣقدﻣة
oحتى اآلن استعرضنا في الفصول السابقة الطرق المستخدمة في بناء محاكي ،حيث الحظنا
أن البناء يتمركز حول توليد أعداد عشوائية المرغوبة وذلك لمحاكاة ما ھو موجود في
الواقع.
مخرجات oفي ھذا الفصل سنبين الطرق المستخدمة لتحصيل النتائج أو
النظام ،Endogenouslyباإلضافة إلى الطرق المستخدمة لتحليل ھذه النتائج.
90
oلنفترض أننا نريد دراسة أداء شبكة حاسوبية LANعن طريق إجراء محاكاة للشبكة،
فلتحسين أداء المحاكي يضاف لكل عقدة مصفوفة مزدوجة ،كما في الشكل التالي:
oيخزن في العامود األول من المصفوفة زمن وصول الرزمة packetإلى العقدة ويخزن في
العامود الثاني زمن خروجھا ،فعند وصول الرزمة إلى العقدة يتم تخزين زمن الوصول في
أول مكان فارغ في المصفوفة ،وعند خروج الرزمة يتم تسجيل الزمن في المكان المقابل في
العامود الثاني.
oإذا يمكن مراقبة حجم االزدحام congestionفي عقدة ما بتحليل المعلومات المتوفرة في
ھذه المصفوفات 2 ] .إيضاح[
91
1.3الحاالت العابرة في المحاكاة Transient state simulation
oتدرس الحاالت العابرة في معظم األحيان عند تغيير الشروط االبتدائية لنظام ما ،أو عند
وضع شروط ابتدائية لنظام محاكاة جديد .فمثالً عند دراسة حالة مصنع عند افتتاحه ألول
مرة.
oوتدرس أيضا ً الحاالت العابرة عندما ال يكون للنظام حاالت مستقرة ،فمثالُ عندما يكون
النظام في حالة التجارب ودائما متحوالت النظام تتغير لتحسين أداءه.
oيجب عند تحصيل المخرجات التخلص من المعلومات الخاصة بالحالة العابرة ألنھا ال تعطي
انطباعا ً صحيحا ً على النظام ،وألنھا معتمدة على الشروط االبتدائية .
oللتخلص من المخرجات الخاصة بالحالة العابرة يمكن استخدام إحدى الطريقتين التاليتين:
تشغيل المحاكي لفترة زمنية طويلة وبالتالي فان كمية المخرجات المحصلة والتي
تتعلق بالحالة العابرة سوف يكون تأثيرھا صغير جداً ومھمل.
يتوقف تحصيل المعلومات خالل الفترة العابرة ،ويتم ذلك بتشغيل المحاكي حتى
يصل إلى الحالة المستقرة وعندھا يبدأ بتحصيل المعلومات من النظام لفترة زمنية
بحيث تكفي لتحصيل كمية كافية من المعلومات.
oالمشكلة في الطريقة الثانية ھو في كيفية معرفة ما إذا كان النظام قد وصل إلى الحالة
المستقرة أم ال .ويمكن ذلك بتشغيل المحاكي خالل فترات زمنية مختلفة ومتصاعدة
T1>T2 >T3>,…>Tiويتم مقارنة المخرجات بين كل فترة زمنية وفترة زمنية أخرى،
فعندما تصبح تغيرات المخرجات صغيرة بين فترة زمنية وأخرى يصبح النظام بحالة
االستقرار.
92
.4تقنيات تقييم الحاالت المستقرة Estimating techniques for SS
oيقصد بتقييم الحاالت المستقرة ،مجموعة القياسات التي يمكن أن تجرى على تابع التوزيع
االحتمالي لمتحول مخرجات النظام ،حيث يتم مثالً حساب المتوسط ،meanاالنحراف
المعياري ،standard deviationالنسب اﻟﻣﺋوﯾﺔ للنتائج أو المخرجات.
oفمث ً
ال المعلومة المھمة في المصنع ھو تابع التوزع االحتمالي لتعطل اآللة ،أو تابع التوزيع
االحتمالي لتعطل اآلالت جميعھا .كما أن نسبة اآلالت المعطلة ،أو نسبة زمن التعطل آللة ما
بالنسبة لوقت العمل مھم جداً التخاذ قرار مناسب من مدراء المعمل.
oأو مشكل مختصر:
n
2
∑x j
1 n 2 j =1
2
= sd ∑ xi −
n −1 i= 1 n
93
oوبالتالي فان مجال الثقة يعطى بالعالقة:
s s
x − 1.96 d , x + 1.96 d
n n
عند 95%ثقة 6 ] .إيضاح[
oيمكن حساب المتوسط من أجل أية قيمة لمجال الثقة ،إن معظم القيم المستخدمة ھي ،99%
،95%و ،90%ويمكن التعبير عن مجال الثقة بأنه المجال المحصور بين القيمتين aو b
في الشكل التالي:
] 7إيضاح[
oيمكن أيضاً التحقق ما إذا كانت المخرجات xn....،x3 ،x2 ، x1مترابطة مع بعضھا البعض،
فمثالً توقف آلة ما يمكن أن يتعلق بتوقف آلة أخرى تعتمد عليھا.
oإذا ال يمكن حساب قيمة المتوسط باستخدام المعادلة:
1 n
=x ∑ xi
n i=1
oإذا ً يجب التحقق من ترابط المخرجات أو ً
ال ،ويتم ذلك سوف نستخدم الطرق التالية:
(aحساب تابع الترابط الذاتي . autocorrelation function
(bمتوسط الحزم .batch mean
(cطريقة التكرار .replication
(dطريقة التجديد .regenerative method
94
(aحساب تابع الترابط الذاتي autocorrelation function
oليكن Xو Yمتحولين عشوائيين ،وليكن μxو μyالمتوسط المتوقع expectationلھما على
الترتيب ،وليكن لدينا σ2xو σ2yتباين كل من المتحولين Xو Yعلى الترتيب .يمكن
حساب الترابط المتغاير covarianceباستخدام العالقة:
[
) c xy = E ( X − µ x )(Y − µ y ]
= E [ XY ] − µ x µ y
95
oيبين الشكل التالي حاالت الترابط الثالث.
oلتفادي حساب قيم النھائية يمكن حساب الترابط correlationللمتحولين العشوائيين Xو Y
باستخدام العالقة:
c xy
= ρ xy
σ xσ y
oوتعبر ߩxyعلى االستقاللية بين Xو ،Yوتكون -1 ≤ ߩxy ≤1فإذا كانت:
ߩxy =0فان المتحولين Xو Yمستقلين أي غير مترابطين،
وإذا كانت ߩxyقريبة من 1فان المتحولين Xو Yمترابطين بشكل موجب،
وإذا كانت ߩxyقريبة من -1فان المتحولين Xو Yمترابطين بشكل سالب،
96
oليكن لدينا المخرجات xn....،x3 ،x2 ،x1والتي يمكن جمعھا ضمن أزواج من النقاط
) .(xn-1,xn) ….،(xi,xi+1)..... ،(x5,x6) ،(x3,x4) ،(x1,x2ولنعتبر زوج النقاط األول ھو
من متحوالت Xوالثاني Yوھكذا ،...يسمى التابع ߩxyبتابع الترابط الذاتي
autocorrelation functionويساوي إلى:
n −1
∑ (x
i =1
i ) − X )( xi +1 − Y
= r1
n −1 n −1
∑ ( xi − X ) 2 ∑ ( xi +1 − Y ) 2
i =1 i =1
oمن أجل القيم الكبيرة لـ nيمكن تقريب العالقة السابقة بحيث تصبح:
n −1
∑ (x
i =1
i ) − X )( xi +1 − X
= r1 n −1
∑ (x
i =1
i − X )2
1 n
= X حيث ∑ xi
n i =1
97
oيسمى تابع الترابط الذاتي r1تابع الترابط لخطوة واحدة 1 lagوھو يھتم بترابط عينتين
متجاورتين.
oيمكن حساب تابع الترابط الذاتي للخطوة kباستخدام العالقة:
n−k
∑ (x
i =1
i ) − X )( xi + k − X
Rk
= rk n −1
=
R0
∑(x
i =1
i − X )2
oيبين الشكل التالي قيم تابع الترابط الذاتي rkمحسوب لقيم مختلفة للخطوة :k
rk
Lag k
98
(bمتوسط الحزم batch mean
oيعتمد متوسط الحزم على تقسيم المخرجات xn....،x3 ،x2 ،x1إلى مجموعات بحيث تحتوي
كل مجموعة على عدد متساوي من المخرجات عددھا bمثالً .أي أن المجموعة األولى
سوف تحتوي على المخرجات xb....،x3 ،x2 ،x1والمجموعة الثانية ،xb+2 ،xb+1
،x2b....،xb+3وھكذا ٩ ] .إيضاح[
oيتم حساب المتوسط للمجموعة X 1األولى ،والثانية ، X 2وللمجموعة kبـ X kفانه يمكن
البرھان على أن المتوسطات غير مترابطة ،ويعطى المتوسط الحزم بالعالقة:
1 k
= X ∑ Xi
k i =1
oويحسب االنحراف المعياري بالعالقة:
1 k
= s d2 ∑ ( X i − X )2
k i =1
oمن أجل القيم الكبيرة لـ ) kمثالً (k>30نحصل على مجال الثقة بالعالقة:
s s
X − 1.96 d , X + 1.96 d
k k
] 10إيضاح[
99
(cطريقة التكرار replication
oيمكن حساب مجال الثقة باستخدام طريقة أخرى عن طريق تكرار المحاكاة عدة مرات ومن
ثم حساب متوسط النتائج.
oلنفترض أننا ننفذ المحاكاة عدد nمرة:
التكرار x1m....،x13 ،x12 ،x11 :١-
التكرار x2m....،x23 ،x22 ،x21 :٢-
.
.
.
التكرار –xnm....،xn3 ،xn2 ،xn1 :n
X)
n i=1
.
المشكلة تكمن في حساب طول التجربة أي قيمة ، mو فترة العابرة لكل تجربة
oيتم حساب التكرار بإتباع إحدى طريقتين:
األولى :بتنفيذ المحاكاة بقيم ابتدائية مختلفة لكل مرة تنفيذ واالنتظار مدة كافية عند
التنفيذ حتى يستقر النظام ومن ثم تحصيل النتائج.
الثانية :بتنفيذ المحاكاة لمرة واحدة والبدء بتحصيل النتائج عند الوصول للحالة
المستقرة وذلك لفترة محددة ومن ثم تحصيل النتائج مرة ثانية خالل نفس الفترة
الزمنية الثانية وذلك دون التوقف عن العمل.
100
(dطريقة التجديد regenerative
oالحظنا سابقا ً أن طريقتي متوسط الحزم و التكرار تعتمدان فكرة توليد مخرجات مستقلة ومن
ثم حساب متوسط ھذه المخرجات المستقلة وذلك بتنفيذ المحاكاة مرات عدة ،بينما تعتمد
طريقة التجديد على توليد مخرجات مستقلة عن طريق تنفيذ المحاكاة لمرة واحدة.
oلنفترض أن ... ،t2 ،t1 ،t0ھي األزمنة التي يصبح بھا النظام فارغاً 11 ] ،إيضاح[ ،حيث
يرمز الزمن t0زمن دخول الزبون األول ألول مرة في النظام ،و الزمن t1زمن خروج
الزبائن جميعھا من الصف فيصبح المخدم فارغ ألول مرة.
oتسمى ھذه النقاط نقاط التجديد ،regenerative pointsوتسمى المسافة التي يقطعھا
المحاكي قبل أن يعود للحالة الفارغة بدورة التجديد ،regenerative cycleكما ھو مبين
في الشكل التالي:
101
.2.4التقييمات األخرى للمتحول العشوائي
oحتى اآلن تم حساب مجال الثقة للمتحول العشوائي لمخرجات النظام ،في ھذه الفقرة سوف
نستعرض حساب التقييمات األخرى والمفيدة أيضا ً في تحليل نظام المحاكاة وھي:
(aاحتمال وجود المتحول العشوائي ضمن مجال ثابت Probability that the
.random variable lie in fixed interval
(bالنسبة اﻟﻣﺋوﯾﺔ للمتحول العشوائي .Percentile of random variable
(aاحتمال وجود المتحول العشوائي ضمن مجال ثابت Probability that the random
. variable lie in fixed interval
oلتقييم ما إذا كان المتحول العشوائي يقع ضمن مجال ثابت نستخدم الطريقة نفسھا المستخدمة
لحساب المتوسط.
oليكن لدينا Iالمجال المطلوب ،وليكن Xالمتحول العشوائي إذا نريد أن نحقق:
) p = Pr( X ∈ I
oنقوم أو ً
ال بت نفيذ المحاكاة Mمرة ،بحيث يتم تحصيل Nعينة من كل تنفيذ للمتحول العشوائي
، Xوليكن v iعدد المرات التي يكون فيھا المتحول العشوائي Xيقع ضمن المجال ً ، I
إذا فأن
p i= vi /Nھو توقع المتحول العشوائي ،إذا :
M
1
=p
M
∑p i
i= 1
p )2
M 1 i= 1
−
حيث نالحظ أن حساب pتتطلب Mتكرار للمحاكاة .
102
(bالنسبة اﻟﻣﺋوﯾﺔ للمتحول العشوائي Percentile of random variable
oإن حساب النسب اﻟﻣﺋوﯾﺔ للمحول العشوائي مھم جداً في تحليل النظام ،فمثالً من غير المھم
معرفة متوسط زمن االستجابة لنظام ما ،وإنما من المھم زمن االستجابة نفسه )أي تخديم
أكبر عدد ممكن من اآلالت في أقل وقت ممكن( 12 ] .إيضاح[ .
oليكن لدينا المتحول العشوائي Xبتابع ذو كثافة احتمالي ) ،f(xتعرف النسبةاﻟﻣﺋوﯾﺔ 100βth
بأنھا أقل قيمة للمتحول العشوائي xβبحيث f(xβ)<βوبحيث أن المساحة المحصورة بين
∞ -و xβوتحت المنحني ) f(xأقل آو تساوي القيمة ،βكما ھو مبين بالشكل:
oلنفترض انه قمنا بتكرار تنفيذ المحاكاة في كل مرة نتجت لدينا مخرجات مستقلة ،xi2 ، xi1
xiN....،xi3عددھا . Nلنقم بترتيب ھذه المخرجات بحيث يكون x ij<xij+1عندھا يتم حساب
النسبةاﻟﻣﺋوﯾﺔ 100βthللمتحول العشوائي x βعن طريق حساب المتوسط باستخدام العالقة:
M
1
= xβ
M
∑ xβ
i =1
) (i
oإن تقييم النسبة اﻟﻣﺋوﯾﺔ يحتاج إلى تنفيذ المحاكاة بعدد مرات كثيرة وذلك للحصول على قيمة
غير منحازة ،إذا لحساب النسبة اﻟﻣﺋوﯾﺔ يجب:
تسجيل جميع المخرجات من بدء المحاكاة حتى نھاية التنفيذ.
ترتيب جميع المخرجات تصاعدياً.
] 13إيضاح[
103
(cتباين المتحول العشوائي Variance of the random variable
oلنفترض اننا قمنا بتنفيذ المحاكاة Mمرة وفي كل مرة نتجت لدينا مخرجات مستقلة ،xi2 ،xi1
xiN....،xi3عددھا .Nيمكن حساب المتوسط في كل تنفيذ:
N
1
= µi
N
∑x
j =1
ij
oوالمتوسط الكلي:
M
1
=µ
M
∑µ
i =1
i
oويمكن حساب التباين بتنفيذ المحاكاة لمرة واحدة ،حيث يتم اعتبار في دورات أن المخرجات
مستقلة ويتم من خاللھا حساب قيم المتوسط.
104
.5طرق تقييم الحاالت العابرة Estimation techniques for transient state
oتعتمد الحالة العابرة لنظام المحاكاة على الشروط االبتدائية ،فللحصول على متحول عشوائي
للحاالت العابرة يجب تنفيذ المحاكاة مرات عدة ،مع العودة للحالة االبتدائية في كل مرة
وتنفيذ المحاكاة بنفس الشروط االبتدائية ومن ثم تسجيل المخرجات قبل أن يستقر النظام.
oلتحقيق ذلك يجب أن يكون مصمم النظام على دراية كافية بطول الفترة العابرة ،باإلضافة
لذلك يجب أن يتم استخدام مولد عشوائية ذو استقاللية تامة عن بقية مرات التنفيذ األخرى.
105
ﻣلحقات
] 1مثال[
ال معرفة عدد مرات تكرار تعطل آلة ما في مصنع ،أو زمن إصالح اآللة ما عند وجود عاملمث ً
معين . ...
] 2مثال[
مثالً يمكن حساب زمن تعطل آلة بأنه مجموع األوقات التي بقية فيه اآللة في فترة انتظار اإلصالح
باإلضافة إلى زمن اإلصالح.
] 1إيضاح[
في مثال إصالح اآلالت في مصنع يمكن حساب زمن تعطل آلة باستخدام المعلومات التالية:
• زمن وصول اآللة إلى صف االنتظار )وقت التعطل(.
• زمن خروج اآللة من اإلصالح )وقت اإلصالح(.
يمكن حفظ ھذه المعلومات في مصفوفة ،وعند انتھاء المحاكاة تستخدم ھذه المصفوفة في حساب زمن
توقف اآلالت ،وحساب معلومات إحصائية أخرى مثل متوسط زمن التوقف meanو االنحراف
المعياري standard deviationو نسب التعطل.
] 2إيضاح[
يمكن االكتفاء باستخدام مصفوفة أحادية حيث يتم تخزين زمن الوصول عند وصول الرزمة إلى
العقدة ،وعند مغادرة الرزمة للعقدة يتم طرح زمن الخروج من الزمن المخزن أصالً في المصفوفة
والذي يعبر عن زمن الوصول وتخزين الناتج في المصفوفة لنحصل على زمن بقاء الرزمة في
المصفوفة.
] 3إيضاح[
طبعا ً يتغير أداء المحاكاة في كثير من األحيان مع تغير الشروط االبتدائية.
] 4إيضاح[
إذا تمت المحاكاة خالل فترة طويلة فان أداء النظام يكون مستقال عن الشرط االبتدائية ،ويكون التأثر
في حال أجريت المحاكاة خالل فترة زمنية صغيرة محددة .T
106
] 5إيضاح[
إذا لمعرفة الشروط األولية بدقة يجب أن يكون لدى مصمم النظام خبرة دقيقة بالنظام من حيث
مدخالته ومخرجاته وتوقع أداء عمله.
] 1مثال[
لقد بينا في المثال إصالح اآلالت في المصنع )راجع الفصل األول( انه يوجد حدثين فقط ،األول
دخول اآللة إلى صف اإلصالح )أي تعطل اآللة( والثاني خروج اآللة من الصف )أي إصالحھا(.
حيث تدعى ھذه األحداث باألحداث األولية .Primary events
] 2مثال[
إن تكرار حدوث أعطال في اآلالت ودخول اآلالت إلى صف االنتظار قد يؤدي إلى حدوث حالة
جديدة ال تخرج اآلالت من صف االنتظار )إي ال تصلح( وذلك عندما يكون عامل اإلصالح بحاجة
إلى وقت للراحة idleحتى ولديه عدد كبير من اآلالت بحاجة إلى إصالح.
] 5إيضاح[
سوف نشرح قائمة األحداث المستقبلية في الفقرة التالية.
] 6إيضاح[
يعكس مجال الثقة قيمة الخطأ الممكن حدوثه عند حساب المتوسط .أي انه عند تنفيذ التجربة لمئة مرة
فأن 95%من ھذه التجارب سوف تكون ضمن المجال الصحيح.
] 7إيضاح[
يمكن حساب أية نقطة من نقاط المنحني باستخدام جدول التوزع القياسي المبين:
107
0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09
0.0 0.0000 0.0040 0.0080 0.0120 0.0160 0.0199 0.0239 0.0279 0.0319 0.0359
0.1 0.0398 0.0438 0.0478 0.0517 0.0557 0.0596 0.0636 0.0675 0.0714 0.0753
0.2 0.0793 0.0832 0.0871 0.0910 0.0948 0.0987 0.1026 0.1064 0.1103 0.1141
0.3 0.1179 0.1217 0.1255 0.1293 0.1331 0.1368 0.1406 0.1443 0.1480 0.1517
0.4 0.1554 0.1591 0.1628 0.1664 0.1700 0.1736 0.1772 0.1808 0.1844 0.1879
0.5 0.1915 0.1950 0.1985 0.2019 0.2054 0.2088 0.2123 0.2157 0.2190 0.2224
0.6 0.2257 0.2291 0.2324 0.2357 0.2389 0.2422 0.2454 0.2486 0.2517 0.2549
0.7 0.2580 0.2611 0.2642 0.2673 0.2704 0.2734 0.2764 0.2794 0.2823 0.2852
0.8 0.2881 0.2910 0.2939 0.2967 0.2995 0.3023 0.3051 0.3078 0.3106 0.3133
0.9 0.3159 0.3186 0.3212 0.3238 0.3264 0.3289 0.3315 0.3340 0.3365 0.3389
1.0 0.3413 0.3438 0.3461 0.3485 0.3508 0.3531 0.3554 0.3577 0.3599 0.3621
1.1 0.3643 0.3665 0.3686 0.3708 0.3729 0.3749 0.3770 0.3790 0.3810 0.3830
1.2 0.3849 0.3869 0.3888 0.3907 0.3925 0.3944 0.3962 0.3980 0.3997 0.4015
1.3 0.4032 0.4049 0.4066 0.4082 0.4099 0.4115 0.4131 0.4147 0.4162 0.4177
1.4 0.4192 0.4207 0.4222 0.4236 0.4251 0.4265 0.4279 0.4292 0.4306 0.4319
1.5 0.4332 0.4345 0.4357 0.4370 0.4382 0.4394 0.4406 0.4418 0.4429 0.4441
1.6 0.4452 0.4463 0.4474 0.4484 0.4495 0.4505 0.4515 0.4525 0.4535 0.4545
1.7 0.4554 0.4564 0.4573 0.4582 0.4591 0.4599 0.4608 0.4616 0.4625 0.4633
1.8 0.4641 0.4649 0.4656 0.4664 0.4671 0.4678 0.4686 0.4693 0.4699 0.4706
1.9 0.4713 0.4719 0.4726 0.4732 0.4738 0.4744 0.4750 0.4756 0.4761 0.4767
2.0 0.4772 0.4778 0.4783 0.4788 0.4793 0.4798 0.4803 0.4808 0.4812 0.4817
2.1 0.4821 0.4826 0.4830 0.4834 0.4838 0.4842 0.4846 0.4850 0.4854 0.4857
2.2 0.4861 0.4864 0.4868 0.4871 0.4875 0.4878 0.4881 0.4884 0.4887 0.4890
2.3 0.4893 0.4896 0.4898 0.4901 0.4904 0.4906 0.4909 0.4911 0.4913 0.4916
2.4 0.4918 0.4920 0.4922 0.4925 0.4927 0.4929 0.4931 0.4932 0.4934 0.4936
2.5 0.4938 0.4940 0.4941 0.4943 0.4945 0.4946 0.4948 0.4949 0.4951 0.4952
2.6 0.4953 0.4955 0.4956 0.4957 0.4959 0.4960 0.4961 0.4962 0.4963 0.4964
2.7 0.4965 0.4966 0.4967 0.4968 0.4969 0.4970 0.4971 0.4972 0.4973 0.4974
2.8 0.4974 0.4975 0.4976 0.4977 0.4977 0.4978 0.4979 0.4979 0.4980 0.4981
2.9 0.4981 0.4982 0.4982 0.4983 0.4984 0.4984 0.4985 0.4985 0.4986 0.4986
3.0 0.4987 0.4987 0.4987 0.4988 0.4988 0.4989 0.4989 0.4989 0.4990 0.4990
108
] 8إيضاح [
ويتم حساب المعادلة السابقة باستخدام العالقة التالية :
N 1
−
)µ y
] 9إيضاح [
ويتم اختيار المجموعات بحيث تكون المخرجات فيما بينھا مترابطة ضمن المجموعة الواحدة
] 10إيضاح[
يجب اختيار عدد العينات ضمن كل حزمة bاكبر ما يمكن بحيث ال تكون قيم المخرجات ضمن
الحزمة غير مترابطة ،ويتم اختيار قيمة bعن طريق رسم المنحني البياني لقيم تابع الترابط الذاتي
ومن ثم اختيار القيم التي تكون فيه bاصغر ما يمكن:
rk
Lag k
b=7
] 11إيضاح[
وھي الحاالت التي يخرج بھا الزبون من الصف فيصبح مخدم النظام فارغاً بحيث ال يوجد أية زبون
في الصف.
] 12إيضاح[
مثالً يتم حساب نسبة االستجابة يجب أن ال تقل في نظام ما عن . 95%
] 13إيضاح[
يمكن الحصول بشكل مباشر على قيمة النسبة اﻟﻤﺌﻮﯾﺔ عن طريق رسم الھيستوغرام للمخرجات ومن
ثم حساب مجال الثقة المطلوب ومنه استنتاج القيمة المطلوبة.
109
ﻣسائل
قم بتعديل برنامج المحاكاة الذي قمت بتصميمه سابقا ً حول محاكاة مصنع ،بحيث -13
تحقق مايلي:
-aقم بتحصيل المعلومات بالزمن الذي تقضيه اآللة في فترة اإلصالح ،وفي فترة العمل.
-bقم بإضافة برنامج جزئي يقوم بحساب متوسط و االنحراف المعياري.
-cقم بتنفيذ المحاكاة لـ ٥٠مرة واعتبر أنھا فترة عابرة ،واحسب المتوسط واالنحراف
المعياري.
-dتابع تنفيذ المحاكاة لـ 5٥0مرة واعتبر أنھا فترة المستقرة ،واحسب المتوسط واالنحراف
المعياري.
-eقارن بين النتائج السابقة و سجل مالحظاتك.
-fاستخدم طريقة حساب متوسط الحزم لحساب المتوسط ،وقارن النتائج التي حصلت عليھا
مع النتائج السابقة.
-gاحسب مجال الثقة لـ 95%من تعطل اآللة.
110
لغات المحاكاة
Simulation Languages
.1ﻣقدﻣة
oبالعودة إلى الفصول السابقة نجد أنه عند تصميم نظام محاكاة يتطلب من لغة البرمجة أن
تحقق مجموعة من البرامج المشتركة يمكن أن نحددھا بما يلي:
oبرامج جزئية توليد األعداد العشوائية الزائفة بموزعة بتوزيع منتظم.
oبرامج جزئية توليد األعداد العشوائية الغير محدد موزعة بتوابع توزيع متعددة.
oبرامج جزئية لتوليد والتحكم بساعة المحاكي.
oبرامج جزئية لتحديد الحدث التالي أو الجديد من قائمة األحداث المستقبلية.
oبرامج جزئية للتحكم بقائمة األحداث المستقبلية.
oبرامج جزئية لتجميع وإظھار النتائج.
oوكما سنرى الحقا ً نحتاج إلى برامج لدراسة النتائج وتحليلھا وبرامج لكشف األخطاء.
oيمكن باستخدام لغات البرمجة عالية المستوى Cأو C++أو J++تحقيق ھذه البرامج
بسھولة ،ولكن يمكن استخدام حزم برمجية خاصة يمكن من خاللھا تصميم أية نظام محاكاة
بكفاءة وسرعة عالية وبدون الدخول بالتفاصيل البرمجية الدقيقة.
oسوف نستعرض في ھذا الفصل فكرة عن عدد أشھر ھذه الحزم البرمجية من خصائص
ومزايا ومساؤى ھذه الحزم بدون الدخول بتفاصيل كيفية التعامل معھا واستخدامھا.
111
oمن جھة أخرى بعض نظم المحاكاة تستخدم لغات البرمجية عالية المستوى لعددت أسباب
منھا:
خبرة المبرمجين الكبيرة بلغات البرمجة عالية المستوى ،ولكن عدم معرفتھم بالحزم
البرمجية.
إن النظم البرمجية المصممة بلغات برمجة عالية المستوى تتميز بزمن تنفيذ صغير
مقارنتا ً بزمن التنفيذ الذي تأخذه برامج المحاكاة المصممة بالحزم البرمجية الجاھزة.
تھئ لغات البرمجة عالية المستوى مرونة اكبر بالتصميم والتحقيق من الحزم
البرمجية المحدودة ضمن قوالب خاصة.
إن لغات البرمجة C++و J++ھي لغات غرضية التوجه وھذا غير متوفر في
معظم الحزم البرمجية الجاھزة.
إن الكلفة االقتصادية العالية للحزم الجاھزة تؤدي في كثير من األحيان إلى استخدام
لغات برمجة عالية المستوى.
112
2 .3العواﻣل المشتركة بين الحزم البرﻣجية
oتحتوي الحزم البرمجية على مجموعة من العوامل المشتركة منھا:
الكينونات :entitiesوھي العناصر التي تسافر أو تتحرك في نظام المحاكاة ويمكن
أن تدمر أو تختفي في النھاية ،الطائرة في نظام محاكاة مطار مثالً.
الصفات :attributesوھي الصفات التي تتميز بھا الكينونات ،وھي المعلومات
الخاصة التي تخزن في كل كينونة .رقم الرحلة نوع الطائرة..الخ في نظام محاكاة
مطار.
الموارد :resourcesوھي موارد نظام المحاكاة والتي تستخدمھا الكينونات أثناء
تحركھا في النظام .البوابة في مطار أو مدرج الطيران في نظام محاكاة مطار.
الصفوف :queuesوھي أماكن انتظار الكينونات عندما تكون الموارد غير
متوفرة ،ويمكن أن يتم تخديم ھذه الكينونات بطريقة FIFOأو بطريقة LIFOأو
بالترتيب التصاعدي أو التنازلي .مثالً انتظار الطائرات على مدرج المطار لإلقالع
في نظام محاكي مطار.
oيبين الجدول التالي مجموعة أمثلة للعوامل المشتركة بين الحزم البرمجية:
مصنع قطعة رقم القطعة ،تاريخ الطلب..، األالت ،العمال..، الصف او التخزين المؤقت،
اتصاالت رسالة جھة الرسالة ،طول الرسالة..، العقد ،الروابط..، عازل buffer
مطار طائرة رقم الرحلة ،وزن الرحلة..، مدرج الطيران ،البوابة..، صف queue
شركة تأمين اسم ،رقم ضبط الشرطة ،الكلفة ..،طلب زبون مكاتب الزبائن ،الموظفين..، صف queue
113
.4ﻣواصفات لغات البرﻣجة
oعند اختيار لغة برمجة لتصميم محاكاة لنظام ما ،يجب أن تتمتع ھذه اللغة بمجموعة
مواصفات خاصة تمكنھا من تحقيق نظام المحاكاة بشكل كامل .ھذه المواصفات يمكن أن
نلخصھا بما يلي:
.Aالعمومية.
.Bمراعاة المواصفات البرمجية و العتادية .
.Cقدرة بناء رسوم متحركة.
.Dالخاصية اإلحصائية.
.Eخدمة الزبون الوثائق المساعدة.
.Fقدرة إصدار تقارير بالنتائج.
oسوف نستعرض ھذه المواصفات أكثر تفصيالً في الفقرات القادمة.
-Aالعمومية
oيقصد بالعمومية ھو قدرة لغة البرمجة من تحقيق نظام ما مھما كانت درجة تعقيد ھذا النظام،
حيث تجھز لغة البرمجة بإمكانية إضافة برامج جزئية مكتوبة بلغات برمجة عالية المستوى
مثل Cمثالً ليتمكن المصممين من تحقيق أية حدث غير متوفر في لغة البرمجة أصال.
لتكون لغة البرمجة مرنة يجب أن تحقق الخصائص التالية :
يجب أن يتمكن المبرمج من تغير خصائص الكينونة بسھولة ،ومن تغيير قيم
المتحوالت العامة أيضاً .
يجب أن تحتوي لغة على التعليمات الشرطية .if-then-else
القابلية على برمجة معادالت رياضية و توابع رياضية معقدة مثل اللغارتيمات
والجذور .
القابلية على إنشاء شروط تحكم جديدة وتخزين الشروط القديمة في قواعد بيانات
خاصة.
oمن أھم المواصفات التي يجب أن تتوفر في لغة البرمجة ھي سھولة في االستخدام easy of
usesو السھولة في التعلم ، easy of learningفمعظم لغات البرمجة تحتوي على
Graphical user interfaceلتسھيل التخاطب مع المبرمج.
114
-Bمراعاة المواصفات البرمجية و العتادية
oعند اختيار لغة البرمجة ما ھي مواصفات الجھاز الحاسوبي المناسب الممكن استخدامه وما
ھو نظام التشغيل المستخدم .فيجب مراعاة مالي:
نظام التشغيل المستخدم من ،Linux ،Unixأو .windows
الجھاز من نوع Appleأو من .IBM Compatible
حجم ذاكرة RAMالمستخدمة.
حجم وقدرة كرت اإلظھار المستخدم.
سرعة المعالج وقوته.
115
-Dالخاصية اإلحصائية
oيجب ان يحتوي النظام على وسائل إحصائية تقوم بإصدار وتحليل النتائج وذلك للحصول
على نتائج دقيقة وقرارات دقيقة لنظام المحاكاة.
oليتمكن نظام المحاكي من مطابقة الواقع بشكل تقريبي يجب أن يحتوي على مولد لألعداد
العشوائية ذات توزيع منتظم ،بحيث تمر ھذه األعداد على االختبارات المستخدم للتحقق من
توزعھا المنتظم واستقالليتھا.
oيجب أن يحتوي المحاكي على الوسائل الخاصة بتوليد أعداد عشوائية بتوزيعات مختلفة
)أسي ،غاما ،طبيعي (...بناء على رغبة المبرمج.
oيجب أن يحتوي المحاكي على وسيلة لتشغيل المحاكاة عدة مرات منفصلة بحيث يضمن
تشغيالً بأعداد عشوائية مختلفة في كل تشغيل حتى عند استخدام نفس الشروط االبتدائية.
oيجب أن يحتوي لغة البرمجة على وسيلة تقدم خدمة للزبون سواء عن طريق الھاتف أو عن
طريق االنترنت .online support
oمعظم لغات البرمجة تحتوي على demo diskيوزع مجانا ليسھل على متخذي القرار
اختيار أفضل محاكي المناسب.
116
.5الحزم البرﻣجية عاﻣة التوجه General purpose Simulation packages
oسوف نستعرض في ھذه الفقرة فكرة عامة ومختصرة عن الحزم البرمجية عامة التوجه
والتي تستخدم لبناء نظام محاكاة .سوف نقدم مثالين فقط ألشھر أنواع ھذه الحزم والتي تمتع
بالموصفات المبينة سابقا:
الحزمة األولى تسمى Arenaمن شركة 3 ] Rokwell Automationإيضاح[
الحزمة الثانية تسمى Extendمن شركة 4 ] Imagineإيضاح[
oسوف نقوم خالل الفقرات القادمة بإعطاء فكرة بسيطة حول كيفية بناء نظام محاكة بسيط
باستخدام الحزمتين السابقتين.
1.5حزﻣة Arena
oتعتبر حزمة Arenaمن البرمجيات المستخدمة للمحاكاة عامة التوجه ،وھو مستخدم لتصميم
محاكاة لعدد متنوع من التطبيقات منھا :
المصانع .
خطوط اإلنتاج.
في القطاع العسكري .
في القطاع الصحي.
في مراكز خدمة الزبائن .
oويتوفر Arenaبعدد من اإلصدار ويتراوح من حزمة بسيطة أساسية Basicلتصميم
المحا كاة البسيطة إلى حزمة محترفة لتصميم نظم محاكاة معقدة.
oتتألف حزمة Arenaمن مجموعة من المركبات modulesتغطي عدد كبير من القوالب
templatesوالتي ھي عبارة عن برامج جاھزة منھا :
العمليات المنطقية logicوالروابط
واجھات التخاطب مع المستخدم
.
الرسومات المساعدة.
معالجة دخول و خروج الكينونات
.
117
oوتتم البدء بالمحاكاة عن طريق جر الموديوالت إلى النافذة الرئيسية ومن ثم القيام بوصل
الروابط بينھا إلنشاء المخطط التدفقي الخاص بالمحاكاة.
oو يتوفر في Arenaعدد كبير من مولد األعداد العشوائية المبينة في الفصول السابقة،
وتحتوي أيضا ُ على أكثر من 12تابع توزيع كثافة احتمالي.
oكما يتوفر في الحزمة طرق لتكرار المحاكاة أتوماتيكياً وحساب مجال ثقة للمتوسط وفق
الطرق المبينة في الفصل السابق.من ثم برمجة كل موديول عن طريق إدخال المعلومات و
األوامر الخاصة بكل موديول.
oسوف نشرح بشكل مختصر بناء نظام محاكي لخط إنتاج في مصنع ،ومن ثم يقوم عامل
باختبار صالحية قطعة المنتجة ،حيث نفترض أن خط اإلنتاج ال يتوقف ابدأ وان اآلالت ال
تتعطل.
oيبين الشكل التالي بناء المخطط التدفقي لمحاكي لخط إنتاج في مصنع مبني بحزمة ،Arena
حيث نالحظ إننا نحتاج إلى خمسة موديالت .
True
Passed Inspection Good Parts Finished
False
118
ويكون معدل توليد، لتوليد األجزاء إلى خط اإلنتاجGenerate Parts يستخدم الموديولo
يبين الشكل، دقيقة1 األجزاء عشوائياً بتابع توزيع كثافة احتمالي أسي و بمتوسط يساوي
.التالي النافذة الخاصة بخصائص ھذا الموديول
Create
Process
Name: Type:
Machine Part Standard
Logic
Action: P riority:
Seize Delay Release Medium (2)
Resource Machine, 1
<End of list>
Minimum: Maximum:
0.65 0.75
Report Statistics
119
وھو المسؤول عن اختبار المنتج بعد التصنيع فيInspector Module الموديول التاليo
و يتبع ھذا الموديول تابع توزع احتمالي منتظم بين،Machine Parte الموديول الثاني
. يبين الشكل التالي النافذة الخاصة بخصائص ھذا الموديول، دقيقة0.8 و0.75 القيم
Process
Name: Type:
Inspect Part Standard
Logic
Action: Priority:
Seize Delay Release Medium (2)
Resource Machine, 1
<End of list>
Minimum: Maximum:
0.75 0.80
Report Statistics
120
oالموديول التالي ھو Inspectorوھو المسؤول عن وضع القرار فيما إذا كان المنتج صالح
أم غير صالح ،حيث يتم أختيار أن 90%من المنتجات صالحة ،يبين الشكل التالي النافذة
الخاصة بخصائص ھذا الموديول.
Decide
Name: Type:
?Personal Inspection 2-Way by chance
يتم بعد ذلك تنفيذ المحاكاة بمدة مثالً 100000دقيقة ،يبين الجدول التالي النتائج .30
التي حصلنا عليھا .
121
2.5حزﻣة Extendsim
oتعتبر حزمة Extendsimمن البرمجيات المستخدمة للمحاكاة عامة التوجه ،وھو مستخدم
لتصميم محاكاة لعدد كبير من التطبيقات بسبب الخاصية التي يتمتع بھا من إضافة مكتبة
خاصة بالمستخدم وذلك باستخدام لغة C++أو لغة Visual Basicويمكن للمستخدم تعديل
البرنامج أو قراءته بمجرد الضغط على الموديول بمفتاح الفأرة األيمن.
oيعتمد بناء محاكي على نظام ھرمي تتوسع قاعدته بشكل كبير ،بحيث أن كل مودل model
يمكن توسيعه إلى مجموعة متكاملة من الموديالت ،modelsوبحيث ان توسيع المودل يتم
بنوافذ رسومية جديدة للتحكم.
oيتوفر في Extendsimأيضا ً عدد كبير من مولد األعداد العشوائية المبينة في الفصول
السابقة ،ويحتوي أيضا ُ على أكثر من 34تابع توزيع كثافة احتمالي.
oكما يتوفر في الحزمة طرق لتكرار المحاكاة أتوماتيكياً وحساب مجال ثقة للمتوسط وفق
الطرق المبينة في الفصل السابق.من ثم برمجة كل موديول عن طريق إدخال المعلومات و
األوامر الخاصة بكل موديول.
oسوف نشرح بشكل مختصر بناء نظام محاكي لخط إنتاج في مصنع باستخدام ، Extendsim
ومن ثم يقوم عامل باختبار صالحية قطعة المنتجة ،حيث نفترض أن خط اإلنتاج ال يتوقف
ابدأ وان اآلالت ال تتعطل
.
oيبين الشكل التالي بناء المخطط التدفقي لمحاكي لخط إنتاج في مصنع مبني بحزمة
:Extendsim
0.9
event Good
0.1
Bad
Combine Inputs Part Statistics
count Destroy Parts
Executive
122
وھي المسؤولة عن توليد األجزاء إلى خطCreate Parts األولى بـblock تسمى الكتلةo
ويكون معدل توليد األجزاء عشوائيا ً بتابع توزيع كثافة احتمالي أسي وبمتوسط،اإلنتاج
. يبين الشكل التالي النافذة الخاصة بخصائص ھذه الكتلة، دقيقة1 يساوي
[29] Create
Options Advanced option Item Animation Block Animation Comments
OK
Creates items randomly or by schedule
Cancel
Specify block options
123
ومھمتھا دمجCombine Inputes بالكتلة الثانيةCreate Block ترتبط الكتلة األولىo
وتعطي في خرجھا سلسلة،األجزاء القادمة من الكتلة األولى أي المولدة وبين األجزاء التالفة
.واحدة
،ً ومھمتھا تصنيع األجزاء المولدة سابقاMachine Parts تربط كتلة الجمع بالكتلة التاليةo
0.7 و0.65 حيث يستخدم لھذه الكتلة عدد عشوائي بتابع توزع احتمالي منتظم بين القيم
: يبين الشكل التالي النافذة الخاصة بخصائص لھذه الكتلة،دقيقة
[0] Workstation
Options Costs Recourses Results Item Animation Block Animation Comments
OK
Represent a work station that holds and process Items
Cancel
Specify queue options
Maximum: 0.7
* model default
Use shift: None
124
وھي المسؤولة عن اختبار المنتج بعد التصنيع في الكتلةInspector Module الكتلة التاليةo
و0.75 و تتبع ھذه الكتلة تابع توزع احتمالي منتظم بين القيم،Machine Parte الثانية
: يبين الشكل التالي النافذة الخاصة بخصائص ھذه الكتلة، دقيقة0.8
OK
Send each item to selected output
Cancel
Specify selection conditions
Select options
Probability Throughput
Send input item to:
0.9 100348
every output
0.1 11080
Predict the path of the item before it
Animate throughput
Link
، [ إيضاح5 ]
125
ﻣلحقات
] 1إيضاح[
.1برامج جزئية توليد األعداد العشوائية الزائفة بموزعة بتوزيع منتظم.
.2برامج جزئية توليد األعداد العشوائية الغير محدد موزعة بتوابع توزيع متعددة.
.3برامج جزئية لتوليد والتحكم بساعة المحاكي.
.4برامج جزئية لتحديد الحدث التالي أو الجديد من قائمة األحداث المستقبلية.
.5برامج جزئية للتحكم بقائمة األحداث المستقبلية.
.6برامج جزئية لتجميع وإظھار النتائج.
.7برامج جزئية لدراسة النتائج وتحليلھا
.8برامج جزئية لكشف األخطاء.
] 2إيضاح[
ال إضافة مخدم إلى نظام محاكاة نظام شبكة عن طريق إدراج أيقونة المخدم ووضعه بالمكان يمكن مث ً
المخصص للمحاكاة ومن ثم ربطه ببقية النظام .ويمكن أيضا ً تغيير مواصفات المخدم بالضغط على
أيقونة المخدم فتفتح نافذة يمكن من خاللھا تغير مواصفات المخدم.
] 3إيضاح[
يمكن للطالب الحصول على مزيد من المعلومات ونسخة عرض Demoمن الموقع التالي:
http://www.arenasimulation.com
] 4إيضاح[
يمكن للطالب الحصول على مزيد من المعلومات ونسخة عرض Demoمن الموقع التالي:
http://www.extendsim.com
] 5إيضاح[
من شكل الرئيسي للمحاكاة يمكن استنتاج بقية أجزاء المحاكي.
126
] 6إيضاح[
يمكن للطالب الحصول على مزيد من المعلومات ونسخة عرض Demoمن الموقع التالي:
http://www.automedsystems.com
] 7إيضاح[
يمكن للطالب الحصول على مزيد من المعلومات ونسخة عرض Demoمن الموقع التالي:
http://www.opnet.com/solutions
] 8إيضاح[
يمكن للطالب الحصول على مزيد من المعلومات ونسخة عرض Demoمن الموقع التالي:
http://www.promodel.com/products/medmodel
] 9إيضاح[
يمكن للطالب الحصول على مزيد من المعلومات ونسخة عرض Demoمن الموقع التالي:
http://www.wolverinesoftware.com/ProofProducts.htm
127