1- محاكاة شباك التذاكر عند مدخل ملعب كرة القدم.

عرض المشكلة:

يصل المشجعون الى شباك تذاكر ملعب كرة قدم كل 7±7 ثانية ويقفوا في طابور لشراء التذاكر. يستغرق زمن شراء التذاكر والوصول الى داخل الملعب 5±3 ثانية.

المطلوب بناء نموذج لتحديد الزمن المطلوب لدخول 300 مشجع الى داخل الملعب.

عرض البرنامج بلغة GPSS :

; GPSS World Sample File - TURNSTIL.GPS, by Gerard F. Cummings

**************************************************************

*                                                            *

*    Turnstile Model                                         *

*    Time is in seconds                                      *

**************************************************************

In_use EQU         5              ;Mean time

Range  EQU         3              ;Half range        

       GENERATE    7,7            ;People arrive

       QUEUE       Turn           ;Enter queue

       SEIZE       Turn           ;Acquire turnstile

       DEPART      Turn           ;Depart the queue

       ADVANCE     In_use,Range   ;Use turnstile

       RELEASE     Turn           ;Leave turnstile

       TERMINATE   1              ;One spectator enters

**************************************************************

وصف عمل النموذج:

GENERATE   

القالب GENERATE Block يسبب المتعاملين Transactions ( هنا المشجعين ) للوصول عند شباك التذاكر كل 7±7 ثانية.

QUEUE

القالب QUEUE مع القالب DEPART يجمع إحصائيات عن طابور المشجعين الذين لم يدخلوا الملعب بعد ولازالوا ينتظروا عند شباك التذاكر. كائن الطابور Queue Entity بلغة GPSS سمى هنا Turn

SEIZE

القالب SEIZE يتم الدخول اليه بمتعامل منتظر واحد بمجرد خلو شباك التذاكر من المتعامل السابق إذا وجد. وهذا يسبب في إنشغال الشباك مما يؤدي إلي منع اي متعامل من دخول قالب SEIZE

DEPART

بمجرد ان متعامل يشغل SEIZE التسهيلة Facility المتمثلة بشباك التذاكر فإنه يدخل قالب DEPART وذلك لجمع إحصائيات عن كائن الطابور Turn لاحظ ان زمن الإنتظار لايشمل الزمن المستغرق عند شباك التذاكر.

ADVANCE

قالب ADVANCE يتحكم في طول زمن المحاكاة الذي يستغرقه متعامل في إستخدام التسهيلة (شباك التذاكر) والتي قد تم شغلها بها وفي هذه الحالة يأخذ شباك التذاكر 5±3  ثانية لإدخال المشجع. لاحظ اننا أستخدمنا قيمة إسمية في قالب ADVANCE وذلك لسهولة تغيير قيمة   عامل القالب Block operands كما سنرى لاحقا.   

RELEASE

قالب RELEASE يسبب للمتعامل في إفراغ التسهيلة ( شباك التذاكر ) بحيث تكون متوفره لكي تشغل بمتعامل آخر وذلك بالدخول في قالب SEIZE

TERMINATE

مهمة قالب TERMINATE هي إزالة المتعامل من المحاكاة بعد مروره من شباك التذاكر.

إجراء المحاكاة:

الخطوات التالية تجري المحاكاة وتولد تقرير معياري، في النافذة الرئيسية من البرنامج إختار

File / Open

عند ظهور صندوق الحوار إختار

TURNSTIL

ثم

Open

لإجراء المحاكاة إختار

Command / Create Simulation

ثم إختار

Command / START

في صندوق الحوار استبدل 1 بـ

300

ثم إضغط

OK

تنتهي المحاكاة عند مرور 300 متعامل بقالب TERMINATE وهذا يمثل مرور 300 مشجع بشباك التذاكر. عند إنتهاء المحاكاة يقوم GPSS بكتابة تقرير إلي ملف التقرير التقليدي default report file المسمي Turnstil.1.1 ويظهر التقرير بشكل ذاتي في نافذة التقارير والتي يمكن مشاهدتها في اي وقت وذلك بإختيار File / Open من النافذة الرئيسية ثم إختيار Report من صندوق الإختيارات Files of type .

