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
.