Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Evolution auf dem Computer

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
qbay



Anmeldungsdatum: 08.06.2008
Beiträge: 84

BeitragVerfasst am: 25.06.2009, 11:53    Titel: Evolution auf dem Computer Antworten mit Zitat

hallo leute
ich hab mal wieder eine frage

ich habe mal in einem magazin gelesen das jemand ein programm geschrieben hat in dem das Darwinsche Prinzip der Evolution simuliert worden ist.
also in dem Programm wurden kleine "Bakterien" erschaffen die sich dann fortpflanzten und ihren code dabei immer etwas veränderten.
so das die Bakterien irgentwann sich aus dem Programm heraus entwickelten und auf dem rechner des Programmiers unsinn trieben.

meine frage nun
wie könnte so ein Programm in Freebasic aussehen??
hat das vielleicht schonmal ener von euch programmiert?

gruss grinsen ich freu mich schon auf eure antworten
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jensma



Anmeldungsdatum: 16.05.2005
Beiträge: 85
Wohnort: Gleich neben Frankfurt, zwei Zimmer neben Lloyd!

BeitragVerfasst am: 25.06.2009, 12:42    Titel: Antworten mit Zitat

Ein paar Spielerein zur Evolution:
http://members.shaw.ca/omjhooge/VB/Evolve/progevolve.htm

Allerdings keine Bakterien oder soetwas in der Art... ich erinnere mich, dass ich mal einen Screensaver hatte, indem sich Bakterien bekämpft haben. Stärkere konnten dann ihre Merkmale fortpflanzen.
Wiederfinden konnte ich den nicht, ist auch sicherlich schon 'ne Dekade her lächeln

Ansonsten, wie es in Freebasic aussehen würde: Jede Menge Types.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 25.06.2009, 13:02    Titel: Antworten mit Zitat

John Conway's Game of Life !

Mein Spezialgebiet grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jensma



Anmeldungsdatum: 16.05.2005
Beiträge: 85
Wohnort: Gleich neben Frankfurt, zwei Zimmer neben Lloyd!

BeitragVerfasst am: 25.06.2009, 13:07    Titel: Antworten mit Zitat

OneCypher hat Folgendes geschrieben:
John Conway's Game of Life !

Mein Spezialgebiet grinsen


Daran habe ich auch zunächst gedacht; allerdings hat Conway nichts mit Darwin zu tun... traurig
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 25.06.2009, 13:31    Titel: Antworten mit Zitat

Ach wirklich nicht? ... Sterben und überleben die Strukturen nicht? .. klar, sie reproduzieren sich meistens nicht.. aber auch dafür gibts beispiele. Ein klassisches fortpflanzen->anpassen->fortpflanzen->anpassen ... gibts dabei nicht.. aber immerhin bekommt man einen eindruck von dem was überlebt und was nicht... wie haralsch lesch mal sagte: Es gibt keine fliegenden Elefanten, denn, wenn es sie mal gegeben hatte, wären sie abgestürzt und wären ausgestorben.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
tim.vogt



Anmeldungsdatum: 01.03.2009
Beiträge: 56

BeitragVerfasst am: 25.06.2009, 16:14    Titel: Re: Evolution auf dem Computer Antworten mit Zitat

qbay hat Folgendes geschrieben:

ich habe mal in einem magazin gelesen das jemand ein programm geschrieben hat in dem das Darwinsche Prinzip der Evolution simuliert worden ist.
also in dem Programm wurden kleine "Bakterien" erschaffen die sich dann fortpflanzten und ihren code dabei immer etwas veränderten.
so das die Bakterien irgentwann sich aus dem Programm heraus entwickelten und auf dem rechner des Programmiers unsinn trieben.


Mhh... die sich weiterentwickelten und auf dem Rechner des Programmieres Unsinn trieben? Dürfte schwer machbar sein, wenn überhaupt nicht realisierbar, da der Unsinn maximal sinnlose Zufallshandlungen sein könnten. Selbst das weiterentwickeln dürfte problematisch werden... zufällige Veränderung eines Codes um eine Veränderung hervorzurufen? Also den Quellcode öffnen (nebenbei müsste der in jeder Bakterie nochmal vorliegen), zufällig verändern, und kompillieren und automatisch starten, die alte Datei löschen?
_________________
"Nichts ist wahrhaftig und alles ist erlaubt."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 25.06.2009, 17:20    Titel: Antworten mit Zitat

GANZ so schwer is das nicht wie man sich vorstellen mag. Das Prinzip ist sogar relativ einfach. Das problem liegt eher darin das Programm entsprechend zu designen (Sub / Func aufbau). Man kan nicht einfach ne routine schreiben, die "vermehre mich" heist, oder sowas. Hinzu kommt, das man sich intensiv mit "Strukturierter InSystem Modifikaation" und "Laufzeit Übersetzung und Interpretation" auskennen sollte. Da solche Techniken jedoch NOCH Brisanter sind, wie mein letztes Projekt (HiddenData) werd ich mich mal nur auf die Theoretische Beschreibung beziehen.

Als guter Ansatzpunkt zum Verständniss der Modifizierung von Quellcode zur Laufzeit findet man bei AVR Prozessoren. Viele Typen unterstützen die Modifizierung von Qullcode zur Laufzeit. Hier kann man erste erfahrungen sammeln, was dies betrifft.

Was die Evolotion angeht .. Hier kann man sich mal unter dem Thema "Evolotionärer Algorythmuss" (Hab auch erst kürzlich diese Bezeichnung erfahren) Informieren. Sie besschreibt auf den ersten Blick wohl eher Biogenetik, ist jedoch auch in die Computertechnik übersetzbar. Die 3 Grundprinzipien der Mutation, Auslese und Optimierung finden auch in deinem "Bakterien-Projekt" Verwendung.

Was uns zum 3ten Ansatzpunkt bringt. Du Musst also dein program so designen, das es fehig ist neuen Quellcode zu erzeugen, Passende "Funktionen" auswählen und diese optimieren und in das bestehende System einbauen.

Hast du wirklich vor, sowas mal zu coden, dann kannst du dich bei der Entwicklung erstmal auf optimierung von Dynamischen Speicherbereichen und Zugriffsmethoden beschränken. Das verhindert auch im ersten Schritt zugriffe auf die Festplatte und dessen Löschung.

Damit das auch nciht auser rand und band läuft, solltest du in deine Implementierungsfunktion neuer einzupflegender Quellcodeelemente Virenscanner ähnliche suchmethoden verwenden um nach schädlichen Programmteilen zu suchen (Heuristik). Dabei suchst du im grunde nur nach einfachen Kommandos wie "Kill, Open, Put, usw.". Finden sich solche Kommandos dann kannst du bei Speicheroptimierungsprozessen davon ausgehen, das die Mutation des Codes wohl in die falsche richtung, bzw in eine Richtung geht, die gefährlich für dein System wirken kann.

Als Vorsichtsmassnahme ist auserdem zu empfehlen ein Computer zu nutzen, den du relativ schnell neu aufsetzen kannst (SSD Platte), da solche Methoden sehr schnell zu Systemschäden führen.
Aber, solche "Erstexperimente" sind hier auf einem AVR sinvoller, da sie deutlich schneller zu Flashen sind, und Preis-Leistnustechnisch vollkommen ausreichen.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
tim.vogt



Anmeldungsdatum: 01.03.2009
Beiträge: 56

BeitragVerfasst am: 25.06.2009, 18:08    Titel: Antworten mit Zitat

ThePuppetMaster hat Folgendes geschrieben:
GANZ so schwer is das nicht wie man sich vorstellen mag.


Na... eine sinnvolle Modifikation an einem Programm vorzunehmen, so dass es eigenständig handelt und "so das die Bakterien irgentwann sich aus dem Programm heraus entwickelten und auf dem rechner des Programmiers unsinn trieben" ist nicht machbar. Jedenfalls nicht mit evolutionärer Entwicklung. Man könnte ja dem Programm mögliche Entwicklunsweisen geben und schauen, welche genommen wird.
_________________
"Nichts ist wahrhaftig und alles ist erlaubt."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 25.06.2009, 18:22    Titel: Antworten mit Zitat

