محاكاة الأحداث المنفصلة

تُحاكي محاكاة الأحداث المنفصلة ( DES ) عمل النظام كسلسلة ( منفصلة ) من الأحداث في الزمن. يقع كل حدث في لحظة زمنية محددة، ويُشير إلى تغيير في حالة النظام. [ 1 ] بين الأحداث المتتالية، يُفترض عدم حدوث أي تغيير في النظام؛ وبالتالي، يمكن أن ينتقل زمن المحاكاة مباشرةً إلى وقت وقوع الحدث التالي، وهو ما يُسمى بتقدم زمن الحدث التالي .

بالإضافة إلى تسلسل الأحداث التالي، يوجد نهج بديل يُسمى تسلسل الأحداث التزايدي ، حيث يُقسّم الوقت إلى فترات زمنية صغيرة، ويتم تحديث حالة النظام وفقًا لمجموعة الأحداث/الأنشطة التي تحدث في كل فترة زمنية. [ 2 ] ولأنه ليس من الضروري محاكاة كل فترة زمنية، فإن محاكاة تسلسل الأحداث التالي عادةً ما تكون أسرع من محاكاة تسلسل الأحداث التزايدي المقابلة.

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

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

مثال

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

  1. عند حدوث حدث وصول العميل ، يتم زيادة متغير الحالة queue-length بمقدار 1، وإذا كان متغير الحالة teller-status له القيمة "متاح"، فسيتم جدولة حدث متابعة بدء الخدمة دون أي تأخير، بحيث يتم خدمة العميل الوافد حديثًا على الفور.
  2. عند حدوث حدث بدء الخدمة ، يتم تعيين متغير الحالة teller-status إلى "مشغول" ويتم جدولة حدث متابعة نهاية الخدمة مع تأخير (يتم الحصول عليه من أخذ عينة من متغير عشوائي لوقت الخدمة ).
  3. عند انتهاء الخدمة ، يتم إنقاص قيمة متغير الحالة queue-length بمقدار 1 (مما يدل على مغادرة العميل). إذا كانت قيمة متغير الحالة queue-length لا تزال أكبر من الصفر، يتم جدولة حدث بدء الخدمة التالي دون أي تأخير. وإلا، يتم تعيين قيمة متغير الحالة teller-status إلى "متاح".

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

عناصر

ولاية

حالة النظام هي مجموعة من المتغيرات التي تُجسد الخصائص البارزة للنظام قيد الدراسة. ويمكن تمثيل مسار الحالة مع مرور الوقت S(t) رياضياً بدالة متدرجة تتغير قيمتها عند وقوع أي حدث.

ساعة

يجب أن يتتبع نظام المحاكاة وقت المحاكاة الحالي، بأي وحدات قياس مناسبة للنظام الذي يتم نمذجته. في محاكاة الأحداث المنفصلة، ​​على عكس المحاكاة المستمرة، "يقفز" الوقت لأن الأحداث فورية - ينتقل المؤقت إلى وقت بدء الحدث التالي مع تقدم المحاكاة.

قائمة الفعاليات

تحتفظ المحاكاة بقائمة واحدة على الأقل لأحداث المحاكاة. تُسمى هذه القائمة أحيانًا بمجموعة الأحداث المعلقة، لأنها تضم ​​الأحداث التي لم تتم محاكاتها بعد، والتي هي في انتظار التنفيذ نتيجة لأحداث تمت محاكاتها سابقًا. يُوصف الحدث بوقت حدوثه ونوعه، مما يشير إلى الكود المستخدم لمحاكاته. من الشائع أن يكون كود الحدث مُعَلمًا، وفي هذه الحالة، يحتوي وصف الحدث أيضًا على معلمات خاصة به. تُعرف قائمة الأحداث أيضًا بقائمة الأحداث المستقبلية (FEL) أو مجموعة الأحداث المستقبلية (FES). [ 3 ] [ 4 ] [ 5 ] [ 6 ]

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

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

تُنظَّم مجموعة الأحداث المعلقة عادةً على شكل قائمة انتظار ذات أولوية ، مُرتبة حسب وقت الحدث. [ 7 ] أي أنه بغض النظر عن ترتيب إضافة الأحداث إلى مجموعة الأحداث، فإنها تُزال بترتيب زمني دقيق. دُرست تطبيقات مختلفة لقوائم الانتظار ذات الأولوية في سياق محاكاة الأحداث المنفصلة؛ [ 8 ] وشملت البدائل المدروسة أشجار التفرع ، وقوائم التخطي ، وقوائم انتظار التقويم ، [ 9 ] وقوائم انتظار السلم. [ 10 ] [ 11 ] في الأجهزة ذات المعالجة المتوازية الضخمة ، مثل وحدات المعالجة المركزية متعددة النوى أو ذات النوى الكثيرة ، يمكن تنفيذ مجموعة الأحداث المعلقة بالاعتماد على خوارزميات غير حظرية ، وذلك لتقليل تكلفة التزامن بين الخيوط المتزامنة. [ 12 ] [ 13 ]

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

