• No results found

Ett system definieras av en grupp objekt som tillsammans interagerar. Ett system påverkas ofta av det som sker utanför systemet. Vid modellering av ett system är det viktigt att sätta gränser så att det tydligt påvisas vad som hör till modellen och vad som inte gör det. Hur dessa gränser sätts beror på hur syftet och målen för projektet ser ut (Banks et al., 1999).

I ett system som ska simuleras finns det ett antal grundläggande termer som måste förklaras. En entitet återfinns i de flesta simuleringar och är ett dynamiskt objekt som förflyttas genom systemet. Den kan byta tillstånd, egenskaper eller påverka andra entiteter. Ett system har för det mesta många entiteter. För att skapa skillnad- er mellan entiteterna tilldelas de olika attribut, som beskriver de egenskaper som varje entitet har. Det kan vara ankomsttid, betjäningstid, färg och så vidare. Vid

diskret simulering återfinns händelse och aktivitet som viktiga delar av systemets komponenter. En aktivitet är den tidsperiod mellan det att två olika händelser inträffar, det vill säga händelsen initierar aktiviteten. Händelsen kan även ändra systemets tillstånd, vilket är en samling nödvändiga variabler som kan beskriva systemet vid vilken tidpunkt som helst i förhållande till simuleringsprojektets mål (Banks et al., 1999) (Kelton et al., 2004).

En modell är en representation av ett verkligt system eller ett system som ska avbildas. För det mesta behöver endast hänsyn tas till de delar som kommer att påverka simuleringen, medan övriga detaljer kan uteslutas. Det är dock mycket viktigt att alla detaljer av värde finns med, annars kommer inte modellen att vara giltig. En modell är alltså en förenkling av ett system. Precis som för systemet återfinns, entiteter, attribut, händelser med i modellen, fast här utesluts de begrepp som inte är relevanta för det slutliga målet (Banks, 1998) (Banks et al., 1999).

Modell

Matematisk Fysisk

Statisk Dynamisk

Kontinuerlig Diskret

Deterministisk Stokastisk Deterministisk Stokastisk

Figur 3.1: Hierarkisk modellstruktur.

Vid skapandet av en modell ska det redan i ett tidigt skede tas hänsyn till vilka typer av modeller som ska användas. Det finns ett antal varianter på detta, enligt Pidd (1998) är de viktigaste:

• statisk eller dynamisk simulering • diskret eller kontinuerlig tidshantering • stokastisk eller deterministisk.

Utöver dessa finns även analytisk eller numerisk simulering, vilka inte behandlas i denna rapport. Modellstrukturen återfinns i figur 3.1.

3.2.1 Statisk eller dynamisk simulering

Vid statisk simulering beskrivs modellen vid en viss tidpunkt. Denna typ av simu- lering kan förekomma vid matematiska eller statistiska system, som exempelvis en budget eller ett krocktest, där tidsperspektivet inte påverkar det slutliga resul- tatet (Banks, 1998). I det senare exemplet, krocktest, är händelseförloppet oerhört snabbt, varför simuleringsklockan får ticka extremt långsamt för att kunna studera vad som händer.

Den dynamiska simuleringen är vanligast förekommande. Här är det tidsperspek- tivet som är det viktiga och avgörande för resultatet. Om simuleringen körs i motsvarande en vecka, en månad eller ett år har ofta stor betydelse på resultatet. Det är således långtidseffekterna som är intressanta och valet av tidshorisont styrs av syftet med projektet. Ett exempel på dynamiska förlopp är förhållandet mellan rov- och bytesdjur i ett slutet ekologiskt system. Antalet rovdjur beror på antalet bytesdjur och tvärtom. Detta beskrivs med hjälp av differentialekvationer.

3.2.2 Diskret eller kontinuerlig tidshantering

Diskret simulering kan översättas med det något enklare begreppet händelsestyrd simulering. Vid diskret tidshantering i en simuleringsmodell är de viktiga tids- stegen i modellen då det sker en händelse. Simuleringen hoppar mellan händelser- na i kronologisk ordning. Tiden däremellan är inte av betydelse för den simulerade tiden.

I en modell med kontinuerlig tidshantering kan systemets tillstånd ändras kon- tinuerligt över tiden, ungefär som vattnet i ett handfat där det rinner till och från på samma gång, men kanske inte med samma hastighet. Detta görs för det mesta med hjälp av olika varianter av differentialekvationer (Kelton et al., 2004).

3.2.3 Stokastisk eller deterministisk simulering

Stokastisk simulering baseras på slumpmässiga variabler. Utdatan kan variera mellan olika replikationer av simuleringen. Den stokastiska simuleringen exem- plifieras i kapitel3.4, då besökarnas ankomsttid och betjäningstid är slumpmässig. Vid deterministisk simulering har variablerna samma fasta värden, som exem- pelvis vid en mottagning av något slag då tidsluckorna alltid är förutbestämda.

