شبیه‌سازی رویداد گسسته

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

شبیه‌سازی رویداد گسسته، (به انگلیسی: Discrete event simulation) عمل یک سیستم به عنوان یک توالی زمانی از حوادث نشان داده می‌شود. هر رویداد در یک لحظه در زمان رخ می‌دهد و یک تغییر حالت در سیستم را نشان می‌دهد.[۱] به عنوان مثال، اگر یک آسانسور شبیه‌سازی شده باشد، یک رویداد می‌تواند "فشردن دکمه طبقه ۶ "، با نتیجه سیستم در حالت " بلند شدن "باشد و در نهایت (مگر اینکه یک انتخاب برای شبیه‌سازی عدم بالا رفتن آسانسور)" تا طبقه ۶" بالا می‌رود. تعدادی از مکانیسم‌ها برای انجام رویداد گسسته شبیه‌سازی ارائه شده‌است، در میان آنها روش‌های مبتنی بر رویداد، مبتنی بر فعالیت، مبتنی بر فرایند ومبتنی بر سه مرحله هستند. رویکرد سه مرحله‌ای (فازی) توسط تعدادی از بسته‌های شبیه‌سازی نرم‌افزار تجاری مورد استفاده قرار می‌گیرد، اما از نقطه نظر کاربر ویژگی‌های زمینه‌ای روش شبیه‌سازی به طور کلی پنهان است.

مثال[ویرایش]

تمرین رایج در یادگیری چگونگی ساخت شبیه‌سازی رویداد گسسته مدل سازی یک صف است، مانند مشتریان که به یک بانک می‌روند تا یک کارمند با انها خدمت رسانی کند. در این مثال، نهادهای (موجودیتهای) سیستم صف مشتریان و تحویل دارها هستند. رویدادهای سیستم ورود و خروج مشتری هستند. (رویداد آغاز سرویس دهی کارمند بخشی از منطق رویدادهای ورود و خروج باشد.)حالتهای سیستم، که توسط این رویدادها تغییر می‌کنند، تعداد مشتریان در صف (یک عدد صحیح از ۰ تا N) و وضعیت کارمند (شلوغ و یا بیکار) می‌باشد. متغیرهای تصادفی که لازم است برای مدل سازی این سیستم مشخص شوند به طور متغییر زمان ورود مشتری و زمان خدمات دهی کارمند می‌باشد.

اجزای شبیه‌سازی رویداد گسسته[ویرایش]

علاوه بر ارائه متغیرهای حالت سیستم و منطق اینکه زمانی که وقایع و رویدادهای سیستم رخ می دهدچه اتفاق می‌افتد، شبیه‌سازی رویداد گسسته شامل موارد زیر است:

ساعت[ویرایش]

شبیه‌سازی بایستی زمان شبیه‌سازی کنونی را ثبت کند، در هر واحد اندازه گیری برای سیستم مدل مناسب هستند. در شبیه‌سازی رویداد گسسته، در مقابل به شبیه‌سازی زمان واقعی، به دلیل اینکه وقایع آنی هستند زمان پرش دارد – همچنان که شبیه‌سازی شروع میشودساعت به زمان شروع رویداد بعدی می‌رود.

فهرست رویدادها[ویرایش]

