• Keine Ergebnisse gefunden

Beobachtung durch Spieler

N/A
N/A
Protected

Academic year: 2021

Aktie "Beobachtung durch Spieler"

Copied!
27
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Agentensimulation

(2)

Agenten

Computergesteuerte Akteure in Spielen (und anderen Simulationen) werden Agenten genannt (manchmal auch MOBs)

Zielsetzung f ¨ur Agenten ist ¨uberzeugend zu sein, nicht zu gewinnen

M ¨oglichkeiten realistischer zu wirken, ohne das grundlegende Verhalten zu verbessern

I Darstellung von Emotionen

I Wiederholungen im Verhalten vermeiden

I Darstellung von zielfremden Verhalten (langsam durch die Gegend bewegen beim Warten, umherschauen, pfeifen, . . . )

(3)

Agenten steuern

Verschiedene Algorithmen in Verwendung, um Agenten zu steuern (oft Kombinationen)

Da Ziel ist ¨uberzeugend zu sein: Fokus auf Algorithmen, die realistisch wirkendes Verhalten liefern, nicht zwingend beste Probleml ¨osef ¨ahigkeit

I Zustands ¨ubergangssysteme

I Priorit ¨atstabellen

I Bed ¨urfnishierarchie

I Planungswarteschlange

I Entscheidungslisten

I Entscheidungsb ¨aume

I Verhaltensb ¨aume

(4)

Agentenintelligenz

Intelligenz wirkt oft nicht ¨uberzeugend

I Erwartungshaltung schlechte k ¨unstliche Intelligenz

⇒Bei sehr intelligenten Agenten vermuten Spieler eher, dass sie schummeln, als dass sie intelligent sind

I Gute Intelligenz wird oft nur als solche wahrgenommen, wenn sich die Agenten erkl ¨aren.

Beispiel: Ein Agent erkl ¨art einem anderen Agenten die Beweggr ¨unde f ¨ur die Handlung

”Ich schaue mal hinter dieser T ¨ure nach dem Spieler, weil die Vase kaputt ist“

I Ubermenschliche Intelligenz wirkt auch dann nicht¨ menschlich, wenn klar ist, dass nicht geschummelt wird (Schach, Go, Rechenf ¨ahigkeiten, . . . )

I Menschliche wirkende Fehler k ¨onnen Darstellung

¨uberzeugender machen

(5)

Beobachtung durch Spieler

Innerer Zustand eines Agenten, der nicht durch den Spieler erahnbar ist, bringt nichts

⇒Hinweise darauf geben! ¨Außerung von Pl ¨anen; zeigen von Emotionen; extrem deutliche K ¨orpersprache (undeutliche K ¨orpersprache wird von Spielern als zuf ¨alliges Verhalten ignoriert); Hinweise auf Verhaltensaspekt durch andere Akteure, Beispiel:

”Ist dir aufgefallen, wie unruhig die W ¨olfe heute sind?“ kann Spieler motivieren auf den Gem ¨utszustand von W ¨olfen zu achten und inneren Zustand zu beobachten

(6)

Zufall im Verhalten

An vielen Stellen kann Zufall im Verhalten eingebaut werden

I Vorteil: Zufall alleine kann intelligent wirken, innerer Zustand kann vermutet werden, der nicht vorhanden ist, wirkt lebendiger

I Nachteil: Tats ¨achlicher innerer Zustand kann ¨ubersehen werden, bei zu viel Zufall wird vollst ¨andiger Zufall vermutet

I Ambivalent: Agenten k ¨onnen durch Spieler nicht mehr so gut vorhergesagt werden

(7)

Kombinieren und direkte Verhaltensimplementation

Grundlegende Verhaltensweisen lassen sich gut direkt implementieren

Hauptschwierigkeit in der Auswahl der Verhaltensweisen

Viele der genannten Algorithmen erlauben andere Algorithmen als Bestandteile, damit gute Kombinierbarkeit

