Agenten-Folie, S.11

Moderator: Einführung in die Künstliche Intelligenz

Dreamdancer
Mausschubser
Mausschubser
Beiträge: 67
Registriert: 17. Jul 2005 23:17
Wohnort: Frankfurt am Main

Agenten-Folie, S.11

Beitrag von Dreamdancer »

Wenn die Umgebung das Schachbrett ist, dann wäre das Performance-Maß doch eher die Bewertung der Stellung. So redet man über zwei verschiedene Ebenen. Die Bewertung des Gegners ist ja kein Messwert innerhalb des Spiels.

Tillmann
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 131
Registriert: 5. Dez 2003 21:27
Wohnort: Frankfurt

Re: Agenten-Folie, S.11

Beitrag von Tillmann »

Ich glaube, das ist anders gemeint. Ich interpretiere es so:
  • Performance Ein guter Agent gewinnt viele Spiele, verliert wenige und erreicht eine hohe ELO-Wertung.

    Environment Ein Agent weiß, wie das Schachbrett allgemein aufgebaut ist (eine Matrix aus acht Zeilen und acht Spalten).

    Actuators Ein Agent darf Figuren entsprechend der Schachregeln bewegen.

    Sensors Ein Agent nimmt die aktuelle Stellung aller Spielfiguren wahr.
Environment beschreibt also allgemeines Wissen über den Kontext des Problems, das unabhängig von der konkreten, zu lösenden Probleminstanz gilt. Sensors beschreibt dagegen konkretes Wissen über die aktuelle Probleminstanz. Das Perfomance Maß bezieht sich auf die gesamte "Lebenszeit" eines Agenten, nicht bloß auf eine Einzelentscheidung.

Es geht ja beim Schach-Spielen nicht darum, gute Stellungen zu erreichen, sondern darum, den gegnerischen König matt zu setzen. Um zu bewerten, ob ein Agent ein Spiel gewonnen hat oder nicht, ist es total egal, welche Stellungen irgendwann mittendrin im Spiel auftreten. Diese Zwischenstellungen müssen lediglich bewertet werden, um sich für Spielzüge entscheiden zu können. Also ist die Bewertung der Stellung eine Heuristik für einen Suchalgorithmus, aber kein Performance-Maß für einen Schach-Agenten.

Benutzeravatar
Rodent Bait
Mausschubser
Mausschubser
Beiträge: 91
Registriert: 26. Apr 2005 14:50
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von Rodent Bait »

Schau' mal auf die Folie 30 im selben Foliensatz. Imho ist die Bewertung der Stellung (nämlich der Folgestellung, wenn der Agent einen bestimmten Zug machen würde) eine Utility-Funktion. Die kann der Agent heranziehen, um das Ziel (viele Spiele gewinnen) zu erreichen. Die Zielerreichung wird dann in der Performance-Funktion gemessen.

Und da sind sie dann, Deine zwei Ebenen. Oder?

Dreamdancer
Mausschubser
Mausschubser
Beiträge: 67
Registriert: 17. Jul 2005 23:17
Wohnort: Frankfurt am Main

Beitrag von Dreamdancer »

Rodent Bait hat geschrieben: Und da sind sie dann, Deine zwei Ebenen. Oder?
Mit zwei Ebenen meinte ich: Das eine ist In-Game. Das Brett als Umgebung etc. Wenn ich aber von einem ELO eines Spielers rede, ist das außerhalb des Spiels. Wenn zwei Mannschaften gegeneinander Fußball spielen, so ist es doch egal ob der Erste gegen den Letzten antritt. Die Aussage, wer die bessere Performance bringt, wird auf dem Feld gemessen, egal ob man die Spielanteile als Measure nimmt, oder die Tore oder sonst etwas.

Laut Folie S.7 wird die Performance Measure so definiert:
A function that evaluates sequence of actions/environment states
Für mich klingt das nach In-Game, denn wenn das Spiel beendet ist und mein ELO neu berechnet wird gibt es keine actions und environment states des Spiels mehr. Und: Egal welche Actions und States im Spiel ich gemacht und durchgemacht habe, der ELO richtet sich nicht danach, nur nach dem Ausgang. Von daher ... ???

Benutzeravatar
Rodent Bait
Mausschubser
Mausschubser
Beiträge: 91
Registriert: 26. Apr 2005 14:50
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von Rodent Bait »

Egal welche Actions und States im Spiel ich gemacht und durchgemacht habe, der ELO richtet sich nicht danach, nur nach dem Ausgang.
Aber der Ausgang hängt doch wiederum von den Actions und States ab?!
A function that evaluates sequence of actions/environment states
Das kann m.E. auch Out-of-the-Game sein. Wenn wir den ELO-Wert verwenden, dann bekommt eine Zugfolge eine höhere Bewertung, die den ELO-Wert maxmiert, also zu einem Sieg führt, als eine Zugfolge, die den ELO-Wert minimiert, also zu einer Niederlage führt.

Sofern ich das ELO-System richtig verstehe, hängt der quantitative Zugewinn/Verlust zwar von der Spielstärke des Gegners (der in der Schachbrett-Welt im engeren Sinn nicht modelliert ist) ab, aber qualitativ ändert er nichts an dem obigen Gedanken, oder? Wäre das nicht genauso, als würde ich sagen, ich multipliziere die Performance-Funktion noch mal mit Pi?

