6- محاكاة نظام تخزين بنقطة طلب:

عرض المشكلة:

نظام تخزين تتحكم به نقطة طلب order point ، وضعت عند 600 وحدة، وكمية طلب إقتصادية economic order quantity  من 500  وحدة. كمية المخزون الأولية 700 وحدة. الطلب اليومي في المجال 40 إلى 63 وحدة موزعة بالتساوي. زمن التقدم lead time  من الطلب حتي توصيل البضائع 5  أيام.

حاكي نظام التخزين لمدة 100 يوم

عين توزيع المخزون والمبيعات اليومية الفعلية

عرض البرنامج:

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

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

*                                                                   *    

*            Order Point Inventory System                           *

*                                                                   *

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

*  Initialize and define

          INITIAL    X$EOQ,500         ;Economic order qty.

          INITIAL    X$Point,600       ;Order point

          INITIAL    X$Stock,700       ;Set initial stock=700

Inventory TABLE      X$Stock,0,50,20   ;Table of stock levels

Sales     TABLE      P$Demand,38,2,20  ;Table of sales levels

Var2      VARIABLE   RN1@24+40

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

          GENERATE   ,,,1

Again     TEST L     X$Stock,X$Point   ;Order placed on successful test

          ADVANCE    5                 ;Lead time = 1 week

          SAVEVALUE  Stock+,X$EOQ      ;Economic order

          TRANSFER   ,Again            ;Cycle transaction again

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

          GENERATE   1                 ;Daily demand xact

          ASSIGN     Demand,V$Var2     ;Assign daily demand

          TABULATE   Inventory         ;Record inventory

          TEST GE    X$Stock,P$Demand  ;Make sure order can be filled

          SAVEVALUE  Stock-,P$Demand   ;Remove demand from stock

          SAVEVALUE  Sold,P$Demand     ;X$Sold=Daily demand

          TABULATE   Sales             ;Record daily sales

          TERMINATE  1                 ;Daily timer

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

 

النموذج مرتب في عدة أجزاء. قالب GENERATE الأول يولد متعامل مفرد والذي يقوم بإعادة الطلب. هذا المتعامل يمضي معظم وقته بإنتظار الدخول في حالة قالب إختبار رفض refuse mode TEST مرمز Again . قالب الإختبار هذا يشعر بحالة مستوى المخزون عنما تكون تحت نقطة الطلب. عنما يكون مستوى المخزون تحت نقطة الطلب فإن المتعامل المنتظر يمر إلى قالب ADVANCE وينتظر 5 أيام ويضيف الطلب إلى المخزون ثم ينتظر للوقت التالي عنما يكون مستوى المخزون أقل من نقطة الطلب.

قالب GENERATE الثاني يولد المتعاملين اليومية والتي تمثل طلبات الزبائن. إذا لم  يكن ممكنا تحقيق طلب يمنع دخوله إلى قالب TEST . يمكنك إحاطة كل قالب إختبار رفض بقوالب QUEUE و DEPART إذا اردت تقريرا عن التأخر هناك.

 

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

 لكي نجري المحاكاة ونولد تقريرا معياري نختار  File / Openوفي صندوق الحوار نختار  ORDERPNTثم   Openقبل ان نبدأ المحاكاة لنجهز رسم نشاهد من خلاله متغيرين في النموذج. لكن قبل هذا يجب خلق المحاكاة حتي نستطيع الوصول إلى نافذة الرسم، نختار

 Command / Create Simulation  ثم نختار

Window / Simulation Window / Plot Window

وفي نافذة تحرير الرسومات أدخل المعلومات كما هو مبين في الشكل التالي:

سوف نرسم الطلب اليومي ومستوي المخزون علي نفس الرسم. ( ملاحظة: أدخل المعلومات بدون أن تضغط علي مفتاح Enter ) إضغط على  Plot ثم   Memorize ثم أدخل مجموعة القيم الثانية التي نريد رسمها، في خانة الرمز بدل القيمة الموجودة بـ    Inventory Level وفي خانة التعبير بدل القيمة الموجودة بـ  X$Stock ثم إضغط على   Plot و على  Memorize ثم   OK حرك نافذة الرسم بشكل يجعلها سهلة المشاهدة اثناء المحاكاة ثم إختار  Command / START وفي صندوق الحوار إستبدل 1 بـ 100 ثم  OK