(8)

Zustands ¨ubergangssysteme

Zustands ¨ubergangssysteme bekannt aus Kapitel

”zusammenfassende Berechnungen“

Mit Aktionen (Hooks, Codereferenzen) an den Zust ¨anden:

Nahezu beliebiges Verhalten darstellbar

I Einfache Verhaltensweisen sehr einfach umsetzbar

I Gute Maschinenlernverfahren f ¨ur Markovketten bekannt

I F ¨ur kompliziertere Verhaltensweisen sind andere Modelle geeigneter: Zustandsraum kann extrem groß werden

I Zustands ¨ubergangssysteme als Aktionen an

Zustands ¨ubergangssystemen: Bessere ¨Ubersichtlichkeit, weniger Zust ¨ande notwendig; bekannt als hierarchische Zustands ¨ubergangssysteme

(9)

Beispiel: Zustands ¨ubergangssystem

Bewegungssteuerung eines Huhns

Hunger?

K ¨orner in

Reichweite? picken

zuf ¨allig herumlaufen ja

nein

ja nein

(10)

Priorit ¨atstabellen

F ¨ur verschiedene Verhaltensweisen werden verschiedene Priorit ¨aten berechnet

Verhalten mit der h ¨ochsten Priorit ¨at wird ausgef ¨uhrt Beispiel: Hahn

I Hungerwert 0-1 gibt Priorit ¨atswert 0-5 f ¨ur Aktion K ¨orner suchen

I Fuchs in N ¨ahe gibt Priorit ¨at 8 f ¨ur Stall aufsuchen

I M ¨udigkeitswert 0-1 gibt Priorit ¨at 0-3 f ¨ur Stall aufsuchen

I Nach 5:00, vor 8:00 und heute noch nicht gekr ¨aht gibt Priorit ¨atswert 2 zum Kr ¨ahen

(11)

Bed ¨urfnishierarchie

Priorit ¨atsreihenfolge von Bed ¨urfnissen: Nur wenn die darunter liegenden Bed ¨urfnisse erf ¨ullt sind, werden die

dar ¨uberliegenden ber ¨ucksichtigt, immer das unterste unerf ¨ullte wird versucht zu erreichen

Beispiel:

I Soziale Interaktion

I Schlaf

I Hunger

I Durst

I K ¨orperliche Unversehrtheit (Abstand von Gegnern, . . . )

(12)

Planungswarteschlange

Warteschlange, in der Pl ¨ane stehen.

Plan am Anfang der Schlange wird bearbeitet, kann in Teilpl ¨ane zerteilt werden (Situationsabh ¨angig)

Dringende Pl ¨ane k ¨onnen vorne angestellt werden (Gegner in Sicht), weniger dringende (Wohnung reinigen) in der Mitte oder hinten

Pl ¨ane k ¨onnen umsortiert werden, damit zueinander passende Pl ¨ane zeitlich nahe ausgef ¨uhrt werden (r ¨aumlich nahe

beieinander; beim bearbeiten eines neuen Plans mehrere am Anfang anschauen, ob einer an diesem Ort bearbeitbar ist; . . . )

(13)

Entscheidungslisten

Liste von Bedingungen und Aktionen; erste Aktion mit erf ¨ullter Bedingung wird ausgef ¨uhrt

Problem 1: Lange Liste muss dauernd durchgearbeitet werden, ineffizient

Problem 2: L ¨angere Listen un ¨ubersichtlich

(14)

Entscheidungsb ¨aume

Effizientere Version der Entscheidungslisten:

Baum mit Enscheidungsfragen an inneren Knoten, unterschiedlichen Kindern f ¨ur die Antworten und Verhaltensweisen an den Bl ¨attern

n ¨achster Fuchs

Hunger Entfernung Stall

Zufall

Picken Zufall

in Ecke gehen

in Stall gehen

Verstecken

Weglaufen&

Flattern

Weglaufen&