tim.vogt hat Folgendes geschrieben:
Na... eine sinnvolle Modifikation an einem Programm vorzunehmen, so dass es eigenständig handelt und "so das die Bakterien irgentwann sich aus dem Programm heraus entwickelten und auf dem rechner des Programmiers unsinn trieben" ist nicht machbar.

Warum nicht? .. Ein Programm ist im eigentlichen nur eine Liste von befehlen, die das Programm selbst auch bearbeiten udn abändern kann.
tim.vogt hat Folgendes geschrieben:
Jedenfalls nicht mit evolutionärer Entwicklung.

Gerade damit, da diese Technik viel Potenzial hat, was die strukturierung von Mutation (Dynamische und Chaotische Kombination), Auswahl (suche nach geeigneten Codes, welche hohes potenzial zur umsetzung der geforderten aufgaben haben) und Kombination (Integierung in bestehende Programm-"Liste") betrifft.
tim.vogt hat Folgendes geschrieben:
Man könnte ja dem Programm mögliche Entwicklunsweisen geben und schauen, welche genommen wird.

Das ist die einfachste Variante, und die wohl unevolotionärste.

Sieht man sich einmal den Genetischen Verlauf von "Versuch und Irtum" bzw. im Biologischen Sinne von "Mutation udn Überleben" an, erkennt man eigentlich schnell, das es im grunde nur eine Überlebensstrategie ist. Im eigentlichen sinne ist Evolution nichts anderes als eine variable abänderung bestehender Beschreibungslisten, die bei hohem potenzial automatisch länger bestehen als varianten zuvor.

Das Problem bei de umsetzung in ein Computerprogramm ist im grunde nur die "überlebensfehigkeit" zu "definieren", bzw zu "erkennen".


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 25.06.2009, 18:27    Titel: Antworten mit Zitat

Und wenn du ganz auf nummer sicher gehen willst, geb den "Bakterien" eine auswahl von funktionen / befehlen vor die sie nutzen dürfen um sich zu optimieren. Damit begrenzt du zwar die Evolution, aber du verhinderst das sich viren entwickeln.

Auch die Speicherbelegung der Bakterien solltest du begrenzen, bzw eine bakterie entwickeln die andere mit zu großen speicherbedarf "frisst", um bei evolution zu bleiben.
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 25.06.2009, 18:50    Titel: Antworten mit Zitat

Das entspricht aber nicht wirklich dem Begriff Evolution... Wenn ein Parameter nicht passt, überleben die Dinger normalerweise eh nicht.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 25.06.2009, 19:09    Titel: Antworten mit Zitat

Dann bleibt wohl nix anderes übrig als das auch nem extra system oder in ner sandbox / nem chroot zu machen...
wollte nur vorschläge machen.
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
tim.vogt



Anmeldungsdatum: 01.03.2009
Beiträge: 56

BeitragVerfasst am: 25.06.2009, 19:49    Titel: Antworten mit Zitat

Zitat:
Warum nicht? .. Ein Programm ist im eigentlichen nur eine Liste von befehlen, die das Programm selbst auch bearbeiten udn abändern kann.


Da steht: sich aus dem Programm heraus entwickeln.
_________________
"Nichts ist wahrhaftig und alles ist erlaubt."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
jensma



Anmeldungsdatum: 16.05.2005
Beiträge: 85
Wohnort: Gleich neben Frankfurt, zwei Zimmer neben Lloyd!

BeitragVerfasst am: 25.06.2009, 20:18    Titel: Antworten mit Zitat

tim.vogt hat Folgendes geschrieben:
Zitat:
Warum nicht? .. Ein Programm ist im eigentlichen nur eine Liste von befehlen, die das Programm selbst auch bearbeiten udn abändern kann.


Da steht: sich aus dem Programm heraus entwickeln.


Uff,... das klingt ja verrückt. Unsinn treiben hört sich für mich nach einem schadhaften Verhalten an. Also denkst du an intelligente Computerviren, die sich an die Gegebenheiten des Systems anpassen, eine Verbreitungsmethode suchen und diese beim nächsten Infekt wieder erneut probieren?
Hui.. für solche Sachen bin ich nicht zu haben.. oder hab ich was falsch verstanden?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 25.06.2009, 20:33    Titel: Antworten mit Zitat

