AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

KI Projekt

Ein Thema von mb1996 · begonnen am 27. Okt 2011 · letzter Beitrag vom 27. Okt 2011
Antwort Antwort
Seite 4 von 5   « Erste     234 5   
mb1996

Registriert seit: 30. Dez 2009
243 Beiträge
 
Delphi 2009 Professional
 
#31

AW: KI Projekt

  Alt 27. Okt 2011, 14:58
Und wie mache ich das, dass das Programm entscheidet?
Das ist nämlich die Frage. Ein Punktesystem wurde schon genannt. Doch, wie soll ich das auf das Programm anwenden? Auf TTT
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#32

AW: KI Projekt

  Alt 27. Okt 2011, 15:03
KI ist auch ein bisschen Definitionssache. Imo ist alles „künstliche Intelligenz“, was sich (scheinbar) intelligent verhält. Das heißt, im Grunde kannst du es machen wie du willst, aber du wirst feststellen, dass es sehr unübersichtlich wird, wenn du alles hardcodest. Deshalb macht das auch niemand, wirklich niemand. Bei Tic-Tac-Toe mag es gerade noch gehen, aber schon bei 4-Gewinnt wird es unmöglich sein, jeden Spezialfall vorherzusehen und zu behandeln.

Weil Pathfinding vorhin schon genannt wurde: Im Grunde ist auch die Spiel-KI selbst nichts anderes. Es kommen letztlich die gleichen Algorithmen zum Einsatz wie in Navigationssystemen und Co., nur dass die Knoten nicht irgendwelche Straßen-Kreuzungen sind, sondern die möglichen Spielzüge, und nicht die Distanz zum Zielort ausschlaggebend ist, sondern die „Bewertung“ des Spielstandes (die bei komplexen spielen immer eine Heuristik ist, da man Spiele wie Schach nicht bis zum Ende durchrechnen kann).

Wenn du wirklich was in der Richtung machen willst, würde ich mir daher erst mal Pathfinding anschauen, und dann im nächsten Schritt überlegen, wie ich das auf eine Spiel-KI übertragen kann. Du wirst im Netz viele Quellcodes finden, die mittels Backtracking den Weg aus einem Labyrinth finden – dass wäre ein guter Einstieg. Auch den Pathfinding-Algorithmus A* (Sprich: „A-Star“) würde ich mir mal anschauen, weil er relativ leicht zu verstehen ist und man ihn – wenn man ihn verstanden hat – leicht auf seine eigenen Bedürfnisse anpassen kann. Der Wikipedia-Artikel dazu ist recht anschaulich.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.674 Beiträge
 
Delphi 2007 Enterprise
 
#33

AW: KI Projekt

  Alt 27. Okt 2011, 15:05
Zum Aufbau des Baumes musst du nichts abschätzen, er ist gerade die Basis dafür. Der Baum enthält alle möglichen Spielstände, strukturiert nach Zügen, also in der Reihenfolge, in der sie auftauchen. Die Idee dahinter ist es, dass man dann auch sämtliche möglichen Ausgänge einer Runde hat, die sehr einfach zu bewerten sind: Gewonnen, veloren oder unentschieden. Somit kann man dann von den Blättern des Baumes (Spielendsituationen) aufwärts die "Qualität" der Spielzüge (die Kanten im Baum) durchziehen. Damit weiss die KI dann in jeder vorkommenden Spielsituation, welcher nächste Zug am wahrscheinlichsten zum eigenen Sieg führt.
Das Problem bei komplexeren Spielen als z.B. TTT ist, dass es oftmals nicht möglich oder praktikabel ist alle möglichen Spielsituationen im Voraus zu berechnen (bzw. zu puffern), so dass man in die Verlegenheit kommt Nicht-Endsituationen bewerten können zu müssen, was je nach Spiel ziemlich knobelig ist, und ggf. eine ganze Latte weiterer Algorithmen braucht, die wieder vom Spiel abhängen.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
mb1996

Registriert seit: 30. Dez 2009
243 Beiträge
 
Delphi 2009 Professional
 
#34

AW: KI Projekt

  Alt 27. Okt 2011, 15:07
Danke, ich werde mir das angucken
  Mit Zitat antworten Zitat
mb1996

Registriert seit: 30. Dez 2009
243 Beiträge
 
Delphi 2009 Professional
 
#35

AW: KI Projekt

  Alt 27. Okt 2011, 15:19
Ich hatte mir sowas vor einer Zeit mal auf DelphiGL angeguckt. Und so eine Pathmap sollte man dann auch auf Spiele anwenden hier. Dann müsste man nach jeden Zug eine Pathmap erzeugen. Und wenn ich eine ,,gute KI" haben möchte, dann muss ich für die nächsten Züge eine Pathmap erzeugen, um den Spieler zu berechen.

Dann muss ich nur noch herausfinden, wie ich so eine Pathmap dynamisch erstellen.
  Mit Zitat antworten Zitat
mb1996

Registriert seit: 30. Dez 2009
243 Beiträge
 
Delphi 2009 Professional
 
#36

AW: KI Projekt

  Alt 27. Okt 2011, 15:48
Ich versuche gerade eine Möglichkeit zu finden, eine Pathmap zu erstellen. Und komme da leider nicht weiter. Der Computer muss ja verstehenm, was richtig und was falsch ist und danach Punkte geben. Und das Programm handelt so, dass es möglichst viele Punkte bekommt.

Ich stelle mir das erstellen so vor:

Wenn zum Beipiel:

Spieler: X
KI: O

XX-
--O
---

Wenn der Spieler zwei in einer dreier Reihe hat und nur noch einer fehlt dann soll dieses Feld von der KI blokiert werden.
Pathmap:
//wenn ein Feld besetzt ist, dann ist der Wert -2, da darf die KI nicht rauf

-2|-2| 1
0| 0|-2
0| 0| 0

//Die KI will mehr Punkte und setzt bei 1 den O

X|X|O
-|-|O
-|-|-

//Der Spieler passt gerade nicht auf und macht einen Fehler
X|X|O
X|-|O
-|-|-

Das Programm generiert eine Pathmap

-2|-2|-2|
-2| 0|-2|
0| 0|+1|

//Die KI möchte mehr Punkte und setzt bei +1 einen Kreis.

So jetzt bin ich gerade dabei, eine Prozedure zu schreiben, die mit hilfe von IF eine Pathmap generiert.
Soll ich das einfach mal so ähnlich machen? Also wenn zum Beispiel X|X|- dann soll beim Minus +1 stehen?
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.717 Beiträge
 
Delphi 6 Enterprise
 
#37

AW: KI Projekt

  Alt 27. Okt 2011, 15:58
Das letzte Beispiel ist aber falsch, da das Verhindern dea gegnerischen Dreiers auch die Prio 1 hat. Siegen müsste also eine höhere Prio haben, vllt. so:

Siegen: 4
Dreier verhindern: 3
Zwickmühle aufbauen: 2
Zweier aufbauen: 1
Irgendwas: 0
Besetzt: -1
Ralph
  Mit Zitat antworten Zitat
mb1996

Registriert seit: 30. Dez 2009
243 Beiträge
 
Delphi 2009 Professional
 
#38

AW: KI Projekt

  Alt 27. Okt 2011, 16:11
Ich fange erstmal an, dass sich das Programm (nur) verteidigt und es zum unentscheiden bringt
  Mit Zitat antworten Zitat
mb1996

Registriert seit: 30. Dez 2009
243 Beiträge
 
Delphi 2009 Professional
 
#39

AW: KI Projekt

  Alt 27. Okt 2011, 16:57
Wenn es interessiert:
Habe jetzt die Verteidiung und baue gerade an dem Angriff
Nur ich arbeite nicht mit punkten, sondern mit taktischen Entscheidungen.
  Mit Zitat antworten Zitat
mb1996

Registriert seit: 30. Dez 2009
243 Beiträge
 
Delphi 2009 Professional
 
#40

AW: KI Projekt

  Alt 27. Okt 2011, 21:42
(Nur mal nebenbei)
Was haltet ihr von den neuen Super Roboter aus Tokyo. Der Roboter der lernt. Glaubt ihr, dass der Roboter eine gute Erfindung war? Oder glaubt ihr er nimmt den Menschen die Jobs weg. Zum Beispiel lernt er mit Delphi/C++ zu arbeiten und nimmt den ganzen Programmierern den Job weg
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf