AI-Tekniker. För domänspecifika problemområden i StarCraft 2. Mattias Tiger Fredrik Präntare

Relevanta dokument
TDDD92 Artificiell intelligens -- projekt

Föreläsning 5: Grafer Del 1

TDDD92 Artificiell intelligens -- projekt

Tommy Färnqvist, IDA, Linköpings universitet

Föreläsning 7 Datastrukturer (DAT037)

Föreläsning Datastrukturer (DAT036)

Föreläsning 4: Kombinatorisk sökning

Föreläsning 9: NP-fullständighet

Algoritmer, datastrukturer och komplexitet

Tentamen, EDA501/EDAA20 Programmering M MD W BK L

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...

Assessing GIS effects on professionals collaboration processes in an emergency response task

Antag att följande träd genereras i ett spelförande program om vi applicerar evalueringsfunktionen

Tommy Färnqvist, IDA, Linköpings universitet

Alternativa rutter med tidsbegränsning via en dubbelriktad modifiering av Dijkstra s algoritm

Föreläsning Datastrukturer (DAT036)

Lösningar Datastrukturer TDA

Föreläsning Datastrukturer (DAT036)

Vinjetter TDDC91 Datastrukturer och algoritmer

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Tänk på följande saker när du skriver tentan:

Föreläsning 1. Introduktion. Vad är en algoritm?

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.

Föreläsning 5: Giriga algoritmer. Kruskals och Prims algoritmer

Föreläsning Datastrukturer (DAT037)

Föreläsning 5: Dynamisk programmering

Föreläsning 4: Giriga algoritmer. Giriga algoritmer

Föreläsning Datastrukturer (DAT037)

Föreläsning 5: Giriga algoritmer. Kruskals och Prims algoritmer

ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

Linjärprogramming. EG2205 Föreläsning 7, vårterminen 2015 Mikael Amelin

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret Lektion 4

Asymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder.

729G04 - Diskret matematik. Lektion 4

Föreläsning 6 Datastrukturer (DAT037)

Förstärkande inlärning med fokus på Q-learning

Att hitta projekt. Björn Victor. måndag 19 mars 12

Föreläsningsanteckningar F6

Återerövring & Försvarspress

2D Potentialen i en nervcell definieras normalt som skillnaden i spänning mellan dess axon och dendrit.

Tillämpad Programmering (ID1218) :00-13:00

Grundläggande Idéer Algoritmens komponenter Numerisk optimering Genetisk Programmering. Genetiska Algoritmer

Föreläsning 11. Giriga algoritmer

TNK049 Optimeringslära

Magnus Nielsen, IDA, Linköpings universitet

Grafer, allmänt. Med datastrukturen graf menas vanligen: en mängd av noder (vertices) och en mängd av bågar (edges).

Kaos i Hénon-Helies systemet

OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15

#TDDD92 AI-projekt. Mattias Tiger, IDA

Introduktion till programmering SMD180. Föreläsning 9: Tupler

Avancerad Problemlösning och Programmering i Praktiken

Algoritmer, datastrukturer och komplexitet

Tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610, onsdagen den 20 augusti 2014, kl

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 8 Datastrukturer (DAT037)

Optimering. Optimering

Vad behövs för att skapa en tillståndsrymd?

HR i en internationell organisation, några tankar av P-O Nyquist. Göteborg

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

Projekt? 1DV420 Nätverksprojekt Kalmar, Lars Karlsson +46(0)

Algoritmer, datastrukturer och komplexitet

Tentamensinstruktioner. När Du löser uppgifterna

Den svenska bloggosfären i ett ögonkast Slutrapport

Algoritmer, datastrukturer och komplexitet

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

F11 - Rekursion. ID1004 Objektorienterad programmering Fredrik Kilander

Föreläsning 10. Grafer, Dijkstra och Prim

de var svåra att implementera och var väldigt ineffektiva.

ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15

Elektronisk patientjournal

Tommy Färnqvist, IDA, Linköpings universitet

TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 14:00-19:00

Datastrukturer och algoritmer

Tentamen Datastrukturer (DAT036)

Datastrukturer och algoritmer

Föreläsning 13. Dynamisk programmering

Asymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder.

Richard Wiik 9/16/2011

Ekvivalensrelationer

729G04 - Diskret matematik. Lektion 4

Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL2 och Media 1, SF1610 och 5B1118, onsdagen den 17 augusti 2011, kl

Anvisningar och schema till ORGANISATIONSPSYKOLOGI. 7,5 hp

Dekomposition och dynamisk programmering

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.

Eulercykel. Kinesiska brevbärarproblemet. Kinesiska brevbärarproblemet: Metod. Kinesiska brevbärarproblemet: Modell. Definition. Definition.

med hjälp av Deep Reinforcement Learning

Föreläsning 11. Giriga algoritmer

729G43 Artificiell intelligens / Maskininlärning 3. Marco Kuhlmann

Föreläsning 13. Dynamisk programmering

OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 14:15 19:15

Grafer, traversering. Koffman & Wolfgang kapitel 10, avsnitt 4

Grafer MST Top. sortering Starkt samm. komponenter Kortaste avstånd. Grafalgoritmer 1. Douglas Wikström KTH Stockholm

Optimering av en Yatzytur genom utvärdering av alla inom turen nåbara tillstånd

Komplexitetsklasser och repetition

Transkript:

AI-Tekniker För domänspecifika problemområden i StarCraft 2 Mattias Tiger Fredrik Präntare

Introduktion och motivering Ni ska inför er individuella uppgift definiera ett problem och välja ut en eller flera AI-tekniker som kan tänkas användas för att lösa detta problem. Det finns väldigt många AI-Tekniker. De kan ersätta varandra, komplettera varandra eller integreras för att lösa större problem. Det finns väldigt många domänspecifika problem i StarCraft II att lösa. För att stödja er kommer vi här att ge er översiktliga exempel på några AI-Tekniker och översiktliga exempel på några domänspecifika problem inom StarCraft II. Det är upp till er att leta ytterligare information och att välja vad ni vill göra.

StarCraft II - Domänspecifika problemområden Placera byggnader / trupper Byggnadsordning (undvika AoE, nå fienden med elgivning) Attackmönster (undvika fienden, ta minimalt med skada) Truppformationer (truppförflyttningar, truppkompositioner, offensiver, omställningar. Vad kommer motståndaren att göra?) Hitta en säker väg (bygga upp eco/industry, expansion, defensiva lägen, offensiva lägen. Vad är motståndarens strategi?) Taktikval (upprepad avsökning av intressantaste områdena) Strategival (vilka byggnader/uppgraderingar krävs för enhet/byggnad X?) Utforska kartan effektivt (var får den/de plats? Vad är bästa platsen i närheten av X?)... (Micro: fokuserad eldgivning, kiting, utnyttja styrkor/svagheter)

AI-Tekniker Del 1

AI-Tekniker AI-Tekniker i Del 1 Search Vector Field and Cost Field Behavior Problem: Path finding, Flocking/Swarming Tekniker: Flow field, Potential field Supervised Learning Problem: Graph traversal, Path finding, Task planning Tekniker: BFS, DFS, Dijkstra, A* Problem: Opponent modeling, Build order prediction, Plan prediction Tekniker: Bayesian networks, GMM, HMM, Neural networks Reinforcement Learning Problem: Micro Tekniker: Q-learning

Search - Sökning Utforskning av en Graf eller ett Träd Börja i en start-nod Expandera till alla (icke-besökta) barn Stanna då ett mål har uppfyllts Returnera slut-noden (den uppfyller det vi letade efter) Returnera vägen från start-nod till slut-nod Returnera en ihågkommen nod (den bästa vi såg under sökningen innan tiden tog slut)

Problem: Byggnadsordning Teknik: Search (BFS, Task Planning) Givet prioriteringar och mål: Vad ska byggas och i vilken ordning? Exempel: Vilka byggnader behövs för att kunna bygga en Siege Tank?

Problem: Utforska kartan effektivt Teknik: Search, Cost Field, HMM Givet vad ni observerar på kartan just nu och vad ni har observerat tidigare P(motståndar_bas bas_plats) =? P(motståndarenheter position) =? P(motståndarstridskraft position) =? Exempel på temporal HMM. Från http://iacs-courses.seas.harvard.edu/courses/am207/blog/l ecture-18.html när utforskades plats x sist vs hur troligt är det att det finns något nytt att observera på plats x. Exempel på spatial HMM (på en grid).

Problem: Strategival Teknik: Supervised learning med Bayesian Networks. P(egen_strategi observationer, eget_tillstånd) =? P(motståndare_strategi observationer) =? Välj/anta strategi med högst sannolikhet. > Använd replays för att träna! Exempel: strategi {Expansiv, Defensiv, Offensiv} tillstånd {#baser, #byggnader av typ x, #försvarande enheter av typ y, } Observationer: iaktagelser av motståndarens tillstånd

Problem: Hitta en säker väg Teknik: A*/Dijkstra-sökning, potential fields, flow fields Potential fields som ger en kostnad/utility att vara i en viss punkt. (t. ex. hur farligt det) A* med kostnad som är proportionell mot risken att bli skadad (t. ex. att vara inom skotthåll) Flow fields som attraherar till ett mål och repellerar från fienden. (Greedy sökning)

Problem: Truppformationer, Attackmönster Teknik: Flocking/Swarming genom Flow fields / Potential fields Olika beteenden är bra för olika taktiker Utdela maximal skada/tid Undvika skada (range, melee, AoE) Marschering (undvik att bli upptäckt) Attraktorer och repellerare Figure From: http://www.teamliquid.net/forum/sc2-strategy/187892-positioning-formations-and-tactics Man kan även använda mer generella vektorfält...

Problem: Attackmönster - learning (1/2) Teknik: Reinforcement Learning med Q-learning. Enheterna är oberoende av varandra. Ursprungligt beteende Undviker att dö Fokuserad elgivning (lägst HP)

Problem: Attackmönster - learning (2/2) Teknik: Reinforcement Learning med Q-learning 1) Välj ut intressanta features Exempel: egen hälsa, motståndarhälsa, relativt avstånd, stridskraft 2) Diskretisera features Exempel: egen hälsa {0, 10, 20, 30,, 90, 100} (procent) 3) Välj utility att maximera Exempel: 100*#egna_trupper + #egen_hälsa - 100*#motståndartrupper - #motståndarhälsa 4) Konstruera representativa scenarios och träna med Q-tabellen: P(action state)

AI-Tekniker Del 2

Tilldelningsproblemet (e.g. Assignment Problem och Task Allocation) Organisatoriska Paradigm (e.g. Coalition Structure Generation) Geometriska Optimeringsproblem (e.g. Automated Decomposition)

Tilldelningsproblemet (1/6) Task 1 Task 2 Agents with different skills and abilities Task 3

Tilldelningsproblemet (2/6) Task 1 Task 2 Agents with different skills and abilities Task 3

Tilldelningsproblemet (3/6) Många varianter! Ofta gäller att: En mängd A skall fördelas (tilldelas/allokeras) över en mängd B. En kostnadsfunktion skall minimeras. Det finns domänspecifika constraints.

Tilldelningsproblemet (4/6) StarCraft-exempel: Tilldela enheter till jobb, exempelvis: A = {SCV1, SCV2, SCV3, Marine1, Marine2} B = {bygga, samla mineraler, samla gas, scouta, anfalla} Constraint: Alla enheter måste ges exakt ett arbete var. Kostnadsfunktion: Exempelvis det euklidiska avståndet mellan agent a A och uppgift b B. Exempel på lösning: {(SCV1,bygga), (SCV2,mineraler), (SCV3,gas), (Marine1,scout), (Marine2,anfalla)}

Tilldelningsproblemet (5/6) Lösningar/paradigm: Hungarian (> 7000 citations) [1], Min cost max flow (flödesgraf), Dynamisk programmering, Greedy (inte alltid optimalt). [1] Kuhn, Harold W. "The Hungarian method for the assignment problem." Naval research logistics quarterly 2.1 2 (1955): 83-97.

Tilldelningsproblemet (6/6) Kan, i StarCraft, också användas till: Micro: Tilldela mål i strid, fokusera eldkraft. Produktion: Bestämma vilken byggnad som skall producera vad. Strategi : Tilldela abstrakta uppgifter till grupper av enheter. och mycket mer!

Organisatoriska Paradigm (1/12) Agents with different skills and abilities

Organisatoriska Paradigm (2/12) Te m e Team Green Agents with different skills and abilities

Organisatoriska Paradigm (3/12) Te m e Team Green Agents with different skills and abilities

Organisatoriska Paradigm (4/12) Co l i Bl e Coalition Green Agents with different skills and abilities

Organisatoriska Paradigm (5/12) Många varianter även här! Ofta gäller att: En mängd A skall partitioneras. En summa av vinstvärden skall maximeras. (varje möjlig delmängd av A ges ett vinstvärde av en u-funktion) Det finns domänspecifika constraints.

Organisatoriska Paradigm (6/12) Co l i Bl e Värde: 3 Coalition Green Värde: 1 Värde: 5

Organisatoriska Paradigm (7/12) Co l i Bl e Värde: 3 Coalition Green Värde: 1 Totalt värde: 3+1+5=9 Värde: 5

Organisatoriska Paradigm (8/12) StarCraft-exempel: Skapa effektiva koalitioner av enheter som sedan får koordinera sig själva. A = {Marauder1, Marauder2, Medivac1, Medivac2, Marine1, Marine2, Marine3, Marine4, Marine5, Tank1} Constraint: Varje enhet måste vara medlem i exakt ett team. Utility-funktion: Exempelvis baserad på förhållandet mellan antalet agent-typer och storleken på koalitionen.

Organizational Paradigms

Task 1 Task 2 Agents with different skills and abilities Task 3

Task 1 Task 2 Agents with different skills and abilities Task 3

Organisatoriska Paradigm (12/12) Lösningar/paradigm: Coalition structure generation, Coalition formation, Max flow, Dynamisk programmering, Greedy.

Geometriska Optimeringsproblem (1/5) Dekomposition: Att dela upp världen i olika områden.

Geometriska Optimeringsproblem (2/5) "Automated decomposition of game maps.", av Halldórsson och Björnsson: 1. Räkna ut avståndet i varje position till närmaste blockerade terräng. Låt detta avstånd representera en height map (kan göras med flood fill/bfs/dfs). 2. Visualisera att ni fyller på alla dalar med vatten: Givet en viss vattenhöjd, så får ni en viss dekomposition av er bana.

Geometriska Optimeringsproblem (3/5)

Geometriska Optimeringsproblem (4/5) Byggnadsplacering: Placera byggnader på ett sådant sätt så att era enheter kan röra sig fritt i er bas. Bygga murar för att göra det svårare för fienden att ta sig in i er bas. Decentraliserad produktion och flera baser.

Geometriska Optimeringsproblem

Geometriska Optimeringsproblem

Organisatoriska Paradigm (5/5) Lösningar/paradigm: Dynamisk programmering, Slumpmässiga (probabilistiska) algoritmer, Greedy.

Tips Tänk på: att det finns en litteraturlista med relevanta referenser på kursens wiki-sida. att ni måste inte välja något av de problem som vi exemplifierat. vad er bot får för problem om ni har en dålig lösning?

Sammanfattning Det finns många intressanta AI-problem att lösa och många algoritmer att experimentera med! På måndag får ni chans att ställa frågor om tekniker och diskutera problem/tekniker inför er individuella uppgift. Fundera på vad ni vill göra tills dess! Komplettera varandra!