Gackern

Herumlaufen Picken Flattern

weit weg Sichtweite

sehr nah

ja nein

im Stall

in Sichtweite

weit weg

64% 36%

60% 35% 5%

(15)

Entscheidungsb ¨aume, Eigenschaften

Kleine Entscheidungsb ¨aume k ¨onnen bereits komplexes Verhalten modellieren

Entscheidungsb ¨aume gut maschinell lernbar (ohne Zufall, daf ¨ur mehrere lernen und zuf ¨allig einen verwenden)

Baum als Modell ausreichend: Aktionen k ¨onnen wieder Entscheidungsb ¨aume sein

Nachteile: System rein reaktiv, innerer Zustand nicht direkt in der Modellierung (durch Aktionen, die inneren Zustand setzen machbar, schlecht f ¨ur ¨Ubersichtlichkeit)

(16)

Verhaltensb ¨aume

Seit etwa 2000 bekannt, popularisiert durch Halo 2, Spore und Bioshock, sowie die Unreal Engine.

Verbreitet in Computerspiele- und Robotikindustrie

Erweiterung von Entscheidungsb ¨aumen: Gibt Kombinatoren f ¨ur Verhalten, sowie zeitliche Komponenten

I Gibt die Konstrukture von Entscheidungsb ¨aumen:

Aktionen und Entscheidungsknoten

I Jeder Aktionsknoten gibt zus ¨atzlich an, ob die Aktion ein Erfolg oder ein Fehlschlag war

I Weitere Sorte innerer Knoten: Dekoratoren.

Hat genau ein Kind, bearbeitet das Ergebnis des Kinds

I Weitere Sorte innerer Knoten: Kombinatorknoten.

Hat Liste von Kinder, kombiniert ihre Verhaltensweisen in der Ausf ¨uhrung

Verhaltensb ¨aume nicht vollst ¨andig einheitlich in Verwendung, gibt verschiedene Erweiterungen und Einschr ¨ankungen

(17)

Verhaltensb ¨aume ausf ¨uhren

Ergebnis eines Verhaltensbaums zu berechnen nennt man von Ausf ¨uhren.

Ergebnis ist

”Erfolg“,

”Fehlschlag“, oder

”in Bearbeitung“;

”in Bearbeitung“ hat zus ¨atzliche Werte, den sogenannten Ausf ¨uhrungszustand

Aktionen haben Codereferenz, diese kann alle 3 R ¨uckgabewerte erzeugen, kann ihren internen Ausf ¨uhrungszustand fortsetzen

Gibt ein Kind

”in Bearbeitung“ zur ¨uck, so passiert einheitlich das Folgende in fast allen Knoten (außer Parallel, sp ¨atere Folie)

I Knoten selbst gibt ebenfalls

”in Bearbeitung“ zur ¨uck

I Ausf ¨uhrungszustand ist innerer Zustand des Knotens, sowie Information, welches Kind gerade ausgef ¨uhrt wird, sowie Ausf ¨uhrungszustand des Kindes in Ausf ¨uhrung

(18)

Verhaltensb ¨aume, Dekoratoren

Jeder Dekorator hat genau ein Kind

I Inverter: Kind wird ausgef ¨uhrt, Ergebnis invertiert: Bei Erfolg Fehlschlag zur ¨uckgeben, bei Fehlschlag Erfolg

I Warteknoten: Ausf ¨uhrung wird an der Stelle f ¨ur eine feste Zeitdauer angehalten, danach wird das Kind ausgef ¨uhrt Um das zu tun, gibt der Warteknoten

”in Bearbeitung“

zur ¨uck; wird er nach der Wartezeit fortgesetzt, wird das Kind ausgef ¨uhrt

I Feste Schleife: Kinderknoten wird mehrmals ausgef ¨uhrt, festgelegte Anzahl

