PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : KI In BASIC/BASCOM für ROBOTER



teslanikola
16.03.2005, 20:50
Hallo zusammen,
ist es eigentlich möglich eine KI in Basic / Bascom zu schreiben, finde es langsam langweilig wenn man schon weis robi als nächstes tut, so ne KI wäre doch ne prima abwechslung ( da ich leider nur Basic kann schränkt das die wahl der Programmiersprach für ne KI etwas ein ), stimmt das das ne KI nur in C++ geht oder läuft ne KI auch in Basic ( muss ja nicht gleich ne spitzen KI sein )
Gruß
teslanikola

Felix G
16.03.2005, 21:19
Naja, was verstehst du unter "KI" ?

Eine KI wie sie in den meisten Computerspielen realisiert ist dürfte deinen Anforderungen (Unvorhersehbarkeit) wohl nicht genügen,
da müsste dann schon ein Neuronales Netz her. (oder was vergleichbares)

PicNick
17.03.2005, 09:34
Hi :mrgreen: dieses Forum ist voll mit Threads von Leuten, deren Computer unvorhergesehende Dinge tun :mrgreen:
Offenbar ist das kein Problem.

Im Ernst: KI ist eine Methode /Programmstruktur, die hat eigentlich nix mit C++, Basic oder sonstwas zu tun. Denn das, was letztlich auf dem AVR läuft, sind immer genau die Befehle, die du im Kapitel:"instruction-set" im Datasheet findest. Was anderes kann der nicht.
Also rein ins Getümmel "Bascom goes AI" !
es hängt von dir ab

teslanikola
17.03.2005, 13:36
Also mal klartext: Ne KI macht eigentlich nix unvorhersebares, aber ein neurales Netzwerk, kann mir mal jamand erklären was das ist und ie man soetwas verwendet und Programmiert. Und was ist eigentlich ein Alogaritmus so was wie ne KI?
Gruß

Mobius
17.03.2005, 18:28
Also, lustig finde ich den roulett-KI (oder wie das Ding auch heißt):

Logik:
Du hast einen Zufallsgenerator, mit welchem du, sag ma, Zahlen von 1-30 generierst. Nun hast du drei Funktionen (vorwärts, links, rechts), die alle beim start des Roboters einen Buffer von 10 Units haben. D.h. Wenn der Generator eine Zahl zwischen 1 und 10 Rausspuckt wird funktion 1 (z.B.: fahr nach links) ausgeführt, bei 11-20 funktion 2, etc. Wenn nun dein Robbi gegen etwas fährt, ermittelst du, welches Funktion bei dieser Koli ausgeführt worden war und verringerst dessen buffer um 4 und addierst bei den anderen Funktion je 1 dazu (Bsp.: funktion 2 hatte den Kolli: 1-12: funktion1 . 13-18 funktion2, 19-30 funktion3). Danach lässt du den "Würfel" wieder rollen und ermittelst, was dein Roboter als nächstes tun sollte.

Rein von der Definition gesehen ist es eigentlich kein KI, doch weist so ein Roboter doch etwas auf, das ein wenig an ein "lernen" ähnelt. Und wenn du der Zufallsgenerator schöne Zahlen liefert ist der "intuition" des Roboters keine Grenzen gesetzt. Ansonsten kannst du noch einen Chaos-generator hineingeben, doch weiß ich leider keinen Algorithmus dafür.


nun zu deinen Fragen:

1) bei einem Neuralen Netz werden grob gesagt Verknüpfungen zwischen einer Input-Matrix und einer Action-Matrix gemacht. In µCs wird hierfür meist ein schon konditioniertes Netz (wo die Verknüpfungen schon aufgebaut sind) eingesetzt, da die Ressourcen zu wenige sind um ein gescheites Lernen herbeizuführen (nicht zu reden von der Ressorcen, die es verbrennt). Doch bei einem Unkonditionierten ist es möglich, dass der Robbi alleine "erlernt", was er bei einer Aktion tun sollte.
Ist nur ein grober Überriss. Ich hab hier auf dem Rechner ca. 5 MB auszüge aus Vorlesungen aus der Uni und ich habe vor Monaten auch eine gute Website darüber gefunden. (aber wenn ich erlich sein sollte, ich hab es einfach nicht gecheckt, wie es funktionieren sollte...)

2) Algorithmus hat nichts (nucku, null, niet, etc) mit einem KI zu tun. Das was ich dir oben beschrieben habe ist z.B. ein Algorithmus. Also die Logik, wie man ein Problem löst.