simulation 3

Download Report

Transcript simulation 3

‫شبیه سازی کامپیوتری‬
‫‪Computer simulation‬‬
‫بخش سوم‬
‫مدرس ‪ :‬زهره زرین قلمی‬
‫پاییز ‪93‬‬
‫‪1‬‬
‫‪Prepared By Zarringhalami‬‬
‫یادآوری‬
‫‪ ‬اکثر مدلهای شبیه سازی از دسته مدلهای ریاض ی‪-‬پویا‪-‬عددی می باشند‪.‬‬
‫‪ ‬در یک سیستم پویا‪ ،‬وضعیت اشیا سیستم یا مشخصات آنها و یا بطور کلی وضعیت‬
‫یک سیستم پویا‪ ،‬همراه با گذراندن زمان تغییر می یابد‪.‬‬
‫‪ ‬هدف از یک مدل شبیه سازی‪ ،‬تولید و یا تکرار فعالیتهای محرکهایی است که بگونه‬
‫ای در این تغییر وضعیت ها موثر می باشند‪.‬‬
‫‪ ‬لذا در مدل سازی یک سیستم‪ ،‬تشخیص چگونگی تغییر وضعیت ها حائز اهمیت‬
‫است‪.‬‬
‫‪2‬‬
‫‪Prepared By Zarringhalami‬‬
‫انواع مدل ها‬
‫ریاض ی‬
‫فیزیکی‬
‫ایستا‬
‫عددی‬
‫پویا‬
‫تحلیلی‬
‫قطعی‬
‫قطعی‬
‫‪3‬‬
‫ایستا‬
‫احتمالی‬
‫عددی‬
‫احتمالی‬
‫قطعی‬
‫تحلیلی‬
‫قطعی‬
‫احتمالی‬
‫احتمالی‬
‫‪Prepared By Zarringhalami‬‬
‫پویا‬
‫یادآوری‬
‫‪ ‬در سیستمهای پیوسته‪ ،‬تغییر وضعیت به صورت مداوم و تدریجی است‪ ،‬یعنی تغییر‬
‫وضعیت بر حسب گذر زمان متصل است‪.‬‬
‫‪ ‬مدلهای اینگونه سیستم ها شامل معادالتی است که میزان و جهت تغییر وضعیت و‬
‫یا تغییرات متغیرهای پیوسته سیستم را بر حسب زمان و یا دیگر پارامترها تعیین می‬
‫کند‪ .‬به عنوان معادالت رفتاری سیستم نامیده می شود و ممکن است به صورت‬
‫معادالت ساده و یا دیفرانسیل ظاهر شود‪.‬‬
‫‪ ‬در سیستم های گسسته تغییر وضعیت ها به صورت آنی و در نقاط منفصلی از زمان‬
‫رخ می دهد و در فواصل این نقاط وضعیت سیستم و یا به عبارت دیگر مقدار‬
‫مشخصه های سیستم به صورت ثابت باقی می ماند‪.‬‬
‫‪4‬‬
‫‪Prepared By Zarringhalami‬‬
‫یادآوری‬
‫مدلهای شبیه سازی کامپیوتری برنامه هایی هستند که‬
‫تغییر وضعیت یک سیستم را برحسب یک متغیر مستقل (زمان) محاسبه و‬
‫بر ساختارهای برنامه ای یا داده ای)‪(Program / Data Structure‬‬
‫که مشابه اشیا سیستم و مشخصات آنها هستند اعمال می کنند‪.‬‬
‫‪5‬‬
‫‪Prepared By Zarringhalami‬‬
‫پارامتر های شبیه سازی‬
‫در شبیه سازی سیستم دو پارامتر اساس ی برای تعیین سیستم در نظر گرفته می شود ‪:‬‬
‫‪ ) 1‬پیشامدهای سیستم‬
‫‪ )2‬ساعت شبیه سازی‬
‫‪6‬‬
‫‪Prepared By Zarringhalami‬‬
‫پیشامد‬
‫‪ ‬پیشامد‪ ،‬محرک یا فعالیتهایی اند که در سیستم باعث تغییر وضعیت آنی می گردند‪.‬‬
‫‪ ‬پیشامدهای سیستم به دو دسته اند ‪:‬‬
‫‪ ‬الف ) پیشامدهای اصلی‪ :‬که وقوعشان مستقل از دیگر پیشامدها هستند‪ .‬مانند در‬
‫بیمارستان‪ ،‬ورود بیمار یا بهبود و مرخص شدن او و مشتری در بانک‬
‫‪ ‬ب ) پیشامدهای وابسته یا فرعی ‪ :‬پیشامدهایی هستند که در صورت وجود یا ورود‬
‫پیشامد اصلی به وجود می آید یعنی وقوعشان بستگی به وقوع پیشامد دیگری دارند‪ .‬به‬
‫بیان دیگر پیشامدهای فرعی نتیجه وقوع پیشامدهای اصلی می باشد‪ .‬مانند در‬
‫بیمارستان‪ ،‬بیکار شدن پزشک یا اشغال یک تختخواب و یا انجام کار دستگاه رادیولوژی‬
‫و مشغول یا بیکار بودن صندوق دار در بانک‬
‫‪7‬‬
‫‪Prepared By Zarringhalami‬‬
‫ساعت شبیه سازی و گذر زمان در شبیه سازی‬
‫‪ ‬با توجه به اینکه‪ ،‬اکثر مدلهای شبیه سازی از دسته مدل های ریاض ی‪-‬پویا‪-‬عددی‬
‫هستندکه پویایی آنها مستلزم وجود متغیر زمان در مدل است‪ ،‬این متغیر اصطالحا‬
‫ساعت شبیه سازی )‪ (Clock‬نامیده می شود‪.‬‬
‫‪ ‬تفاوت ساعت شبیه سازی و ساعت واقعی در گذر زمان آنهاست که ممکن است‬
‫کندتر و یا تندتر شود و این تفاوت به علت دو خصوصیت فشردن و گسترش زمان در‬
‫مدل شبیه سازی است‪.‬‬
‫‪8‬‬
‫‪Prepared By Zarringhalami‬‬
‫ساعت شبیه سازی و گذر زمان در شبیه سازی‬
‫‪ ‬هر وقت بخواهید یک سیستم را مدل کنید باید برای یک مدت معینی آنرا مدل کنید‬
‫که به این مدت معین‪ ،‬زمان سیستم یا )‪ (System Time=ST‬گویند‪.‬‬
‫‪ ‬ساعت شبیه سازی ‪ Clock‬یا ‪ C‬در یک مدل کامپیوتری بوسیله یک متغیر و گذر‬
‫زمان بوسیله تغییر این متغیر‪ ،‬شبیه سازی می شود‪.‬مقدار اولیه این متغیر همان‬
‫لحظه شروع شبیه سازی می باشد و به دو روش مقدار آن افزایش می یابد‪:‬‬
‫الف) افزایش زمان با مقدار ثابت یا فاصله گرا)‪(Interval-Oriented‬‬
‫ب) افزایش زمان با مقدار متغیر یا واقعه گرا )‪(Event-Oriented‬‬
‫‪9‬‬
‫‪Prepared By Zarringhalami‬‬
‫افزایش زمان با مقدار ثابت‬
‫‪ ‬در این روش ساعت شبیه سازی هر بار به یک مقدار ثابت که اصطالحا بدان قدم یا گام زمانی‬
‫)‪ ( Time Slice, TS‬گویند‪ ،‬افزایش می یابد‪.‬‬
‫‪ ‬آنگاه مدل را مرور کرده تا تغییر و تحوالتی که در این روش رخ داده اند مشخص گردد‪ .‬تغییرات‬
‫و فعالیتهای مشخص شده انجام می گردند و آنگاه یک گام زمانی دیگر برداشته می شود‪ .‬این‬
‫مراحل آنقدر تکرار می شود تا ساعت شبیه سازی دارای مقداری بیشتر یا مساوی مدت شبیه‬
‫سازی از قبل تعیین شده گردد‪.‬‬
‫‪ ‬مقدار ثابت افزایش ی گام زمانی در این روش بستگی به فواصل زمانی وقوع پیش آمدها و‬
‫تغییرات در سیستم دارد‪.‬‬
‫‪ ‬برای سیستم های پیوسته است و بدان مدل فاصله گرا یا ‪Interval -Oriented‬‬
‫گویند‪.‬‬
‫‪10‬‬
‫‪Prepared By Zarringhalami‬‬
Interval -Oriented‫مدل‬
C
C+TS
C>=ST
yes
yes
Exit
No
No
Do you have
any event?
yes
Prepared By Zarringhalami
Change should be
Registered and
Process do
11
‫افزایش زمان با مقدار متغیر‬
‫‪ ‬در روش قبلی ممکن است مواردی پیش آید که بعد از برداشتن یک گام زمانی‪ ،‬مدل بررس ی شود و‬
‫هیچ پیشامدی در آن لحظه رخ ندهد‪ .‬بنابراین یک قدم دیگر برداشته شود‪ .‬یعنی بررس ی مدل‬
‫جهت تعیین و تشخیص پیشامدهای قابل وقوع گاه ممکن است شامل جستجوها و اعمال طوالنی‬
‫در کامپیوتر گردد‪.‬‬
‫‪ ‬جهت احتراز از اینگونه موارد‪ ،‬فاصله های زمانی که وضعیت سیستم در طول آنها ثابت می ماند‬
‫به صورت جهش ی پیموده می شود‪ .‬یعنی بعد از انجام کلیه تغییرات حاصل از وقوع یک پیشامد‪،‬‬
‫‪ Clock‬به زمان وقوع اولین پیشامد بعدی که پیش بینی شده افزایش داده می شود‪ ،‬تغییرات‬
‫الزم انجام و دوباره افزایش ‪ Clock‬تا پیشامد بعدی تکرار می شود‪.‬‬
‫‪ ‬این تکرار افزایش ‪ Clock‬واعمال اثرات پیشامدها تا پایان مدت شبیه سازی ادامه می یابد‪.‬‬
‫‪ ‬برای سیستم های گسسته است و بدان مدل پیشامد گرا یا واقعه گرا‪Event -Oriented‬‬
‫گویند‪.‬‬
‫‪12‬‬
‫‪Prepared By Zarringhalami‬‬
Event -Oriented‫مدل‬
Do you have any event ?
Declare the time of event
And increase Clock with time of event
C>= ST
Yes
Exit
No
Process
Prepared By Zarringhalami
13
‫روشهای مدلسازی سیستم های گسسته‬
‫‪ ‬روش زمانبندی پیشامدها )‪(Event Scheduling‬‬
‫‪ ‬روش پردازش فرآیندها‬
‫‪ ‬روش کاوش در فعالیتها‬
‫‪14‬‬
‫‪Prepared By Zarringhalami‬‬
‫روش زمانبندی پیشامدها )‪(Event Scheduling‬‬
‫‪ ‬این مدلها شامل جدولی به نام جدول زمانبندی می باشند که زمان وقوع پیشامدهای اصلی را که‬
‫در آینده به وقوع می پیوندند در آن ثبت می کنیم‪ .‬عمل پیش بینی زمان یک پیشامد و درج آن در‬
‫جداول مربوطه را اصطالحا زمانبندی پیشامدها گوییم‪.‬‬
‫‪ ‬بعد از پردازش هر پیشامد‪ ،‬این جدول جستجو شده و زمان وقوع نزدیکترین پیشامد آتی تعیین‬
‫می گردد‪.‬‬
‫‪ ‬آنگاه مقدار ‪ Clock‬از زمان فعلی به این زمان تعیین شده افزایش داده می شود یعنی یک گام‬
‫زمانی به گونه ای برداشته می شود که در پایان آن حداقل یک پیشامد رخ داده باشد‪.‬‬
‫‪ ‬بعد از تعیین نوع پیشامد‪ ،‬عملیات الزم برای پردازش آن صورت میگیرد تا زمانی که مقدار ساعت‬
‫شبیه سازی از مدت شبیه سازی بیشتر گردد که در این موقع شبیه سازی متوقف می گردد‪.‬‬
‫‪ ‬نکته‪ :‬زبانهای شبیه سازی ‪ GASP , SIMIScript‬این روش را بکار می برند‪.‬‬
‫‪15‬‬
‫‪Prepared By Zarringhalami‬‬
Prepared By Zarringhalami
16
‫سیستمهای صفی‬
‫‪ ‬سیستمهایی که در آن اشیایی وارد شده و تقاضای انجام حداقل یک خدمت‬
‫)‪ (Service‬را می کنند (اشیای موقت) و اشیای دیگری (اشیای دائم) از سیستم‬
‫وظیفه انجام سرویسهای تقاضا شده را بر عهده دارند و در صورت امکان خدمات را‬
‫بالفاصله انجام داده و یا بعلت اشتغال به امر دیگری‪ ،‬مشتریان را تازمانی که انجام‬
‫خدمات تقاضا شده میسر شود‪ ،‬منتظر نگه می دارند‪ ،‬سیستمهای صفی گویند‪.‬‬
‫‪ ‬نکته‪ :‬چگونگی یا قانون انتخاب از بین اعضای صف برای سرویس دهی دارای اهمیت‬
‫است‪ ،‬سرویس دهنده بر طبق قانونی باید یکی از منتظرین سرویس را انتخاب نماید‪.‬‬
‫مثل‪(FIFO):‬‬
‫‪17‬‬
‫‪Prepared By Zarringhalami‬‬
‫شبیه سازی سیستم های صفی‬
‫فرض ها‪:‬‬
‫ نا محدود بودن جمعیت متقاض ی( یعنی اگر یک نفر جمعیت متقاض ی را ترک کند و به صف انتظار ملحق شود یا به محل‬‫دریافت خدمت برود‪ ،‬هیچگونه تغییری در آهنگ ورود سایر متقاضیان نیازمند خدمت روی نخواهد داد‪).‬‬
‫ هر بار یک ورود و به صورت تصادفی رخ می دهد‬‫ وارد شدگان به صف قطعا خدمت می گیرند‬‫ مدت های خدمت دهی تصادفی و در قالب توزیع احتمالی تعیین می شوند‬‫ رشد انفجارآمیز صورت نمی گیرد( ورودها و خدمتدهی ها با توزیع های مدت بین دو ورود و مدت های خدمتدهی مشخص می‬‫شوند و آهنگ موثر ورود باید از ماکسیمم آهنگ خدمتدهی کمتر باشد وگرنه طول صف بطور نامحدود افزایش می یابد‪).‬‬
‫‪ -‬متقاضیان از یک خدمت دهنده یا مجرا خدمت می گیرند‪.‬‬
‫حالت سیستم ‪ :‬تعداد حاضران در سیستم و وضعیت خدمت دهنده از لحاظ مشغول بودن یا بیکار بودن است‪.‬‬
‫پیشامد‪ :‬مجموعه شرایطی که موجب تغییر لحظه ای در حالت سیستم می گردد‬
‫‪18‬‬
‫‪Prepared By Zarringhalami‬‬
‫انواع سیستم های صفی در شبیه سازی‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪19‬‬
‫یک صف و یک سرویس دهنده‬
‫چند صف و یک سرویس دهنده‬
‫یک صف و چند سرویس دهنده‬
‫چند صف و چند سرویس دهنده‬
‫‪Prepared By Zarringhalami‬‬
Queue
Prepared By Zarringhalami
Server
20
‫نوع اول‪ :‬یک صف و یک سرویس دهنده‬
‫‪ ‬مثال ‪ :‬امور مشترکین‬
‫‪21‬‬
‫‪Prepared By Zarringhalami‬‬
‫نوع دوم‪ :‬چند صف و یک سرویس دهنده‬
‫‪ ‬مثال ‪:‬صف‬
‫‪22‬‬
‫نانوایی( صف یکی ‪ ،‬دو تایی و چند تایی )‬
‫‪Prepared By Zarringhalami‬‬
‫نوع سوم‪ :‬یک صف و چند سرویس دهنده‬
‫‪ ‬مثال ‪:‬باجه های بانک‬
‫‪23‬‬
‫‪Prepared By Zarringhalami‬‬
‫نوع چهارم‪ :‬چند صف و چند سرویس دهنده‬
‫‪ ‬مثال ‪ :‬مترو‬
‫‪24‬‬
‫‪Prepared By Zarringhalami‬‬