I While-Schleife: Kinderknoten wird solange wiederholt, bis er Fehlschlag zur ¨uckgibt; gibt Fehlschlag zur ¨uck, wenn Kind nie erfolgreich war

I Retry-Schleife: Kinderknoten wird solange wiederholt, bis er Erfolg zur ¨uckgibt; dann Erfolg zur ¨uckgeben

I Debug: Kind wird normal ausgef ¨uhrt, aber es wird eine Debugnachricht ausgegeben, wenn die Bearbeitung anf ¨angt und wenn sie zuende ist

(19)

Verhaltensb ¨aume, Kombinatoren

Jeder Kombinator hat eine Liste an Kindern; kann fest oder randomisiert sein

I Sequenz:

Alle Kinder werden der Reihe nach ausgef ¨uhrt, es sei denn, ein Kind gibt Fehlschlag zur ¨uck, dann Fehlschlag zur ¨uckgeben.

Waren alle Kinder erfolgreich, dann Erfolg zur ¨uckgeben

I Selektor (auch Fallback genannt):

Wie Sequenz, nur Rolle von Erfolg und Fehlschlag vertauscht.

I Parallel:

Alle Kinder werden

”gleichzeitig“ ausgef ¨uhrt, d.h. die Kinder werden in Reihenfolge ausgef ¨uhrt, gibt aber ein Kind”in Bearbeitung“ zur ¨uck, so werden die anderen Kinder auch ausgef ¨uhrt.

Sobald ein Kind

”Erfolg“ oder

”Fehlschlag“ zur ¨uckgibt, wird das vom Parallel-Knoten auch zur ¨uckgegeben

(20)

Verhaltensb ¨aume, Parallelkombinator

Es gibt auch Parallelkombinatoren mit komplexeren Regeln, wie mit R ¨uckgaben umzugehen ist

Zustandscounter in Aktionen innerhalb eines

Parallelkombinators k ¨onnen Semaphoren simulieren

Parallelkombinatoren mit Bedacht einsetzen: K ¨onnen schnell un ¨ubersichtlich werden

(21)

Beispiel Verhaltensbaum: Ampel ¨uberquerung

SEQ

AKT PAR AKT

while SEQ

delay 1

SEL AKT

Zufall Ampel

while

AKT RET RET delay 1 RET

RET

Handy nehmen Handy weckstecken

Handy antippen Erfolg Fehlschlag Erfolg Erfolg

Straße ¨uberqueren

30% 70% gr ¨un rot

(22)

Beispiel Ausf ¨uhrung Verhaltensbaum

Beispielaufruf gek ¨urzter Verhaltensbaum, Startzeitpunkt: 343 while

Ampel

delay 2 RET

RET

Fehlschlag

Erfolg rot gr ¨un

t=343 Kein Aufrufzustand aus altem Aufruf, f ¨angt mit while-Knoten an; R ¨uckgabe (while (Ampel rot (delay 345))) t=344 Delay ist noch nicht bereit, darum

gleicher R ¨uckgabewert

t=345 Delay f ¨uhrt Kind aus, gibt Erfolg zur ¨uck. Damit gibt Ampel Erfolg zur ¨uck. Darum startet while Ampel neu, R ¨uckgabewert (while+ (Ampel rot (delay 347))) t=346 Delay ist noch nicht bereit, darum

gleicher R ¨uckgabewert

t=347 Delay f ¨uhrt Kind aus, gibt Erfolg zur ¨uck. Damit gibt Ampel Erfolg zur ¨uck. Diesmal Ampel gr ¨un, Fehlschlag beendet while, while wurde aber mindestens einmal ausgef ¨uhrt, R ¨uckgabe Erfolg

while+: Kennzeichnug, dass nicht erster while-Aufruf

(23)

Beispiel Ausf ¨uhrung Verhaltensbaum

Beispielaufruf gek ¨urzter Verhaltensbaum, Startzeitpunkt: 343 while

Ampel

delay 2 RET

RET

Fehlschlag