شبیه‌سازی حداقل یک لیست از وقایع شبیه‌سازی را حفظ می‌کند. و این گاهی اوقات مجموعه رویداد درجریان نامیده می‌شود به دلیل آن که رویدادهایی را فهرست می‌کند که در حال انتظار به عنوان یک نتیجه از رویداد قبلاً شبیه‌سازی شده هستند، اما هنوز باید خود را شبیه‌سازی کنند. یک رویداد بوسیله زمانی که اتفاق می‌افتد و نوع آن شرح داده می‌شود، نشان می‌دهد کدی که برای شبیه‌سازی این رویداد استفاده شده‌است. این برای کد رویداد معمول است که پارامتری شود، که در این صورت، شرح رویداد حاوی پارامترهایی برای کد رویداد است. وقتی که رویدادها لحظه‌ای هستند، فعالیت‌هایی که در طول زمان گسترش می‌یابند به عنوان سلسله‌ای از حوادث مدل شده هستند. برخی از چارچوب‌های شبیه‌سازی اجازه می‌دهد که زمان یک رویداد به عنوان یک فاصله زمانی مشخص شود، زمان شروع و زمان پایان هر رویداد رابدهد. موتورهای تک رشته شبیه‌سازی بر اساس وقایع لحظه‌ای فقط یک رویداد جاری دارند. در مقابل، موتورهای شبیه‌سازی چند رشته‌ای و موتورهای شبیه‌سازی حمایت کننده از فاصله مدل مبتنی بر رویداد ممکن است چندین رویداد جاری داشته باشند در هر دو مورد، مشکلات قابل توجهی در هماهنگی بین وقایع کنونی وجود دارد. مجموعه رویداد در انتظار که به طور معمولاً به عنوان یک صف اولویت مرتب شده، بر اساس زمان وقوع ذخیره شده.[۲] این است که بدون در نظر گرفتن ترتیب که در آن وقایع به مجموعه رویداد اضافه شده‌است، انها بر اساس زمان سفارش حذف می‌شوند. چندین الگوریتم صف همگانی برای شبیه‌سازی رویداد گسسته ثابت شد که موثرند[۳]، که مهمترین آنها، درخت گسترده‌است. جایگزین اخیر شامل لیست پرش و ردیف تقویم می‌باشد.[۴] به طور معمول، رویدادها به طوردینامیکی به عنوان محصول شبیه‌سازی برنامه ریزی شده‌اند. به عنوان مثال، در مثال بانکی که در بالا ذکر شد، این رویداد ورود مشتری در زمان t، اگر صف مشتری CUSTOMER_QUEUE خالی بود و کارمند بیکار بود، شامل ایجاد رویداد خروج مشتری که در زمان t + s می‌شود، که در اینجا S شماره تولید شده از توزیع زمان سرویسSERVICE-TIME است.

تولید کننده شماره تصادفی[ویرایش]

شبیه‌سازی، نیاز به تولید متغیرهای تصادفی از انواع مختلف، بسته به مدل سیستم دارد. واین با یک یا چند شبه تولید کننده اعداد تصادفی انجام می‌شود. استفاده از اعداد شبه تصادفی در مقابل به اعداد تصادفی واقعی یک فایده‌است که باید یک شبیه‌ساز بتواند دقیقاً با همان رفتار دوباره اجرا کند. یکی از مشکلات با توزیع تصادفی اعداد مورد استفاده در شبیه‌سازی رویداد گسسته این است که توزیع‌های ثابت از زمان رویداد ممکن نیست در ابتدا شناخته شوند. در نتیجه، مجموعه اولیه از رویدادهای قرار داده شده در مجموعه رویداد انتظار، نمایشگر زمانهای ورودی توزیع حالت پایدار ندارند. این مشکل به طور معمول با خود راه اندازی (bootstrapping) مدل شبیه‌سازی، حل شده‌است. فقط یک تلاش محدودی برای تعیین زمانهای واقع بینانه به مجموعه‌ای اولیه از رویدادهای در انتظار ساخته شده‌است. این رویدادها، با این حال، رویدادهای دیگری را زمان بندی می‌کند و با گذشت زمان، توزیع زمان رویدادها به موقعیت ثابتشان نزدیک می‌شوند. واین خود راه اندازی مدل شبیه‌سازی شده نامیده شده‌است. در جمع آوری آمار از مدل در حال اجرا، مهم است که رویدادهای مورد توجه قرار گرفته نشده که قبل از حالت پایدار رخ می‌دهد به نتیجه رسیده‌است یا برای اجرای شبیه‌سازی را برای به اندازه کافی طولانی است که وضعیت خود راه انداز توسط وضعیت ثابت پوشانده می‌شود. (استفاده ازاصطلاح خود راه انداز را می‌تواند با استفاده در هر دو آمار و محاسبات مقایسه شود)

آمارها[ویرایش]

شبیه‌سازی به طور معمول توالی از آمار سیستم راثبت می‌کند، که کمیت ابعاد سود را تعیین کند. در مثال بانک، این بهتر است که ابزاری از زمانهای میانگین را پیدا کند.

وضعیت پایانی[ویرایش]

چنانچه رویدادها خود راه اندازی شوند، بصورت تئوری یک شبیه‌ساز رویداد گسسته برای همیشه می‌تواند اجرا شود. بنابراین طراح شبیه‌سازی باید نتیجه بگیرد که شبیه‌سازی چه زمانی به پایان خواهد رسید. انتخاب نمونه در زمان T "و یا" پس از پردازش N تعداد حوادث "و یا، به طور کلی،" هنگامی که X اندازه گیری آماری به مقدار X " می‌رسد.

موتورهای شبیه‌سازی منطق[ویرایش]

حلقه اصلی یک شبیه‌سازی رویداد گسسته، چیزی شبیه به این است:

