تفاوت میان نسخه‌های «شبیه‌سازی کامپیوتری»

ابرابزار
(ابرابزار)
'''شبیه‌سازی کامپیوتری'''یا '''شبیه‌سازی رایانه‌ای''' به اجرای یک [[شبیه‌سازی]] با استفاده از یک [[برنامه (رایانه)|برنامهٔ کامپیوتری]] را می‌گویند طوری که این برنامهٔ کامپیوتری مدل شبیه‌سازی را تعریف کند. شبیه‌سازی کامپیوتری بستگی به برنامهٔ کامپیوتری و مدل شبیه‌سازی‌شدهٔ آن دارد که برخی، [[داده]]‌ها را در چند دقیقه اجرا، و برخی از شبکه‌های مبتنی بر کامپیوتر تشکیل‌شده و برای ساعت‌ها داده‌ای را تحلیل می‌کنند. مقیاس وقایع شبیه‌سازی‌شده با شبیه‌سازی‌های کامپیوتری به مراتب بسیار سریع‌تر و بالاتر از شیوه‌های سنتی آن که توسط یک یا چند فرد و [[ریاضیات]] روی کاغذ انجام می‌شود، می‌باشد.
 
شبیه‌سازی کامپیوتری یک شبیه‌سازی می‌باشداست که در یک کامپیوتر واحد یا شبکه‌ای از کامپیوترها برای بازتولید رفتار یک سیستم اجرا می‌شود. شبیه‌سازی از یک مدل انتزاعی برای شبیه‌سازی سیستم استفاده می‌کند. شبیه‌سازی‌های کامپیوتری یک بخش مفید مدل سازی ریاضیاتی بسیاری از سیستم‌های طبیعی در فیزیک، نجوم فیزیک، شیمی و زیست‌شناسی، سیستم‌های انسان در اقتصاد، روانشناسی، علوم اجتماعی و مهندسی شده‌اند. شبیه‌سازی یک سیستم برای اجرای مدل سیستم نشان داده می‌شود. از آن می‌توان برای کشف و به دست آوردن دیدگاه جدید در مورد تکنولوژی جدید و برآورد عملکرد سیستم‌های بسیار پیچیده برای راه حل‌ها آنالیز استفاده کرد. / شبیه‌سازی‌های کامپیوتری از برنامه‌های کامپیوتری که چند دقیقه در گروه‌های مبتنی بر شبکه‌ای از کامپیوترها اجرا می‌شوند تا ساعت‌ها برای شبیه‌سازی‌های در حال انجام که روزها طول می‌کشند متغیر می‌باشند. مقیاس اتفاقاتی که شبیه‌سازی می‌شوند به وسیله شبیه‌سازی‌های کامپیوتری فراتر از هر مقدار ممکن رفته استرفته‌است که از مدل سازی ریاضیاتی کاغذ و قلم قدیمی استفاده می‌کند. بیش از ۱۰ سال قبل یک شبیه‌سازی جنگ میدانی یک نیروی مهاجم به گروه دیگر شامل مدل سازی ۶۶۲۳۹ تانگ، کامیون و وسایل نقلیه دیگر در زمین‌های شبیه‌سازی شده اطراف کویت با استفاده از ابرکامپیوترهای چند گانه در برنامه مدرنیزاسیون کامپیوتر عملکرد بالای DoD بود. مثال‌های دیگر شامل یک مدل یک میلیارد اتمی با تغییر شکل ماده، یک مدل ۲٫۶۴ میلیون اتمی پروتئین ساز پیچیده در تمام موجودات، یک ریبوزم در سال ۲۰۰۵، یک شبیه‌سازی کامل چرخه عمر مایکوپلاسما جنیتالیوم در ۲۰۱۲ و پروژه بلو برین در EPFL که در می ۲۰۰۵ برای ایجاد اولین شبیه‌سازی کامپیوتری مغز انسان درست در پایین سطح مولکولی آغاز شد.
 
به دلیل هزینه کامپیوتری شبیه‌سازی، آزمایشات کامپیوتری برای انجام استنتاج چنین مقادیر نا معینی استفاده می‌شوند.
 