Erfolg rot gr ¨un

t=343 Kein Aufrufzustand aus altem Aufruf, f ¨angt mit while-Knoten an; R ¨uckgabe (while (Ampel rot (delay 345)))

t=344 Delay ist noch nicht bereit, darum gleicher R ¨uckgabewert

t=345 Delay f ¨uhrt Kind aus, gibt Erfolg zur ¨uck. Damit gibt Ampel Erfolg zur ¨uck. Darum startet while Ampel neu, R ¨uckgabewert (while+ (Ampel rot (delay 347))) t=346 Delay ist noch nicht bereit, darum

gleicher R ¨uckgabewert

t=347 Delay f ¨uhrt Kind aus, gibt Erfolg zur ¨uck. Damit gibt Ampel Erfolg zur ¨uck. Diesmal Ampel gr ¨un, Fehlschlag beendet while, while wurde aber mindestens einmal ausgef ¨uhrt, R ¨uckgabe Erfolg

while+: Kennzeichnug, dass nicht erster while-Aufruf

(24)

Beispiel Ausf ¨uhrung Verhaltensbaum

Beispielaufruf gek ¨urzter Verhaltensbaum, Startzeitpunkt: 343 while

Ampel

delay 2 RET

RET

Fehlschlag

Erfolg rot gr ¨un

t=343 Kein Aufrufzustand aus altem Aufruf, f ¨angt mit while-Knoten an; R ¨uckgabe (while (Ampel rot (delay 345))) t=344 Delay ist noch nicht bereit, darum

gleicher R ¨uckgabewert

t=345 Delay f ¨uhrt Kind aus, gibt Erfolg zur ¨uck. Damit gibt Ampel Erfolg zur ¨uck. Darum startet while Ampel neu, R ¨uckgabewert (while+ (Ampel rot (delay 347))) t=346 Delay ist noch nicht bereit, darum

gleicher R ¨uckgabewert

t=347 Delay f ¨uhrt Kind aus, gibt Erfolg zur ¨uck. Damit gibt Ampel Erfolg zur ¨uck. Diesmal Ampel gr ¨un, Fehlschlag beendet while, while wurde aber mindestens einmal ausgef ¨uhrt, R ¨uckgabe Erfolg

while+: Kennzeichnug, dass nicht erster while-Aufruf

(25)

Beispiel Ausf ¨uhrung Verhaltensbaum

Beispielaufruf gek ¨urzter Verhaltensbaum, Startzeitpunkt: 343 while

Ampel

delay 2 RET

RET

Fehlschlag

Erfolg rot gr ¨un

t=343 Kein Aufrufzustand aus altem Aufruf, f ¨angt mit while-Knoten an; R ¨uckgabe (while (Ampel rot (delay 345))) t=344 Delay ist noch nicht bereit, darum

gleicher R ¨uckgabewert

t=345 Delay f ¨uhrt Kind aus, gibt Erfolg zur ¨uck.

Damit gibt Ampel Erfolg zur ¨uck. Darum startet while Ampel neu, R ¨uckgabewert (while+ (Ampel rot (delay 347)))

t=346 Delay ist noch nicht bereit, darum gleicher R ¨uckgabewert

t=347 Delay f ¨uhrt Kind aus, gibt Erfolg zur ¨uck. Damit gibt Ampel Erfolg zur ¨uck. Diesmal Ampel gr ¨un, Fehlschlag beendet while, while wurde aber mindestens einmal ausgef ¨uhrt, R ¨uckgabe Erfolg

while+: Kennzeichnug, dass nicht erster while-Aufruf

(26)

Beispiel Ausf ¨uhrung Verhaltensbaum

Beispielaufruf gek ¨urzter Verhaltensbaum, Startzeitpunkt: 343 while

Ampel

delay 2 RET

RET

Fehlschlag

Erfolg rot gr ¨un

