شبیه سازی رویداد گسسته، ( به انگلیسی: Discrete event simulation ) عمل یک سیستم به عنوان یک توالی زمانی از حوادث نشان داده می شود. هر رویداد در یک لحظه در زمان رخ می دهد و یک تغییر حالت در سیستم را نشان می دهد. [ ۱] به عنوان مثال، اگر یک آسانسور شبیه سازی شده باشد، یک رویداد می تواند "فشردن دکمه طبقه ۶ "، با نتیجه سیستم در حالت " بلند شدن "باشد و در نهایت ( مگر اینکه یک انتخاب برای شبیه سازی عدم بالا رفتن آسانسور ) " تا طبقه ۶" بالا می رود. تعدادی از مکانیسم ها برای انجام رویداد گسسته شبیه سازی ارائه شده است، در میان آن ها روش های مبتنی بر رویداد، مبتنی بر فعالیت، مبتنی بر فرایند و مبتنی بر سه مرحله هستند. رویکرد سه مرحله ای ( فازی ) توسط تعدادی از بسته های شبیه سازی نرم افزار تجاری مورد استفاده قرار می گیرد، اما از دیدگاه کاربر ویژگی های زمینه ای روش شبیه سازی به طور کلی پنهان است.
تمرین رایج در یادگیری چگونگی ساخت شبیه سازی رویداد گسسته مدل سازی یک صف است، مانند مشتریان که به یک بانک می روند تا یک کارمند با آن ها خدمت رسانی کند. در این مثال، نهادهای ( موجودیتهای ) سیستم صف مشتریان و تحویل دارها هستند. رویدادهای سیستم ورود و خروج مشتری هستند. ( رویداد آغاز سرویس دهی کارمند بخشی از منطق رویدادهای ورود و خروج باشد ) حالتهای سیستم، که توسط این رویدادها تغییر می کنند، تعداد مشتریان در صف ( یک عدد صحیح از ۰ تا N ) و وضعیت کارمند ( شلوغ یا بیکار ) می باشد. متغیرهای تصادفی که لازم است برای مدل سازی این سیستم مشخص شوند به طور متغیر زمان ورود مشتری و زمان خدمات دهی کارمند می باشد.
علاوه بر ارائه متغیرهای حالت سیستم و منطق اینکه زمانی که وقایع و رویدادهای سیستم رخ می دهد چه اتفاق می افتد، شبیه سازی رویداد گسسته شامل موارد زیر است:
شبیه سازی بایستی زمان شبیه سازی کنونی را ثبت کند، در هر واحد اندازه گیری برای سیستم مدل مناسب هستند. در شبیه سازی رویداد گسسته، در مقابل به شبیه سازی زمان واقعی، به دلیل اینکه وقایع آنی هستند زمان پرش دارد – همچنان که شبیه سازی شروع می شود ساعت به زمان شروع رویداد بعدی می رود.
شبیه سازی حداقل یک لیست از وقایع شبیه سازی را حفظ می کند؛ و این گاهی اوقات مجموعه رویداد در جریان نامیده می شود به دلیل آن که رویدادهایی را فهرست می کند که در حال انتظار به عنوان یک نتیجه از رویداد قبلاً شبیه سازی شده هستند، اما هنوز باید خود را شبیه سازی کنند. یک رویداد به وسیلهٔ زمانی که اتفاق می افتد و نوع آن شرح داده می شود، نشان می دهد کدی که برای شبیه سازی این رویداد استفاده شده است. این برای کد رویداد معمول است که پارامتری شود، که در این صورت، شرح رویداد حاوی پارامترهایی برای کد رویداد است. وقتی که رویدادها لحظه ای هستند، فعالیت هایی که در طول زمان گسترش می یابند به عنوان سلسله ای از حوادث مدل شده هستند. برخی از چارچوب های شبیه سازی اجازه می دهد که زمان یک رویداد به عنوان یک فاصله زمانی مشخص شود، زمان شروع و زمان پایان هر رویداد رابدهد. موتورهای تک رشته شبیه سازی بر اساس وقایع لحظه ای فقط یک رویداد جاری دارند. در مقابل، موتورهای شبیه سازی چند رشته ای و موتورهای شبیه سازی حمایت کننده از فاصله مدل مبتنی بر رویداد ممکن است چندین رویداد جاری داشته باشند در هر دو مورد، مشکلات قابل توجهی در هماهنگی بین وقایع کنونی وجود دارد. مجموعه رویداد در انتظار که به طور معمولاً به عنوان یک صف اولویت مرتب شده، بر اساس زمان وقوع ذخیره شده. [ ۲] این است که بدون در نظر گرفتن ترتیب که در آن وقایع به مجموعه رویداد اضافه شده است، آن ها بر اساس زمان سفارش حذف می شوند. چندین الگوریتم صف همگانی برای شبیه سازی رویداد گسسته ثابت شد که مؤثرند، [ ۳] که مهم ترین آنها، درخت گسترده است. جایگزین اخیر شامل لیست پرش و ردیف تقویم می باشد. [ ۴] به طور معمول، رویدادها به طوردینامیکی به عنوان محصول شبیه سازی برنامه ریزی شده اند. به عنوان مثال، در مثال بانکی که در بالا ذکر شد، این رویداد ورود مشتری در زمان t، اگر صف مشتری CUSTOMER_QUEUE خالی بود و کارمند بیکار بود، شامل ایجاد رویداد خروج مشتری که در زمان t + s می شود، که در اینجا S شماره تولید شده از توزیع زمان سرویسSERVICE - TIME است.
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفتمرین رایج در یادگیری چگونگی ساخت شبیه سازی رویداد گسسته مدل سازی یک صف است، مانند مشتریان که به یک بانک می روند تا یک کارمند با آن ها خدمت رسانی کند. در این مثال، نهادهای ( موجودیتهای ) سیستم صف مشتریان و تحویل دارها هستند. رویدادهای سیستم ورود و خروج مشتری هستند. ( رویداد آغاز سرویس دهی کارمند بخشی از منطق رویدادهای ورود و خروج باشد ) حالتهای سیستم، که توسط این رویدادها تغییر می کنند، تعداد مشتریان در صف ( یک عدد صحیح از ۰ تا N ) و وضعیت کارمند ( شلوغ یا بیکار ) می باشد. متغیرهای تصادفی که لازم است برای مدل سازی این سیستم مشخص شوند به طور متغیر زمان ورود مشتری و زمان خدمات دهی کارمند می باشد.
علاوه بر ارائه متغیرهای حالت سیستم و منطق اینکه زمانی که وقایع و رویدادهای سیستم رخ می دهد چه اتفاق می افتد، شبیه سازی رویداد گسسته شامل موارد زیر است:
شبیه سازی بایستی زمان شبیه سازی کنونی را ثبت کند، در هر واحد اندازه گیری برای سیستم مدل مناسب هستند. در شبیه سازی رویداد گسسته، در مقابل به شبیه سازی زمان واقعی، به دلیل اینکه وقایع آنی هستند زمان پرش دارد – همچنان که شبیه سازی شروع می شود ساعت به زمان شروع رویداد بعدی می رود.
شبیه سازی حداقل یک لیست از وقایع شبیه سازی را حفظ می کند؛ و این گاهی اوقات مجموعه رویداد در جریان نامیده می شود به دلیل آن که رویدادهایی را فهرست می کند که در حال انتظار به عنوان یک نتیجه از رویداد قبلاً شبیه سازی شده هستند، اما هنوز باید خود را شبیه سازی کنند. یک رویداد به وسیلهٔ زمانی که اتفاق می افتد و نوع آن شرح داده می شود، نشان می دهد کدی که برای شبیه سازی این رویداد استفاده شده است. این برای کد رویداد معمول است که پارامتری شود، که در این صورت، شرح رویداد حاوی پارامترهایی برای کد رویداد است. وقتی که رویدادها لحظه ای هستند، فعالیت هایی که در طول زمان گسترش می یابند به عنوان سلسله ای از حوادث مدل شده هستند. برخی از چارچوب های شبیه سازی اجازه می دهد که زمان یک رویداد به عنوان یک فاصله زمانی مشخص شود، زمان شروع و زمان پایان هر رویداد رابدهد. موتورهای تک رشته شبیه سازی بر اساس وقایع لحظه ای فقط یک رویداد جاری دارند. در مقابل، موتورهای شبیه سازی چند رشته ای و موتورهای شبیه سازی حمایت کننده از فاصله مدل مبتنی بر رویداد ممکن است چندین رویداد جاری داشته باشند در هر دو مورد، مشکلات قابل توجهی در هماهنگی بین وقایع کنونی وجود دارد. مجموعه رویداد در انتظار که به طور معمولاً به عنوان یک صف اولویت مرتب شده، بر اساس زمان وقوع ذخیره شده. [ ۲] این است که بدون در نظر گرفتن ترتیب که در آن وقایع به مجموعه رویداد اضافه شده است، آن ها بر اساس زمان سفارش حذف می شوند. چندین الگوریتم صف همگانی برای شبیه سازی رویداد گسسته ثابت شد که مؤثرند، [ ۳] که مهم ترین آنها، درخت گسترده است. جایگزین اخیر شامل لیست پرش و ردیف تقویم می باشد. [ ۴] به طور معمول، رویدادها به طوردینامیکی به عنوان محصول شبیه سازی برنامه ریزی شده اند. به عنوان مثال، در مثال بانکی که در بالا ذکر شد، این رویداد ورود مشتری در زمان t، اگر صف مشتری CUSTOMER_QUEUE خالی بود و کارمند بیکار بود، شامل ایجاد رویداد خروج مشتری که در زمان t + s می شود، که در اینجا S شماره تولید شده از توزیع زمان سرویسSERVICE - TIME است.
wiki: شبیه سازی رویداد گسسته