Symulacja komputerowa

48-godzinna symulacja komputerowa Typhoon Mawar przy użyciu modelu Weather Research and Forecasting
Proces budowania modelu komputerowego i wzajemne oddziaływanie eksperymentu, symulacji i teorii.

Symulacja komputerowa to proces modelowania matematycznego wykonywany na komputerze , który ma na celu przewidywanie zachowania lub wyników systemu rzeczywistego lub fizycznego. Wiarygodność niektórych modeli matematycznych można określić, porównując ich wyniki z rzeczywistymi wynikami, które mają przewidywać. Symulacje komputerowe stały się użytecznym narzędziem do matematycznego modelowania wielu systemów naturalnych w fizyce ( fizyce obliczeniowej ), astrofizyce , klimatologii , chemii , biologii i produkcji , a także systemów ludzkich w ekonomii , psychologii , naukach społecznych , opiece zdrowotnej i inżynierii . Symulacja systemu jest reprezentowana jako działanie modelu systemu. Można go używać do odkrywania i zdobywania nowych informacji na temat nowych technologii oraz do szacowania wydajności systemów zbyt złożonych dla rozwiązań analitycznych .

Symulacje komputerowe są realizowane poprzez uruchamianie programów komputerowych , które mogą być albo małe, działające niemal natychmiast na małych urządzeniach, albo programy na dużą skalę, które działają godzinami lub dniami na grupach komputerów w sieci. Skala zdarzeń symulowanych za pomocą symulacji komputerowych znacznie przekroczyła wszystko, co jest możliwe (a może nawet wyobrażalne) przy użyciu tradycyjnego modelowania matematycznego na papierze i ołówku. W 1997 roku symulacja bitwy pustynnej, w której jedna siła najechała drugą, obejmowała modelowanie 66 239 czołgów, ciężarówek i innych pojazdów na symulowanym terenie wokół Kuwejtu przy użyciu wielu superkomputerów w programie modernizacji komputerów DoD o wysokiej wydajności. Inne przykłady obejmują 1-miliardowy model deformacji materiału; model składający się z 2,64 miliona atomów złożonej organelli produkującej białka wszystkich żywych organizmów, rybosomu , w 2005 r.; kompletna symulacja cyklu życiowego Mycoplasma genitalium w 2012 roku; oraz Blue Brain w EPFL (Szwajcaria), rozpoczęty w maju 2005 r., mający na celu stworzenie pierwszej komputerowej symulacji całego ludzkiego mózgu, aż do poziomu molekularnego.

Ze względu na koszt obliczeniowy symulacji eksperymenty komputerowe są wykorzystywane do wnioskowania, takiego jak kwantyfikacja niepewności .

Symulacja kontra model

Model komputerowy to algorytmy i równania używane do uchwycenia zachowania modelowanego systemu. Z kolei symulacja komputerowa to faktyczne działanie programu zawierającego te równania lub algorytmy. Symulacja jest zatem procesem uruchamiania modelu. Tak więc nie można „budować symulacji”; zamiast tego można by „zbudować model (lub symulator)”, a następnie „uruchomić model” lub równoważnie „uruchomić symulację”.

Historia

Symulacja komputerowa rozwijała się równolegle z szybkim rozwojem komputera, po jego pierwszym wdrożeniu na dużą skalę podczas Projektu Manhattan podczas II wojny światowej w celu modelowania procesu detonacji jądrowej . Była to symulacja 12 twardych kul przy użyciu algorytmu Monte Carlo . Symulacja komputerowa jest często używana jako uzupełnienie lub substytut systemów modelowania, dla których proste rozwiązania analityczne w postaci zamkniętej nie są możliwe. Istnieje wiele rodzajów symulacji komputerowych; ich wspólną cechą jest próba wygenerowania próby reprezentatywnych scenariuszy dla modelu, w którym pełne wyliczenie wszystkich możliwych stanów modelu byłoby zaporowe lub niemożliwe.

Przygotowywanie danych

Wymagania dotyczące danych zewnętrznych w symulacjach i modelach są bardzo zróżnicowane. Dla niektórych danymi wejściowymi może być zaledwie kilka liczb (na przykład symulacja kształtu fali prądu przemiennego na przewodzie), podczas gdy inni mogą wymagać terabajtów informacji (takich jak modele pogodowe i klimatyczne).

