Visa/dölj histogram 'Tid i systemet'

Visa/dölj kö-kurva

Visa/dölj fördelning för kölängd

Visa/dölj fördelning för väntetid

Visa/dölj parametrar

Medeltid mellan ankomster:

Medelbetjäningstid (andel av "Medeltid mellan..."):

Antal kunder innan simulering avslutas:

Om 'Medelbetjäningstid' är lika med eller större än 'Medeltid mellan ankomster' finns ingen stationär kölängdsfördelning.

Systemet är alltså då instabilt.

Se t.ex. kön som växer eller histogrammet för tid i systemet.

Om 'Medelbetjäningstid' är lika med eller större än 'Medeltid mellan ankomster' finns ingen stationär väntetidsfördelning.

Systemet är alltså då instabilt.

Se t.ex. kön som växer eller histogrammet för tid i systemet.

Info, referenser, m.m...

En enkel kö — en komplicerad enkelhet

Hur påverkas systemets egenskaper av dess parametrar?

Alla människor har någon gång upplevt att stå i en kö. Alla har dessutom iakttagit köer i olika situationer:


”Va, tom kö! Ingen kunder – måste vara en dålig affär!”

”Inga i väntrummet, de måste ha för lite att göra!”

”Vad håller dom på med i kassan, det går långsamt!”

”På förmiddagen…hm…bara pensionärer i butiken…”

osv

Enkelt? Det förment enkla i en enkel kö (enheter in, enheter ut, en gemensam kö och en betjäningsstation) visar sig lätt vara en smula komplicerat. Det finns många frågor att besvara men det finns också en rik teori att använda. Svårare och mer sammansatta situationer kan kanske simuleras med verkliga indata. På så sätt kan olika scenario prövas och värderas.

Att agera snabbt (men utan grundläggande fakta) kan verka kraftfullt.
Att agera snabbt (men utan grundläggande fakta) är bara dumt.

Visa/dölj histogram 'Tid i systemet': histogrammet kan döljas eller visas. Det kan också stängas med dialogrutans vanliga kryss.

Visa/dölj kö-kurva: kökurva kan döljas eller visas men kan också stängas med dialogrutans vanliga kryss.

Visa/dölj fördelning för kö-längd: sannolikhetsfördelningen för kölängder kan döljas eller visas men kan också stängas med dialogrutans vanliga kryss.

Visa/dölj fördelning för väntetid: sannolikhetsfördelningen för tid i systemet kan döljas eller visas men kan också stängas med dialogrutans vanliga kryss.

Visa/dölj parametrar: dialogrutan med slider för parametervärden kan döljas eller visas men kan också stängas med dialogrutans vanliga kryss.

[Repetera simulering]: ett klick på knappen gör en ny simulering med de inställda parametervärden.

[Kommentarer och övningar]: visar ett antal kommentarer och övningar.



••••

De tre sliderna anger parametervärdena för simuleringen. Varje parameter ändras i distinkta steg och en ny simulering sker då förflyttningen avslutats. Slidernas skala kan inte ändras.



Medeltid mellan ankomster: Tiden mellan kunder är exponentialfördelad med medelvärde enligt parameterinställningen.

Medelbetjäningstid (andel av "Medeltid mellan..."): Anger tiden det tar i medeltal för att betjäna en kund (exponentialfördelade tider). Observera att medelvärdet anges som en andel av tiden mellan kunder. Om andelen understiger '1' (grönt intervall) så existerar det stationära förhållanden, dvs systemet är stadigt (men kan uppvisa stor variation).
Om andelen är lika med eller överstiger '1' kommer kön förr eller senare att växa okontrollerat. (Eftersom simuleringen sker med ett begränsat antal inkommande kunder kommer detta dock inte att ske, men t.ex. väntetider kan bli groteskt långa...)

Antal kunder innan simuleringen avslutas: Anger hur många kunder som skall ingå i simuleringen. Simuleringen avslutas sedan när alla kunder betjänats.

