Anzeige
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Komplexität steigern

  1. #1
    Registriert seit
    09.05.2006
    Ort
    Thüringen
    Beiträge
    750

    Standard Komplexität steigern

    Anzeige
    Hallo,
    angenommen ich hätte ein beliebiges Programm (Simulation) in der sich Objekte selbstständig weiterentwickeln können.
    In der realen Welt ist es ja so, dass irgendwann die Komplexität immer weiter zugenommen hat.
    Welche Eigenschaften müsste ein Programm haben, damit es genug Spielraum bietet, dass sich eigene Komplexität entwickelt? Vor allem soll es nicht so sein, dass sich die Objekte immer nur an die Welt anpassen, sondern an sich gegenseitig. So dass sich nach jedem kompletten Neustart eine andere Welt entwickelt, also quasi unvorhersehbar.
    Wie komplex müsste das Programm selbst sein? Reichen ganz einfache Randbedingungen, oder muss es bspw. ein Periodensystem mit 100 Elementen geben?
    Wie könnten konkrete Randbedingungen aussehen? Es geht nicht darum unsere Physik nachzubilden, sondern nur darum dass sich etwas Komplexes entwickeln kann.

    Meine Ideen wären:
    - Objekte entstehen aus Genen. Reproduktion mit Mutation, so dass ein Zufallselement eingebracht wird.
    - natürliche Selektion (aus den Umweltbedingungen heraus), also keine Selektion durch Programmierer. Diese Umweltbedingungen sollen flexibel sein bzw erst in der Simulation selbst entstehen
    - es sollte wohl eine Art Raum geben (2D oder 3D oder sogar höher? oder komplett anders?)
    - es sollte eine Art Energie geben "um die gekämpft wird"

    Würde mich freuen, mehr Input zu bekommen. Auch bereits vorhandene Projekte dieser Art sind in der Diskussion willkommen. Allerdings habe ich selbst keine derartigen gefunden.
    Absence of evidence does not mean evidence of absence.

  2. #2
    Registriert seit
    30.03.2006
    Ort
    Oldenburg
    Beiträge
    1.789

    Standard

    Moin,
    ich würde mit den Regeln aus Conways "Game of Life" anfangen.
    Dank der heutigen Rechnerleistung kommen da schon sehr komplexe Gebilde heraus.
    Geändert von FrankSpecht (02.12.2013 um 03:23 Uhr)
    cs, Frank
    frank-specht.de

  3. #3
    Registriert seit
    09.05.2006
    Ort
    Thüringen
    Beiträge
    750

    Standard

    Das war für mich eher ein Gegenbeispiel, denn zB. alle Objekte aus dem Video sind künstlich erzeugt. Von alleine entsteht da wenig brauchbares. Besser gesagt die Muster wiederholen sich irgendwann einfach. Die maximale Komplexität ist nach paar Schritten erreicht und steigt nicht weiter; die Regeln sind zu einfach, als dass etwas wirklich Komplexes entstehen könnte.
    Trotzdem danke für den Link, da bin ich auf die Stanford Complexity Group gestoßen und hab jetzt erstmal etwas zum schauen: http://www.youtube.com/user/StanfordComplexity/videos
    Absence of evidence does not mean evidence of absence.

  4. #4
    Registriert seit
    14.12.2005
    Ort
    Gebürtig in der Kurpfalz - dem Herzen Deutschlands :-) Mittlerweile im tiefsten Schwabenland lebend
    Beiträge
    1.621

    Standard

    Das ist so nicht ganz richtig: wenn Du eine beliebig große Fläche nimmst und von einem Zufallsmuster ausgehst werden auch die entsprechenden Figuren erzeugt werden, ganz ohne geplante Konstruktion.

    Wie komplex es werden kann hängt vor allem davon ab ob die mathematischen Grundfunktionen AND, OR und NOT abgebildet werden können. Ist das der Fall, steht der Komplexität nach oben hin nichts im Weg.

  5. #5
    Registriert seit
    09.05.2006
    Ort
    Thüringen
    Beiträge
    750

    Standard

    kannst du darauf näher eingehen, zb ein Beispiel bringen, wie du das meinst mit den Grundfunktionen?

    Der erste Satz hört sich für mich irgendwie danach an, dass in einem unendlich großen Zufallsgebilde irgendwann alles mal vorkommt(Wie war das mit der Bibel und Pi oder so). Was ja dann auf ein Programm nicht anzuwenden wäre, da es nur endlich groß sein kann. Oder verstehe ich das falsch?
    Absence of evidence does not mean evidence of absence.

  6. #6
    Registriert seit
    14.12.2005
    Ort
    Gebürtig in der Kurpfalz - dem Herzen Deutschlands :-) Mittlerweile im tiefsten Schwabenland lebend
    Beiträge
    1.621

    Standard

    Zu ersterem: genau das meinte ich; ich meine daß das Programm nicht allzu komplex sein muß, es muß nur genug Raum bieten um Entwicklungen zulassen zu können.
    Ein Computerprogramm ist schon recht vergleichbar mit unserem Universum: das Programm stellt quasi die Naturgesetze dar, die Daten die vom Programm manipuliert werden den Inhalt des Universums.

    Automationen wie Game of Life haben nur eine große Schwäche; Objekte können sich nicht bewegen und daher nicht direkt miteinander interagieren. Eine Zelle die entsteht ist da wo sie ist bis sie stirbt.
    Solche Bewegungen einzuprogrammieren bedarf wieder eine ganze Ecke mehr Programm.

    Die mathematischen Grundfunktionen sind praktisch die, die in jedem Computerchip grundlegend für das Abarbeiten von Programmcode sind; das ist vergleichbar wie die chemischen Grundfunktionen rund um die DNS, die den Aufbau verschiedener Moleküle (und damit sehr komplexer Lebewesen) durch Kommandoketten vollziehen.

    Wenn also in einer Welt der Bau von "Apparaten" möglich ist, die durch wenige Kommandos (AND, OR, NOT oder bei der DNS eben die Gene) Dinge als Output haben die komplexer sind als sie selbst, wäre glaube ich Deine Bedingung an eine solche Struktur erfüllt.

    Ein Automaton wie Game of Life, das solche Strukturen bilden kann, wäre also hinreichend komplex, oder?

  7. #7
    Registriert seit
    09.05.2006
    Ort
    Thüringen
    Beiträge
    750

    Standard

    Zitat Zitat von Alex74 Beitrag anzeigen
    Ein Automaton wie Game of Life, das solche Strukturen bilden kann, wäre also hinreichend komplex, oder?
    Wahrscheinlich schon, ja. Das Problem ist dann aber immernoch, dass man aufgrund der Einfachheit einen sehr großen Raum simulieren müsste um irgendwo etwas komplexes zu finden. Auch soll natürlich die Evolution eine Rolle spielen, da scheiden dann zb Fraktale erstmal aus, obwohl sie auch unendlich komplexe Muster erzeugen. Das simulierte Objekt soll also schon ansich etwas mehr können als nur seine Nachbarn abzuzählen und darauf zu reagieren. Es hat wohl auch damit zu tun, dass ich mir vorstelle, man bräuchte simuliertes Leben um ein komplexes Gebilde zu bekommen. Also sowas wie Energietransfer, Mutation, Reproduktion... Ich finde bei Game of Life fehlt das. Es kann natürlich sein, dass sich sowas im Game of Life selbst entwickelt. Nur wie groß müssten der Computer sein um es herauszufinden? Deshalb, denke ich, müsste man gleich auf einer höheren Ebene ansetzen.
    Absence of evidence does not mean evidence of absence.

  8. #8
    Registriert seit
    09.05.2006
    Ort
    Thüringen
    Beiträge
    750

    Standard

    OK ich mache mal ein konkretes Beispiel, vielleicht kann man sich dann eher was vorstellen.

    Karl Sims, einer der Vorreiter auf dem Gebiet, hatte 1994 eine weit bekannte Arbeit veröffentlicht. Es geht um eine simulierte physikalische Umgebung in der Roboterähnliche gegeneinander kämpfen. Also eine Art rundenbasierter Kampf. Dies passiert dann viele tausend Male und durch Evolution verändern sich diese Objekte. Wirklich sehr schön anzuschauen hier http://www.youtube.com/watch?v=JBgG_VSP7f8

    Mein Fazit: Was mir daran gut gefällt, sind die physikalischen Regeln. Alles erscheint irgendwie realistisch. Auch dass es viele verschiedene Strategien hervorgebracht hat, um ein gegebenes Ziel zu erreichen. Das zeigt schon Komplexität, so wie ich es mir vorstelle.
    Schlecht finde ich, dass es keine Population gibt, sondern dass alles nur 1 gegen 1 ausgetragen wird. So passiert ja eigentlich immer nur eine Koevolution von 2 Spezies. Eine echte Umgebung gibt es nicht.
    Da das auf Hardware von 94 ausgetragen wurde, denke ich, man könnte es heutzutage in diesem Sinne erweitern.

    Was denkt ihr?
    Absence of evidence does not mean evidence of absence.

  9. #9
    Registriert seit
    08.04.2013
    Beiträge
    3.535

    Standard

    Zitat Zitat von SRMeister Beitrag anzeigen
    Würde mich freuen, mehr Input zu bekommen. Auch bereits vorhandene Projekte dieser Art sind in der Diskussion willkommen. Allerdings habe ich selbst keine derartigen gefunden.
    Hallo SRMeister,

    mir ist auch noch ein Input dazu eingefallen, der viel damit zu tun hat, das Buch von Stephen Wolfram, dem Macher von Mathematica, das er hier vorstellt (woran er 10 Jahre geschrieben hat):
    A New Kind of Science - Stephen Wolfram - YouTube (Präsentation)
    Stephen Wolfram: A New Kind of Science | Online - Table of Contents (Online kostenlos lesbar, download gegen Emailregistrierung)

    Gruß,
    Dgoe

  10. #10
    Registriert seit
    03.06.2007
    Beiträge
    94

    Standard

    Anzeige
    Zitat Zitat von SRMeister Beitrag anzeigen
    Schlecht finde ich, dass es keine Population gibt, sondern dass alles nur 1 gegen 1 ausgetragen wird. So passiert ja eigentlich immer nur eine Koevolution von 2 Spezies. Eine echte Umgebung gibt es nicht.
    Da das auf Hardware von 94 ausgetragen wurde, denke ich, man könnte es heutzutage in diesem Sinne erweitern.
    Was denkt ihr?
    Klar kann man das.

    Dieses Rundenbasierte Lernen und Verbessern ist einfach nur zu Beobachtungszwecken besser, wenn man mit solchen Dingen spielt. Daher ist so ein Setting bis heute quasi der Standard-Laborversuch.

    Stichworte für einen Anfang wären auf jeden fall "genetic algorithm" und dann als Grundlage für mögliche anpassbare Steuermechanismen vielleicht "neuronal network".
    Hier ein recht einfacher Einstieg in beide Themen:
    http://www.ai-junkie.com/ga/intro/de-gat1.html
    http://www.ai-junkie.com/ann/evolved/nnt1.html

    Erwarte dabei bitte nicht zu viel von neuronalen Netzwerken (NN). Auch mit noch so vielen Neuronen können die kein Gehirn ausbilden, nichtmal annähernd.
    Du kennst vielleicht diese einfachen Bots, die einer schwarzen Linie folgen können? Links und rechts eine Fotodiode auf den Boden, zwei Motoren mit Rädern. Geht die linke Diode aus (schwarze Linie), bleibt der linke Motor stehen...
    Sieh ein NN als eine universelle Schaltplatine mit solchen Ein- und Ausgängen (Sensoren, Motoren), wo erstmal alle Eingänge mit allen Ausgängen über mehrere Zwischenschalter verdrahtet sind und duch "Nullen" der nicht benötigten Schalter theoretisch jede beliebige spezialisierte Schaltung parametrisiert nachgebildet werden kann ohne sie im Programm explizit abbilden zu müssen (siehe auch "And, OR, NOT..." in den Posts oben).
    Dadurch (durch die Parametrisierung) kann ein genetischer Algorithmus eine zufällige (sinnlose) Ausgangsschaltung für ein bestimmtes Problem optimieren, wenn er irgendeine Wertungsrückmeldung über den Erfolg der Schaltung und mehrere (viele) Versuche bekommt - diese Wertung wird in den oben genannten "Wettbewerbsrunden" meist one-on-one oder in einer zeitlich limitierten Population ermittelt.
    Also auch in einer Population lernen geht: http://www.ai-junkie.com/ann/evolved/nnt5.html
    Für ein neues Problem Dazulernen geht mit einem reinen NN nicht: ändert sich das Problem, wird die gesamte Schaltung auf dieses zugeschnitten, für das alte Problem müsste wieder in mehreren Runden gelernt werden.
    Was du also noch brauchst wäre so etwas wie Erinnerung, Assoziation, Steuerungshierarchien,... unter anderem.

    Am Wichtigsten aber ist wohl erstmal eine Umgebung mit Ressourcen und Regeln (Physik), ohne die wird sich auch kein Verhalten und Komplexität ausbilden. Das zweite ist eine vollkommen parametrisierte BlackBox-Schaltung, die die Umwelt lesen und auf sie einwirken kann (im einfachsten Fall ein NN, wobei man die Sensoren und Motoren ebenso parametrisieren müsste), und drittens muss es auf Grund der Physik irgendeinen Auslesemechanismus geben (Wirken kostet Energie, Konkurrenz, Erreichbarkeit von Ressourcen), damit es überhaupt einen Grund zum Optimieren der BlackBox gibt. Gegenbeispiel: Organismen in einer stets gleichmäßig gefüllten Ressourcensuppe haben keinen Grund sich zu bewegen oder zu entwickeln.
    "Konkurrierende" Mechanismen (wie z.B. Bewegung kostet Energie) sind übrigens auch in einfacheren Modellen oft Auslöser für Komplexität. Du findest das auch versteckt z.B. in den Regeln von Game of Life (genug Nachbarn: Zelle füllt sich; mehr als X Nachbarn: Zelle stirbt - mit nicht-konkurrierenden Regeln entstehen keine so komplexen Muster), oder Gleichungen zum deterministischen Chaos (Das Bild vom "Teig Kneten": Ausrollen und Falten sind konkurrierend).

    Viertens brauchst du noch eine Null-Erwartung für dich selbst. Geh nicht davon aus, dass sich bekanntes Verhalten wie z.B. Neugier ausbildet, wenn es die Welt nicht erfordert/ermöglicht oder die Genetik zufällig nicht darauf kommt. Und wenn du als Programmierer auf keinen Fall "Hints" einprogrammieren willst um alles in eine bestimmte Richtung zu treiben, dann gestehe deinem Programm auch mindestens so viele Freiheitsgrade wie in der realen Physik zu und soviele Individuen und Populationsrunden wie der Natur in ihrer Evolution - und soviele Programmneustarts wie Planeten im Universum ;-)

    Themenbezogene Projekte die ich kenne (aber schon älter):
    http://www.framsticks.com/
    http://boxcar2d.com/

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
astronews.com 
Nachrichten Forschung | Raumfahrt | Sonnensystem | Teleskope | Amateurastronomie
Übersicht | Alle Schlagzeilen des Monats | Missionen | Archiv
Weitere Angebote Frag astronews.com | Forum | Bild des Tages | Newsletter
Kalender Sternenhimmel | Startrampe | Fernsehsendungen | Veranstaltungen
Nachschlagen AstroGlossar | AstroLinks
Info RSS-Feeds | Soziale Netzwerke | Flattr & freiwilliges Bezahlen | Werbung | Kontakt | Suche
Impressum | Nutzungsbedingungen | Datenschutzerklärung
Copyright Stefan Deiters und/oder Lieferanten 1999-2013. Alle Rechte vorbehalten.  W3C