Logo

جداول المحاكاة يدويا

28 دقيقة قراءة
شرائح الدرس
1 / 69

النمذجة والمحاكاة، الدرس العملي 1

جداول المحاكاة يدويا

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

يحول هذا الدرس العملي أفكار المحاضرة 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)المتوسطات في النهاية

إذا استطعت ملء الجدول بشكل صحيح، فستستطيع لاحقا كتابة البرنامج ومقارنة مخرجاته بجدولك.

الطريقة الأساسية: من الاحتمالات إلى فترات الأرقام العشوائية

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

الوصفة ذات الخطوات الأربع

  1. اكتب كل قيمة ممكنة مع احتمالها.
  2. اجمع الاحتمالات نزولا في الجدول للحصول على الاحتمال التراكمي.
  3. أعط كل قيمة مجموعة من الأرقام العشوائية ذات الخانتين من 00 إلى 99، عددها يساوي احتمالها بالنسبة المئوية. الخانتان تعطيان 100 رقم بالضبط، لذا يحصل الاحتمال 0.18 على 18 رقما منها.
  4. اقرأ كل رقم عشوائي معطى: حدد الفترة التي يقع فيها، وخذ تلك القيمة.

قاعدة الفترة

تمتد فترة كل قيمة من الاحتمال التراكمي السابق حتى ما قبل الاحتمال التراكمي الحالي مباشرة:

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:

زمن الخدمة (دقيقة)الاحتمالالتراكميفترة الأرقام العشوائية
10.100.1000 - 09
20.180.2810 - 27
30.220.5028 - 49
40.160.6650 - 65
50.140.8066 - 79
60.100.9080 - 89
70.050.9590 - 94
80.051.0095 - 99

زمن الخدمة 2 احتماله التراكمي السابق 0.10 واحتماله التراكمي الحالي 0.28، لذا فترته 10 - 27. والرقم 28 هو أول رقم في الفترة التالية، أي زمن الخدمة 3. لاحظ أن 0.28 يعطي حدا أعلى قدره 27 وليس 28.

قراءة أرقام من هذا الجدول:

الرقم العشوائييقع فيزمن الخدمة
8480 - 896
1010 - 272
2710 - 272
2828 - 493
5050 - 654
9595 - 998

الرقمان الحديان 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. اقرأ الرقم العشوائي 1 وحوله إلى زمن ما بين الوصول.
  2. أضفه إلى زمن الوصول السابق لتحصل على زمن الوصول.
  3. اقرأ الرقم العشوائي 2 وحوله إلى زمن الخدمة.
  4. تبدأ الخدمة عند الأكبر من زمن الوصول ونهاية خدمة العميل السابق.
  5. أضف زمن الخدمة لتحصل على نهاية الخدمة.
  6. املأ زمن الانتظار والزمن في النظام وزمن الخمول.

أكمل الصف كاملا قبل الانتقال إلى التالي: فالصف التالي يحتاج إلى زمن الوصول ونهاية الخدمة في هذا الصف.

لماذا 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: جداول الفترات

زمن ما بين الوصول (دقيقة)الاحتمالفترة الأرقام العشوائية
10.1000 - 09
20.1010 - 19
30.1020 - 29
40.1030 - 39
50.1040 - 49
60.1050 - 59
70.1060 - 69
80.1070 - 79
90.1080 - 89
100.1090 - 99

فترات زمن الخدمة هي نفسها التي بنيت في المثال المحلول أعلاه: 00 - 09 و10 - 27 و28 - 49 و50 - 65 و66 - 79 و80 - 89 و90 - 94 و95 - 99 للأزمنة من 1 إلى 8 دقائق.

الخطوة 2: اقرأ الأرقام العشوائية

العميلرقم عشوائي 1ما بين الوصولرقم عشوائي 2زمن الخدمة
19210846
2738102
3021745
49510534
5314172
69210795
7758917
8243675
9233896
10304383

الخطوة 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الخدمةالوصولالبدايةالنهايةالانتظارالزمن في النظامالخمول
19210846101016060
2738102181820022
3021745192025160
49510534292933044
5314172333335020
69210795434348058
7758917515158073
8243675545863490
92338965763696120
103043836169728110
المجموع45196417

المتوسطات

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.400.4000 - 39
تاج0.150.5540 - 54
تنظيف0.150.7055 - 69
خلع0.100.8070 - 79
فحص0.201.0080 - 99

الخطوة 2: أي علاج؟

المريض123456
زمن الوصول8:008:459:3010:1511:0011:45
الرقم العشوائي408211342566
فئة الخدمةتاجفحصحشوحشوحشوتنظيف
زمن الخدمة (دقيقة)601545454520

لاحظ أن 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.

الجدول الكامل

المريضزمن الوصولزمن الخدمة (دقيقة)بداية الخدمةنهاية الخدمةزمن الانتظار (دقيقة)
18:00608:009:000
28:45159:009:1515
39:30459:3010:150
410:154510:1511:000
511:004511:0011:450
611:452011:4512:050
المجموع15
Average waiting time = 15 / 6 = 2.5 minutes

السؤال 3: الوحدات المنتجة والمركبات المتاحة

المسألة. تنتج منشأة تصنيع عددا عشوائيا من الوحدات في اليوم، ويتاح في محطة ما عدد عشوائي من المركبات للنقل:

الوحدات المنتجة XiP(x = Xi)المركبات المتاحة YiP(y = Yi)
5000.0550.15
5500.1560.35
6000.2570.20
6500.3580.18
7000.2090.12

