• Keine Ergebnisse gefunden

Erkennung von Verhaltens-Objekten

4.5 Objektorientierte Realisierung

4.5.6 Erkennung von Verhaltens-Objekten

Nachdem die Verhaltens-Klassen eingef¨uhrt sind, wird in diesem Abschnitt be-schrieben, wie Verhaltens-Objekte erkannt werden. Zuerst wird die Methode happens beschrieben (Abschnitt 4.5.6.1) und damit die Arbeitsweise des Al-gorithmus zur Verhaltens-Erkennung. Die Verhaltens-Klassen und ihre Funk-tionalit¨at werden genutzt, um alle Verhalten einer Beobachtungssequenz zu erkennen (Abschnitt 4.5.6.2).

4.5.6.1 Algorithmus zur Verhaltens-Erkennung

Der – von konkreten Verhaltens-Klassen unabh¨angige – Algorithmus zur Ver-haltens-Erkennung ist durch die Methode happens definiert, die den jeweils aktuellen Zustand des Verhaltens-Objektes ermittelt.

Dieser Zustand state setzt sich in jeder Beobachtung aus dem Zustand der Sequenz-Bedingungen, dem Zustand der Immer-Bedingungen und dem Zustand der Parallel-Bedingungen zusammen, d.h. bei der Auswertung des Zustandes mit der Methode happens wird jeweils ein Teilzustand f¨ur die sequenceEvents, f¨ur die alwaysEvents und f¨ur dieparallelEvents bestimmt.

Diese drei Teilzust¨ande werden dann zur Bestimmung des Gesamtzustandes des Verhaltens-Objektes kombiniert. Das jeweilige Ergebnis der Kombination zweier Teilzust¨ande ist durch die Matrix in Tabelle 4.4 gegeben. Diese Matrix ist symmetrisch, damit ist die Kombinations-Operation kommutativ. Desweiteren ist die Kombinations-Operation assoziativ23. Folglich spielt die Reihenfolge von Kombinationen keine Rolle.

N P I E F C

not happening (N) N N N N N N

pending (P) N P P P N N

in progress (I) N P I I C C

end possible (E) N P I E F C

finished (F) N N C F F C

canceled (C) N N C C C C

Tabelle 4.4: Kombination zweier Zust¨ande zu einem neuen Zustand Wenn der Gesamtzustand den Wertcanceled hat werden die Fehler-Auspr¨ a-gungen des Verhaltens-Objektes mit Hilfe der Abbruch-Bedina-gungen bestimmt.

Dabei k¨onnen prinzipiell auch mehrere oder gar keine Abbruch-Bedingungen gelten. Damit ergibt sich der in Algorithmus 4.1 auf der n¨achsten Seite darge-stellte Ablauf f¨ur die Verhaltens-Erkennung.

Die Bestimmung des Zustandes der Sequenz-Bedingungen (im folgenden mit Sequenz-Zustand bezeichnet), also die Abarbeitung der Methode happens-SequenceEvents, ist im Algorithmus 4.2 auf der n¨achsten Seite dargestellt und wird im folgenden n¨aher beschrieben.

23Die Assoziativit¨at der Kombinations-Operation wurde durch einen vollst¨andigen Test aller oglichen Kombinationen von Zust¨anden nachgewiesen.

4.5 Objektorientierte Realisierung 97

Algorithmus 4.1: Grundaufbau der Verhaltens-Erkennung //Auswertung der Sequenz-, Immer- und Parallel-Bedingungen State sequenceState = happensSequenceEvents();

State alwaysState = happensAlwaysEvents();

State parallelState = happensParallelEvents( sequenceState );

//Ermittlung des Gesamtzustandes

state = combineStates( sequenceState, alwaysState );

state = combineStates( state, parallelState );

//Auswertung der Abbruch-Bedingungen

if( state == canceled ) happensCancelEvents();

Algorithmus 4.2: Auswertung der Sequenz-Bedingungen State sequenceState = state; //bisheriger Verhaltenszustand boolean checkEvent = YES;