Tillmann
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 131
Registriert: 5. Dez 2003 21:27
Wohnort: Frankfurt

Beitrag von Tillmann »

Dreamdancer hat geschrieben:Für mich klingt das nach In-Game, denn wenn das Spiel beendet ist und mein ELO neu berechnet wird gibt es keine actions und environment states des Spiels mehr. Und: Egal welche Actions und States im Spiel ich gemacht und durchgemacht habe, der ELO richtet sich nicht danach, nur nach dem Ausgang.
Ja klingt vernünftigt. Andererseits: Es müssen ja trotzdem die durchgeführten actions bewertet werden. Spielziel (und damit performance measure) ist es, den Gegner matt zu setzen. Die Bewertung einer einzelnen Aktion geschieht unter diesem Gesichtspunkt: Eine Aktion mitten im Spiel ist gut, wenn sie dazu führt, daß am Ende des Spiels der Gegner matt gesetzt ist. Das kann ich natürlich mitten im Spiel noch nicht wissen (sonst wäre Schach ja einfach), aber am Ende des Spiels weiß ich, daß das gesamte Spiel (also die Summe meiner Aktionen und der mir vom Gegner präsentierten Stellungen) entweder gut oder schlecht war.

Aus der offensichtlichen Aussage "Ein Schachspieler sollte so ziehen, daß er seinen Gegner matt setzt" wird dann etwas formaler "Ein Schach-Agent sollte solche Aktionen auswählen, die das performance measure 'Gegner am Ende matt gesetzt' " erhöhen.

Dreamdancer
Mausschubser
Mausschubser
Beiträge: 67
Registriert: 17. Jul 2005 23:17
Wohnort: Frankfurt am Main

Beitrag von Dreamdancer »

Naja, beim Schach geht es schon etwas tiefer. Mit solch einem Performance-Measure würde man dich ziemlich schnell austricksen können, oder der Agent würde unendlich lange rechnen. Nicht umsonst hat Deep Blue laut Skript eine solch komplizierte Funktion.
Aber ich glaube, ich sollte hier keine Haare spalten. Es war einfach die Frage, ob man generell In-Game redet, oder ob man auch Meta-Ebenen hineinbezieht (was ich einfach nicht konsequent finde, natürlich ist es das Ziel, ELO zu erhöhen und deshalb matt zu setzen, aber das ist meines Erachtens kein Performance-Measure, sondern eine Bewertung, nachdem das Spiel gelaufen ist)

Tillmann
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 131
Registriert: 5. Dez 2003 21:27
Wohnort: Frankfurt

Beitrag von Tillmann »

Dreamdancer hat geschrieben:Aber ich glaube, ich sollte hier keine Haare spalten. Es war einfach die Frage, ob man generell In-Game redet, oder ob man auch Meta-Ebenen hineinbezieht (was ich einfach nicht konsequent finde, natürlich ist es das Ziel, ELO zu erhöhen und deshalb matt zu setzen, aber das ist meines Erachtens kein Performance-Measure, sondern eine Bewertung, nachdem das Spiel gelaufen ist)
Meines Erachtens ist der Begriff "Performance-Measure" mit dem Begriff "Bewertung, nachdem das Spiel gelaufen ist" identisch. Die Aufgabe eines Schach-Agenten ist es, Schach zu spielen. Nicht einzelne Züge, sondern ganze Spiele. Und die Performance eines Schach-Agenten wir daran gemessen, ob er gewinnt oder verliert.

Das ist natürlich ein nicht-konstruktiver Begriff. Auch wenn ein "Performance Measure" gegeben ist, können wir daraus keinen Algorithmus ableiten. Performance Measure steht am Anfang des Agenten-Design-Prozeß, der fertige Algorithmus am Ende. Dazwischen liegt die ganze Arbeit.

Es ist also keine Haarspalterei, sondern wir haben ein ganz unterschiedliches Verständnis vom Begriff "performance measure". Vielleicht trifft ja mal wieder jemand Herrn Grieser beim Essen und bittet ihn, das zu klären?

Benutzeravatar
Rodent Bait
Mausschubser
Mausschubser
Beiträge: 91
Registriert: 26. Apr 2005 14:50
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von Rodent Bait »

Soweit ich mich an die Vorlesung erinnere, haben wir einige Beispiele gesehen, wie Performance definieren kann. Und wie ich das sehe, ist man frei, da sowohl In-Game als auch Outside-the-Game-Faktoren zu berücksichtigen. Eine (sehr naive) Performance-Funktion könnte zum Beispiel einfach die Spielsteine des Agenten zählen. Eine andere Performance-Funktion könnte den Schweißausstoß und den Puls des Gegners zu maximieren versuchen (evtl. auch eine mögliche Gewinnstrategie gegen Menschen?). Beide genügen m.E. der genannten Definition, denn sowohl mit der Zählung der Steine als auch mit der Messung des gegnerischen Schweißausstoßes und Pulses kann ich (evtl. mehr oder weniger gut, aber das ist nicht der Punkt) Zug- und Stellungssequenzen bewerten.

Man ist also m.E. völlig frei, Performance-Measures zu definieren, wie man will, ob unter Berücksichtigung von Out-of-the-Game-Faktoren (Schweißausstoß, Pulsfrequenz, ...) oder nicht.

Antworten

Zurück zu „Einführung in die Künstliche Intelligenz“