Minimax-Algorithmus Beschreibung Minimax-Algorithmus  
 
   
Beschreibung von Minimax-Algorithmus Infos zu Minimax-Algorithmus und Beschreibung.
Nicht angemeldet: Anmelden | Impressum 
Navigation
· Hauptseite
· Know Forum - neu!
· Zufälliger Artikel
· Spezialseiten
· Alle Artikel
· Eingeordnet unter
Aktueller Artikel
· Seite bearbeiten
· Links auf diese Seite
· Verlinkte Seiten
· Versionen


 
 



Letzte Beiträge
Die Klimalüge CO2Guten Abend Herr Enger
"Meine Fr...
Volumenausdehnung be...Hallo da draußen, ich h
abe folgendes ...
Osterrätsel der Fran...Hallo, ich hab' mich leide
r mit meinere ...
was ist denn mit dem...Hallo, der Song heißt Cal
istan "...
Strichcode entschlüs...Hallo benni, ich stehe
gerade vor dem...
Lust auf Focus Rätse...Hallo, an alle Spezialist
en dieses Räts...
ErdölServus, Erdöl hat keine
Formel, da es...
Frage an die Student...Hallo, im Prinzip ist das
eine gute Ide...
CO2 chemische Trennu...Hallo ....... CO2 in der
Luft wird begr...
IGBT ansteuerschaltu...Guten Tag, Wer weiss lief
ert eine funk...


Minimax-Algorithmus

Dieser Text beschreibt Minimax-Algorithmus.


Der untere Text beinhaltet die Minimax-Algorithmus Beschreibung. Soweit es sich um ein definierbares Objekt handelt, sollte hier eine Minimax-Algorithmus Definition vorhanden sein. Sollte eine Definition von Minimax-Algorithmus fehlen, kann diese von Ihnen verfaßt werden. Wir sind bestrebt die Beschreibung von Minimax-Algorithmus möglichst ausführlich zu halten.

Jeder Text bei Know-Library, sowie ein Teil davon (Definition, Beschreibung etc.), außer Bücher Beschreibungen kann bearbeitet werden. Falls die Beschreibung auf dieser Seite nicht korrekt ist klicken Sie auf 'Beschreibung editieren' um den Text zu korrigieren bzw. neuen einzufügen. Weitere Informationen und Bücher zum Thema Minimax-Algorithmus Beschreibung , so wie Link zum Forum finden Sie weiter unten. Eine Übersicht der Texte, die das Thema Minimax-Algorithmus beschreiben finden Sie auf der Seite alle Artikel über Minimax-Algorithmus. Fragen zu dem Thema Minimax-Algorithmus können im Forum gestellt werden. Klicken Sie hier um zu dem Forum zu wechseln.

Minimax-Algorithmus Artikel

Der Minimax-Algorithmus ist ein Algorithmus zur Ermittlung der optimalen Spielstrategie für Spiele bei denen zwei gegnerische Spieler abwechselnd Züge ausführen (z.B. Schach, Go, Reversi, Dame, Mühle oder Vier Gewinnt ).

Im Gegensatz zu Würfelspielen sind die genannten Spiele nicht vom Zufall abhängig, im Gegensatz zu Karten- und Ratespielen sind sie offen, d.h. in jeder Spielsituation sind jedem der beiden Spieler alle Zugmöglichkeiten des jeweiligen Gegenspielers bekannt.

Aus diesem Grund läßt sich die optimale Strategie für das jeweilige Spiel mit dem Minimax-Verfahren ermitteln. Die optimale Strategie ist dann gefunden, wenn sie zu dem (bestmöglichen) Ergebnis eines Spielers führt, wenn man von optimaler Spielweise des Gegner ausgeht. Für einige Spiele, wie das so genannte Nimm-Spiel, lässt sich eine optimale Strategie auch direkt ohne Minimax berechnen.

Inhaltsverzeichnis
Buch-Tipp: Blood Alex und Maria Alex Cross, mittlerweile nicht mehr beim FBI tätig, widmet sich scheinbar nun seiner Familie und seiner therapeutischen Praxis. Natürlich setzt er auch in diesem Buch seine neue Beziehung zu Kayla in den Sand, was nichts neues ist. Durch Sampson wird er schnell in die laufenden Ermittlungen des FBI einbezogen. Sie jagen einen...

Algorithmus

