Könnt man eine selbst weiterentwickelnde Software schreiben?

  • Hallo
    Ich möchte mal wissten ob man ein Skript schreiben kann was sich selbst weiterenwickelt anhand meiner Angaben/ Verhalten. Ich möchte jetzt keinen ganzen Watson von IBM, der eine Art Supercomputer ist, gepostet bekommen :D, sondern eine Idee wie man soetwas machen könnnte oder sogar vlt ein paar Zeilen Au3 dazu.
    Mein Lösungsansatz wäre, dass wenn er eine Super-Verbesserung hat, sich mit verbesseretem Code neu compilt und ansonsten die neuen Infos in einer DB abspeichert.
    Wäre nett wenn ihr mir ein bisschen helfen könntet
    MfG AntiSpeed

    Nur keine Hektik - das Leben ist stressig genug

  • Ich kann dir vorab schonmal sagen, dass so etwas verdammt schwierig ist (je nachdem um was es geht)... Fang am Anfang lieber mit einer KI für irgendein einfaches Spiel wie TicTacToe an, die das Spielerverhalten anlysiert und sich so anpasst. Das ganze musst du dann noch in einer Datei oder so speichern.

  • Besser ist für micht nicht zu schnell und nicht zu langsam, nicht zu gründlich aber auch nicht gar nichts einlesen :D. Die Idee dahinter ist so ähnlich wie name22 postete, nur, dass ich nicht auf ein bestimmtes Spiel zurückgreifen möchte. Sondern einfach nur Wissen sammeln möchte. Das sollte dann zB so aussehen, dass er alle meine Eingaben analysiert und auswertet, dh. dass er zu 70% weiß wann ich Montags den PC anmache, was mich überhaupt interessiert und heit soetwas. Wenn der PC jetzt weiß: oha, den könnten um 70% Computer interessieren weil sich jede 1.2te Seite um Computer-Seiten handelt, dann könnte er mir zB auf dem Screen Computer News ausgeben. Das meine ich erstmal mit weiterentwickeln. Danach könnte ich dann ja das ganze noch weiterentwickeln.. :D, was aber bestimmt eine ganze Manschaft bräuchte. Schwachstellen im Programm könnten, dann ja noch analaysiert werden und verbesert werden :rolleyes: .

    Nur keine Hektik - das Leben ist stressig genug

  • Besser ist für micht nicht zu schnell und nicht zu langsam, nicht zu gründlich aber auch nicht gar nichts einlesen :D. Die Idee dahinter ist so ähnlich wie name22 postete, nur, dass ich nicht auf ein bestimmtes Spiel zurückgreifen möchte. Sondern einfach nur Wissen sammeln möchte. Das sollte dann zB so aussehen, dass er alle meine Eingaben analysiert und auswertet, dh. dass er zu 70% weiß wann ich Montags den PC anmache, was mich überhaupt interessiert und heit soetwas. Wenn der PC jetzt weiß: oha, den könnten um 70% Computer interessieren weil sich jede 1.2te Seite um Computer-Seiten handelt, dann könnte er mir zB auf dem Screen Computer News ausgeben. Das meine ich erstmal mit weiterentwickeln. Danach könnte ich dann ja das ganze noch weiterentwickeln.. :D, was aber bestimmt eine ganze Manschaft bräuchte. Schwachstellen im Programm könnten, dann ja noch analaysiert werden und verbesert werden :rolleyes: .


    Na dann mach ein Logfile mit deinen Aktivitäten und er errechnet Prozentual alle Dinge die du machst und startet einfach das mit dne höchsten Prozenten?

  • Nein, darum geht es mir ja nicht. Einfach nur so per LogFile wird das Ergebnis ziemlich schlecht. Wenn ich aber das so mache, wird das Erbebnis doch wohl anders/bessers sein, oder nicht?
    Edit: Das wichtigste vergessen :D :
    Das ganze soll dann praktisch automatisch ausgeführt werden. Also soll das Programm dann zB automatisch einen Editor öffnen oder sonstiges.

    Nur keine Hektik - das Leben ist stressig genug

    Einmal editiert, zuletzt von AntiSpeed (17. April 2011 um 18:56)

  • So weit weg von einer guten Idee ist die Logfile doch garnicht.

    Dein Programm soll doch ausschliesslich Gewohnheiten des Benutzers aufzeichenen, auswerten und auf eine vorgegebene Weise darauf reagieren. Wozu muss das Programm dann den eigenen Code modifizieren und neu kompilieren, wie im Startpost beschrieben?

    Der Weg über das Afzeichnen von vordefinierte Aktionen (starten von Browsern, Spielen, Anwendungen oder tägliches öfnen bestimmter Websites), deren Speicherung und eine regelmässige Auswertung der Warscheinlichkeit einer möglichen Aktion inerhalb eines festgelegten Zeitraums und deren Ausführung erfüllt doch genau den von dir gewünshten Zweck .?!

  • Schon. Aber ich fände es cool, wenn die Software selbst mitdenkt und nicht nur dumm ein bisschen analysiert. Vlt sogar Programmvorschläge bringen, die mich interesieren könnten oder so etwas. Nur ich weiß nicht wie man das mit dem mitdenken überhaupt einbinden kann!? Nj.. Schade

    Nur keine Hektik - das Leben ist stressig genug

  • Nur ich weiß nicht wie man das mit dem mitdenken überhaupt einbinden kann!? Nj.. Schade


    Na dann mach ein Logfile mit deinen Aktivitäten und er errechnet Prozentual alle Dinge die du machst und startet einfach das mit dne höchsten Prozenten?

    So weit weg von einer guten Idee ist die Logfile doch garnicht.

    Dein Programm soll doch ausschliesslich Gewohnheiten des Benutzers aufzeichenen, auswerten und auf eine vorgegebene Weise darauf reagieren. Wozu muss das Programm dann den eigenen Code modifizieren und neu kompilieren, wie im Startpost beschrieben?

    Der Weg über das Afzeichnen von vordefinierte Aktionen (starten von Browsern, Spielen, Anwendungen oder tägliches öfnen bestimmter Websites), deren Speicherung und eine regelmässige Auswertung der Warscheinlichkeit einer möglichen Aktion inerhalb eines festgelegten Zeitraums und deren Ausführung erfüllt doch genau den von dir gewünshten Zweck .?!

    Lies doch einfach was wir schreiben, du MUSST doch gar nicht alles neukompilieren! Er kann dir doch Programmvorschläge anbieten, und zwar genau so wie wir es beide bereits lang und breit beschrieben haben.
    Wenn du zu ignorant bist es auch nur ansatzweise zu verstehen, dann verwerf bitte dieses Thema komplett, weil so langsam kann ich es nicht mehr sehen, dass du nach Hilfe fragst, man gibt sie dir und du ignorierst sie gekonnt.

  • Ich würde das gesamte Wissen des Programms in einer SQL-Datenbank speichern. Z.B. könnte man anhand aller Daten des Vorgangs und des Ergebnisses einen Eintrag machen. Falls das Programm anschließend wieder in so eine ähnliche Lage kommt, wählt es den Eintrag, der am wahrscheinlichsten ist. Wenn allerdings kein Eintrag wahrscheinlich genug ist (< 7%), dann könnte es nach einem Zufahlssystem arbeiten. Somit wird durch Ausprobieren die Datenbank mit neuen Daten gefüllt.

  • was aber bestimmt eine ganze Manschaft bräuchte


    Also, ich wäre dabei... Wie das ganze dann letzten endes arbeiten soll, oder was das programm können soll, kann man dann ja auch nochmal im detail klären...

    Die Idee mit dem Analysieren auswerten und reagieren ist nämlich an für sich ziemlich cool

  • Hab auch schon ein paar mal über die Idee nachgedacht. Aber die Frage ist, ob man per Code überhaupt etwas selbst kompilieren kann? Gibt es dafür eine Klassenbibliothek oder soetwas? Mal ohne Einbezug von Logfiles, Datenbank usw

  • Also dass sich der code selber verbessert, wird wohl das schwierigste, aber das der code montags morgens umd 08:15 Uhr den Firefox startet, weil das der user immer so macht, wäre auf jeden fall programmierbar

  • Ich glaube, was du willst, ist "lernender Code". Der muss sich nicht zwangsläufig neu kompilieren, das "Wissen" kann auch aus ner Datenbank oder so stammen. Das meiste lernt man vielleicht, wenn man versucht (wie name22 schon anmerkte), ein lernendes Spiel zu schreiben.

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Klar wäre es ein "lernender" Code, wenn es gut gemacht wurde. Und klar könnte man eine Datenbank, logfiles usw einsetzen. Aber damit wäre das Programm trotzdem ziemlich begrenzt. Alles müsste mit if's gepürft werden. Aber jetzt sollte es z.B. eine ganz neue if Bedingung hinzugefügt werden.

    Müsste, um das zu erreichen, eine ganz neue Programmiersprache von Assembly(oder noch tiefer) aus erstellt werden?

  • Nicht mal, du kannst einfach alle Aktionen abfangen, indem du dich "zwischen Prozessor und Eingabe" stellst, Laienhaft formuliert, ich meine aber:
    Du fängst alle Eingaben ab, alles was der Nutzer macht, welcher Prozess, dann merkst du dir die Uhrzeit, dann merkst du dir die Zeit wie lange der Prozess offen war.
    z.B. ein Programm im AutoStart, das immer guckt welches Programm der Nutzer als erstes aufmacht.
    Beim nächsten Systemstart fragt es direkt nach "wollen sie * öffnen" oder so, verstehst du ?

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Ich verstehs :pinch: Aber es geht gar nicht NUR darum, ein Programm zu öffnen! Eine Datenbank für Statistiken müsste man sowieso erstellen