Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Kunstig Intelligens [ nicky ]. Agenda AI Overblik [1] –Deterministisk og Non-deterministisk –Hvad anvender vi ? AI i Produktionen [3] –Teori: Om den anvendte.

Lignende præsentationer


Præsentationer af emnet: "Kunstig Intelligens [ nicky ]. Agenda AI Overblik [1] –Deterministisk og Non-deterministisk –Hvad anvender vi ? AI i Produktionen [3] –Teori: Om den anvendte."— Præsentationens transcript:

1 Kunstig Intelligens [ nicky ]

2 Agenda AI Overblik [1] –Deterministisk og Non-deterministisk –Hvad anvender vi ? AI i Produktionen [3] –Teori: Om den anvendte AI teknik –Praktisk: Udvalgte kode eksempler Vurdering af AI i Produktionen [1] –Styrker og Svagheder Forslag til Forbedringer [1] –Andre AI teknikker der med fordel kan anvendes

3 AI Overblik De 2 Hovedgrupperinger –Deterministisk: forudsigelig & testbar Eksempler: –DFA ( Pacman [roam, chase, flee] / {see, nosee, userPowerup} ) –Gængse pathfinding/tracing algoritmer (man beregner på forudsigelig måde) –Non-deterministisk: uforudsigelig & sværere at teste/debugge Eksempler: –Neurale Netværk [input/output sort boks, msk hjerne] –Genetiske Algoritmer [de egenskaber hos NPCerne der virker bedst overlever] –…osv. … –Regel-baseret med ’hukommelse’ [Kamp-spil: Strike-prediction] –A* med influence maps [NPC ’husker’ at undgå ’noder’ hvor spilleren agerer ’sniper’] Svær at debugge og teste pga. uforudsigelighed Vi anvender… –En determinstisk teknik: Line-Of-Sight Chasing Forklaring følger... –NPC’erne jager waypoints Eksempel følger…

4 AI i Produktionen Teori: Om den anvendte AI teknik Chasing Algoritme –Line-Of-Sight i kontinuerlige miljøer (jf. modsat tiled miljøer) En algoritme inspireret af kursets O’Reilly AI bog [Bourg] Byttets position omregnes til jægerens lokale koordinat system ( venstre / højre tjek ) og fysik motor invokeres. Fordel: NPC’erne er underlagt de samme fysiske egenskaber som spilleren (altså ingen ’snyd’) Tilpasning til Bilspillet –NPC’erne (AICar klassen) jager forud-optagede punkter på vejen (waypoints) –Waypoints opbevares i en liste datastruktur der er specifik for hver enkelt AI bil –Et waypoint fjernes fra AI bilens liste når det er tilstrækkeligt tæt på bilen ( vha. et mindre usynligt rektangel ) AI Bilernes Hastighed Afgøres af Waypoints Tætheden –Synlige i bilspillet, vises ved demonstrationen funktion doLineOfSight() 1.affTrans :=... /* affine trans: translate + rotate */ 2.bytteGlobPos := … 3.bytteLokalPos := affTrans.transform( bytteGlobalPos ) 4.HVIS ( bytteLokalPos.x < - tærskelVærdi) SÅ 5. jæger.venstre( ) 6.ELLERS HVIS ( bytteLokalPos.x > tærskelVærdi) SÅ 7. jæger.højre( )

5 AI i Produktionen Praktisk: Udvalgte kode eksempler AI opførsel implementeret i model.AIController.py –AIController.updateAI( … ) indirekte kaldt for hver gameloop 4) Hastigheds styring NB: Visning af udvalgte linjer fra funktionen 3) Retnings styring (højre, venstre, ligeud) NB: Bil holder omvendt => omvendt kontrol 5) Prey styring 2) Til lokale koordinater (rotation om z)     1) Indhent data 

6 AI i Produktionen Praktisk: Udvalgte kode eksempler AI Bilernes Hastighed –Afgøres af 1) afstand til næste waypoint, eller 2) tætheden af de to næste waypoints –Tærskel værdi konstanter (afstand + hastighed) Pseudo kode for model.AIController.decideControl( ): funktion decideControl(aiCar, carspeed ) 1.HVIS ( langt_til_waypoint) SÅ 2. aiCar.cDrive( ) 3.ELLERS HVIS (waypoints ikke tætte) SÅ 4. aiCar.cDrive( ) // ved lav+mellem hastighed 5. aiCar.cRelease() // ved høj hastighed 6.ELLERS 7. aiCar.cDrive () // ved lav hastighed 8. aiCar.cRelease() // ved mellem hastighed 9. aiCar.cReverse() // ved høj hastighed [brems] Tætte Waypoints Lav Hastighed

7 Vurdering af AI i Produktionen Styrker –Konfigurerbar rute (jf. WayPoints) I dag bliver de sat i main.py –Virker med n AI biler –Pæn og hurtig kørsel Ingen voldsomme waypoint overshootings –AI biler er underlagt fysik funktionaliten Svagheder –kollisioner ml. biler –Ingen ’personlighed’ hos bilerne (humør, dygtighed etc.) –Ingen hensyntagen til bilers ’personlige’ evner: ’hvad er hurtigt?’

8 Forslag til Forbedringer Relevante AI teknikker –Deterministiske DFA til humør / samlings-objekter –Humør: Vred, rystet, skarp osv. (Vred => prey := PlayerCar) –Samlings-objekter: turbo, olie-våben osv. Flokning af AI Biler –I avanceret mode kan de arbejde sammen om at jage PlayerCar –Non-deterministiske Træning af ’bedste rute’ ( vha. eks. Neuralt Netværk ) Mest optimale bil egenskaber ( vha. eks. Genetisk Algoritme) Andet – AI Scriptning Man kunne scripte, indirekte / direkte, for AI Bilerne –Attributter: heste kræfter, vejgreb, synsfelt –Opførsel : HVIS PlayerCar.harOlieVåben SÅ flygt

9

10 AI i Produktionen Praktisk: Udvalgte kode eksempler Hvor hurtigt kører vi allerede? Er der langt til næste waypoint? Hvor hurtigt skal vi køre nu?


Download ppt "Kunstig Intelligens [ nicky ]. Agenda AI Overblik [1] –Deterministisk og Non-deterministisk –Hvad anvender vi ? AI i Produktionen [3] –Teori: Om den anvendte."

Lignende præsentationer


Annoncer fra Google