Der Algorithmus funktioniert folgendermaßen:

  • Jeder Spielposition (Brettstellung) ist ein Zahlwert (Bewertung) zugeordnet:
    • Positionen, die günstig für Spieler A sind, seien große Zahlen zugeordnet,
    • Positionen, die günstig für Spieler B sind kleine Zahlen.
    • Spieler A maximiert also den Zahlwert in dem Laufe des Spiels, Spieler B minimiert ihn.
  • Der Algorithmus baut einen Suchbaum (s.u.) auf, der alle Folgepositionen der aktuellen Position enthält und alle Folgepositionen der Folgepositionen, usw. Bis zu einer bestimmten Tiefe.
  • Für die Blätter des Suchbaums wird nun eine Bewertung bestimmt.
  • Die Bewertung wird nun von den Blättern zur Wurzel übertragen:
    • Ist Spieler A am Zug, so wird einer Position der Maximalwert der Bewertungen aller Folgepositionen zugeordnet.
    • Ist Spieler B am Zug, so wird einer Position der Minimalwert der Folgepositionsbewertungen zugeordnet.
    • Das ganze geschieht rekursiv, bis die Wurzel des Spielbaums erreicht ist.
  • Je nach dem, welcher Spieler am Zug ist, entscheidet sich der Algorithmus für den Zug zur Folgeposition mit minimaler oder maximaler Bewertung.
Buch-Tipp: Bürgerliches Gesetzbuch (BGB) Alles was Recht ist Die Japaner haben es von uns abgeschrieben, die Österreicher sind zu ähnlichen Ergebnissen gekommen, nunmehr 107 Jahre alt und stets noch hochaktuell und ein konservatives Spiegelbild unserer Gesellschaft. Während in der Erstausgabe noch der Ehemann den Arbeitsvertrag seiner Ehefrau auch ohne deren Zustimmung kündigen konnte,...

Bewertungsfunktion

Eine ideale Bewertungsfunktion ordnet einer Stellung den Wert +1 zu, wenn Spieler A gewinnt und den Wert -1, wenn Spieler B gewinnt und 0 bei Unentschieden. Kann man von sämtlichen Spielpositionen den Suchbaum bis zur maximalen Tiefe aufbauen (bis zur Endstellung, wo man sieht, wer gewinnt), so spielt der Algorithmus ein perfektes Spiel. Allerdings ist in der Praxis der vollständige Aufbau eines Suchbaums ca. bei sehr einfachen Spielen wie Tic-Tac-Toe möglich.

Bei fast allen anderen Spielen ist dies zu rechenaufwendig. Darum begnügt man sich damit, den Suchbaum ca. bis zu einer vorgegebenen Suchtiefe aufzubauen. Die Bewertungsfunktion wird modifiziert, sehr gute Spielpositionen für A erhalten sehr hohe Werte, sehr gute Spielpositionen für B erhalten sehr niedrige Werte. Zur Ermittlung der Werte bedient man sich Heuristiken zur Schätzung.

Die steigende Rechenleistung von Computern und bessere Programme haben mittlerweile dazu geführt, dass selbst bei so komplexen Spielen wie Schach heutzutage die meisten Menschen ohne Mühe vom Computer geschlagen werden können. Die dabei benutzte Strategie beruht in dem Wesentlichen auf dem Minmax-Algorithmus.

Buch-Tipp: Das Schicksal der Zwerge Super Anfang, mieses Ende. . . Als ich den vierten Teil entdeckte war ich schon ziemlich happy und hab mich direkt ans lesen begeben. . . Endlich wieder Zwerge. Und zu meiner Überraschung ging es auch ziemlich gelungen los und die Spannung stieg und stieg. . . Ich kann leider nicht exakt sagen ab wann aber zu dem schluß wird dieses Buch schon...

Suchbaum-Beispiel

Minimax-Algorithmus Beschreibung
Das Bild oben zeigt einen einfachen Baum mit Suchtiefe 3.

Die Knoten der Ebenen 1 und 3 entsprechen Spielsituationen, in denen Spieler A am Zug ist, d.h. hier wird jeweils der Max-Wert der untergeordneten Knoten ermittelt.

Die Knoten der Ebene2 entsprechen Spielsituationen, in denen Spieler B am Zug ist, d.h. hier wird jeweils der Min-Wert der untergeordneten Knoten ermittelt.

Auf der Blätterebene werden die Knotenwerte jeweils über die Bewertungsfunktion ermittelt.

Im Bild sind Kanten ( = Spielzüge ), die zu dem Max-Wert führen, rot gekennzeichnet. Kanten, die zu dem Min-Wert führen, sind blau gekennzeichnet.