استخدم الأرقام العشوائية 91, 73, 02, 95, 31, 93, 75, 24, 23, 30 للوحدات المنتجة و84, 10, 74, 53, 17, 79, 91, 67, 89, 38 للمركبات المتاحة، على مدى 10 أيام عمل. أوجد متوسط عدد الوحدات المنتجة في اليوم ومتوسط عدد المركبات المتاحة في اليوم.

لا طابور ولا ساعة

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

الخطوة 1: جدولا الفترات

الوحدات المنتجةالاحتمالالتراكميفترة الأرقام العشوائية
5000.050.0500 - 04
5500.150.2005 - 19
6000.250.4520 - 44
6500.350.8045 - 79
7000.201.0080 - 99
المركبات المتاحةالاحتمالالتراكميفترة الأرقام العشوائية
50.150.1500 - 14
60.350.5015 - 49
70.200.7050 - 69
80.180.8870 - 87
90.121.0088 - 99

الخطوة 2: جدول المحاكاة

اليومالرقم العشوائي 1الوحدات المنتجة Xiالرقم العشوائي 2المركبات المتاحة Yi
191700848
273650105
302500748
495700537
531600176
693700798
775650919
824600677
923600899
1030600386
المجموع630073

المتوسطات

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. أزمنة الانتظار مدد بالدقائق، وليست أوقاتا على الساعة.
  • المتوسطات. اقسم على عدد العملاء (أو الأيام)، وليس على آخر وقت على الساعة.

مراجعة ذاتية قبل التسليم

  1. الفترة الأخيرة في كل جدول فترات تنتهي عند 99.
  2. في كل صف، الزمن في النظام = زمن الانتظار + زمن الخدمة.
  3. في كل صف، يساوي أحد الزمنين على الأقل، زمن الانتظار أو زمن الخمول، القيمة 0.
  4. أزمنة الوصول لا تتناقص أبدا، ولا تبدأ أي خدمة قبل نهاية الخدمة السابقة.
  5. المجاميع مكتوبة أسفل الأعمدة، والمتوسطات تستخدم العدد الصحيح.

مسائل تدريبية

خصص نحو 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 دقائق)

يتلقى مخبز عددا عشوائيا من طلبات التوصيل في اليوم، ويتاح له عدد عشوائي من السائقين:

الطلبات XiP(x = Xi)السائقون YiP(y = Yi)
200.1020.25
300.4030.45
400.3040.20
500.2050.10
  • الأرقام العشوائية للطلبات: 09, 55, 10, 89, 49, 80, 50, 26
  • الأرقام العشوائية للسائقين: 70, 24, 95, 25, 69, 90, 00, 89

حاك 8 أيام وأوجد متوسط عدد الطلبات في اليوم ومتوسط عدد السائقين المتاحين في اليوم.

أهم النقاط

  1. تتحول الاحتمالات إلى احتمالات تراكمية، ثم إلى فترات أرقام عشوائية تنتهي عند 99.
  2. يقرأ كل رقم عشوائي من خلال جدول فتراته الخاص.
  3. الوصول = الوصول السابق + زمن ما بين الوصول؛ بداية الخدمة = max(الوصول، نهاية الخدمة السابقة).
  4. زمن الانتظار = البداية - الوصول؛ الزمن في النظام = النهاية - الوصول؛ زمن الخمول = البداية - النهاية السابقة.
  5. اجمع كل عمود، ثم اقسم على عدد العملاء أو الأيام.
  6. الوصول المجدول يلغي متغيرا عشوائيا واحدا؛ والأيام المستقلة تلغي الساعة. أما خطوة البحث في الجدول فلا تتغير أبدا.

الإجابات

التدريب 1

جداول الفترات:

ما بين الوصول (دقيقة)الاحتمالالفترة
10.2000 - 19
20.2020 - 39
30.2040 - 59
40.2060 - 79
50.2080 - 99
زمن الخدمة (دقيقة)الاحتمالالتراكميفترة الأرقام العشوائية
10.100.1000 - 09
20.250.3510 - 34
30.300.6535 - 64
40.200.8565 - 84
50.151.0085 - 99

جدول المحاكاة:

العميلرقم عشوائي 1ما بين الوصولرقم عشوائي 2الخدمةالوصولالبدايةالنهايةالانتظارالزمن في النظامالخمول
1855643558030
21919956813270
3985704111317260
4443091141718340
5533603171821140
6794051212122010
7523563242427032
8915774292933042
المجموع248324
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.350.3500 - 34
تغيير الإطارات0.300.6535 - 64
إصلاح الفرامل0.200.8565 - 84
صيانة شاملة0.151.0085 - 99
السيارةالوصولالرقم العشوائيالخدمةزمن الخدمة (دقيقة)البدايةالنهايةالانتظار (دقيقة)الخمول (دقيقة)
19:0035تغيير الإطارات309:009:3000
29:4012تغيير الزيت209:4010:00010
310:2095صيانة شاملة7010:2011:30020
411:0034تغيير الزيت2011:3011:50300
511:4065إصلاح الفرامل5011:5012:40100
612:2085صيانة شاملة7012:4013:50200
المجموع6030
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

الطلباتالاحتمالالتراكميفترة الأرقام العشوائية
200.100.1000 - 09
300.400.5010 - 49
400.300.8050 - 79
500.201.0080 - 99
السائقونالاحتمالالتراكميفترة الأرقام العشوائية
20.250.2500 - 24
30.450.7025 - 69
40.200.9070 - 89
50.101.0090 - 99
اليومالرقم العشوائي 1الطلبات Xiالرقم العشوائي 2السائقون Yi
10920704
25540242
31030955
48950253
54930693
68050905
75040002
82630894
المجموع29028
Average number of orders per day   = 290 / 8 = 36.25 orders/day
Average number of drivers per day  =  28 / 8 = 3.5 drivers/day