مولدات الأرقام العشوائية

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

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

إحصائيات

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

شرط النهاية

بما أن الأحداث تُنشأ تلقائيًا، فمن الناحية النظرية، يمكن لمحاكاة الأحداث المنفصلة أن تستمر إلى ما لا نهاية. لذا، يجب على مصمم المحاكاة تحديد وقت انتهائها. الخيارات الشائعة هي "عند الزمن t" أو "بعد معالجة عدد n من الأحداث" أو، بشكل أعم، "عندما يصل المقياس الإحصائي X إلى القيمة x".

نهج ثلاثي المراحل

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

الاستخدامات الشائعة

تشخيص مشاكل العمليات

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

يُمكّن نموذج عملي للنظام الإدارة من فهم محركات الأداء. ويمكن بناء محاكاة لتشمل أي عدد من مؤشرات الأداء مثل استغلال العمال، ومعدل التسليم في الوقت المحدد، ومعدل الهدر، ودورات النقد، وما إلى ذلك.

تطبيقات المستشفيات

تُستخدم غرفة العمليات عادةً من قِبل عدة تخصصات جراحية. ومن خلال فهم طبيعة هذه العمليات بشكل أفضل، يُمكن زيادة عدد المرضى الذين يتم استقبالهم. [ 14 ] مثال: إذا استغرقت جراحة القلب أربع ساعات في المتوسط، فإن تغيير جدول غرفة العمليات من ثماني ساعات متاحة إلى تسع لن يزيد من عدد المرضى الذين يتم استقبالهم. من ناحية أخرى، إذا استغرقت عملية الفتق عشرين دقيقة في المتوسط، فإن توفير ساعة إضافية قد لا يُؤدي أيضًا إلى أي زيادة في عدد المرضى الذين يتم استقبالهم إذا لم تُؤخذ في الاعتبار سعة غرفة الإفاقة ومتوسط ​​الوقت الذي يقضيه المريض فيها.

أفكار لتحسين أداء الاختبارات المعملية

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

تقييم قرارات الاستثمار الرأسمالي

تُستخدم نماذج المحاكاة بشكل شائع لنمذجة الاستثمارات المحتملة. ومن خلال نمذجة الاستثمارات، يستطيع صناع القرار اتخاذ قرارات مدروسة وتقييم البدائل المتاحة.

محاكيات الشبكة

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

انظر أيضاً

أساليب نمذجة الأنظمة:

التقنيات الحسابية:

برمجة:

التخصصات:

