AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

KI

Offene Frage von "Seamann"
Ein Thema von Seamann · begonnen am 22. Okt 2009 · letzter Beitrag vom 24. Okt 2009
Antwort Antwort
Seite 1 von 2  1 2      
Seamann

Registriert seit: 22. Okt 2009
Ort: Baindt
6 Beiträge
 
#1

KI

  Alt 22. Okt 2009, 21:43
Hallo an alle,

ich halte in unserem Informatikkurs ein Referat über künstliche Intelligenz.
Ist ja ein sehr interessantes Thema, aber doch arg theorielastig.

Jetzt wollt ich fragen, ob es die Möglichkeit gibt eine "kleine" KI (muss nicht viel können, nur um ein bisschen zu zeigen wie das in der Praxis aussehen kann) zu programmieren.
Hab schon gedacht vl was in richtung Tic Tac Toe gegen den Computer.
Das ganze soll das Referat nur ein bisschen "aufpeppen" und als Hinführung dienen. Ich erwart gar nicht dass ich da eine mords KI hinbekomme (weiß ja nicht was für ein Ausmaß sowas animmt)
Allerdings fehlt mir noch der Ansatz, um über das Programmieren nachzudenken (Wie genau funktioniert eine KI, vl ja sogar ein Beispiel ).

Kennt jemand Lektüre wo man sich ein bisschen mehr in das Thema einlesen kann (im optimal Fall sogar gleich für Delphi) oder vl hat ja auch jemand hier eigene Erfahrungen die mir weiterhelfen könnten.
  Mit Zitat antworten Zitat
Torpedo

Registriert seit: 21. Dez 2003
410 Beiträge
 
#2

Re: KI

  Alt 22. Okt 2009, 21:49
Das könnte dich interessieren:
http://de.wikipedia.org/wiki/Neuronales_Netz

Zu dem Thema gibt es auch hier in der DP einiges (auch Beispielprojekte)
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#3

Re: KI

  Alt 22. Okt 2009, 22:56
Es gibt recht gute Beispiele für TicTacToe-KIs. Man kann auch eine "einfache" KI dafür über einen endlichen Automaten realisieren (Stichworte: DFA, endlicher deterministischer Automat). Wikipedia ist da zwar formal korrekt, aber für den Einstieg undankbar. Manche Unis bieten auch von Vorlesungen Videos (z.B. RWTH Aachen, http://videoag.fsmpi.rwth-aachen.de/?course=09ss-fosap . Leider scheinbar nicht alle öffentlich verfügbar).
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#4

Re: KI

  Alt 22. Okt 2009, 22:59
Hi!

KI ist ja nun ein äußerst weites Feld - in welche Richtung willst du denn konkret gehen?


Grüße, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von mleyen
mleyen

Registriert seit: 10. Aug 2007
609 Beiträge
 
FreePascal / Lazarus
 
#5

Re: KI

  Alt 22. Okt 2009, 23:05
Man sollte sich ersteinmal fragen, wie man "künstliche Intelligenz" definiert.

Dabei kann man z.B. von fest definierten Aufgaben ausgehen, oder auch von 'lernenden' Fähigkeiten.
Z.B. das Neuronale Netz: Hier wird ein undefinierter Ausgangspunkt mehr und mehr beschrieben, bzw es wird gelernt, wie es etwas handzuhaben ist.

Andererseits sprechen viele von KI bei z.B. einem (wie in deinem Beispiel) TicTacToe-Bot.
Dieser Bot kann so programmiert werden, dass er genau ausrechnen kann, wo er hinklicken muss um am wahrscheinlichsten zu gewinnen, bzw. um nicht verlieren zu können.

Ich behaupte mal das es reicht, die 'fest definierte'-KI zu beschreiben.
Diese würde sich in deinem Fall für jedes freie Feld eine Priorität errechnen, wie sinnvoll es wäre dort das X zu setzen.
Der Bot entscheidet sich dann später für das Feld mit der höchsten Priorität.
  Mit Zitat antworten Zitat
Seamann

Registriert seit: 22. Okt 2009
Ort: Baindt
6 Beiträge
 
#6

Re: KI

  Alt 22. Okt 2009, 23:15
@Torpedo: naja, neuronales Netz wird doch eher was für den theoretischen teil sein.

@codewalker: super, werd ich mich morgen gleich mal in der richtung umschaun.

@fkerber: kommt drauf an was du meinst. theoretisch werd ich halt auf technik, momentaner stand, möglichkeiten, usw eingehen (bin erst am informieren...hab noch nix zusammengeschrieben, da das referat ja erst im dez oder so fällig ist). praktisch bin ich offen für alles. es sollte halt für mich (und meinen klassenkameraden) verständlich sein.
Im grunde will ich einfach auch ein bisschen was praktisches zeigen, weil nur 30 min gelaber über theorie is doch bissel langweilig (sowohl zu halten, als auch zum zuhören )
Das mit dem tic tac Toe war nur ma son Gehirnfurz von mir, weil ich das halt grad programmiert habe. Also wenn du andere Ideen hast woran man eine Ki vorführen könnte...gerne

@mleyen:
Zitat:
Diese würde sich in deinem Fall für jedes freie Feld eine Priorität errechnen, wie sinnvoll es wäre dort das X zu setzen.
Der Bot entscheidet sich dann später für das Feld mit der höchsten Priorität.
wie erechne ich wie sinnvoll es ist in ein feld zu setzen? spontan würde ich da mit IF´s vorgehen, aber da muss es doch noch eine andere alternative geben, oder?
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#7

Re: KI

  Alt 22. Okt 2009, 23:23
Hi!

Erstmal noch: Herzlich willkommen in der DP


Ich denke, du hast meine Frage noch nicht ganz verstanden:
Das Problem ist (in meinen Augen): es gibt nicht "KI" als Thema, sondern KI ist ein Überbegriff der imho zu groß gewählt ist, um darüber ein sinnvolles Referat halten zu können. Du solltest dich daher meiner Meinung nach auf ein Gebiet der KI beschränken, um darüber dann ein ein spezielleres aber auch fundierteres Referat halten zu können. Als Anregung mal ein paar Themen, die man unter dem Begriff KI zusammenfassen kann: Bilderkennung, Bewegungserkennung in bewegten Bildern, Plangenerierung, neuronale Netze, Robotik, Baysian Networks, Vererbungsnetze, Graphensuche, Reason-Maintenance-Systeme...


Grüße, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von mleyen
mleyen

Registriert seit: 10. Aug 2007
609 Beiträge
 
FreePascal / Lazarus
 
#8

Re: KI

  Alt 22. Okt 2009, 23:34
Zitat von Seamann:
wie erechne ich wie sinnvoll es ist in ein feld zu setzen?
Das kann man auf verschiedenste Weisen angehen.
Ich habs damals in einem ähnlichem Fall wiefolgt gemacht:

Zuvor habe ich jegliche Aktion, auf die der Bot später prüfen soll, im voraus definiert.
Dabei habe ich jeglicher Aktion einen Prioritätsfaktor zugewiesen.
ZB "sterb ich im nächsten Zug, wenn ich in diesem Feld setze?" Falls ja, dann setzte Priorität = Minimum , oder "Wieviele Möglichkeiten zu gewinnen hab ich noch, nachdem ich in diesem Feld gesetzt habe?" Bei 3 setze Priorität+30 | etc etc...)

