background image

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 ?

background image

- 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