شروع[ویرایش]

  • مقداردهی اولیه پایان دادن به وضعیت FALSE.
  • مقداردهی اولیه متغیرهای حالت سیستم.
  • مقدار دهی اولیه ساعت (معمولاً در زمان شبیه‌سازی از صفر شروع می‌شود).
  • برنامه ریزی یک رویداد اولیه (به عنوان مثال، برخی از رویدادهای اولیه را به لیست 'رویدادها' قرار داده‌است).

“Do loop” or “While loop”[ویرایش]

در حالی که (پایان دادن شرط نادرست است) پس از آن به شرح زیر انجام دهید:

  • تنظیم ساعت به زمان رویداد بعدی.
  • رویداد بعدی را انجام و از لیست رویدادها حذف کنید.
  • بروز کردن ارقام.

پایان[ویرایش]

  • ایجاد گزارش آماری.

استفاده‌های معمول[ویرایش]

تشخیص مسائل مربوط به فرایند[ویرایش]

روش‌های شبیه‌سازی به طور ویژه به خوبی برای کمک به کاربران در تشخیص مسائل در محیط‌های پیچیده مجهز شده‌است. هدف (تئوری محدودیتها) اهمیت درک فهم تنگناها در یک سیستم را نشان می‌دهد. 'بهبود فرایند تنها در تنگناهاواقعا سراسر سیستم را بهبود خواهد بخشید. در بسیاری از سازمانها تنگناها با زیادی دفاتر دارایی، تولید بیش از حد، تولید بیش از حد، تنوع در فرایندها و تنوع در مسیریابی یا تعیین توالی مخفی می‌شوند. با دقت مستند سازی سیستم در داخل یک مدل شبیه‌سازی آن است که ممکن است برای به دست آوردن یک دید چشم پرنده‌ای از کل سیستم باشد. یک مدل کاری از یک سیستم به مدیریت اجازه فهمیدن انجام درایورها را می‌دهد. یک شبیه‌سازی می‌تواند برای نشان دادن هر تعداد از کارایی شاخص همانند بکار گیری، در زمان تحویل به نرخ، نرخ اوراق، چرخه پول نقد و به همین ترتیب ساخته شود.

برنامه‌های بیمارستان[ویرایش]

یک صحنه جراحی می‌تواند بین چندین جراحی منظم به اشتراک گذاشته شود. از طریق درک بهتر اصل این روش ممکن است توان بیمار را افزایش دهد. به عنوان مثال: اگر یک عمل جراحی قلب به طور متوسط چهار ساعت طول می‌کشد، با تغییر برنامه اتاق عمل از هشت ساعت موجود تا نه ساعت توان بیمار را افزایش نخواهد داد. از سوی دیگر، اگر یک فرایند بیماری فتق به طور متوسط بیست دقیقه طول می کشدفراهم کردن یک ساعت دیگر نیز ممکن است عملکرد هر توان عملیاتی را افزایش ندهد در صورتی که ظرفیت و متوسط زمان صرف شده در اتاق بهبودی در نظر گرفته نشده باشد.

محیط‌های سفارشی[ویرایش]

بسیاری از سیستم‌ها پیوسته ویژگی‌های بسیار متفاوتی بسته به ترکیب سفارش نشان می‌دهد. بسیاری از سفارشات کوچک ممکن است یک تنگنا به دلیل تغییرات بیش از حد شود. انتخاب سفارشات بزرگ ممکن است نیاز به پردازش اضافی در یک نقطه که در آن سیستم به طور ویژه کم ظرفیت است داشته باشند. مدل شبیه‌سازی اجازه می‌دهد تا مدیریت برای درک تغییرات به طور متوسط که بزرگترین فشار و بیشترین بازگشت سرمایه گذاری را داشته باشند.

آزمایشگاه آزمون ایده‌های بهبود عملکرد[ویرایش]

ایده‌های بسیاری از سیستم‌های بهبود بر اساس اصول دقیق، روش‌های اثبات شده (ناب، شش سیگما، TQM، و غیره) ساخته شده‌است و در عین حال موفق به بهبود کلی سیستم نشده. یک مدل شبیه‌سازی به کار بر اجازه درک و آزمایش ایده بهبود عملکرد در زمینه سیستم کلی را می‌دهد.

ارزیابی تصمیمات سرمایه گذاری[ویرایش]