t=343 Kein Aufrufzustand aus altem Aufruf, f ¨angt mit while-Knoten an; R ¨uckgabe (while (Ampel rot (delay 345))) t=344 Delay ist noch nicht bereit, darum

gleicher R ¨uckgabewert

t=345 Delay f ¨uhrt Kind aus, gibt Erfolg zur ¨uck.

Damit gibt Ampel Erfolg zur ¨uck. Darum startet while Ampel neu, R ¨uckgabewert (while+ (Ampel rot (delay 347))) t=346 Delay ist noch nicht bereit, darum

gleicher R ¨uckgabewert

t=347 Delay f ¨uhrt Kind aus, gibt Erfolg zur ¨uck. Damit gibt Ampel Erfolg zur ¨uck. Diesmal Ampel gr ¨un, Fehlschlag beendet while, while wurde aber mindestens einmal ausgef ¨uhrt, R ¨uckgabe Erfolg

while+: Kennzeichnug, dass nicht erster while-Aufruf

(27)

Beispiel Ausf ¨uhrung Verhaltensbaum

Beispielaufruf gek ¨urzter Verhaltensbaum, Startzeitpunkt: 343 while

Ampel

delay 2 RET

RET

Fehlschlag

Erfolg rot gr ¨un

t=343 Kein Aufrufzustand aus altem Aufruf, f ¨angt mit while-Knoten an; R ¨uckgabe (while (Ampel rot (delay 345))) t=344 Delay ist noch nicht bereit, darum

gleicher R ¨uckgabewert

t=345 Delay f ¨uhrt Kind aus, gibt Erfolg zur ¨uck.

Damit gibt Ampel Erfolg zur ¨uck. Darum startet while Ampel neu, R ¨uckgabewert (while+ (Ampel rot (delay 347))) t=346 Delay ist noch nicht bereit, darum

gleicher R ¨uckgabewert

t=347 Delay f ¨uhrt Kind aus, gibt Erfolg zur ¨uck.

Damit gibt Ampel Erfolg zur ¨uck. Diesmal Ampel gr ¨un, Fehlschlag beendet while, while wurde aber mindestens einmal ausgef ¨uhrt, R ¨uckgabe Erfolg

while+: Kennzeichnug, dass nicht erster while-Aufruf

Referenzen

ÄHNLICHE DOKUMENTE

Wir sagen, dass eine Menge M (algorithmisch) entscheidbar (oder rekursiv) ist, wenn die zugeh¨ orige charakteristische Funktion ϕ M Turing -berechenbar ist. Anderenfalls heißt

Wir sagen, dass eine Menge M (algorithmisch) entscheidbar (oder rekursiv) ist, wenn die zugeh¨ orige charakteristische Funktion ϕ M Turing -berechenbar ist. Anderenfalls heißt

Obwohl eine Semantik erst auf einem abstrakten Syntax- baum aufbaut, muss man sich auf eine konkrete Syntax festlegen, um ¨ uberhaupt Programme textuell aufschreiben zu k¨onnen..

Sprachen wie While sind damit nicht direkt auf einem solchen Rechner ausf¨ uhrbar, sondern m¨ ussen ¨ ubersetzt werden.. Die Regeln der Big-Step-Semantik (und auch

Wenn ein umgebender Block eine lokale Variable deklariert, deren Namen in der Prozedur verwendet wird, so arbeitet die Prozedur beim Aufruf innerhalb des Blocks mit der

Dabei wird aber das auszuf¨ uhrende Programm selbst nicht in eine f¨ ur den Rechner geeignetere Darstellung ¨ ubersetzt.. Direkter geht es, wenn man einen solchen Rechner und

Alle bisherigen Regeln gelten weiterhin und brauchen nicht angepasst zu werden.. Damit ist diese

i hat immer den gleichen Wert (nämlich 1), da i nicht verändert (z.B. hochgezählt) wird. Die Schleife läuft also ewig, da die Abbruchbedingung (i > 55) niemals erfüllt