Generieren von Designideen mithilfe eines genetischen Algorithmus

    Ich habe, wie viele Leute mit einer technischen Einstellung, Schwierigkeiten mit dem Zeichnen und grafischen Lösungen im Allgemeinen. Natürlich kann ich eine schöne Lösung von einer schlechten unterscheiden, aber ich bin in einer Sackgasse, wenn ich etwas von Grund auf neu zeichnen muss, egal ob es sich um die Benutzeroberfläche der Anwendung, Präsentation oder Postkarte handelt.
    In meinem letzten Artikel habe ich gezeigt, wie Sie den genetischen Algorithmus verwenden können, um ein Bild gemäß einer bestimmten Probe zu approximieren. In diesem Artikel werde ich zeigen, wie der genetische Algorithmus angewendet wird, um Bilder aus dem Kopf zu erzeugen.




    Hauptidee



    In einem früheren Artikel zur Approximation eines Bildes mit einer Reihe von Polygonen als Fitnessfunktion haben wir die Ähnlichkeit des ausgewählten Bildes mit dem Original verwendet. Welche Fitnessfunktion muss verwendet werden, wenn das Original fehlt und wir etwas völlig Neues erstellen müssen? Die Antwort bietet sich an - das Niveau der positiven Emotionen, die durch das Image des Kandidaten verursacht werden.
    Dies wirft jedoch eine neue Frage auf - wie man sie zuverlässig misst. Der einfachste Ansatz wäre, den Benutzer zu bitten, das Bild zu bewerten, aber meiner Meinung nach würde dies den logischen Teil des Gehirns zu sehr belasten, da Sie viel nachdenken müssten, Zweifel 4 oder 5, sich daran erinnern müssten, welche Bewertung Sie „über dieses schöne Bild“ setzen, um die Hierarchie zu beobachten .
    Da die Fitnessfunktion verwendet wird, um Entscheidungen zu ordnen und nach zunehmender Würde zu sortieren, wird vorgeschlagen, die Phase der Berechnung der Fitnessfunktion wegzulassen und sofort mit dem Sortieren unter Verwendung des menschlichen Gehirns als Vergleich fortzufahren.
    Der Quellcode für eine Java-Anwendung, die diese Idee implementiert, finden Sie hier . Ausführbarer Code kann hier heruntergeladen werden . Für die Ausführung ist eine JRE oder ein JDK erforderlich .
    Die Anwendung funktioniert wie folgt:
    1. Es wird eine zufällige Bildpopulation erzeugt
    2. Die Bilder werden nach dem QuickSort-Algorithmus sortiert, und die Person vergleicht die Bilder. Ihr werden einige Bilder angezeigt, und sie wird aufgefordert, das Beste aus beiden auszuwählen
    3. Nachdem die Sortierung gemäß dem genetischen Algorithmus abgeschlossen ist, indem die besten Vertreter der Bevölkerung gekreuzt werden, wird die nächste Generation von Bildern erzeugt
    4. Die Schritte 2 und 3 werden endlos wiederholt. Sie können Ihr Lieblingsbild jederzeit über das Kontextmenü speichern

    Der QuickSort-Algorithmus wurde geringfügig geändert, um die Anzahl der für einen Sortierzyklus erforderlichen Mausklicks zu verringern: Die
    Sortierung wird beendet, sobald die 6 besten Lösungen zur Generierung einer neuen Generation eindeutig ermittelt wurden. Die
    Ergebnisse von Vergleichen aus früheren Zyklen werden zwischengespeichert, und wenn der Benutzer diese bereits einmal verglichen hat Bei einigen Bildern werden bei der nächsten Iteration die Ergebnisse aus dem Cache übernommen

    Von der Theorie zur Praxis


    Abstraktes Bild

    Versuchen wir zunächst, ein abstraktes Bild zu zeichnen, das unser Auge erfreut. Wir werden das Bild als Überlagerung von fünf zufälligen radialen Verläufen mit einer Transparenz von 50% erstellen. Jeder Farbverlauf ist durch einen Mittelpunkt, einen Brennpunkt, einen Radius und einen Satz von zehn Farben gekennzeichnet, die nahtlos ineinander übergehen.
    Alle diese Parameter werden durch zufällige Werte initiiert und unter dem Einfluss der Geschmackspräferenzen des Benutzers weiterentwickelt.
    Bilder aus den ersten Generationen sehen normalerweise so aus:





    Nach mehreren Generationen verbessert sich die Attraktivität des Bildes jedoch um ein Vielfaches:





    Widget Clock Design

    Betrachten Sie ein praktischeres Beispiel und erstellen Sie ein virtuelles Uhrendesign, das als Widget verwendet werden kann.
    Wir teilen die Uhr in die folgenden Komponenten ein und bestimmen die Parameter, die wir auswählen werden.

    Widget-ElementParameter
    Gehäuse
    • Punkte, die das Polygon beschreiben, während jede Sekunde ein Steuerelement ist
    • Linienstärke und Farbe
    • Optionen für die Verlaufsfüllung

    Wählen Sie
    • Radius
    • Linienstärke und Farbe
    • Optionen für die Verlaufsfüllung
    • Pfeilstärke und Farbe
    • das Verhältnis der Zeiger zum Zifferblatt und zueinander

    Große Noten (12, 3, 6, 9 Stunden)
    • Entfernung vom Zentrum
    • Ansicht (Punkte, Striche, römische Ziffern, arabische Ziffern)
    • Größe
    • Farbe
    • Schriftart (falls zutreffend)

    Kleine Markierungen (alles andere)Das gleiche Set wie für große Marken


    Wie bei radialen Verläufen sehen die ersten Uhrengenerationen wie Werke avantgardistischer Kunst aus:





    Im Laufe der Zeit tauchen unter dem Einfluss künstlicher Selektion in jeder Hinsicht durchaus würdige Optionen auf:







    Fazit


    Somit wird die praktische Anwendbarkeit des genetischen Algorithmus im Design demonstriert. Die Zufälligkeit des Algorithmus ermöglicht es Ihnen, Ideen zu generieren, die Ihnen selbst nicht in den Sinn gekommen wären, und mehrere gute Entscheidungen im Laufe der Zeit zu treffen, bringt ihre besten Elemente zusammen.
    Der beschriebene Ansatz kann für eine Vielzahl von Entwurfsaufgaben verwendet werden, zum Beispiel für:
    • Erstellen von Avataren in Spielen oder Forensik in Forensik
    • Website-Erstellung
    • Gestaltung der Form von Haushaltsgegenständen
    • Autodesign

    Die einzige Unannehmlichkeit aus meiner Sicht ist die Notwendigkeit, Bilder im Vergleich paarweise zu sortieren, was bei einer Populationsgröße von 14 Teilen dazu führt, dass 15 bis 40 Klicks pro Zyklus erforderlich sind.
    Eine natürliche Optimierung wäre die Verwendung einer Neurocomputer-Schnittstelle wie Emotive EPOC . Dies würde es ermöglichen, jedes Bild einmal mit einer Messung des Niveaus der durch das Bild verursachten positiven Emotionen zu demonstrieren, was wiederum die Evolutionsrate erhöhen und die Populationsgröße für eine breitere Abdeckung des Entscheidungsraums erhöhen würde.
    Bild

    Jetzt auch beliebt: