تعریف شبیه سازی :از شبیهسازی تعاریف زیادی ارائه شده است اما جامعترین و کاملترین تعریف را شانون ارائه داده است .شانون شبیه سازی را چنین تعریف میکند «شبیه سازی عبارت از فرایند طراحی مدلی از سیستم واقعیوانجام آزمایشهایی با این مدل است که با هدف پیبردن به رفتار سیستم ، یا ارزیابی استراتژیهای گوناگون (درمحدودهای که به وسیله معیار و یا مجموعهای از معیارها اعمال شده است) برای عملیات سیستم ، صورتمیگیرد.» بنابراین در مییابیم که فرایند شبیه سازی، هم شامل ساختن مدل و هم شامل استفاده تحلیلی از آنبرای مطالعة یک مسئله است . در تعریف فوق، سیستم واقعی به معنای سیستمی که وجود دارد یا قابلیتایجاد شدن را دارد ، بکار رفته است . قبل از پرداختن به مسائل دیگر شاید بهتر باشد که برای تشریح مفهومشبیه سازی به مثال سادهای توجه کنیم . سیستم باجه پرداخت پول یک بانک را در نظر بگیرد . فرض کنید کهیک نفر در قسمت پرداخت پول کار میکند . و همچنین فرض کنید که زمان بین ورود مشتریان روی 1 تا 10دقیقه بطور یکنواخت توزیع شده باشد (برای سادگی ، اندازة تمام زمانها را به نزدیکترین عدد صحیح گردمیکنیم). همچنین فرض کنید که زمان لازم برای خدمت به هر مشتری روی 1 تا 6 دقیقه به طور یکنواختتوزیع شده است . میخواهیم متوسط مدت زمانی را که مشتری در سیستم صرف میکند، اعم از زمان انتظارمشتری و زمان خدمت و درصد مدت زمانی را که صندوقدار مشغول به کار نیست محاسبه کنیم . برای شبیهسازی کردن این سیستم نیاز داریم آزمایشی ساختگی که معرف وضعیت بالا باشد ، بوجود آوریم . بدینمنظور باید روشی برای تولید مراجعة ساختگی گروهی از مشتریان و زمان لازم برای خدمت به هر یک از آنهارا ایجاد کنیم . در یکی از روشهایی که میتواند مورد استفاده قرار گیرد کار را با 10 مهره و یک تاس آغازمیکنیم . سپس مهره ها را از یک تا ده شماره گذاری کرده ، آنها را داخل ظرفی میگذاریم و با تکان دادن ظرفآنها را قاطی میکنیم . با استخراج یک مهره از داخل ظرف و خواندن عدد روی آن میتوان زمان بین ورودیمشتری فعلی و قبلی را مشخص کرد. زمان خدمت به این مشتری را نیز میتوان با پرتاب تاس و خواندن تعدادنقطههای روی وجه فوقانی آن به دست آورد . با تکرار این عملیات (با جایگذاری مهره ها در داخل ظرف وتکان دادن آن بعد از هر بار استخراج) ما ورود و زمانهای خدمت یک گروه از مشتریان فرضی را تولید کردهایم .جدول زیر نشان میدهد که نمونهای با 15 مشتری چه شکلی خواهد داشت .
مشتری مدت زمان بین دو ورود مدت زمان زمان ورود زمان شروع خدمت زمان پایان خدمت مدت زمان انتظار زمان تلف شده
متوالی (به دقیقه) خدمت (به دقیقه) (به دقیقه) (به دقیقه) مشتری صندوقدار
1 ــ 1 00: 00: 01: 1 0
2 3 4 03: 03: 07: 4 2
3 7 4 10: 10: 14: 4 3
4 3 2 13: 14: 16: 3 0
5 9 1 22: 22: 23: 1 6
6 10 5 32: 32: 37: 5 9
7 6 4 38: 38: 42: 4 1
8 8 6 46: 46: 52: 6 4
9 8 1 54: 54: 55: 1 2
10 8 3 02:1 02:1 05:1 3 7
11 7 5 09:1 09:1 14:1 5 4
12 3 5 12:1 14:1 19:1 7 0
13 8 3 20:1 20:1 23:1 3 1
14 4 6 24:1 24:1 30:1 6 1
15 4 1 28:1 30:1 31:1 3 0
جمع 56 41
دقیقه 73/3 = 5615 = متوسط مدت زمان انتظار مشتری
45/0 = 100 * 4191 = درصد وقت تلف شده صندوقدار
توجه کنید که 91 کل زمانی است که سیستم شبیه سازی شده است . چون زمان پایان خدمت آخرین مشتریدر ساعت یک و 31 دقیقه خاتمه یافته است پس کل زمانی که سیستم شبیه سازی شده 91=31+60 دقیقهمیباشد .
مسلماً برای اینکه مثال بالا از لحاظ آماری معنی دار باشد مجبوریم از نمونهای با حجم بزرگتر استفادهکنیم. لازم به تذکر است که در این مثال چندین مطلب مهم از قبیل شرایط شروع ، که بعداً مورد بحث قرارخواهد گرفت ، نادیده گرفته شده است . نکته مهم در اینجا این است که با استفاده از دو وسیله برای تولیداعداد تصادفی (مهرههای شماره گذاری شده و تاس) آزمایش ساختگی (شبیه سازی شده) برای سیستمی کهبتوانیم بعضی از مشخصات رفتاری آن را مورد بررسی قرار دهیم ایجاد کردهایم .
چه موقع از شبیه سازی استفاده کنیم .
مسئله یا مسائل مورد نظر در بررسی یکی سیستم اغلب روش بررسی و حل آنرا تعیین میکنند . روشهایتحلیل ریاضی هر جا که ممکن باشد، مطلوب ترین و دقیق ترین روشها برای مطالعه سیستمها میباشند، زیرااین روشها معمولاً با کمترین کوشش، جوابها یا نتایجی را تولید میکنند که برای مقادیر مختلف پارامترهایمدل قابل محاسبه بوده و میزان دقت آنها صد درصد میباشد . اما جائیکه روشهای تحلیلی ، بعلت پیچیدگیمدلها یا نیاز به تولید واقعی تر رفتار سیستم غیر عملی است ، روشهای مطالعه سیستم از طریق شبیه سازیمطرح میگرد. شبیه سازی به عنوان آزمایش کردن با مدل یک سیستم واقعی تعریف میشود. یک مسئلهآزمایشی، موقعی پدید میآید که به اطلاعات بخصوصی دربارة یک سیستم نیاز بوده و آنها را از منابع موجودنتوان تهیه کرد . آزمایش کردن روی سیستم واقعی، مشکلات زیادی را که در تطبیق دادن مناسب مدل باشرایطی واقعی وجود دارد از بین میبرد . شانون در کتاب خود به نقل از بریش معایب آزمایش مستقیم راچنین بیان میکند:
1 ـ میتوانند عملیات سازمان را مختل کنند .
2 ـ اگر مردم جزء جدا نشدنی سیستم باشند، نتایج حاصل ممکن است متأثر از «اثر هاثورن» باشند ، یعنیمردم به علت تحت نظر بودن ، ممکن است رفتارشان را تغییر دهند .
3 ـ ممکن است یکسان نگهداشتن شرایط عمل برای هر بار تکرار یا اجرای آزمایش بسیار مشکل باشد .
4 ـ بهدست آوردن حجم نمونهای یکسان (و در نتیجه معنی دار بودن آماری) ممکن است به زمان و هزینةزیادی نیاز داشته باشد .
5 ـ ممکن است که آزمایش کردن در جهان واقعی امکان کاوش بسیاری از گزینهها را به دست ندهد .
شانون خاطر نشان میسازد که در صورت وجود یک یا چند شرط از شرایط زیر ، تحلیلگر میتواند از شبیهسازی استفاده کند:
1 ـ تدوین ریاضی کاملی از مسئله وجود نداشته ، یا برای حل مدل ریاضی هنوز روشهای تحلیل به وجودنیامده باشد .
2 ـ روشهای تحلیلی وجود داشته اما شیوههای ریاضی آنقدر پیچیده و سخت باشند که شبیه سازی ، روشیسادهتر برای حل مسئله به حساب آید .
3 ـ راهحلهای ریاضی وجود داشته ، یا به دست آوردن آنها امکان پذیر بوده ، اما انجام آن خارج از توان ریاضیافراد دستاندر کار باشد . در این صورت باید هزینة طراحی، آزمایش و اجرای شبیه سازی ، در مقابل هزینهبدست آوردن کمک از خارج سازمان ارزیابی شود .
4 ـ علاوه بر برآورد بعضی از پارامترهای خاص ، مشاهدة گذشته در طول دورهای از زمان مطلوب باشد .
5 ـ ممکن است به علت مشکلات موجود در انجام آزمایشها و مشاهده پدیده ها در محیط واقعی آنها، شبیهسازی تنها را ه ممکن باشد . ایجاد یک سازمان جدید مثالی از این حالت است .
6 ـ تراکم زمان برای سیستمها یا فرایندهایی که دارای چارچوب زمانی بلند مدت هستند مورد نیاز باشد . درشبیه سازی، کنترل کاملی روی زمان وجود دارد ، زیرا سرعت یک پدیده را میتوان به دلخواه کم و زیاد کرد .
انواع شبیه سازیفرمهای مختلفی از شبیه سازی وجود دارد که اینجا برخی از آنها را یادآور میشویم :
1 ـ شبیه سازی همانی : مدلها از نظر شباهت به سیستم واقعی، در یک حوزه وسیع قرار دارند . در منتهاالیه اینحوزه میتوان خود سیستم را بعنوان مدل آن در نظر گرفت و رفتار آنرا بررسی نمود . این روش را شبیه سازیهمانی نامند. به عبارت دیگر این روش همان آزمایش مستقیم روی سیستم است که گرچه ساده بنظر میرسدو در صورت یافتن پاسخی برای مسئله مورد نظر، صد در صد قابل استفاده و مفید میباشد ولی دارای معایبزیادی هم میباشد که در قسمت های قبل ذکر گردید .
2 ـ شبیه سازی نیمه همانی : همانطور که از نام این روش بر میآید ، در مطالعه سیستم سعی میگردد تا آنجا کهامکان دارد از اشیاء و قوانین واقعی سیستم استفاده گردد تنها اشیاء یا مراحلی از سیستم واقعی که باعث غیرممکن شدن شبیه سازی همانی است ، مدلسازی میگردد . بعبارت دیگر بخشی از مدل سیستم، واقعی وبخش دیگر غیر واقعی یا شبیه سازی شده است . بعنوان مثال مانورهای نظامی که در آن سربازان ، افسران وسلاحها واقعی بوده ولی خرابی یا کشتاری صورت نمیگیرد . و محل عمل ، محل واقعی حمله یا دفاعنمیباشد . هرچند این روش عملی تر از شبیه سازی همانی است ولی معایب آنرا کم و بیش دارد .
3 ـ شبیه سازی آزمایشگاهی : در این روش بعضی از نماها و اشیاء سیستم واقعی بوسیله امکاناتآزمایشگاهی ساخته شده و بعضی نماها و روابط دیگر به وسیله سمبلها جایگزین میگردند .
4 ـ شبیه سازی کامپیوتری: در شبیه سازی کامپیوتری، مدلی که از سیستم تحت بررسی ساخته میشود یکبرنامه کامپیوتری است یعنی کلیه اشیاء ها و نماهای سیستم به ساختارهای برنامهای و کلیه مشخصات و رفتارآنها به متغیرها و توابع ریاضی تبدیل میگردد . قوانین و روابط حاکم بر سیستم و ارتباطشان با یکدیگر دربرنامه در نظر گرفته میشود . شبیه سازی کامپیوتری به علت عملی بودن و دارا بودن امتیازهای خاص خودبرای بررسی و مطالعه اغلب سیستمها از قبیل حمل و نقل ، بیمارستان ، سیستمهای صنعتی ، تولیدی ،ترافیک ، انبار و غیره بکار میرود . منظور ما نیز از شبیه سازی، شبیه سازی کامپیوتری است .
فرایند شبیه سازیمراحل بررسی و مطالعه یک سیستم بوسیله فلوچارت صفحه بعد مشخص گردیده است. هر یک از مراحلمذکور قدمهای اساسیای هستند که احتیاج به توضیح بیشتری دارند . از طرف دیگر مراحل تعین شدهفلوچارت جنبه کلی داشته و در برگیرنده همه انواع بررسی هایی است که شامل یک مدل میباشند ، درحالیکه هدف ما در این جا مطالعه روش شبیه سازی کامپیوتری است . لذا مراحل مذکور در ادامه بحثبصورت دقیقتر توضیح داده میشود.
شاید تصور شود که آزمایش شبیه سازی تنها شامل شناخت سیستم و ساختن مدل کامپیوتری آن میباشد،و بهمین علت در بعضی دورههای آموزشی تنها به جنبه های برنامهای و زبانهای خاص شبیه سازی توجهمیشود. در صورتیکه ساختن مدل سیستم بوسیله یک زبان کامپیوتری تنها یکی از قدمهای لازم است . اهمیتاین مطلب ، بخصوص وقتی زیادتر میگردد که آزمایش جنبه آموزشی نداشته و نتایج آن باید در موردیکسیستم واقعی بکار گرفته شود. در آنجاست که باید تا حد ممکن مطمئن بود که مدل معتبر بوده و رفتار سیستمرا بخوبی شبیه سازی میکند . علاوه بر آن ، نتایج خام بدست آمده از اجرای مدل، مورد تجزیه و تحلیل قرارگیرند تا باعث قضاوتهای دقیق تری در مورد سیستم گردد . فرایند شبیه سازی در فلوچارت صفحه بعد نشانداده شده است .