Buch-Tipp: Der perfekte Verführer. Wie Sie garantiert jede Frau erobern Wie bloß wird man ein Alpha-Männchen? Der Autor hat sich viele Gedanken darüber gemacht, wie man(n) die Aura eines Alpha-Männchens entwickeln kann und sich auf diese Weise die Grundvorraussetzung dafür erwirbt, an Frauen, dazu noch schönen ,anzudocken. Oliver Kuhn hat keine Kosten und Mühen gescheut, um sich zu dem perfekten Verführer ausbilden...

Anmerkungen

  • Das Minimax-Verfahren ist in dem Kern vom speziellen Spiel unabhängig, d.h. z.B. Schach und Reversi benutzen den selben Algorithmus.
  • Schnittstellen zu dem speziellen Spiel sind lediglich die beiden folgenden Programmteile:
    • Welche Züge sind in einer konkreten Spielsituation möglich?
    • Wie wird eine Spielsituation numerisch bewertet?
  • Neben dem Minimax-Verfahren kann ein Spiel weitere spielspezifische Verfahren anwenden, z.B. vorberechnete Bibliotheken für Eröffnungszüge.

Der Minimax-Algorithmus benötigt einerseits abhängig von der Suchtiefe extrem viel Zeit, andererseits steigt in der Regel bei höherer Suchtiefe auch die Qualität des Suchergebnisses.

Es existieren daher verschiedenen optimierte Varianten, z.B.

  • variable Suchtiefe: wenn ca. noch wenige Zugmöglichkeiten pro Spielsituation existieren, z.B. weil sich ca. noch wenige Spielsteine auf dem Spielfeld befinden, kann die Suchtiefe erhöht werden (und umgekehrt).
  • dynamische Suchtiefe: wenn sich die Zahlenwerte an einer Stelle des Suchbaums von Ebene zu Ebene stark ändern, kann die Suchtiefe lokal erhöht werden (und umgekehrt).
  • die Alpha-Beta-Suche kann benutzt werden.

Eine wesentliche Zeitersparnis ergibt sich durch Speicherung der bisher behandelten Stellungen und deren Bewertung. Wird eine Stellung durch verschiedene Zugfolgen von der Ausgangsstellung erreicht, braucht nicht jedes Mal wieder der gesamte darunter liegende Suchbaum durchsucht werden.

Buch-Tipp: Die Albenmark - Elfenritter Band 2 Mit den Nerven am Ende, Bin jetzt auf Seite 454 und meine Nerven liegen blank. Die Elfenbände gehören einach zu dem Besten in Sachen Fantasie . Bernhard du liest bestimmt auch hier,ich selber bin 67er Jahrgang möchte Dir Danken für die Welt die ich durch Dich besuchen darf. Würde mir wünschen das Deine Elfen noch verfilmt werden. Ehre und Stärke...

Iterative deepening

Speziell bei eingeschränkter Zeit für die Suche (z.B. in dem Turnierschach) wird "iterative deepening" benutzt. Dabei wird die Suche, ausgehend von der zu behandelnden Stellung, wiederholt gestartet und dabei die gewünschte Suchtiefe schrittweise erhöht. Werden die bereits behandelten Stellungen, wie oben beschrieben, gespeichert, müssen ca. die gegenüber der vorhergehenden Suche neu erreichten Stellungen mit der Bewertungsfunktion bewertet werden. Dieses Verfahren wird so lange fortgesetzt, bis die verfügbare Suchzeit überschritten oder ein "hinreichend gutes" Ergebnis erzielt wurde.

Ohne iterative deepening wäre beim Überschreiten des Zeitlimits in dem schlimmsten Fall ca. ein einziger Zug behandelt worden, dieser aber bis in sehr große Tiefe. Der nächste Zug, der vielleicht schon nach ca. einem einzigen Gegenzug den Gewinn gesichert hätte, wäre gar nicht erst ausprobiert worden.

Buch-Tipp: Die Chemie des Todes. 6 CDs Spannend und gut, mit einem kleinen "Aber" Das in dem Stil eines Ich-Erzählers vertonte Buch braucht nicht lange um den Höhrer in seinen Bann zu ziehen. Die Einführung in die Geschichte um den ehemaligen Forensiker David ist schön kurz und kompakt und hält nicht unnötig mit ellenlangen Vorgeschichten auf. Der Einstieg in die eigentliche Story gelingt...

Pseudocode

Hauptprogramm (Auszug):
  var doNext : number
  dummy := maxWert ( gewünschte suchTiefe )
  Zug doNext ausführen
function maxWert ( restTiefe ) returns number
var ermittelt, zugWert : number
begin
  ermittelt := - unendlich
  für alle möglichen Züge
    Zug simulieren
    if restTiefe <= 1 or keineFolgezügeMehrMöglich
    then zugWert := bewertungsFunktion
    else zugWert := minWert ( restTiefe - 1 )
    Zug-Simulation zurücksetzen
    if zugWert > ermittelt then begin
      ermittelt := zugWert
      doNext := nummer des Zuges  /* für das Hauptprogramm */
    end
  end
  return ermittelt
end maxWert
function minWert ( restTiefe ) returns number
var ermittelt, zugWert : number
begin
  ermittelt := + unendlich
  für alle möglichen Züge
    Zug simulieren
    if restTiefe <= 1 or keineFolgezügeMehrMöglich
    then zugWert := bewertungsFunktion
    else zugWert := maxWert ( restTiefe - 1 )
    Zug-Simulation zurücksetzen
    if zugWert < ermittelt then ermittelt := zugWert
  end
  return ermittelt
end minWert
Buch-Tipp: Die Mütter-Mafia. supertolles buch ich habe selten so gelacht, dieses buch ist so toll geschrieben, dass ich es gar nicht aus der hand legen konnte.

Variante: Der NegaMax Algorithmus

Um den Code zu vereinfachen und jeden Knoten des Suchbaumes gleich behandeln zu können, definiert man, dass jeder Spieler versucht, ein für sich selbst maximales Ergebnis, das heißt maximalen Wert der Bewertungsfunktion, zu erzielen. Dazu muss die Bewertung der Folgestellungen mit -1 multipliziert werden (Negation, daher der Name). Damit muss nicht mehr unterschieden werden, ob A oder B am Zug ist und daher das Maximum oder das Minimum berechnet werden muss, sondern es wird in jeder Stellung stets ca. das Maximum der negierten Bewertungen der Folgestellungen berechnet.





Weiteres zu dem Artikel Minimax-Algorithmus

Andere Leser interessierten sich auch für folgende Beschreibungen: Aufbau, Bewertung, Schach, Stelle, Suchbaum
Schnellzugrif auf verwandte Texte:
 
NEU! Frage im Forum zum Thema:
 
Wenn die Beschreibung 'Minimax-Algorithmus' Ihrer Meinung nach nicht korrekt ist oder in aktueller Version Fehler enthalten sind oder es fehlt die Minimax-Algorithmus Definition, dann klicken Sie bitte auf "Beschreibung bearbeiten" und schreiben Sie die Eigene Version des Textes. Die Änderungen in der Beschreibung werden sofort aktiv und für alle sichtbar. Ein Administrator wird Ihre Version der Beschreibung und Definition von 'Minimax-Algorithmus' nachher prüfen. Bitte achten Sie auf die Urheberrechte (Copyright). Wir sind für die besseren Beschreibung von 'Minimax-Algorithmus' und 'Minimax-Algorithmus' Definition sehr dankbar.

Alle Tipps zu den Bücher auf dieser Seite wurden automatisch generiert. D.h. die Bücher wurden aus einer Datenbank von dem Computer ausgesucht. Deshalb kann es vorkommen, dass vorgeschlagene Bücher nicht ganz der 'Minimax-Algorithmus' Beschreibung entsprechen.
· Diese Seite wurde bisher 1.210 mal abgerufen.
· Letzte Counteraktualisierung erfolgte am 17.05.2008 um 03:53:55
· Diese Seite wurde zuletzt geändert um 20:54, 20. Sep 2004.
· Letzte Portalaktualisierung erfolgte um 08:00:00 GMT, 25.02.2008
Dieser Artikel basiert auf dem Artikel Minimax-Algorithmus aus der freien Enzyklopädie Wikipedia und steht unter der GNU-Lizenz für freie Inhalte. In der Wikipedia ist eine Autorenauflistung verfügbar.

Von ""

· Diese Seite wurde bisher 1.210 mal abgerufen.
· Letzte Counteraktualisierung erfolgte am 17.05.2008 um 03:53:56
· Diese Seite wurde zuletzt geändert um 20:54, 20. Sep 2004.
· Letzte Portalaktualisierung erfolgte um 08:00:00 GMT, 25.02.2008