برای دانلود خلاصه آموزش شبیه سازی کامپیوتری لطفا ایمیل خود را وارد کنید تا این آموزش برای شما ارسال شود. این آموزش شامل فیلم، جزوه، پادکست و فایل ارایه است.
درس 22: شبیه سازی کامپیوتری
تهیه شده توسط گروه بهینه یاب
مقدمه
شبیهسازی تقلیدی از عملکرد فرایند یا سیستم واقعی با گذشت زمان است. شبیهسازی، صرفه نظر از این که با دست یا به وسیله کامپیوتر انجام میشود، به ایجاد ساختگی تاریخچه سیستم، و بررسی آن به منظور دستیابی به نتیجه گیریهایی در مورد ویژگیهای عملکرد سیستم واقعی مربوط میشود.
همچنانکه یک سیستم با گذشت زمان تغییر میکند، میتوان رفتار آن با ایجاد مدل شبیهسازی بررسی کرد. این مدل معمولا به شکل مجموعه ای از فرضهای مربوط به عملکرد سیستم است. با ایجاد و معتبرسازی مدل، میتوان آن را برای یافتن پرسش “چه میشود اگر” در مورد سیستم واقعی به کار برد.
در برخی موارد میتوان مدلی چنان ساده ایجاد کرد که به راحتی تماماً با روشهای ریاضی حل شود. چنین راه حلهایی را میتوان با استفاده از روشهای ریاضی بدست آورد. این راه حلها معمولا چند پارامتر عددی را در بر میگیرد که همان معیارهای سنجش عملکرد سیستم هستند. اما بسیاری از سیستمهای واقعی چنان پیچیده هستند که حل مدلهای ریاضی در عمل ناممکن است. در این گونه موارد میتوان از شبیهسازی کامپیوتری استفاده کرد.
شبیهسازی چه وقت ابزار مناسبی شمرده میشود
در دسترس بودن زبانهای برنامه نویسی ویژه شبیهسازی، تواناییهای محاسباتی گسترده با هزینه ی کم و پیشرفتهایی چشم گیر اخیر در روشهای شبیهسازی، این مبحث را به صورت یکی از رایج ترین و پذیرفته ترین ابزار تحلیل سیستمها در آورده است. شبیهسازی بررسی و آزمایش رابطههای متقابل هر سیستم یا زیر سیستم پیچیده را میسر می کند. از جمله کاربردهای شبیهسازی می توان به موارد زیر اشاره کرد.
1 – به وسیله شبیهسازی، بررسی و آزمایش رابطههای متقابل هر سیستم یا زیر سیستم پیچیده میسر خواهد بود.
2 – تغییرات اطلاعاتی، سازمانی و محیطی را میتوان شبیهسازی کرد و به مشاهده تاثیر این تغییرات بر رفتار مدل پرداخت.
3 – با طراحی مدل شبیهسازی، می توان در زمان پیشنهاد انجام اصلاحات در سیستم تصمیم خوبی گرفت.
4 – با ایجاد تغییر در ورودیهای شبیهسازی و بررسی خروجیها میتوان شناخت ارزشمندی در مورد چگونگی رابطه متقابل آنها بدست آورد.
5 – شبیهسازی را میتوان به منظور تحقیق و بررسی پاسخهای مدل های تحلیل یا ریاضی مورد استفاده قرار داد تا از نتیجه و اثر واقعی جواب های بدست آمده از مدل های تحلیل مطلع شد.
مزایا و معایب شبیهسازی
تحلیلگر باید قبل از استفاده از شبیهسازی، از مزایا و معایب آن مطلع باشد. از جمله مزایای شبیهسازی میتوان به موارد زیر اشاره کرد:
1 – میتوان از مدل شبیهسازی برای تحلیل طرحهای پیشنهادی استفاده کرد و دیگر نیاز به پیاده سازی طرحهای پیشنهادی در سیستم واقعی برای بررسی طرح ها نیست.
2 – معمولا دستیابی به دادههای شبیهسازی بسیار کم هزینه تر از فراهم آوردن دادههای مربوط به سیستم واقعی است.
3 – به کار بردن روشهای شبیهسازی معمولا آسانتر از روشهای تحلیل است. بنابراین، شمار استفاده کنندگان بالقوه روشهای شبیهسازی بسیار بیشتر از روشهای تحلیلی است.
4 – در حالی که معمولا مدلهای تحلیلی به فرضهای ساده کننده متعددی نیاز دارند تا از لحاظ ریاضی کاربرد پذیر شوند، مدلهای شبیهسازی چنین محدودیتهایی ندارد. با استفاده از مدلهای تحلیلی، معمولا تنها تعداد محدودی از معیارهای سنجش عملکرد سیستم را می توان محاسبه کند، در صورتی که دادههای تولید شده از مدلهای شبیهسازی به منظور برآورد هر معیار سنجش متصور عملکرد سیستم کاربرد پذیر است.
از معایب روشهای شبیهسازی میتوان به موارد زیر اشاره کرد:
1 – معمولا، به اجراهای فراوانی در مورد هر مدل شبیهسازی نیازمندیم و همین مساله ممکن است به هزینههای محاسباتی زیاد منجر شود.
2 – در مواردی که روشهای تحلیلی کافی به نظر میرسد استفاده از روشهای شبیهسازی منجر به فراموشی روشهای ریاضی میشود.
زمینههای کاربرد مدلهای شبیهسازی
شبیه سازی کاربردهای بسیار گسترده ای دارد که میتوان به موارد زیر اشاره میکند:
1 – شبیهسازی عملیات در فرودگاههای بزرگ توسط شرکتهای هواپیمایی به منظور آزمودن تغییرات خطی مشیها و عملکرد مانند ظرفیت نگهداری و تعمیر ادوات فرودگاه، و امکانات سوار و پیاده کردن مسافر.
2 – شبیهسازی عبور و مرور وسایل حملونقل از تقاطع های چراغدار با زمان بندی مشخص به منظور تعیین بهترین زمان بندی
3 – شبیهسازی عملیات نگهداری و تعمیر به منظور تعیین شمار بهینه افراد گروههای عملیاتی
4 – شبیهسازی اقتصاد کشور به منظور پیش بینی تاثیر تصمیمات مربوط به خط مشی اقتصادی
5 – شبیهسازی سیستم ارتباطات تلفنی به منظور تعیین ظرفیت اجزای مورد نظر به منظور بیشینه سازی رضایت بخشی مردم
6 – شبیهسازی عملیات خط تولید به منظور تعیین مقدار فضای لازم برای انبار کردن مواد در دست تولید
سیستمها و پیرامون
برای مدلسازی سیستم، درک مفهوم سیستم و مرز سیستم لازم است. سیستم به منزله گروهی از اشیا تعریف میکنند که در راستای تحقق هدفی معین در چارچوب رابطه یا وابستگی منظم و به هم پیوسته باشند. مثالی از سیستم عبارت از سیستم تولیدی ساخت خودرو است. ماشینها، قطعات و کارگران با هم در امتداد خط مونتاژ کار میکنند تا وسیله نقلیه ای با کیفیت بالا تولید کنند.
هر سیستم اغلب تحت تاثیر تغییراتی قرار میگیرد که در خارج از سیستم روی میدهند. گفته میشود که چنین تغییراتی در پیرامون سیستم روی میدهند. در سیستمها لازم است که مرز بین سیستم و پیرامون آن تعیین شود. چگونگی تعیین این مرز ممکن است به مقصود از مطالعه سیستم بستگی داشته باشد. برای مثال در مورد سیستم کارخانه، عوامل کنترل کننده ورود سفارشها را خارج از اختیار کارخانه به شمار اید و خط تولید یک کارخانه در سیستم جای می گیرد.
اجزای سیستم
به منظور درک و تحلیل سیستم، چند واژه را تعریف میکنیم:
نهاد یا Entity، عنصری یا شی مورد توجه در سیستم است. خصیصه یا Attribute ویژگی نهاد است. فعالیت یا Activity بیانگر دوره ای زمانی با طول مشخص است. در مورد یک سیستم بانکی، مشتریان را میتوان نهاد دانست. موجود حسابها جاری آنها را خصیصه و سپرده گذاری را فعالیت به حساب آورد.
مجموعه متغیرهای لازم برای تشریح سیستم در هر زمان، با توجه به اهداف بررسی را متغیرهای حالت سیستم یا State variables تعریف میکنیم. در مثال بانک، متغیرهای حالت عبارت اند: تعداد تحویل داران مشغول کار، تعداد مشتریان منتظر در صف یا تعداد مشتریان در حال خدمت گیری و زمان ورود مشتری بعدی. پیشامد یا Event را رویدادی لحظه ای تعریف میکنیم که بتواند حالت سیستم را تغییر دهد. واژه درون زا یا Internal به منظور تشریح فعالیتها و پیشامدهای که در درون سیستم رخ میدهد و واژه برون زا یا External به منظورت تشریح فعالیتها و پیشامدهای پیرامونی که سیستم را تحت تاثیر قرار میدهند بکار میرود. در مثال بانک، ورود یک مشتری پیشامد برون زا و خدمت دهی به هر مشتری، پیشامدی درون زا است. در جدول زیر نمونه ای از نهاد، خصیصه، فعالیت، پیشامد و متغیرهای حالت در چند مسئله ارایه شده است.
سیستمهای گسسته و پیوسته
سیستمها را میتوان در دو رده گسسته یا Discrete و پیوسته یا Continuous جا داد. سیستم گسسته، سیستمی است که متغیرهای حالت در آن تنها در نقاط گسسته زمان تغییر کند. بانک، مثالی در مورد سیستم گسسته است زیر متغیر حالت تعداد مشتری حاضر در بانک، تنها وقتی تغییر میکند که یک مشتری وارد یا خدمت دهی به یک مشتری کامل شود. در شکل زیر نمایش متغیر حالت (تعداد مشتری منتظر در صف یا درحال خدمت گیری) در طول زمان را نشان میدهد.
سیستم پیوسته، سیستمی است که متغیر(های) حالت در آن به صورت پیوسته در طول زمان تغییر کند. برای مثال، میزان آب پشت سد است. در جریان بارش هر رگبار و تا مدتی پس از آن، آب در دریاچه پشت سد جریان مییابد. از سوی دیگر، به منظور مهار سیلاب و تولید برق، آب سد تخلیه میشود و تبخیر نیز سطح آب را کاهش میدهد.
گامهای اساسی در بررسی مبتنی بر شبیهسازی
گامهای اساسی بررسی مبتنی بر شبیهسازی به شرح زیر است:
1 – صورت بندی مسئله: هر بررسی مبتنی بر شبیهسازی را باید با صورت بندی مسئله شروع کرد و تحلیلگر از درک درست درباره مسئله اطمینان حاصل کند.
2 – تعیین اهداف و طرح کلی پروژه: اهداف شبیهسازی پرسشهایی را مطرح می کند که باید پاسخ آنها را با استفاده از شبیهسازی بدست آورد.
3 – مدلسازی: ساختن مدل سیستم را کاری هنری و علمی میشناسند. مناسب ترین شیوه مدل سازی، آغاز کار با مدل ساده و پیچیده کردن تدریجی آن است. توصیه میشود که استفاده کننده از مدل در ساختن مدل حضور یابد. شرکت دادن استفاده کننده از مدل در این کار، هم کیفیت مدل بدست آمده را بالا میبرد و هم بر اطمینان خاطر استفاده کننده از مدل در عمل را افزایش می دهد.
4 – گردآوری دادهها: بین ساختن مدل و گرد آوری دادههای ورودی مورد نیاز، رابطه متقابل مداومی وجود دارد. همچنان که پیچیدگی مدل تغییر میکنند. عناصر داده ای مورد نیاز نیز تغییر میکنند. به علاوه، چون گردآوری دادهها بخش بزرگی از مجموع مدت مورد نیاز برای انجام شبیهسازی را در بر میگیرد، لازم است که ان را تا حد ممکن زود و معمولا همراه با مراحل اولیه مدل سازی آغاز کرد.
5 – برنامه نویسی: چون شبیه سازی سیستم های واقعی به مدلهایی نتیجه میشود که به مقدار زیادی ذخیره سازی و محاسبات اطلاعاتی نیاز دارند، مدل را باید به زبان رقمی برای کامپیوتر ترجمه کرد. مدل سازی باید تصمیم بگیرد که با چه زبانی نوشته شود.
6 – وارسی برنامه: وارسی مربوط به برنامه کامپیوتری آماده شده برای مدل شبیهسازی است. آیا برنامه کامپیوتری به خوبی کار میکند؟ در مورد مدلهای پیچیده، برنامه نویسی کامل مدل به طریقی موفقیت آمیز بدون غلط و خطا، امری دشوار است. وظیفه برنامه نویس این است که کنترل کند ما به ازای واقعی تمامی روابط در برنامه درست وارد شده است یا نه؟
7 – معتبرسازی مدل: معتبرسازی مدل به معنای مشخص کردن این است که آیا مدل معرف دقیقی از سیستم واقعی است یا نه؟ معتبرسازی معمولا از طریق محک زدن مدل انجام میگیرد، یعنی فرایند تکرار شونده ای که مسئول مقایسه مدل با رفتار سیستم واقعی است. در مثال بانک که در بالا آمده، دادههای مربوط به طول صف انتظار در شرایط فعلی گردآوری شد. آیا مدل شبیهسازی از عهده پیش بینی این معیار عملکرد سیستم بر میآید؟
8 – طرح آزمایشی: در هر طرح آزمایشی باید تصمیمهای در مورد طول مدت اجراهای شبیهسازی و تعداد تکرار هر اجرا اتخاذ کرد.
9 – اجراهای مدل و تحلیل نتایج: اجراهای مکرر مدل و سپس تحلیل آنها به منظور برآورد معیارهای عملکرد طرحها از سیستمی که شبیهسازی میشوند، در این بخش انجام می شود.
10 – اجراهای بیشتر: براساس اجراهای کامل شده، تحلیل گر تعیین میکند که آیا اجراهای دیگری مورد نیاز است یا نه و اگر چنین است، این اجراها از چه طرحی باید پیروی کنند.
11 – مستند سازی برنامه و گزارش نتایج: به دلایل متعددی، مستند سازی برنامه لازم است. اگر قرار باشد برنامه توسط همان تحلیلگر یا تحلیل گران دیگر باز هم مورد استفاده واقع شود، درک چگونگی کارکرد برنامه ممکن است لازم باشد.
12 – اجرا: موفقیت گام اجرا به این موضوع بستگی دارد که یازده مرحله قبلی چقدر خوب انجام شده است. موفقیت این مرحله همچنین به میزان شرکت دادن استفاده کننده نهایی مدل در تمام فرایند شبیهسازی از سوی طراح سیستم، بستگی دارد. اگر استفاده کننده از مدل به طور کامل در فرایند مدل سازی شرکت داده شده باشد و اگر ماهیت مدل و خروجیهای آن را درک کند، احتمال اجرایی شدن مدل افزایش مییابد.
در شکل زیر، مراحل اساسی در بررسی مبتنی بر روش شبیهسازی نشان داده شده است.
شبیهسازی سیستمهای صفشبیه سازی کامپیوتری
در یک سیستم صف؛ تعداد جمعیت متقاضی، چگونگی و زمان ورود و خدمت دهی، ظرفیت سیستم و نظام صف مشخص میشود. در این سیستم، جمعیت متقاضی نامحدود است یعنی اگر یک نفر از جمعیت متقاضی وارد سیستم شود و به صف انتظار ملحق شود یا به محل دریافت خدمت برود، هیچ گونه تغییری در آهنگ ورود متقاضیان دیگر نخواهد داد. به علاوه در این سیستم، ورودها هر با یکی و آن نیز به صورت تصادفی رخ میدهد و اگر واردشدگان به صف انتظار ملحق شوند، سرانجام خدمت دریافت خواهند کرد. در ضمن، زمان خدمت دهی تصادفی است و در قالب توزیع احتمالی تعیین میشوند که با گذشت زمان بدون تغییر میماند. ظرفیت سیستم نیز نامحدود است. منظور از سیستم، واحد درحال دریافت خدمت و آنهایی که در صف انتظارند را در بر میگیرد. سرانجام، متقاضیان ورود از یک نظام خدمت دهی مثلا هر کسی زودتر وارد سیستم شود زودتر خدمت دهی به آن انجام میشود، پیروی می کند.
زمان ورودی ها و زمان خدمت دهیها با توزیعهای احتمالی مدت زمان بین دو ورود و مدت زمان های خدمت دهی مشخص میشوند. به طور کلی، آهنگ ورود باید از آهنگ خدمت دهی کمتر باشد و گرنه طول صف انتظار به مرور به طور نامحدود افزایش مییابد.
حالت سیستم، تعداد حاضران در سیستم و وضعیت خدمت دهنده از لحاظ مشغول بودن یا بیکار بودن است. پیشامد مجموعه شرایطی است که موجب تغییری لحظه ای در حالت سیستم میشود. در مساله تک خدمت ده، تنها دو پیشامد ممکن است حالت سیستم را تغییر دهد. این دو پیشامد ورود یک متقاضی (پیشامد ورود) و پیشامد تکمیل خدمت دهی به یک متقاضی (پیشامد ترک) است. سیستم صف در برگیرنده خدمت دهنده، متقاضی در حال خدمت گیری و حاضران در صف است.
پیشامد ورود وقتی رخ میدهد که یک متقاضی به سیستم وارد شود. متقاضی ممکن است که خدمت دهنده را بیکار یا مشغول بیابد. بنابراین یا بر خدمت دهنده وارد میشود یا به صف خدمت دهنده ملحق میشود.
پیشامد ترک وقتی روی میدهد که خدمت دهی یک متقاضی تکمیل شود. در این صورت شبیهسازی مطابق شکل زیر ادامه مییابد.
عملیاتهای متصور به هنگام ورود یک متقاضی به سیستم به صورت جدول زیر میشود. اگر خدمت دهنده مشغول باشد، با ورود متقاضی وارد صف خدمت دهنده میشود. اگر خدمت دهنده بیکار باشد، به این معنا است که صف خالی بوده است و متقاضی وارد خدمت دهنده میشود.
شبیه سازی کامپیوتری
اینک باید دید که پیشامدهای فوق الذکر چگونه با گذشت زمان شبیهسازی رخ میدهد. در فرآیند شبیهسازی زمان با ساعتی که مشخص کننده رخ دادن پیشامدها با گذشت زمان است انجام میشود. معمولا در شبیهسازی، پیشامدها به صورت تصادفی روی میدهند. تصادفی بودن تقلیدی از زندگی واقعی است که غیرقطعی بودن را نشان میدهد. مثلا، به طور قطعی معلوم نیست که در چه زمانی مشتری بعدی برای ترک فروشگاه مواد غذایی، به صندوق فروشگاه مراجعه میکند، یا به طور قطع معلوم نیست چقدر طول میکشد تا کارمند باجه بانک، ثبت یک نقل و انتقال مالی را به اتمام برساند.
معرفی عامل تصادف برای تقلید زندگی واقعی، با استفاده از اعداد تصادفی میسر است. اعداد تصادفی به طور یکنواخت و مستقل در بازه صفر تا یک توزیع میشود. اعداد تصادفی را میتوان تولید کرد که در درس 25 به طور مفصل به آن خواهیم پرداخت.
در مسئله تک مجرایی صف (یا مسئله صف با یک خدمت دهنده)، مدتها بین دو ورود و مدتهای خدمت دهی براساس اعداد تصادفی تعیین میشود. فرض کنید که مدتهای بین ورودها با پنج بار ریختن یک تاس عادل و ثبت عدد وجه بالایی نمایان شده است تولید میشود. جدول زیر مجموعه پنج مدت بین ورود تولید شده به این ترتیب را نشان میدهد. از این پنج مدت بین دو ورود برای محاسبه زمانهای ورود شش مشتری به سیستم صف استفاده شده است. فرض بر آن است که اولین مشتری در زمان صفر وارد میشود.
مدت زمان مورد نیاز دیگر، مدت زمان خدمت دهی است. تنها مقادیر ممکن خدمت دهی، یک، دو، سه و چهار واحد زمانی است. با پذیرش این فرض که این مقادیر چهارگانه دارای احتمال رخداد یکسان هستند، این مقادیر بدین صورت قابل تولید هستند که اعداد یک تا چهار را بر روی 4 مهره بنویسیم و در داخل کلاه بیاندازیم و هر بار یکی را بیرون بیاورد و بعد از دیدن عدد روی مهره آن را دوباره در داخل کلاه بگذاریم. در جدول زیر نتایج این فرآیند برای 6 مشتری آورده شده است.
شبیه سازی کامپیوتری
در جدول زیر براساس ساعت شبیهسازی، نحوه ورود به سیستم برای خدمت دهی آورده شده است. در ستون اول، شماره مشتری مشخص میشود. در ستونهای دوم و سوم به ترتیب زمانهای ورود و زمان خدمت دهی مشخص میشود که براساس اعداد تصادفی تعیین شده است. زمان شروع خدمت دهی و زمان پایان خدمت دهی در ستونهای چهارم و پنجم گزارش شده است.
در جدول فوق ترتیب ورودی مشتریان مشخص نشده است. در جدول زیر ترتیب زمانی پیشامد ها و ساعت هر یک از آنها آورده شده است.
نمایش گرافیکی جدول فوق به صورت زیر میشود. در شکل زیر تعداد مشتریهای حاضر در سیستم را در زمانهای مختلف شبیهسازی را نشان میدهد.
شبیه سازی کامپیوتری