== شبیه‌سازی در مقابل مدل ==
یک مدل کامپیوتری به [[الگوریتم|الگوریتم‌ها]]‌ها و [[معادله|معادلات]] مورد استفاده برای به دست آوردن رفتار سیستمی که مدل سازی می‌شود اطلاق می‌گردد. بالعکس یک شبیه‌سازی کامپیوتری به اجرای واقعی برنامه‌ای اطلاق می‌شود که حاوی این معادلات یا الگوریتم‌ها می‌باشد؛ بنابراین شبیه‌سازی به نتیجه اجرای یک مدل اشاره دارد. به عبارت دیگر شما یک شبیه‌سازی نمی‌سازید. بلکه شما یک مدل می‌سازید و سپس یک مدل را اجرا می‌کنید یا یک شبیه‌سازی را اجرا می‌کنید.
 
== تاریخچه ==
 
== آماده کردن داده‌ها ==
نیازهای داده‌های خارجی شبیه‌سازی‌ها و مدل‌ها به طوربه‌طور گسترده‌ای متغیر می‌باشند. برای برخی، ورودی فقط چند عدد می‌باشد در حالیکه بقیه به ترابایت‌های اطلاعات نیاز دارند. منابع ورودی نیز بسیار متغیر می‌باشند:
* سنسورها و دستگاه‌های فیزیکی دیگر متصل به مدل
* سطوح کنترل مورد استفاده برای هدایت پیشرفت شبیه‌سازی به هر نوعی
* داده‌های نا متغیر اغلب در برنامه مدل ساخته می‌شود که یا به این دلیل است که مقدار واقعاً نامتغیر است یا طراحان، مقدار را برای تمام موارد مورد نظر نامتغیر در نظر می‌گیرند.
* داده‌ها را می‌توان بعد از شبیه‌سازی وارد شبیه‌سازی کرد مثلاً با خواند یک یا چند فایل یا با خواندن داده‌ها از یک پیش پردازشگر.
* داده‌ها را می‌توان در طول اجرای شبیه‌سازی به طوربه‌طور مثال با یک شبکه سنسور فراهم کرد.
 
به دلیل این تغییر و به دلیل اینکه سیستم‌های شبیه‌سازی مختلف اجزای مشترک زیادی دارند لذا تعداد زیادی زبان شبیه‌سازی تخصصی وجود دارند. معروف‌ترین آنها سیمولا می‌باشد. اکنون زبان‌های بسیاری دیگری نیز وجود دارند. سیستم‌هایی که داده‌ها را از منابع خارجی می‌پذیرند باید از لحاظ دانستن آنچه دریافت می‌کنند بسیار هوشمند و دقیق باشند. در حالیکه برای کامپیوترها خواندن به شکل مقادیر از متن یا فایل‌هایی دو تایی آسان می‌باشد آنچه بسیار سخت‌تر است دانستن این است که دقت مقادیر چگونه می‌باشد. اغلب آنها به عنوان نوارهای خطا، یک مینیمم یا ماکزیمم انحراف از دامنه مقادیر بیان می‌شوند که در آن دامنه مقدار واقعی قرار می‌گیرد.
 
== انواع ==
مدل‌های کامپیوتری را می‌توان طبق چندین جفت مستقل خصوصیات طبقه‌بندی کرد از جمله تصادفی یا جبری، حالت یکنواخت یا پویا، پیوسته یا گسسته، شبیه‌سازی سیستم پویا به طوربه‌طور مثال سیستم‌های الکتریکی، سیستم‌های هیدرولیک یا سیستم‌های مکانیکی چند بدنه‌ای یا شبیه‌سازی پویای مسائل میدانی از قبیل شبیه‌سازی‌های CFD FEMو محلی یا توزیع شده.
 
شیوه دیگر دسته‌بندی مدل‌ها نگاه به ساختارهای داده‌های زیر بنایی می‌باشد. برای شبیه‌سازی‌های مرحله بندی شده زمانی دو طبقه عمده وجود دارند:
* شبیه‌سازی‌هایی که داده هایشانداده‌هایشان را در شبکه‌های منظم ذخیره می‌کنند و فقط به دسترسی به همسایه همجوار نیاز دارند که به آنها کدهای استنسیل گفته می‌شود. بسیاری از اپلیکیشن‌های CFDبه این دسته تعلق دارند.
* اگر نمودار اصلی یک شبکه منظم نباشد مدل به طبقه روش بدون شبکه تعلق دارد.
 