Źródła wejściowe również są bardzo zróżnicowane:

  • Czujniki i inne urządzenia fizyczne podłączone do modelu;
  • Powierzchnie sterujące używane do kierowania w jakiś sposób postępem symulacji;
  • Aktualne lub historyczne dane wprowadzane ręcznie;
  • Wartości wyodrębnione jako produkt uboczny z innych procesów;
  • Wartości wyprowadzane w tym celu przez inne symulacje, modele lub procesy.

Wreszcie, czas, w którym dane są dostępne, jest różny:

  • „niezmienne” dane są często wbudowane w kod modelu, albo dlatego, że wartość jest naprawdę niezmienna (np. wartość π), albo dlatego, że projektanci uważają, że wartość jest niezmienna dla wszystkich interesujących nas przypadków;
  • dane mogą być wprowadzane do symulacji podczas jej uruchamiania, na przykład poprzez odczyt jednego lub więcej plików lub odczyt danych z preprocesora ;
  • dane mogą być dostarczane podczas przebiegu symulacji, na przykład przez sieć czujników.

Ze względu na tę różnorodność i ponieważ różne systemy symulacyjne mają wiele wspólnych elementów, istnieje duża liczba wyspecjalizowanych języków symulacyjnych . Najbardziej znanym może być Simula . Teraz jest wielu innych.

Systemy, które akceptują dane z zewnętrznych źródeł, muszą bardzo uważać na to, co otrzymują. Podczas gdy komputery łatwo wczytują wartości z plików tekstowych lub binarnych, o wiele trudniej jest wiedzieć, jaka jest dokładność ( w porównaniu z rozdzielczością i precyzją pomiaru ) wartości. Często są one wyrażane jako „słupki błędów”, minimalne i maksymalne odchylenie od zakresu wartości, w którym (oczekiwana) jest prawdziwa wartość. Ponieważ cyfrowa matematyka komputerowa nie jest doskonała, błędy zaokrąglania i obcinania zwielokrotniają ten błąd, dlatego warto przeprowadzić „analizę błędów”, aby potwierdzić, że wartości wyjściowe z symulacji będą nadal przydatne.

typy

Modele komputerowe można sklasyfikować według kilku niezależnych par atrybutów, w tym:

  • Stochastyczny lub deterministyczny (i jako szczególny przypadek deterministyczny, chaotyczny) - patrz zewnętrzne linki poniżej, aby zapoznać się z przykładami symulacji stochastycznych i deterministycznych
  • Stacjonarne lub dynamiczne
  • Ciągłe lub dyskretne (i jako ważny szczególny przypadek dyskretnych, dyskretnych zdarzeń lub modeli DE)
  • Symulacja systemów dynamicznych , np. układów elektrycznych, układów hydraulicznych lub układów mechanicznych wieloczłonowych (opisanych głównie przez DAE:s) lub symulacja dynamiki problemów terenowych, np. CFD symulacji MES (opisanych przez PDE:s).
  • Lokalne lub rozproszone .

Innym sposobem kategoryzacji modeli jest przyjrzenie się bazowym strukturom danych. W przypadku symulacji krokowych w czasie istnieją dwie główne klasy:

  • Symulacje, które przechowują swoje dane w regularnych siatkach i wymagają dostępu tylko do następnego sąsiada, nazywane są kodami szablonowymi . Do tej kategorii należy wiele aplikacji CFD .
  • Jeśli wykres bazowy nie jest regularną siatką, model może należeć do klasy metody bez siatki .

Równania określają relacje między elementami modelowanego systemu i próbują znaleźć stan, w którym system jest w równowadze. Takie modele są często używane w symulacjach systemów fizycznych, jako prostszy przypadek modelowania przed próbą symulacji dynamicznej.

Wyobrażanie sobie

