En studie i röj. Petter Lindgren. Handledare: Professor Lennart Bondesson

Relevanta dokument
FÖRDJUPNINGS-PM. Nr Räntekostnaders bidrag till KPI-inflationen. Av Marcus Widén

9. Diskreta fouriertransformen (DFT)

DIGITALTEKNIK. Laboration D171. Grindar och vippor

Lösningar till Matematisk analys IV,

Om antal anpassningsbara parametrar i Murry Salbys ekvation

bättre säljprognoser med hjälp av matematiska prognosmodeller!

Lektion 4 Lagerstyrning (LS) Rev NM

Lektion 3 Projektplanering (PP) Fast position Projektplanering. Uppgift PP1.1. Uppgift PP1.2. Uppgift PP2.3. Nivå 1. Nivå 2

Tentamen TEN1, HF1012, 16 aug Matematisk statistik Kurskod HF1012 Skrivtid: 8:15-12:15 Lärare och examinator : Armin Halilovic

FAQ. frequently asked questions

3D vattenanimering Joakim Julin Department of Computer Science Åbo Akademi University, FIN Åbo, Finland

Om exponentialfunktioner och logaritmer

Reglerteknik AK, FRT010

n Ekonomiska kommentarer

TENTAMEN Datum: 12 mars 07. Kurs: MATEMATIK OCH MATEMATISK STATISTIK 6H3000, 6L3000, 6A2111 TEN 2 (Matematisk statistik )

2 Laboration 2. Positionsmätning

Betalningsbalansen. Andra kvartalet 2012

Tjänsteprisindex för detektiv- och bevakningstjänster; säkerhetstjänster

a) Beräkna arean av triangeln ABC då A= ( 3,2,2), B=(4,3,3) och C=( 5,4,3).

Informationsteknologi

Objects First With Java A Practical Introduction Using BlueJ. 4. Grouping objects. Collections och iterators

Skillnaden mellan KPI och KPIX

Upphandlingar inom Sundsvalls kommun

Laboration D158. Sekvenskretsar. Namn: Datum: Kurs:

Laborationstillfälle 4 Numerisk lösning av ODE

{ } = F(s). Efter lång tid blir hastigheten lika med mg. SVAR: Föremålets hastighet efter lång tid är mg. Modul 2. y 1

Diskussion om rörelse på banan (ändras hastigheten, behövs någon kraft för att upprätthålla hastigheten, spelar massan på skytteln någon roll?

Laboration 2. Minsta kvadratproblem

Föreläsning 19: Fria svängningar I

Tjänsteprisindex för varulagring och magasinering

Strategiska möjligheter för skogssektorn i Ryssland med fokus på ekonomisk optimering, energi och uthållighet

FREDAGEN DEN 21 AUGUSTI 2015, KL Ansvarig lärare: Helene Lidestam, tfn Salarna besöks ca kl 15.30

Numerisk analysmetod för oddskvot i en stratifierad modell

Personlig assistans en billig och effektiv form av valfrihet, egenmakt och integritet

Konsumtion, försiktighetssparande och arbetslöshetsrisker

KONTROLLSKRIVNING 3. Kurs: HF1012 Matematisk statistik Lärare: Armin Halilovic

Aktiverade deltagare (Vetenskapsteori (4,5hp) HT1 2) Instämmer i vi ss mån

Kurs: HF1012 Matematisk statistik Lärare: Armin Halilovic

Skattning av respirationshastighet (R) och syreöverföring (K LA ) i en aktivslamprocess Projektförslag

Betalningsbalansen. Tredje kvartalet 2010

Hur simuleras Differential-Algebraiska Ekvationer?

Lite grundläggande läkemedelskinetik

Demodulering av digitalt modulerade signaler

Bandpassfilter inte så tydligt, skriv istället:

Realtidsuppdaterad fristation

Genom att uttrycka y-koordinaten i x ser vi att kurvan är funktionsgrafen till y = x 2. Lektion 2, Flervariabelanalys den 19 januari 2000

En komparativ studie av VaR-modeller

Från kap. 25: Man får alltid ett spänningsfall i strömmens riktning i ett motstånd.

Differentialekvationssystem

Förord: Sammanfattning:

Om exponentialfunktioner och logaritmer

Ansökan till den svenskspråkiga ämneslärarutbildningen för studerande vid Helsingfors universitet. Våren 2015

Följande uttryck används ofta i olika problem som leder till differentialekvationer: Formell beskrivning

Jämställdhet och ekonomisk tillväxt En studie av kvinnlig sysselsättning och tillväxt i EU-15

Pensionsåldern och individens konsumtion och sparande

= (x, y) : x 2 +y 2 4, x 0, y (4r2 +1) 3 2

Dagens förelf. Arbetslöshetstalet. shetstalet och BNP. lag. Effekter av penningpolitik. Tre relationer:

Installation av fjärrplatser med TCP/IP

REVISIONSMYNDIGHETEN. Kontroll av den förvaltande myndighetens efterlevnad av artikel c rörande

UTBILDNINGSPLAN FÖR SPECIALISTSJUKSKÖTERSKEPROGRAMMET INRIKTNING MOT ANESTESISJUKVÅRD 60 HÖGSKOLEPOÄNG

Växelkursprognoser för 2000-talet

Betalningsbalansen. Fjärde kvartalet 2012

Följande uttryck används ofta i olika problem som leder till differentialekvationer: Formell beskrivning

BASiQ. BASiQ. Tryckoberoende elektronisk flödesregulator

AMatematiska institutionen avd matematisk statistik

Anm 3: Var noga med att läsa och studera kurslitteraturen.

ByggeboNytt. Kenth. i hyresgästernas tjänst. Getingplåga Arbetsförmedlingen på plats i Alvarsberg. Nr Byggebo AB, Box 34, Oskarshamn

Exempeltenta 3 SKRIV KLART OCH TYDLIGT! LYCKA TILL!

Kvalitativ analys av differentialekvationer

TENTAMEN HF1006 och HF1008

Jobbflöden i svensk industri

MATEMATIKPROV, LÅNG LÄROKURS BESKRIVNING AV GODA SVAR

Ingen återvändo TioHundra är inne på rätt spår men behöver styrning

Konjunkturinstitutets finanspolitiska tankeram

UTBILDNINGSPLAN FÖR SPECIALISTSJUKSKÖTERSKEPROGRAMMET INRIKTNING MOT INTENSIVVÅRD 60 HÖGSKOLEPOÄNG

Tjänsteprisindex (TPI) 2010 PR0801

Välkommen till. och. hedersvåld försvara ungdomarnas rättigheter. agera mot. Illustration: juno blom

Utveckling av portföljstrategier baserade på svagt kointegrerade finansiella instrument med AdaBoosting. Helena Nilsson

Ordinära differentialekvationer,

Att studera eller inte studera. Vad påverkar efterfrågan av högskole- och universitetsutbildningar i Sverige?

TISDAGEN DEN 20 AUGUSTI 2013, KL Ansvarig lärare: Helene Lidestam, tfn Salarna besöks ca kl 9

Egenvärden och egenvektorer

Betalningsbalansen. Tredje kvartalet 2012

Föreläsning 3: Fler grafalgoritmer. Kortaste vägar mellan alla noder

Laboration 3: Växelström och komponenter

KOLPULVER PÅ GAMLA FINGERAVTRYCK FUNGERAR DET?

Kan arbetsmarknadens parter minska jämviktsarbetslösheten? Teori och modellsimuleringar

Texten " alt antagna leverantörer" i Adminstrativa föreskrifter, kap 1 punkt 9 utgår.

Analys och modellering av ljusbåglängdsregleringen i pulsad MIG/MAG-svetsning

Truckar och trafik farligt för förare

Diverse 2(26) Laborationer 4(26)

Föreläsning 8. Kap 7,1 7,2

Om de trigonometriska funktionerna

Betalningsbalansen. Tredje kvartalet 2008

KURVOR OCH PÅ PARAMETERFORM KURVOR I R 3. P(t)=(x(t),y(t),z(t)) T=(x (t),y (t),z (t)) r(t)=(x(t),y(t),z(t))

Följande uttryck används ofta i olika problem som leder till differentialekvationer: A=kB. A= k (för ett tal k)

Dags för stambyte i KPI? - Nuvarande metod för egnahem i KPI

Vad är den naturliga räntan?

DD1310/DD1314/DA3009 PROGRAMMERINGSTEKNIK

Transkript:

En sudie i röj av Peer Lindgren Examensarbee i maemaisk saisik Umeå universie, Handledare: Professor Lennar Bondesson

Absrac This paper presens a sudy of he compuer game Minesweeper. The aim of he game is o search hrough a recangular area of mined squares wihou hiing any mines. By using a sraegy based on making every operaion as safe as possible, series of he game have been simulaed. The size of he playground is four imes four squares. The simulaions indicae how ofen he game will succeed and which square is he bes one o sar a. The sraegy demands advanced mahemaical calculaions. The accoun of hese is he major par of my work. My invesigaion shows ha if here are hree hidden mines he game will succeed abou wo imes ou of hree. I also shows ha he bes saringpoin is a corner. Keywords: Binary variables, Gauss Jordan eliminaion, independen island, neighbour, probabiliy, simulaion, sysem of equaions. Acknowledgemens I would like o hank my supervisor, Professor Lennar Bondesson for inroducing me o he problem and for valuable help during my work. I would also like o hank Peer Anon and Lennar Nilsson for always supporing me. A las, I would like o say ha he amosphere a he Deparmen of Mahemaical Saisics a Universiy of Umeå creaed by a very helpful saff has been a grea help o me. Thank you all.

Innehållsföreckning. Inrodukion... Några exempel... Maemaisk eori... 9 4 Från eori ill simulering... 9 4. Uökad grannmaris... 9 4. Minuloning... 4. Hur spele börjar... 4.4 Spele forsäer... 4.5 En simuleringssudie... 5 Simuleringsresula... 5 5. Inervallskaning... 5. Hypoesprövning... 8 Diskussion... Referenser... Appendix A Algorim, spela e pari Ms röj... I Appendix B Källkod... II

. Inrodukion MS röj, på engelska Minesweeper, är e sraegispel som följer med i sandardversionen av Windows. Spelplanen besår av e rekangulär schema av ruor. Vissa ruor innehåller dolda minor. De oala anale minor är förubesäm. Minorna är uloade med obunde slumpmässig urval, OSU, av ruor. Varje rua har därför lika sor sannolikhe a bli minerad. Spele går u på a idenifiera de ruor där minor gömmer sig. Om en minerad rua öppnas är spele över och förlora. Om en om rua öppnas kommer en siffra a visas i ruan. Denna anger hur många minor de finns bland ruans grannar. Med granne menas angränsande rua. De ruor som ine illhör kanen på spelplanen har därför åa grannar. När alla minors koordinaer är idenifierade och övriga ruor öppnade är spele avklara. I de flesa siuaioner kan de logisk avgöras om en rua på spelplanen är om eller minerad. Dock ine allid. Vi skulle då vilja vea vilken av ruorna som har mins sannolikhe a innehålla en mina. Med en generell meod för a beräkna dessa sannolikheer kan vi i varje siuaion minimera risken a vid näsa klick söa på en mina. A uarbea en sådan meod är en cenral del i vad mi examensarbee behandlar. De är dessuom grunden för problemsällningarna: Kan meoden användas för a simulera parier av MS röj, hur ofa kommer spele a gå u och spelar de någon roll för ugången vilken rua man börjar med? Arbee inleds i avsni med några exempel på hur man för hand kan beräkna sannolikheer a ruor innehåller minor. I avsni förklaras den generella meod som använs för a kunna beräkna dessa sannolikheer. Ekvaionssysem för binära variabler kommer då a spela en vikig roll. I avsni 4 förklaras hur meoden används för a kunna simulera spel i MS röj. Slusaser och resula av de simuleringar som gjors redovisas i avsni 5. Sluligen, i avsni, förs en diskussion kring arbee i allmänhe.

Några exempel Huvudprobleme ugörs av a finna en generell meod a beräkna sannolikheen huruvida en rua innehåller en mina. En sådan sannolikhe kommer i forsäningen a benämnas minsannolikhe. För a erhålla en ökad försåelse för probleme behandlas i dea avsni några exempel. Nedan ges en möjlig siuaion i MS röj: 4 figur. En änkbar siuaion i MS röj Siffrorna i de öppnade ruorna säger endas någo om dess grannar och ger ingen informaion angående övriga ruor. För de ruor som ine är granne ill någon av de öppnade ruorna finns ingen specifik informaion och de har därför samma minsannolikhe. För a göra de ydlig har nollor skrivis u, vilke beyder a ingen mina finns bland ruans grannar. I de flesa versioner av MS röj sår ruorna isälle omma. För a underläa beräkningarna kan varje siuaion på spelplanen delas upp i så kallade öar. En ö är en samling ruor så a om man ve anale minor på den, kan alla minsannolikheer för öns ruor besämmas via informaionen inom öns gränser. En oberoende ö är en samling ruor så a informaionen inom öns gränser är illräcklig för a besämma alla minsannolikheer på ön. Noera a ruorna på en ö ej behöver vara angränsande, vilke namne kan yckas anyda.

Nedan visas e exempel på hur figur kan uppdelas i öar: 4 Figur. Uppdelning i öar Om anale minor inom en ö är besäm, kommer minsannolikheerna för öns ruor a vara hel besämda av dea anal. Ofa finns de flera möjligheer för hur många minor en ö kan innehålla. Då kommer minsannolikheerna a vara mer svårberäknande. Exempel på båda fallen kommer a ges. Exempel. Anag a siuaionen ser u som följande: Inom de skuggade område finns enbar en mina. Därför kan minsannolikheerna för öns ruor beräknas för sig, de vill säga öns minsannolikheer är oberoende av hur siuaionen i spele är för övrig. Alla ruor har dessuom samma förusäningar varför de har lika sor minsannolikhe, /8. Jag kommer på näsa sida även a beräkna denna minsannolikhe på e anna, mer generell sä, som nyjas vid mer avancerade problem.

Anag a fem ruor är minerade. Efersom de endas finns en mina uplacerad på ön måse de finnas fyra sycken bland övriga 7 ruor. Fyra minor kan vara uplacerade på C(7,4) olika sä, där a a! a( a )...( a b + ) C( a, b) = b = = ( a b)! b! b! och beskriver anale kombinaioner av b elemen bland a, se Blom (984a, kap.7). Varje kombinaion har lika sor sannolikhe a inräffa varför vi kan säga a vi har en likformig sannolikhesfördelning. Sannolikheen räknas nu u med hjälp av den klassiska sannolikhesdefiniionen som säger a vid likformig sannolikhesfördelning är sannolikheen för en händelse lika med kvoen mellan anale för händelsen gynnsamma ufall och anale möjliga ufall, se Blom (984a, s 8). Lå A vara händelsen a en godycklig men besämd rua uanför ön innehåller en mina. För a A ska inräffa måse de re övriga minorna vara uplacerade bland de kvarvarande ruorna. Dea kan ske på C(,) sä, vilke också är anale gynnsamma ufall för händelse A. Anale möjliga ufall är enlig de idigare C(7,4). Sannolikheen för a den godyckliga ruan innehåller en mina blir därför C(,) P(A) = C (7,4) 4 = = 755 7.48 Lå B vara händelsen a en godycklig men besämd rua inom öns gränser innehåller en mina. Om B inräffar innebär de a reserande ruor på ön är omma. Anale gynnsamma ufall för händelsen B är därför på hur många sä noll minor kan placeras u bland sju ruor, de vill säga C(7,). Anale möjliga ufall är på hur många sä en mina kan placeras u på ön, de vill säga C(8,). Sannolikheen för a den godyckliga ruan ska innehålla en mina blir därför 4

C(7,) P(B) = = =.5 C (8,) 8 För a minimera risken a direk söa på en mina bör därför en rua innanför öns gränser klickas på därnäs. Exempel. Anag a siuaionen är som i figuren och a io ruor är minerade. Ruorna inom de skuggade område kan oal innehålla vå eller re minor. Vi måse beräkna på hur många sä io minor kan placeras u så a vå respekive re ruor på ön är minerade. Anag a de finns vå minor på ön. Då måse ean och våan dela på en mina i miraden. Denna mina kan placeras på C(,) sä. Den andra minan finns då i någon av de andra ruor som angränsar ill våan. Den kan placeras u på C(5,) olika sä. Nu finns åa minor kvar a placera uanför ön. Dea kan ske på C(,8) sä. Muliplicerar vi dessa möjligheer får vi anal sä a placera u io minor med vå minor inom öns gränser. Enlig samma princip kan man räkna u anal sä a placera u io minor med re minerade ruor på ön. De finns C(5,)C(5,)C(,7) olika sä. Alla dessa ufall har lika sor sannolikhe varför sannolikheen för vå respekive re minor kan beräknas enlig den klassiska sannolikhesdefiniionen. C(,) C(5,) C(,8) 55 P ( minor) = = =.44 C(5,) C(5,) C(,7) + C(,) C(5,) C(,8) 885 5

C(5,) C(5,) C(,8) 584 4 P ( minor) = = =.5 C(5,) C(5,) C(,7) + C(,) C(5,) C(,8) 885 Vi ser a summan av de vå sannolikheerna blir. Minsannolikheen för en specifik rua kan beräknas enlig samma resonemang. Vi undersöker på hur många sä minorna kan vara uplacerade med bivillkore a de är en mina i den specifika ruan, de vill säga beräknar anale gynnsamma ufall, och dividerar med de oala anale sä a uplacera minorna på. Lå A vara händelsen a en godycklig men besämd rua bland öns miruor, se figur, innehåller en mina. Om A inräffar beyder de a ean och våan delar på en mina varför de endas kan vara vå minor inom öns gränser. Händelsen A kan då inräffa på C(5,)C(,8) sä varför sannolikheen a en mina finns i den godyckliga ruan blir : C(5,) C(,8) 745 7 P ( A) = = =.5 C(5,) C(5,) C(,7) + C(,) C(5,) C(,8) 885 Lå B och C vara händelserna a en godycklig men besämd rua i figur 4 respekive figur 5 är minerad. Nedan följer dessa beräkningar: figur. figur 4. figur 5. Öns miruor. Öns nedersa ruor. Öns översa ruor. C(4,) C(5,) C(,7) + C(,) C(,8) 97 P ( B) = = =. C(5,) C(5,) C(,7) + C(,) C(5,) C(,8) 885 5 C(5,) C(,7) 8 8 P ( C) = = =. C(5,) C(5,) C(,7) + C(,) C(5,) C(,8) 885

Lå D vara händelsen a en godycklig men besämd rua uanför ön innehåller en mina. Efersom de finns io minor oal, är summan av alla minsannolikheer, de vill säga P ( A) + 5P( B) + 5P( C) + P( D) = De följer a P( A) 5P( B) 5P( C) 4 P ( D) = =.5 8 Vi bör i denna siuaion välja a klicka på någon av ruorna i figur. Exempel. I de vå idigare exemplen har vi räkna näsan ren kombinaorisk. I dea exempel skall vi räkna mer algebraisk. Anag a siuaionen ser u som på bilden ill vänser och a re minor finns gömda bland spelplanens ruor. Den högra bilden visar ruornas numrering. 4 5 7 8 9 4 5 Lå p i vara minsannolikheen för rua i, i=,,, och lå, om rua i är minerad i = i =,,...,, för övrig De gäller a ( i ) pi och härav ( ) = i= i= E = E i p i. 7

Efersom de oal finns re minor på spelplanen, de vill säga i =, erhålls a p i = i= i= Siuaionen ger då följande ekvaioner: pi = i= p = p = p + p5 + p = p + p7 + p8 + p + p + p4 + p5 + p p = = = p4 p9 p p = p5 p7 = p8 = p = p = p4 = p5 = p = Vi har 5 ekvaioner men obekana sorheer. Se p som en fri variabel. Om vi ve den kan alla andra obekana sorheer besämmas. Tyvärr är p okänd. För a besämma den måse vi beräkna anal kombinaioner där rua sex är minerad, N (), sam anal kombinaioner där den ej är minerad, N (). Då är p = P( = ) = N N () () + N () Vi kan via liknande resonemang som i föregående exempel beräkna N () och N (): N () = C(4,) C(7,) 8 och N () = C(,) C(7,) 4 = = De följer a p = 8/7 = /5. Vi kan sedan beräkna samliga minsannolikheer. De blir: p = p = 7 5 p = p p 4 = p 8 = p 9 = p = p = p = = p 4 = p 5 = p = 8 5 8

Teorin i exempel för oss in på den maemaiska meod jag uveckla och använ mig av vid programmeringen. Isälle för a använda ekvaioner med p i, kan de binära variablerna i användas som obekana. De oala anale lösningar kommer då a mosvara anale sä minorna kan vara uplacerade på. Dea behandlas i avsni. Maemaisk eori För sora spelplaner med invecklade siuaioner kan de vara mödosam a beräkna minsannolikheer enlig meoderna i avsni. Vi kommer i dea kapiel a redovisa en maemaisk meod som generell kan hanera alla siuaioner på spelplanen. Varje siuaion i MS röj kan åskådliggöras med hjälp av en graf besående av noder och kaner. Noder represenerar ruor och kan därför vara omma eller minerade. Kaner beskriver vilka ruor som är grannar med varandra. Nedan följer e exempel på en lien spelplan i MS röj och dess grafframsällning. Figur. Spelplan i MS röj. Figur 7. Grafframsällning av figur. För a på bäsa sä kunna beskriva den maemaiska meoden kommer försa exemple a ugå från en graf. I grafen kan nämligen vissa kaner as bor och probleme blir enklare och läare a förså. I exempel åergår vi ill ruschema och visar e fall där meoden är särskil effekiv. E mer inveckla fall beskrivs i exempel där ruorna delas upp i oberoende öar för a effekivisera programmeringen. 9

Exempel. Anag följande graf: 5 4 Anag a de finns re minor oal och lå = för övrig, är minerad om nod, i i =,,..., i Siffrorna i noderna säger hur många minor de finns bland nodens grannar och får ine förväxlas med variabeln i. Lägg märke ill a grafens useende ej kan beskrivas som en verklig siuaion i MS röj. Den är förenklad genom a använda färre kaner. Lösningens princip är dock densamma. Grafens informaion sam veskapen om de oala anale minor kan skrivas som e ekvaionssysem, = + + + + + = + + = + + = + + 5 4 5 4 4 vilke på marisform kan skrivas som A=b, där A = = 5 4 b =

Dea ekvaionssysem innehåller all informaion om grafen. Varje binär lösning är exempel på hur minorna kan vara uplacerade. Vi ska försöka hia alla binära lösningar för a få fram anale möjliga fall. Den allmänna lösningen kan skrivas som = + cz +... + c z, där är en parikulärlösning ill A=b, z,..., z en bas i nollrumme ill A och c,..., c skalärer. Den allmänna lösningen innehåller i vår fall oändlig många lösningar. De kan därför bli svår a sålla bland dessa för a hia de binära lösningarna. Vi måse gå illväga på e anna sä. Lå C vara den maris som fås om b läggs ill som sisa kolumn i A, de vill säga C = [A,b]. Marisen C kan då olkas som vår ekvaionssysem A=b. Gauss Jordan eliminaion på C, se Anon (994, p ), ger den rappsegsreducerade marisen C. Dea är e beydande seg i srävan a a fram de binära lösningarna så effekiv som möjlig. Eliminaionen reducerar marisen ill en enklare form men ändrar ine lösningsrumme. C = C represenerar följande ekvaioner: + 5 + + 5 4 + 5 + = = = Efersom, och 4 mosvarar de ledande eorna i den radreducerade marisen C kallas dessa för ledande variabler. Reserande variabler, och 5 kallas för fria variabler. Löser vi de ledande variablerna i ermer av de fria variablerna erhålles 4 = 5 = = 5 + 5 + (.)

Om vi kan esa alla binära kombinaioner av de fria variablerna, ger de värden på de ledande variablerna. Behåller vi de lösningar där alla värden är binära, de vill säga även där de ledande variablerna är binära, får vi alla möjliga lösningar. Skriv om (.) på marisform enlig =De, där = 4 D = e = 5. Konsanerna från (.) ses i försa kolumnen i D. Om binära värden säs in på de fria variablerna i e kommer produken De a ge värden på de ledande variablerna, och 4. Värdena på variablerna i och e bildar då illsammans en lösning ill A=b. Denna kan, men behöver ine vara binär. För a hia alla binära lösningar skapas, uifrån vekorn e, en maris E med kolumner. Varje kolumn represenerar en unik binär kombinaion av de fria variablerna, 5 och. Övriga variabler säs ill noll. E = I marisproduken T=DE sår varje kolumn j för en kombinaion av de ledande variablerna,, och 4 som ges av den binära uppsäningen på de fria variablerna från kolumn j i E. T =

Sammanfoga T med de binära kombinaioner på de fria variablerna som mosvarar respekive lösning i T. Kalla den sammanfogade marisen T. Varje kolumn i T är en lösning på våra obekana variabler,,. T = Behåll enbar de binära lösningarna, de vill säga kolumnerna,, 4 och. Dea kan göras genom a muliplicera varje elemen i T med sig själv och behålla de kolumner där inga värden ändras. Ty alen och skiljer sig å från alla andra al på så sä a de förblir oförändrade efer a de har mulipliceras med sig själva. Vi erhåller då en ny maris där varje kolumn är en binär lösning Π, i,..., 4, ill ekvaionssyseme A=b. Transponera marisen i = för a få lösningarna Π,..., Π4 radvis. Π Π Π Π 4 4 5 Sannolikheen a rua i innehåller en mina är lika med andelen lösningar Π,..., Π4 där i =. Vi kan beräkna dessa sannolikheer genom a summera alla kolumner i abellen och dividera med anal rader. Lå p i, i=,,, vara sannolikheen a rua i är minerad, de vill säga p i = P( i =). Då får vi en minsannolikhesvekor enlig : p p p p4 p5 p.5.75.75.5.5.5 För a minimera risken a direk söa på en mina bör således någon av ruorna nummer 5 eller väljas därnäs.

4 Vi har nu i exempel agi upp e problem som även kan lösas med enkel kombinaorik. Den maemaiska meod som används kan yckas onödig. Men kom ihåg a meoden är generell och kan lösa varje siuaion på spelplanen. De finns siuaioner för vilka den är särskil effekiv. Nedan kommer e sådan exempel. Exempel. Vi Åervänder ill MS röjschema. Anag a siuaionen är enlig följande: 4 5 Vi vill vea minsannolikheerna för ruorna med variablerna i, i=,,,. Ruorna ill vänser om kolumnen med eor är öppnade. Siuaionen ger e ekvaionssysem i form av marisen: C = Gauss-Jordan eliminaion ger marisen: C =

Vi ser a alla sex obekana variabler i, i=,, är ledande. De beyder a vi får en enydig lösning på dessa. Sannolikhesvekorn är då idenisk med denna lösning och blir: p p p p4 p5 p I den akuella siuaion behöver således ingen chansning göras, vilke man ill en början skulle kunna ro. Efersom den binära lösningen i exempel är enydig, är min meod där väldig effekiv. I vissa siuaioner på spelplanen är dock meoden ine lika fördelakig. Problem kan särskil uppså då de fria variablerna blir allför många. fria variabler ger ill exempel, de vill säga över en miljard olika kombinaioner a undersöka. Vi måse då hia e sä a reducera onödiga lösningar. E sä, a beräkna oberoende öar var för sig, beskrivs i exempel. Exempel. Anag a siuaionen på spelplanen ser u enlig: 4 5 7 9 4 5 Vi får ekvaionerna: + + + 5 4 + + + 7 4 = + + 5 + + = + 7 + 9 + + + + + 4 + 5 + = 5

Dessa anges av marisen: C = Gauss-Jordan eliminaion ger: C = Vi ser a, och 9 är ledande variabler. Reserande kommer a vara fria. Löser vi de ledande variablerna i ermer av de fria variablerna ger de: = = = 5 4 9 7 4 5 Schema kan preseneras på marisform enlig =De, där = 9 D = e T = [ ] 5 4 8 7 5 4

För a reducera anale binära lösningar kan spelplanen delas upp i re öar, se figur nedan. Dessa är oberoende av varandra och även av reserande ruor efersom anale minor inom varje ö är besäm. Vi kan beräkna minsannolikheerna inom varje oberoende ö var för sig. 4 5 7 9 4 5 Men hur skall daorn kunna skilja öarna å? Lå oss se på den radreducerade marisen C = En grupp av rader som endas innehåller eor som ingen annan rad innehåller är en oberoende ö. Vi ser här a alla re rader är oberoende öar. Vi kan dela upp ekvaionssyseme T=DE i re separaa delar och lösa varje del var för sig enlig idigare princip. Marisekvaionen =D e sår då för den försa öns relaioner mellan variablerna, där D = [ ] (e ) T = [ ] 5 D är försa raden i D och e är e uan de variabler som är beroende av andra öar. Om värden säs in på de fria variablerna i e, kommer muliplikaionen D e a ge e värde på den ledande variabeln. De värde kombinera med de fria variablerna som gav blir då en lösning på våra obekana variabler. För a få alla lösningar skapas en maris E med kolumner. Varje kolumn represenerar en unik binär kombinaion av de fria variablerna 5 och. E :s dimensioner kommer a vara 7x. Vi behöver således esa fyra kombinaioner av de fria variablerna för a få fram de binära lösningarna för den försa öns ekvaioner. Vi kan då besämma minsannolikheerna för ruorna i den ön. 7

p p p p4 p5 p p7 p8 p9 p p p p p4 p5 p På samma sä kan de vå andra öarnas minsannolikheer beräknas. De öarna besår av fyra respekive fem fria variabler. Vi behöver därför esa 4 respekive 5 kombinaioner av de fria variablerna för a få fram de binära lösningarna. Efersom marisernas dimension behålls ros uppdelningen, de vill säga de variabler uanför respekive ö as ine bor uan säs ill noll, kommer övriga ruors minsannolikheer a vara noll. På så sä blir minsannolikhesvekorn lika sor för alla öar. Vi kan addera dessa vekorer för a få fram samliga minsannolikheer. De andra öarnas sannolikhesvekorer blir enlig följande: p p p5 p p8 p9 p p p4 p5 p p 5 p4 5 p7 5 p 5 p 5 p p p p4 p5 p p7 p8 p p p p9 p p p4 p5 Addering av de olika öarnas sannolikhesvekorer ger lösningen. Toal måse vi esa + 4 + 5 = 5 kombinaioner för a få minsannolikheerna. Om vi ej ar hänsyn ill öarna behöver kombinaioner esas. Anale icke-binära lösningar har därmed reduceras avsevär. Med andra ord, a dela upp spelplanen i oberoende öar effekiviserar. 8

9 4 Från eori ill simulering Dea avsni handlar om hur jag kan unyja den maemaiska meod jag idigare beskrivi för a simulera e pari MS röj. Algorimen åerfinns i Appendix A. Källkoder hias i Appendix B. Lå oss ana a spelplanen är av sorlek 4x4 och a re ruor är minerade. Ruorna är numrerade enlig följande: 4 5 7 8 9 4 5 4. Uökad grannmaris I grannmarisen beskrivs vilka ruor som är grannar med varandra. Den uökade grannmarisen, se bild nedan, är grunden för de ekvaionssysem som behövs för a beräkna minsannolikheer under speles gång. 5 4 9 8 7 5 4 5 4 9 8 7 5 4 Rad i, i=,,, visar eor i den kolumn j, j=,,, där rua i har j som grannrua, nollor för övrig. Den yersa kolumnen är ill en början om men kommer så småningom a fyllas

med informaion i form av siffror från de öppnade ruorna. Nedersa raden beskriver ekvaionen a de oal finns re minor, de vill säga =. i i= 4. Minuloning Minorna slumpas u med hjälp av Malabs slumpgeneraor, se Melin (99, p 58). Slumpgeneraorn har en cykel på 49. För a sara processen behövs e frö i form av en siffra. Om användaren ej ger e frö så sarar Malab med värde noll. Uloningen sker med OSU om re ruor bland. Varje rua har då lika sor sannolikhe a innehålla en mina. En änkbar minuloning skulle kunna se u enlig: Vi ser a rua nummer, 4 och är minerad. Uifrån dea görs en grannminmaris. Grannminmarisen visar för varje rua hur många minor de finns bland dess grannruor. Den kommer a användas när ruorna öppnas. 4. Hur spele börjar Inför försa vale har alla ruor lika sor minsannolikhe, varför vi slumpar vilken rua som ska väljas. Om den innehåller en mina är spele förlora. Är ruan ej minerad får spelaren vea hur många minor de finns bland ruans grannar. Den informaionen finns i grannminmarisen och

säs in på den rad som represenerar den öppnade ruan i den uökade grannmarisens informaionskolumn. Anag a rua 8 väljs. Den har en minerad grannrua, vilke gör a vi infogar en ea på rad 8 i informaionskolumnen. Rua 8 är ine längre missänk för a vara minerad, varför den ruan ine ska vara med i de forsaa sannolikhesberäkningarna. Alla värden i kolumn 8 i den uökade grannmarisen säs därför ill noll. Bilda en maris av de rader som innehåller informaion i informaionskolumnen, de vill säga rad 8 sam sisa raden. C = Marisen sår för följande ekvaioner: + + 4 + + 7 + + 4 + + 5 + = + 7 + 9 + + + + + 4 + 5 + = Ekvaionssyseme ovan innehåller all informaion som den akuella siuaionen på spelplanen ger. 4.4 Spele forsäer Minsannolikheerna beräknas för den akuella siuaionen med hjälp av den eori som beskrivis i avsni. Ruan med mins minsannolikhe väljs. I de fall där flera ruor har samma minsa minsannolikhe sker loning bland dessa. Anag a rua j väljs. Om den ruan är minerad, är spele förlora. Om så ine är falle, får spelaren vea hur många minor de finns bland ruans grannar. Den informaionen finns i grannminmarisen och säs in på rad j i informaionskolumnen i den uökade grannmarisen. Alla värden i den uökade grannmarisen i kolumnen j säs ill noll. De rader som innehåller informaion bildar en ny maris och nya minsannolikheer kan beräknas. Proceduren forsäer ill dess a alla minor är lokaliserade, de vill säga när re av ruorna har minsannolikhe e, reserande har minsannolikhe noll.

4.5 En simuleringssudie Lå oss illsammans följa daorn i e simulera spel MS röj. Spelplanen är av sorlek 4x4 med oal re minor. Minorna slumpas u enlig följande: Minornas placering är obekan för spelaren. Försa klicke loas bland spelplanens alla ruor. Rua nummer 8 väljs. Den är ine minerad och har en granne som innehåller en mina. Spelplanens useende ges nedan. Till höger visas minsannolikheer för respekive rua................ Alla ruor som är oöppnade har här lika sor sannolikhe a innehålla en mina. Dea inses med hjälp av enkel kombinaorik. Rua nummer väljs efer loning. Dea ger följande:.48.48.85.85.59.59..59..85.59.59.59.48

Siuaionen på spelplanen är nu mer invecklad efersom flera av ruorna beror både av ean och av våan. Enlig de beräkningar som görs är rua nummer, och de med lägs minsannolikhe. Rua nummer väljs efer loning..5.87.5.8.8.5.8.87.5.8.8.8.87 Rua nummer 7 väljs efer loning..444...444.... Vi ser ill höger a rua nummer är minerad. De är då vå minor kvar a idenifiera. Rua 5 väljs efer loning. Denna har minsannolikhe noll och innehåller därför ingen mina..48.4.48.8.8.8.4 Rua nummer 9 väljs efer loning.

.5.5.5.5 Vi kan nu se a vi börjar närma oss lösningen. De vå åersående minorna är nu lokaliserade ill någon av de fyra ruor som har minsannolikhe.5. Lägg märke ill a de forfarande finns oöppnade ruor där vi ve a de ej innehåller minor. Loning ger a rua nummer väljs..5.5 Två av minorna är nu idenifierade. Den sisa minan finns i rua nummer eller 4. Vi kan dock isälle klicka på någon av de ruor som har minsannolikhe noll. Rua nummer väljs efer loning. Vi ser i de högra rusyseme a samliga minsannolikheer är binära al. Minornas placeringar är därmed fassällda och spele avklara. Min vision var a programmera en varian av spele MS röj, där användaren i varje siuaion själv väljer rua med hjälp av successiv beräknade minsannolikheer enlig exemple ovan. 4

Tyvärr fanns ine id a göra verklighe av visionen varför jag fick nöja mig med a simulera spel. Ingen grafik visas i simuleringarna. Bilderna ovan är illusrerade i eferhand genom a gå in i programme och översäa kod ill bild. 5 Simuleringsresula I dea avsni kommer de resula som erhölls vid simuleringarna a redovisas. Simuleringarna är gjorda i Malab. På grund av minnesurymme har bara spel med spelplanssorleken 4x4 simuleras. Inressan är a vea huruvida de försa klickes posiion har någon beydelse för ugången av spele. Därför gjordes fyra olika yper av simuleringar beroende på hur försa klicke slumpades u.. Var som hels på spelplanen(f).. Bland spelplanens åa kanruor(k).. Bland spelplanens fyra hörnruor(h). 4. Bland spelplanens fyra miruor(m). Jag kommer i forsäningen a försöka hänvisa ill de olika simuleringsyperna genom a använda boksavsbeeckningarna: F, K, H och M. I vissa fall kommer dock sifferbeeckningarna a användas. Tabell. Resula 4 simuleringar. Tre minor. Simuleringsyp F K H M y.7575.575.75.75 m.95.95.995.94 y=andel lyckade spel, m=medelanal minor kvar a uppäcka om spele misslyckas Vi ser a vid de flesa gånger spele misslyckas, åersår samliga minor a röja. De försa klicke, vilke har en minsannolikhe på /, är en sor del av förklaringen. Högs sannolikhe a klara spele ycks simuleringsyp H ha. I avsni 5. kommer jag a presenera eser som bekräfar dea. 5

Tabell. Resula 4 simuleringar. Två minor. Simuleringsyp F K H M y.8775.84.8475.88 m y=andel lyckade spel, m=medelanal minor kvar a uppäcka om spele misslyckas Även här ycks hörnruorna vara bäs a börja med. Vi ser också a när vi väl har röj den försa minan ycks spele allid gå u. Lå A vara händelsen a spele går u. Lå X vara anal gånger som A inräffar i n simuleringar. Då kan X ses som en binomialfördelad sokasisk variabel, de vill säga X~Bin(n,p) där p är sannolikheen a A inräffar i e enskil försök. 5. Inervallskaning Konfidensinervall för p kan göras med unyjande av normalapproximaion, se Blom (984b, kap ). Efersom n är sor blir de approximaiva konfidensinervallen bra. Enlig cenrala gränsvärdessasen gäller för sora n approximaiv a X N( p, D) där pq D = n n E approximaiv konfidensinervall, I p, för p blir då I p = ( p * λ α d, p * + λ α d ) där d är medelfele, de vill säga d p *( p*) n =, λ α är normalfördelningens kvanil, (-α) är konfidensgraden och p* är punkskaningen för p, dvs i vår fall, andelen lyckade spel i de n simuleringarna.

Lå X i Bin(4,p i ) vara sokasiska variabler från simuleringsyp i med re minor, i=,,,4. Här är p i sannolikheen a e simulera spel går u. Lå p p p p = p = p = p F = p K H M Approximaiv 95%-iga konfidensinervall för p i blir då Tabell. Konfidensinervall. Tre minor I p F.7575±.4 I p K.575±.48 I p H.75±.4 I p M.75±.4 Lå Y i Bin(4,π i ) vara sokasiska variabler från simuleringsyp i med vå minor, i=,,,4. Här är π i sannolikheen a e simulera spel går u. Approximaiv 95%-iga konfidensinervall för π i blir då Tabell 4. Konfidensinervall. Två minor I π F I π K I π H I π M.8775±..84±.8.8475±..88±. 7

5. Hypoesprövning För a kunna avgöra om p i p j och s i s j, i j, kan parvisa hypoesprövningar uföras, se Blom (984b, kap ). Vi använder oss här liksom vid konfidensinervallskaningen av normalapproximaion varför eserna är approximaiva. Efersom n är sor är vår approximaion bra. För vå sokasiska variabler X Bin(n x,p x ) och Y Bin(n y,p y ), kan en hypoesprövning göras enlig följande: Nollhypoesen H och mohypoesen H anas vara H : p x = p y och H : p x p y Anag a H är sann och kalla de gemensamma värde p = p för p. En skaning av p ges x y då av x + y p* = n x + n y Vi kan då skapa en essaisika u enlig p * p * x y u = där d d = p * q * + n x n y Om u > λ α är skillnaden signifikan på nivån α. Lå X i Bin(4,p i ) och Y i Bin(4,π i ), enlig avsni 5.. 8

Några av de eser som gjors redovisas nedan. Tabell 5, parvisa hypoesprövningar Nollhypoes(H ) Tessaisika(u) p K =p M.44 p K =p H. p F =p H.5 π K =π H 4. π F =π H 5.4 π H =π M. π K =π M. Lå α =.5. för en nollhypoes där essaisikan, u, är sörre än λ.5 =.9 kan den förkasas på 5%-nivån. Tabellen visar a i alla eser som redovisas kan nollhypoesen förkasas. För båda yperna av spel kan fassällas a bäsa öppningen görs i en hörnrua. För spel med re minor är kanruorna sämsa saralernaive. Sämsa öppningen för spel med vå minerade ruor är i en mirua. Jag ska nedan försöka mig på a förklara orsaken ill dea. En hörnrua har ganska sor sannolikhe a ej ha någon minerad granne. Om så är falle kan dessa grannruor öppnas uan risk för a vara minerade och på så sä skaffa värdefull informaion angående övriga ruor. Dea kan vara en förklaring varför en sar i hörnruorna ger de bäsa värdena. Vid de flesa fall där spele misslyckas, sker missage alldeles i början. Vi kan se de på variabeln m:s värden i abell och i abell. De är därför vikig a få en bra sar så a näsa klick är relaiv säker. Anag a spelplanen innehåller re minor och a försa klicke görs i en kanrua. Om den ruan visar en ea, de vill säga de finns en mina bland grannruorna, kommer alla ruor ha samma minsannolikhe, /5, inför näsa klick. Ingen annan sar kan ge e sådan oönska ufall. Dea kan förklara varför en sar i kanruorna har den lägsa sannolikheen a klara spele. 9

När spelplanen innehåller vå minor kan en öppning i miruorna medföra a vi måse välja en rua med minsannolikhe /8. Dea sker om en ea visar sig i den ruan vi val. Ingen annan öppning kan göra a vi i näsa klick måse välja en rua med så sor minsannolikhe. En sar i miruorna ger därför lägs sannolikhe a klara spele. Diskussion I dea sisa avsni behandlas diverse aspeker som ill exempel briser i arbee och evenuella kompleeringar som skulle kunna göras. Kopplingar ill e sor veenskaplig område as också upp. En sor del av mi arbee ugjordes av a försöka lösa binära ekvaionssysem så effekiv som möjlig. Med effekiv menar jag a vid e idig skede kunna eliminera så många av de icke binära lösningarna som möjlig. I MS röj kan spelplanen vara mycke sor. I de flesa versioner begränsas dock denna ill en sorlek av x. A dela upp spelplanen i oberoende öar och fria variabler gör a ingen siuaion på spelplanen kräver fler än obekana variabler. De innebär med andra ord olika kombinaioner a esa. I Malab, de vill säga de programmeringsspråk som använs ar minne slu vid en sådan beräkning för cirka variabler. Här uppsår e problem. Kan variablerna delas upp yerligare? E sä är a omvandla de beroende öarna ill oberoende genom a ansäa bivillkore a x minor gömmer sig på ön. Genom a beräkna minsannolikheer för alla öar och alla dess möjliga bivillkor, kan de kombinaioner som ger fel anal kvarvarande minor elimineras. Tyvärr har dea ine kunna uföras och kan ses som e poeniell problem vid evenuella forsaa sudier i ämne. All efersom spele pågår förändras ugångsläge för a beräkna minsannolikheerna. Öarna byer useende och karakär, vissa variabler kommer ill medan andra försvinner. För a kunna följa denna uveckling krävs en flexibilie i programmeringen som jag ine full behärskar. Spelplanen begränsades därför så krafig som ill e kvadraisk rusysem innehållande ruor. Då kan alla variabler vara med ill en början och ingen beräkning kräver mer än kombinaioner a esa. Min ursprungliga vision var a kunna simulera spel av sorleken x.

Är sraegin a i alla siuaioner välja den rua med mins minsannolikhe allid den opimala? I vissa fall kan en siuaion uppså där vå ruor vardera har.5 i minsannolikhe. Alla ruor kring dessa är öppnade. Vale mellan dessa ruor måse förr eller senare ske. De kan då vara bäre a så for som möjlig gissa och på så sä spara id. Om måle är a komma så lång som möjlig bör dock dessa båda ruor sparas ill sis. E anna fall som ifrågasäer min sraegi är när en rua med sörre minsannolikhe i sni ger bäre informaion än en rua med mindre sannolikhe. Kanske minsannolikheerna skiljer sig å så pass lie a ruan med sörre sannolikhe är a föredra. I de fall där mi program loar vilken rua som ska väljas skulle de naurligvis vara bäre a analysera siuaionen och välja den rua som mes rolig ger den bäsa informaionen. Sraegin är allså ine nödvändigvis opimal, men den fungerar ändå relaiv väl. I den rycka veenskapliga lierauren har enbar en uppsas hias som behandlar MS röj: Adamazky (997). Denna uppsas behandlar en meod a auomaisk lokalisera minor men ger inga resula rörande minsannolikheer. Buzzard (999) analyserar en siuaion i MS röj och beräknar minsannolikheer med hjälp av kombinaorik. Dea arbee kan yckas vara frisående, men viss koppling finns ill e sörre och mer veenskaplig område: Bayesian neworks, se ill exempel Ripley (99, Kap 8). E sådan näverk är en graf med noder och kaner. Till varje nod hör en sokasisk variabel. Variablerna är beroende och beroende preciseras delvis med hjälp av kanerna. Värdena för variablerna är bara kända för vissa noder. De är då av inresse a ill exempel kunna predikera övriga noders variabelvärden. Denna predikion sker normal med hjälp av en speciell simuleringsmeod: Markov chain Mone Carlo, McMC, se,ill exempel, Ripley (99, Appendix A).

Referenser Adamazky, A. (997). How cellular auomaon plays minesweeper. Applied Mahemaics and Compuaion 85, 7-7. Anon, H. (994). Elemenary Linear Algebra nd ed. John Wiley & Sons, inc, New York Blom, G. (984a). Sannolikheseori med Tillämpningar. Sudenlieraur, Lund Blom, G. (984b). Saisikeori med Tillämpningar. Sudenlieraur, Lund Buzzard (999). Minesweeper: Advanced acics, hp://world.sd.com/~buzzard/minesweeper/ Melin, B. (99). Användarhandledning för MATLAB 4.. Teknisk daabehandling, Uppsala Ripley, B.B. (99). Paern Recogniion and Neural Neworks. Cambridge Universiy Press, Cambridge

Appendix A Algorim, spela e pari Ms röj. Besäm sorlek på spelplanen och anal minor. Skapa en grannminmaris. Slumpa u minorna. Gör en grannminmaris 4. Slumpa försa klicke 4. Om minerad rua 4.. Avslua 4. Om om rua 4.. Översä informaionen ill grannminmarisen 5. Så länge de finns minor kvar a idenifiera 5. Lå A vara marisen besående av de rader i grannminmarisen som innehåller informaion 5. Räkna u minsannolikheerna för ekvaionssyseme A 5. Om någon ickevald rua har minsannolikhe 5.. Spara ruans placering i en vekor 5.. Anal minor kvar = anal minor kvar 5.. Gå ill 5. 5.4 Välj den rua med mins minsannolikhe av de ruor jag ej idigare val 5.4. Om minerad rua 5.4.. Avslua. Spara anal kvarvarande minor 5.4. Om om rua 5.4.. Översä informaionen från ruan ill grannmarisen 5.4.. Spara ruans placering i en vekor 5.5 Gå ill 5. Spele är klar I

Appendix B Källkod Tre program as med i appendix. De försa, huvudprogramme, simulerar e anal Ms röj-spel och gör de beräkningar uifrån frågesällningarna som beskrivs i inrodukionen. De vå andra, delprogrammen minesweeper och binary, spelar e pari Ms röj respekive löser ekvaionssysem för binära variabler och beräknar minsannolikheer. funcion x = simulering(ansimuleringar,anminor,sorlek); %simulerar e anal Ms röj spel och räknar %u hur ofa den klarar spele. De gånger spele ine "går u" beräknas %medelale minor de är kvar a röja klara=; ejklara=; msum=; for i=:ansimuleringar %nollsäll anal klarade %spelomgångar %nollsäll anal ej klarade %spelomgångar %nollsäll anal ouppäcka minor %gör dea ansimuleringar gånger m = minesweeper4(anminor,sorlek); if m== klara=klara + ; else ejklara=ejklara + ; msum=msum+m; end end %spela e pari Ms röj %om spele "gick u" %lägg ill en ill anal klarade %parier %om spele ej "gick u" %lägg ill en ill anal %ej klarade parier %lägg ill hur många minor de %var kvar a röja klarade=(klara/ansimuleringar)* ejklaramedel=msum/ejklara %räknar u hur sor del av alla %spel som "gick u" %av de gånger som spele ej gick %u så beräknas %i sni hur många minor de då %finns kvar II

funcion m = minesweeper(anminor,sorlek); %spela e pari Ms röj minefield=minefield(sorlek,sorlek,anminor); %slumpa u minorna numgminor=numgrannminor(minefield); %numminor är en maris där de i %varje rua sår hur många %grannminor de finns. gmaris=grannmaris; %visar vad varje rua har för %grannar gmaris(sorlek^+,sorlek^+)=anminor; %sisa raden i gmaris visar hur %många minor de oal finns på %spelplanen vilka=zeros(,sorlek^+); %vilka ska vara en vekor där de %ruor som öppnas är eor vilka(,sorlek^+)=; firs=round(rand*(sorlek-))+ ; %väljer rad för försa klicke firs=round(rand*(sorlek-))+ ; %väljer kolumn för försa klicke firs=((firs-)*(sorlek))+firs; %nr på ruan för försa klicke if minefield(firs,firs)== %om försa klicke är på en mina %avbry m=anminor; %och reurnera anal minor reurn else gmaris(firs,sorlek^+)=numgminor(firs,firs); %sä analgrannminor på %rä rad i gmaris gmaris(:,firs)=; end vilka(,firs)=; agna=find(vilka); ejagna=find(-vilka); vilka=vilka; %addera den öppnade ruan ill %vilka %agna visar siffror på de %öppnade ruorna %ejagna visar siffror på de ej %öppnade ruorna III

while(anminor>) %så länge de är kvar minor a %uppäcka sannolikhe=esbinary8(gmaris([agna],:)); %räknar u minsannolikheen %för alla ruor san=; rua=; mina=; for i=:lengh(ejagna) %loopa igen ejagna-vekorn if ((sannolikhe(,(ejagna(i)))==) & (mina==)) %om försa hiade minan i %ejagna som ej idigare vals anminor=anminor-; mina=; rua=ejagna(i); end %kom ihåg var minan låg if ((sannolikhe(,(ejagna(i)))<=san) & (mina==)) %välj den rua med mins %minsannolikhe san=sannolikhe(,(ejagna(i))); rua=ejagna(i); end end if mina== rad=(ceil(rua/sorlek)); kol=(rem(rua,sorlek)); if kol== kol=sorlek; end %om ingen säkersälld mina bland %de oöppnade ruorna %a fram koordinaer för den %valda ruan if minefield(rad,kol)== m=anminor; reurn end %om den valda ruan är minerad %anal minor kvar a röja IV

end vilka(,rua)=; if mina== vilka(,rua)=; agna=find(vilka); end %den valda ruan läggs på minne %om den valda ruan ej är en mina ejagna=find(-vilka); if mina== gmaris(rua,sorlek^+)=numgminor(rad,kol); %sä in informaion i gmaris gmaris(:,rua)=; %ruan ska ej vara med i %sannolikhesberäkningarna mer end end m=anminor; %anal minor kvar. Om är spele %klara. funcion y = esbinary(a); %funkionen hiar alla binära lösningar ill ekvaionssyseme A C=rref(A); [m,n]=size(c); D=C; %uför Gauss Jordan eliminaion %på A %m = anal rader, n = anal %kolumner for i=:m j=; while ((C(i,j)==) & (j<n-)) j=j+; end %hiar de försa eorna i resp %rad, dvs kollar vilka variabler %som är fria. V

if C(i,j)== B(j)=C(i,j); D(i,j)=; end %de försa eorna i resp rad %säs ill i D. end j=lengh(b); while (n-)~=size(b) B(j+)=; j=j+; end B=-B; E=D(:,n); E=E'; F=D(:,:n-); F=(-)*F; F=F'; F=[E;F]; F=F'; H=find(B); H=find(-B); %B visar eor för de fria %variablerna och nollor för de %beroende %F ska göra om syseme så a de %beroende variablerna sår %ensamma %H visar på vilken plas i B de %fria variablerna finns l=lengh(h); l=lengh(h); F=zeros(n-,n); for i=:l F(H(i),:)=F(i,:); end %l=anal fria variabler %F är som F men med de ber. var %på rä rad Add=delaupp(l,l,F,H); j=; %Dela upp marisen i oberoende %öar VI

koll=; sannolikhe=zeros(,n-); while(koll<=lengh(find(add))) j=; ber=; while Add(j)~= ber(j)=add(j); j=j+; koll=koll+; j=j+; end ber; %så länge de finns ober. Öar %kvar a räkna minsannolikheer %för. F=nyF(ber,F); h=findfree(ber,f); G=binmaris(lengh(h),n,h); %Nu vill jag få en maris G, där %alla - kombinaioner av de %fria variablerna finns med. =F*G; %nu får jag alla lösningar på de %beroende variablerna där jag %esa alla - kombinaioner av %de fria variablerna. Ny=G(:n,:); Ny=+Ny; Ny=Ny'; Ny=Ny.^; [kk,ll]=size(ny); Ny=zeros(,ll); j=; for i=:^lengh(h) if Ny(i,:)==Ny(i,:); %a bor hjälpraden med eor. %för a bara få fram de binära %lösningarna muliplicerar jag %varje elemen i marisen med sig %själv. De rader som ej ändras %får vara kvar i Ny. VII

Ny(j,:)=Ny(i,:); j=j+; end end Ny; [q,p]=size(ny); if q== kolsum=ny; else kolsum=sum(ny); end sannolikhe=kolsum/q; sannolikhe=sannolikhe+sannolikhe; j=j+; end y=sannolikhe; %sannolikheerna kan nu räknas u %genom a summera kolumnerna och %dividera med anale lösningar VIII