 So, der Raum ist relativ voll, das heißt ich würde auch langsam mal anfangen. Ich bin Nikola und ich bin der Metatroll dieses Jahr auf der GPN, hier einen oder anderen haben mich wahrscheinlich schon mal gesehen und ich werde euch heute einen ganz, ganz, ja, nicht tiefen Einblick geben in die Welt der evolutionären Algorithmen. Ich habe mir das Thema ausgesucht, weil ich an meiner Diplomarbeit sitze, in der ich mich mit solch einem Thema befasse und weil ich irgendwie nicht dazu komme, was zu machen dafür, habe ich gedacht, ja, das passt ja, dann erzähle ich euch was und ich habe einen Grund dafür zu lernen und mich mal irgendwie das mal nochmal anzueignen. Und ja, ich hatte halt angekündigt, dass ich vielleicht auch ein bisschen die konkreteren Verfahren und Instand der Technik präsentiere, aber ich glaube, dass ich habe mir dann so nach und nach, als ich die Folien entstanden sind, gemerkt, ja, das würde, glaube ich, den Rahmen sprengen. Also, ich habe so ein paar Papers dabei, wenn jemand brennt interessiert und man uns nachher mal zusammensetzen und gern auch darüber reden. Aber jetzt mal zur Einführung. Und zwar, was habe ich mit euch vor. Ich habe mit dieser tollen neuen Spielesofter gespielt, die heißt Prezi, da bin ich halt noch nicht so ganz drin, aber man hat so tolle Überblicke. Wir fangen oben an und gehen dann im Uhrzeigersinn rum, also über Evolution, über Informatik sprechen, dann in die genetischen Algorithmen rein, den Robbie als Beispiel und dann noch ein paar Vor- und Nachteile besprechen. Also erst mal, was ist Evolution? Evolution kennt man ja eigentlich aus der Biologie oder halt auch von den lebenden Menschen und Kreaturen und Pflanzen. Man will halt, das Ziel ist es halt, sich zu verbessern beziehungsweise sich der Umgebung anzupassen, weil was ist besser, als der Umgebung angepasst zu sein, dann hat man es ja besser und kann dann halt über alle anderen triumphieren. Dafür hat sich die Evolution halt vier verschiedene, also es gibt so ein paar verschiedene Methoden. Das eine ist halt die natürliche Selektion. Dann gibt es, die ist eigentlich das, was uns dann später, also was uns jetzt später im Vortrag auch deutlich mehr interessieren wird. Es gibt dann auch Genetic Drift, Mutation. Das werden wir ansprechen als Punkt von der natürlichen Selektion. Und Geneflow, das haben wir in unserem Fall jetzt gar nicht, weil da geht es darum, wie Spezies über, also verschiedene Spezies übereinander übergreifend halt DNA teilen oder halt Information teilen oder Methoden teilen. So, und als ich mich dahingesetzt habe, dann fiel mir aber irgendwie was anderes ein. Da gab es halt auch dieses Survival of the fittest. Und als ich da mal geguckt habe, was ist eigentlich der Unterschied zwischen oder wie hängt es zusammen natürliche Selektion und dieses Survival of the fittest, was man ja immer hört? Naja, das ist dieses, dieses, dieses Satz Survival of the fittest, den hat Herbert Spencer geprägt und er war halt kein Biologe im Gegensatz zu Darwin und sein und wie heißt er andere und seinen Kollegen, die halt die Evolution halt angefangen haben zu beschreiben. Der Spencer, der wollte nämlich dieses Verfahren, was Darwin halt beschrieben hatte, ein bisschen mit mechanischen Termen und halt mit so Abfolgen von, von, von Arbeitsschritten halt beschreiben, um diese Theorie in sein Gebiet über zu übertragen und zwar in der ökonomischen Theorie, also er war halt Ökonom und er wollte halt damit sagen, ja, eine Firma, die halt tolle Produkte herstellt, die verdient mehr, weil die Produkte einfach besser sind und damit halt überlebt der Beste. Also und ja, für uns jetzt halt, naja, wenn der das machen konnte, das auf sein Gebiet zu übertragen, dann machen wir das auch. Wir übertragen es allerdings jetzt in die Informatik. Informatik, ein Unterpunkt von der Informatik ist die künstliche Intelligenz. Darunter fällt Evolutionary Computation, dafür habe ich leider kein deutsches Wort gefunden, ich hoffe, ihr akzeptiert mein Deutsch-Englisch-Gemisch. Da gibt es eigentlich drei große Unterkapitel bei Evolutionary Computation, das sind die evolutionären Algorithmen, die wir jetzt gleich noch ein bisschen genauer ansprechen werden. Es gibt die Schwarmintelligenz und es gibt andere und da verrät schon, was die anderen beiden ja sind, Population-Based Metaheuristic Methods. Hört sich jetzt irgendwie ganz, ganz noble an, ist es aber gar nicht. Diese Evolutionary Computation, das sind alles metaheuristische Methoden und in diese metaheuristischen Methoden, da spielen auch andere Felder rein, das konnte ich jetzt nicht so toll visualisieren, aber was da halt noch mit einfließt, ist einmal halt heuristik, ja, metaheuristik ist eine Spezialisierung davon, stochastische Suche und Optimisierung Algorithmen. Und aus der Ecke kommen halt auch ich. Ich habe nämlich ein großes Problem. Ich habe keine vernünftige Lösungen, bzw. ich habe eine Lösung, aber die ist nicht besonders toll und die will ich halt optimieren. Und da kann man sich jetzt zum Beispiel was aus diesem Katalog aussuchen. Und bei dieser Metaheuristik, also dieses, ich glaube, das Populate Bevölkerungsbasiert kann man sich so halbwegs vorstellen, was da was darunter ist, aber was ist eine Metaheuristik? Ja, eine Heuristik dürfte euch was sagen, sagt das hier mal gar nichts. Das ist halt so eine Messlatte, man ja sehr vereinfacht gesagt ist es halt irgendwie so eine Messlatte, dass man halt irgendwie so ein Gütekriterium hat. Und so eine Metaheuristik versucht halt durch iterative Versuche, einen Lösungskandidaten zu verbessern bezüglich eben eines Gütemaßes. Also es ist nicht einfach, ich gucke es mir an, ist es gut oder schlecht, weg oder weiter, sondern ich sage okay, der ist nicht so toll, aber vielleicht kann ich den ja noch ein bisschen verbessern. So, wir springen jetzt erst mal in die Schwarmintelligenz rein. Da gibt es halt ein paar Methoden, die sagen vielleicht im ein oder anderen was. Ich finde es immer total faszinierend, aber das würde halt auch wieder den Rahmen sprengen. Deswegen sei es halt hier nur angedeutet, aber man sieht schon, in welche Richtung das geht, and Colony Optimization, dass da das Verfahren basiert, halt auf Ameisen und wie die halt auf Futtersuche gehen. Und Bees Algorithm ist sowas ähnliches im dreidimensionalen und ein bisschen anderen Parametern, Particles Form Optimization, das sind auch so Vogelschwärme oder Fischschwärme, also sehr an der Biologie gelehnt. Und bei diesen Schwarmintelligenz wird halt ausgenutzt, dass dieses kollektive Verhalten, ein kollektives Verhalten hervorgerufen wird durch ein dezentralisiertes, aber selbst organisiertes System. Also lokal ist es einfach, also eine kleine Ameise allein kann nicht viel, aber halt zusammen bilden die halt ein emergentes globales Intelligenz, weil wenn man sich so anguckt, eine kleine Ameise, die kriegt nicht viel hin alleine oder eine kleine Biene, aber wenn man ganz viele davon hat, dann können die plötzlich riesen Bauten bauen oder Schwärmen aus und schützen sich vor Bären und in Verjagen sonstige große Tiere. Also das ist beeindruckend und vielleicht merkt ihr auch, worauf ich hinaus will. In der Robotik wird es ja ganz oft genutzt, lieber viele kleine unintelligente Maschinen zu haben mit einfachen Regeln als ein riesengroßes Koloss mit 1 Milliarden Regeln drin, die man eh nicht verbessern kann. Aber das nur zum Ausflug. Wir wollen eigentlich zu den evolutionären Algorithmen. Da gibt es auch ein paar verschiedene Verfahren. Uns interessiert das erste. Darauf gehe ich gleich gesondert ein. Genetisches Programmieren ist sehr, sehr ähnlich. Da macht man halt nicht einen Lösungsansatz, sondern dann nimmt man das ganze Programm als genetische DNA und man baut tatsächlich irgendwie verschiedene Statements und If-Statement um und setzt die Klammern anders und versucht dadurch zu optimieren. Wie gesagt, das ist so ähnlich zu Genetischen Algorithmen. Da sage ich gleich mehr. Evolutionäres Programmieren und evolutionäre Strategien. Das ist in Treuzutage fast ein und das gleiche. Darunter fallen zum Beispiel so Sachen, wenn man Co-Variance-Matrizen optimieren will. Man hat irgendwie eine große Matrix mit irgendwelchen Zahlen, die was Tolles bedeuten und man will die Zahlen irgendwie besser machen. Da gibt es irgendwie Abhängigkeiten und da kann man halt schrittweise immer wieder versuchen, eine Lösung zu verbessern, um halt die noch bessere Lösung zu kriegen. Und bei der Neuroevolution, da geht es auch, das ist ein anderes Kleinen, ein anderes Gebiet, das sind dann künstliche neuronale Netze. Die muss man ja, falls ihr wisst, wovon ich rede, da muss man ja irgendwelche Gewichtungen abgeben und das kann man auch durch evolutionäre Algorithmen verbessern. So, genetische Algorithmen ist gar nicht so viel dahinter, wenn man irgendwie ein Problem hat oder halt, egal, das ist jetzt eigentlich komplett von der Informatik gelöst. Man baut sich halt irgendwie Kandidaten, die bilden eine Bevölkerung und diese Kandidaten lösen ein Problem, jeder einzeln für sich allein. So, wenn man dann die Kandidaten sich anschaut, kann man sich ja angucken und gucken, hey, wie gut warst du denn? Bei einem Menschen könnte das sein, wie lange hast du überlebt? Oder also bist du schnell genug von dem Löwenwerk gerannt? Bei einem Algorithmus ist es dann meistens so, ja, rechne die Funktion so und so und ja, wie gut ist dein Ergebnis? Anhand dieser Bewertung sucht man sich dann meistens die besseren aus, Survival of the fittest eben. Man sollte aber auch darauf aufpassen, dass ein paar Schwächere dabei sind, einfach um die ein bisschen Variation drin zu haben und dann werden die, werden diese, diese Erkore zu Eltern gekürt und die können sich dann vermehren. Dann gibt es halt genetische Operatoren, ganz wie in der Natur auch. Also zum einen ist es die Rekombination, nennt sich halt bei der Computersite halt Crossover. Ja, wie zwei Elternteile, ein Teil kommt von der Mutter, ein Teil kommt von dem Vater, das rekombiniert sich und damit halt wieder auch, das ist auch von der Natur so, damit es halt ein bisschen Varietät gibt, gibt es auch die Mutation, die ist von keinem abhängig. Ja, und das war es dann auch. Dann fangen wir wieder von vorne an und machen das nochmal und nochmal und nochmal und nochmal, bis wir dann hoffentlich irgendwann ausreichend gute Kandidaten haben. Wie ihr in meiner vorsichtigen Formulierung schon merkt, ist das natürlich auch ein Nachteil, die ich ganz am Ende hingeschrieben habe. Ja, irgendwann hat man ein ausreichend Gutes. Ja, das heißt noch nicht, dass man das Beste hat, man weiß nicht wann oder wie lange es dauert, aber gut, das sind ja darüber noch später mehr. Aber das ist eigentlich das Rezept, das ist super simpel, es sind drei Schritte. Fangen irgendwo an, guck mal wie sie performen, sucht ihr ein paar aus, die ein bisschen besser waren, als die anderen und die machen halt hoffentlich noch bessere Nachkommen. Damit es nicht so trocken bleibt, habe ich hier ein kleines Beispiel. Das habe ich aus dem Buch von Melanie Mitchell, nennt sich complexity a guided tour. Das ist jetzt nicht speziell für genetische Algorithmen, sondern generell für Komplexität. Aber Melanie Mitchell ist halt auch jemand, der tatsächlich aktuell auch stark vorne an der Front der Forschung ist und halt sich mit solchen Themen beschäftigt. So, sie hat sich halt überlegt, so als einfaches Einführungsbeispiel. Wir haben in einem Feld, also wir haben ein Zimmer, das ist irgendwie in zehn mal zehn Felder geteilt und wir haben da einen kleinen Roboter, der Müll aufheben soll. So, der Roboter, der sieht halt nur die Felder nördlich, südlich, westlich und östlich von sich und da, wo er drauf steht. Aber viel weiter sieht er nicht, fehlen halt ein paar Sensoren, ist halt ein einfacher Roboter. Der kann halt die Aktion ausführen, gehe in eine bestimmte Richtung oder bleibt stehen oder gehe zufällig irgendwo hin oder hebt was auf. Das ist alles, was er kann, mehr kann er nicht. So, und dieser Raum mit den 100 Feldern, da ist auf jeden Fall die Wahrscheinlichkeit 50 Prozent, dass da irgendwie Müll liegt. Also hier ist es halt eine Dose. Gut, jetzt fehlt halt natürlich noch das Gütekriterium, woran messen wir, wie gut dieser Roboter ist. Ja, und das machen wir mit dieser Fitness Funktion. Und wir sagen, naja, also wenn du gegen die Wand läufst, ist halt, das wollen wir nicht. Also das ist halt, das kann einfach keinen Sinn haben, dass du gegen die Wald klar ist. Zumal du kannst sie ja sehen, du siehst ja, was um dich herum ist gegen die Wand, das ist halt mal ganz, ganz schlecht. Wenn er dich bügt, wenn er sich bügt und halt was aufhebt, aber da war nichts zum aufheben, das ist halt auch Quatsch. Ich meine, das hätte er ja auch wissen können. Aber gut, das ist halt nicht so schlimm wie gegen eine Wand rennen, weil da kann er sogar noch kaputt gehen, also geben wir den minus ein Punkte, wenn er das macht. Aber wenn er dann mal zufällig oder gewollt, hoffentlich mal was aufhebt, wo was ist, das ist natürlich das Verhalten, was wir haben wollen und dafür belohnen wir ihn und geben ihm zehn Punkte. Das sieht dann grafisch dargestellt ungefähr so aus. Ja, ja, sehr, sehr einfache Zeichnung. Wir haben zehn mal zehn Felder mit verschiedenen Dosen irgendwo liegen. Okay, jetzt sind halt ein paar weniger, also wie gesagt, eigentlich ist die Wahrscheinlichkeit 50 Prozent, aber jetzt ist zwar jetzt einfach mal irgendwie so ein Snapshot von irgendeiner Session. Okay, jetzt wissen wir also, wie man so einen genetischen Algorithmus baut. Jetzt wissen wir, okay, dieses Beispiel können wir wahrscheinlich mit einem genetischen Algorithmus verbessern. Aber ja, und wie mache ich das jetzt? Naja, also eine Lösungsansatz, also ein Lösungskandidat, also ein Teil unserer Bevölkerung ist halt das Programm, was der Roboter hat. Kann man ja so sehen, also wenn der Roboter, nämlich gehabt 100 verschiedene Roboter in 100 verschiedenen Räumen, die haben 100 verschiedene Programme und je nachdem, wie gut die Müll aufheben oder nicht, werden die halt bewertet. So, jetzt kann man sich, das ist super einfaches Beispiel, das heißt, man kann es auch super einfach durchrechnen. Der Roboter sieht halt immer vier Felder um sich herum und sein eigenes Feld. Und die Felder können, also er sieht fünf Felder und jedes Feld kann halt eine Wand sein, kann leer sein oder kann Müll haben, eine Dose haben. So, ganz einfache Mathematik, 3 hoch 5 sind 243 Zustände, die ein Roboter haben kann, bezüglich allem, was sein seiner Welt, also nicht der gesamten Welt, sondern nur die, die er sieht. So, und für jedes dieser Zustände kann er eine von sieben Sachen ausführen, eben diese in die vier Richtungen stehen bleiben, aufheben oder Zufallsbewegungen. Okay, und wenn wir das jetzt zusammen kombinieren, dann haben wir praktisch, könnten wir sich überlegen, okay, ich mache mir irgendwie so ein String, der ist 243 Zeichen lang. Der Roboter weiß, okay, wenn ich vier leere Felder sehe und ich bin auf einem vollen, dann führe Option X aus und das könnte oder sollte ja in dem Fall dann aufheben sein. Wir haben jetzt natürlich, ich habe es mir einfach gemacht, weil wir sind ja faul, bei den 3 hoch 5 Zuständen, da sind jetzt natürlich auch Zustände, wo so nach dem Motto rechts vor mir ist eine Wand, links vor mir ist eine Wand, oben ist eine Wand, unten ist eine Wand und ich bin selber auf einer Wand. Der Zustand wird halt nie vorkommen, aber das Tolle ist halt, das ist uns vollkommen egal. Ich kann mir auch vorstellen, dass wir Menschen auch irgendwelche DNA-Reste haben, die wir halt nicht brauchen oder nie brauchen werden oder nie abgeklappert werden, wir führen die halt als Müll rum und in der Tat ist es tatsächlich so, dass irgendwie menschliche Körper, also Mensch oder die Natur halt eigentlich nur ein Bruchteil, ein Bruchteil von dem DNA-Gut und dem Erput benutzt. Okay, jetzt können wir natürlich gleich mit anfangen, aber wir wollen hier sehen, ob der genetische Algorithmus besser funktioniert als das, was wir können. Das heißt, bevor wir jetzt anfangen, überlegen wir uns erst mal, ja, Moment, was könnten wir denn machen? Ein bisschen zu groß der Raum, sonst würde ich euch fragen und eure Ideen sammeln, aber naja, also ich glaube, also das einfachste Regel ist natürlich, wenn ich auf dem Feld bin, egal was um mich herum ist, wenn ich auf dem Feld bin mit einem Müll, dann sollte ich mich halt runterbücken und das aufheben. Ich glaube, da sind wir uns einig, dass das irgendwie ziemlich sinnvoll ist. Okay, wie, was könnte man denn noch machen? Na ja, wenn ich halt irgendwas sehe in meiner Umgebung, dann und da ist Müll drauf, dann könnte ich da hinfahren und das aufheben. Hört sich ja erst mal nicht schlecht an. Ist natürlich jetzt so ein bisschen die Frage, ja, was mache ich, wenn ich an zwei Feldern um mich herum was sehe? Na ja, dann können wir halt nicht wissen, sagen wir einfach, es geht einfach zu einem der beiden, es ist uns relativ egal erstmal. Wir wollen uns ja nicht zu viel den Kopf zerbrechen. Was noch, ja, was ist, wenn wir nichts sehen? Ja, wenn wir nichts sehen, dann fahren wir irgendwie zufällig. Wir haben ja die tolle Funktion. Wir können zufällig bewegen. Was wir halt auch vermeiden sollten ist, gegen eine Wand zu fahren. Also das könnten wir vielleicht auch noch einbauen, dass wenn wir irgendwie eine Wand sehen, dann biegen wir nach links ab, weil dann haben wir irgendwie ziemlich sicher ein Algorithmus, dass wir nie gegen die Wand knallen. Ja gut, das ist jetzt einfach eine einfache Beschreibung, so man muss, man könnte sich jetzt hinsetzen oder man sollte sich jetzt hinsetzen und halt aufschreiben für jeden der Fälle, was mache ich für eine Aktion aus? Ja und dann passiert zum Beispiel sowas. Ich bewege mich zufällig irgendwo hin, sehe eine Wand, fahre nicht dagegen, dann bewege ich mich weiter zufällig, weil ich sehe ja nichts. Irgendwann bin ich halt in der Nähe von so einer Dose, sehe die Dose und denke mir, hey, ich gehe zu der Dose, heb sie auf, dann gehe ich weiter, sehe aber nichts, gehe weiter, gehe weiter, irgendwann komme ich durch Zufall an eine andere Dose, hey, da liegt eine Dose, ich gehe da hin und heb sie auf. Das ist so den Algorithmus der oder den, ja, die Idee, die halt auch Melanie Mitchell hat und als DNA sieht es halt dann so aus. Ja, da ist es halt, ja, ich habe halt keine Monospace font gefunden, aber das sind 243 Zeichen. Der, der, die erste Stelle ist zum Beispiel, wenn, was war das, wenn alles leer ist, ah ja genau, die allererste Stelle ist der Fall, oben unten links rechts auf der aktuellen Stelle ist leer. Was mache ich da? Aktion 6, Aktion 6 entspricht Zufallbewegung. Das zweite ist halt oben unten da leer, hier überall leer, außer im Osten, da ist irgendwas da und fünf ist die Aktion gehen nach Osten. Also so kann man sich das, man kann halt genau ablesen. So und man sieht halt jetzt auch sehr toll, das ist eigentlich fast vergleichbar wie eine DNA, wo halt irgendwelche Informationen dringodiert stehen und je nach dem, was, wo ich gerade bin oder was ich gerade brauche, kann ich genau hingehen, ablesen, was ist die nächste Aktion, die ich ausführe. So, die Melanie Mitchell hat es dann laufen lassen, ja, und zwar als genetischen Algorithmus. Sie hat eine Amfangsbevölkerung von 200 ausgewählt, sie hat tausend Generationen durchlaufen lassen und für jede Generation hat sie für jede Generation 100 Szenarien aufgebaut, ja, um zu sehen, ob es nur dieser eine Feld ist oder wie gesagt der Müll liegt ja zufällig, also 100 verschiedene Szenarien und jeder Roboter von der Population durfte auf jeden Szenario 200 Aktionen ausführen. Und dann hat man halt geguckt, wir hatten ja die Punkte, die Fitness-Function haben wir ja besprochen, wie viele Punkte haben die Leute, aber haben die Individuen die verschiedenen Lösungsansätze. So, das heißt, man hat dann tatsächlich eine Liste, irgendwie Kandidat 1 hat so viele Punkte, Kandidat 2 hat so viele Punkte, das kann man dann sortieren nach wie viele Punkte haben die verschiedenen Leute und natürlich die besseren, Survival of the fittest, die besseren haben jetzt bei der Reproduktion haben halt eine höhere Wahrscheinlichkeit genommen zu werden und Kinder zu erzeugen. Okay, also man sucht sich jetzt, man sortiert die nach Erfolg, man nimmt probabilistisch halt jeweils die besseren, man sucht sich zwei aus, dann gibt es das sogenannte Crossover, das heißt also einen Random Split ist es in dem Fall gewesen, also ich als Crossover, ich habe zwei DNA Strings, ich suche mir zufällig eine Stelle aus, zum Beispiel die Zehnte, dann nehme ich von Elternteil A die ersten Zehen und vom Elternteil B die anderen Steige und tue sie zusammen zu einem Kind und von dem ersten Parent der Rest, den ich nicht benutzt habe und von dem zweiten den Anfang den ich benutzt habe, kombiniert es und das ist mein zweiter Nachkomme. So, dann gibt es auch ein kleines bisschen, also nach dem, die sich jetzt gepaart haben und sich die DNA ausgetauscht haben, gibt es auch ein bisschen Mutation, damit halt auch mal ein anderes Verhalten, was vielleicht gar nicht existiert hat, eine Möglichkeit hat, ja und das wurde dann tausend Generationen lang gemacht und so weiter und so fort und sie hat da geguckt, ihr Roboter, also ihr zugegebenermaßen nicht besonders kluger Roboter, hatte ein Score von durchschnittlich 346, also das höchste sind ja 100 Felder, jedes Feld hat 50 Prozent Wahrscheinlichkeit eine Dose zu haben, die höchste Score, die man erzielen kann, ist ungefähr 500. Ihr Roboter dieser simple Algorithmus, der hier auch aufgemalt ist, der hatte irgendwie durchschnittlich 346, was ja schon mal nicht schlecht ist, also der hat irgendwie so 3435 Dosen halt durchschnittlich aufgehoben. Dann hat sie den genetischen Algorithmus laufen lassen und was man halt auch bedenken soll, die Anfangsbevölkerung, die ist vollkommen willkürlich, das waren irgendwelche Zahlen, sie hat nicht mit dem angefangen, sie hat irgendwelche Random Numbers eingedehben und das dann einfach dem genetischen Algorithmus überlassen und tatsächlich der Beste, der dann rauskam nach tausend Generationen, der hatte eine Bewertung von 483 Punkten und wie gesagt, wenn man berücksichtigt, da liegen durchschnittlich 50 Dosen auf dem Boden, für eine Dose kriegt man 10 Punkte, sind 480 Punkte, schon verdammt gut. Naja und jetzt weiß man halt, okay, es gibt eine bessere Lösung, was macht die denn eigentlich besser? Das hat sie sich natürlich angeguckt und sie hat halt zwei Verhalten festgestellt, die sie halt gar nicht bedacht hatte. So sieht übrigens die Idee in Adidas so aus. Naja zum einen geht der Roboter nicht, wenn er nichts sieht, geht er nicht willkürlich irgendwo hin, sondern er geht immer Richtung Osten. Wenn er dann gegen eine Wand sieht, dann biegt er nach links ab und ackert so das Feld gegen den Uhrzeigersinn ab. So, dann findet er natürlich ab und zumal eine Dose und hebt sie auf. So und das ist natürlich jetzt viel effektiver. Ich gehe mal zurück als irgendwie zufällig, weil man sieht hier, die ist halt zwei, drei Mal teilweise der Roboter auf dem selben Feld gewesen, das bringt halt gar nichts. Naja, wir wissen, dass da nichts ist und dass in der Umgebung nichts ist. Da ist so eine Strategie halt schon deutlich besser. Das war das erste Verhalten, aber gut zugegebenermaßen. Dieses Verhalten hätte man sich auch, hätte man sich selber auch überlegen können, ja, in Ariatne-Faden und sowas, ja, im Labyrinth will man möglichst an den Rand gehen. Und wenn ich halt was sehe, dann ja, das geht ja, also das kann man sich ja noch so ein bisschen nachvollziehen. Es ist halt interessant, dass es von alleine auch funktioniert hat, aber das ist jetzt nicht so besonders herausragend. Aber was sie jetzt festgestellt hat, es gab noch ein zweites Verhalten, was geholfen hat. Bevor ich starte, das ist ein kleines Video. Die Präsentationssoft ist leider so doof und zeigt am Ende wieder das erste Frame. Deswegen sieht man am Ende nicht die Zusammenfassung. Aber der Roboter startet und hat halt verschiedene Mülltonen. Er sammelt verschiedene Müll. Er sammelt das Erste auf, zehn Punkte, dann guckt er rechts, guckt er links, er sieht, da ist auf beiden was und entscheidet sich jetzt zufälligerweise für das Ungünstigere. Ja, es geht halt nach links und sammelt das Linke auf. Aber wenn er nach rechts gegangen wäre, dann hätte er wahrscheinlich die anderen zwei auch noch mitgenommen. Allerdings wäre, selbst wenn er nach rechts gegangen wäre, hätte er trotzdem die anderen verpasst. Und der Algorithmus, den, der genetische Algorithmus, oder die Regel, die der genetische Algorithmus rausgebracht hat hingegen, die hat sich intelligenter verhalten. Weil die hat erstmal geguckt, wenn ich rechts und links was sehe, dann gehe ich erstmal nach links ohne es aufzuheben und erst wenn ich dort nichts sehe, dann gehe ich weiter nach rechts und sammel alles auf, was in der Umgebung ist. Das war ja aufgefallen, weil sie halt so ein paar Punkte sich angeguckt hat in der DNA und gesehen hat, naja es gibt schon mehrere Fälle, wo selbst wenn Müll auf der Stelle liegt, die der Roboter das nicht aufhebt. Und da hat sie gedacht, ja das kann doch nicht sein, das macht doch keinen Sinn, den Müll liegen zu lassen. Aber in diesem Fall doch, weil unser Roboter ist halt zugegebenermaßen sehr simpel, der hat halt kein Gedächtnis. Ja, weil sonst wäre das ja irgendwie sinnlos. Aber indem er halt in diesem Fall die Dose liegen lässt, hat er sich ja praktisch einen Gedächtnis erzeugt, weil er weiß, wenn ich links gehe, dann sehe ich den hier immer noch. Also das weiß er nicht, aber das Verhalten hat sich halt so entwickelt. Ja und dann heißt, wenn ich erstmal an den einen Rand von dem Müll fällt gehe und ich tatsächlich weiß, okay wenn ich hier starte, dann sehe ich immer den nächsten, dann kann er ja alles aufheben. Und das ist ja halt schon eine erstaunliche Erkenntnis, weil ja okay, das ist jetzt nicht so advanced, dass man nicht hätte vielleicht selber drauf kommen können, aber das Verhalten dann dafür zu programmieren oder halt in diesen relativ einfachen eigentlich gehaltenen Stringen von DNA, das würde ich dann doch sagen, das wäre halt auch für uns Hecker, vielen Menschen trotzdem noch immer noch eine Herausforderung gewesen. Gut, jetzt haben wir halt gezeigt, was es alles so tolles kann. Da hinten ist eine Frage, ja bitte. Ich höre dich nicht, so ein bisschen lauter reden. Ja, das ist halt, muss ich ehrlich sagen, das weiß ich nicht, das kann durchaus sein. Wobei ich ja, wobei die Sache, also die Frage war, ich soll sie ja wiederholen ins Mikro, was ist, wenn es ein Kreis ist? Dann sieht er ja immer zwei und wird wahrscheinlich dann im Kreis laufen. Das muss ehrlich sagen, ich bin mir nicht sicher, ich kann mir aber gut vorstellen, dass er das macht, aber du musst berücksichtigen, es sind ja Zufallszenarien. Das heißt, wenn es ein Kreis gibt, dann kann es sein, dass er zufällig mal ein, der eine bleibt halt hängen, aber auf den anderen 199 Szenarien ist er verdammt gut. Und dann ja, ich meine selbst sehr stärkste und intelligenteste Mensch oder stärkste und intelligenteste Tier kann immer noch stolpern und in einem Canyon reinfallen und dann ist es tot und dann bringt ihn seine supertolle DNA auch nicht mehr weit. Also er argumentiert, dass wahrscheinlich irgendwie dieses System funktioniert, dass er irgendeine Ecke sucht. Ja, also wenn sagen wir mal unten links, dann wird halt immer nach links gehen und wenn es die Möglichkeit gibt, dann immer nach unten, aber dass dann wahrscheinlich dieses Verhalten dann eben irgendwann eine Ecke sich aussucht, um zu starten und dann trotzdem Müll aufzuheben. Wie gesagt, aber selbst wenn er im Kreis läuft, ja, dann ist es halt ein Fall, wo es nicht gut ist, aber dann gibt es halt immer noch viele, also dann ist er immer noch besser als jemand, der die ganze Zeit gegen die Wand rennt. Da ist noch mal eine Frage. Ja, Moment, er kriegt ja in diesem einen Fall, kriegt er null Punkte, wenn er die ganze Zeit im Kreis läuft. Okay, aber er läuft ja nicht nur ein Szenario ab. Das muss man, das hatten wir ja sichergestellt, als wir gesagt haben, jeder Kandidat hat die Möglichkeit, was war es, bevor ich was falsch sage, auf hundert verschiedenen Feldern abzulaufen. Das heißt, ja klar, es kann Fälle geben, wo er halt null Punkte hat, aber es kann durchaus auch Fälle geben, wo er alle 50 Dosen kriegt. Ich meine, der Durchschnitt ist ja auch 483, also perfekt ist er ja auch nicht, sonst wäre es ja 500, aber klar, es gibt sicher Fälle, wo er halt nicht besonders gut ist. Naja, ich würde ihn ja nicht auszutieren, wie gesagt, er hat ja, wenn er 100 Durchgänge macht und den im einen macht er null und den in allen anderen sagen wir mal 400, dann würde ich bilde ja sowieso einen Durchschnitt drüber. Das heißt, dann hat er einen Durchschnitt von 390 wieder 399 und dann ist er immer noch sehr gut im Durchschnitt zu seinen Kollegen. Ja, also wie gesagt, es kann durchaus mal passieren, aber das interessiert uns eigentlich alles gar nicht. Wie vorhin das Beispiel selbst, der stärkste Löwe, dem kann irgendwie durch den Blitz erschlagen, dann bringt es auch nichts. Es ist halt ein Zufall, das ist dann ein Einfall, wo es halt nichts gebracht hat, aber trotzdem wäre er ja eigentlich ganz gut. Okay, jetzt haben wir halt gesehen, wie toll das alles ist. Ja, und jetzt ist halt die große Folie mit viel Text. Naja, so ein genetischer Algorithmus hat halt auch seine Nachteile. Also, ein genetischer Algorithmus hat auch ganz große Nachteile, weswegen der eigentlich nur dann benutzt wird, wenn halt nichts anderes geht. Ja, wenn man es natürlich durchrechnen kann, wie in so einem simplen Beispiel, ich meine 243, was sind 243 hoch 7, das sind alle möglichen Robbys, die es irgendwann mehr geben kann, das kann man ja auch mal runter rechnen. Ja, okay, das sind noch ein paar mehr, weil die ganzen Feldern dann noch beschrieben werden müssen, aber das ist eigentlich noch bei heutiger Rechenleistung zu bewerkstelligen. Aber was ist, wenn man halt so dieses Traveling Salesman Problem hat? Also etwas, wo nebenan weiß, es ist sehr, sehr schwer. Oder was die Physiker halt oft haben, wenn sie plötzlich immer mehr und mehr Dimensionen haben und mehr und mehr Variablen in deren Formel diese, für die sie eine Lösung haben wollen. Da bietet es sich halt an, weil da kann ich, also wie viel Variablen das hat, ist mir relativ egal. In die Richtung läuft auch so ein bisschen meine Diplomarbeit. Und mein Suchraum kann noch so groß sein, ich werde eine, ja, ich werde hoffentlich eine vernünftige Lösung kriegen. Es steht halt ein bisschen weiter unten. Es ist allerdings nicht garantiert, dass man das beste Lösung kriegt. Es ist auch nicht garantiert, dass man überhaupt eine gute oder eine sehr gute Lösung kriegt. Ja, durch die Mutation will man zum Beispiel lokale Optima vermeiden. Ja, es kann natürlich sein, dass irgendwie ein bestimmtes Verhalten sehr gut ist. Aber durch dieses Verhalten halt das größere, bessere Verhalten nie erreicht werden kann. Ich will jetzt nicht zu mathematisch werden, weil es soll ja nur Grundlagen Vortrag sein. Aber keine Ahnung, vielleicht ist es, spezialisieren sich ja alle Roboter oben links ins Eck zu gehen. Was aber vielleicht ganz gut ist, von unten nach oben das Feld abzusuchen, aber dann wird man nie irgendwie die anderen Ecken erreichen. Also man kann durchaus hängen bleiben. Und deswegen ist auch diese Mutation so wichtig, weil wenn halt irgendwie alle Eltern dann dieses eine Verhalten aufweisen, dann ist es ganz nett, wenn mal irgendjemand probiert, mal was anderes zu machen. Und wenn das dann gut genug ist, dann wird es in der nächsten Generation sich wieder Verbreitung finden, wird es wieder Verbreitung finden. Okay, gehen wir noch mal von oben nach unten. Also man benutzt es halt, wenn man nichts anderes Besseres weiß, ja, dann kann man halt, wenn man halt so viele Variablen hat, dann ist es eine Möglichkeit, das Problem zu optimieren oder die Lösung zu optimieren. Was halt kritisiert wird, ist halt diese fehlende Unterscheidung zwischen Phenotyp und Genotyp. Genotyp ist alles das, was in der DNA steht oder alles, was beschrieben wird und Phenotyp ist alles das, was zum Ausdruck gebracht wird. Das Beispiel ist zum Beispiel so ein Muschelmuster, ja, die DNA ist immer gleich, aber das wirkt sich halt irgendwie anders aus, dann die haben halt, wir haben halt verschiedene Muster auf der Muschel. Und hier so ähnlich, der Phenotyp ist halt deutlich größer, das war das vorhin beschriebene Fall von vier Mauern um einen Roboter herum. Der Fall dem wird es nicht geben, den gibt es also im Genotyp, aber die dazugehörige Aktion wird nie im Phenotyp auftauchen, weil es einfach komplett wurscht ist. Also der beste Roboter kann, da kann man bei an bestimmten Stellen halt Zeug ersetzen und das ändert sich nichts. Was halt jetzt die Biologen natürlich so ein bisschen kritisieren oder stärker kritisieren, ist, dass bei Lebewesen gibt es eine Embryogenese. Das heißt, wenn sich dann zwei Lebewesen gepaart haben und die DNA ausgetauscht haben, dann gibt es ja erst mal ein Embryo und das entwickelt sich und entwickelt sich weiter. Und wenn da halt jetzt irgendwie eine Mutation drin war, die überhaupt gar keinen Sinn macht, wie zum Beispiel kein Herz, dann weiß man ja eigentlich schon, okay, das ist jetzt talerquatscht, das Kind auf die Welt zu bringen und versuchen aufzuziehen und Löwen zu jagen, weil ohne Herz geht das halt nicht. Und da hat sich halt die Natur halt als Aushilfe geschaffen, näher, dann gibt es halt eine Fehlgeburt, so traurig das halt ist. Aber wenn der Körper sieht oder wenn der weibliche Körper bei uns halt sieht, nee, das Kind hat überhaupt keine Überlebenschancen, dann kommt es gar nicht erst zur Welt. Während wir bei der vereinfachten Version, bei der informatiker Version, wir paaren einfach zwei, wir nehmen die DNA und schmeißen die halt in die Welt. Und stellt man sich vor, der hat zwei Elternteile, der eine hat einen coolen Suchalgorithmus, der andere hat die Idee, immer wenn er irgendwie was sieht, was aufzuheben. Ja, und jetzt schneiden wir das und zufällig erwischen wir genau die zwei Teile. Das heißt, der eine Nachkomme hat ja dann sucht gut und hebt alles auf und der andere sucht schlecht und hebt nichts auf. Ich meine, dass das halt nichts bringen wird, das könnte man sich ja denken. Das Problem ist halt, man will sich halt das Leben nicht schwer machen. Man müsste ja jetzt praktisch nochmal eine Bewertungsfunktion haben, die sich halt diese DNA-Stücke anguckt und sagt, so ja, nee, das hat gar keinen Sinn oder das hat Sinn und das spart man sich sozusagen, indem man sie einfach durchlaufen lässt, nimmt halt, braucht halt irgendwie drei Millisekunden länger der Algorithmus und dann sieht man, dass er halt eine Wertung von Null hat und dann ist es eh egal. Dann fliegt er hoffentlich beim nächsten Mal raus. Was man halt auch nicht weiß, ja, das war bei diesem vorsichtig formulierten Satz vom Anfang irgendwann, ja, die Frage ist halt, wann hören wir denn auf? Ja, ich habe jetzt diese Zahlen, das sagt auch die Autorin halt, die sind vollkommen willkürlich ausgesucht. Ich glaube, das ist zwar nicht ganz, aber ja, ich könnte es ja nochmal, nochmal 2.000 Generationen lang laufen lassen. Vielleicht wird es dann auf 400 statt 486, vielleicht ist es vielleicht dann durchschnittlich auf 485, aber na ja, das ist so nah am Optimum, da kann man sich denken, dass es vielleicht doch nicht so viel besser wird. Aber bei einem größeren Problem, da hat man echtes Problem, wann hört euch denn auf? Wann ist die Lösung gut genug für mich? Und es ist dann tatsächlich, dass man halt oft sagt, na ja, meine Lösung, die ich durch jahrelanges Rechnen gelöst bekommen habe, die hat so und sie ist so und so gut. Und wenn der genetische Algorithmus halt schon anfängt, besser zu werden, dann kann ich eigentlich in jedem Schritt aufhören, weil die ist auf jeden Fall besser. Aber das sagt mir halt niemand, ob das dann sich lohnt, weiter zu machen oder nicht. Ja, eben, das hängt halt auch damit zusammen, wie gut bin ich und wie weit bin ich. Also gibt es noch Potenzial sich zu verbessern oder nicht? Das kann ich halt alles nicht ablesen. Ich kann immer nur eine Aussage treffen über den aktuellen Kandidaten, ob der gut ist oder nicht. Aber eben, ob es dieses Potenzial gibt, wissen wir nicht. Und was halt super, super ärgerlich ist und was eben solche Analysen, wie wir sie gerade gemacht haben, so im kleinen Rahmen halt erforderlich macht, ist die Tatsache, wir wissen nicht, warum wir oder warum das an diese Stelle gekommen ist. Ich meine, warum hatten Mensch zwei Arme? Warum nicht drei? Ich kann mir vorstellen, dass jeder wird zustimmen, wenn wir sagen, mit drei Armen wäre es besser. Aber die Natur hat sich irgendwann entschieden, dass wir zwei Arme haben. Klar, man kann sich überlegen, ja, das ist symmetrischer, drei wäre halt vielleicht unsymmetrisch. Aber gut, man weiß es halt nicht so genau. Und eben, deswegen muss man sich halt hinsetzen und da gibt es halt auch Bücher voller Skizzen und das ist ganz nett. Aber ich habe so ein Paper von genetisch von Cellularautomaten, die halt irgendwie was machen und dann also beschreiben erst den Algorithmus, lassen das Laufen stellen, das Ergebnis vor, das sind die ersten fünf Seiten und die anderen 73 Seiten sind dann irgendwelche Analysen von irgendwelchen Bildchen, was da rausgekommen ist, wo sich halt überlegen, hm, warum ist da jetzt bei Generation Sohn so viel dieses Verhalten aufgetaucht und das hat sich durchgesetzt und was macht das und warum ist es gut. Ist jetzt natürlich ein bisschen doof, wenn man sagt, hey, ich will es mir einfach machen, ich mache einen genetischen Algorithmus, habe meine tolle Lösung und ich dann trotzdem noch zehn Jahre forschen muss, um zu verstehen, warum ist die denn so. Das heißt, wenn man tatsächlich irgendwie es nötig hat zu verstehen, warum dieses Verhalten jetzt tatsächlich gut ist, dann ist halt ein genetischer Algorithmus halt nicht so sinnvoll. Ja, und plötzlich merkt man, naja, die sagt jetzt mal in der Industrie, so ein Industrieroboter, der am Fließband irgendwas schweißt, natürlich könnte man jetzt mit einem genetischen Algorithmus optimieren, aber da ist es wahrscheinlich eher gewünscht, dass man genau sagen kann, wann was passiert mehr als, ja, ja, das läuft schon und der macht es schon richtig zu 99,9 Prozent. Also 99,9 Prozent wäre ja echt nicht schlecht, aber da wünscht man sich vielleicht, naja, aber ich will schon verstehen, was er da macht und warum er das macht. Dann schreibe ich mir lieber selbst und habe 99,8, aber wenn da was schief läuft, dann weiß ich, wo ich Hand anzusetzen habe. Und dann habe ich noch diesen, diesen Satz gefunden, No Free Lunch in Search and Optimization. Das ist natürlich auch ein Argument, das kann man bei jedem Optimierungsalgorithmus dazu bringen. Es geht halt darum, dass bei Suche und Optimierung, wenn man das Problem oder wenn man die Methode ausreichend für allgemeinheit, dann kann man eigentlich jede Optimierungsmethode oder Suchmethode halt anwenden. Das heißt, was man damit sagen will, ist man kann jetzt nicht oder man sollte vermeiden, jetzt hinzugehen. Ah, ich muss das optimieren. Ach, ich nehme genetische Algorithmus oder ich nehme den und den Algorithmus. Das klappt dann. Man sollte sich halt schon im Klaren sein, warum jetzt welches Verfahren besser ist. Also wenn ihr da Raumschiffe in Lua programmiert, dann ist es vielleicht nicht so ganz empfehlenswert, egal wie cool jetzt genetische Algorithmen sind, hinzugehen und halt das in Lua implementieren und hoffen, dass die Raumschiffe in Runde 50 dann besser werden. Gut, ansonsten bin ich so am Ende meiner Präsentation. Ich bedanke mich. Und falls ihr noch Fragen habt, ja, die Spiele rein am Ende. Falls ihr noch Fragen habt, stehe ich euch natürlich gerne zur Verfügung. Da hat sich jemand gemeldet, ja? Ja, genau. Also du hast recht, das ist natürlich auch ein Problem. Ach so, ich frage wiederholen. Wie setzt sich denn die Bewertung an? Also diese Fitness Funktion, die ja eine große, große Rolle spielt. Und das ist auch tatsächlich ein großes Problem. Wie setzt sich die an? Ich hätte ja sagen können gegen eine Wand fahren, bringt nur minus 1 und nichts aufheben, bringt minus 10 im Idealfall. Das hast du schon auch richtig gesagt. Im Idealfall ist es so, dass irgendwann. Solange halt negatives Verhalten negative Werte wird und positiv, positiv Irgendwann sollte es dann trotzdem zu den ähnlichen Ergebnissen kommen. Also. Ja, aber du hast recht, es ist tatsächlich ein Problem. Wie setze ich das an? Was bestrafe ich und und was will ich loben, damit es halt weiter weiter kommt? Im Gegensatz zu der Anfangsbevölkerung, die man tatsächlich willkürlich aussuchen kann. Ich muss ehrlich sagen, ich habe da noch nicht so viel Erfahrung mit. Das ist auch, als ich vorhin gemeint habe, ich glaube es ihr nicht wirklich, wenn sie sagt, dass es vollkommen willkürliche Werte sind. Weil als ich damit rumgespielt hat, wenn ich die Bevölkerung kleiner gemacht habe oder die Mutation zu groß, dann kam plötzlich vollkommen andere Werte raus und nie so gut wie sie die erreicht hatte. Es fand ich halt ein bisschen ärgerlich, weil das ist dann doch nur so ein Allgemeinwissen. Es ging halt nicht genug in die Tiefe. Aber ja, in der Tat eben auch Bewertungsfunktionen erstellen. Da muss man sich halt sehr viel Gedanken machen. Das war jetzt ein einfacher Fall. Ja, da gibt es halt zwar ein positives Verhalten und zwei negative. Man könnte ja auch sagen, also gegen die Wand ist minus 10. Falsch aufheben ist minus 5. Und wir wollen zielorientiert arbeiten. Also eine Zufallsbewegung ausführen ist eigentlich negativ. Wobei, der würde dann wahrscheinlich auch sehr schnell lernen. Na ja, dann sage ich nicht Zufall, sondern dann mache ich einfach Zufall. Dann sage ich einfach, geh nach Norden. Es ist genauso Zufall, aber ich kann es halt nicht negativ bewerten. Gibt es sonst noch Fragen? Ja, genau. Das ist natürlich also die Frage war, ob es rechtliche Konsequenzen oder was das rechtliche Konsequenzen haben kann. Wenn jetzt ein Industrieroboter halt genetisch programmiert ist und der macht irgendwie ein Fehler und dann ist die Frage, wer ist Schuld? Na ja, wahrscheinlich halt an die Firma, aber ja, du hast recht. Und genau das ist halt auch eine Problematik. Ich kann mich noch erinnern, als wir irgendwann in ganz am Anfang meine Studiums, dann mussten wir dieses dieses damals so grässlich gehasste Rückwärtsgewieses Rückwärtskalkül, also so so WP Kalkül, so eine Rückwärtsanalyse. Und wir haben dann irgendwann den Dozenten halt so so Quality Assurance und haben uns gesagt, sag mal, wozu brauchen wir das? Und der meinte so, na ja, wenn es irgendwann mal du hast ein Airbag programmiert und der löst nicht aus und ja, du hast das Ding programmiert und jetzt kommt die Versicherung sagt, du bist schuld. Du schuldest mir zehn Millionen Euro. Dann musst du halt beweisen können, dass dein Stück Code nicht dem Fehler verursacht hat. Wenn ich den selber geschrieben habe, dann kann ich das vielleicht. Wenn ich einen genetischen Algorithmus dran gelassen habe, dann kann ich das wahrscheinlich nicht. Und das ist eben so ein Punkt, worauf ich hinaus wollte. Man will es nicht unbedingt in jeder Applikation haben. Für ein Physiker zum Beispiel allerdings, der halt irgendwelche der beim beim sagen wir mal, der arbeitet beim Sören und der will halt so eine Vorhersage treffen, wo die Partikel dann hinfliegen, wenn sie aufeinandertreffen. Da beißt man es ja eh nicht. Das heißt, eine ausreichend gute Nährungslösung ist für ihn. Okay, der kann das problemlos benutzen, ja, weil dann hat er wenigstens eine Idee, aber du hast vollkommen recht in so einem kritischen Szenario. Das wäre natürlich voll das Problem. Habt ihr sonst noch Fragen? Da hinten meldet sich doch noch jemand Trauzsicherheit. Ja, wenn man eine ausreichend gute Funktion hat, eine ausreichend gute Bewertungsfunktion, weil man muss halt immer, man will ja irgendwie automatisch bewerten können, wie gut ist es jetzt? Die Frage war übrigens dran gedacht, ob man genetischer Algorithmus auch zur Darstellung virtueller Welten benutzen kann. Es gibt natürlich inzwischen so wie bei den Captures auch die Möglichkeit, dass der Computer irgendwas erzeugt und dann einem Menschen gezeigt wird und gesagt, so ist es für dich realistisch und dann sagt der Mensch ja oder nein und dann hat man ja praktisch eine Bewertungsfunktion geschaffen, aber dann liegt halt natürlich die Schwierigkeit zu sagen, ja, was ist denn ästhetisch schön oder nicht? Was ich aber tatsächlich weiß, ist, dass Verhalten, also in so Video Spielen, das Verhalten von nicht spielbaren Charakteren, also die Gegner, die dann rumlaufen, dass deren Fortbewegung teilweise heute schon in den aktuellen Videospielen verbessert wird durch genetische Algorithmen. Also die laufen, keine Ahnung, die haben halt die Anweisung, laufen immer durch die Tür, ja, und wenn da halt irgendwie jemand steht und der schießt die ein nach den anderen ab, dann lernt der und weiß so, naja, okay, durch die Tür soll ich nicht alle schicken, sonst sterben sie einer nach dem anderen, also versucht irgendwie hinten rum zu gehen oder durchs Dach oder sonst was. Also das ist tatsächlich erstaunlich, dass die Videospiele-Industrieder da ist. Da ist es halt aber auch nicht so kritisch, wenn der dann immer gegen die Wand läuft, dann stirbt auch keiner außer er dann, wenn der Spieler den umlegt, aber ja, aber das ist tatsächlich, also für die Erzeugung der Welten würde ich sagen, da gibt es andere Verfahren, die vielleicht sich besser eignen, aber theoretisch wäre das möglich auf jeden Fall. Sonst noch Fragen? Ja, bitte. Also die Frage war über das Stopping Criteria, dass man vielleicht sagen könnte, naja, wenn ich die über letzten 100 Generationen nur pro Cent marginal besser geworden bin, dann kann ich ja irgendwann aufhören. Würde man so denken, allerdings, wenn du nachher vorkommst, ich habe hier bei den Analysen, sie hat, also es ist, wo tatsächlich auch aufgezeichnet, wie gut die verschiedenen Generationen sind, wie gut der beste von einer Generation ist und wie gut der schlechteste von einer Generation ist. Und man sieht tatsächlich, also es gibt irgendwie, wie gesagt, das ist Teil dieser Analyse, naja, finde ich den Grafen, die ersten paar 100 Generationen, die sind schlecht, so zwischen 50 und 400 geht es relativ steil nach oben und dann flacht es ab. Und sie beschreibt halt, es wird halt beschrieben, wie in den ersten 400 Generationen wird dieses, dieses Suche nach dem Müll entwickelt. Und plötzlich, bei Generationen 800, 850, da sieht man tatsächlich auch im Grafen einen Sprung nach oben. Und wenn man sich halt jetzt die paar Kandidaten davor und danach anguckt, dann merkt man wirklich, kann man wirklich in der Analyse merken, die haben da plötzlich von einem Moment auf dem anderen fast, also wirklich in einem Genal von kürzester Zeit des Verhaltenen entwickelt. Wenn ich mehr in Müll sehe, dann gehe ich erst an das eine Ende und sammle dann von dort ab. Also ja, das ist bärne Möglichkeit. Aber es birgt halt natürlich Gefahren, weil die Sache ist halt nicht nur, die rekombinieren sich unter sich, sondern auch da spielt wieder die Mutation ins Spiel. Es kann ja sein, dass per Zufall durch diese Mutation, die ja eigentlich gar nicht gewollt ist, sondern einfach nur zusätzlich da ist, dass diese eine Mutation genau den Gen trifft, der diese Idee hat, so zu sagen. Aber ja, wie gesagt, man muss es sich halt überlegen, aber das ist nicht so einfach. Deswegen steht es auch als großes Negativaspekt da. Ja, da hinten links. Also die Frage war, wir haben jetzt hier ein Beispiel, da hat er halt keinen, da merkt er sich seinen Zustand nicht und merkt sie auch die Umgebung nicht. Und ob wenn man das jetzt irgendwie in der Datenschuktur schreiben würde, ob das dann auch funktionieren würde. Also ja, es wird funktionieren. Man müsste halt ein paar andere Sachen auch verändern. Zum Beispiel könnte ich mir gut vorstellen, dass dann irgendwie der genetische Algorithmus sich dann überlegt, na ja, ich gehe so spiralförmig im Kreis. Ja, da gibt es ja auch tausend verschiedene Strategien, gehe ich an der Wand entlang, um meine Suche fertig zu machen oder drehe ich mich im Kreis. Klar, wenn man sich halt vereinfacht, natürlich das Problem für die Person, die nicht den genetischen Algorithmus schreibt, wenn man halt sich die Karte merkt zum Beispiel. Ja, das hat ja natürlich Vorteile. Dann wäre das Problem, dann würde ich jetzt überhaupt näher, dann ist das Problem so simpel wieder in den 10 mal 10 fällt, dass es sich gar nicht erst lohnt, das genetische Programm laufen zu lassen. Also es war zugegebenermaßen, worauf ich hinaus will, es war zugegebenermaßen ein sehr, sehr simples Beispiel, was ich hier genommen habe. Ich kann dir gerne nachher erzählen, was ich für ein Problem in meiner Diplomarbeit ansprechen werde. Und dann wirst du sehen, dass es sich tatsächlich lohnt, dem mal rechnen zu lassen, mehr als, dass ich mich da jetzt hinsetze und selber durchrechne da rechts. Die Frage ist, wie funktioniert die Auswahl der Eltern? Also. Es ist eine Einführungsvortrag. Es war als Einführungsvortrag geplant. Ne, was sie sagen will, es gibt bei vielen Stellen ganz viele verschiedene unterschiedliche Verfahren oder Methoden oder wie zum Beispiel diesen Crossover, wie sich die DNA teilt. Also hier ging es halt tatsächlich nur, ich schneide da ein Stück ab, schneide da ein Stück ab an derselben Stelle und rekombiniere die. Man könnte auch bittweise die nehmen oder halt mehrere Abschnitte und die rekombinieren. Und das ist halt nur die Auswahl der DNA. Und so ähnlich bei ganz vielen der Stufen habe ich jetzt ein Beispiel genannt, aber es gibt tatsächlich ganz viele, was in diesem Beispiel gemacht worden ist. Das hatte ich mal erwähnt, es war probabilistische Auswahl. Das heißt, die werden auch gesortiert nach, wie gut sind sie? Und je besser die sind, desto höher die Wahrscheinlichkeit, sie zufällig als ein Elternteil zu suchen, zu rauszufinden. Dadurch hat man also. Es gibt auch tatsächlich Verfahren, wo man sagt, so ich nehme von den 200 die 20 besten, alle anderen, also 10 Prozent besten. Alle anderen schmeiß ich sofort weg und die 10 besten, die rekombiniere ich dann zufällig. Dadurch hat halt seine vor und nach Teile. Es hängt halt damit darin davon ab, was man machen will. Was man halt durch dieses Je besser ich bin, desto mehr Wahrscheinlichkeit habe, ich ein Elternteil zu zu werden. Was ich dadurch erreiche, ist, dass auch jemand, der gerade zufällig schwächer ist. Ja, nehmen wir mal an, der eine kann super suchen, aber der hebt einfach nie auf. Das heißt, er wird halt nie eine gute, eine hohe Score haben, eine hohe Wert haben. Aber der hat immer noch eine Chance, sich zu vermehren. Und es ist so wie ein schwacher Löwe, der vergewaltigt dann die müde Löwen. Und dann gibt es halt, ja, es gibt auch in der Natur so, dass der Schwache dann doch noch seine Chance kriegt. Sonst noch fragen, ja, ist halt brutale Realität. OK, ich glaube, das reicht. Ich weiß gar nicht. Ja, die Stunde ist auch rum. Das heißt, wir lassen die Bühne frei für den nächsten Vortragenden. Ich danke euch noch mal für die Aufmerksamkeit. Und falls ihr noch Fragen habt, ich bin noch eine Weile hier. Und falls ihr helfen wollt bei der GPN, dann könnt ihr mich auch noch mal ansprechen. Wir suchen nämlich noch Leute, die hier und da aushelfen. Aber vielen Dank noch mal.