* یک شبیه‌سازی اتفاق گسسته DES اتفاقات را در زمان مدیریت می‌کند. اغلب شبیه‌سازی‌های کامپیوتری تست منطق و درخت خطا از این نوع می‌باشند. در این نوع شبیه‌سازی، شبیه‌ساز یک ردیف از اتفاقات مرتب شده به وسیله زمان شبیه‌سازی شده‌ای که باید رخ دهند حفظ می‌کند. شبیه‌ساز ردیف را می‌خواند و اتفاقات جدید را همان‌طور که هر اتفاق پردازش می‌شود تشدید می‌کند. اجرای شبیه‌سازی به موقع اهمیت ندارد. اغلب توانایی دسترسی به داده‌های تولید شده به وسیله شبیه‌سازی و کشف معایب منطقی در طرح یا توالی رخدادها مهمتر می‌باشد.
* یک شبیه‌سازی پویای پیوسته، راه حل عددی معادلات جبری – تفاضلی یا معادلات تفاضلی را انجام می‌دهد. برنامه شبیه‌سازی به صورت دوره‌ای تمام معادلات را حل می‌کند و از اعداد برای تغییر دادن حالت و خروجی شبیه‌سازی استفاده می‌کند. اپلیکیشن‌ها شامل شبیه‌سازهای پرواز، بازی‌های شبیه‌سازی مدیریت و ساخت، مدل سازی فرایند شیمیایی و شبیه‌سازی‌های مدارهای الکتریکی می‌باشند. در اصل این نوع شبیه‌سازی‌ها در واقع روی کامپیوترهای آنالوگ اجرا شدند؛ که در آنها معادلات دیفرانسیل می‌توانند مستقیماً با اجزای الکتریکی مختلف از قبیل Op-ampsها نشان داده شوند. تا آخر سال ۱۹۸۰ اغلب شبیه‌سازی‌های آنالوگ در کامپیوترهای دیجیتال متعارف اجرا می‌شدند که رفتار یک کامپیوتر آنالوگ را شبیه‌سازی می‌کنند.
* یک نوع خاص شبیه‌سازی گسسته که بر یک مدل با یک معادله اساسی تکیه ندارد اما با این وجود می‌تواند به طوربه‌طور رسمی نشان داده شود شبیه‌سازی مبتنی بر عامل است. در شبیه‌سازی مبتنی بر عامل، واحدهای فردی اعم از مولکول‌ها، سلول‌ها، درخت‌ها یا مصرف‌کنندگان در مدل مستقیماً نمایش داده می‌شوند و دارای یک حالت داخلی و مجموعه‌ای از رفتارها یا قوانین می‌باشند که تعیین می‌کنند چگونه وضعیت عامل از یک مرحله زمانی تا مرحله بعد به روز رسانی می‌شود.
* مدل‌های توزیعی روی شبکه‌ای از کامپیوترهای متصل به هم احتمالاً از طریق اینترنت اجرا می‌شوند. شبیه‌سازی‌های پراکنده در میان کامپیوترهای چند میزبانی از این دست اغلب به عنوان شبیه‌سازی‌های توزیعی یا پراکنده نامیده می‌شوند. چندین استاندارد برای شبیه‌سازی توزیعی وجود دارند از جمله ALSP, DIS, HLA و TENA.
 
مثال‌های خاص شبیه‌سازی‌های کامپیوتری عبارتند از:
* شبیه‌سازی‌های اماری براساس مجموعه‌ای از تعداد زیادی از پروفایل‌های ورودی از قبیل پیش بینی دمای موازنه دریافت آب‌ها، دادن اجازه ورود به گاموت هواشناسی به یک محل خاص. این روش برای پیش بینی آلودگی گرمایی بسط داده شد.
* از شبیه‌سازی عاملی به طوربه‌طور مؤثر در اکولوژی استفاده شده است؛شده‌است؛ که در آن اغلب مدل سازی فردی نامیده می‌شود و در موقعیت‌هایی استفاده می‌شود که برای آنها تغییرپذیری فردی در عامل هارا نمی‌توان نادیده گرفت. از جمله جنبش‌های جمعیت ماهی‌های آزاد و قزل الا.
* مدل پویای مرحله بندی شده زمانی – در هیدرولوژی چندین مدل حمل و نقل هیدرولوژی از این دست وجود دارند از جمله مدل‌های SWMM و. DSSAM که توسط آژانس حفاظت محیط زیست آمریکا برای پیش بینی کیفیت آب رودخانه بسط داده شدند.
* از شبیه‌سازی‌های کامپیوتری همچنین برای مدل سازی رسمی تئوری‌های شناخت انسان و عملکرد استفاده شده‌اند از جمله ACT-R.