شبیهسازی رویدادگسسته، زمان مدل را تا رخدادهایی جلو میبرد که وضعیت را تغییر میدهند؛ مثلاً ورود کار یا پایان بررسی. وقتی منبع لازم مشغول باشد، کارها منتظر میمانند. مدل کوچک میتواند انتظار، کار در جریان و تکمیلها را با قواعد روشن نشان دهد. از مثالی شروع کنید که با دست قابل محاسبه باشد و بعد فقط نوسان لازم برای تصمیم را اضافه کنید. شبیهسازیِ اجراشونده همچنان باید در برابر فرایند واقعی اعتبارسنجی شود.
ورود، استفاده از منبع و تکمیل را روی یک خط زمان دنبال کنید.
مدل سه کار را با مثال محلی و رایگان جاوااسکریپت بازتولید کنید.
نمونهگیری تصادفی، رفتار پیوسته و اعتبارسنجی مدل را جدا کنید.
رویداد، دانستهٔ مدل را تغییر میدهد
یک بازبین و صفِ «اول وارد، اول خارج» را تصور کنید. رسیدن کار، صف را تغییر میدهد. پایان بررسی، بازبین را آزاد میکند. زمان مدل به رویداد مرتبطِ بعدی میپرد، بهجای آنکه هر میلیثانیه دوباره حساب کند.
موجودیتها همان کارها هستند. منبع، بازبین است. وضعیت شامل کارهای منتظر، کارِ در حال بررسی و زمان فعلی است. قواعد مشخص میکنند کار آماده چه زمانی میتواند بازبین را در اختیار بگیرد و پس از پایان بررسی چه اتفاقی بیفتد.
این مدل در زمان صفر خالی است. استراحت، دوبارهکاری، تغییر اولویت یا ورودی ناقص ندارد. این حذفها مرز آموزشیِ عمدیاند، نه ادعایی دربارهٔ روش کار یک تیم واقعی.
سه کار، بدون نیاز به بستهٔ شبیهسازی
ورودیهای فرضی، با یک مبنای دقیقهاند. A در دقیقهٔ صفر میرسد و چهار دقیقه کار میخواهد. B در دقیقهٔ یک میرسد و دو دقیقه میخواهد. C در دقیقهٔ پنج میرسد و سه دقیقه میخواهد. ورود کار تازه، بررسیِ شروعشده را قطع نمیکند.
wait = start - arrival. بر اساس زمان ورود مرتب کنید و قاعدهٔ ورود همزمان را مشخص نگه دارید؛ این مثال برای ورودهای همزمان، ترتیب ورودی را حفظ میکند.
| کار | ورود | مدت خدمت | شروع | پایان | انتظار |
|---|---|---|---|---|---|
| A | 0 | 4 | 0 | 4 | 0 |
| B | 1 | 2 | 4 | 6 | 3 |
| C | 5 | 3 | 6 | 9 | 1 |
کوچکترین مدل پاسخگو به پرسش را بسازید
کاربرگ اکسل زمان ورود، شروع، پایان و انتظار را برای مثال سه کار و یک خدمتدهنده حساب میکند. زمان ورود و خدمت را تغییر دهید تا صف را بررسی کنید. این کاربرگ ورود تصادفی یا چند منبع را مدل نمیکند.
وقتی چند منبع، مسیر موازی یا رابطهٔ پیچیدهتر بین رویدادها لازم است، کتابخانهٔ تخصصی مفید میشود. SimPy چارچوب رایگان پایتون برای شبیهسازی رویدادگسستهٔ فرایندمحور با منابع مشترک است. مستندات رسمی آن انتظار فرایندها برای رویداد را توضیح میدهد؛ انتخاب ابزار، فرضهای فرایند را اعتبارسنجی نمیکند.
پنج گام زیر، توالی کاربردیِ همین تمریناند، نه تعداد مراحل الزامی برای کل صنعت. حتی وقتی پروژهٔ کوچک بعضی فعالیتها را ترکیب میکند، بررسی پیادهسازی و اعتبارسنجی را جدا نگه دارید.
- تصمیم را بنویسید
مثلاً بررسی کنید پنجرهٔ اضافهٔ بازبینی، انتظار را بدون انتقال تأخیر به جای دیگر کم میکند یا نه.
- ورودیها را جمع و اعلام کنید
ورودها، مدت خدمت، تقویم منابع، اولویتها و کار موجود در شروع را آشکار نگه دارید.
- قواعد رویدادها را بسازید
ورود، پیوستن به صف، استفاده از منبع و تکمیل را پیاده کنید. ترتیب برخورد با رویدادهای همزمان را مشخص کنید.
- اجرای کوچک را بررسی کنید
هر رخداد را با محاسبهٔ دستی بسنجید و مطمئن شوید هر کار واردشده یک وضعیت سازگار دارد.
- پیش از مقایسهٔ تغییرها اعتبارسنجی کنید
انتظار ثبتشده، تکمیل و کار ناتمام را در دورهٔ واقعیِ همسان مقایسه کنید. سپس سناریوی تغییر را همراه عدمقطعیتش بیازمایید.
نمونهگیری تصادفی، روش رقیبِ جداگانهای نیست
مثال سه کار قطعی است: ورودی یکسان، خروجی یکسان میدهد. اگر زمان ورود یا بررسی تغییر کند، مدل رویدادگسسته میتواند آنها را تصادفی نمونهگیری کند. این استفاده از نمونهگیری مونتکارلو داخل مدل رویدادی است؛ DES و مونتکارلو دو انتخاب ناسازگار نیستند.
مدل پیوسته کمیتهایی را نمایش میدهد که پیوسته تغییر میکنند؛ مثلاً دما طبق معادلهٔ فیزیکی مشخص. بعضی مسائل، رفتار پیوسته و تغییر گسسته را ترکیب میکنند. مدل را برای پرسش انتخاب کنید، نه با رتبهبندی یک نوع بهعنوان بهترین روش برای همهچیز.
مثال محلی یک آزمایش آموزشی با بذر تصادفیِ مشخص هم دارد که مدت هر خدمت را در ضریب نمونهگیریشدهٔ ۰٫۸ تا ۱٫۲ ضرب میکند. همان سناریوی محدودِ سه کار، ۱۰۰ بار تکرار میشود. ضرایب ساختگیاند و از بازبین واقعی برازش نشدهاند. نتیجه، تکرارپذیری و تغییرپذیری را نشان میدهد، نه توصیهٔ تعداد نیرو.
گرمشدن مدل و تکرار اجرا، مسئلههای متفاوتی را پاسخ میدهند
تمرین محدودِ سه کار که از حالت خالی شروع میشود، به حذف مصنوعیِ دورهٔ گرمشدن نیاز ندارد؛ هر سه کار جزو پرسشاند. برای مدلِ خدمت در حال کار، شاید کار اولیهٔ واقعبینانه یا دورهٔ گرمشدنِ توجیهشده لازم باشد تا شروع خالی نتیجه را منحرف نکند.
در تکرار سناریوها از جریانهای تصادفی مستقل استفاده کنید و عدمقطعیت را گزارش دهید، نه فقط اجرای دلخواه را. هنگام مقایسهٔ تغییرها، فرض ورودی و طرح مقایسه سازگار بماند. یک اجرای قطعی، توزیع نتیجههای ممکن را توصیف نمیکند.
مرز خروجی را هم یکسان نگه دارید. توقف در زمان ثابت میتواند کار ناتمام باقی بگذارد؛ گزارشکردن فقط کار کاملشده شاید انتظار طولانیِ باقیماندهها را پنهان کند. صف پایان را ثبت کنید و توضیح دهید ورود کار قطع میشود و سپس اجازهٔ تخلیهٔ صف میدهید یا نه.
مدل چه زمانی برای تصمیم آماده است؟
بررسی پیادهسازی میپرسد کد طبق قواعد مورد نظر کار میکند یا نه. اعتبارسنجی میپرسد قواعد و ورودیها، فرایند واقعی را برای تصمیم مورد نظر بهاندازهٔ کافی درست نشان میدهند یا نه. محاسبهٔ دستی اینجا یک الگوریتم کوچک را بررسی میکند؛ جریان کار یک شرکت را اعتبارسنجی نمیکند.
برای بررسی اعتبار، راهنمای اعتبارسنجی شبیهسازی را بخوانید. مقایسهٔ روشها به انتخاب رویکرد کمک میکند و راهنمای VSM مدل پیشنهادی را به وضعیت فعلیِ مشاهدهشده وصل میکند.
در Vrolen، شبیهسازی یکی از قابلیتهای نقشهٔ جریان ارزش است. مثال مقاله ادعا نمیکند این اسکریپت محلیِ مستقل، قابلیت محصول یا پیشبینیِ پایلوت خصوصی است.
ابزارهای رایگان برای شبیهسازی فرایند عملیاتی
SimPy کتابخانهٔ شبیهسازی رخدادگسسته در پایتون با مجوز MIT است. JaamSim شبیهساز گرافیکیِ رخدادگسسته است و کد فعلی آن مجوز Apache 2.0 دارد. هر دو را میتوان بدون خرید مجوز شبیهساز تجاری به کار برد. بااینحال، مدلسازی، بررسی ورودی و اعتبارسنجی لازماند؛ رایگانبودن نرمافزار به معنی آمادهبودن مدل برای تصمیم واقعی نیست.
مثال کوچک JavaScript این مقاله هم مسیر رایگان دیگری برای یادگیری است. عمداً محدود است و خروجی بررسیشده دارد. ابزار را با توجه به پرسش واقعیِ جریان و مهارت تیم انتخاب کنید. ابزار رسم عمومی و محصول فرایندکاوی، لزوماً صف، رقابت برای منبع یا گذر زمان را شبیهسازی نمیکنند.
چرا تعداد انواع شبیهسازی در فهرستها فرق دارد؟
فهرست سهتایی معمولاً شبیهسازی رخدادگسسته، پیوسته و مونتکارلو را نام میبرد. فهرست چهارتایی ممکن است عاملمبنا را هم اضافه کند. این تمایزها مفیدند، اما چهار دستهٔ جدا از هم نیستند. NIST رویکردهای زمانمحورِ رخدادگسسته و پیوسته، ترکیب آنها در مدل ترکیبی و نمونهگیری مونتکارلو را توضیح میدهد که میتواند در هرکدام هم به کار رود.
برای ورود کار، صف و آزادشدن منبع از رخدادگسسته استفاده کنید؛ برای کمیتهایی که با زمان تغییر میکنند از مدل پیوسته؛ برای عدمقطعیت در نمونهگیریهای تکراری از مونتکارلو؛ و وقتی تعاملهای فردی نتیجه را شکل میدهند از قواعد عاملمبنا. مدل ترکیبی میتواند آنها را کنار هم بگذارد. روش لازم برای پاسخ به پرسش را انتخاب و فرضهایش را اعتبارسنجی کنید، نه اینکه بر اساس تعداد، نامی برگزینید.
مثالی مرتبط از ابوالفضل
صف متغیر را برای تفکیک اتصال مدل از اعتبار پیشبینی دنبال کنید.
به انگلیسی در وبلاگ شخصی ابوالفضل، بنیانگذار Vrolen. مطالعهٔ مرتبط است، نه منبع فنی مستقل.
چکلیست عملی
- تصمیم و مرز مدل را بنویسید.
- کار موجود در شروع و زمان قطع ورود را مشخص کنید.
- ورود و مدت خدمت را با یک واحد بنویسید.
- منبع، صف و قاعدهٔ همزمانی را تعیین کنید.
- مثال کوچک را رخدادبهرخداد بررسی کنید.
- ورودی تصادفی و روش تعیین بذر را توضیح دهید.
- کار ناتمام و عدمقطعیت را قابل مشاهده نگه دارید.
- پیش از اعتماد به سناریوی تغییر، خط پایه را اعتبارسنجی کنید.
پرسشهای متداول
پرسشهای متداول
منابع و مطالعهٔ بیشتر
منابع معتبر استفادهشده برای پژوهش و بررسی این راهنما.

