Jakie są fazy symulacji
- budowa modelu symulacyjnego
- eksperymentowanie
- Analiza wynikow eksperymentu (ocena
wyników)
Typy modeli
.....DEKLARATYWNY- określa precyzyjnie
przejścia między stanami systemu. Zawiera
dwie grupy składników : stany i zdarzenia.
Odzwierciedla zmiany stanów bardziej niż
funkcje systemu (np. model
Markowa).Podejścia do modelowania
deklaratywnego - stanowe, zdarzeniowe i
mieszane !
.....FUNKCJONALNY - model zawierający
dwa bazowe składniki - funkcje i zmienne.
Modele obiektów skomponowane z metod i
atrybutów odpowiadają modelom
funkcjonalnym
.....WYRAŻAJĄCY ZALEŻNOŚCI
(OGRANICZONY) - odzwierciedla prawa
rządzące działaniem badanych systemów
(równania, relacje, równowaga...) np. model
dynamiki populacji zwierząt (zależności liczby
drapieżników i ich ofiar w przedziale czasu)
.....PRZESTRZENNY - wyrażający
dekompozycję przestrzeni. Dwa podejścia -
(1) przestrzeń jest też obiektem, (2) jednostki
w przestrzeni jedynie są obiektami
.....MULTIMODELE - grafowe lub sieciowe
modele złożone z innych typów - abstrakcja i
ulepszanie
Błędy symulacji
błędy modelowania
.nieadekwatny model matematyczny
--w wyniku weryfikacji modelu i walidacji
powinny być zidentyfikowane i usunięte
błędy programowania
.błędy implementacji modelu w języku
symulacyjnym
--testowanie modelu symulacyjnego w oparciu
o prosty system, ze znaną postacią
analityczną rozwiązania
błędy losowania - „set effect” i „sequence
effect”
.złe generatory liczb pseudolosowych
--poddanie generatorów testom losowości i
zgodności rozkładów (minimum po 3 testy
różne na losowość i zgodność)
--stosowanie różnych technik redukcji
wariancji
błędy estymacji parametrycznej
.błąd obciążenia początkowego (stan
nieustalony) - „initial bias”
--gromadzenie danych wyjściowych po
ustaleniu się stanu systemu (warm up)
.statystyczna zależność wyników symulacji
wskutek autokorelacji i korelacji skrośnej i
ograniczoność stosowania CTG
--stosowanie wielu powtórzeń eksperymentu,
ustalanie paczek wyników „batch means”,
metoda regeneracji
Na czym polega symulacja Monte Carlo
Metoda Monte Carlo (MC) jest stosowana do
modelowania matematycznego procesów zbyt
złożonych (obliczanie całek, łańcuchy
procesów statystycznych), aby można było
przewidzieć ich wyniki za pomocą podejścia
analitycznego. Istotną rolę w metodzie MC
odgrywa losowanie (wybór przypadkowy)
wielkości charakteryzujących proces, przy
czym losowanie dotyczy rozkładów znanych
skądinąd.
Jest to metoda polegająca na wyliczeniu całki
oznaczonej z gęstości zadanej funkcji
(dystrybuanta) a następnie sprawdzanie czy
dane liczby mieszczą się w polu pod krzywa
Jakie elementy są istotne z punktu widzenia
SK
?przyrost czasu (ciągły/ dyskretny)
?sterowanie czasem (krokowo/zdarzeniowo)
?zorientowanie
na(procesy/obiekty/przesłania/aktywności)
-Wyznaczenie ilościowych charakterystyk syste
mu w określonych warunkach i przy określonyc
h regułach pracy
-Zbadanie wpływu zmian reguł oraz warunków
pracy systemu na jego charakterystyki
- stany - opisują system w przedziale czasu,
stan (s1, s2, ..., sn) - n - liczba składników
systemu
- zdarzenia - zmiana stanu w ustalonej chwili
(t, s1, s2, ..., sn )
- czas
Na czym polega procedura upływu czasu
Procedura upływu czasu polega na tworzeniu
listy procesów dla których zaplanowano chwile
wystapienia wchodzacego w ich sklad
zdarzenia. Na poczatku 1 proces, pozniej
procedura inicjuje kolejne, planujac chwile
wystapienia pierwszych zdarzen.
???? Można to przedstawić tak, ze w pętli
while wykonywana jest procedura
UAKTUALNIJ_FUNKCJE, w której to dla
wszystkich funkcji stosujemy funkcje do
stanów i wejść. Po UAKTUALNIJ_FUNKCJE
aktualizowany jest czas symulacji.
Co to jest generator liczb pseudolosowych
Jest to obiekt dajacy dla zadanych warunkow
poczatkowych ciag liczb traktowany jako
realizacja zmiennych losowych niezaleznych o
tym samym rozkladzie.
Kiedy stosujemy model konceptualny
Na samym poczatku tworzenia modelu. Model
konceptualny zawiera skladniki ktore nie sa
precyzyjnie zdefiniowane w terminach stanu
zdarzenia czy funkcji.
KONCEPTUALNY - model
zawierający składniki, które nie są
precyzyjnie zidentyfikowane w
terminach stanu, zdarzenia, funkcji.
Wyraża obiekty i ich wzajemne
relacje. Stanowi często pierwszy krok
do precyzyjnych modeli.
Co to znaczy zbadac adekwatnosc modelu
symulacyjnego
Jest to zbadanie czy uzyskany model
symulacyjny odpowiada modelowi
rzeczywisyemu czy wyobrazonemu i jak
dalekie jest podobnienstwo, jakie wystepuja
bledy i roznice.
BADANIE ADEKWATNOŚCI - proces
oceniania, czy model odpowiada
rzeczywistemu lub wyobrażanemu
systemowi
Co to jest symulacja
Jest to metoda badania charakterystyk
systemow. Tworzenie modelu imitujacego
dany system dla uproszczenia badan i
eksperymentow nad nim.
*Symulacja komputerowa - metoda badania
lub naśladowania systemu rzeczywistego lub
teoretycznego poprzez zbudowanie jego
modelu i jego implementacji
komputerowej a następnie
eksperymentowanie na modelu i analiza
uzyskanych wyników.
SYMULACJA KOMPUTEROWA -
metoda badania lub naśladowania
systemu rzeczywistego lub
teoretycznego poprzez zbudowanie
jego modelu i jego implementacji
komputerowej a następnie
eksperymentowanie na modelu i
analiza uzyskanych wyników.
Symulacja uosabia zasadę
„poznawania poprzez wykonywanie”
Czym sie rozni symulacja ciagla od
dyskretnej
- symulacja ciagla – ciągłe zmiany parametrów,
reprezentowana przez deterministyczny uklad
rownan rozniczkowych lub algebraicznych
- symulacja dyskretna – dyskretne zmiany
parametrów, reprezentowana przez szereg
zdarzen zachodacych w losowych chwilach
czasu
SYMULACJA CIĄGŁA A
DYSKRETNA
MODEL CIĄGŁY - deterministyczny
układ równań różniczkowych lub
algebraicznych
MODEL DYSKRETNY - szereg
zdarzeń, zachodzących w losowych
chwilach
Co to jest zdarzenie systemowe
Jest to fakt zmiany stanu przez dowolny
element systemowy.
* awaria systemu
* zmiana czasu systemowego
* zmiana stanu systemu
zdarzenia - zmiana stanu w ustalonej chwili (t,
s1, s2, ..., sn )
Czym rozni sie metoda uplywu czasu
krokowa od zdarzeniowej
- krokowa – ustalenie dla kazdego
eksperymentu stalego przyrostu czasu (kroku)
t, po kazdym zwiekszeniu czasu
systemowego o te wartosc sprawdza sie czy
wystapily jakies zdarzenia.
- zdarzenowa – koncepcja kolejnego
zdarzenia, wynika z tego iz miedzy
zdarzeniami stany elemetnow systemu nie
zmieniaja sie, wiec system nie wymaga
obserwacji. Obserwacja nastepuje dopiero w
chwili zajscia zdarzenia, gdy nastepuje rowniez
przesuniecie czasu systemowego do chwili gdy
nastapi kolejne zdarzenie.
Czym rożni się fizyczny od programowego
generatora liczb pseudo
losowych.
- generator fizyczny – oparty na tablicach
losowych, bez realizacji programowej
- programowy – procedura, algorytm na
podstawie warunkow poczatkowych dajacy
ciag liczb o dowolnej dlugosci. realizowany
cyfrowo
Wymagają dodatkowych urządzeń,
Są wolniejsze od generatorów
pseudolosowych (programowych);
Nie jest możliwe powtórzenie ciągu
liczb;
Czym się różni obiekt grupowy QueueObj
od StackObj ?
- QueueObj – obiekt reprezentujacy realizacja
kolejki FIFO
- StackObj – oboekt reprezntujacy kolejke LIFO
(stos)
Co to jest prototypowanie?
Tworzenie szablonu dzialan na podstawie
jednego obiektu
Na czym polega symulacja komputerowa?
Metoda badania lub nasladowania systemu
rzeczywistego lub teoretyczengo poprzez
zbudowanie jego modelu i jego implementacji
komputerowej a nastepnie
eksperymtentowanie na modelu i analiza
uzyskanych wynikow. („poznanie poprzez
wykonanie”)
Czym się różnie strategia interakcji
procesów od szeregowania działań i
interakcji obiektów?
- interacka procesow – synchronizacja
procesow na komputerze jednoprocesorowym,
jesli jedno zdarzenie ma wplyw na wiele
[procesow to umieszcza sie je tylko w jedmy z
nich a w innych tylko uwzglednia wynik.
- szeregowanie działań i interakcji obiektów –
tworzenie listy obiektow z podlistami czynnosci
do wykonania.....
Na czym polega symulacja komputerowa
*na udawaniu rzeczywistosci
*badaniu lub nasladowaniu syst rzeczywistoci
poprzez model zaimplementowany w
komputrze
*eksperymentowaniu na modelu w postaci
procedur komp
czym rozni sie sym ciagla od dyskretnej
*modelem fizycznym
*procedura uplywu czasu
*analiza ynikow symulacji
co to jest zd syst w symulacji dyskretnej
*awaria systemu
*zmiana wart czasu syst
*zmiana stanu sysyt
czym rozni sie strategia interakcji proesow
od szeregow dzialan
*met uplywu czasu
*sposobem synchronizacji czynnosci
*obliczenieniami estymowanych parametrow
czy obiekty w MODSIM-ie moga miec wiele
aktywnosci
*tak
*nie
*czasami (nie wiem czy dobrze)
Co to jest generator liczb
pseudolosowych?
*Algebraiczna procedura dajaca na wyjscie
ciagi liczb spełniające zalozenia niezależności
i zgodności z oczekiwanym rozkładem prawd.
*Fizyczna lub programowa reprezentacja
algorytmu wyznaczania realizacji zmiennych
losowych
Cechy symulacji obiektowej zorientowanej
na procesy:
Procesy opisują pojedyncze aktywności
obiektów reprezentujących elementy
rzeczywiste
Kompletne zachowanie odwzorowane jest
przez zbiór procesów
Upływ czasu realizowany może być w wielu
miejscach procesów
Każdy obiekt mieć wiele aktywności
Każda aktywność pochodzi od metody TELL
(lub WAITFOR)
Aktywności kończą się zgodnie z założeniami
lub mogą zostać przerwane
Odpowiednią próbę losową dla
oszacowania charakterystyk procesów
obsługi w systemie kolejkowym można
uzyskać poprzez:
Zorganizowanie jednego powtórzenia
eksperymentu pod warunkiem ergodyczności
Pętla programowa z zerowaniem czasu i
licznikiem powtórzeń
Jednokrotne działanie programu
Na czym polega procedura upływu czasu
Algorytm krokowy:
Begin Main
inicjuj zmienne stanu
realizuj w pętli wszystkie
funkcje
While not koniec symulacji
UaktualniajFunkcje
End While
End Main
Procedure UaktualniajFunkcje
For wszystkich funkcji
Przełącz typ funkcji
Case typ 1: stosuj funkcje
typu 1 do stanów i wejsc
Case typ 2: stosuj funkcje
typu 2 do stanów i wejsc
.
Case typ n: stosuj funkcje
typu n do stanów i wejsc
End For
Aktualizuj czas T := T+ deltat
End UaktualniajFunkcje
Co to jest algorytm konkurencyjny ?
Algorytm online, który jest c-
aproksymacyjny nazywamy c-
konkurencyjnym (c-competitive).
Problem online, to taki problem
optymalizacyjny, w którym:
*wej´scie I jest pokazywane
algorytmowi online ALG
sekwencyjnie,
„po kawałku”
*algorytm ALG musi oblicza´c cz˛e´s
´c wyj´scia O, zaraz po
przeczytaniu odpowiedniego
fragmentu wej´scia I
Ustalmy dowolny problem
optymalizacyjny (minimalizacyjny).
Mówimy,
˙ze algorytm ALG jest c-
aproksymacyjny, je´sli dla dowolnego
wej´scia
I 2 I zachodzi
ALG(I) <= c · OPT(I)
Co się pojawi w SimTime gdy pojawi się
zdarzenie?
Po zrealizowaniu operacji
skojarzonych z każdą aktywnością
czas jest aktualizowany na wartość
znacznika czasu (time stamp)
kolejnej aktywności.
Co to jest algorytm kongrurencyjny ?
stan początkowy to wartość ziarna
żeby wygenerować bit:
Generator ten nie jest bezpieczny - dla
pewnych kombinacji parametrów jest prawie
losowy, dla innych bardzo szybko staje się
okresowy. Dodatkowo, znane są ogólne
metody obliczania parametrów i
przewidywania zachowania takich PRNG na
podstawie obserwacji wyników.
na czym polega generowanie kongruentne
liczb z przedzialu (0, 1)
1 na dzieleniu dwóch dowolnie wybranych liczb
2 na wygenerowaniu ciagu liczb z przedzialu
(0, 1) z uzyciem dzialania modulo
3 ....
Jakie elementy modelu są istotne z punktu
widzenia SK:
- podział na komponenty wraz ze strukturami i
powiązaniami
- sposoby przejścia miedzy stanami w trakcie
czasu przebywania w stanach
- języki opisu
Czym przede wszystkim mierzy się jakość
procesu symulacji?
- wielkością kodu
- czas realizacji procedur
- wariancją estymatora szacowanego procesu
Co to jest okres aperiodyczności ciągu
liczb
- powstawanie sekwencji cyfr
- największa długości przedziału w ciągu
wygenerowanych liczb w którym liczby nie
powtarzają się
- liczba wygenerowanych liczb pierwszych
Jakie testy stosuje się przy weryfikacji
generatorów:
- zgodności rozkładów i niezależność
generowanych zmiennych losowych ( ??? )
- pokerowy, serii, kolekcjonera, chi-kwadrat,
smirnova-kołmogorowa
- test Turinga
Wielodziedziczenie:
Dziedziczenie wielokrotne (ang. multiple
inheritance) nazywane także dziedziczeniem
wielobazowym to operacja polegająca na
dziedziczeniu po więcej niż jednej klasie
bazowej. Dziedziczenie wielokrotne
stosowane jest na przykład w języku C++. W
innych językach programowania (np. w Javie)
dopuszczalne jest wyłącznie dziedziczenie
jednokrotne, zaś do uzyskania efektu, który w
C++ osiąga się poprzez dziedziczenie
wielokrotne używa się interfejsów.
Co się pojawi w Wymuli Time gdy pojawi
się zdarzenie?
Czym się różni metoda upływu czasu
krokowa od zdarzeniowej ?
Jak mozna scharakteryzowac model
formalny