مراجع

  1. ستيوارت روبنسون (2004).المحاكاة – ممارسة تطوير النماذج واستخدامهاوايلي.
  2. ماتلوف، نورم. "مقدمة في محاكاة الأحداث المنفصلة ولغة SimPy" (ملف PDF) . تم الاطلاع عليه بتاريخ 24 يناير 2013 .
  3. بارك، هيونغ ووك؛ فيشويك، بول أ. (2010). "إطار عمل تطبيقي قائم على وحدة معالجة الرسومات يدعم محاكاة الأحداث المنفصلة السريعة" . المحاكاة . 86 (10): 613-628 . doi : 10.1177/0037549709340781 . ISSN 0037-5497 . S2CID 9731021 .  
  4. داننبرغ، روجر. "مقدمة في محاكاة الأحداث المنفصلة" . كلية علوم الحاسوب بجامعة كارنيجي ميلون . تم الاطلاع عليه بتاريخ 11 مارس 2022 .
  5. جونيش، مسعود. "الفصل الثالث: المبادئ العامة" (PDF) . جامعة برلين الحرة . تم الاسترجاع 2022-03-11 .
  6. دامردجي، حليم؛ جلين، بيتر دبليو. (1998). "نظرية النهايات لنمذجة أداء خوارزميات مجموعات الأحداث المستقبلية" . مجلة علوم الإدارة . 44 (12): 1709-1722 . doi : 10.1287/mnsc.44.12.1709 . ISSN 0025-1909 . JSTOR 2634704 .  
  7. دوغلاس دبليو جونز ، محرر. تطبيقات الوقت ، وقائع المؤتمر الثامن عشر لمحاكاة الشتاء، 1986.
  8. دوغلاس دبليو جونز ، مقارنة تجريبية بين طابور الأولوية وتنفيذات مجموعة الأحداث ، اتصالات ACM، 29، أبريل 1986، الصفحات 300-311.
  9. كاه ليونغ تان ولي-جين ثنغ، قائمة انتظار تقويم سنوبي ، وقائع المؤتمر الثاني والثلاثين لمحاكاة الشتاء، 2000
  10. ديكمان، توم؛ غوبتا، سوناك؛ ويلسي، فيليب أ. (2013). "هياكل تجميع الأحداث لأنظمة PDES على مجموعات بيوولف متعددة النوى". وقائع مؤتمر ACM SIGSIM لعام 2013 حول مبادئ المحاكاة المنفصلة المتقدمة - SIGSIM-PADS '13 . ص 103. doi : 10.1145/2486092.2486106 . ISBN  9781450319201. S2CID 17572839 . 
  11. فورفارو، أنجيلو؛ ساكو، لودوفيكا (2018). "قائمة انتظار السلم التكيفية". وقائع مؤتمر ACM SIGSIM لعام 2018 حول مبادئ المحاكاة المنفصلة المتقدمة - SIGSIM-PADS '18 . الصفحات 101-104 . doi : 10.1145/3200921.3200925 . ISBN  9781450350921. S2CID 21699926 . 
  12. ماروتا، رومولو؛ إياني، ماورو؛ بيليغريني، أليساندرو؛ كواليا، فرانشيسكو (2017). "قائمة انتظار تقويم مقاومة للتعارض وخالية من الأقفال لمنصات PDES قابلة للتوسع وتشارك كل شيء". وقائع مؤتمر ACM SIGSIM لعام 2017 حول مبادئ المحاكاة المنفصلة المتقدمة - SIGSIM-PADS '17 . الصفحات 15-26 . doi : 10.1145/3064911.3064926 . hdl : 11573/974295 . ISBN  9781450344890. S2CID 30460497 . 
  13. ليندين، جوناثان؛ جونسون، بنغت (2013). "طابور أولوية متزامن قائم على قائمة التخطي مع الحد الأدنى من التنازع على الذاكرة". وقائع مؤتمر مبادئ الأنظمة الموزعة لعام 2013 - OPODIS 2013. الصفحات 206-220 . doi : 10.1007/978-3-319-03850-6_15 . ISBN  9783319038490.
  14. جون ج. فوربوس؛ دانيال بيرلينت (2022). "محاكاة الأحداث المنفصلة في بيئات الرعاية الصحية: مراجعة" . النمذجة . 3 (4): 417-433 . arXiv : 2211.00061 . doi : 10.3390/modelling3040027 .

للمزيد من القراءة

  • مايرون هـ. ماكدوجال (1987). محاكاة أنظمة الحاسوب: التقنيات والأدوات . مطبعة معهد ماساتشوستس للتكنولوجيا. رقم ISBN 9780262132299.
  • ويليام ديلاني؛ إرمينيا فاكاري (1988). النماذج الديناميكية ومحاكاة الأحداث المنفصلة . شركة ديكر.
  • روجر دبليو. ماكهاني (1991). محاكاة الحاسوب: منظور عملي . دار النشر الأكاديمية.
  • مايكل بيد (1998). المحاكاة الحاسوبية في علوم الإدارة - الطبعة الرابعة . وايلي.
  • أ، آلان بريتسكر، جان ج. أورايلي (1999). المحاكاة باستخدام تقنية SLAM البصرية وبرنامج AweSim . وايلي.{{cite book}}: صيانة CS1: أسماء متعددة: قائمة المؤلفين ( رابط )
  • أفريل م. لو؛ دبليو. ديفيد كيلتون (2000). نمذجة المحاكاة والتحليل - الطبعة الثالثة . ماكجرو هيل.
  • برنارد ب. زيغلر؛ هربرت بريهوفر؛ تاغ غون كيم (2000). نظرية النمذجة والمحاكاة: دمج الأحداث المنفصلة والأنظمة الديناميكية المعقدة المستمرة - الطبعة الثانية . دار النشر الأكاديمية.
  • جيري بانكس؛ جون كارسون؛ باري نيلسون؛ ديفيد نيكول (2005). محاكاة نظام الأحداث المنفصلة - الطبعة الرابعة . بيرسون.
  • جيمس ج. نوتارو (2010). بناء برامج المحاكاة: النظرية والخوارزميات، مع تطبيقات في لغة C++ . وايلي.