729G Artificiell jakt och flockbeteende inom datorspel
|
|
- Ingeborg Lind
- för 7 år sedan
- Visningar:
Transkript
1 Artificiell jakt och flockbeteende inom datorspel
2 Abstrakt Chasing and Evading är ett begrepp som används för att beskriva hur agenter rör sig mot (jagar), eller undviker en spelare. Liksom i de flesta fall av AI finns det olika nivåer att implementera ett sådant system. Ju fler eventuella hinder som existerar eller om spelaren rör på sig, ju smartare måste agenten vara. Ett sådant system är grundläggande för de flesta spel då möjligheten för de datorstyrda fienderna att kunna nå spelaren kan tyckas vara ganska väsentlig. Evading är i princip motsatsen till Chasing och fungerar på ungefär samma sätt. Rapporten kommer att fokusera på Chasing, hur en datorstyrd agent tar sig fram och/eller jagar en spelare och hur den löser eventuella problem som kan dyka upp. Även vilka komplikationer som kan uppstå och lösningar som kan implementeras ifall man vill använda mer än en agent i en så kallad flock.
3 Innehållsförteckning Abstrakt... 2 Inledning... 4 Syfte... 4 Basic chasing... 6 Line-of-sight chasing... 6 Bresenhams linje algoritm... 7 Rörelse mönster... 8 Obstacle avoidance... 8 Flocking... 8 Synfält... 9 Cohension Alignment Seperation Diskussion... 13
4 Inledning Mycket framgång har gjorts i AI teknologin som används inom spelutveckling. Länge har spelföretagen tävlat om att göra de grafiskt snyggaste spelen och i takt med utvecklingen av hårdvara har resultaten varit häpnadsväckande. Även om strävan efter den vassaste grafiken fortfarande finns läggs allt mer fokus på den artificiella intelligensen hos de datorstyrda agenterna. Allt för att göra spelupplevelsen så verklighetstrogen som möjligt. En av de mest grundläggande egenskaperna för en datorstyrd agent är att kunna ta sig fram i den skapade världen. I de flesta datorspelen, av alla sorter, uppstår det dessutom någon form av jakt där den datorstyrda agenten har som mål att ta sig fram till spelaren. Hur får man en datorstyrd agent att aktivt jaga spelaren, och hur löser man det på ett intelligent sätt? Hur ser det ut om man använder sig av mer än en agent? Syfte Syftet med rapporten är att skapa en fördjupad kunskap inom datorspelens AI och fenomenet Chase and Evade. Vad begreppet innebär, hur det är uppbyggt och hur man generellt löser olika problem som kan dyka upp på vägen. Även hur man löser problem när det är mer än en agent involverad och skapar ett såkallat flockbeteende.
5 Miljön som en Chase sekvens kan utspela sig i kan antingen vara plattformad eller kontinuerlig miljö. Med plattformad menas att välden är uppbyggd av distinkta plattor tiles som representeras av koordinater beskrivna i heltal och tillåter bara rörelse från platta till platta i åtta olika riktningar (t ex N, W, E, NW, NE etc.) I en kontinuerlig värld är positionen representerad av floating-point koordinater, vilket kan representera vilken plats i världen som helst. Agenterna representeras av stela kroppar vilket i princip betyder att agenterna får en volym. Detta ger agenterna utrymme att gå i vilken riktning som helst. I en kontinuerlig värld använder man sig även av fysikens lagar och lägger till krafter för att röra eller styra agenten. Chasing and Evading problemet består av 3 delar: Valet att initiera en Chase eller Evade Själva initieringen av jakten Att undvika eventuella hinder Till att börja med kan man konstatera det enklaste och vanligaste AI-tricket är att datorn fuskar. Den datorstyrda agenten har redan all information som krävs för att ta sig till spelaren. Men för att göra spelet mer realistiskt och ge spelaren en chans kräver man vissa indikatorer för att datorn skall börja initiera en jakt. Detta kan t ex vara om spelaren hamnar inom agentens synfält, ett område runt agenten som känner av ifall spelaren är i närheten, när agenten väl har fått syn på spelaren initieras jakten. Sättet som agenten tar sig till spelaren kan se ut på olika sätt.
6 Basic chasing Basic chasing är en simpel lösning på jakt problemet i en plattbaserad miljö. Det går enkelt ut på att rätta agentens koordinater utefter spelarens koordinater tills agenten har samma koordinater som spelaren. Det sättet må vara effektivt och lätt att implementera men det får själva rörelsen att se väldigt hackig och mekanisk ut. Pseudo kod exempel: if ( predatorx > preyx ) predatorx - else if ( predatorx < preyx ) predatorx++ if ( predatory > preyy ) predatory - else if ( predatory < preyy ) predatory++ Line-of-sight chasing Line-of-sight chasing uppför sig mer naturligt och mer intelligent än Basic chasing. Här skapas illusionen av att agenten ser spelaren och tar den rakaste och mest direkta vägen. I en platt baserat miljö där spelaren bara kan röra sig i 8 olika riktningar är det väsentligt att agenten bara rör sig till närliggande plattor. Som lösning på det problemet använder man Bresenhams linje algoritm för att bestämma den kortaste vägen fram till målet. I en kontinuerlig miljö används samma princip men genom att använda sig av stela kroppar som representerar agenten och fysik motor kan man istället använda sig av krafter för att röra agenten i riktningen som Bresenhams algoritm ritar ut.
7 Bresenhams linje algoritm Bresenhams linje algoritm använder sig av räta linjens ekvation y = kx+m för att räkna ut den sanna linjen mellan p1 och p2. Men eftersom det är omöjligt att rita ut den sanna linjen i en pixlerad värld ritar Bresenhams algoritm istället ut en approximerade linjen. Det första den gör är att bestämma vilken av axlarna som är den större axeln och vilken som är den mindre. I bilden är x- axeln den större axeln. I varje upprepning av algoritmen utvecklas värdet av den större axeln med en pixel. Efter det räknar den ut vilken pixel på den mindre axeln som är lämplig för den nuvarande pixel i den stora axeln. Detta gör algoritmen genom att checka vilken pixels centerum som är närmst den sanna linjen. Den tar koordinaterna för den sanna linjen och jämför med koordinaterna för pixelns centrum. Om felmarginalen från pixelns centrum till den sanna linjen är mindre eller lika med 0.5 ritas pixeln ut på den positionen. Exempel: På bilden ser man den sanna linjen i svart och de gråmarkerade rutorna visar den approximerade vägen agenten kan ta som resultat av uträkningen. Det vita strecket från pixel-center ner till den sanna linjen visar felmarginalen. deltax = x2 - x1; deltay = y2 - y1; m = deltay / deltax; y = y1; for (x = x1; x <= x2; x++) { PutPixel(x, round(y)); y += m; } // Skillnaden mellan x // Skillnaden mellan y // Lutningen på linjen // Startar på första pixel värdet // Ritar ut pixel // Räknar ut nästa y värde Genom att hela tiden rita ut riktningen med hjälp av Bresenhams algoritm kan agenten bestämma vilken platta den skall gå till härnäst. Varje gång målet byter position blir uträkningen därför felaktig och en ny uträkning måste därför göras.
8 Rörelse mönster Med hjälp av Bresenhams linje algoritm kan man även få agenten att röra sig i ett speciellt mönster. Detta gör den genom att rita ut flera linjer i följd, och sedan låta agenten följa vägen från den först ritade linjen mellan p1 till p2 och sedan fortsätta mellan p2 till p3 osv. En enkel lösning på när agenten får flera möjliga vägar att ta är att enkelt slumpa valet av väg. Detta sätt är vanligt att använda för när agenten är i ett Roaming State och alltså inte ännu har initierat en jakt. Obstacle avoidance För att undvika kollision med objekt i en kontinuerlig miljö skapar man virtuella känselspröt, dessa representeras av vektorer som har samma riktning som agenten rör sig i. När dessa vektorer bryts tvingas agenten att byta riktning tills vektorn återigen är obruten. För att undvika att agenten skär igenom eller fastnar på skarpa kanter skapar man mer än en vektor som täcker hela agentens kropp och tvingar agenten att ta en aningen längre väg runt hindret för att alla vektorerna skall återigen vara obrutna. Flocking Om man lägger till mer än en agent som jagar samma spelare kan olika problem uppstå. Agenterna kan börja krocka eller stå i vägen för varandra, kanske se varandra som hinder och försöka går runt. För att undvika dessa problem implementerar man något som kallas Flocking. Begreppet Flocking innebär att agenterna agerar i ett slags flockbeteende istället för att jaga spelaren individuellt. Det innebär att agenterna skapar en grupp som hela tiden tar hänsyn till varandras positioner och riktningar. Craig Reynolds har skapat en effektiv algoritm för det här beteende som har en viss likhet med det hos ett stim fiskar. Algoritmen bygger på tre enkla regler: Cohension: Varje enhet styr mot den genomsnittliga positionen av sina grannar. Alignment: Varje individ styr så att den ställer upp sig själv i samma riktning som sina grannar Separation: Varje individ styr sig själv för att undvika kollision med sina grannar.
9 Utefter dessa tre regler är det tydligt att varje individ måste kunna använda sig att styrnings mekanismer för att kunna reglera sin riktning och position. Dessutom måste varje enhet vara medveten om sin omgivning, var grannarna befinner sig vart de är på väg och hur nära de är sitt mål. I en fysisk simulerad, kontinuerlig miljö kan man använda sig av styrningskrafter för att få agenterna att lyckas med detta. I en platt baserad miljö kan man använda sig av något liknande line-of-sight chasing, t ex för Cohension kan man använda sig av Bresenhams algoritm för grannarnas positioner och räkna ut den genomsnittliga positionen i plattornas koordinater. Synfält Genom att implementera en Visability arc ger man agenten ett begränsat synfält som berättar vad som finns i dess närhet och detta hjälper dem att hålla koll på sina grannar. Synfältet runt agenten tar två parametrar, vinkeln på bågen och radien, en större radie tillåter för bättre kontroll över agentens omgivning, medans en mindre radie riskerar att tappa bort sina grannar. En stor radie med 360 graders vinkel skulle vara en relativt enkel lösning för att få agenterna att rada upp sig snyggt med full koll på allt i sin närhet men risken finns att det skulle se orealistiskt ut. Istället är det vanligare att man ger agenten ett begränsat synfält som har samma riktning som agenten. T ex en vinkel på 270 grader (vänstra exemplet i bilden) med en hyfsat stor radie skulle resultera i en välformerad flock medans en vinkel på 45 grader (högra exemplet på i bilden) mer skulle resultera i en slags gåsmarsch.
10 För att uppfylla de tre reglerna cohension, alignment och seperation måste tillräcklig data från synfältet samlas in, agentens position, grannarnas position och riktningen. Eftersom grannarnas positioner är relativa för vilken agent som kontrolleras måste alla individer i flocken samla in den här informationen i varje upprepning av loopen. Detta kan bli väldigt CPU-tungt beroende på hur många agenter existerar i världen. Cohension (Sammanhang) För att uppfylla cohension regeln kontrollererar agenten först och främst var grannarna befinner sig och registrerar deras respektive positioner. Efter det börjar den räkna ut den genomsnittliga positionen av sina grannar. Detta gör den genom att ta vektor summan från alla grannars positioner och dividerar med antalet grannar i synfältet. Resultatet representerar den genomsnittliga positionen som agenten bör ha.
11 Exempel: I koden beskrivs Pave och vposition, vvelocity som Vektor typer. Och Units[j] representerar grannarna medans Units[i] själva agenten som kontrolleras. if (DoFlock&&(N>0)) //Här kontrolleras synfältet efter antalet grannar I närheten if (InView) if (d.magnitude() <= (Units[i].fLength * RadiusFactor)) Pave += Units[j].vPosition //Här summeras vektorerna för grannaras positioner Vave += Units[j].vVelovity //Här summeras riktninsvektorerna som kommer att användas i alignment regeln. Sedan räknas grannarnas genomsnittliga position ut genom att ta Pave/N, därefter beräknas vektor skillnaden mellan Units[i] och den genomsnittliga positionen av grannarna vilket resulterar i en positions vektor som representerar den optimala platsen för agenten att stå på. Pave = Pave / N u = Pave Units[i].vPosition Alignment (Uppställning) Här vill man att alla enheter i gruppen skall styra mot i princip samma riktning. För att satisfiera den här regeln behöver man hämta varje grannes riktningsvektor, det vill säga vektorn som bestämmer rörelse riktningen i en fysiskt simulerad värld. Med hjälp av den kan man bestämma i vilken riktning som grannarna färdas i. Sättet att bestämma den genomsnittliga riktningen är i princip identiskt med sättet att bestämma den genomsnittliga positionen, agenten delar grannarnas riktningsvektorer med antalet grannar och får ut den genomsnittliga riktningen som agenten bör ha för att få en bra uppställning. Pave = Pave / N u = Pave Units[i].vVelocity // vvelocity representerar riktningsvektorn Sedan jämför den sin riktning med grannarnas genomsnittliga riktning för att få ut vilken riktning agenten bör ha.
12 Seperation Seperation antyder att vi vill att agenterna ska hålla ett minimum avstånd från varandra även om de fortfarande är tillräckligt nära varandra för att de andra två reglerna skall vara uppfyllda. Här implementerar man en mindre båge runt agenten som representerar minimum avståndet till grannarna. Om grannarna är innanför minimun avståndet till agenten som bestäms av SEPERATION_FACTOR, bestäms riktnings korrektion beroende på vart grannen befinner sig i x led. (m =(+/-) 1) if (InView) if (d.magnitude() <= (units[i].flength * SEPERATION_FACTOR)) if (w.x < 0) m = 1 if (w.x > 0) m = -1
13 Diskussion Just möjligheten att kunna få sina agenter att röra sig, själva eller i grupp, är grunden för nästan alla datorspel. Även om ämnet inte är cutting edge finns det ett visst värde I att känna till de absoluta grunderna. Det finns säkert fler sätt att få en agent att ta sig fram i en värld än de som har tagits upp i rapporten men den ger en insikt över hur komplicerade även de mest grundläggande sakerna kan vara. Flockbeteende var från första början menat som ett komplement till chase and evade, vad händer om man lägger till fler agenter?, men under loppets gång insåg jag att det nästan borde ha varit en rapport i sig själv med tanke på hur komplicerat det var. Därför har jag utelämnat detaljer som hur fysik motorn fungerar och hur man applicerar krafter till sin agent och mer fokuserat på teorin bakom det hela. Jag tycker ändå att man får en bra förståelse för hur man löser problemen, utan att vara någon expert på att användningen av en fysik motor.
14 Referenser Text: AI for Game Developers, David M. Bourg and Glenn Seemann, O Reilly Game AI, Ming-Hwa Wang, Ph.D. COEN 396 Interactive Multimedia and Game Programming, Department of Computer Engineering, Santa Clara University Bilder:
Kognitionsvetenskapliga Programmet LiU. AI i spelet Magicka. Gruppbeteende/Grupprörelser. Jonathan Nilsson
Kognitionsvetenskapliga Programmet LiU AI i spelet Magicka Gruppbeteende/Grupprörelser Jonathan Nilsson jonni544@student.liu.se 2011-09-01 2 Sammanfattning Den här fördjupningsuppgiften kommer handla om
Läs merKOKBOKEN 1. Håkan Strömberg KTH STH
KOKBOKEN 1 Håkan Strömberg KTH STH Hösten 2006 Håkan Strömberg 2 KTH Syd Innehåll Olikheter.................................... 6................................. 6 Uppgift 2.................................
Läs merRäta linjer i 3D-rummet: Låt L vara den räta linjen genom som är parallell med
RÄTA LINJER OCH PLAN Räta linjer i 3D-rummet: Låt L vara den räta linjen genom punkten P = ( x, y, som är parallell med vektorn v = v, v, v ) 0. ( 3 P Räta linjens ekvation på parameterform kan man ange
Läs merP Q = ( 2, 1, 1), P R = (0, 1, 0) och QR = (2, 2, 1). arean = 1 2 P Q P R
1 Matematiska Institutionen KTH Lösningar till några övningar på geometri och vektorer inför lappskrivning nummer 2 på kursen Linjär algebra II, SF1604, vt11. 1. En triangel har hörn i punkterna (1, 2,
Läs merVektorgeometri för gymnasister
Vektorgeometri för gymnasister Per-Anders Svensson http://homepage.lnu.se/staff/psvmsi/vektorgeometri/gymnasiet.html Fakulteten för teknik Linnéuniversitetet Räta linjens och planets ekvationer I Innehåll
Läs merKarta över Jorden - viktigt exempel. Sfär i (x, y, z) koordinater Funktionen som beskriver detta ser ut till att vara
Föreläsning 1 Jag hettar Thomas Kragh och detta är kursen: Flervariabelanalys 1MA016/1MA183. E-post: thomas.kragh@math.uu.se Kursplan finns i studentportalens hemsida för denna kurs. Där är två spår: Spår
Läs mer2x+y z 5 = 0. e x e y e z = 4 e y +4 e z +8 e x + e z = (8,4,5) n 3 = n 1 n 2 =
Problem 1. Nedan presenteras ekvationen för en rät linje och ett plan i rummet. Du ska avgöra om linjen är vinkelrät mot planet. x = 2 4t y = 3 2t z = 1+2t 2x+y z 5 = 0 Lösning: Linjen har riktningsvektorn
Läs merInledning. Kapitel 1. 1.1 Bakgrund. 1.2 Syfte
Sammanfattning Vi har i kursen Modelleringsprojekt TNM085 valt att simulera ett geléobjekt i form av en kub. Denna består av masspunkter som är sammankopplade med tre olika typer av fjädrar med olika parametrar.
Läs merTentamen TNM061, 3D-grafik och animering för MT2. Onsdag 20/ kl SP71. Inga hjälpmedel
Tentamen TNM061, 3D-grafik och animering för MT2 Onsdag 20/8 2014 kl 14-18 SP71 Inga hjälpmedel Tentamen innehåller 7 uppgifter, vilka tillsammans kan ge maximalt 50 poäng. För betyg G (registreras som
Läs merDär a = (1, 2,0), b = (1, 1,2) och c = (0,3, 1) Problem 10. Vilket är det enda värdet hos x för vilket det finns a och b så att
Här följer 3 problem att lösa. Längre bak i dokumentet finns utförliga penna-papper lösningar. Filen Föreläsning08.zip finns motsvarande lösningar utförda med Mathematica. Problem 1. Bestäm a så att avståndet
Läs merProof. Se uppgifterna. Definition 1.6. Två vektorer u och v är vinkelräta (ortogonala) om < u, v >= 0.
1. Punkt och Linjer När du läser denna text är det bra om du ritar bilder för att exemplifiera innehållet. Det är lite komplicerad med i.tex, och därför avstår jag från att lägga vid illustrationer även
Läs mer===================================================
AVSTÅNDSBERÄKNING ( I ETT TREDIMENSIONELLT ORTONORMERAT KOORDINATSYSTEM ) Avståndet mellan två punkter Låt A ( x1, och B ( x, y, z) vara två punkter i rummet Avståndet d mellan A och B är d AB ( x z x1)
Läs merLinjär algebra på några minuter
Linjär algebra på några minuter Linjära ekvationssystem Ekvationssystem: { Löses på matrisform: ( ) ( ) I det här fallet finns en entydig lösning, vilket betyder att determinanten av koefficientmatrisen
Läs merProgrammeringsuppgift Game of Life
CTH/GU STUDIO TMV06a - 0/0 Matematiska vetenskaper Programmeringsuppgift Game of Life Analys och Linär Algebra, del A, K/Kf/Bt Inledning En cellulär automat är en dynamisk metod som beskriver hur komplicerade
Läs merDen 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
Läs merFunktioner. Räta linjen
Sidor i boken 14-143, 145-147 Funktioner. Räta linjen 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
Läs merMATEMATIK Datum: 2015-08-19 Tid: eftermiddag Hjälpmedel: inga. Mobiltelefoner är förbjudna. A.Heintz Telefonvakt: Tim Cardilin Tel.
MATEMATIK Datum: 0-08-9 Tid: eftermiddag Chalmers Hjälmedel: inga. Mobiltelefoner är förbjudna. A.Heintz Telefonvakt: Tim Cardilin Tel.: 0703-088304 Lösningar till tenta i TMV036 Analys och linjär algebra
Läs merTAIU07 Matematiska beräkningar med Matlab
TAIU07 Matematiska beräkningar med Matlab Laboration 3. Linjär algebra Namn: Personnummer: Epost: Namn: Personnummer: Epost: Godkänd den: Sign: Retur: 1 Introduktion 2 En Komet Kometer rör sig enligt ellipsformade
Läs merIntroduktion 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
Läs merMoment 4.11 Viktiga exempel 4.32, 4.33 Övningsuppgifter Ö4.18-Ö4.22, Ö4.30-Ö4.34. Planet Ett plan i rummet är bestämt då
Moment 4.11 Viktiga exempel 4.32, 4.33 Övningsuppgifter Ö4.18-Ö4.22, Ö4.30-Ö4.34 Planet Ett plan i rummet är bestämt då två icke parallella riktningar, v 1 och v 2, och en punkt P 1 i planet är givna.
Läs merDen 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
Läs merLEGO Robot programmering och felsökning Hur svårt ska det vara att följa den svarta linjen?
ICT LEGO Robot programmering och felsökning Hur svårt ska det vara att följa den svarta linjen? Daniel Lindfors 12/9/07 dlindf@kth.se Introduktionskurs i datateknik II1310 Sammanfattning Denna laboration
Läs merUTVÄRDERING AV ALGORITMER FÖR BRED KOLLISIONSDETEKTERING MED HJÄLP AV BOIDS ALGORITM
Malskapada v Henrik UTVÄRDERING AV ALGORITMER FÖR BRED KOLLISIONSDETEKTERING MED HJÄLP AV BOIDS ALGORITM EVALUATION OF ALGORITHMS USED FOR BROAD PHASE COLLISION DETECTION USING BOIDS ALGORITHM Examensarbete
Läs merKänguru 2014 Student sida 1 / 8 (gymnasiet åk 2 och 3)
Känguru 2014 Student sida 1 / 8 NAMN GRUPP Poängsumma: Känguruskutt: Lösgör svarsblanketten. Skriv ditt svarsalternativ under uppgiftsnumret. Felaktigt svar ger minus 1/4 poäng av uppgiftens totala poängantal.
Läs merArtificiell Intelligens inom datorspel Är det ett seriöst ämne?
Artificiell Intelligens inom datorspel Är det ett seriöst ämne? Tobias Andersson, tan10006@student.mdh.se Erik Johnasson, ejn11015@student.mdh.se Information kunskap vetenskap etik DVA223 SAMMANFATTNING
Läs merMatematik CD för TB. x + 2y 6 = 0. Figur 1:
Kontroll 8 1 Bestäm ekvationen för den linje som går genom punkterna P 1 (,4) och P 2 (9, 2). 2 Bestäm riktningskoefficienten för linjen x + 4y 6 = 0 Bestäm ekvationen för en linje som går genom punkten
Läs merRobin Wahlstedt Datavetenskap / Spel Vetenskapsmetodik rwt07001@student.mdh.se. Datorgrafik i spel
Robin Wahlstedt Datavetenskap / Spel Vetenskapsmetodik rwt07001@student.mdh.se Datorgrafik i spel 1 Sammanfattning Dator grafik kan delas in i fyra olika områden: information, design, simuleringar och
Läs merAtt beräkna:: Avstånd
Att beräkna:: Avstånd Mikael Forsberg :: 27 november 205 Innehåll Punkter, linjer och plan, en sammanställning 2. Punkter i två och tre dimensioner....................... 2.2 Räta linjer i två och tre
Läs merFöreläsning 7. Felrättande koder
Föreläsning 7 Felrättande koder Antag att vi vill skicka ett meddelande som består av bokstäver a,b,c,d. Vi kan koda a,b,c,d. Antag att det finns en viss sannolikhet att en bit i ett meddelande som skickas
Läs merSF1624 Algebra och geometri
SF1624 Algebra och geometri Föreläsning 2 David Rydh Institutionen för matematik KTH 28 augusti 2018 Detta gjorde vi igår Punkter Vektorer och skalärer, multiplikation med skalär Linjärkombinationer, spannet
Läs mer1 Vektorer i koordinatsystem
1 Vektorer i koordinatsystem Ex 11 Givet ett koordinatsystem i R y a 4 b x Punkten A = (3, ) och ortsvektorn a = (3, ) och punkten B = (5, 1) och ortsvsektorn b = (5, 1) uttrycks på samma sätt, som en
Läs merEtt spel skapat av Albin Wahlstrand
Viking vs. Demons Ett spel skapat av Albin Wahlstrand 2012-06-03 1 Abstrakt Denna rapport kommer att handla om mina positiva och negativa erfarenheter inom projektet jag jobbat på de senaste 10 veckorna.
Läs merKonvexa höljet Laboration 6 GruDat, DD1344
Konvexa höljet Laboration 6 GruDat, DD1344 Örjan Ekeberg 10 december 2008 Målsättning Denna laboration ska ge dig övning i att implementera en algoritm utgående från en beskrivning av algoritmen. Du ska
Läs merGenetisk programmering i Othello
LINKÖPINGS UNIVERSITET Första versionen Fördjupningsuppgift i kursen 729G11 2009-10-09 Genetisk programmering i Othello Kerstin Johansson kerjo104@student.liu.se Innehållsförteckning 1. Inledning... 1
Läs merMoment Viktiga exempel 4.37, 4.38, 4.39 Övningsuppgifter 4.52, P 0 P = t v OP och OP 0 är ortsvektorer för punkterna P och P 0, så
Tisdagen september kl 10:15, Sal 093, Moment 4.3.1 Viktiga exempel 4.37, 4.38, 4.39 Övningsuppgifter 4.5, 4.55 Räta linjen i rummet En rät linje l i rummet är bestämd då en punkt P 0 på linjen och en riktningsvektor
Läs merAvdelning 1, trepoängsproblem
Avdelning 1, trepoängsproblem 1. Vilket av dessa tal är delbart med 3? A: 2009 B: 2 + 0 + 0 + 9 C: (2 + 0) (0 + 9) D: 2 9 E: 200 9 2. I ett akvarium finns det 200 fiskar varav 1 % är blå medan övriga är
Läs merx +y +z = 2 2x +y = 3 y +2z = 1 x = 1 + t y = 1 2t z = t 3x 2 + 3y 2 y = 0 y = x2 y 2.
Lösningar till tentamen i Inledande matematik för M/TD, TMV155/175 Tid: 2006-10-27, kl 08.30-12.30 Hjälpmedel: Inga Betygsgränser, ev bonuspoäng inräknad: 20-29 p. ger betyget 3, 30-39 p. ger betyget 4
Läs merMATEMATIK GU. LLMA60 MATEMATIK FÖR LÄRARE, GYMNASIET Analys, ht 2014. Block 5, översikt
MATEMATIK GU H4 LLMA6 MATEMATIK FÖR LÄRARE, GYMNASIET Analys, ht 24 I block 5 ingår följande avsnitt i Stewart: Kapitel 2, utom avsnitt 2.4 och 2.6; kapitel 4. Block 5, översikt Första delen av block 5
Läs merLösningar till utvalda uppgifter i kapitel 1
Lösningar till utvalda uppgifter i kapitel. Vi utnyttjar definitionen av skalärprodukt som ger att u v u v, där α är (minsta) vinkeln mellan u v. I vårt fall så får vi 7 =. Alltså är den sökta vinkeln
Läs merx = som är resultatet av en omskrivning av ett ekvationssystemet som ursprungligen kunde ha varit 2x y+z = 3 2z y = 4 11x 3y = 5 Vi får y z
Ett nytt försök med att ta fram inversen till en matris Innan vi startar med att bestämma inversen till en matris måste vi veta varför vi skulle kunna behöva den. Vi har A x b som är resultatet av en omskrivning
Läs merVeckoblad 1, Linjär algebra IT, VT2010
Veckoblad, Linjär algebra IT, VT Under den första veckan ska vi gå igenom (i alla fall stora delar av) kapitel som handlar om geometriska vektorer. De viktigaste teoretiska begreppen och resultaten i kapitlet
Läs merCS - Computer science. Datateknik Informationsbehandling Datalogi Datavetenskap (ÅA 2008)
CS - Computer science Datateknik Informationsbehandling Datalogi Datavetenskap (ÅA 2008) Vad datateknik INTE är: Att studera datorer Att studera hur man skriver datorprogram Att studera hur man använder
Läs merDEN RUNDA TUNNELN EN UNDERSKATTAD FIENDE
DEN RUNDA TUNNELN EN UNDERSKATTAD FIENDE Av Marie Hansson När man är nybörjare i agility, eller ser sporten utifrån, är det lätt att tro att just den runda tunneln är det allra lättaste hindret! Och det
Läs merGamla tentemensuppgifter
Inte heller idag någon ny teori! Gamla tentemensuppgifter 1 Bestäm det andragradspolynom vars kurva skär x-axeln i x = 3 och x = 1 och y-axeln i y = 3 f(x) = (x 3)(x + 1) = x x 3 är en bra start, men vi
Läs merLär dig programmera! Prova på programmering med enkla exempel! Björn Regnell www.bjornregnell.se
Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell www.bjornregnell.se Mål Så enkelt som möjligt: låg tröskel Ett riktigt programmeringsspråk: inget tak Roliga uppgifter som går
Läs merKomponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska
Matlab-föreläsning 3 (4), 17 september, 2015 Innehåll Sekvenser (från förra föreläsningen) Upprepning med for-slingor och while-slingor Villkorssatser med if - then -else - Logik Sekvenser - repetion från
Läs merKravspecifikation TDP005 Projekt: Objektorienterat system
Kravspecifikation TDP005 Projekt: Objektorienterat system Innehållsförteckning 1. Spelidé 3 2. Målgrupp 3 3. Spelupplevelse 3 4. Spelmekanik 3 5. Regler 3 5.1 Spelplan 3 5.2 Spelaren 3 5.3 Token 3 5.4
Läs mery y 1 = k(x x 1 ) f(x) = 3 x
Räta linjen på olika former Här ska vi bara påpeka att förutom k-form, den som vi är mest vana vid y = k y + m finns också allmän form: ax + by + c = 0 där a och b är konstanter, som inte någon står för
Läs merKänguru 2012 Student sid 1 / 8 (gymnasiet åk 2 och 3) i samarbete med Jan-Anders Salenius vid Brändö gymnasiet
Känguru 2012 Student sid 1 / 8 NAMN GRUPP Poängsumma: Känguruskutt: Lösgör svarsblanketten. Skriv ditt svarsalternativ under uppgiftsnumret. Lämna rutan tom om du inte vill besvara den frågan. Felaktigt
Läs merFörsättsblad till skriftlig tentamen vid Linköpings Universitet
Försättsblad till skriftlig tentamen vid Linköpings Universitet (fylls i av ansvarig) Datum för tentamen Sal Tid Kurskod Provkod Kursnamn/benämning Institution Antal uppgifter i tentamen Antal sidor på
Läs merMoment Viktiga exempel Övningsuppgifter
Moment Viktiga exempel Övningsuppgifter Inga Inga Inga Linjära ekvationssystem Vi har redan tidigare i kursen stött på linjära ekvationssystem. Nu är stunden kommen till en mera systematisk genomgång.
Läs merExplorativ övning Vektorer
Eplorativ övning Vektorer Syftet med denna övning är att ge grundläggande kunskaper om vektorräkning och dess användning i geometrin Liksom många matematiska begrepp kommer vektorbegreppet från fysiken
Läs merModul 1: Komplexa tal och Polynomekvationer
Modul : Komplexa tal och Polynomekvationer. Skriv på formen a + bi, där a och b är reella, a. (2 + i)( 2i) 2. b. + 2i + 3i 3 4i + 2i 2. Lös ekvationerna a. (2 i)z = 3 + i. b. (2 + i) z = + 3i c. ( 2 +
Läs merTentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan
MAI/Linköpings universitet Fredrik Berntsson Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan 8.00-12.00 Redovisning Lös först uppgifterna i Matlab.
Läs merTANA17 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
Läs merRichard Wiik 9/16/2011
LINKOPINGS UNIVERSITET Pathfinding i spel Inte bara optimalt, utan även realistiskt. 9/16/2011 Abstrakt Hur AI används för att avgöra hur AI karaktärer väljer hur och var de ska gå i Första Persons Actionspel.
Läs mera), c), e) och g) är olikheter. Av dem har c) och g) sanningsvärdet 1.
PASS 9. OLIKHETER 9. Grundbegrepp om olikheter Vi får olikheter av ekvationer om vi byter ut likhetstecknet mot något av tecknen > (större än), (större än eller lika med), < (mindre än) eller (mindre än
Läs merSKRIVNING I VEKTORGEOMETRI
SKRIVNING I VEKTORGEOMETRI 2016-05-10 14.00-17.00 Om inget annat uttryckligen sägs, kan koordinaterna för en vektor i antas vara givna i en ON-bas. Baser i rummet kan dessutom antas vara positivt orienterade.
Läs merLite om räkning med rationella uttryck, 23/10
Lite om räkning med rationella uttryck, / Tänk på att polynom uppför sig ungefär som heltal Summan, differensen respektive produkten av två heltal blir ett heltal och på motsvarande sätt blir summan, differensen
Läs merFö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
Läs merFöreläsning 10: Stela kroppens plana dynamik (kap 3.13, 4.1-8) Komihåg 9: e y e z. e z )
1 Föreläsning 10: Stela kroppens plana dynamik (kap 3.13, 4.1-8) Komihåg 9: H O = "I xz e x " I yz e y + I z e z H G = "I xz ( ) ( G e x " I G yz e y + I G z e z ) # (fixt origo, kroppsfix bas) # (kroppsfix
Läs merOctober 9, Innehållsregister
October 9, 017 Innehållsregister 1 Vektorer 1 1.1 Geometrisk vektor............................... 1 1. Vektor och koordinatsystem.......................... 1 1.3 Skalär produkt (dot eller inner product)...................
Läs merx+2y 3z = 7 x+ay+11z = 17 2x y+z = 2
Problem 1. Avgör för vilka värden på a som ekvationssystemet nedan har oändligt antal lösningar. Ange lösningarna i dessa fall! Lösning: Genom x+2y 3z = 7 x+ay+11z = 17 2x y+z = 2 1 2 3 1 a 11 2 1 1 =
Läs merFöreläsning 13 Linjär Algebra och Geometri I
Föreläsning 13 Linjär Algebra och Geometri I Se slide 1: det är i rymden oftast lättast att jobba med parametrar för linjer och ekvationer för plan. Exempel: Låt l : (x, y, z) = (1 t, 3 + t, 4t), t R och
Läs merLinjen P Q tangerar cirkeln i P och enligt en sats i geometrin är OP vinkelrät. tan u = OP. tan(180 v) = RS. cos v = sin v = tan v, tan v = RS.
Lösningar till några övningar i Kap 1 i Vektorgeometri 17. I figuren är u en spetsig vinkel som vi har markerat i enhetscirkeln. Linjen P Q tangerar cirkeln i P och enligt en sats i geometrin är OP vinkelrät
Läs mer10.4. Linjära höljet LINJÄRA RUM
98 LINJÄRA RUM.4. Linjära höljet Definition.37. Mängden av alla linjärkombinationer av M = {v, v,...,v n } iett linjärt rum V kallas för linjära höljet av M betecknas [M], dvs [M] ={u V : u = λ v + λ v
Läs merAtt göra spel med Game Maker. Rum. Grundläggande delar. Gamemaker, dagens föreläsning. Programmeringsmodell
Gamemaker, dagens föreläsning Vad innehåller Gamemaker? Rum Objekt Händelser Aktioner Sprites Ljud Variabler och uttryck Live exempel: Början på Pac Man Att göra spel med Game Maker Programmeringsmodell
Läs merStatistiska samband: regression och korrelation
Statistiska samband: regression och korrelation Vi ska nu gå igenom något som kallas regressionsanalys och som innebär att man identifierar sambandet mellan en beroende variabel (x) och en oberoende variabel
Läs merTor Sterner-Johansson Thomas Johansson Daniel Henriksson
Lab 4: Anti Tower Defence Oskar Mothander Alan Mendez Larsson dit06omr dit06mln Lärare: Handledare: Johan Eliasson Johan Granberg Tor Sterner-Johansson Thomas Johansson Daniel Henriksson Innehåll 1. Problemspecifikation...
Läs merMoment 4.2.1, 4.2.2, 4.2.3, Viktiga exempel 4.1, 4.3, 4.4, 4.5, 4.6, 4.13, 4.14 Övningsuppgifter 4.1 a-h, 4.2, 4.3, 4.4, 4.5, 4.
Moment 4.2.1, 4.2.2, 4.2., 4.2.4 Viktiga exempel 4.1, 4., 4.4, 4.5, 4.6, 4.1, 4.14 Övningsuppgifter 4.1 a-h, 4.2, 4., 4.4, 4.5, 4.7 Många av de objekt man arbetar med i matematiken och naturvetenskapen
Läs merUTVÄRDERING KOMBINATIONER STYRBETEENDEN FÖR GRUPPER AV AUTONOMA AGENTER
UTVÄRDERING AV KOMBINATIONER AV STYRBETEENDEN FÖR GRUPPER AV AUTONOMA AGENTER Examensarbete inom huvudområdet Datalogi Grundnivå 30 högskolepoäng Vårtermin 2012 David Söderstedt Handledare: Mikael Thieme
Läs merFöreläsning 11: Beräkningsgeometri
DD2458, Problemlösning och programmering under press Föreläsning 11: Beräkningsgeometri Datum: 2009-11-24 Skribenter: David Björklund, Christoer Lundell Johansson och Mårten Selin Föreläsare: Fredrik Niemelä
Läs merÖVNINGSTENTOR I MATEMATIK DEL C (MED LÖSNINGSFÖRSLAG)
ÖVNINGSTENTOR I MATEMATIK DEL C (MED LÖSNINGSFÖRSLAG) 0 ÖVNINGSTENTAMEN DEL C p Beräkna sidan AC p Bestäm f ( 0 ) då f ( ) ( ) p Ange samtliga etrempunkter till funktionen f ( ) 6. Ange även om det är
Läs merVad innebär det att vara datadriven?
TIPS OCH VERKTYG FÖR DATADRIVEN E-HANDEL Vad innebär det att vara datadriven? Ett datadrivet företag mäter hela tiden och följer upp resultatet inte bara ekonomiskt utan även utifrån KPI:er som anses viktiga
Läs merBrädspelet Mulan. Håkan Berggren, Magnus Ellisson, Lars Kristiansson, Cheng-Huei Kuo, Eva Ljunggren, Joakim Viker. Göteborg 1999.
Brädspelet Mulan Håkan Berggren, Magnus Ellisson, Lars Kristiansson, Cheng-Huei Kuo, Eva Ljunggren, Joakim Viker Göteborg 1999 June 8, 2001 1 Innehåll: 1. Inledning 2. Projektbeskrivning 3. Programflöde
Läs merLaboration 1: Figurer i hierarki
Laboration 1: Figurer i hierarki Bakgrund Två grundläggande tekniker i objektorienterad konstruktion är arv och komposition. Mål Laborationen har flera avsikter: 1. Ge kunskaper i hur program kan organiseras
Läs merBose-Einsteinkondensation. Lars Gislén, Malin Sjödahl, Patrik Sahlin
Bose-Einsteinkondensation Lars Gislén, Malin Sjödahl, Patrik Sahlin 3 mars, 009 Inledning Denna laboration går ut på att studera Bose-Einsteinkondensation för bosoner i en tredimensionell harmonisk-oscillatorpotential.
Läs merVektorgeometri för gymnasister
Vektorgeometri för gymnasister Per-Anders Svensson http://homepage.lnu.se/staff/psvmsi/vektorgeometri/gymnasiet.html Fakulteten för teknik Linnéuniversitetet Räta linjens och planets ekvationer III Innehåll
Läs merUppgift 1 ( Betyg 3 uppgift )
2006-12-08.kl.08-13 Uppgift 1 ( Betyg 3 uppgift ) Implementera följande funktion: fun(1) = 1 fun(n) = fun(n / 2), för jämna n fun(n) = n / (fun(n - 1) + fun(n + 1)), för udda n Exempel på korrekta resultat:
Läs merTentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB
MAI/Linköpings universitet Fredrik Berntsson Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB Redovisning Lös först uppgifterna i Matlab. Då du har en
Läs merDeterminant Vi förekommer bokens avsnitt, som handlar om determinanter eftersom de kommer att användas i detta avsnitt. a 11 a 12 a 21 a 22
Moment 5.3, 4.2.9 Viktiga exempel 5.13, 5.14, 5.15, 5.17, 4.24, 4.25, 4.26 Handräkning 5.35, 5.44a, 4.31a, 4.34 Datorräkning Determinant Vi förekommer bokens avsnitt, som handlar om determinanter eftersom
Läs merMatematiska uppgifter
Årgång 54, 1971 Första häftet 8. Bestäm alla reella tal x sådana att x 1 3 x 1 + < 0 (Svar: {x R: 1 < x < 0} {x R: < x < 3}) 83. Visa att om x > y > 1 så är x y 1 > x y > ln(x/y). 84. Undersök om punkterna
Läs merTDP005 Projekt: Objektorienterat system
. TDP005 Projekt: Objektorienterat system Kravspecifikation Författare, dylma900@student.liu.se, albve061@student.liu.se Höstterminen 2016 Version 1.1 2016-11-16 1 Revisionshistorik Ver. Revisionsbeskrivning
Läs merDetaljbeskrivning av Player
Detaljbeskrivning av Player Syftet med Playerklassen är att representera det skepp som spelaren styr. Spelarens skepp styrs till skillnad från övriga skepp av spelaren både när det kommer till vilken riktning
Läs mer= ( 1) ( 1) = 4 0.
MATA15 Algebra 1: delprov 2, 6 hp Fredagen den 17:e maj 2013 Skrivtid: 800 1300 Matematikcentrum Matematik NF Lösningsförslag 1 Visa att vektorerna u 1 = (1, 0, 1), u 2 = (0, 2, 1) och u 3 = (2, 2, 1)
Läs merProjektdokumentation för Othello
Projektdokumentation för Gustav Fransson Nyvell gusfr229@student.liu.se Tomas Franzén tomfr819@student.liu.se 1. Inledning Vi har gjort ett -spel som går ut på att man turas om att lägga brickor på en
Läs merMekanik Föreläsning 8
Mekanik Föreläsning 8 CBGA02, FYGA03, FYGA07 Jens Fjelstad 2010 02 19 1 / 16 Repetition Polära koordinater (r, θ): ange punkter i R 2 m h a r: avståndet från origo (0, 0) θ: vinkeln mot positiva x axeln
Läs merBakgrund. Bakgrund. Bakgrund. Håkan Jonsson Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige
Är varje påstående som kan formuleras matematiskt*) alltid antingen sant eller falskt? *) Inom Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige Exempel: 12 = 13 nej, falskt n! >
Läs merC++ Slumptalsfunktioner + switch-satsen
C++ Slumptalsfunktioner + switch-satsen Veckans avsnitt består av ett antal lite udda funktioner man kan ha nytta av när man skriver program. Det är en slumptalsgenerator och lite annat smått och gott.
Läs merLÖSNINGAR TENTAMEN MEKANIK II 1FA102
LÖSNINGAR TENTAMEN 16-10-20 MEKANIK II 1FA102 A1 Skeppet Vidfamne 1 har en mast som är 11,5 m hög. Seglet är i överkant fäst i en rå (en stång av trä, ungefär horisontell vid segling). För att kontrollera
Läs merSidor i boken Figur 1: Sträckor
Sidor i boken 37-39 Vektorer Det vi ska studera här är bara en liten del av den teori du kommer att stifta bekantskap med i dina fortsatta studier i kursen Linjär algebra. Många av de objekt man arbetar
Läs merLutande 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
Läs merEkvationer och system av ekvationer
Modul: Undervisa matematik utifrån problemlösning Del 4. Strategier Ekvationer och system av ekvationer Paul Vaderlind, Stockholms universitet Ekvationslösning är ett av de viktiga målen i skolmatematiken.
Läs merDigitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.
Analog Digitalitet Kontinuerlig Direkt proportionerlig mot källan Ex. sprittermometer Elektrisk signal som representerar ljud Diskret Digital Representation som siffror/symboler Ex. CD-skiva Varje siffra
Läs merkan vi uttrycka med a, b och c. Avsnitt 2, Vektorer SA + AB = SB AB = SB SA = b a, Vi ritar först en figur av hur pyramiden måste se ut.
vsnitt 2, Vektorer kan vi uttrycka med a, b och c. W109 är basytan (en kvadrat) i en regelbunden fyrsidig pyramid med spetsen. Låt = a, = b och = c. eräkna. Vi ritar först en figur av hur pyramiden måste
Läs merKan du det här? o o. o o o o. Derivera potensfunktioner, exponentialfunktioner och summor av funktioner. Använda dig av derivatan i problemlösning.
Kan du det här? o o o o o o Vad innebär det att x går mot noll? Vad händer då x går mot oändligheten? Vad betyder sekant, tangent och ändringskvot och vad har dessa begrepp med derivatan att göra? Derivera
Läs merKombinationer och banor i agilityträningen
Kombinationer och banor i agilityträningen av Emelie Johnson Vegh och Eva Bertilsson, publicerad i Canis 2012 En av de saker som gör agility så fantastiskt roligt är den ständiga variationen. Ingen tävlingsbana
Läs merObjektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim Agenda (halvdag)
Objektorienterad programmering Föreläsning 8 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda (halvdag) Objektorienterad programutveckling Algoritmer Algoritmkonstruktionerna Relationer
Läs merKänguru 2018 Student gymnasieserien i samarbete med Jan-Anders Salenius (Brändö gymnasium)
sida 0 / 9 NAMN GRUPP Poäng: Känguruskutt: Lösgör svarsblanketten. Skriv ditt svarsalternativ under uppgiftsnumret. Ett rätt svar ger 3, 4 eller 5 poäng. I varje uppgift är exakt ett svar korrekt. Felaktigt
Läs merTANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28
TANA17 Matematiska beräkningar med MATLAB för M, DPU Fredrik Berntsson, Linköpings Universitet 9 november 2015 Sida 1 / 28 Föreläsning 3 Linjära ekvationssystem. Invers. Rotationsmatriser. Tillämpning:
Läs mer