تكتب تقارير GPSS بشكل خاص ولنقلها يجب نسخها إلي لوحة النسخ clipboard ثم لصقها في اي برنامج تنسيق كلمات word processor

 

مناقشة النتائج:

من قيمة End Time في التقرير المعياري نري أن 2134.023 ثانية مرت لدخول المشجع رقم 300 من خلال شباك التذاكر ( تكرير المحاكاة مرة اخري يعطي نتائج مختلفة قليلا وذلك لعشوائية الظاهرة) لاحظ ان قوالب QUEUE و DEPART لاتطوق أو تحصر قالب ADVANCE وهذا يعني ان المتعاملين يسجل لهم زمن الإنتظار في الطابور فقط وليس الزمن الكلي في كائن الطابور Queue Entity المسمي Turn إذا نظرنا في التقرير إلي الجزء الخاص بـ  Queue Entity  وتحت QUEUE Turn نري ان اقصى عدد للمشجعين المنتظرين في الطابور هو 3 وهذا ليس سيئا. سوف نختبر بدائل اخرى لاحقا.

داخل المحاكاة:

لنستكشف حالة نهاية المحاكاة ending condition of the simulation والذي ولد لنا التقرير المعياري لذلك سوف نستخدم الأمر SHOW للنظر إلى بعض الصفات العددية للنظام System Numeric Attributes (SNA) حيث انها سهلة الإستخدام وسنري أي منها متوفر لنا في هذة الحالة.

اولا سننظر إلي ساعة النظام الحالية ، إختار 

Command / SHOW

وفي صندوق الحوار أكتب AC1 ثم إضغط  OK علي خط الحالة status line في نافذة النموذج Model Window سترى ان ساعة النظام الحالية هي 2134.023

فعالية شباك التذاكر utilization والتي تعطي الجزء من الزمن الكلي لإنشغال الشباك ( كأجزاء من الف) توجد بإختيار الأمر

Command / SHOW

وفي صندوق الحوار أكتب   FR$Turn ثم إختار   OKهذا يعطي القيمة 689.67 (Fractional Busy Time ) وهو معطي كاجزاء من الف

لإيجاد عدد المشجعين الواصلين لشباك التذاكر إختار

Command / SHOW

وفي صندوق الحوار اكتب  N1ثم   OKوكما هو متوقع ستكون  300

الآن لنفحص بعض الرسومات، إختار

Window / Simulation Window / Facilities Window

في نافذة التسهيلات ( كبر النافذة لتري كل محتوياتها) نلاحظ ان شباك التذاكر كان مشغولا حوالي  70% من الوقت وانه في نهاية المحاكاة كان غير مشغول ( عاطل idle ) لاحظ ان التسهيلة الممثلة لشباك التذاكر غير مشغولة ( لونها رمادي أي غير نشطة) ولا يملكها اي متعامل

لنلقي نظرة علي اين يوجد المتعاملين، إختار

Window / Simulation Window / Blocks

وهذا يعطى المنظر المفصل لنافذة القوالب Detailed View of the Blocks Window لاحظ انة لايوجد متعامل فعال او نشط وذلك لأن المتعامل رقم 301 توا يحاول الدخول إلي المحاكاة وان المتعامل رقم 300  قد انتهى لحظيا من النظام. في المنظر المفصل تمكننا من ان نشاهد تاريخ الدخول الكلي للقوالب اثناء المحاكاة. النظر الى نافذة القوالب يبين العدد الكلي لدخول القالب وهو يمكنا من التحقق من ان المتعاملين يمروا في المحاكاة كما هو متوقع. الآن اغلق نافذة القوالب.

الآن سوف نعيد إجراء المحاكاة لننظر إليها من خلال نوافذ اخرى. لنبدأ بتحضير نافذة العبارات الجبرية Expressions Window إختار

Window / Simulation Window / Expressions Window

في نافذة العبارات الجبرية وفي خانة Label  اكتب

Number of people

وفي خانة العبارة Expression field  اكتب  N3هذا سيمكننا من مشاهدة عدد المشجعين المارين بشباك التذاكر.  من خواص GPSS انه يمكن من جمع البيانات بكل سهولة إذ انه يوفر اكثر من 50 متغير تلقائيا والتي تصف حالة الكائنات. الآن أضغط علي  View ثم علي Memorize

وهذا يمكننا من حفظ العبارات والتي يمكن إستخدامها لاحقا. ايضا بحفظ المحاكاة فإن هذا سيحفظ العبارات للإستخدام مرة اخري.

دعنا ننظر ايضا لعدد المشجعين الحاليين في طابور الإنتظار لشباك التذاكر. في نافذة العبارات الجبرية وفي حقل Label اكتب

Q Content

وفي خانة العبارة اكتب  Q$Turn ثم إضغط  View   و  Memorize  واخيرا لنضف قيمة ثالثة لمشاهدة متوسط زمن الإنتظار عند شباك التذاكر ففي خانة التمييز Label field اكتب  Avg Wait وفي خانة العبارة اكتب  QT$Turnإضغط علي  View و  Memorize ثم  OK

لنتخلص الآن من المتعاملين  ونصفر الإحصائيات المتراكمة وذلك بإختيار من القائمة الرئيسية  Command / Clearثم  OKو إختار الأمر  Command / START  وفي صندوق الحوار بدل  1بـ 25,NP وثم  OKسوف تشاهد المحاكاة وهي تجري حتي يغادر المشجع  25 شباك التذاكر. لنراقب التسهيلة التي تمثل شباك التذاكر ولكن اولا اقفل نافذة التعابير الجبرية ولننظر إلي نافذة التسهيلات ( إذا لم تكن مقفولة اصلا)

 Window / Simulation Window / Facilities Window

لنبدأ المحاكاة بإجرائها  25  مرة اخرى ونلاحظ نافذة التسهيلات إختار

Command / START

وفي صندوق الحوار بدل   1بـ  25,NPومن ثم  OKعند إنتهاء المحاكاة اقفل نافذة التسهيلات Facilities Window  

لنرى الآن ماذا يحدث اذا اخذ شباك التذاكر  7±4  ثانية لخدمة المشجع بدلا من 5±3 ثانية. سوف نستخدم الأمر  Custom Commandلتغيير بعض اسماء القيم التي عرفناها سابقا في النموذج. إختر

 Command / Custom

وفي صندوق الحوار اكتب في السطر الأول   In_use EQU 7ثم اضغط مفتاح الإدخال فتنتقل الي السطر التالي واكتب

 Range EQU 4

ثم اضغط   OK يمكننا إذا اردنا إستخدام الأمر  SHOW  للتأكد من ان التغييرات التي قمنا بها قد حصلت فعلا فلنختبر مثلا احد القيم لنري كيف يتم ذلك إختر Command / SHOW وفي صندوق الحوار أكتب  Range ثم   OK يجب ان نشاهد القيمة 4  في سطر الحالة  Status Line  للنافذة الرئيسية وفي نافذة الجريدة  Journal Windowأيضا.

لنرى ماذا حدث للقالب الجديد ADVANCE Block إختار Command / Clear ثم   OK الآن لنصفر العددادات الإحصائية ونعيد حالة المحاكاة إلى الشروط الأولية عندما بدأنا، إختار Command / START وفي صندوق الحوار اكتب   300 بدلا من الواحد الصحيح ثم  OK إنتظر حتى تنتهي المحاكاة ثم افتح نافذة العبارات

Window / Simulation Window / Expressions Window

سوف نري كل العبارات الثلاثة في صندوق التذكر  Memorized Expressions box إضغط علي  Expression  و علي   View لكل عبارة الآن إختر  OKلاحظ ان أقصي طول للطابور اصبح الآن اعلي من سابقه، ايضا متوسط زمن الطابور اعلي وهذا يبين ان التباطؤ في الخدمة قد يؤدي الي دخول جميع المشجعين في الوقت المطلوب ولكن هذا قد يسبب بعض التملل من المشجعين.

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