while( checkEvent == YES ) {

State eventState = sequenceEvents.elementAt( //Ereignis-Zustand currentSequenceEventNum ).happens();

checkEvent = NO;

//Aktualisierung des Sequenz-Zustandes

if( sequenceState == notHappening ) //Verhalten noch nicht gestartet if( eventState != notHappening ) sequenceState = pending;

if( sequenceState == pending &&

currentEventSequenceNum == inProgressEventNum ) sequenceState = inProgress;

if( sequenceState == inProgress && eventState == notHappening ) sequenceState = canceled;

if( currentSequenceEventNum == sequenceEvents.count() ) { //alle Sequenz-Bedingungen abgearbeitet

if( eventState == endPossible ) sequenceState = endPossible;

if( eventState == finished ) sequenceState = finished;

} else {

if( eventState == finished ) { //Ereigniswechsel

checkEvent = YES; //Beobachtung mit folgenden Event untersuchen currentSequenceEventNum++;

} } }

98 Die Verhaltens-Bestimmung

Als Ausgangbasis wird der Sequenz-Zustand (sequenceState) mit dem Wert des bisherigen Verhaltenszustandes (state) initialisiert.

Dann startet der eigentliche Algorithmus mit der Bestimmung des Ereignis-Zustandes (eventState) des aktuellen Ereignis-Objektes, es wird die happens-Methode des Ereignis-Objektes aufgerufen. Danach wird der Sequenz-Zustand in Abh¨angigkeit vom Ereignis-Zustand aktualisiert.

Wenn alle Sequenz-Bedingungen abgearbeitet wurden, d.h. das aktuelle Ereignis-Objekt das letzte in der Liste sequenceEvents ist, und der Ereignis-Zustand den Wert end possible bzw. finished hat, dann wechselt der Sequenz-Zustand entsprechend.

Falls noch nicht das letzte Ereignis-Objekt bei der Untersuchung erreicht ist, und der Ereignis-Zustand den Wert finished hat, dann wird das folgen-de Ereignis-Objekt folgen-dersequenceEvents zum aktuellen Ereignis-Objekt und der eigentliche Algorithmus wird wiederholt.

Die Bestimmung des Zustandes der Immer-Bedingungen, also der Ab-lauf der Methode happensAlwaysEvents ist wesentlich einfacher. Jedes die-ser Ereignis-Objekte wird mit dessenhappens-Methode ausgewertet und deren Zust¨ande werden nacheinander kombiniert. Das Ergebnis einer solchen Kombi-nation ist wiederum durch die Matrix in Tabelle 4.4 auf Seite 96 gegeben. Da die durch die Matrix dargestellte Kombinations-Operation assiozativ ist, spielt die Reihenfolge der Kombinationen keine Rolle.

4.5.6.2 Anwendung des Algorithmus zur Verhaltens-Erkennung Durch den Aufruf der Methode happens wird der Zustand eines Verhaltens-Objektes entsprechend der aktuellen Beobachtung bestimmt und die Belegung der Attribute des Verhaltens-Objektes wird aktualisiert. Die Anwendung der Methode happens f¨ur die Verhaltens-Erkennung ist in Algorithmus 4.3 darge-stellt.

Algorithmus 4.3: Anwendung der Verhaltens-Erkennung //aktuelle Verhaltens-Objekte initialisieren

currentBehaviors.addNewBehaviors();

...

while( observation.next() == YES ) { //solange Beobachtungen da //jedes aktuelle Verhaltens-Objekt mit Beobachtung untersuchen forall behavior in currentBehaviors {

state = behavior.happens();

if( state == finished || state == canceled ) { //Nutzung des erkannten Verhaltens

...

//wenn Verhalten beendet dann nicht weiter untersuchen currentBehaviors.remove( behavior );

} }

//bei Bedarf Aufnahme neuer Verhaltens-Objekte currentBehaviors.addNewBehaviors();

}

4.5 Objektorientierte Realisierung 99

Um ein Verhalten wahrzunehmen, muß ein Verhaltens-Objekt solange mit neuen Beobachtungen untersucht werden, bis sich dieses Verhaltens-Objekt ent-weder im Zustandfinished oder im Zustandcanceled befindet. Wenn einer die-ser Zust¨ande erreicht ist, kann das erkannte Verhalten auf unterschiedliche Art und Weise weiterverwendet werden. In dieser Arbeit wird es als L¨osung eines Ausl¨oser-Verhaltens-Falles genutzt (vgl. Abschnitt 3.5 auf Seite 37 oder 5.4.1 auf Seite 114).

Damit muß zur Erkennung der Verhalten aller Verhaltens-Klassen immer je ein Verhaltens-Objekt pro Klasse zur Untersuchung mit den Beobachtun-gen zur Verf¨ugung stehen. Die gerade untersuchten Verhaltens-Objekte wer-den im Algorithmus 4.3 mit der Verhaltens-Objekte-Menge currentBehaviors bezeichnet. Neue Verhaltens-Objekte werden dieser Menge mit der Methode addNewBehaviors hinzugef¨ugt.

Kapitel 5

Fallbasierte Generierung von Verhaltens-Modellen

In diesem Kapitel wird die Generierung von teamspezifischen Verhaltens-Mo-dellen f¨ur Interaktionspartner behandelt. Das verwendete Verhaltens-Modell ist fallbasiert, enth¨alt also F¨alle die das Verhalten der Interaktionspartner unter bestimmten Bedingungen beschreiben. Die Beschreibung von Verhalten erfolgt dabei durch dessen charakteristische Werte. F¨ur die automatische Generierung von F¨allen, auf Basis fr¨uherer Beobachtungen der IP, wird f¨ur jedes beobachtete Verhalten dessen Ursache in Form eines Ausl¨osers bestimmt. Ein Ausl¨oser stellt die Problembeschreibung und das Verhalten die L¨osung eines Falles dar.

Es wird sowohl ein ¨Ahnlichkeitsmaß zwischen Ausl¨osern als auch zwischen Verhalten verwendet. Das ¨Ahnlichkeitsmaß f¨ur Ausl¨oser dient zur Verhaltens-Vorhersage in Situationen, f¨ur die keine entsprechenden Ausl¨ oser-Verhaltens-F¨alle existieren. Das ¨Ahnlichkeitsmaß zwischen Verhalten wird zur Evaluierung der Verhaltens-Vorhersage und zur automatischen Anpassung des Ausl¨ oser-Ahnlichkeitsmaßes verwendet.¨

Das Verhaltens-Modell eines modellierten Teams wird generiert, indem es in Spielen gegen andere Teams beobachtet wird und Ausl¨oser-Verhaltens-F¨alle des modellierten Teams erzeugt werden. Dieses Verhaltens-Modell kann dann in weiteren Spielen des modellierten Teams zur Vorhersage des Verhaltens der Spieler dieses Teams verwendet werden.

Zuerst werden die verwendeten Ausl¨oser-Muster f¨ur die Verhaltens-Muster Paß, Torschuß, Kl¨aren und Dribbeln vorgestellt (Abschnitt 5.1). Danach wird der Prozess der Bestimmung von Ausl¨osern formalisiert (Abschnitt 5.2). Die charakteristischen Attribute der Verhaltens-Muster werden herausgearbeitet und durch Verhaltens-Essenz-Muster beschrieben (Abschnitt 5.3). Auf der Basis von Ausl¨osern und Verhaltens-Essenzen werden die Ausl¨ oser-Verhaltens-F¨alle eingef¨uhrt und es wird gekl¨art, wie diese generiert und in eine Fallbasis in-tegriert werden (Abschnitt 5.4). Die ¨Ahnlichkeitsmaße zwischen den Ausl¨osern sowie zwischen den Verhalten werden spezifiziert (Abschnitt 5.5). Schließlich wird eine objektorientierte Realisierung f¨ur die Generierung von Verhaltens-Modellen angegeben (Abschnitt 5.6).

Die Anwendung von Verhaltens-Modellen wird in Kapitel 6 betrachtet.

102 Fallbasierte Generierung von Verhaltens-Modellen

5.1 Die Ausl¨ oser f¨ ur die Verhaltens-Muster

Mit einem Ausl¨oser wird der relevante Teil einer Entscheidungs-Situation f¨ur das Zustandekommen eines Verhaltens beschrieben (vgl. Definition 3.7 auf Sei-te 36). In diesem Abschnitt ist zu kl¨aren, was als relevanter Teil einer Entschei-dungs-Situation zu verstehen ist. Dazu werden einige Vorbetrachtungen f¨ur die Wahl von Ausl¨oser-Mustern durchgef¨uhrt (Abschnitt 5.1.1). Im Anschluß wer-den die verwendeten Ausl¨oser-Muster f¨ur die Verhaltens-Muster Paß, Torschuß, Kl¨aren und Dribbeln vorgestellt (Abschnitte 5.1.2 bis 5.1.4).