جداول المحاكاة يدويا
يحول هذا الدرس العملي أفكار المحاضرة 1 إلى مهارة تستطيع أداءها بالقلم: تأخذ جدول احتمالات، وتحوله إلى فترات أرقام عشوائية، ثم تبني جدول محاكاة عميلا بعد عميل (أو يوما بعد يوم). كل ما يفعله برنامج المحاكاة ستفعله هنا يدويا، ببطء يكفي لرؤية كل حدث.
الأهداف
بنهاية هذا الدرس ينبغي أن تكون قادرا على:
- تحويل التوزيع الاحتمالي (probability distribution) إلى احتمالات تراكمية (cumulative probabilities) وفترات أرقام عشوائية (random-number intervals).
- قراءة رقم عشوائي معطى وتحويله إلى قيمة: زمن ما بين الوصول (inter-arrival time)، أو زمن الخدمة (service time)، أو فئة.
- بناء جدول محاكاة (simulation table) لطابور بخادم واحد (single-server queue)، عمودا بعد عمود.
- حساب متوسط زمن الانتظار (waiting time)، ومتوسط الزمن الذي يقضيه العميل في النظام (time in system)، ومتوسط زمن خمول الخادم (idle time).
- التعامل مع الوصول المجدول (scheduled arrivals) بزمن الساعة (clock time)، ومع المسائل التي فيها متغيران عشوائيان مستقلان في كل يوم.
- تجنب الأخطاء الشائعة: حدود الفترات، ونسيان
max()، والعميل الأول، والوحدات.
موقع هذا الدرس من المقرر
تعرف المحاضرة 1 المحاكاة (simulation) بأنها تقليد عمليات منشأة أو إجراء ما، وعادة يكون ذلك باستخدام الحاسوب. والمنشأة أو الإجراء الذي ندرسه هو النظام (system): مجموعة من الكيانات (أشخاص، أجزاء، آلات، خوادم) تعمل وتتفاعل معا لتحقيق غاية ما. ولدراسته نضع افتراضات، منطقية ورياضية، ومجموعة هذه الافتراضات هي النموذج (model).
الأنظمة في هذا الدرس هي نقطة خدمة في متجر بقالة، وعيادة طبيب أسنان، ومصنع. النموذج هو جدول الاحتمالات المعطى لنا. والمحاكاة هي الجدول الذي نملؤه يدويا.
المسائل الثلاث كلها نماذج محاكاة أحداث متقطعة (discrete event simulation)، وهو النوع الذي تقول المحاضرة 1 إن معظم النماذج التشغيلية تنتمي إليه:
- ديناميكي (dynamic): نتتبع النظام عبر الزمن، عميلا بعد عميل.
- احتمالي (stochastic): الوصول وأزمنة الخدمة عشوائية، تسحب من احتمالات.
- متقطع (discrete): تتغير حالة النظام فقط عند نقاط منفصلة من الزمن، عندما يصل عميل أو يغادر.
تتقدم الساعة بطريقة تقديم الزمن إلى الحدث التالي (next-event time advance): تبدأ من 0 وتقفز من حدث (وصول أو مغادرة) إلى الحدث التالي، متخطية أوقات عدم النشاط. وتلخص المحاضرة 1 ما يحدث لكل عميل هكذا:
Departure time = Arrival time + Service time + Delay timeلماذا نحاكي يدويا أولا؟
برنامج المحاكاة يفعل تماما ما يفعله جدولنا، لكن بسرعة أكبر. تسرد المحاضرة 1 مكونات هذا البرنامج، ولكل منها مكان في الجدول اليدوي:
| مكون البرنامج (المحاضرة 1) | أين يظهر في جدولنا |
|---|---|
| روتين المكتبة (library routine): توليد مشاهدات عشوائية من التوزيعات الاحتمالية | قراءة رقم عشوائي وتحويله إلى قيمة |
| قائمة الأحداث (event list) وساعة المحاكاة (simulation clock) | عمودا الوصول ونهاية الخدمة |
| العدادات الإحصائية (statistical counters) | مجاميع الأعمدة |
| مولد التقارير (report generator) | المتوسطات في النهاية |
إذا استطعت ملء الجدول بشكل صحيح، فستستطيع لاحقا كتابة البرنامج ومقارنة مخرجاته بجدولك.
الطريقة الأساسية: من الاحتمالات إلى فترات الأرقام العشوائية
تبدأ كل مسألة في هذا الدرس بالطريقة نفسها. كمية عشوائية (زمن ما بين الوصول، أو زمن خدمة، أو نوع علاج) يصفها جدول من القيم والاحتمالات. ونحتاج إلى قاعدة تحول رقما عشوائيا معطى إلى إحدى هذه القيم، بحيث تظهر كل قيمة بقدر ما يقول احتمالها.
الوصفة ذات الخطوات الأربع
- اكتب كل قيمة ممكنة مع احتمالها.
- اجمع الاحتمالات نزولا في الجدول للحصول على الاحتمال التراكمي.
- أعط كل قيمة مجموعة من الأرقام العشوائية ذات الخانتين من
00إلى99، عددها يساوي احتمالها بالنسبة المئوية. الخانتان تعطيان 100 رقم بالضبط، لذا يحصل الاحتمال 0.18 على 18 رقما منها. - اقرأ كل رقم عشوائي معطى: حدد الفترة التي يقع فيها، وخذ تلك القيمة.
قاعدة الفترة
تمتد فترة كل قيمة من الاحتمال التراكمي السابق حتى ما قبل الاحتمال التراكمي الحالي مباشرة:
Low end = (previous cumulative) x 100
High end = (this cumulative) x 100 - 1الفترة الأخيرة تنتهي دائما عند 99. فإن لم تنته عنده، فقد سقط أحد الاحتمالات أو أخطئ في جمعه.
مثال محلول: أزمنة الخدمة في السؤال 1
أزمنة الخدمة من 1 إلى 8 دقائق احتمالاتها 0.10 و0.18 و0.22 و0.16 و0.14 و0.10 و0.05 و0.05:
| زمن الخدمة (دقيقة) | الاحتمال | التراكمي | فترة الأرقام العشوائية |
|---|---|---|---|
| 1 | 0.10 | 0.10 | 00 - 09 |
| 2 | 0.18 | 0.28 | 10 - 27 |
| 3 | 0.22 | 0.50 | 28 - 49 |
| 4 | 0.16 | 0.66 | 50 - 65 |
| 5 | 0.14 | 0.80 | 66 - 79 |
| 6 | 0.10 | 0.90 | 80 - 89 |
| 7 | 0.05 | 0.95 | 90 - 94 |
| 8 | 0.05 | 1.00 | 95 - 99 |
زمن الخدمة 2 احتماله التراكمي السابق 0.10 واحتماله التراكمي الحالي 0.28، لذا فترته 10 - 27. والرقم 28 هو أول رقم في الفترة التالية، أي زمن الخدمة 3. لاحظ أن 0.28 يعطي حدا أعلى قدره 27 وليس 28.
قراءة أرقام من هذا الجدول:
| الرقم العشوائي | يقع في | زمن الخدمة |
|---|---|---|
| 84 | 80 - 89 | 6 |
| 10 | 10 - 27 | 2 |
| 27 | 10 - 27 | 2 |
| 28 | 28 - 49 | 3 |
| 50 | 50 - 65 | 4 |
| 95 | 95 - 99 | 8 |
الرقمان الحديان 27 و28 هما الموضع الذي تضيع فيه معظم الدرجات. افحص دائما طرفي الفترة كليهما.
القيم المتساوية الاحتمال
عندما تتساوى احتمالات كل القيم، تكون الفترات مجموعات متساوية. أزمنة ما بين الوصول في السؤال 1، من 1 إلى 10 دقائق، متساوية الاحتمال، لذا تحصل كل منها على 10% من الأرقام: 00 - 09 للزمن 1، و10 - 19 للزمن 2، وهكذا حتى 90 - 99 للزمن 10 (بالدقائق).
خانتان أم ثلاث؟
تكفي الأرقام ذات الخانتين كلما كان كل احتمال نسبة مئوية صحيحة. في المحاضرة 1 مثال فيه ثمانية أزمنة لما بين الوصول متساوية الاحتمال، احتمال كل منها 1/8 = 0.125. والخانات العشرية الثلاث تحتاج إلى أرقام عشوائية ذات ثلاث خانات، من 000 إلى 999، فتعطي الفترات 000 - 124 و125 - 249 و250 - 374، وهكذا. اجعل عدد الخانات مطابقا لدقة الاحتمالات. وكل مسائل هذا الدرس تستخدم خانتين.
جدول المحاكاة
لجدول المحاكاة صف لكل عميل وصيغة لكل عمود.
| العمود | المعنى |
|---|---|
| الرقم العشوائي 1 | معطى؛ ويحدد زمن ما بين الوصول |
| زمن ما بين الوصول | الدقائق منذ وصول العميل السابق |
| الرقم العشوائي 2 | معطى؛ ويحدد زمن الخدمة |
| زمن الخدمة | الدقائق التي يحتاجها هذا العميل عند نقطة الخدمة |
| زمن الوصول | الوقت على الساعة الذي يصل فيه العميل |
| بداية الخدمة | متى يبدأ الخادم خدمة هذا العميل |
| نهاية الخدمة | متى يغادر العميل (زمن المغادرة) |
| زمن الانتظار | الدقائق التي يقضيها العميل في الطابور |
| الزمن في النظام | الدقائق من الوصول حتى المغادرة |
| زمن الخمول | الدقائق التي ظل فيها الخادم متفرغا قبل هذا العميل |
الصيغ كما تذكرها المحاضرة 1، للعميل i:
Arrival(i) = Arrival(i-1) + Inter-arrival(i)
Service start(i) = max( Arrival(i), Service end(i-1) )
Service end(i) = Service start(i) + Service time(i)
Waiting time(i) = Service start(i) - Arrival(i)
Time in system(i) = Service end(i) - Arrival(i)
Idle time(i) = Service start(i) - Service end(i-1)الإجراء لعميل واحد
- اقرأ الرقم العشوائي 1 وحوله إلى زمن ما بين الوصول.
- أضفه إلى زمن الوصول السابق لتحصل على زمن الوصول.
- اقرأ الرقم العشوائي 2 وحوله إلى زمن الخدمة.
- تبدأ الخدمة عند الأكبر من زمن الوصول ونهاية خدمة العميل السابق.
- أضف زمن الخدمة لتحصل على نهاية الخدمة.
- املأ زمن الانتظار والزمن في النظام وزمن الخمول.
أكمل الصف كاملا قبل الانتقال إلى التالي: فالصف التالي يحتاج إلى زمن الوصول ونهاية الخدمة في هذا الصف.
لماذا max()؟ حالتان
- الخادم متفرغ بالفعل (يصل العميل بعد نهاية الخدمة السابقة). تبدأ الخدمة عند الوصول. زمن الانتظار 0، وظل الخادم خاملا مدة تساوي الوصول ناقص النهاية السابقة.
- الخادم ما زال مشغولا (يصل العميل قبل نهاية الخدمة السابقة). تبدأ الخدمة عند النهاية السابقة. ينتظر العميل مدة تساوي النهاية السابقة ناقص الوصول، وزمن الخمول 0.
إذن في كل صف يساوي أحد الزمنين على الأقل، زمن الانتظار أو زمن الخمول، القيمة 0. ويكون كلاهما 0 عندما يصل العميل تماما لحظة مغادرة العميل السابق.
من الجدول إلى المتوسطات
اجمع كل عمود واقسم على عدد العملاء:
Average waiting time = total waiting time / number of customers
Average time in system = total time in system / number of customers
Average idle time = total idle time / number of customersفحص مدمج: الزمن في النظام = زمن الانتظار + زمن الخدمة في كل صف، لذا تصح العلاقة نفسها للمجاميع وللمتوسطات.
السؤال 1: متجر البقالة
المسألة. في متجر بقالة بنقطة خدمة واحدة، يصل العملاء عشوائيا بفاصل من 1 إلى 10 دقائق (كل أزمنة ما بين الوصول متساوية الاحتمال). وتتراوح أزمنة الخدمة من 1 إلى 8 دقائق باحتمالات 0.10 و0.18 و0.22 و0.16 و0.14 و0.10 و0.05 و0.05. حاك 10 عملاء مستخدما الأرقام العشوائية 92, 73, 02, 95, 31, 92, 75, 24, 23, 30 لأزمنة ما بين الوصول و84, 10, 74, 53, 17, 79, 91, 67, 89, 38 لأزمنة الخدمة. أوجد لكل عميل زمن الوصول، وبداية الخدمة ونهايتها، وزمن الانتظار، والزمن في النظام، وزمن خمول الخادم، ثم المتوسطات.
الخطوة 1: جداول الفترات
| زمن ما بين الوصول (دقيقة) | الاحتمال | فترة الأرقام العشوائية |
|---|---|---|
| 1 | 0.10 | 00 - 09 |
| 2 | 0.10 | 10 - 19 |
| 3 | 0.10 | 20 - 29 |
| 4 | 0.10 | 30 - 39 |
| 5 | 0.10 | 40 - 49 |
| 6 | 0.10 | 50 - 59 |
| 7 | 0.10 | 60 - 69 |
| 8 | 0.10 | 70 - 79 |
| 9 | 0.10 | 80 - 89 |
| 10 | 0.10 | 90 - 99 |
فترات زمن الخدمة هي نفسها التي بنيت في المثال المحلول أعلاه: 00 - 09 و10 - 27 و28 - 49 و50 - 65 و66 - 79 و80 - 89 و90 - 94 و95 - 99 للأزمنة من 1 إلى 8 دقائق.
الخطوة 2: اقرأ الأرقام العشوائية
| العميل | رقم عشوائي 1 | ما بين الوصول | رقم عشوائي 2 | زمن الخدمة |
|---|---|---|---|---|
| 1 | 92 | 10 | 84 | 6 |
| 2 | 73 | 8 | 10 | 2 |
| 3 | 02 | 1 | 74 | 5 |
| 4 | 95 | 10 | 53 | 4 |
| 5 | 31 | 4 | 17 | 2 |
| 6 | 92 | 10 | 79 | 5 |
| 7 | 75 | 8 | 91 | 7 |
| 8 | 24 | 3 | 67 | 5 |
| 9 | 23 | 3 | 89 | 6 |
| 10 | 30 | 4 | 38 | 3 |
الخطوة 3: عميلا بعد عميل
- العميل 1. زمن ما بين الوصول 10، إذن الوصول = 0 + 10 = 10. لا أحد قبله، فتبدأ الخدمة عند 10 وتنتهي عند 10 + 6 = 16. زمن الانتظار 0، والزمن في النظام 16 - 10 = 6. عمود الخمول 0: فصيغة الخمول تحتاج إلى نهاية خدمة عميل سابق، ولا يوجد عميل سابق. التمرين يحسب زمن الخمول بين العملاء.
- العميل 2. الوصول = 10 + 8 = 18. النهاية السابقة 16، إذن البداية = max(18, 16) = 18، والنهاية = 18 + 2 = 20. الانتظار 0، والزمن في النظام 2، والخمول 18 - 16 = 2.
- العميل 3. الوصول = 18 + 1 = 19. النهاية السابقة 20، إذن البداية = max(19, 20) = 20، والنهاية = 20 + 5 = 25. الانتظار 20 - 19 = 1، والزمن في النظام 6، والخمول 0.
- العميل 4. الوصول = 19 + 10 = 29، والنهاية السابقة 25: البداية 29، والنهاية 33، والانتظار 0، والخمول 4.
- العميل 5. الوصول = 29 + 4 = 33، والنهاية السابقة 33: البداية 33، والنهاية 35. الانتظار 0 والخمول 0 (يصل تماما لحظة مغادرة العميل 4).
- العميل 6. الوصول = 33 + 10 = 43، والنهاية السابقة 35: البداية 43، والنهاية 48، والخمول 8.
- العميل 7. الوصول = 43 + 8 = 51، والنهاية السابقة 48: البداية 51، والنهاية 58، والخمول 3.
- العميل 8. الوصول = 51 + 3 = 54، لكن الخادم مشغول حتى 58: البداية 58، والنهاية 63، والانتظار 4.
- العميل 9. الوصول = 54 + 3 = 57، والخادم مشغول حتى 63: البداية 63، والنهاية 69، والانتظار 6.
- العميل 10. الوصول = 57 + 4 = 61، والخادم مشغول حتى 69: البداية 69، والنهاية 72، والانتظار 8.
يبين آخر ثلاثة عملاء كيف يتكون الطابور: أزمنة قصيرة لما بين الوصول (3، 3، 4) في مقابل أزمنة خدمة طويلة، فيرث كل عميل تأخير العميل الذي أمامه ويتزايد الانتظار 4، 6، 8.
جدول المحاكاة الكامل
| العميل | رقم عشوائي 1 | ما بين الوصول | رقم عشوائي 2 | الخدمة | الوصول | البداية | النهاية | الانتظار | الزمن في النظام | الخمول |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 92 | 10 | 84 | 6 | 10 | 10 | 16 | 0 | 6 | 0 |
| 2 | 73 | 8 | 10 | 2 | 18 | 18 | 20 | 0 | 2 | 2 |
| 3 | 02 | 1 | 74 | 5 | 19 | 20 | 25 | 1 | 6 | 0 |
| 4 | 95 | 10 | 53 | 4 | 29 | 29 | 33 | 0 | 4 | 4 |
| 5 | 31 | 4 | 17 | 2 | 33 | 33 | 35 | 0 | 2 | 0 |
| 6 | 92 | 10 | 79 | 5 | 43 | 43 | 48 | 0 | 5 | 8 |
| 7 | 75 | 8 | 91 | 7 | 51 | 51 | 58 | 0 | 7 | 3 |
| 8 | 24 | 3 | 67 | 5 | 54 | 58 | 63 | 4 | 9 | 0 |
| 9 | 23 | 3 | 89 | 6 | 57 | 63 | 69 | 6 | 12 | 0 |
| 10 | 30 | 4 | 38 | 3 | 61 | 69 | 72 | 8 | 11 | 0 |
| المجموع | 45 | 19 | 64 | 17 |
المتوسطات
Average waiting time of a customer in the queue = 19 / 10 = 1.9 minutes
Average time a customer spends in the system = 64 / 10 = 6.4 minutes
Average idle time of the server = 17 / 10 = 1.7 minutesتحقق: متوسط زمن الخدمة 45 / 10 = 4.5 دقيقة، و1.9 + 4.5 = 6.4.
قراءة النتيجة: انتظر 4 من 10 عملاء (العملاء 3 و8 و9 و10)، وكل حالات الانتظار الطويلة جاءت في النهاية عندما تكدس الوصول. عشرة عملاء عينة صغيرة؛ ومجموعة أخرى من الأرقام العشوائية ستعطي جدولا مختلفا.
امتداد: معدل استغلال الخادم
تعرف المحاضرة 2 معدل استغلال الخادم (server utilization) بأنه الزمن الذي يكون فيه الخادم مشغولا مقسوما على زمن المحاكاة الكلي. الخادم مشغول مدة تساوي مجموع أزمنة الخدمة، 45 دقيقة، وآخر عميل يغادر عند 72:
Utilization = 45 / 72 = 0.625 = 62.5%على مدى التشغيل كله من 0 إلى 72، زمن الانشغال 45 مضافا إليه زمن الخمول 27 يساوي 72. وهذا الرقم 27 يشمل أول 10 دقائق، قبل وصول العميل 1. جدول السؤال 1 لا يحسب هذه الدقائق الـ10، ولهذا مجموع الخمول فيه 17. عندما تحل مسألة، صرح بوضوح بالاصطلاح الذي تستخدمه.
السؤال 2: عيادة طبيب الأسنان
المسألة. يستقبل طبيب أسنان 6 مرضى. تبدأ المحاكاة عند 8:00؛ والوصول مجدول، المريض الأول عند 8:00 ثم مريض كل 45 دقيقة. يحتاج كل مريض إلى علاج واحد من خمسة علاجات، ولا يعرف أيها مسبقا: يحدده رقم عشوائي. مستخدما الأرقام العشوائية 40, 82, 11, 34, 25, 66، أوجد لكل مريض العلاج، وزمن الوصول، وزمن المغادرة، وزمن الانتظار، ثم متوسط زمن الانتظار.
| الخدمة | زمن الخدمة | الاحتمال |
|---|---|---|
| حشو | 45 دقيقة | 0.40 |
| تاج | 60 دقيقة | 0.15 |
| تنظيف | 20 دقيقة | 0.15 |
| خلع | 45 دقيقة | 0.10 |
| فحص | 15 دقيقة | 0.20 |
الوصول المجدول
تذكر المحاضرة 2 أن الوصول قد يحدث في أوقات مجدولة، مثل حجز موعد لرؤية طبيب، أو عشوائيا. هنا أزمنة الوصول ثابتة بحسب جدول المواعيد، لذا لا يوجد رقم عشوائي لها: 8:00 و8:45 و9:30 و10:15 و11:00 و11:45. العلاج وحده، ومن ثم زمن الخدمة، هو العشوائي.
الخطوة 1: فترات الفئات
ابن الفترات بالترتيب الذي تسرد به المسألة الخدمات:
| الخدمة | الاحتمال | التراكمي | فترة الأرقام العشوائية |
|---|---|---|---|
| حشو | 0.40 | 0.40 | 00 - 39 |
| تاج | 0.15 | 0.55 | 40 - 54 |
| تنظيف | 0.15 | 0.70 | 55 - 69 |
| خلع | 0.10 | 0.80 | 70 - 79 |
| فحص | 0.20 | 1.00 | 80 - 99 |
الخطوة 2: أي علاج؟
| المريض | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|
| زمن الوصول | 8:00 | 8:45 | 9:30 | 10:15 | 11:00 | 11:45 |
| الرقم العشوائي | 40 | 82 | 11 | 34 | 25 | 66 |
| فئة الخدمة | تاج | فحص | حشو | حشو | حشو | تنظيف |
| زمن الخدمة (دقيقة) | 60 | 15 | 45 | 45 | 45 | 20 |
لاحظ أن 40 تاج وليس حشوا: فترة الحشو تنتهي عند 39.
الخطوة 3: العمل بزمن الساعة
اجمع الدقائق ثم رحل الزائد إلى الساعات: 8:00 + 60 دقيقة = 9:00، و10:15 + 45 دقيقة = 11:00، و11:45 + 20 دقيقة = 12:05.
- المريض 1 يصل عند 8:00، والطبيب متفرغ، والتاج يستغرق 60 دقيقة: من 8:00 إلى 9:00، والانتظار 0.
- المريض 2 يصل عند 8:45 والطبيب مشغول حتى 9:00. يجري الفحص من 9:00 إلى 9:15، والانتظار 9:00 - 8:45 = 15 دقيقة.
- المريض 3 يصل عند 9:30؛ والطبيب متفرغ منذ 9:15 (خامل مدة 15 دقيقة). حشو من 9:30 إلى 10:15، والانتظار 0.
- المريض 4 يصل عند 10:15 تماما لحظة مغادرة المريض 3: من 10:15 إلى 11:00، والانتظار 0.
- المريض 5 يصل عند 11:00 تماما لحظة مغادرة المريض 4: من 11:00 إلى 11:45، والانتظار 0.
- المريض 6 يصل عند 11:45 تماما لحظة مغادرة المريض 5: تنظيف من 11:45 إلى 12:05، والانتظار 0.
الجدول الكامل
| المريض | زمن الوصول | زمن الخدمة (دقيقة) | بداية الخدمة | نهاية الخدمة | زمن الانتظار (دقيقة) |
|---|---|---|---|---|---|
| 1 | 8:00 | 60 | 8:00 | 9:00 | 0 |
| 2 | 8:45 | 15 | 9:00 | 9:15 | 15 |
| 3 | 9:30 | 45 | 9:30 | 10:15 | 0 |
| 4 | 10:15 | 45 | 10:15 | 11:00 | 0 |
| 5 | 11:00 | 45 | 11:00 | 11:45 | 0 |
| 6 | 11:45 | 20 | 11:45 | 12:05 | 0 |
| المجموع | 15 |
Average waiting time = 15 / 6 = 2.5 minutesالسؤال 3: الوحدات المنتجة والمركبات المتاحة
المسألة. تنتج منشأة تصنيع عددا عشوائيا من الوحدات في اليوم، ويتاح في محطة ما عدد عشوائي من المركبات للنقل:
| الوحدات المنتجة Xi | P(x = Xi) | المركبات المتاحة Yi | P(y = Yi) |
|---|---|---|---|
| 500 | 0.05 | 5 | 0.15 |
| 550 | 0.15 | 6 | 0.35 |
| 600 | 0.25 | 7 | 0.20 |
| 650 | 0.35 | 8 | 0.18 |
| 700 | 0.20 | 9 | 0.12 |
استخدم الأرقام العشوائية 91, 73, 02, 95, 31, 93, 75, 24, 23, 30 للوحدات المنتجة و84, 10, 74, 53, 17, 79, 91, 67, 89, 38 للمركبات المتاحة، على مدى 10 أيام عمل. أوجد متوسط عدد الوحدات المنتجة في اليوم ومتوسط عدد المركبات المتاحة في اليوم.
لا طابور ولا ساعة
كل يوم مستقل عن اليوم الذي قبله، لذا لا توجد أعمدة للوصول أو لنهاية الخدمة. في كل يوم متغيران عشوائيان، لكل منهما جدول فتراته الخاص وقائمة أرقامه العشوائية الخاصة. لا تقرأ أبدا رقما عشوائيا خاصا بالوحدات من جدول المركبات.
الخطوة 1: جدولا الفترات
| الوحدات المنتجة | الاحتمال | التراكمي | فترة الأرقام العشوائية |
|---|---|---|---|
| 500 | 0.05 | 0.05 | 00 - 04 |
| 550 | 0.15 | 0.20 | 05 - 19 |
| 600 | 0.25 | 0.45 | 20 - 44 |
| 650 | 0.35 | 0.80 | 45 - 79 |
| 700 | 0.20 | 1.00 | 80 - 99 |
| المركبات المتاحة | الاحتمال | التراكمي | فترة الأرقام العشوائية |
|---|---|---|---|
| 5 | 0.15 | 0.15 | 00 - 14 |
| 6 | 0.35 | 0.50 | 15 - 49 |
| 7 | 0.20 | 0.70 | 50 - 69 |
| 8 | 0.18 | 0.88 | 70 - 87 |
| 9 | 0.12 | 1.00 | 88 - 99 |
الخطوة 2: جدول المحاكاة
| اليوم | الرقم العشوائي 1 | الوحدات المنتجة Xi | الرقم العشوائي 2 | المركبات المتاحة Yi |
|---|---|---|---|---|
| 1 | 91 | 700 | 84 | 8 |
| 2 | 73 | 650 | 10 | 5 |
| 3 | 02 | 500 | 74 | 8 |
| 4 | 95 | 700 | 53 | 7 |
| 5 | 31 | 600 | 17 | 6 |
| 6 | 93 | 700 | 79 | 8 |
| 7 | 75 | 650 | 91 | 9 |
| 8 | 24 | 600 | 67 | 7 |
| 9 | 23 | 600 | 89 | 9 |
| 10 | 30 | 600 | 38 | 6 |
| المجموع | 6300 | 73 |
المتوسطات
Average number of units produced per day = 6300 / 10 = 630 units/day
Average number of vehicles available per day = 73 / 10 = 7.3 vehicles/dayملاحظة عن اليوم 5. الحل المطبوع للتمرين يذكر 5 مركبات في اليوم 5، ومجموعا قدره 72، ومتوسطا قدره 7.2 مركبة في اليوم. لكن الرقم العشوائي 17 يقع في الفترة 15 - 49، أي 6 مركبات (فالفترة 00 - 14، الخاصة بـ5 مركبات، تنتهي عند 14). ومع 6 مركبات في اليوم 5 يكون المجموع 73 والمتوسط 7.3 مركبة في اليوم. أما عمود الوحدات فلا يتأثر: يبقى 630 وحدة في اليوم.
الأخطاء الشائعة
في الفترات
- خطأ الحد بمقدار واحد. الاحتمال التراكمي 0.28 ينهي الفترة عند
27وليس28. - 00 و99. الرقم
00هو الأول و99هو الأخير. عدد الأرقام ذات الخانتين 100 وليس 99. - الجدول الخطأ. قراءة رقم عشوائي خاص بالخدمة من جدول ما بين الوصول، أو رقم خاص بالوحدات من جدول المركبات.
- الترتيب الخطأ. بناء الفترات بترتيب مختلف عن ترتيب جدول المسألة يغير القيمة التي يعطيها كل رقم.
- مثال حقيقي. اليوم 5 في السؤال 3: قراءة الرقم العشوائي
17على أنه 5 مركبات بدلا من 6 غيرت المتوسط من 7.3 إلى 7.2.
في الجدول
- نسيان
max(). بدء خدمة العميل عند زمن وصوله بينما الخادم ما زال مشغولا بالعميل السابق. - العميل الأول. اقرأ المسألة. في مثال المحاضرة 1 يصل العميل 1 عند الزمن 0 بلا رقم عشوائي؛ وفي السؤال 1 يصل العميل 1 بعد أول زمن ما بين الوصول، عند 10.
- الخمول قبل العميل الأول. السؤال 1 يسجل 0 للعميل 1 ويحسب زمن الخمول بين العملاء فقط. إذا حسبت الفجوة من الزمن 0، فصرح بذلك.
- الوحدات وزمن الساعة. 8:45 مضافا إليها 60 دقيقة تساوي 9:45. أزمنة الانتظار مدد بالدقائق، وليست أوقاتا على الساعة.
- المتوسطات. اقسم على عدد العملاء (أو الأيام)، وليس على آخر وقت على الساعة.
مراجعة ذاتية قبل التسليم
- الفترة الأخيرة في كل جدول فترات تنتهي عند
99. - في كل صف، الزمن في النظام = زمن الانتظار + زمن الخدمة.
- في كل صف، يساوي أحد الزمنين على الأقل، زمن الانتظار أو زمن الخمول، القيمة 0.
- أزمنة الوصول لا تتناقص أبدا، ولا تبدأ أي خدمة قبل نهاية الخدمة السابقة.
- المجاميع مكتوبة أسفل الأعمدة، والمتوسطات تستخدم العدد الصحيح.
مسائل تدريبية
خصص نحو 30 دقيقة للمسائل الثلاث. الإجابات في نهاية الصفحة.
التدريب 1: مركز تصوير مستندات (نحو 15 دقيقة)
في مركز تصوير مستندات آلة واحدة. يصل العملاء بفاصل من 1 إلى 5 دقائق، وكل الأزمنة متساوية الاحتمال. أزمنة الخدمة من 1 إلى 5 دقائق باحتمالات 0.10 و0.25 و0.30 و0.20 و0.15. حاك 8 عملاء (يصل العميل 1 بعد أول زمن ما بين الوصول، كما في السؤال 1) مستخدما:
- الأرقام العشوائية لأزمنة ما بين الوصول:
85, 19, 98, 44, 53, 79, 52, 91 - الأرقام العشوائية لأزمنة الخدمة:
64, 99, 70, 09, 60, 05, 56, 77
أوجد متوسط زمن الانتظار، ومتوسط الزمن في النظام، ومتوسط زمن خمول الآلة.
التدريب 2: ورشة سيارات (نحو 10 دقائق)
تستقبل ورشة 6 سيارات بموعد مسبق: الأولى عند 9:00، ثم سيارة كل 40 دقيقة. الخدمة التي تحتاجها كل سيارة يحددها رقم عشوائي:
| الخدمة | زمن الخدمة | الاحتمال |
|---|---|---|
| تغيير الزيت | 20 دقيقة | 0.35 |
| تغيير الإطارات | 30 دقيقة | 0.30 |
| إصلاح الفرامل | 50 دقيقة | 0.20 |
| صيانة شاملة | 70 دقيقة | 0.15 |
الأرقام العشوائية: 35, 12, 95, 34, 65, 85.
أوجد لكل سيارة بداية الخدمة ونهايتها وزمن الانتظار، ثم متوسط زمن الانتظار، وإجمالي زمن خمول الميكانيكي بين السيارات.
التدريب 3: مخبز (نحو 8 دقائق)
يتلقى مخبز عددا عشوائيا من طلبات التوصيل في اليوم، ويتاح له عدد عشوائي من السائقين:
| الطلبات Xi | P(x = Xi) | السائقون Yi | P(y = Yi) |
|---|---|---|---|
| 20 | 0.10 | 2 | 0.25 |
| 30 | 0.40 | 3 | 0.45 |
| 40 | 0.30 | 4 | 0.20 |
| 50 | 0.20 | 5 | 0.10 |
- الأرقام العشوائية للطلبات:
09, 55, 10, 89, 49, 80, 50, 26 - الأرقام العشوائية للسائقين:
70, 24, 95, 25, 69, 90, 00, 89
حاك 8 أيام وأوجد متوسط عدد الطلبات في اليوم ومتوسط عدد السائقين المتاحين في اليوم.
أهم النقاط
- تتحول الاحتمالات إلى احتمالات تراكمية، ثم إلى فترات أرقام عشوائية تنتهي عند
99. - يقرأ كل رقم عشوائي من خلال جدول فتراته الخاص.
- الوصول = الوصول السابق + زمن ما بين الوصول؛ بداية الخدمة = max(الوصول، نهاية الخدمة السابقة).
- زمن الانتظار = البداية - الوصول؛ الزمن في النظام = النهاية - الوصول؛ زمن الخمول = البداية - النهاية السابقة.
- اجمع كل عمود، ثم اقسم على عدد العملاء أو الأيام.
- الوصول المجدول يلغي متغيرا عشوائيا واحدا؛ والأيام المستقلة تلغي الساعة. أما خطوة البحث في الجدول فلا تتغير أبدا.
الإجابات
التدريب 1
جداول الفترات:
| ما بين الوصول (دقيقة) | الاحتمال | الفترة |
|---|---|---|
| 1 | 0.20 | 00 - 19 |
| 2 | 0.20 | 20 - 39 |
| 3 | 0.20 | 40 - 59 |
| 4 | 0.20 | 60 - 79 |
| 5 | 0.20 | 80 - 99 |
| زمن الخدمة (دقيقة) | الاحتمال | التراكمي | فترة الأرقام العشوائية |
|---|---|---|---|
| 1 | 0.10 | 0.10 | 00 - 09 |
| 2 | 0.25 | 0.35 | 10 - 34 |
| 3 | 0.30 | 0.65 | 35 - 64 |
| 4 | 0.20 | 0.85 | 65 - 84 |
| 5 | 0.15 | 1.00 | 85 - 99 |
جدول المحاكاة:
| العميل | رقم عشوائي 1 | ما بين الوصول | رقم عشوائي 2 | الخدمة | الوصول | البداية | النهاية | الانتظار | الزمن في النظام | الخمول |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 85 | 5 | 64 | 3 | 5 | 5 | 8 | 0 | 3 | 0 |
| 2 | 19 | 1 | 99 | 5 | 6 | 8 | 13 | 2 | 7 | 0 |
| 3 | 98 | 5 | 70 | 4 | 11 | 13 | 17 | 2 | 6 | 0 |
| 4 | 44 | 3 | 09 | 1 | 14 | 17 | 18 | 3 | 4 | 0 |
| 5 | 53 | 3 | 60 | 3 | 17 | 18 | 21 | 1 | 4 | 0 |
| 6 | 79 | 4 | 05 | 1 | 21 | 21 | 22 | 0 | 1 | 0 |
| 7 | 52 | 3 | 56 | 3 | 24 | 24 | 27 | 0 | 3 | 2 |
| 8 | 91 | 5 | 77 | 4 | 29 | 29 | 33 | 0 | 4 | 2 |
| المجموع | 24 | 8 | 32 | 4 |
Average waiting time = 8 / 8 = 1 minute
Average time in system = 32 / 8 = 4 minutes
Average idle time = 4 / 8 = 0.5 minutesتحقق: متوسط زمن الخدمة 24 / 8 = 3 دقائق، و1 + 3 = 4. انتبه للرقم العشوائي 64: ما زال يعطي زمن الخدمة 3، لأن فترة زمن الخدمة 3 هي 35 - 64.
التدريب 2
| الخدمة | الاحتمال | التراكمي | فترة الأرقام العشوائية |
|---|---|---|---|
| تغيير الزيت | 0.35 | 0.35 | 00 - 34 |
| تغيير الإطارات | 0.30 | 0.65 | 35 - 64 |
| إصلاح الفرامل | 0.20 | 0.85 | 65 - 84 |
| صيانة شاملة | 0.15 | 1.00 | 85 - 99 |
| السيارة | الوصول | الرقم العشوائي | الخدمة | زمن الخدمة (دقيقة) | البداية | النهاية | الانتظار (دقيقة) | الخمول (دقيقة) |
|---|---|---|---|---|---|---|---|---|
| 1 | 9:00 | 35 | تغيير الإطارات | 30 | 9:00 | 9:30 | 0 | 0 |
| 2 | 9:40 | 12 | تغيير الزيت | 20 | 9:40 | 10:00 | 0 | 10 |
| 3 | 10:20 | 95 | صيانة شاملة | 70 | 10:20 | 11:30 | 0 | 20 |
| 4 | 11:00 | 34 | تغيير الزيت | 20 | 11:30 | 11:50 | 30 | 0 |
| 5 | 11:40 | 65 | إصلاح الفرامل | 50 | 11:50 | 12:40 | 10 | 0 |
| 6 | 12:20 | 85 | صيانة شاملة | 70 | 12:40 | 13:50 | 20 | 0 |
| المجموع | 60 | 30 |
Average waiting time = 60 / 6 = 10 minutesيظل الميكانيكي خاملا 10 دقائق (من 9:30 إلى 9:40) و20 دقيقة (من 10:00 إلى 10:20)، أي 30 دقيقة إجمالا. الأرقام الحدية هي الفخ هنا: 34 تغيير الزيت، و35 تغيير الإطارات، و65 إصلاح الفرامل، و85 صيانة شاملة. تنتهي آخر سيارة عند 13:50، لأن الخدمات الأطول من الفاصل البالغ 40 دقيقة (70 و50 و70 دقيقة) تؤخر كل سيارة تالية.
التدريب 3
| الطلبات | الاحتمال | التراكمي | فترة الأرقام العشوائية |
|---|---|---|---|
| 20 | 0.10 | 0.10 | 00 - 09 |
| 30 | 0.40 | 0.50 | 10 - 49 |
| 40 | 0.30 | 0.80 | 50 - 79 |
| 50 | 0.20 | 1.00 | 80 - 99 |
| السائقون | الاحتمال | التراكمي | فترة الأرقام العشوائية |
|---|---|---|---|
| 2 | 0.25 | 0.25 | 00 - 24 |
| 3 | 0.45 | 0.70 | 25 - 69 |
| 4 | 0.20 | 0.90 | 70 - 89 |
| 5 | 0.10 | 1.00 | 90 - 99 |
| اليوم | الرقم العشوائي 1 | الطلبات Xi | الرقم العشوائي 2 | السائقون Yi |
|---|---|---|---|---|
| 1 | 09 | 20 | 70 | 4 |
| 2 | 55 | 40 | 24 | 2 |
| 3 | 10 | 30 | 95 | 5 |
| 4 | 89 | 50 | 25 | 3 |
| 5 | 49 | 30 | 69 | 3 |
| 6 | 80 | 50 | 90 | 5 |
| 7 | 50 | 40 | 00 | 2 |
| 8 | 26 | 30 | 89 | 4 |
| المجموع | 290 | 28 |
Average number of orders per day = 290 / 8 = 36.25 orders/day
Average number of drivers per day = 28 / 8 = 3.5 drivers/day