Wieso sollte es sich nicth "herausentwickeln" können? .. wie schon zuvor gesagt ist es nur eien liste von befehlen ... wenn ein befehl sagt, "kopie rmich", is das schon ein klonen .. bzw zellteilung. ... wenn man beim kopiervorgang noch etwas mutation einbaut, is das schon quasi evolution.

und, ich muss jojo voll zustimmen.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 25.06.2009, 21:13    Titel: Antworten mit Zitat

jensma hat Folgendes geschrieben:
Uff,... das klingt ja verrückt. Unsinn treiben hört sich für mich nach einem schadhaften Verhalten an. Also denkst du an intelligente Computerviren, die sich an die Gegebenheiten des Systems anpassen, eine Verbreitungsmethode suchen und diese beim nächsten Infekt wieder erneut probieren?
Hui.. für solche Sachen bin ich nicht zu haben.. oder hab ich was falsch verstanden?


Wenn man den gedanken ein bisschen weiter spinnt endet man da, wo "Ghost in the Shell" Anfängt: bei einer Hackenden KI.
Naja, weg vom Sci-Fi zur wirklichkeit:
Nen Groß-experiment mit nem in sich geschlossenem netzwerk auf windows-hosts und nen paar von solchen virtuellen Bakterien wäre sicher interessant zu beobachten. Einmal ob und wie sich die codes entwickeln und ob sie sich auf "unbewohnte" computer per netzwerk verbreiten (und wie).
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 26.06.2009, 12:07    Titel: Antworten mit Zitat

Gibts sowas wie ne Fork-Bombe in FB? Angeblich gibts sowas ja in jeder Sprache... Ist auch evolution wenn mein PC dann noch funktioniert oder? XD
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 26.06.2009, 15:16    Titel: Antworten mit Zitat

Forkbombe: Prozess der sich in einer endlos-schleife immer wieder selbst startet. Sowas kann man auch in FB machen. Sogar mit bash und batch geht das.
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 27.06.2009, 23:54    Titel: Antworten mit Zitat

Dank WE hab ich mich mal hin gehockt und n bissi was zusammen geschrieben.
http://www.freebasic-portal.de/index.php?s=fbporticula&mode=show&id=859

Das Evolutionäre Ziel dieses Systems ist das auffinden einer zuvor zufällig generierten Anzahl zufälliger Zahlen.
Der Code ist nicht bis ins detail ebschrieben, führt dokumentarisch jedoch auf die techniken hin.
Es gibt bei der Mutation 3 Varianten. Die erste ist eine Zufällige varianz der anzahl und werte von zahlen. Zweitere ist die reguläre Evolutionäre variante die sich anhand von bestehenden genomen in einem gewissen mutationsfehigem bereich bewegt und die optimierte, welche sich ausschliesslich auf die minimalsten parameter der mutation bezieht.

Für einige sieht das wohl nicht nach Evolution aus, jedoch darf man nicht vergessen, das ein klar definiertes ziel existiert, das programm eine extrem kleine aufgabe hat, die variationsmöglichkeiten massiv eingeschränkt wurde und somit der gesammte Lebenszyklus durchgerechnet werden kann.
Würde man die fehigkeiten auf andere bereiche erweitern, müsste man einige änderungen bei der mutation, selektion und optimierung vornehmen. bzw. diese entsprechend dem neuen evolutionärem ziel anpassen.

abgesehen davon, soll das nur n kleines beispiel sein.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]


Zuletzt bearbeitet von ThePuppetMaster am 28.06.2009, 10:26, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
qbay



Anmeldungsdatum: 08.06.2008
Beiträge: 84

BeitragVerfasst am: 28.06.2009, 00:05    Titel: Antworten mit Zitat

hey leute vielen dank erstmal für die vielen antworten
ich verstehe schon das dies doch ein wenig kompliziert ist
aber ich werde natürlich trotzdem versuchen so ein programm zu schreiben bis ich es dann habe

und tut mir leid wenn meine ausdrucksweise für verwirrung gesorgt hat
so habe ich es ja nur gelesen
allerdings war das aus einem rein wissenschaftlichen magazin und nich aus der "c´t" oder so

vielen dank nochmals:D
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz