Simulation932_CA1.pdf

‫به نام هستیبخش مهربان‬
‫‪ - ۴۳۶۰۴‬شبیهسازی کامپیوتری‬
‫ترم دوم ‪۹۰-۹۴‬‬
‫دانشکده مهندسی کامپیوتر‬
‫پروژه شماره ‪1‬‬
‫موعد تحویل‪ 11 :‬خرداد ‪۹۴‬‬
‫هدف‬
‫هدف از این پروژه‪ ،‬به دست آوردن توزیع یک فرآیند از طریق جمعآوری داده است‪ .‬این پروژه باید در گروههای دونفره انجام گیرد‪.‬‬
‫هر گروه روی یکی از پروژههای شماره ‪ ۳‬تا ‪ ۴‬کار می کند‪ .‬شماره پروژه انتخابی هر گروه برابر است با باقیمانده مجموع رقم سمت‬
‫راست شماره دانشجویی اعضای گروه بر عدد ‪ .1‬برای مثال‪ ،‬اگر شخص ‪ x‬به شماره دانشجویی ‪ *******4‬و شخص ‪ y‬به مشاره‬
‫دانشجویی ‪ *******8‬با هم همگروه باشند‪ ،‬باید روی فرآیند شماره ‪ 2‬کار کنند!!‬
‫‪ .۳‬زمان سرویس آسانسور از همکف‬
‫‪ o‬زمان رسیدن از همکف به یک طبقهی رندوم که احتمال انتخاب طبقهها برابر است‪.‬‬
‫‪ .1‬زمان بین ورود به صف آسانسور در همکف‬
‫‪ .2‬زمان سرویس آسانسور به همکف‬
‫‪ o‬زمان رسیدن از یک طبقه رندوم به همکف که احتمال شروع از همه طبقات یکسان است‪.‬‬
‫‪ .۰‬زمان بین ورودها به سایت کارشناسی‬
‫‪ .۴‬زمان استفاده از سیستمهای سایت کارشناسی‬
‫برای انجام این پروژه مراحل زیر را به ترتیب دنبال کنید و در هر قسمت به سواالت مربوط در قالب یک مستند پاسخ دهید‪.‬‬
‫جمع آوری داده‬
‫اولین مرحله‪ ،‬جمعآوری داده است‪ .‬اگر دادههایی که در این مرحله جمعآوری میکنید‪ ،‬دارای دقت کافی باشند‪ ،‬در مراحل بعد با‬
‫مشکل مواجه نخواهید شد‪ .‬برای این کار‪ ،‬بهتر است جمع آوری داده خود را محدود به یک روز و ساعت مشخص نکنید‪ .‬بلکه در‬
‫روزهای مختلف هفته و در بازههای زمانی متفاوت‪ ،‬این کار را انجام دهید‪.‬‬
‫خروجی‬
‫‪ ‬دادههایی را که در این مرحله جمعآوری کردهاید‪ ،‬بر حسب واحد ثانیه بنویسید و در یک فایل با نام ”‪ “Data.csv‬ذخیره‬
‫کنید‪.‬‬
‫‪ ‬در مورد نحوهی جمعآوری داده (چند روز‪ ،‬چه ساعاتی و ‪ )...‬توضیحاتی را در مستند بیاورید‪.‬‬
‫نوع توزیع‬
‫در این مرحله‪ ،‬دو نوع توزیع برای دادههایی که جمع آوری کردهاید‪ ،‬انتخاب کنید‪ .‬برای انتخاب خود‪ ،‬از ابزارهایی که در درس به آن‬
‫اشاره شده است‪ ،‬استفاده کنید‪.‬‬
‫خروجی‬
‫‪ ‬توزیعهایی را که انتخاب کردهاید به همراه دلیل انتخاب هر یک از آنها در مستند بیاورید‪.‬‬
‫‪ ‬نمودار تابع هیستوگرام و تابع توزیع ‪ fit‬شده بر روی آن را برای هر یک از دو نوع توزیع انتخاب شده رسم کنید و در‬
‫مستند بیاورید‪.‬‬
‫راهنمایی!‬
‫برای این کار میتوانید‪ ،‬با استفاده از توابع ‪ fitdist‬و ‪ histfit‬نرمافزار متلب تابع توزیع مناسبی را بر روی مجموعه اعداد خود ‪fit‬‬
‫کنید‪ .‬دقت کنید که برخی توابع توزیع با اعداد صحیح کار میکنند‪ ،‬این در حالی که اعداد شما ممکن است اعشاری باشد‪ .‬میتوانید‬
‫به صورت تقریبی اعدادتان را در هزار ضرب کنید و حاصل را به عدد صحیح تبدیل کنید‪.‬‬
‫تخمین پارامتر‬
‫در این قسمت‪ ،‬باید پارامترهای مربوط به هر یک از توزیعهای انتخاب شده در مرحله قبل را محاسبه کنید‪ .‬برای این کار‪ ،‬از نرمافزار‬
‫متلب استفاده کنید‪ .‬ابتدا لیست مقادیر زمان را از فایل ‪ Data.csv‬بخوانید و در متلب به صورت آرایه در یک متغیر قرار دهید‪.‬‬
‫سپس پارامترهای مورد نظر خود را با استفاده از این مقادیر محاسبه کنید‪.‬‬
‫خروجی‬
‫‪ ‬کد متلب استفاده شده در این بخش‬
‫‪ ‬مقادیر محاسبه شده با استفاده از کد متلب به همراه توضیحاتی در مورد چگونگی محاسبه آنها را در مستند بیاورید‪.‬‬
‫راهنمایی!‬
‫میتوانید از توابع زیر در متلب کمک بگیرید ‪:‬‬
‫‪ : fopen‬این تابع یک فایل باز میکند و اشارهگری به آن برمیگرداند‪.‬‬
‫‪ : fclose‬فایلی که قبال باز شده است را میبندد‪.‬‬
‫‪ : textscan‬توسط این تابع می توانید محتوای فایل را به صورت آرایه در اختیار داشته باشید‪ ،‬به مثال زیر دقت کنید‪.‬‬
‫)'‪fileId = fopen('Data.csv‬‬
‫)'‪C = textscan(fileId, '%f‬‬
‫)‪fclose(fileID‬‬
‫;}‪a = C{1‬‬
‫سنجش میزان دقت‬
‫در این قسمت‪ ،‬شما باید میزان ‪ fit‬شدن توزیعهایی را که انتخاب کردهاید‪ ،‬با استفاده از هر دو نوع تست زیر با درجه اهمیت ‪0.1‬‬
‫مورد بررسی قرار دهید‪ .‬برای این قسمت نیز از نرمافزار متلب استفاده کنید‪.‬‬
‫‪ ‬تست ‪Chi-Square‬‬
‫‪ ‬تست ‪Kolmogorov-Smirnov‬‬
‫همچنین‪ ،‬مقدار ‪ p value‬را برای هر یک از دو توزیع انتخاب شده با استفاده از نرمافزار متلب محاسبه کنید‪.‬‬
‫نکته ‪ :‬دو تست ‪ Chi-Square‬و ‪ Kolmogorov-Smirnov‬هر دو باید در متلب پیادهسازی شوند و از توابع خود متلب استفاده‬
‫نکنید‪ .‬برای محاسبه مقادیر ‪ p value‬میتوانید از توابع یا ابزارهای متلب استفاده کنید و پیادهسازی آن نمره اضافی دارد‪.‬‬
‫خروجی‬
‫‪ ‬کد متلب استفاده شده در این بخش‬
‫‪ ‬نتایج و مقادیر محاسبه شده با استفاده از کد متلب به همراه توضیحاتی در مورد چگونگی محاسبه آنها را در مستند‬
‫بیاورید‪.‬‬
‫‪ ‬نتایج هر یک از سه تست باال را تحلیل کنید‪ .‬اختالف بین توزیع حدس زده شده و دادههای جمعآوری شده در کجا‬
‫بیشتر دیده میشود؟‬
‫نکات پایانی‬
‫‪ ‬پروژه باید در گروه های دو نفره انجام گیرد‪ .‬اگر در یافتن همگروهی دچار مشکل شدید‪ ،‬حداکثر تا تاریخ ‪ 2‬خرداد‪ ،‬از طریق‬
‫ایمیل اطالع دهید‪.‬‬
‫‪ ‬پروژههای خود را به آدرس ایمیل ‪ [email protected]‬ارسال نمایید‪.‬‬
‫‪ o‬در عنوان ایمیل عبارت ]‪ ce643-CA1-[#Student1-ID]-[#Student2_ID‬را قرار دهید‬
‫‪ o‬تنها یک فایل ‪ .zip/.rar‬با نام ]‪ ce643-CA1-[#Student1-ID]-[#Student2_ID‬ضمیمه نمایید‪.‬‬
‫‪ ‬پروژههای ارسالی باید شامل دادههای جمع آوری شده در قالب ‪ ،csv‬کدهای استفاده شده و پاسخ سوالها در قالب یک‬
‫مستند باشد‪.‬‬
‫‪ o‬کدهای استفاده شده در بخشهای مختلف میتوانند همه در قالب یک فایل ارائه شوند‪.‬‬
‫‪ o‬خوانایی مستند ارائه شده و کد بخشی از نمره شما را تشکیل میدهند‪.‬‬
‫‪ ‬این پروژه تحویل حضوری ندارد‪ ،‬در نتیجه مستندی که ارائه میدهید باید روند کار را تشریح کند و به سواالت پاسخ دهد‪.‬‬
‫‪ ‬حداکثر تأخیر مجاز ‪ ۴‬روز و به ازای هر روز دیرکرد ‪ 21‬درصد از نمرهی پروژه کسر میگردد‪.‬‬
‫موفق باشید ‪‬‬