تنتهي المحاكاة بعد مرور 100 يوم ويكتب التقرير المعياري إلى الملف Orderpnt.1.1 كما يعرض في نافذة التقارير.  نافذة الرسم ستبدوا أثناء المحاكاة كالتالي:

 

نافذة الرسومات

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

يبدوا من الرسم أن تصرف نظام المخزون واضح حيث نشاهد أن مستوى المخزون يتغير. جدول المخزون في التقرير تبين ان مستوى التخزين لم ينقص عن 300 وحدة.

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

لنستكشف الآن حالة نهاية المحاكاة والتي تولد عندها التقرير السابق. لنستخدم الأمر SHOW لننظر متوسط مستوى المخزون  Command / SHOW وفي صندوق الحوار أكتب  TB$Inventory ثم  OK

هذا سيبين متوسط مستوى المخزون. وهو مقياس لكمية المال المربوطة في المخزون. عند 612 يبدوا نسبيا مرتفع. ربما نستطيع توفير بعض المال بتغيير بعض المدخلات في نظام التخزين المحاكى.

لننظر إلى بعض الرسومات. أولا صغر نافذة الرسوم لأننا سنحتاجها لاحقا. أفتح نافذة جدول المخزون Inventory Table إختار  Window / Simulation Window / Table Window وبما ان Inventory Table موجودة في صندوق الحوار إضغط على OK . هذه نافذة جدول Inventory Table هذا الجدول يبين توزيع مستوى المخزون اليومي. لنراقب نشاط بضعة ايام اخرى، لنختار

Command / START وفي صندوق الحوار أكتب   100,NP ثم  OK اقفل نافذة الجدول ولنفتح نافذة القوالب  Window / Simulation Window / Blocks Window نلاحظ ان هذا النموذج بسيط جدا. المتعامل في الجزء الأعلى ينتظر شرط إعادة طلب، والجزء السفلي يخلق متعاملين يمثلوا المبيعات اليومية. إجر المحاكاة مرة اخرى ولاحظ الإنسياب في نافذة القوالب. إختار  Command / START وفي صندوق الحوار أكتب   50,NP ثم  OK . لنغير شيئا في النظام لنبدل نقطة الطلب إلى 300 بدلا من 600 والمخزون الأولي إلى 400 بدلا من 700 ، نختار  Command / Customوفي صندوق الحوار أكتب  Clear Off  ثم   OK. الأمر CLEAR يزيل كل المتعاملين كما انة يصفر كل القيم المحفوظة Savevalue ولكن بإستخدام العامل Off جعلناة يبقي علي القيم الحالية للقيم المحفوظة وسوف نغير فقط بعض القيم المختارة للقيم المحفوظة لنختار   Command / Custom وفي صندوق الحوار أكتب  INITIAL X$Point,300 ثم إضغط Enter ثم في نفس الصندوق أكتب  INITIAL X$Stock,400 ثم  OK. لم نغير الكمية المطلوبة إذ ستظل 500 . لننظر الى الرسم ونحن نجري المحاكاة، أولا اقفل نافذة القوالب. الأمر CLEAR صفر الرسم السابق، كبر نافذة الرسوم وأبدأ المحاكاة  Command / STARTثم اكتب   100,NPثم OK. نحتاج معرفة إذا ماحدث نفاذ مخزون stockout وهذا نحصل عليه من كائن الجدول Inventory إختار   Window / Simulation Window / Table Window ثم  OK

لاحظ ان المخزون لم يعاني اي فقد او ضياع. هذا واضح لأن فئة التكرار العليا التي قيمتها 0 فارغة. القيم الحدية للفئات التكرارية تكون مشمولة دائما في العمود الذي إلى يسار القيمة. ايضا نشاهد ان متوسط مستوى المخزون هو فقط 329.1 . وهذا تحسن جيد عن النموذج السابق. قبل تقديم تقرير عن هذه النتائج يجب ان نبرهن ان الفرق بين النموذجين لم يتأتى بالصدفة أي انة عشوائي بحت. كما يجب التخلص من حالة البدء starting conditions من الإحصائات النهائية وذلك بإستخدام الأمر RESET والذي سنناقشة لاحقا مع الأمر ANOVA .