3.3

Slumptal

Slumptal används vid simulering för att fånga systemets dynamik genom att in- föra till synes slumpmässiga händelser. Om endast historiska data används för att bestämma exempelvis ankomsttider kommer systemet att härma verkligheten. Om den historiska datan istället används för att skapa slumptal för olika tidsstyrda händelser fås en mer rimlig spridning på hur ett system kan bete sig.

Slumptal delas otydligt in i två kategorier, de äkta och de falska där den sistnämn- da även kallas pseudoslumptal. Ett äkta slumptal är ett sådant tal som exempelvis uppstår vid användning av ett rouletthjul eller en tärning. Alla utfall är lika san- nolika vid upprepade försök. Att ta fram slumptal med någon av dessa metoder är tidskrävande och krångligt.

I en simulering krävs det långa serier om några miljoner slumptal för att lyckas, därför används pseudoslumptal. Dessa slumptal baseras på en matematisk formel som genererar ett nytt tal beroende av vilket det föregående talet i serien är. Det första talet i en serie kallas för slumptalsfrö. Ett och samma frö ger samma slump- talsserie. Vid en simulering är det viktigt att kunna ta fram samma serie av slump- tal vid flera tillfällen. Detta för att verifiera att det inte är slumptalen som påverkar utdata då det experimenteras med modellen (Pidd, 1998) (Law & Kelton, 2000). Fortsättningsvis kommer termen slumptal användas i stället för pseudoslumptal. Det finns flera varianter på hur slumptal tas fram. De vanligaste generatorerna är av typen linear congruential och då som multiplicative generators. Generering av slumtal med hjälp av linear congruential definieras av en serie heltal Z1, Z2,...

som härstammar från den rekursiva formeln

Zi = (aZi−1 + c)(mod m) (3.1)

där m (modulus), a (multiplikator), c (inkrement) samt Z0(slumptalsfrö) samtliga

är ickenegativa heltal. Vid användning av multiplicative generators uteslutes c ur

formel 3.1 vilket leder till att a och m måste väljas med större försiktighet. De multiplikativa generatorerna är allra vanligast vid generering av slumptal.

När en slumptalsserie ska tas fram används ett slumptalsfrö för att initiera generer- ingen av slumptalsserien. Om samma frö används ska även samma serie genereras, vilket är en mycket viktig egenskap inom simulering. Dels för att underlätta vid felsökning och verifiering av datormodellen, dels för att bättre kunna jämföra två olika systemkonfigurationer. Det sista för att undvika frågeställningar som: ”Var det parameterförändringarna eller slumptalen som orsakade skillnaden i resultat?” För att visa på hur en slumptalsserie kan tas fram förklaras här en av de enklare metoderna. Den första numeriska slumptalsgeneratorn utvecklades under 1940- talet av von Neumann och Metropolis och kallas ”mittkvadratmetoden”. Metoden bygger på att ett fyrsiffrigt tal utgör slumptalsfrö, Z0, som sedan kvadreras till ett

upp till åttasiffrigt tal, Z02. Om så krävs fylls nollor på till vänster för att erhålla exakt åtta siffror. Sedan tas de fyra mittersta siffrorna som Z1. Eftersom vi vill

ha det på formen U(0,1) sätts ett decimaltecken ut till vänster om dessa fyra för att erhålla det första slumptalet U1. Låt sedan Zi+1 utgöras av de fyra mittersta

siffrorna i Zi2 som sedan skapar Ui genom att införa decimaltecken. I tabell 3.1

ges ett inledande exempel på metoden (Law & Kelton, 2000). Orsaken till att den likformiga fördelningen U (0, 1) oftast används, är att den är lätt att transformera.

i Zi Ui Zi2 0 1907 – 03636649 1 6366 0.6366 40525956 2 5259 0.5259 27657081 3 6570 0.6570 43283241 4 2832 0.2832 08020224 5 0202 0.0202 00040804 ... ... ... ...

Tabell 3.1: Exempel på mittkvadratmetoden.

Metoden är dock inte speciellt raffinerad, trots att det kan tyckas så vid en första anblick. En av svagheterna med metoden är att Ui tenderar att gå mot noll alltför

snabbt. Law & Kelton (2000) ger exemplet där Z0 = 1009. Zi kommer då att få

följande serie: (1009, 324, 1049, 1004, 80, 64, 40, 16, 2, 0). När Zi slutligen nått

Det kan även påpekas att, vilket är fallet för de flesta slumptalsserier, metoden inte är slumpmässig i den bemärkelsen, då den är förutsägbar. Givet ett visst startvärde, slumptalsfrö, kommer serien vid varje upprepning att se likadan ut. Men som näm- nts tidigare är detta beteende önskvärt inom simulering för att kunna återskapa ett visst scenarie. Variationerna skapas istället genom att göra upprepade simulerings- försök med olika slumptalsfrön som initialvärde.

Related documents