Notera att även om andelen (slid 2) är under '1' så kan man se till synes omotiverade ökningar i kölängd (använd [Repetera simulering]-knappen).


••••

Fördelningen består av en diskret del (vertikal, blå linje) och en kontinuerlig del, ytan under kurvan. Den diskreta delen anger sannolikheten att en inkommande enhet kommer till en tom kö.
Om kön inte är tom, fördelas väntetiden enligt ytan under kurvan.




Några definitioner:

T: medeltid i systemet

X: medelbetjäningstid

W: medeltid i kön

Följande gäller då:    T = X + W



Digrammet visar alltså fördelningen för W, väntetiden. Diagrammet visar 99.5% av hela sannolikhetsfördelningen. X-axeln visar väntetid i vald tidsenhet (dagar, timmar, etc.).


••••

Diagrammet visar den diskreta (teoretiska) sannolikhetsfördelningen för antalet enheter i systemet. Min-, medel- och maxvärde skrivs på X-axeln.


'Steady state'. Systemet har ett 'steady state' då slid nummer 2 är mindre än 1 (det gröna området). Då gäller att medeltiden för betjäning är kortare än medeltiden mellan inkommande enheter. Om slid 2 är i det röda intervallet finns ingen teoretisk fördelning av antal i kön.
Då slid 2 flyttas närmare 1 ökar, som förväntat, medelvärdet för antal i systemet.

Röd linje. Den vertikal röda linjen på X-axeln visar det teoretiska medelvärdet.


••••

Diagrammet visar de momentana förändringarna i antalet i systemet på Y-axeln. X-axeln visar simuleringens tidsutsträckning i någon tidsenhet (timmar, dagar, etc.).


Till vänster visas kurvans högsta punkt som "Max = xx" och är alltså max-värdet under simuleringen. Simuleringen sker för ett begränsat antal inkommande enheter och avslutats då kön är tömd. Sålunda går kurvan mot slutet alltid ned till noll.

'Steady state'. Systemet har ett 'steady state' då slid nummer 2 är mindre än 1 (det gröna området). Då gäller att medeltiden för betjäning är kortare än medeltiden mellan inkommande enheter. Ett system som startar från 0 (som detta) har en insvängningsperiod (uppstartningsperiod) innan 'steady state' uppnåtts. Detta kan inte ses på diagrammet p.gr.a. de slumpmässiga förändringarna.

Röd linje. Den horisontella röda linjen visar det (teoretiska) medelvärdet.

Upprepade simuleringar. Vid upprepade simuleringar med [Repetera simulering]-knappen visar, speciellt då slid 2 är, säg större än 0.9, kurvan ganska stora variationer som alltså inte har någon systematisk orsak utan är en funktion av systemets parameterar (dvs systemets belastning).


••••

Histogrammet visar fördelningen av de totala simulerade tiderna i systemet för inkommande enheter.


Histogrammet visar en typisk fördelning för tider, dvs en relativt långt utdragen svans åt höger, s.k. positiv skevhet. Det finns naturligtvis inga negativa datavärden och inte heller värden som är exakt 0.
("0-tider" är ibland ett problem då man hanterar riktiga data, bl.a. då tider är skillnad mellan två datum och då en aktivitet påbörjats och avslutats inom ett och samma dygn. Problemet uppstår då man försöker anpassa en fördelning till data och datorprogrammet inte tillåter 0-data. En lösning är att addera åtminstone några minuter till alla tider för att på så sätt 'lura' datorprogrammet.)

Några definitioner:

T: medeltid i systemet

X: medelbetjäningstid

W: medeltid i kön

Följande gäller då:    T = X + W

Histogrammet visar alltså fördelningen av simulerade T-värden, totaltid i systemet.

Röd linje. Den vertikala röda linjen visar det simulerade medelvärdet.


••••

Nedan finns ett antal kommentarer och övningar för att belysa viktiga och central delar av teorin och simuleringarna:

Kommentar 1
Exemplen i dessa simuleringar kräver oändlig köplats, en gemensam kö, en betjäningsstation, FIFO-procedur (dvs "First In First Out'), konstanta in- och utintensiteter, steady state (efter en viss 'insvängningstid'). Det är heller inte möjligt att lämna kön eller att bli avvisad från kön.
(Verkliga köer i t.ex. vården är naturligtvis mer komplexa. Till exempel är fördelningen för behandlingstiden ('betjäningstiden') knappast samma för alla människor, det finns prioriteringar i köordningen, människor lämnar kön, människor uteblir från sin bokade tid, etc, etc. Detta gör bilden mer komplicerad men det grundläggande tankesättet är det samma).

Kommentar 2
För att förstå simueringarna behövs ingen direkt kunskap om köteori eller matematiska formler. Det räcker med att ha en viss förståelse för variation och att kunna tolka enkla grafer.
Den som vill fördjupa sig i teorin bör skaffa en (bra!) bok om s.k. Markovkedjor och stokastiska processer.

Kommentar 3
Diagrammet 'Sannolikhetsfördelning av väntetid i kö' visar ett skeende som är vanligt för bilförare då föraren kommer till ett trafikljus. (Trafikljuset är av äldre design, dvs det påverkas inte av ett fordon och det sker på natten då det inte finns övrig trafik).
Om trafikljuset lyser grönt tar det 0 tidsenheter att passera men om det lyser rött måste föraren vänta (en tröst är att väntetiden inte är oändlig).

Kommentar 4
Vanligtvis är kömodellerna mer komplicerade. Det kan finnas fler betjäningssystem (t.ex. fler kassor i butiken), ytterligare betjäningssystem kanske öppnas undet vissa betingelser t.ex. att kön har en viss längd, kanske antal enheter är begränsat så att nyanlända avvisas, kanske det finns prioriteringar bland köande, etc.
En lösning för komplicerade modeller är att bygga simulerade kösystem. Då kan olika indataalternativ prövas, olika systemdesigner kan testas, simulerad data kan utsättas för rigorös statistisk analys, etc.

Övning 1
Sätt slid 2 till cirka 0.94, slid 3 till 2000 och kör upprepade simuleringar med [Repetera simulering]-knappen. Notera att kölängden kan visa plötsliga utbrott eller t.o.m. cykliska förlopp. Det skulle inte vara svårt att formulera en kommentar typ "...som ni tydligt ser så visar första hälften av diagrammet en låg och ganska stabil nivå. Men därefter syns kölängden öka dramatiskt och jag menar att det sker samtidigt som huvudkontoret införde ett nytt planeringssystem...". Det kan alltså vara ganska lätt att (felaktigt) hitta på källor till problem vars grunder inte är systematiska utan slumpmässiga!

Övning 2
Sätt slid 1 ('Medeltid mellan ankomster') till 2 och slid 2 ('Medelbetjäningstid') till 1.48 samt slid 3 ('Antal kunder') till 2000 kunder. Antal i kön växer ungefär som en rät linje tills 'dörrarna stängs' varefter kön avverkas ned till 0.
X-axeln anger totalt antal tidsenheter för simuleringen (längst till höger).
Notera att det förväntade värdet är 2*1.48*2000 = 5920. (Eftersom denna summa består av 2000 termer blir summan approximativt normalfördelad enligt CLT (Centrala gränsvärdessatsen)). Kör ett antal simuleringar och konstatera att denna förväntade summa tycks stämma.
(Genom att köra ett antal simuleringar är det möljligt att göra ett enkelt t-test för att testa hypotesen att förväntad summa är 5920.)

Övning 3
Sätt slid 2 ('Medelbetjäningstid') till < 1 (grönt område). Notera att vid varje minskning av slid 2 ökar sannolikheten för tom kö och att väntevärdet (vertikal röd linje) minskar samtidigt som beräknat medelvärde i histogrammet minskar.


••••