Dawniej dane wyjściowe z symulacji komputerowej przedstawiano niekiedy w formie tabeli lub macierzy pokazującej, w jaki sposób na dane wpłynęły liczne zmiany parametrów symulacji . Wykorzystanie formatu macierzowego było związane z tradycyjnym stosowaniem koncepcji macierzowej w modelach matematycznych . Jednak psychologowie i inni zauważyli, że ludzie mogą szybko dostrzec trendy, patrząc na wykresy, a nawet ruchome obrazy lub filmy generowane na podstawie danych, wyświetlanych za pomocą animacji obrazów generowanych komputerowo (CGI). Chociaż obserwatorzy niekoniecznie mogli odczytywać liczby lub cytować formuły matematyczne, obserwując poruszającą się mapę pogody, mogliby przewidywać zdarzenia (i „zobaczyć, że deszcz zmierza w ich stronę”) znacznie szybciej niż poprzez skanowanie tabel współrzędnych chmur deszczowych . Takie intensywne wyświetlacze graficzne, które wykraczały poza świat liczb i formuł, czasami prowadziły również do wyników pozbawionych siatki współrzędnych lub pominiętych znaczników czasu, jak gdyby zbytnio odbiegały od wyświetlania danych liczbowych. Obecnie prognozowania pogody mają tendencję do równoważenia widoku poruszających się chmur deszczowych/śniegowych z mapą, która wykorzystuje współrzędne numeryczne i numeryczne znaczniki czasu zdarzeń.

Podobnie symulacje komputerowe CGI skanów CAT mogą symulować, w jaki sposób guz może się kurczyć lub zmieniać podczas dłuższego okresu leczenia, przedstawiając upływ czasu jako obracający się widok widocznej ludzkiej głowy, gdy guz się zmienia.

Opracowywane są inne zastosowania symulacji komputerowych CGI [ od? ] do graficznego wyświetlania dużych ilości danych w ruchu, gdy zmiany zachodzą podczas przebiegu symulacji.

W nauce

Symulacja komputerowa procesu osmozy

Ogólne przykłady typów symulacji komputerowych w nauce, które wywodzą się z podstawowego opisu matematycznego:

Konkretne przykłady symulacji komputerowych obejmują:

  • symulacje statystyczne oparte na aglomeracji dużej liczby profili wejściowych, takich jak prognozowanie temperatury równowagi wód przyjmujących, umożliwiające wprowadzenie szeregu danych meteorologicznych dla określonego regionu. Technika ta została opracowana do prognozowania zanieczyszczeń termicznych .
  • symulacja oparta na agentach była skutecznie wykorzystywana w ekologii , gdzie jest często nazywana „modelowaniem indywidualnym” i jest stosowana w sytuacjach, w których nie można zaniedbać indywidualnej zmienności czynników, takich jak dynamika populacji łososia i pstrąga (większość modeli czysto matematycznych zakłada wszystkie pstrągi zachowują się identycznie).
  • dynamiczny model krokowy w czasie. W hydrologii istnieje kilka takich modeli transportu hydrologicznego , takich jak modele SWMM i DSSAM opracowane przez amerykańską Agencję Ochrony Środowiska do prognozowania jakości wód rzecznych.
  • symulacje komputerowe zostały również wykorzystane do formalnego modelowania teorii ludzkiego poznania i działania, np. ACT-R .
  • symulacja komputerowa wykorzystująca modelowanie molekularne do odkrywania leków .
  • symulacja komputerowa do modelowania infekcji wirusowej w komórkach ssaków.
  • symulacja komputerowa do badania selektywnej wrażliwości wiązań metodą mechanochemiczną podczas mielenia cząsteczek organicznych.
  • obliczeniowej dynamiki płynów są wykorzystywane do symulacji zachowania przepływającego powietrza, wody i innych płynów. Stosowane są modele jedno-, dwu- i trójwymiarowe. Jednowymiarowy model może symulować skutki uderzenia hydraulicznego w rurze. Model dwuwymiarowy można wykorzystać do symulacji sił oporu działających na przekrój poprzeczny skrzydła samolotu. Trójwymiarowa symulacja może oszacować wymagania dotyczące ogrzewania i chłodzenia dużego budynku.
  • Zrozumienie statystycznej termodynamicznej teorii molekularnej ma fundamentalne znaczenie dla zrozumienia rozwiązań molekularnych. Opracowanie twierdzenia o rozkładzie potencjału (PDT) umożliwia uproszczenie tego złożonego tematu do przyziemnych prezentacji teorii molekularnej.

Godne uwagi, a czasem kontrowersyjne, symulacje komputerowe wykorzystywane w nauce to między innymi: World3 Donelli Meadows użyty w Limits to Growth , Daisyworld Jamesa Lovelocka i Tierra Thomasa Raya .

W naukach społecznych symulacja komputerowa jest integralną częścią pięciu perspektyw analizy wspieranych przez metodologię perkolacji danych, która obejmuje również metody jakościowe i ilościowe, przeglądy literatury (w tym naukowej) oraz wywiady z ekspertami i która stanowi rozszerzenie triangulacji danych. Oczywiście, podobnie jak każda inna metoda naukowa, replikacja jest ważną częścią modelowania obliczeniowego

W praktycznych kontekstach

Symulacje komputerowe są wykorzystywane w wielu różnych kontekstach praktycznych, takich jak:

Wiarygodność i zaufanie, jakim ludzie obdarzają symulacje komputerowe, zależy od trafności modelu symulacyjnego , dlatego weryfikacja i walidacja mają kluczowe znaczenie w opracowywaniu symulacji komputerowych. Innym ważnym aspektem symulacji komputerowych jest powtarzalność wyników, co oznacza, że ​​model symulacyjny nie powinien dawać innej odpowiedzi dla każdego wykonania. Chociaż może się to wydawać oczywiste, jest to szczególny punkt uwagi [ redakcja ] w symulacjach stochastycznych , gdzie liczby losowe powinny być w rzeczywistości liczbami półlosowymi. Wyjątkiem od powtarzalności są symulacje z udziałem człowieka w pętli, takie jak symulacje lotu i gry komputerowe . Tutaj człowiek jest częścią symulacji i tym samym wpływa na wynik w sposób, który jest trudny, jeśli nie niemożliwy, do dokładnego odtworzenia.

pojazdów wykorzystują symulacje komputerowe do testowania funkcji bezpieczeństwa w nowych projektach. Budując kopię samochodu w środowisku symulacji fizyki, mogą zaoszczędzić setki tysięcy dolarów, które w przeciwnym razie byłyby potrzebne do zbudowania i przetestowania unikalnego prototypu. Inżynierowie mogą krok po kroku przechodzić przez symulację przez milisekundy, aby określić dokładne naprężenia, jakie są wywierane na każdą sekcję prototypu.

Grafika komputerowa może służyć do wyświetlania wyników symulacji komputerowej. Animacje można wykorzystać do doświadczania symulacji w czasie rzeczywistym, np. w symulacjach szkoleniowych . W niektórych przypadkach animacje mogą być również przydatne w trybach szybszych niż w czasie rzeczywistym lub nawet wolniejszych niż w czasie rzeczywistym. Na przykład animacje szybsze niż animacje w czasie rzeczywistym mogą być przydatne do wizualizacji narastania kolejek w symulacji ewakuacji ludzi z budynku. Ponadto wyniki symulacji są często agregowane w statyczne obrazy przy użyciu różnych sposobów wizualizacji naukowej .

Podczas debugowania symulacja wykonania testowanego programu (zamiast wykonywania natywnego) może wykryć znacznie więcej błędów, niż sam sprzęt może wykryć, a jednocześnie zarejestrować przydatne informacje debugowania, takie jak śledzenie instrukcji, zmiany w pamięci i liczba instrukcji. Ta technika może również wykrywać przepełnienie bufora i podobne „trudne do wykrycia” błędy, a także generować informacje o wydajności i dane dostrajania .

Pułapki

Chociaż czasami jest to ignorowane w symulacjach komputerowych, bardzo ważne jest [ redagowanie ] , aby przeprowadzić analizę wrażliwości , aby upewnić się, że dokładność wyników jest właściwie zrozumiana. Na przykład probabilistyczna analiza ryzyka czynników decydujących o powodzeniu programu eksploracji pól naftowych obejmuje łączenie próbek z różnych rozkładów statystycznych przy użyciu metody Monte Carlo . Jeśli na przykład jeden z kluczowych parametrów (np. stosunek netto warstw roponośnych) jest znany tylko z jedną cyfrą znaczącą, to wynik symulacji może nie być dokładniejszy niż jedna cyfra znacząca, chociaż może ( mylące) być przedstawiane jako posiadające cztery cyfry znaczące.

Zobacz też

Dalsza lektura

Linki zewnętrzne