So hangel ich mich durch alle Möglichen Aktionen und Einflussfaktoren des Spiels durch.

Das beste aber an der Geschichte ist:
Ich kann dem Bot eine dynamisch starke K.I. einstellen.
Wie?
Bei zB einem perfektem Bot nimmt der immer das Feld mit der höchsten Priorität.
Bei einer mittelstarken KI, lässt der Bot zufällig eines der Felder zu, welches 17% weniger Priorität hat als das maximale Feld.

Das war jetzt wirklich nur ein ganz grober Aufbau meiner damaligen Vorgehensweise, und ich hoffe jetzt nicht den Thread in ein anderes Thema zu ziehen.

Btw: Herzlich willkommen in der DP.
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#9

Re: KI

  Alt 22. Okt 2009, 23:55
Hi!

Ein allgemeines Vorgehen wäre, sich eine Bewertungsfunktion zu überlegen, die in etwa folgendes macht:
Für eine gegebene Spielfeldsituation wird eine Zahl errechnet - je besser die Situation für einen selbst ist, desto größer ist die Zahl. Für das TicTacToe-Spiel kannst du dann jeweils die drei Felder, die beim nächsten Zug entstehen könnten, bewerten lassen und das mit der besten Bewertung nehmen.

Eine mögliche Bewertungsfunktion wäre z.B. die Anzahl Spalten + Anzahl Zeilen + Anzahl Diagonalen, in denen X noch gewinnen kann (die also nur X und frei enthalten) - (Anzahl Spalten + Anzahl Zeilen + Anzahl Diagonalen, in denen O noch gewinnen kann (die also nur O und frei enthalten)) - unter der Annahme, dass du selbst X bist.



Grüße, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
23. Okt 2009, 04:21
Dieses Thema wurde von "Luckie" von "Sonstige Fragen zu Delphi" nach "Programmieren allgemein" verschoben.
hat nichts mit Delphi direkt zu tun.
Antwort Antwort
Seite 1 von 2  1 2      


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 17:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz