Kolonnproblemet med ett hierarkiskt synsätt. Fredrik Stavfors
|
|
- Rune Viklund
- för 7 år sedan
- Visningar:
Transkript
1 Kolonnproblemet med ett hierarkiskt synsätt Fredrik Stavfors Examensarbete i datalogi vid Stockholms universitet 2006
2 Kolonnproblemet med ett hierarkiskt synsätt Fredrik Stavfors Examensarbete i datalogi om 20 poäng vid Matematisk-datalogiska linjens datalogiinriktning Stockholms universitet år 2006 Handledare vid Nada var Lars Arvestad Examinator var Stefan Arnborg TRITA-CSC-E 2006:067 ISRN-KTH/CSC/E--06/067--SE ISSN Institutionen för numerisk analys och datalogi KTH Stockholm
3 Sammanfattning Rapporten beskriver vad som händer när man inför ett hierarkiskt synsätt på kolonnproblemet. Kolonnproblemet går att beskriva på följande sätt; Du har uppgifter om en militär enhet som förflyttar sig längs en väg. Du har också förhandsinformation om samtliga befintliga fiendetrupper. Du skall nu svara på vilken militär enhet du har observerat samt vilken taktik den kan tänkas ha. Hierarkiska-dolda-Markov-modeller, som är grunden till alla algoritmer i denna rapport, utnyttjar att militära förband ställer upp enligt en hierarkisk struktur. En bataljon innehåller flera kompanier som i sin tur innehåller flera plutoner och så vidare. Det visade sig att det är många fördelar med att ta hänsyn till problemets hierarkiska struktur. Det behövs mycket mindre förhandsinformation för att algoritmerna skall fungera. Algoritmerna går dessutom mycket snabbare
4 Abstract A Hierarchical Approach on the Column Problem This report describes what will happen when you apply a hierarchical approach on the column problem. The column problem can be described in the following way; You have information about a military formation moving on a road. You also have knowledge about the available enemy forces and you want to know which military unit that was observed and what tactic they might use. Hidden Markov Models are the base for all algorithms in this report. They make use of the fact that military companies are arranged in a hieratical way. One battalion consists of several companies and one company contains several platoons and so on. The report shows that there are many advantages with the hierarchical approach; You need much less information for the algorithms to work properly and the calculation becomes much faster.
5 Innehåll Inledning och syfte...1 Kolonnproblemet...1 Problem...2 Dolda Markovmodeller...3 Inlärning och klassificering...4 Plutongraf...4 Kompanigraf...5 Inlärning med Baum-Welch metod...6 Felaktigt förenklade grafer och inlärning med Baum-Welch...9 Tabortnoder...10 Fördelar...10 Nackdelar...10 Hur man tar bort tabortnoderna...11 Metodbeskrivningar...12 Framåt-Bakåt-Algoritmen...12 Framåt-Algoritmen...12 Bakåt-Algoritmen...13 Framåt-Bakåt-Algoritmen...14 Cubic-time Inference...15 Algoritmen...15 Bayesianska nätverk...17 Översättningen...18 Utförande...20 Beräkningar och testresultat...21 Beräkningar...21 Tester...21 Experimenten...22 Testresultat...23 Slutsatser...24 Hierarki kontra ej hierarki...24 Metodval...24 Referenser...25
6 Inledning och syfte I alla tider har militära beslutsfattare försökt att ta reda på så mycket om fiendens uppställning och taktik som möjligt. Förr i tiden var det stora problemet att man inte hade någon information eller i bästa fall ytters bristfällig sådan. På grund av detta kunde de egna befälen inte fatta korrekta beslut. Nu för tiden är det på sätt och vis omvänt, en besluts-fattare kan få in väldigt mycket information. Problemet är att informa-tionen inte är överskådlig, vilket gör att det är så gott som omöjligt att utnyttja alla data. Ett typiskt sådant problem är kolonnproblemet. Kolonnproblemet Kolonnproblemet är att analysera information om en militärkolonn som är i rörelse längs en väg. Man vill få svar på ett antal frågor så att korrekt beslut om motåtgärder kan fattas. Den viktigaste frågan är självklart vilken militärkolonn är det som man har fått information om. När den frågan väl är löst uppkommer andra följdfrågor. Hur har kolonnen ställt upp, varför den har ställt upp på detta sätt och vilken taktik har den? Det är också intressant att kunna svara på vad det är som skiljer den observerade uppställningen jämfört med hur fienden normalt ställer upp. För att kunna svara på dessa frågor krävs en gedigen kunskap om hur fienden brukar ställa upp sina kolonner beroende på vilken taktik han har. Man måste också veta vilka fordon fienden har tillgång till. En lösning på dessa frågor har beskrivits av Johan Björnfot [1] men problemet är att algoritmen tar mycket lång tid att använda sig av. Framförallt så kräver algoritmen att man har tillgång till orimligt mycket förhandsinformation. Lösningen går i stora drag ut på följande tillvägagångssätt. Man observerar ett fientligt förband som rör sig längs en väg via t.ex. ett flygfotografi. Sedan tar en människa eller ett igenkänningsprogram och prickar in typen på de olika fordonen, till exempel pansarvagn, bandvagn mm. Detta får vi som indata. För att ta reda på vilket förband det är så undersöker man vilken känd fientlig enhet som bäst stämmer överens med den givna observationen. När sedan detta är gjort återstår det att försöka ta reda på vilken taktik enheten har. Detta gör man på samma sätt. Man jämför vilken taktisk uppställning som stämmer överens med de givna indata. Denna rapport handlar om hur det går att förbättra denna algoritm så att de kräver mindre förhandsinformation samt går snabbare. Detta åstadkommer vi genom att vi inte bara har förhandsinformation om hur fordon normalt ställer upp inom en militär enhet, till exempel en bataljon, utan att vi också vet hur underenheterna i detta fall kompanier och plutoner ställer upp. 1
7 Problem Problemet är att man har observationer av en formation. Dessa observationer behandlas av en typbestämmare. Det vi då får fram är en sträng av fordon f 1 f n samt vilken typ dessa är. Om ett fordon inte kan typbestämmas anges en sannolikhetsfördelning över de olika typerna som fordonet kan anta. Det som vi skall svara på är vilken formation det är. Antag för enkelhetens skull att en formation normalt bara ställer upp i en viss bestämd ordning, till exempel pansarvagn tank pansarvagn. Den inbördes ordningen av fordon av samma typ kan dock variera. Den första och sista pansarvagnen kan byta plats. Denna ordning kan också skifta lite om det tillkommer respektive saknas enstaka fordon. Det kan också förekomma felaktiga observationer eller att typbestämmaren har gjort fel. 2
8 Dolda Markovmodeller Vi är intresserade av att lagra all kunskap om en fiendes militära enheter på något bra sätt så att man senare, utifrån uppgifter om någon okänd militär formation, snabbt kan få fram vilken enhet det är och hur dom har ställt upp.[3,5,7,8,10,12]. För att lagra denna information använder vi DMM:er (Dolda Markovmodels) även kallade Hidden Markov Models (HMM). För att förstå vad en Dold Markovmodell är bör man veta vad en Markovmodell är En Markovmodell innehåller riktade grafer. En riktad graf är en mängd noder (cirklarna i bilderna). Från varje nod utgår ett antal kanter (strecken i bilderna) som går till andra noder. Varje sådan kant har en sannolikhet att man följer just den kanten. Denna sannolikhet kallas för kantvikt. Summan av alla kantvikter för kanterna som utgår från en nod är 1. Vi kan nu betrakta Markovkedjan som en maskin som går framåt ett steg åt gången. Om vi efter ett antal steg befinner oss i en nod n och är intresserade av att ta ytterligare ett steg framåt sker detta slumpartat. Sannolikheten att vi följer en viss kant är just den kantens kantvikt. Eftersom kantvikterna alltid kommer att summera till 1 kommer vi alltid att följa en kant. I nästa steg görs nu samma sak igen fast nu utgår vi från noden vi just har kommit till. Från början startar vi med en sannolikhetsfördelning g, där g n svarar mot hur stor sannolikheten är att vi startar i en viss given nod n. Maskinen stannar när vi har kommit till en viss slutnod. Dolda Markov-kedjor fungerar på samma sätt som Markovkedjor. Skillnaden är att varje gång vi kommer till en nod n kommer noden att generera en symbol i ett alfabet. Sannolikheten att noden n genererar bokstaven p är B n (p). Till exempel kan en nod ha sannolikheten 0,7 att generera symbolen pansarvagn och 0,3 att generera symbolen bandvagn. En pluton som alltid ställer upp på ett och endast ett sätt, till exempel först 2 pansarvagnar och sedan en bandvagn kan få följande graf. Se figur 1. Start Pa Pa Ba End Figur 1. Graf av en pluton som jämt ställer upp först en pansarvagn sedan en pansarvagn och sist en bandvagn Grafen startar med en startnod. Därefter kommer i tur och ordning de noder som representerar den första pansarvagnen, den andra pansarvagnen och bandvagnen. Grafen avslutas sedan med en slutnod. Dock är inte alla militära formationer så enkla. För mer komplicerade formationer krävs en viss struktur på graferna. Graferna består av tre stycken typer av noder: huvudnoder, läggtillnoder och tabortnoder [9]. 3
9 Huvudnoder (H n ) genererar normalfallet. Om enheten är en pluton, som normalt ställer upp med typen t 1 (t.ex. pansarvagn) som första fordon så kommer H 1 alltid att generera en pansarvagn. Läggtillnoder (L n ) genererar de fordon som normalt inte tillhör enheten och som klämt sig in före en huvudnod (H n ). Detta kan till exempel uppkomma då en pansarvagnspluton eskorterar ett fordon. Tabortnoder (T n ) är noder där det inte sker någon emission det vill säga noderna genererar inga symboler. T i används för att representera fallet där inte H i finns med. Detta kan till exempel uppkomma då fordonet som huvudnoden (H i ) representerar har skjutits sönder. Då T n är icke genererande noder så används dessa även för att markera startnod (T 0 ) och slutnod (T n+1 ). Figur 2. Standard HMM för att behandla en pluton som innehåller tre fordon. Inlärning och klassificering Det man nu vill göra är att skapa en HMM som har så stor sannolikhet som möjligt att generera givna observationer. Detta gör man genom att bestämma de olika övergångssannolikheterna med hjälp av träningsdata. För varje förband och taktik finns det separata träningsdata. Plutongraf Anta att vi är intresserade av att skapa en graf som lagrar informationen över hur en viss typ av enhet, pluton, med längden n ser ut. Plutonen ställer jämt upp på liknande sätt t 1, t 2, t n. t i och t j kan vara samma eller olika typer av fordon. Det kan som sagt förekomma förändringar i upp- 4
10 ställningen. Det kan ha tillkommit fordon. Det kan ha bytts ut fordon och det kan ha fallit bort fordon. Alla grafer startar med en startnod T 0. Från T 0 är det möjligt att gå till T 1, H 1 eller L 1. Att gå till H 1 täcker upp det förväntade fallet där det första fordonet är av typen t 1. Att gå till T 1 täcker upp det fallet där t 1 inte finns med. Att gå till L 1 täcker upp för det fallet där det har tillkommit oväntade fordon före t 1. Från L 1 kan man sedan gå till H 1, T 1 (om t 1 inte finns med) eller ånyo till L 1 (om ytterligare ett extra fordon finns med). Från H 1 och T 1 går man sedan vidare till H 2, T 2 eller L 2 och så vidare. Se figur 2. Ovanstående graf klarar dock bara av att plutonen ställer upp på liknande sätt hela tiden. Det vill säga att t 1, t 2,t 3 är givna typer av fordon. Om vi däremot bara vet att en pluton innehåller 2 stycken pansarvagnar och en bandvagn så blir grafen mer komplicerad. Då skapar man en fix graf för varje möjlig uppställning. I detta fall skulle det bli 3 stycken delgrafer (Pansarvagn pansarvagn bandvagn), (pansarvagn bandvagn pansarvagn) och (bandvagn pansarvagn pansarvagn). För var och en av dessa uppställningar skapar man en graf enligt ovanstående. Sedan kopplar man dom samman med en gemensam startnod och en gemensam slutnod genom att lägga till en kant från den gemensamma startnoden till var och en av grafernas startnod. Lägg också till en kant från de olika grafernas slutnoder till den gemensamma slutnoden. Kompanigraf Den vedertagna metoden att skapa en kompanigraf fungerar på samma sätt som när man skapar grafer för plutoner. Skillnaden mellan ett kompani och en pluton är att kompaniet är större. Det leder till att ett kompani kan ställa upp många fler kombinationer än en pluton. För varje möjlig uppställning krävs det nya träningsdata. Detta leder dock till att man måste ha tillgång till orimligt många träningsobservationer. Om vi i stället utnyttjar att vi vet hur plutonsuppställningen fungerar hierarkiskt och att plutoner håller ihop inom ett kompani kan vi skapa kompanigrafen på liknande sätt som när vi förut skapade plutonsgrafen. Vi låter kompanigrafen generera plutoner i stället för fordon. Ett exempel: Om vi skall göra en graf över ett kompani som innehåller två stycken pansarplutoner och en signalpluton och vi antar att den inbördes plutonsordningen inte är bestämd (Antagandet kan vara observerat i testdata,), finns då tre möjliga uppställningar beroende på var signalplutonen infogar sig i kompaniet. För varje sådan uppställning skapar vi en delgraf. Sedan sätter vi ihop delgraferna med en slutnod och en startnod. Observera dock skillnaden att nu genererar huvudnoderna plutoner och inte fordon. Se figur 3. 5
11 Figur 3. Ett kompani som innehåller tre stycken plutoner, två pansarvagnsplutoner och en signalpluton. Ordningen mellan de olika plutonerna kan skifta. Inlärning med Baum-Welch metod Baum-Welch metod är en inlärningsalgoritm. Det vill säga algoritmen bestämmer övergångsannolikheterna samt emissionssannolikheterna i grafen, så att de på bästa sätt stämmer med givna träningsdata. Emissionssannolikheterna är de olika sannolikheterna noderna har att genererar de olika fordonen. Detta gör att grafen kommer att få en så hög sannolikhet som möjligt att generera de olika sekvenserna som man har till träningsdata. Vi har en mängd med träningsdata O 1 O n. Dessa utgör iakttagelser av n stycken uppställningar. Vi är intresserade av att skapa en övergångsmatris för grafen. Det vill säga vilken sannolikhet som man har att följa de olika kanterna i varje nod. Denna övergångsmatris kallar vi för A. Värdet A ij står för sannolikheten att följa kanten från nod i till nod j. Om det inte går någon kant från i till j så sätts A ij till 0. 1 B j (t) står för sannolikheten att generera typen t i den genererande noden j. I algoritmens ursprungliga utformning sätts startvärdena på alla parametrar i grafen till slumpmässiga värden. Vi kommer dock att utnyttja att vi vet en hel del om grafen. Vi kan till exempel få en hygglig bild av sannolikheten att ett fordon tas bort respektive läggs till genom att titta på träningsdata och se hur mycket varje observation varierar i antalet symboler 1 Observera att inte hela matrisen behöver lagras. Det räcker med att lagra de värden som är större än 0. 6
12 räknat. Därefter kan vi beräkna ett medeltal över detta. Vi vet dessutom att sannolikheterna att de olika huvudnoderna genererar respektive elementtyp alltid är 1. Genom att stoppa in denna förhandsinformation i A ij och B j (t) underlättar vi för Baum-Welch vilket gör att vi sannolikt får bättre slutresultat. Baum-Welch Algoritm Från början har vi alltså våra n stycken träningsexempel som vi kallat O 1, O 2,, O n. [1,2].Vi är intresserade av att hålla reda på hur många gånger vi förväntar oss att en viss övergång sker. Vi inför därför C kl som är det förväntade antalet övergångar från nod k till nod l. Vi inför också E k (t) som är det förväntade antalet gånger noden k genererar typen t. Vi använder sedan dessa för att skatta nya värden på övergångssannolikheterna A kl och B j (t). N är antalet noder i grafen. T är antalet typer noden B j kan generera. A kl och B j (t) skattas på följande sätt. A < kl C N i kl C ki B ( t) < j E ( t) T i j E ( i) j Algoritmen fungerar på följande sätt. Först skattas C kl och E k (t) genom att beräkna möjliga stigar för träningssekvenserna utifrån de för närvarande gällande värdena på A kl och B j (t). Sedan används formlerna ovan för att skatta nya värden på A kl och B j (t). Denna process itereras sedan till ett stoppvillkor är uppfyllt. Stoppvillkoret baseras på log likelihood-värdet och beräknas på följande sätt för n stycken oberoende träningssekvenser. Algoritmen stannar när likelihood-värdet är tillräckligt stort. log P(O K n = = 1,O 2,,O n A, B) log P(O, ) i 1 i A B Det går att bevisa att processen konvergerar mot ett lokalt maximum. Det är dock något som inte kommer att tas upp i denna rapport utan det går med fördel att läsa i [2]. Läsaren bör dock känna till att det ofta finns ett flertal olika lokala maxima. Det är till stor del startvärdena som bestämmer vilket lokalt maximum metoden konvergerar mot. För att räkna ut C kl räknar man först ut hur stor sannolikhet det är att en viss övergång sker (k till l) när ett visst element (j) genereras på en viss träningssekvens (r). 7
13 r Numret på den för tillfället aktuella träningssekvensen. L r Längden på aktuella träningssekvens r. r α Denna variabel står för sannolikheten att man befinner kj sig i noden k när det j:te elementet i träningssekvensen r precis har blivit genererat. Denna variabel beräknas med Framåt-Algoritmen. Se Framåt-Algoritmen under rubriken Framåt-Bakåt-Algoritmen. 2 r β Denna variabel står för sannolikheten att man befinner l, j sig i noden j när det är kvar l stycken element att generera i träningssekvens r. Denna variabel beräknas med Bakåt-Algoritmen. Se Bakåt-Algoritmen under Rubriken Framåt-Bakåt-Algoritmen för mer information. 1 A kl Den just nu förväntade sannolikheten att vi följer kanten från nod k till nod l P(O r ) Detta element är till för att jämna ut värdena så att sannolikheten att följa någon kant från k alltid summerar till 1. C = 1 N l = 1 kl P( X j = k, X α kj + 1 = l O, A, B) = j * A kl * β P(O) l, j+ 1 När man väl vet sannolikheten att C kl används på ett visst ställe j för en viss träningssekvens r. Blir det totala antalet övergångar i Summan över samtliga element och exempel. C kl = r r Lr kj kl k, j+ 1 r = 1 j = 1 r n α * A * β P(O ) På liknande sätt kan vi beräkna det förväntade antalet gånger symbolen c genereras från tillstånd k. E ( c) = k r r Lr kj l, j+ 1 r = 1 j = 1 r n α * β P(O ) 2 Läsaren bör observera att det inte finns några regler på den exakta betydelsen av α och β. Det går därför inte att läsa Framåt-Bakåt-Algoritmen i någon annan rapport och förutsätta att formlerna precis skall stämma överens. 8
14 Felaktigt förenklade grafer och inlärning med Baum-Welch Detta avsnitt innehåller information om hur man inte bör bygga upp sina grafer, framförallt inte om man använder Baum-Welch som inlärningsalgoritm. Avsnittet finns med för att det tyvärr var detta sätt jag först utnyttjade och programmerade. Ett tidsmässigt dyrköpt misstag skulle det visa sig. Antag att man skall lära in en graf över en pluton som innehåller två pansarvagnar (pa) och en tank (ta) som kan ställa upp i varierande ordning. Det rätta sättet är då att skapa 3 delgrafer, en för vardera uppställning, för att sedan lära in en delgraf i taget. Det går dock att tänka sig att vi i stället bara har en delgraf och försöker att lära in alla tre uppställningarna. Man kan ju nämligen tänka sig att väldigt mycket är gemensamt mellan de olika riktiga delgraferna som tillexempel sannolikheterna att gå till respektive huvudnoder, tabortnoder och läggtillnoder. Grafernas läggtillnoder har nog också liknande sannolikhetsfördelningar när det gäller vilka fordon de genererar. Om vi skulle bygga en gemensam delgraf för alla plutonsuppställningar skulle alla huvudnoderna ha sannolikheten 1/3 att generera en tank och 2/3 att generera en pansarvagn. Vad är det då för fel att göra på detta sätt? För det första om inlärningen skulle fungera till belåtenhet skulle det ändå bli trassel. Antag att vi bara rör oss genom huvudnoderna vi vill då ha sannolikheten 1/3 att generera (ta,pa,pa), (pa,ta,pa) respektive (pa,pa,ta). Det är dock inte det som är fallet. Sannolikhetsfördelningen om man bara går genom huvudnoder ser i stället ut på följande sätt. 1/27 för (ta,ta,ta) 2/27 för (ta,ta,pa), (ta,pa,ta) och (pa,ta,ta) 4/27 för (ta,pa,pa), (pa,ta,pa) och (pa,pa,ta) 8/27 för (pa,pa,pa). Detta är givetvis inte speciellt lyckat eftersom det är större sannolikhet att det genereras en felaktig kombination än en korrekt. Det visade sig att det skulle bli ännu värre när man lär in graferna med Baum-Welch. Baum- Welch-inlärningsalgoritm tar ingen hänsyn till att läggtillnoderna, tabortnoderna respektive huvudnoderna har skilda teoretiska betydelser. Algoritmen försöker bara att hitta de sannolikheter som gör att så många träningsfall som möjligt får så stor sannolikhet som möjligt att genereras. Så det som händer är att algoritmen tar av läggtillnoderna och tabortnoderna för att på så sätt skapa tre huvudvägar, en för varje korrekt uppställning (ex ta,pa,pa). Detta i sin tur gör att Baum-Welch kommer att fastna i något icke önskvärt lokalt maximum vilket leder till att sanno- 9
15 likheten att generera (ta,pa,pa) kan skilja sig markant från sannolikheten att generera (pa,pa,ta). Detta är verkligen inte vad vi vill ha. Tabortnoder Dolda Markov Modeller innehåller normalt inte tabortnoder utan alla noder är genererande noder. Vi har, tråtts att dom krånglar till den del algoritmer, låtit dom vara kvar i Framåt-Bakåt-Algoritmen samt Cubictime Inference. När man utnyttjar Bayesianska Nätverk måste man dock ta bort tabortnoderna, i de andra algoritmerna kan dessa noder vara kvar. Vad finns det då för fördelar och nackdelar med tabortnoderna och vad är alternativen? Fördelar Det finns egentligen bara en fördel med tabortnoderna och det är att graferna får mycket färre kanter. Detta ger i sin tur flera fördelar: Graferna tar mindre plats. Framåt-Bakåt-Algoritmen går också mycket snabbare. Algoritmen får en tidskomplexitet på θ(n*d) i stället för θ(n 2 *D). Se avsnittet Hur man tar bort tabortnoderna för att förstå varför det blir fler kanter utan tabortnoderna. Nackdelar Det finns två nackdelar med tabortnoderna. Algoritmerna blir svårare att förstå och programmera. Icke genererande noder är något som normalt inte finns med i HMMer. Algoritmer som är utvecklade måste därför justeras. Det uppkommer fel när man använder sig av loopar av tabortnoder. Dessa felaktigheter beror på att Framåt-Bakåt-Algoritmen fungerar stegvis. Först räknar man ut hur stor sannolikheten är för att vi skall befinna oss i en viss nod. Därefter går man vidare. Har man en loop av tabortnoder är det dock inte lätt att beräkna hur stor sannolikhet man har att vara i en specifik nod. Om vi bara tänker oss en loop av enbart tabortnoder som har sannolikhet 1 att gå till nästa nod så går det inte att säga vad sannolikheten är att man befinner sig i en viss nod. Felen som uppkommer av dessa loopar är inget bekymmer för oss. De uppkommer nämligen bara när en kompanigraf befinner sig i en läggtillnod där den lägger till en plutons-graf där man bara går genom tabortnoderna. Detta har dock så liten in-verkan på beräkningarna att det inte utgör något problem för oss. Observera att om man utnyttjar dessa algoritmer för att studera probleminstanser där sannolikheten att komma till tabortnoder är stor bör man ta dock bort tabortnoderna. 10
16 Hur man tar bort tabortnoderna Vi kan vara intresserade av att ta bort tabortnoderna av flera skäl. Dels att ovanstående nackdelar helt enkelt är större än ovanstående fördelar. Dels förutsätter Bayesianska nätverk att dessa noder tas bort. Om vi antar att vi inte har loopar av tabortnoder (vilket vi kan ha) så kan vi gå till väga på följande sätt. Starta med den sista tabortnoden. Anta att den noden har k stycken utgående kanter och har l stycken ingående kanter med vardera sannolikhet P ut (k) och P in (l). För varje l så skapar man k stycken nya kanter som går från l:s startnod till k:s slutnod och har kantvikten P ut (k)*p in (l). När detta är gjort med den sista tabortnoden så gör man likadant med den näst sista tabortnoden och så vidare. Om vi inte längre utgår från antagandet att vi inte har loopar av tabortnoder så är man hänvisad till en numerisk metod. För varje nod n: starta i noden gör en bredden-först-sökning i p stycken steg och håll reda på hur stor sannolikhet det är att du kommer till de olika noderna. (Bredden-förstsökningen kan bara fortsätta att gå vidare från en nod om noden är en icke genererande nod.) Dra sedan en kant till alla noder som man hade en sannolikhet större en noll att komma till och sätt kantens kantvikt att bli den framberäknade sannolikheten. 11
17 Metodbeskrivningar I detta kapitel går det bland annat att läsa om tre olika algoritmer för att lösa kolonnproblemet samt dess för och nackdelar. Framåt-Bakåt-Algoritmen För tillfället har man plutonsgrafer som genererar fordon, kompanigrafer som genererar plutoner och så vidare. Vi är nu intresserade av att skapa en jättestor graf där vi har kompanier som genererar fordon. I alla noder som genererar en pluton i kompanigrafen sätter vi i stället in plutonens graf. Formellt ser detta ut på följande sätt. Starta med en kompanigraf. För varje genererande nod (i): Skapa ytterligare en ickegenererande nod (e). Koppla om alla i:s utgående kanter så att dom går från e i stället. För varje pluton (p) som noden (i) kan generera: 1. Kopiera p:s plutonsgraf. 2. Dra en kant från i till p:s startnod som har kantvikten B i (p). 3. Dra en kant från p:s slutnod till e och sätt kantvikten till 1. Avsluta det hela med att göra i till en icke genererande nod. Framåt-Algoritmen Man vill beräkna hur stor sannolikhet det är att en viss graf, som innehåller n stycken noder, genererar en utdatasträng D med en viss kombination av S stycken element. Med andra ord har man observerat en viss formation och vill ha reda på hur väl den stämmer överens med en känd graf. H ij står för sannolikheten att man befinner sig i den icke genererande noden i efter j stycken element är genererade. M ij står för sannolikheten att man befinner sig i den genererande noden i efter j stycken element är genererande. M ij om i är en genererande nod. α ij = H ij om i är en icke genererande nod. Vi startar med att befinna oss i grafens startillstånd med sannolikhet 1, H 10 =1 Sedan räknar vi sannolikheten att ta oss till alla de andra icke genererande noderna på följande sätt. H N = = i0 H k 1 k 0 * A ki 12
18 Nu kan vi successivt via följande rekursion räkna ut sannolikheterna att vi befinner oss i de olika noderna efter att j=1,2,...,s stycken fordon i data är genererade. Rekursion över j För de genererande tillstånden: M ij = B i N ( D ) = H 1 * A + M, j k 1 k, j ki k j 1 * A ki För de icke genererande tillstånden: H ij N = = M * A + H k 1 kj kj kj * A kj Värdet H NS står för sannolikheten att man har kommit till slutnoden efter att S stycken fordon i indata är genererade. Bakåt-Algoritmen Bakåt-Algoritmen fungerar i stort sett på samma sätt som Framåt- Algoritmen men nu börjar man i stället bakifrån och räknar sig mot startnoden. Metoden i sig ger ingen ny information utan man får bara fram vilken sannolikhet grafen har att generera indata. När man kombinerar Bakåt-Algoritmen med Framåt-Algoritmen får man fram hur stor sannolikhet det är att en viss nod genererar en viss enhet. När man sedan summerar över alla fordon får man fram hur stor sannolikhet det är att en nod i grafen har besökts. HB ij står för sannolikheten man befinner sig i den icke genererande noden i då j stycken element är kvar att generera, räknat bakifrån. MB ij står för sannolikheten att man befinner sig i den genererande noden precis före det j element är kvar att generera, räknat bakifrån. HBij om i är en icke genererande nod β ij = MBij om i är en genererande nod Vi startar med att befinna oss i grafens sluttillstånd med sannolikhet 1, H N0 =1 Sedan räknar vi sannolikheten att därifrån ta oss till alla de andra icke genererande noderna på följande sätt. HB 1 is = = HB N S * k k A ik 13
19 Och till de genererande tillstånden på följande sätt. MB 1 is = = HB N S * k k A ik Nu kan vi successivt via följande rekursion räkna ut sannolikheterna att vi befinner oss i de olika noderna efter att j=0,1,...,s-1 stycken fordon i data är genererade. Rekursion över j För de icke genererande tillstånden. HB ij = 1 = MB + + N, 1 * * ( ) * k k j Aik Bk DS j HBkj A ik För de genererande tillstånden. MB ij = 1 = HB * + N, + 1 * * ( ) k kj Aik MBk j Aik Bk DS j Framåt-Bakåt-Algoritmen Räkna ut både Framåt-Algoritmen och Bakåt-Algoritmen. Sannolikheten att en nod i är besökt är FB i. FBi N = = α * k ik β ik 1 Tidskomplexitet: Framåt-Bakåt-Algoritmen har normalt en tidskomplexitet på θ(n 2 *S) där N=antal noder i grafen och S=antal element i indata. Dock är inte detta ett normalfall eftersom grafen är mycket gles, antal kanter är ungefär lika med 3N. Detta gör att vi får en tidskomplexitet på θ(n*s) Resultat: Vad får man nu fram för information genom Framåt-Bakåt- Algoritmen? Man får dels fram vilken sannolikhet grafen har att generera en viss följd av element. Man får också fram hur stor sannolikhet man har att besöka de olika noderna. Genom att veta detta kan man först jämföra vilken kompaniuppställning som var den mest sannolika. Sedan kan man betrakta sannolikheterna för de olika plutonerna i denna specifika uppställning och därigenom se om lägg till noderna och tabortnoderna har förhållandevis hög sannolikhet att besökas. Genom att veta detta går det 14
20 att dra slutsatser om hur den riktiga plutonsuppställningen ser ut. Om vi har en bataljongraf så får vi fram dels kompaniuppställningen och dels plutonsuppställningen för varje kompani. Fördelar: Denna metod är förhållandevis lätt att programmera. Man får fram mycket information angående formationens uppställning. Nackdelar: Tidskomplexiteten är θ(n*s) och eftersom N är mycket stort är algoritmen långsam. Man är tvungen att lagra mycket stora grafer. Viket kan leda till prestandaproblem på grund av att RAM-minnet tar slut. Cubic-time Inference Cubic-time Inference är en variant på Framåt-Algoritmen. Dess stora fördel är att den går mycket fort. Algoritmen ger samtidigt svar på så gott som alla frågor vi vill ha svar på. Vi får ut vilken fiendeformation som bäst stämmer överens med observationsdata. Vi kan också få ut vilken uppställning som formationen har en hierarkisk nivå neråt. Om kompaninivån är den högsta får vi också ut plutonsuppställningen och om bataljonsnivån är den högsta får vi ut kompaniuppställningen. Det står en del om denna metod i [4]. Algoritmen är en utvidgning av Framåt-Algoritmen så att den fungerar på hierarkiska strukturer. Algoritmen fungerar nivåvis där första nivån är plutonsnivån, den andra kompaninivån och så vidare. Första nivån räknar man ut med hjälp av Framåt-Algoritmen. Nivå två kan nu räknas ut baserat på de framberäknade data för nivå ett. På detta sätt fortsätter man sedan till den högsta nivån är uträknad. När man räknat ut en nivå så utnyttjar man det nyss framräknade data för att räkna ut nästa nivå och så vidare tills man har räknat ut den översta nivån och därigenom är klar. Algoritmen Till varje delgraf kommer det att finnas en stor tabell. Tabellen används för att mellanlagra resultat så att algoritmen kan arbeta sig framåt en nivå i taget. Tabellerna har storleken D 2. Tabellerna numreras efter vilken nivå dom befinner sig på samt vilken delgraf i ordningen just den tabellen står för. Med H 23 menas tabellen för den tredje delgrafen på nivå 2 (kompaninivån). Värdet H 23 (n,m) står för sannolikheten att om delgrafen startar i sitt startillstånd genererar den alla indata från n och till och med m och därefter befinner sig i sitt sluttillstånd. På raden H 23 (n) står de olika sannolikheterna för att delgrafen befinner sig i sin slutnod efter att den har startat med att generera fordon n. 15
21 Första nivån: På plutonsnivån går detta enkelt att beräkna tabellen i med Framåt- Algoritmen. För att skapa raden H 1i (n),och därigenom räkna ut alla sannolikheterna H 1i (n,m) n m D går vi till väga på följande sätt. Starta med att räkna ut H 1i (n,n). Använd Framåt-Algoritmen och beräkna sannolikheten att grafen bara genererar fordonet f n. För att nu beräkna H 1i (n,n+1) så behöver vi inte börja om från börja vi tar bara ytterligare ett steg framåt med Framåt-Algoritmen. Vi har då totalt räknat ut sannolikheterna att vi befinner oss i delgrafens olika noderna efter att ha genererat fordonen f n och f n+1. Sannolikheten H 1i (n,n+1) går då att läsa av som sannolikheten att vi befinner oss i slutnoden. På samma sätt får vi stegvis fram de andra sannolikheterna. Den allmänna nivån (o): Algoritmen som vi nu skall använda skiljer sig inte mycket från den vanliga Framåt-Algoritmen. För att vi skall kunna räkna ut nivån o så måste nivån o-1 vara färdiguträknad. Det vill säga alla tabeller för nivån o-1 är uträknade. När vi nu kommer till en genererande nod utnyttjar vi att den genererar nivå o-1 grafer. Vi är intresserade av att hålla reda på hur många fordon nodens nivå o-1 grafer kommer att generera för att veta när vi skall hoppa vidare till nästa nod. Detta är dock redan framräknat. Vi låter varje nod (n) ha D stycken sannolikheter R. R nt står för sannolikheten att någon av nivå o-1 graferna som n genererar befinner sig i sitt slutillstånd efter t stycken fordon är genererande. Ett steg går till på följande sätt. Räkna ut hur stor sannolikhet (S nt ) det är att vi kommer till en viss nod n efter att t fordon är genererade på följande sätt. S nt N = = j 1 R jt * A jn N är antalet noder i grafen. A är övergångsmatrisen för grafen. Vi är nu intresserade av att få fram hur mycket sannolikheterna R n,t-1 + ökar med när det t:te elementet genereras. Vi kallar ökningen för R nt. Noden n kan generera K stycken delgrafer med sannolikheterna B(k). R + nt = S nt * K = B( i) * H 1 1, (,D) i o i t 16
22 När vi har räknat ut + R nt för alla noder uppdaterar vi R n,t-1. R nt = R + nt + Rn, t 1 På detta sätt tar vi oss fram ett steg i taget. Tidskomplexitet: Denna metod har en tidskomplexitet på θ(d 3 *G) där D är storleken på indata och G är antalet grafer. Det vill säga antalet plutoner + antalet kompanier + antalet bataljoner och så vidare. Fördelar: Metoden ger svar på det mesta vi kan tänkas vara intresserade av. Den svarar på vilket förband som har högst sannolikhet att passa med indata samt vilka dess huvudbeståndsdelar är. Om vi till exempel tittar på bataljonsnivån så får vi fram den mest sannolika bataljonen samt vilka kompanier den består av. Algoritmen är snabbare än Framåt-Bakåt- Algoritmen. Nackdelar: Man får inte fram lika mycket information med Cubic-time Inference som med Framåt-Bakåt-Algoritmen. Man får fram sannolikheten att en militär formation matchar mot observationsdata och man får fram vilken förväntad uppställning formationen sannolikt har. Man får dock inte fram om läggtillnoder eller tabortnoder har används. Bayesianska nätverk Denna metod startar med att lära upp graferna på samma sätt som förut. Det vill säga man lär upp varje plutonsgraf för sig, varje kompanigraf för sig och så vidare. Sedan tar man bort alla tabortnoder. Se Hur man tar bort tabortnoder. Efter att en graf är upplärd med till exempel Baum-Welch inlärningsalgoritm och tabortnoderna är borttagna så översätts den till ett bayesianskt nätverk. Se avsnitet nedan. När man väl detta är gjort så går det att utnyttja ett flertal olika snabba algoritmer till, exempel J-tree [6,11], för att beräkna vilken militär enhet som har störst sannolikhet att passa med given observation. Förutom denna översättning kommer inga Bayesianska algoritmer att tas upp. Läsaren bör veta att detta algoritm-paket är mycket omfattande och genomarbetat. 17
23 d Figur 4: En HMM representerad som Bayesianskt nätverk. Qt är var man befinner sig i tid t på nivån d; F =1 om HMM:en har nått sin slutnod på nivå d i annat fall är F =0. d t Översättningen Vi börjar med att skapa en övergångsmatris på följande sätt. Alla olika plutonsgrafer läggs på en rad. Sedan numrerar vi alla olika noder på plutonsnivån från ett och framåt. Detta kallar vi lager D. Sedan numrerar vi alla olika kompaninoder och kallar dessa för nivå D-1 och så vidare till det högsta lagret som blir lager ett. Vi skapar en ny stor övergångsmatris per lager. Där står det hur sannolika de olika övergångarna är mellan de olika tillstånden. Observera att de flesta av dessa övergångar har sanno-likhet 0. Detta på grund av att det inte skall gå att följa en kant mellan två olika plutoner. Vi skapar också en matris för varje nivå där det står vilka d starttillstånden är. Detta är beroende på de högre nivåerna. Qt står för hur sannolikt det är att man befinner sig i de olika noderna på nivå d efter att t indata är beräknade. Med tidssteget t menar man att man har genererat t-1 stycken enheter i indata och håller på att beräkna vad som händer när man genererar det t:te indata tecknet. Vilket i vårat fall skulle vara fordon nummer t. Vi kan nu beskriva vårt läge i grafen med en vektor Q 1:D. Vi d lägger nu till indikatorvariabler F t. Indikatorvariabeln är 1 om grafen i nivå d har nått sitt sluttillstånd. Det vill säga om man befinner sig på nivå k i grafen och sannolikheten är p att man härifrån kommer till sluttillståndet för nivån, och därigenom hoppar till nivån ovanför för att i den nivån ta ett steg framåt, är sannolikheten p att indikatorvariabel F k blir satt till 1. d t 18
24 Ett konkret exempel skulle vara att man befinner sig i en plutons sluttillstånd. Då förväntar vi ju oss att vi kommer upp till kompaninivån och där tar ett steg framåt. Observera att om F k =1 så kommer F k-1 också att vara 1 för att om vi befinner oss i kompaninivåns sluttillstånd så innebär det också att vi är befinner oss i plutonsnivåns sluttillstånd. Vilket också innebär att om F k = 0 så kommer F b = 0 för alla b>k. Q D är det understa lagret. Vektorn Q 1:D-1 t beskriver hur den ser ut högre upp i grafen. Om Q D kommer till sitt sluttillstånd så kommer F D att bli 1. Detta betyder just att Q D är klar och kommer att skicka vidare den signalen till högre nivåer. Dessa nivåer kan först nu ändra tillstånd. Detta betyder också att nästa värde på Q D skall komma från ett initieringsvärde. I vårt fall kommer vi bara att ha ett begränsat antal initieringsvärden nämligen våra startnoder. Formellt ser det ut så här. P( Q D t D D = j Qt = i, Ft 1 1 = f, Q 1:D-1 t A = k) = g D k D k ( i, j) om ( j) om f f = 0 = 1 Vi har här antagit att i,j Q D D :s slutnod. A k är övergångsmatrisen för nivån D givet att positionen på de lagren som ligger högre upp är lika med vektorn k. g D k är initierings vecktorn för de olika noderna på lagar D återigen givet att lagren 1:D-1 befinner sig i position k. Initieringsvektorn och övergångsmatrisen kommer att vara beroende på föräldrarna (alla lagren som ligger ovanför det lager vi för tillfället beräknar) olika föräldrar har olika sannolikheter att generera de olika plutonerna och därigenom har dom olika sannolikheter för att komma till de olika starttillstånden. Ekvationen för F D kan formellt skrivas på följande sätt. D 1:D 1 D P( Ft = 1 Qt = k, Qt = i) = A D k ( i, slut) Från början hade vi visserligen flera olika slutnoder på varje nivå, till exempel hade varje pluton sin egen slutnod, det är dock ekvivalent med en gemensam slutnod. I alla fall om man följer dessa algoritmer. d d Vi skall nu beskriva det allmänna fallet. Q t är som förut beroende av Qt 1 d och Ft 1. Vi får nu också en signal från d+1 lagret som vi kallar f. Om f =0 så innebär det att lagret under inte är klart och vi skall därför inte byta tillstånd på denna nivå. Om däremot f=1 så skall vi byta tillstånd och samma 19
25 regler gäller nu för denna nivå som för D nivån. Formellt kan detta skrivas på följande sätt. 3 P( Q d t = j Q d t 1 = i, F d + 1 t 1 = b, F d t 1 = f, Q 1: d 1 t 0 om b = 0 d = k) = Ak ( i, j) om b = 1och d g k ( i, j) om b = 1och f f = 0 = 1 F d blir 1 endast om nivån under har kommit till sitt sluttillstånd och om vi dessutom har kommit till sluttillståndet för denna nivån. Detta kan skrivas på följande sätt. P( F d t = 1 Q d t 1 = i, Q 1: d 1 t = k, F d + 1 t 0 om b = 0 = b) = d Ak ( i, slut) om b = 1 För den översta nivån gäller det att den inte har några föräldrar och Q 1:d-1 =k kommer därför att falla bort. Initieringsvärdena när t=1 för den översta nivån är 1/(antalet formationer på den översta nivån) om inget annat anges. Fördelar: Genom att använda denna översättning får man tillgång till ett mycket stort antal algoritmer. Det finns både långsamma exakta metoder samt mycket snabba heuristiska metoder. Ett flertal av dessa finns redan färdigprogrammerade. Nackdelar: Översättningen är omständlig och svårprogrammerad. Tidskomplexitet: Själva översättningen går fort, och enligt [4] går det sedan att utföra de nödvändiga beräkningarna θ(d). Utförande Jag valde att implementera Framåt-Bakåt-Algoritmen av tre skäl. För det första verkade denna metod enklare att programmera. För det första andra går det, som jag redan nämnt, att få fram mer information ur Framåt- Bakåt-Algoritmen. Jag programmerade i MatLab och C. Jag skrev allting i MatLab förutom det de tidskritiska delarna som jag skrev i C. Inlärningen, som är den mest tidskrävande delen, fanns redan från början skriven i C. 3 Mycket av informationen till denna översättning hämtades i [4]. Denna formel skiljer sig dock lite från källan. I källan stod det att det fanns en chans att komma till j om b=0. 20
26 Beräkningar och testresultat Beräkningar De olika algoritmerna har visserligen olika tidskomplexitet men det är ändå inte lätt att säga vilken algoritm som är den snabbaste på grund av att de är beroende av olika faktorer. Nedan följer ett exempel på hur många beräkningar/tidssteg det tar för de olika algoritmerna att räkna ut vilken bataljon som bäst stämmer överens med en given observation. Antag att Varje pluton innehåller 4 fordon. Varje kompani innehåller 4 plutoner Varje bataljon innehåller 4 kompanier Det finns 10 plutonstyper Det finns 8 kompanityper. Det finns 15 bataljontyper. Indatasträngen är 64 fordon lång. Då tar Framåt-Bakåt-Algoritmen,och det gamla sättet att skapa graferna, 3,6*10 92 beräkningssteg. Framåt-Bakåt-Algoritmen och man tar hänsyn till hierarkin 200*10 9 beräkningssteg. Cubic-time Inference har 2,5*10 9 beräkningssteg. Tester Testet [12] testar om det gamla sättet att bygga upp grafer ger samma resultat som om man bygger upp graferna på det nya sättet då man tar hänsyn till plutonerna. Man testar också skillnaden mellan att tillåta att hela plutoner läggs till och tas bort kontra att man inte tillåter detta. Experimentet tvingas tyvärr att vara mycket litet, detta beroende på att inlärningen tar mycket lång tid om man gör på det gamla sättet. Experimentet såg ut på följande sätt. Det fanns ett kompani och det bestod av tre stycken plutoner, två av typ A och en av typ B. Plutonen A innehöll två fordon av typ a och ett av typ b, och pluton B innehöll ett fordon av typ b och två av typ c. Den här strukturen lärdes in på tre sätt. Två sätt där man tar hänsyn till plutonsuppställningen men där det skiljer på hur mycket förändringar det är på plutonsnivå. Samt ett sätt där man lär in det gamla sättet. I samtliga fall används 120 träningsdata per möjlig uppställning. 21
27 Träningstiden för att lära in de hierarkiska strukturerna var 4 minuter var, medan det tog 10 timmar att lära in den platta modellen på en Pentium2 900 MHz. Hierarkisk 1 De 6 skilda uppställningarna på den lägsta nivån aab, aba, baa, för pluton A och bcc, cbc, ccb för pluton B lärdes in separat. På samma sätt lärdes sekvenserna AAB, ABA, BAA, in separat på kompaninivån. För varje organisationstyp, pluton eller kompani, parallellkopplades de tre möjliga uppställningarna vardera med sannolikheten 1/3 vid beräkningarna. Träningssekvenserna var genererade på följande sätt. Sannolikheten att ett fordon hade tillkommit, var bortaget eller hade bytts ut var 0,08. Detta innebär att sannolikheten att det normala fordonet kommer på en given plats är 0,7728. Sannolikheten att generera en helt normal pluton blir då (0,7728) 3 =0,4615. Träningssekvenserna för kompaniet hade sannolikheten 0,01 att ta bort respektive lägga till plutoner och 0 för att byta ut plutoner. Sannolikheten att generera ett kompani med en normal sammansättning av plutoner blir då 0,9411. Till slut blir sannolikheten att generera ett helt normalt kompani med normala plutoner 0,9411*(0,4615) 3 = 0,0925. Hierarkisk 2 I detta fall ser plutonerna ut på samma sätt som ovan. Nu har dock kompaniet sannolikheten 0,08 att ta bort plutoner, lägga till plutoner, samt att byta ut plutoner. Detta gör att sannolikheten att kompaniet har en normal sammansättning av plutoner blir 0,4615. Sannolikheten att hela kompaniet har en normal sammansättning blir då (0,4615) 4 = 0,045. Platt Det gamla sättet att skapa kompanier har 81 olika sekvenser att lära in. Varje pluton kan ställa upp på 3 olika sätt och det finns 3 plutoner i ett kompani. Bara detta gör att det finns 27 olika möjliga uppställningar. Sen kan plutonerna också ha varierande ordning vilket gör att det totalt blir 81 olika sekvenser att lära in. Varje sådan sekvens tränades med 120 stycken träningssekvenser. Sannolikheten att ta bort, lägga till eller byta ut ett fordon var 0,08. Detta gör att sannolikheten att ett fordon dyker upp på sin förväntade plats blir 0,7728 och sannolikheten att en pluton blir normal är 0,4615. Detta gör att kompaniet har en sannolikhet på 0,0983 att bli normal. Experimenten Jag gjorde fem stycken jämförelser mellan de tre fallen. I testet perfekt undersökte jag skillnaden mellan de tre fallen om de får helt förväntade indata. I läggtill 1 och 2 läggs det till ett respektive två fordon från de per- 22
28 fekta indata, i tabort tas det bort ett fordon och i läggtill-pluton läggs en hel pluton till. För att underlätta jämförelser normaliseras varje test så att summan av fall1, fall2, fall3 blir ett. Värdet som står under vardera test står för vilket värde summan av fall 1,2 och tre är. Resultatet av testerna går att läsa i figur 5. 0,6 0,5 0,4 0,3 0,2 Platt Hierarkisk 1 Hierarkisk 2 0,1 0 Perfekt 0.36 Lägg till Ta bort Lägg till Lägg till Pluton Figur 5. Diagrammet visar hur stor sannolikhet det är att de tre olika fallen genererar vissa testfall. Platt är ett icke hierarkiskt fall. Skillnaden mellan de två hierarkiska fallen är att Hierarkisk 2 tillåter att hela plutoner byts ut. Talen som står under Perfekt, Lägg till 1 mm är en normaliseringsfaktor. Vid lägg till 1 har det lagts till ett fordon till det förväntade testfallet. Testresultat Resultatet visar att det inte är så stor skillnad mellan de olika fallen så länge vi inte tar bort hela plutoner då dom hierarkiska fallen ger bättre resultat. Eftersom vi vet att det platta fallet ger korrekt resultat [1] och vi får samma svar med de hierarkiska fallen, kan vi dra slutsatsen att de hierarkiska fallen också ger korrekt resultat. Att de två hierarkiska fallen ger mycket högre sannolikhet när vi lägger till en hel pluton är inte att förvånas över då dessa fall just är framtagna för att ta hänsyn till hela plutoner. Det kan kanske tyckas märkligt att Hierarkiskt 2 är så pass lite bättre en Hierarkiskt 1 när vi lägger till en hel pluton. Detta beror på att plutonerna är så pass små att det går att lägga till tre fordon i stället för en hel pluton utan att ha alltför stort sannolikhets fall. 23
29 Slutsatser Hierarki kontra ej hierarki Fördelar med att använda en hierarkisk struktur. Vi behöver mycket minde träningsdata eftersom vi tränar upp mycket mindre enheter. Träningen går därför mycket snabbare. Vi kan också få ut mycket mer information. Vi kan inte bara som förut få fram vilken militär fiendeformation som vi har fått information om. Vi kan nu också få information om hur den har ställt upp från högsta nivån till plutonsnivån. Vi kan fram informationen mycket snabbare. Nackdelar med hierarkisk struktur: Det förutsätter att fiendearmén är formerad med hierarkisk struktur för att det överhuvudtaget skall vara möjligt att utnyttja något som helst hierarkisk synsätt. Metodval Vilken av de tre metoderna bör man nu välja? Ja, det beror mycket på vilka frågor man vill ha svar på. Är man bara intresserad av vilken militär enhet det är och hur dess största underenheter har ställt upp, och tycker att metodens hastighet är kritisk bör man välja Cubic-time Inference-algoritmen. Den går helt enkelt snabbare än Framåt-Bakåt-Algoritmen. Är man intresserad av att komma åt ett stort och välbeprövat metodpaket där det bland annat finns mycket snabba heuristiska metoder bör man översätta problemet till Bayesianska Nätverk Är man intresserad av att få fram all information, inte bara vilken militär enhet som är den eftersökta eller hur just den enheten i stort har ställt upp. Utan man också är intresserad av hur den ställt upp på de lägsta nivåerna. Då är man tvungen att utnyttja Framåt-Bakåt-Algoritmen. Man bör också observera att man måste ha god förståelse för hur algoritmen fungerar för att kunna tillgodogöra sig den information som överskrider det man får fram ur Cubic-time Inference-metoden. En sidokommentar är att det kanske inte är omöjligt att skapa en kombination av Framåt-Bakåt-Algoritmen och Cubic-time Inferencealgoritmen så att man får alla fördelar från båda metoderna. Detta behöver inte vara svårt. Det är dock något som inte har gjorts än. 24
30 Referenser 1 Modellering av kolonnproblemet J. Björnfot. Mars 2000 FOA-R SE ISSN Hidden Markov Models and Probabilistic Learning with Applications to Bioinformatics T. Koski. Maj 1999 ISSN ISBN The hierarchical Hidden Markov Model: Analysis and applications. S. Fine, Y. Singer and N. Tishby Machine Learning 32:41 4 Linear time inference in hierarchical HMMs. K. Murphy and M. Paskin in Proc NIPS Hierarchical Hidden Markov Models with general state hierarchy. H. H. Bui, D. Q. Phung and S. Venkatesh in Proc AAA Dynamic Bayesian networks: Representation, inference and learning. K. Murphy 7 A new implementation of Hierarchical Hidden Markov Models, Ch. 5 in Statistical models for non-markovian control task. D. Wiersta INF/SCR Institute of Information and Computing Sciences. Utrecht University. 8 Using Hierarchical HMMs in dynamic behavior modeling. S.Y. Chiao. and C.S. Xyderas. Proc FUSION pp International Society of Information Fusion. Sunnyvale.CA 9 A generalized Hidden Markov Models for the recognition of human genes in DNA. D. Kulp, D. Haussler, M.G. Reese and F.H. Eeckman. Prac ISMB 4. pp
TAMS79: Föreläsning 10 Markovkedjor
TAMS79: Föreläsning 0 Markovkedjor Johan Thim december 08 0. Markovkedjor Vi ska nu betrakta en speciell tidsdiskret diskret stokastisk process, nämligen Markovkedjan. Vi börjar med en definition Definition.
Grafer och grannmatriser
Föreläsning 2, Linjär algebra IT VT2008 Som avslutning på kursen ska vi knyta samman linjär algebra med grafteori och sannolikhetsteori från första kursen. Resultatet blir så kallade slumpvandringar på
Föreläsningsanteckningar F6
Föreläsningsanteckningar F6 Martin Andersson & Patrik Falkman Kortaste vägen mellan en nod och alla andra noder Detta problem innebär att givet en graf G = (E,V) hitta den kortaste vägen över E från en
Föreläsning 5: Grafer Del 1
2D1458, Problemlösning och programmering under press Föreläsning 5: Grafer Del 1 Datum: 2006-10-02 Skribent(er): Henrik Sjögren, Patrik Glas Föreläsare: Gunnar Kreitz Den här föreläsningen var den första
Informationsfusion - en nyckelteknologi för informationsöverlägsenhet. Per Svensson
Informationsfusion - en nyckelteknologi för informationsöverlägsenhet Per Svensson Inst f Data- och informationsfusion Totalförsvarets forskningsinstitut Per Svensson okt. -01 1 Ledning som kommunikation:
Markovkedjor. Patrik Zetterberg. 8 januari 2013
Markovkedjor Patrik Zetterberg 8 januari 2013 1 / 15 Markovkedjor En markovkedja är en stokastisk process där både processen och tiden antas diskreta. Variabeln som undersöks kan både vara numerisk (diskreta)
Stokastiska processer
Stokastiska processer Fredrik Olsson, fredrik.olsson@iml.lth.se Avdelningen för produktionsekonomi Lunds tekniska högskola, Lunds universitet Dessa förläsningsanteckningar kommer att behandla diskreta
Markovprocesser SF1904
Markovprocesser SF1904 Johan Westerborn johawes@kth.se Föreläsning 4 Markovprocesser 20 April 2015 Johan Westerborn Markovprocesser (1) Föreläsning 4 Föreläsningsplan 1 Förra Föreläsningen 2 Innbäddade
Datastrukturer och Algoritmer D0041D
Luleå Tekniska Universitet 19 mars 2014 Laborationsrapport Laboration 3 Datastrukturer och Algoritmer D0041D Primms Algoritm Namn E-mail Magnus Björk magbjr-3@ltu.student.se Handledare Felix Hansson Primms
Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.
Föreläsning 9: Turingmaskiner och oavgörbarhet Turingmaskinen Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Data är ett oändligt långt band där nollor och ettor står
Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4
Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 014-015 Denna lektion ska vi studera rekursion. Lektion 4 Principen om induktion Principen om induktion är ett vanligt sätt att bevisa
Föreläsning 5: Dynamisk programmering
Föreläsning 5: Dynamisk programmering Vi betraktar en typ av problem vi tidigare sett: Indata: En uppsättning intervall [s i,f i ] med vikt w i. Mål: Att hitta en uppsättning icke överlappande intervall
Markovprocesser SF1904
Markovprocesser SF1904 Johan Westerborn johawes@kth.se Föreläsning 3 Markovprocesser 16 April 2015 Johan Westerborn Markovprocesser (1) Föreläsning 3 Föreläsningsplan 1 Förra Föreläsningen 2 Markovprocesser
TNK049 Optimeringslära
TNK49 Optimeringslära Clas Rydergren, ITN Föreläsning 7 Nätverksoptimering Billigaste uppspännande träd (MST) Billigaste väg (SP) Projektnätverk Minkostnadsflödesproblem Agenda Terminologi för grafer/nätverk
Markovprocesser SF1904
Markovprocesser SF1904 Johan Westerborn johawes@kth.se Föreläsning 5 Markovprocesser 2 Maj 2016 Johan Westerborn Markovprocesser (1) Föreläsning 5 Föreläsningsplan 1 Förra Föreläsningen 2 Poissonprocessen
Markovprocesser SF1904
Markovprocesser SF1904 Johan Westerborn johawes@kth.se Föreläsning 3 Markovprocesser 13 April 2016 Johan Westerborn Markovprocesser (1) Föreläsning 3 Föreläsningsplan 1 Förra Föreläsningen 2 Markovprocesser
UPPGIFT 1 WILL ROGERS FENOMEN
UPPGIFT 1 WILL ROGERS FENOMEN Will Rogers (1879-1935) var en amerikansk komiker känd för bland annat följande citat: When the Okies left Oklahoma and moved to California, they raised the average intelligence
Markovprocesser SF1904
Markovprocesser SF1904 Johan Westerborn johawes@kth.se Föreläsning 5 Markovprocesser 24 April 2015 Johan Westerborn Markovprocesser (1) Föreläsning 5 Föreläsningsplan 1 Förra Föreläsningen 2 Poissonprocessen
Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.
Turingmaskiner och oavgörbarhet Turingmaskinen Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Data är ett oändligt långt band där nollor och ettor står skrivna: Oändligt
SF1901: Sannolikhetslära och statistik Föreläsning 2. Betingad sannolikhet & Oberoende
SF1901: Sannolikhetslära och statistik Föreläsning 2. Betingad sannolikhet & Oberoende Jan Grandell & Timo Koski 21.01.2015 Jan Grandell & Timo Koski () Matematisk statistik 21.01.2015 1 / 1 Repetition:
DAB760: Språk och logik
DAB76: Språk och logik /4: Finita automater och -7 reguljära uttryck Leif Grönqvist (leif.gronqvist@msi.vxu.se) Växjö Universitet (MSI) GSLT (Sveriges nationella forskarskola i språkteknologi) Göteborg
Föreläsninsanteckningar till föreläsning 3: Entropi
Föreläsninsanteckningar till föreläsning 3: Entropi Johan Håstad, transkriberat av Pehr Söderman 2006-01-20 1 Entropi Entropi är, inom kryptografin, ett mått på informationsinnehållet i en slumpvariabel.
Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,
Uppsala universitet Institutionen för informationsteknologi Teknisk databehandling Tentamen i Beräkningsvetenskap I/KF, 5. hp, 215-3-17 Skrivtid: 14 17 (OBS! Tre timmars skrivtid!) Hjälpmedel: Bifogat
Bayesianska numeriska metoder II
Bayesianska numeriska metoder II T. Olofsson Gibb's sampling Vi har sett att en viktig teknik vid Bayesiansk inferens är s.k marginalisering vilket, för kontinuerliga variabler, innebär att vi integrerar
P(X nk 1 = j k 1,..., X n0 = j 0 ) = j 1, X n0 = j 0 ) P(X n0 = j 0 ) = etc... P(X n0 = j 0 ) ... P(X n 1
Kaitel 1 Mer Markovkedjor Med att secificera en Markovkedja menar vi att man bestämmer övergångsmatrisen P. Detta säger ju allt om dynamiken för rocessen. Om vi dessutom vet hur kedjan startar, dvs startfördelningen
Teoretisk del. Facit Tentamen TDDC (6)
Facit Tentamen TDDC30 2014-08-29 1 (6) Teoretisk del 1. (6p) "Snabba frågor" Alla svar motiveras väl. a) Vad är skillnaden mellan synligheterna public, private och protected? (1p) Svar:public: Nåbar för
Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.
OS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervalsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet
Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...
OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervarlsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet
Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL2 och Media 1, SF1610 och 5B1118, onsdagen den 17 augusti 2011, kl
Matematiska Institutionen KTH Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL och Media, SF60 och 5B8, onsdagen den 7 augusti 0, kl 4.00-9.00. Examinator: Olof Heden Hjälpmedel: Inga
TANA17 Matematiska beräkningar med Matlab
TANA17 Matematiska beräkningar med Matlab Laboration 1. Linjär Algebra och Avbildningar Namn: Personnummer: Epost: Namn: Personnummer: Epost: Godkänd den: Sign: Retur: 1 Introduktion I denna övning skall
Optimala koder. Övre gräns för optimala koder. Gränser. Övre gräns för optimala koder, forts.
Datakompression fö 3 p.3 Datakompression fö 3 p.4 Optimala koder Övre gräns för optimala koder En prefixkod kallas optimal om det inte existerar någon annan kod (för samma alfabet och sannolikhetsfördelning)
1 LP-problem på standardform och Simplexmetoden
Krister Svanberg, mars 202 LP-problem på standardform och Simplexmetoden I detta avsnitt utgår vi från LP-formuleringen (2.2) från föreläsning. Denna form är den bäst lämpade för en strömlinjeformad implementering
Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder
Block 2 Algebra och Diskret Matematik A BLOCK INNEHÅLL Referenser Inledning 1. Följder 2. Rekursiva definitioner 3. Sigmanotation för summor 4. Strängar 5. Tal 6. Övningsuppgifter Referenser Följder, strängar
Optimala koder. Det existerar förstås flera koder som har samma kodordsmedellängd. Enklaste fallet är att bara byta 0:or mot 1:or.
Datakompression fö 3 p.1 Optimala koder En prefixkod kallas optimal om det inte existerar någon annan kod (för samma alfabet och sannolikhetsfördelning) som har lägre kodordsmedellängd. Det existerar förstås
Modellering av felkíallor i digitala kanaler Magnus Berglund Magnus Danielsson Henry Jatko Henrik Wallin 8 maj 199 LULEçA TEKNISKA UNIVERSITET Avdelningen fíor signalbehandling. Sammanfattning Vid simuleringar
Regression med Genetiska Algoritmer
Regression med Genetiska Algoritmer Projektarbete, Artificiell intelligens, 729G43 Jimmy Eriksson, jimer336 770529-5991 2014 Inledning Hur många kramar finns det i världen givet? Att kunna estimera givet
Tentamen, EDA501/EDAA20 Programmering M MD W BK L
LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen, EDA501/EDAA20 Programmering M MD W BK L 2017 05 31, 8.00 13.00 Anvisningar: Preliminärt ger uppgifterna 9 + 12 + 10 + 9 = 40 poäng.
Tillvägaghångssätt för skattning av körkortsmodell
Siamak Baradaran sia@kth.se Tillvägaghångssätt för skattning av körkortsmodell 1 Syfte med modellen Syftet med denna forskning har varit att utveckla en beskrivande modell som kan hjälpa oss att förstå
Konvergens för iterativa metoder
Konvergens för iterativa metoder 1 Terminologi Iterativa metoder används för att lösa olinjära (och ibland linjära) ekvationssystem numeriskt. De utgår från en startgissning x 0 och ger sedan en följd
Föreläsning 5 Innehåll
Föreläsning 5 Innehåll Algoritmer och effektivitet Att bedöma och jämföra effektivitet för algoritmer Begreppet tidskomplexitet Datavetenskap (LTH) Föreläsning 5 VT 2019 1 / 39 Val av algoritm och datastruktur
de var svåra att implementera och var väldigt ineffektiva.
OBS! För flervalsfrågorna gäller att flera alternativ eller inget alternativ kan vara korrekt. På flervalsfrågorna kan man bara ha rätt eller fel, dvs frågan måste vara helt korrekt besvarad. Totalt kan
Graärgning och kromatiska formler
Graärgning och kromatiska formler Henrik Bäärnhielm, d98-hba 2 mars 2000 Sammanfattning I denna uppsats beskrivs, för en ickematematiker, färgning av grafer samt kromatiska formler för grafer. Det hela
Beräkning med ord. -hur en dator hanterar perception. Linköpings universitet Artificiell intelligens 2 2010-10-03 Erik Claesson 880816-1692
Beräkning med ord -hur en dator hanterar perception 2010-10-03 Erik Claesson 880816-1692 Innehåll Inledning... 3 Syfte... 3 Kan datorer hantera perception?... 4 Naturligt språk... 4 Fuzzy Granulation...
Sitter och klurar på jordtag; Hur skulle en matematisk uppställning av ett jordtag se ut med homogen mark?
Beräkna jordtag Postad av Michell Andersson - 12 maj 2018 07:26 Sitter och klurar på jordtag; Hur skulle en matematisk uppställning av ett jordtag se ut med homogen mark? Jag tänker att jag skulle haft
Källkodning. Egenskaper hos koder. Några exempel
Källkodning Källkodning innebär att vi avbildar sekvenser av symboler ur en källas alfabet på binära sekvenser (kallade kodord). Mängden av alla kodord kalls för en kod. (Man kan förstås tänka sig att
a = a a a a a a ± ± ± ±500
4.1 Felanalys Vill man hårddra det hela, kan man påstå att det inte finns några tal i den tillämpade matematiken, bara intervall. Man anger till exempel inte ett uppmätt värde till 134.78 meter utan att
Tentamen Datastrukturer för D2 DAT 035
Tentamen Datastrukturer för D2 DAT 035 17 december 2005 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. (Bonuspoäng från övningarna tillkommer.) Betygsgränser:
Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...
OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervarlsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet
Obemannade flygplan. Namn: Hampus Hägg. Datum: 2015-03-02. Klass: TE14B. Gruppmedlemmar: Gustav, Emilia, Henric och Didrik
Namn: Hampus Hägg Obemannade flygplan Datum: 2015-03-02 Klass: TE14B Gruppmedlemmar: Gustav, Emilia, Henric och Didrik Handledare: David, Björn och Jimmy Abstract In this task I ve been focusing on unmanned
Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 14 augusti, 2002
Institutionen för matematik, KTH Mats Boij och Niklas Eriksen Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 14 augusti, 2002 1. Använd induktion för att visa att 8 delar (2n + 1 2 1 för alla
TENTAPLUGG.NU AV STUDENTER FÖR STUDENTER. Kursnamn Fysik 1. Datum LP Laboration Balkböjning. Kursexaminator. Betygsgränser.
TENTAPLUGG.NU AV STUDENTER FÖR STUDENTER Kurskod F0004T Kursnamn Fysik 1 Datum LP2 10-11 Material Laboration Balkböjning Kursexaminator Betygsgränser Tentamenspoäng Övrig kommentar Sammanfattning Denna
Övningshäfte 2: Induktion och rekursion
GÖTEBORGS UNIVERSITET MATEMATIK 1, MMG200, HT2017 INLEDANDE ALGEBRA Övningshäfte 2: Induktion och rekursion Övning D Syftet är att öva förmågan att utgående från enkla samband, aritmetiska och geometriska,
Grafer. 1 Grafer. Grunder i matematik och logik (2015) 1.1 Oriktade grafer. Marco Kuhlmann
Marco Kuhlmann 1 En graf är en struktur av prickar förbundna med streck. Ett tidsenligt exempel på en sådan struktur är ett social nätverk, där prickarna motsvarar personer och en streck mellan två prickar
2D Potentialen i en nervcell definieras normalt som skillnaden i spänning mellan dess axon och dendrit.
2D1432 Artificiella Neuronnät och andra lärande system Lösningsförslag till Tentamen 2003-03-06 Inga hjälpmedel. Uppgift 1 Vilka av följande påståenden är sanna? Korrigera de som är fel. 1. Potentialen
Laboration 3: Stora talens lag, centrala gränsvärdessatsen och enkla punktskattningar
Lunds tekniska högskola Matematikcentrum Matematisk statistik Laboration 3 Matematisk statistik AK för CDIFysiker, FMS012/MASB03, HT15 Laboration 3: Stora talens lag, centrala gränsvärdessatsen och enkla
COMPUTABILITY BERÄKNINGSBARHET. Källa: Goldschlager, Lister: Computer Science A Modern Introduction 2. upplaga 1988, Prentice Hall
COMPUTABILITY BERÄKNINGSBARHET Källa: Goldschlager, Lister: Computer Science A Modern Introduction 2. upplaga 1988, Prentice Hall Den centrala frågan: givet ett problem, kan det ha en algoritmisk lösning?
Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration
10 februari 2017 Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration Syfte med övningen: Introduktion till ett par numeriska metoder för lösning av ekvationer respektive
Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1
Inlämningsuppgift : Finn 2D1418 Språkteknologi Christoffer Sabel E-post: csabel@kth.se 1 1. Inledning...3 2. Teori...3 2.1 Termdokumentmatrisen...3 2.2 Finn...4 3. Implementation...4 3.1 Databasen...4
Information technology Open Document Format for Office Applications (OpenDocument) v1.0 (ISO/IEC 26300:2006, IDT) SWEDISH STANDARDS INSTITUTE
SVENSK STANDARD SS-ISO/IEC 26300:2008 Fastställd/Approved: 2008-06-17 Publicerad/Published: 2008-08-04 Utgåva/Edition: 1 Språk/Language: engelska/english ICS: 35.240.30 Information technology Open Document
1 Minkostnadsflödesproblem i nätverk
Krister Svanberg, april 2012 1 Minkostnadsflödesproblem i nätverk Ett nätverk består av en given mängd noder numrerade från 1 till m (där m är antalet noder) samt en given mängd riktade bågar mellan vissa
Tentamen, Algoritmer och datastrukturer
UNDS TEKNISKA ÖGSKOA (6) Institutionen för datavetenskap Tentamen, Algoritmer och datastrukturer 23 8 29, 8. 3. Anvisningar: Denna tentamen består av fem uppgifter. Totalt är skrivningen på 36 poäng och
Tentamen: Programutveckling ht 2015
Tentamen: Programutveckling ht 2015 Datum: 2015-11-04 Tid: 09:00-13:00 Sal: Ansvarig: Resultat: Hjälpmedel: Maxpoäng: Betygsgränser: Anslås inom 3 veckor. Inga 40 p 20 p för G, 32 p för VG. Iakttag följande:
HKGBB0, Artificiell intelligens
HKGBB0, Artificiell intelligens Kortfattade lösningsförslag till tentan 3 november 2005 Arne Jönsson 1. Vad karaktäriserar dagens AI-forskning jämfört med den AI-forskning som bedrevs perioden 1960-1985.
Dynamisk programmering. Dynamisk programmering. Dynamisk programmering. Dynamisk programmering
Betrakta ett lagerhållningsproblem i flera tidsperioder. Vi har tillverkning och försäljning av produkter i varje tidsperiod. Dessutom kan vi lagra produkter mellan tidsperioder, för att utnyttja stordriftsfördelar
1, 2, 3, 4, 5, 6,...
Dagens nyhet handlar om talföljder, ändliga och oändliga. Talföljden 1,, 3, 4, 5, 6,... är det första vi, som barn, lär oss om matematik över huvud taget. Så småningom lär vi oss att denna talföljd inte
Lutande torn och kluriga konster!
Lutande torn och kluriga konster! Aktiviteter för barn under Vetenskapsfestivalens skolprogram 2001 Innehåll 1 Bygga lutande torn som inte faller 2 2 Om konsten att vinna betingat godis i spel 5 3 Den
Tentamen Datastrukturer (DAT036)
Tentamen Datastrukturer (DAT036) Det här är inte originaltesen. Uppgift 6 var felaktigt formulerad, och har rättats till. Datum och tid för tentamen: 2011-12-16, 8:30 12:30. Ansvarig: Nils Anders Danielsson.
Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI
TEKNISKA HÖGSKOLAN I LINKÖPING Matematiska institutionen Beräkningsmatematik/Fredrik Berntsson Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI Tid: 8-12, 20 Mars, 2015 Provkod: TEN1 Hjälpmedel:
Deadlocks. detektera och undvik
Deadlocks detektera och undvik Enkla exempel Smal bro med en fil En fyrvägskorsning Fyra vägkorsningar Två lås P: Lock A, Lock B.. Rel. A, Rel. B Q: Lock B, Lock A.. Rel. B, Rel. A Vad motsvarar Resurser?
729G04 - Diskret matematik. Lektion 4
729G04 - Diskret matematik. Lektion 4 1 Lösningsförslag 1.1 Vägar, stigar och annat 1. Vi ges den oriktade grafen G=(V,E), V = {a, b, c, d, f, g, h, i, j}, E = {{a, b}, {b, c}, {a, c}, {f, g}, {c, d},
Exempel ode45 parametrar Miniprojekt 1 Rapport. Problemlösning. Anastasia Kruchinina. Uppsala Universitet. Januari 2016
Problemlösning Anastasia Kruchinina Uppsala Universitet Januari 2016 Anastasia Kruchinina Problemlösning 1 / 16 Exempel ode45 parametrar Miniprojekt 1 Rapport Anastasia Kruchinina Problemlösning 2 / 16
Den räta linjens ekvation
Den räta linjens ekvation Här följer en dialog mellan studenten Tor-Björn (hädanefter kallad TB) och hans lärare i matematik Karl-Ture Hansson (nedan kallad KTH). När vi möter dem för första gången är
Övning 1(a) Vad du ska kunna efter denna övning. Problem, nivå A. Redogöra för begreppen diskret och kontinuerlig stokastisk variabel.
Övning 1(a) Vad du ska kunna efter denna övning Redogöra för begreppen diskret och kontinuerlig stokastisk variabel. Definiera fördelningsfunktionen för en stokastisk variabel. Definiera frekvensfunktionen
Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.
OS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervalsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet
Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1
Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut
Föreläsning 9: NP-fullständighet
Föreläsning 9: NP-fullständighet Olika typer av problem: 1. Beslutsproblem: A(x) =Ja. 2. Optimeringsproblem: A(x) =m Vanligen max/min. 3. Konstruktionsproblem: A(x) =En struktur. Vanligen lösningen till
International Olympiad in Informatics 2011 22 29 July 2011, Pattaya City, Thailand Tävlingsuppgifter Dag 2 Svenska 1.3. Papegojor
Papegojor Yanee är fågelentusiast. Sedan hon läst om IP over Avian Carriers (IPoAC), har hon spenderat mycket tid med att träna en flock papegojor att leverera meddelanden över långa avstånd. Yanees dröm
1 De fyra fundamentala underrummen till en matris
Krister Svanberg, mars 2012 1 De fyra fundamentala underrummen till en matris 1.1 Definition av underrum En given delmängd M av IR n säges vara ett underrum i IR n om följande gäller: För varje v 1 M,
4 Fler deriveringsregler
4 Fler deriveringsregler 4. Dagens Teori Derivatan av potensfunktioner. Potensfunktioner med heltalsexponenter, som du redan kan derivera, kallas polynomfunktioner, som till exempel: f(x) = 2x4 x3 + 2x
TDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 14-16
TDDC74 Programmering: Abstraktion och modellering Dugga 2, 207-04-06, kl 4-6 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis i svårighetsordning.
Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.
OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervalsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet
Hierarchical Temporal Memory Maskininlärning
Hierarchical Temporal Memory Maskininlärning Innehåll Sammanfattning... 3 Inledning... 4 Vad är HTM?... 4 Hur fungerar HTM?... 4 Hierarchical... 4 Temporal... 5 Memory... 5 Hitta orsaker i världen... 5
Föreläsning 7 Datastrukturer (DAT037)
Föreläsning 7 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-21 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037 Förra
Mathematica. Utdata är Mathematicas svar på dina kommandon. Här ser vi svaret på kommandot från. , x
Mathematica Första kapitlet kommer att handla om Mathematica det matematiska verktyg, som vi ska lära oss hantera under denna kurs. Indata När du arbetar med Mathematica ger du indata i form av kommandon
Om plana och planära grafer
KTH Matematik Bengt Ek April 2006 Material till kursen 5B1118 Diskret matematik för CL3: Om plana och planära grafer I många sammanhang (t.ex. vid konstruktion av elektriska kretsar) är det intressant
Ma7-Per: Algebra. Det andra arbetsområdet handlar om algebra och samband.
Ma7-Per: Algebra Det andra arbetsområdet handlar om algebra och samband. Syftet med undervisningen är att du ska utveckla din förmåga att: - formulera och lösa problem med hjälp av matematik samt värdera
Föreläsning Datastrukturer (DAT037)
Föreläsning Datastrukturer (DAT037) Nils Anders Danielsson 2015-11-20 Idag Grafer: Terminologi. Datastrukturer. Topologisk sortering. Kortaste vägen. Bredden först-sökning. Dijkstras algoritm. (Vi får
Stokastiska processer och simulering I 24 augusti
STOCKHOLMS UNIVERSITET LÖSNINGAR MATEMATISKA INSTITUTIONEN Stokastiska processer och simulering I Avd Matematisk statistik 24 augusti 2016 Lösningar Stokastiska processer och simulering I 24 augusti 2016
Den räta linjens ekvation
Den räta linjens ekvation Här följer en dialog mellan studenten Tor-Björn (hädanefter kallad TB) och hans lärare i matematik Karl-Ture Hansson (nedan kallad KTH). När vi möter dem för första gången är
Prestanda och skalbarhet
Prestanda och skalbarhet Grama et al. Introduction to Parallel Computing Kapitel 5 Erik Elmroth Översikt 2 Exekveringstid Uppsnabbning Effektivitet Kostnad Kostnadsoptimal algoritm Ahmdals lag Gustafson-Barsis
DEL I. Matematiska Institutionen KTH. Lösning till tentamensskrivning på kursen Linjär algebra II, SF1604 för D, den 5 juni 2010 kl
1 Matematiska Institutionen KTH Lösning till tentamensskrivning på kursen Linjär algebra II, SF164 för D, den 5 juni 21 kl 9.- 14.. Examinator: Olof Heden. Hjälpmedel: Inga hjälpmedel är tillåtna på tentamensskrivningen.
Lektionsanteckningar 11-12: Normalfördelningen
Lektionsanteckningar 11-12: Normalfördelningen När utfallsrummet för en slumpvariabel kan anta vilket värde som helst i ett givet intervall är variabeln kontinuerlig. Det är väsentligt att utfallsrummet
Tentamen i Beräkningsvetenskap I och KF, 5.0 hp,
Uppsala universitet Institutionen för informationsteknologi Avdelningen för beräkningsvetenskap Tentamen i Beräkningsvetenskap I och KF, 5.0 hp, 017-0-14 Skrivtid: 14 00 17 00 (OBS! Tre timmars skrivtid!)
Föreläsning 13 Innehåll
Föreläsning 13 Innehåll Exempel på problem där materialet i kursen används Hitta k största bland n element Histogramproblemet Schemaläggning PFK (Föreläsning 13) VT 2013 1 / 15 Hitta k största bland n
Laboration 3: Stora talens lag, centrala gränsvärdessatsen och enkla punktskattningar
LUNDS TEKNISKA HÖGSKOLA MATEMATIKCENTRUM MATEMATISK STATISTIK LABORATION 3 MATEMATISK STATISTIK AK FÖR CDIFYSIKER, FMS012/MASB03, HT12 Laboration 3: Stora talens lag, centrala gränsvärdessatsen och enkla
Ordinära differentialekvationer,
Sammanfattning metoder Ordinära differentialekvationer, del 2 Beräkningsvetenskap II n Eulers metod (Euler framåt, explicit Euler): y i+1 = y i + h i f (t i, y i ) n Euler bakåt (implicit Euler): y i+1
TDDI16: Datastrukturer och algoritmer
TDDI16: Datastrukturer och algoritmer Lab 3: Ordkedjor Höstterminen 2018 2018-05-14 1 Upplägg Första delen av instruktionen, avsnitt 2 till 6, innehåller en fullständig beskrivning av problemet utan några
1 Duala problem vid linjär optimering
Krister Svanberg, april 2012 1 Duala problem vid linjär optimering Detta kapitel handlar om två centrala teoretiska resultat för LP, nämligen dualitetssatsen och komplementaritetssatsen. Först måste vi