شبیه‌سازی مدل به طور معمول برای مدل سرمایه گذاری بالقوه مورد استفاده قرار می‌گیرد. از طریق سرمایه گذاری در مدل، تصمیم گیرندگان می‌توانند تصمیمات را به اطلاع برسانند و پتانسیلها را ارزیابی کنند. اغلب این تصمیمات به عملکردهای موجودجایگزین شده نگاه کنند. به طور معمول، یک مدل از وضعیت فعلی ساخته شده‌است. این مدل "وضعیت جاری" و در مقابل داده‌های تاریخی می‌باشد، مورد آزمایش قرار گرفته و تایید شده‌است. هنگامی که یک مدل به طور صحیح بکار گرفته شود، شبیه‌سازبرای بازتاب ظرفیت سرمایه گذاری تغییر میابد. این مدل از "حالت آینده" است و سپس تست فشار برای اطمینان از انجام تغییرات به عنوان مورد نظر انجام می‌شود. گاهی اوقات، سازمان‌ها به طور کامل فرایندهای عملیات جدید را تعهذ می‌کنند. که می‌تواند امکانات جدید ناب، طراحی محصولات جدید و یا استفاده از فناوری‌های جدید باشد. در این موارد تنها مدل یک "وضعیت آینده" ساخته شده‌است. تست و اعتبار سنجی ممکن است نیاز بیشتری به تجزیه و تحلیل داشته باشد. شرکت‌ها و کارشناسان که در ساخت شبیه‌سازی تخصص دارند کسانی هستند که می‌توانند در افزایش بهره وری کمک کنند.

سیستم تست استرس (فشار)[ویرایش]

مدل را می‌توان مورد استفاده قرار داد برای درک اینکه چگونه سیستم در شرایط آب و هوایی فوق العاده توانمندخواهد بود. شبیه‌سازی می‌تواند به مدیریت کمک کند که بفهمد: افزایش زیادی در سفارشات، نوسانات قابل توجهی در ترکیب محصول، تحویل خواسته‌های مشتری جدید، و وقایع اقتصادی (به عنوان مثال چند ملیتی با عملیات در جنوب آمریکا و آسیا نوسانات قابل توجهی در ارز می‌بیند) است.

شبیه‌سازی شبکه کامپیوتر[ویرایش]

شبیه‌سازی رویداد گسسته در شبکه‌های کامپیوتری برای شبیه‌سازی پروتکل‌های جدید برای سناریوهای ترافیک شبکه‌های مختلف قبل بکار گیری مورد استفاده قرار می‌گیرد. بر اساس برنامه، یا یک شبیه‌ساز سفارشی و یا شبیه‌ساز موجود از قبیل شبیه‌ساز NS استفاده شده‌است.

جستارهای وابسته[ویرایش]

روشهای مدلسازی سیستم
تکنیک محاسبه‌ای
نرم‌افزار
اصول

پانویس[ویرایش]

  1. Stewart Robinson (2004). Simulation - The practice of model development and use. Wiley.
  2. Douglas W. Jones, ed. Implementations of Time, Proceedings of the 18th Winter Simulation Conference, 1986.
  3. Douglas W. Jones, Empirical Comparison of Priority Queue and Event Set Implementations, Communications of the ACM, 29, April 1986, pages 300-311.
  4. Kah Leong Tan and Li-Jin Thng, SNOOPy Calendar Queue, Proceedings of the 32nd Winter Simulation Conference, 2000

مطالعه بیشتر[ویرایش]

  • Myron H. MacDougall (1987). Simulating Computer Systems: Techniques and Tools. MIT Press.
  • William Delaney, Erminia Vaccari (1988). Dynamic Models and Discrete Event Simulation. Dekker INC.
  • Roger W. McHaney (1991). Computer Simulation: A Practical Perspective. Academic Press.
  • Michael Pidd (1998). Computer simulation in management science - fourth edition. Wiley.
  • A, Alan Pritsker, Jean J. O'Reilly (1999). Simulation with Visual SLAM and AweSim. Wiley.
  • Averill M. Law and W. David Kelton (2000). Simulation modeling and analysis - third edition. McGraw-Hill.
  • Bernard P. Zeigler, Herbert Praehofer and Tag Gon Kim (2000). Theory of modeling and simulation: Integrating discrete event and *continuous complex dynamic systems - second edition. Academic Press.
  • Jerry Banks, John Carson, Barry Nelson and David Nicol (2005). Discrete-event system simulation - fourth edition. Pearson.
  • James J. Nutaro (2010). Building software for simulation: theory and algorithms, with applications in C++. Wiley.

پیوند به بیرون[ویرایش]

استفاده از نرم‌افزار شبیه‌ساز بر اساس نمونه بخش خدمت به مشتری بانک