-
Das Konzept des Quantencomputers, dessen Qubits sich mithilfe des quantenmechanischen Effekts der Superposition in mehreren Zuständen zugleich befinden können, hat in den letzten Jahrzehnten die effiziente Lösung NP-schwieriger Probleme in greifbare Nähe gerückt und das weite Feld der Forschung an Quanten-Algorithmen eröffnet.
-
Ein Optimierungsproblem, das sich besonders für die Lösung mithilfe von Quanten-Algorithmen eignet, ist die Quadratic Unconstrained Binary Optimization (QUBO), die auf einer Menge von binärwertigen Variablen eine polynomielle Zielfunktion zweiten Grades zu minimieren sucht; die Zielfunktion wird dabei so interpretiert, dass das globale Optimum dem angestrebten Quantenzustand minimaler Energie entspricht. Ein eng Verwandtes Optimierungsproblem ist das Ising-Modell (auch Ising-Spin-Glas), dessen Variablen die Werte +1 und -1 annehmen können.
-
Zahlreiche Probleme aus verschiedenen Bereichen des Maschinellen Lernens wie der Klassifikation und der Bilderkennung lassen sich mithilfe von QUBO formulieren und folglich mit einem entsprechenden Quanten-Optimierer effizient lösen. Da die Optimierung des Ising-Modells weiterhin NP-vollständig ist, lassen sich sämtliche NP-schweren Probleme darauf reduzieren.
-
Während es an Anwendungen für Quanten-Algorithmen also nicht mangelt, steckt die physische Umsetzung von Quantenrechnern noch immer weitgehend in den Kinderschuhen.
-
Mittlerweile gibt es frei käufliche Quantencomputer. Der enthaltene QPU-Kern besitzt rund zweitausend Qubits auf einem Chip von der Größe eines Daumennagels und ist von einem drei Meter langen, zwei Meter breiten und drei Meter hohen Gehäuse umgeben, das u.a. ein Kühlsystem beherbergt, welches den Kern auf die notwendige Betriebstemperatur von 15 Millikelvin über dem absoluten Nullpunkt bringt, und das außerdem das Erdmagnetfeld abschirmt und so einen feldfreien Raum mit einer magnetischen Flussdichte von unter einem Nano-tesla erzeugt.
-
Allerdings ist sowohl der Kaufpreis mit mehreren Million USD hoch als auch der Betrieb teuer.
-
Zudem kann nicht nachgewiesen werden, dass der bekannte Quantenrechner die Lösung NP-schwieriger Probleme substantiell beschleunigt.
-
Ausgehend hiervon ist es eine Aufgabe der Erfindung ein kostengünstiges einfaches System zur Verfügung zu stellen.
-
Die Aufgabe wird gelöst durch ein System zur evolutionären Optimierung pseudoboolescher Polynome, aufweisend eine konfigurierbare Hardwarekomponente, wobei die Hardware zur Minimierung quadratischer pseudoboolescher Polynome ausgestaltet ist, wobei die Hardwarekomponente durch eine Softwarekomponente dazu eingerichtet ist mittels eines evolutionären Algorithmus zu minimieren.
-
Weitere vorteilhafte Ausgestaltungen sind Gegenstand der jeweils abhängigen Ansprüche, der Figuren und der Beschreibung.
-
Im Folgenden wird die Erfindung anhand einer Zeichnung und Ausführungsbeispielen näher erläutert. Die Zeichnung ist eine schematische Darstellung und nicht maßstabsgetreu. Die Zeichnung schränkt die Erfindung in keiner Weise ein.
-
Es zeigen:
- 1 eine schematische Funktionsweise eines evolutionären Algorithmus gemäß Ausführungsformen der Erfindung,
- 2 eine schematische Darstellung einer Evaluatorkomponente gemäß Ausführungsformen der Erfindung, und
- 3 eine schematische Darstellung einer beispielhaften Architektur einer Suchheuristik gemäß einer Ausführungsform der Erfindung.
-
Nachfolgend wird die Erfindung eingehender unter Bezugnahme auf die Figuren dargestellt werden. Dabei ist anzumerken, dass unterschiedliche Aspekte beschrieben werden, die jeweils einzeln oder in Kombination zum Einsatz kommen können. D.h. jeglicher Aspekt kann mit unterschiedlichen Ausführungsformen der Erfindung verwendet werden soweit nicht explizit als reine Alternative dargestellt.
-
Weiterhin wird nachfolgend der Einfachheit halber in aller Regel immer nur auf eine Entität Bezug genommen. Soweit nicht explizit vermerkt, kann die Erfindung aber auch jeweils mehrere der betroffenen Entitäten aufweisen. Insofern ist die Verwendung der Wörter „ein“, „eine“ und „eines“ nur als Hinweis darauf zu verstehen, dass in einer einfachen Ausführungsform zumindest eine Entität verwendet wird.
-
Soweit nachfolgend Verfahren beschrieben werden, sind die einzelnen Schritte eines Verfahrens in beliebiger Reihenfolge anordbar und/oder kombinierbar, soweit sich durch den Zusammenhang nicht explizit etwas Abweichendes ergibt. Weiterhin sind die Verfahren - soweit nicht ausdrücklich anderweitig gekennzeichnet - untereinander kombinierbar.
-
Angaben mit Zahlenwerten sind in aller Regel nicht als exakte Werte zu verstehen, sondern beinhalten auch eine Toleranz von +/- 1 % bis zu +/- 10 %.
-
Soweit in dieser Anmeldung Normen, Spezifikationen oder dergleichen benannt werden, werden zumindest immer die am Anmeldetag anwendbaren Normen, Spezifikationen oder dergleichen in Bezug genommen. D.h. wird eine Norm / Spezifikation etc. aktualisiert oder durch einen Nachfolger ersetzt, so ist die Erfindung auch hierauf anwendbar.
-
In den Figuren sind verschiedene Ausführungsformen dargestellt.
-
Ein erfindungsgemäßes System zur evolutionären Optimierung pseudoboolescher Polynome weist dabei im Wesentlichen zwei Komponenten auf. Zum einen weist das System eine konfigurierbare Hardwarekomponente auf, zum anderen weist das System eine Softwarekomponente auf.
-
Die Hardwarekomponente ist zur Minimierung quadratischer pseudoboolescher Polynome ausgestaltet.
-
Funktionen der Form f:B
n → R heißen pseudoboolesche Funktionen (kurz PBF). Da ihre Urbildmenge mit |B
n| = 2
n endlich ist, kann auch die Bildmenge nur aus höchstens 2
n verschiedenen Werten bestehen. Somit lässt sich jede solche Funktion theoretisch als Liste von Paaren (x, f(x)) für alle x E B
n darstellen. Da diese Darstellung für große n äußerst ineffizient ist, bietet sich die Repräsentation in Form von Polynomen an:
-
Dabei sind αi, βij, γijk, .... ∈ R. Die Multiplikation von Binärwerten entspricht einer Verrundung, d.h. das Produkt nur gleich 1 ist, wenn alle xi gleich 1 sind. Die Definition des Polynoms ist demnach äquivalent zu einer Zuordnung von Koeffizienten zu allen möglichen Untermengen von Bits, die in x enthalten sind. Die Koeffizienten, deren zugehörige Untermenge von Bits verrundet gleich 1 ist, werden aufsummiert.
-
Dadurch ergibt sich folgende alternative, kompaktere Darstellung des Polynoms:
-
Die Größe der größten Untermenge, deren zugehöriger Koeffizient nicht 0 ist, bezeichnet man als Grad k des Polynoms:
-
Es lässt sich jedoch zeigen, dass jede beliebige pseudoboolesche Funktion f durch ein Polynom mit eindeutigen Koeffizienten ßI dargestellt werden kann.
-
Eine wichtige Unterklasse der pseudobooleschen Funktionen (abgek. PBF) bilden die quadratischen Polynome, also solche mit Grad k = 2 der Form
Sie eignen sich gut als Zielfunktionen für Optimierungsprobleme, da einerseits die Anzahl der Koeffizienten im Vergleich zu allgemeinen Polynomen nicht |B
n| = 2
n, sondern nur
beträgt. Andererseits besitzen quadratische PBF die herausragende Eigenschaft, dass jede PBF f höheren Grades auf eine PBF f̃ zweiten Grades reduziert werden kann, die ein äquivalentes globales Minimum besitzen.
-
Ein entsprechender Algorithmus zur Reduktion einer PBF in Polynomdarstellung wird z.B. in BOROS, ENDRE und PETER L HAMMER: Pseudo-boolean optimization. Discrete applied mathematics, 123(1-3):155-225, 2002. beschrieben.
-
Aufgrund dieser nützlichen Eigenschaften bilden quadratische PBF die Grundlage einer Klasse von Optimierungsproblemen, die als Quadratic Unconstrained Binary Optimization (kurz QUBO) bezeichnet wird und die Form
besitzt. Im Gegensatz zur allgemeinen Definition der quadratischen Polynome entfällt hier α
0, da es die Lage des Optimums nicht beeinflusst. Als weitere Vereinfachung zur Reduktion der Parameterzahl können die Parameter α
i und
für alle i E {1, ...,N} zusammengefasst werden, da sie offenbar immer gleichzeitig in die Gesamtsumme einfließen.
-
Dadurch ergibt sich nachfolgend eine Definition der Zielfunktion mit genau
Koeffizienten.
-
QUBO gehört zu den NP-schweren Problemen, und viele bekannte NP-schwere Probleme wie das Teilsummenproblem und 2-Means-Clustering lassen sich darauf und auf das äquivalente Ising-Modell reduzieren. Als Konsequenz ist ein Optimierer für QUBO vielseitig einsetzbar für andere schwierige Probleme, wodurch der Bedarf nach spezialisierten Algorithmen für solche Probleme potenziell gesenkt wird.
-
Das Ising-Modell ist ein besonderes graphisches Modell aus dem Bereich der theoretischen Physik. welches aufgrund seiner Allgemeinheit jedoch Anwendungen zur Modellierung vielfältiger Optimierungsprobleme gefunden hat. In seiner ursprünglichen Form besteht es aus einer gitterförmigen Anordnung von Knoten, die mit ihren jeweiligen vier Nachbarn über eine Kante verbunden sind. Die von der Knotenmenge indizierten Zufallsvariablen können die Werte +1 und -1 annehmen, was als Ausrichtung eines Magneten in einem Feld oder als An- bzw. Abwesenheit von Teilchen interpretiert werden kann. Im verallgemeinerten Ising-Modell kann jede Variable mit jeder anderen interagieren. unabhängig von einer Nachbarschaftsbeziehung.
-
Die Zielfunktion des Ising-Modells ist sehr ähnlich zu QUBO und unterscheidet sich ausschließlich in der Interpretation der Variablenausprägungen: Während QUBO Binärvektoren x E {0,1}
N minimiert, ist die Lösungsmenge eines Ising-Modells {-1, +1}
N.
-
Im Gegensatz zur QUBO-Zielfunktion lässt sich diese Zielfunktion nicht vereinfachen, indem die linearen Terme in die quadratischen integriert werden, denn je nach Vorzeichen von S
i geht der Parameter α
i positiv oder negativ in die Gesamtsumme ein, während die quadratischen Parameter β
ij immer addiert werden, da s
i · s
i = +1 für alle s
i ∈ {-1, +1}. Dies hat allerdings auch zur Folge, dass β
ij unabhängig von der Belegung von s
i und dadurch eine Konstante bezüglich der Minimierung ist:
-
Dies lässt sich dazu ausnutzen, um mit der Architektur eines QUBO-Optimierers einen Optimierer für das Ising-Modell zu implementieren.
-
Mittels der Softwarekomponente wird die Hardwarekomponente dazu eingerichtet mittels eines evolutionären Algorithmus zu minimieren. D.h. die Optimierung wird durch die Hardwarekomponente durchgeführt. Die Softwarekomponente stellt eine Umwandlung eines verschiedenen Optimierungsproblems und/oder eines Problems des Maschinenlernens in QUBO-Form zur Verfügung und richtet dementsprechend die Hardware zur Optimierung ein. Die Einrichtung der Hardwarekomponenten ist z.B. eine Hardwarebeschreibungssprache, z.B. VHDL.
-
Der Softwarekomponente können auch weitere Aufgaben zukommen, wie z.B. die Unterstützung von Kommunikation mit der Hardwarekomponente.
-
Evolutionäre Algorithmen nehmen sich die natürliche Selektion zum Vorbild und können auf Populationen von Lösungen Mutation und Rekombination anwenden, um zu fortschreitend besseren Lösungen zu gelangen.
-
Eine Methode, um solche Verfahren möglichst effizient und schnell auszuführen besteht in einer hardwarenahen Implementierung anstelle einer üblichen Implementierung in einer Hochsprache.
-
In einer Ausführungsform der Erfindung ist die konfigurierbare Hardwarekomponente ein Field Programmable Gate Array (FPGA) oder ein Application-Specific Integrated Circuit (ASIC).
-
Diese lassen sich besonders einfach durch eine Hochsprache beschreiben. Alternativ können auch Complex Programmable Logic Devices (CPLD) zur Verwendung kommen.
-
Besonders Field Programmable Gate Arrays (FPGAS), die zum einfachen und schnellen Prototyping von Mikrochips entwickelt wurden, sind vorteilhaft, da diese es ermöglichen die positiven Effekte von Mikroparallelisierung auf die Geschwindigkeit von Algorithmen auszunutzen.
-
Durch ihre hohe Taktrate und die fehlenden Abstraktionsebenen, die die meisten Hochsprachen auszeichnen und zu einer hohen Zahl von CPU-Operationen führen, erreichen sie Geschwindigkeiten, die herkömmliche Software-Implementierungen häufig um das Tausendfache übertreffen.
-
Zudem sind FPGAs verglichen mit einem kommerziell erhältlichen Quantencomputer mit einer Preisspanne von unter 100 € bis einigen Tausend € erheblich preisgünstiger in der Anschaffung als auch an die Anforderungen an den Betrieb und die damit verbundenen Betriebskosten.
-
Die Implementierung auf einem FPGA bringt große Geschwindigkeitsvorteile: Ein FPGA funktioniert als rein logische Schaltung; er besitzt kein fest eingebautes Betriebssystem mit Hintergrunddiensten und langsamen Peripheriegeräten und lässt sich dadurch weitaus schneller takten als herkömmliche Computer (bis zu einigen hundert MHz). Die direkte Implementierung von Algorithmen auf Registerebene ist weitaus effizienter, da einerseits Software-Abstraktionen wie Funktionsaufrufe und andererseits Betriebssystemfunktionalität wie Scheduling entfallen und die Anzahl Rechenoperationen pro Taktzyklus so drastisch erhöht wird. Gerade für gut parallelisierbare Algorithmen sind FPGAs daher ein besonders effektives Medium.
-
Die Erfindung löst das Problem mittels einer QUBO-Optimierung mithilfe eines evolutionären Algorithmus auf einer programmierbaren Hardwarekomponente.
-
Die im Rahmen dieser Erfindung vorgestellte Implementierung ist sowohl hinsichtlich der Populationsgröße, der Anzahl Variablen sowie der Größe der Zielfunktionsparameter voll anpassbar.
-
Weiterhin ist sie ohne Neuprogrammierung der Hardwarekomponente dazu imstande, den initialen Seed für die Zufallszahlengenerierung zu ändern und zwischen der Optimierung eines QUBO-Problems und eines Ising-Modells zu wechseln, und arbeitet mit einer hohen Taktfrequenz von 100 MHz oder mehr.
-
Trotz zahlreicher Weiterentwicklungen und Verbesserungen stechen (µ+λ)-Evolutionäre Algorithmen und (µ, λ)-Evolutionäre Algorithmen als solide Vertreter der Evolutionsstrategien hervor. Vor allem der (µ+λ)-Evolutionäre Algorithmus ist hinsichtlich seiner Konvergenzeigenschaften gut untersucht und erreicht auf lange Sicht garantiert ein globales Optimum. Daher wird nachfolgend von einem solchen (µ+λ)-Evolutionären Algorithmus ausgegangen.
-
Die Erfindung erlaubt einen Optimierer bereitzustellen, der parametrisierbar ist, d. h. insbesondere die Dimension N, die (µ+λ)-Evolutionärer Algorithmus- Parameter µ und λ und auch die Bit-Breite bß der Zielfunktionsparameter sind parametrisierbar. Andere Parameter zur Steuerung der Mutationsrate können ebenfalls in Ausführungsformen entsprechend geändert werden. Beispielsweise kann vorgesehen sein, dass nach einer vorbestimmbaren Anzahl von Generationen ohne Verbesserung die Mutationsrate, d.h. die erwartbare Anzahl invertierter bits pro Mutation, um eine vorbestimmbare Schrittweite geändert, insbesondere erhöht wird. Weiterhin kann der Optimierer verschiedene initiale Seeds erhalten, um so die Mutation mit verschiedenen Zufallszahlen durchführen und gegebenenfalls zu anderen Optima konvergieren zu können. Als Abbruchkriterium kann ein Budget dienen, das ebenfalls mit einem beliebigen Wert initialisiert werden kann und nach jeder Iteration des evolutionären Algorithmus um einen bestimmten Wert geändert, z.B. um 1 verringert, werden kann. Der Optimierer kann auch in einer Endlosschleife betrieben werden. Ebenso kann das gegenwärtige Optimum zu vorbestimmten Zeitpunkten, beispielsweise periodisch, abgefragt werden.
-
Eine weitere wichtige Funktionalität ist der Ising-Modus, mit dem die Zielfunktionskoefizienten als Interaktionen zwischen den Variablen eines Ising-Modells interpretiert werden - durch diese Erweiterung können sowohl QUBO als auch das Ising-Modell effizient auf Hardware-Ebene gelöst werden. Da QOBO und das Ising-Modell zueinander vollständig äquivalent sind, kann ein Ising-Modell alternativ auch software-seitig in ein QUBO-Problem umgewandelt und als solches gelöst werden.
-
zeigt den schematischen Aufbau des EA-Optimierers. Die gesamte Population, bestehend aus Eltern und Nachkommen, kann als Array vorliegen. Damit die Zielfunktionswerte nicht in jeder Iteration neu berechnet werden müssen, können zusammen mit den Individuen auch ihre jeweiligen Zielfunktionswerte gespeichert werden. In Schritt 1 werden zufällige Eltern aus der Elternpopulation ausgewählt und mutiert. Die so entstandenen Nachkommen werden in die Nachkommenpopulation geschrieben. In Schritt 2 wird die Zielfunktion auf den soeben generierten Nachkommen ausgewertet und das Ergebnis in das Array mit Zielfunktionswerten geschrieben. Als nächstes kann die gesamte Population (bevorzugt) aufsteigend nach Zielfunktionswert sortiert werden, sodass die Individuen mit minimalen Werten ganz links im Array stehen. Die Sortierung kann in zwei Schritten erfolgen: Zunächst wird in Schritt 3 eine Index-Sortierung auf den Zielfunktionswerten durchgeführt, d. h. das Ergebnis sind nicht die Werte selbst, sondern eine Permutation der Indizes. Basierend auf dieser Sortierung können die µ Indizes mit kleinstem Zielfunktionswert in Schritt 4 sowohl auf die Population selbst als auch auf die Zielfunktionswerte der Population angewandt und die entsprechenden Individuen und Werte in die Elternpopulation geschrieben werden. Nach diesem letzten Schritt liegen also die besten Individuen der gesamten Population in der Elternpopulation: Falls durch die Mutation keine Verbesserung stattgefunden hat, sind folglich auch die vorherigen Elternindividuen wieder in die Elternpopulation sortiert. Wurde durch Mutation hingegen ein Nachkomme mit kleinerem Zielfunktionswert gefunden, verdrängt dieser ein Elternindividuum wie in einer Rangliste aus der Elternpopulation. Durch die Sortierung der gesamten Population statt nur der Nachkommen kann die elitistische Plus-Selektion umgesetzt werden.
-
Bei diesem Schema fehlt eine Rekombination, deren Notwendigkeit in der Literatur umstritten ist.
-
Der Mutationsoperator auf Bitvektoren wird wie folgt umgesetzt: Für jedes zu mutierende Bit wird eine Bernoulli-verteilte Zufallsvariable z
i erzeugt, die anzeigt, ob das Bit invertiert wird. Die Erfolgswahrscheinlichkeit wird auf p = 1 /N gesetzt, dadurch beträgt die erwartete Anzahl invertierter Bits unabhängig von der Dimension des Optimierungsproblems
-
Die Zufallszahlen können simuliert werden, indem eine zufällige ganze Zahl erzeugt und Modulo N gerechnet wird; Ist die resultierende Zahl durch N teilbar, wird das Bit invertiert, andernfalls unverändert belassen. Da der verwendete Pseudozufallszahlengenerator genau eine (64-Bit-) Zufallszahl pro Taktzyklus erzeugt, benötigt die Mutation daher O(N)) Taktzyklen oder weniger, insbesondere O(Ak) Taktzyklen, wobei k die erwartete Anzahl mutierter Bits ist.
-
Bei der Implementierung in einer höheren Programmiersprache würde die Mutation sämtlicher Individuen sequenziell erfolgen, sodass die Laufzeit insgesamt O(λN) betragen würde. D.h. obwohl in einer Software-Implementierung scheinbar alle Nachkommen gleichzeitig mithilfe der Listenkomprehension erzeugt werden könnten, ist dies doch nur eine syntaktische Umschreibung einer ansonsten sequenziellen Verarbeitung.
-
Der große Vorteil der Hardware-Implementierung (z.B. entsprechend 2) liegt in der Verwendung von Mikroparallelisierung: Anstatt die Mutation nacheinander auszuführen kann für jeden Nachkommen ein eigenes Mutationsmodul erstell werden, welches genau ein Elternindividuum bearbeitet. Diese λ Module können alle Nachkommen gleichzeitig erzeugen. Dadurch wird die Zeit für die Mutation der gesamten Population auf 0(N) verringert. Um in jedem Zyklus die notwendige Zufallsvariable berechnen zu können, kann jedes solche Modul eine eigene Instanz des Pseudozufallszahlengenerators erhalten, die jeweils einen eigenen Seed bekommt, welcher wiederum vom ursprünglichen Seed abgeleitet ist. Dadurch ist der gesamte Optimierungsverlauf durch einen einzigen Seed determiniert. Dabei sollen alle Generatoren (Instanzen des Pseudozufallszahlengenerators) mit verschiedenen Seeds initialisiert werden, um so zu vermeiden, dass der evolutionäre Algorithmus zu einem (1 + 1)-evolutionären Algorithmus wird, bei dem sämtliche Mutationsmodule die gleichen Bits invertieren würden.
-
In 2 sind auch Evaluatoren E für die Zielfunktionsauswertung gezeigt. Hier sind ebenfalls λ Module vorsehbar, welche parallel auf je einem Individuum arbeiten.
-
Nachfolgend wird eine weitere Ausführungsform des Optimierers skizziert, die eine geringere asymptotische Laufzeit aufweist als der zuvor beschriebene Grundaufbau.
-
Die Mutations- und Evaluationsstrategie hat hier eine erwartete Laufzeit von O(K̂), wobei K̂ = E[K] die erwartete Anzahl invertierter Bits pro Individuum ist. Diese kann man durch den Parameter ρ einstellen; näherungsweise ist
-
Durch die gewichtete Summierung der k-ten Spalte der Parametermatrix ((βi,k)i∈{1,...,n}) kann die Änderung des Zielfunktionswerts berechnet werden, die durch Invertierung von Bit k erzeugt wird. Die Summe kann auf einem FPGA durch einen sog. Adder-Tree in logarithmischer Laufzeit berechnet werden, d.h. für die Summierung von n Werten benötigt das System logn Taktzyklen. Da der Adder-Tree als Pipeline konzipiert werden kann, werden dann die vollen logn Taktzyklen nur einmal pro Mutation benötigt, nicht für jedes Einzelne Nachkommensindividuum, wodurch die Laufzeit um den Faktor λ verringert werden kann.
-
Für die Selektion benötigt das System log(λ) Taktzyklen, da das Minimum einer Liste von λ Elementen bestimmt werden muss. Da die Mutationsstrategie auf jedem der λ Individuen sequentiell wie in einer Pipeline ausgeführt wird, beträgt die erwartete Gesamtlaufzeit pro Generation in etwa
-
In 3 ist ein Beispiel für die Ausführung eines Optimierungszykluses (Generation) auf einem konkreten Layout der zuvor beschriebenen Komponenten dargestellt. Dabei sind unter β = (βij)1≤i,j≤n eine Parametermatrix und unterx0 eine Startlösung zu verstehen. Aus der Mutationsstrategie folgen die Nachkommen x̃1... x̃λ und ihre jeweiligen Zielfunktionsdifferenzen. Der Nachkomme x̃*t, für den diese Differenz minimal ist, kann als Elternindividuum der nachfolgenden Genration ausgewählt werden. Implizit kann immer das Elternindividuum xt mit der Zielfunktionsdifferenz 0 an der Selektion teilnehmen, sodass nur Nachkommen mit einer Differenz von 0 oder weniger (d.h. solche, die mindestens so gut wie xt oder besser sind) zu neuen Elternindividuen werden können. Dadurch wird diese Selektionsstrategie wiederum zu einer elitistischen Plus-Selektion (wie zuvor beschreiben - Seite 9).
-
Die zur Optimierung verwendete Such-Heuristik basiert auf einem evolutionären Algorithmus (1+λ-EA ohne Rekombination). Die Optimierung weist dabei beispielsweise den nachfolgend skizzierten Ablauf auf. Man startet mit einer Anfangslösung xt = x0. Diese Anfangslösung kann auch zufällig ausgewählt sein. Nunmehr können z.B. λ Kopien von xt erstellt werden. Auf jede dieser Kopien kann nun (parallel oder sequentiell, je nach konkreter Architektur) die Mutations- und Evaluationsstrategie ausgeführt werden. Hierdurch werden die Nachkommen x̃1 ...x̃λ erzeugt. Aus den Nachkommen kann jeweils, wiederum je nach konkreter Architektur, eine Änderungsrate der Zielfunktion oder der tatsächliche Zielfunktionswert bestimmt werden. Das Nachkommensindividuum, das sie geringste zugehörige Zielfunktionsänderungsrate bzw. den geringsten Zielfunktionswert aufweist, wird für das weitere Vorgehen ausgewählt. Falls die Änderungsrate der Zielfunktion kleiner oder gleich 0 ist, d.h., wenn eine echte Verbesserung oder aber zumindest eine gleich gute Lösung gefunden wurde, wird der entsprechende Nachkomme als neue Elterngeneration verwendet. Andernfalls wird die Suchheuristik mit der vorherigen Lösung fortgesetzt. Ein solcher Durchlauf wird als Generation bezeichnet. Eine solche Optimierungsstrategie kann beliebig lange laufen. Sie kann auch nach einer vorbestimmten Anzahl von Generationen ohne Verbesserung enden. Ebenso kann alternativ oder zusätzlich vorgesehen sein, dass die Optimierung durch einen Benutzer oder kommunizierende Hardware- oder Software-Komponenten unterbrochen wird.
-
Die in der zuvor beschriebenen Suchheuristik verwendete Mutations- und Evaluierungsstrategie kann aus einer Ausgangslösung x ein Nachkommen x̃ und eine zugehörige Änderungsrate der Zielfunktion ΔL erzeugen. Sie hat einen freien Parameter ρ mit 0 ≤ ρ < 1, der als Mutationsrate bezeichnet wird. Die Strategie weist dabei beispielsweise den nachfolgend skizzierten Ablauf auf: Man setze x̃ ← x und die Änderungsrate der Zielfunktion auf 0. Ein zufälliger Index k E {1, ..., n} wird ausgewählt. Dabei wird angenommen, dass dies bevorzugt gleichverteilt geschieht. Anschließend wird ΔL ← ΔL + (1 - 2x̃
k) .
gesetzt. Nunmehr kann x̃ an der Stelle k invertiert werden (Mutation). Wiederum wird eine Zufallszahl z E {0,1} Bernoulli-verteilt mit Erfolgswahrscheinlichkeit ρ ausgewählt. Falls z = 1, d.h. im Erfolgsfall, kehrt man zurück zur Auswahl eines zufälligen Indexes k und wiederholt den Ablauf ab dort. Andernfalls werden x̃ und ΔL als Ergebnis bereitgestellt.
-
Die Parameter n (Länge der Bitvektoren) und λ (Anzahl der Nachkommen pro Generation) sind für eine eingestellte Konfiguration des FPGAs fest und können durch erneutes Programmieren des Chips (Flashen) geändert werden.
-
Mögliche Werte für n beschränken sich auf ganzzahlige Zweierpotenzen (2, 4, 8, 16, 32 etc.), für λ auf ganze Zahlen größer als 1.
-
Die Parameter βij können auf einem FPGA als ganze Zahlen dargestellt werden. Die Anzahl Bits b, mit der jeder Parameter kodiert werden kann, ist ebenfalls (durch erneutes Flashen des FPGA) konfigurierbar. Die Parameter haben somit einen möglichen Wertebereich von {-2b-1, ..., 2b-1 - 1}.
-
Die Anpassung der Mutationsrate kann geeignet erfolgen. Beispielsweise kann der Parameter ρ zu Anfang auf einen vorbestimmten Wert, z.B. 0, gesetzt werden. Wurde innerhalb der letzten T Generationen (Anzahl einstellbar) keine Verbesserung gefunden, kann ρ um einen bestimmten (kleinen) Wert δ>0 erhöht werden. Wird weiterhin keine Verbesserung gefunden, kann sich die Erhöhung wiederholen. Dabei kann die Anzahl T gleichbleiben oder (einstellbar) geändert sein.
-
Hat ρ einen (einstellbaren) Maximalwert, z.B. nahe 1, erreicht, kann von einer weiteren Erhöhung abgesehen werden (Abbruchkriterium der Erhöhung der Mutationsrate).
-
Wird zu irgendeinem Zeitpunkt während der Optimierung eine Verbesserung gefunden, wird ρ wieder auf einen vorbestimmten (kleinen) Wert, z.B. seinen Startwert, z.B. 0, (zurück-)gesetzt.
-
Der Wert T kann insbesondere ohne Flashen des FPGAs vom Benutzer eingestellt werden.
-
Neben der Optimierung der QUBO-Zielfunktion kann der EA-Optimierer auch das eng verwandte Ising-Model minimieren. Da der Unterschied zwischen diesen beiden Modellen lediglich in der Interpretation der binären Variablen bei der Zielfunktionsauswertung besteht, kann mit der gleichen Architektur wie für den QUBO-Optimierer ein Optimierer für das Ising-Modell gebaut werden, der sich nur in der unterschiedlichen Interpretation der Binär-Variablen innerhalb des Evaluator-Moduls unterscheidet: Sind xi und xj des aktuellen Individuums gleich, so gilt xi · xj = +1 und βij fließt positiv in die Summe der Koeffizienten ein. Andernfalls gilt xi · xj = -1 und βij wird abgezogen. Ist i = j, wird der Parameter βij als linearer Term interpretiert und entsprechend dem Vorzeichen von xi entweder addiert oder subtrahiert.
-
Dadurch wird es ermöglicht, dass zwischen der QUBO-Optimierung und dem „Ising-Modus“ gewechselt werden kann ohne die Hardwarekomponente neu zu programmieren.
-
In einer Ausführungsform der Erfindung weist das System weiterhin eine Schnittstelle auf, wobei die Schnittstelle dazu eingerichtet ist, Signale und Informationen mit einer Softwarekomponente auszutauschen, insbesondere zu empfangen.
-
Die Schnittstelle kann auch durch andere Hardwarekomponenten verwendet werden; es ist ein allgemeines Protokoll, das man sowohl per Hardware als auch per Software ansprechen kann, um die Hardwarekomponente zu steuern.
-
In einer Ausführungsform der Erfindung ist die Schnittstelle eine drahtgebundene Schnittstelle, wie z.B. UART oder POI.
-
Diese erlaubt die einfache Kommunikation mit dem FPGA. Über diese Schnittstelle können beispielsweise die Koeffizienten übertragen werden und/oder das aktuelle Optimum abgefragt werden.
-
Mögliche Schnittstellen können aber auch ein Display und/oder LEDs an der Hardwarekomponente sein. Beispielsweise könnte das aktuelle Optimum und/oder ein zugehöriger Zielfunktionswert als Bitstring auf dem Display angezeigt und/oder der Status des Optimierers über die LEDs kodiert sein.
-
Häufig sind in Hardwarekomponenten, wie z.B. FPGAs, solche Schnittstellen bereits integriert. Eine Übertragung von Daten über eine POI- oder UART-Verbindung kann von einem lokalen Rechner, an den die Hardwarekomponente angeschlossen ist, an einen beliebigen entfernten Rechner mit entsprechender Client-Software weitergeleitet werden.
-
Andere Schnittstellen sind hierdurch jedoch nicht ausgeschlossen. Vielmehr kann die Schnittstelle auch eine Schnittstelle zur Verbindung mit einer Peripherieeinrichtung eines Computers sein, z.B. eine USB-Schnittstelle, eine drahtlose oder drahtgebundene Netzwerkschnittstelle. Drahtgebunden schließt auch eine optische Schnittstelle mit ein.
-
Ohne Beschränkung der Allgemeinheit kann natürlich auch vorgesehen sein, dass das System innerhalb eines Rechners, z.B. als eine Erweiterungskarte, vorgesehen ist. Hierzu kann die Schnittstelle eine Schnittstelle zur Verbindung innerhalb eines Computers, z.B. eine PCI-Schnittstelle sein.
-
Weiterhin ohne Beschränkung der Allgemeinheit kann in Ausführungsformen der Erfindung vorgesehen sein, dass das System eine Schnittstelle zur Ausgabe eines zuletzt festgestellten (lokalen) Minimums aufweist. In Ausführungsformen kann zudem vorgesehen sein alternativ oder zusätzlich weitere Informationen bereitzustellen. Solche Informationen können z.B. eine Verbesserung (Differenz zum Startwert) seit Beginn der Optimierung, eine aktuelle Generationszahl, die Generation bzw. der Taktzyklus der letzten gefundenen Verbesserung, eine aktuelle Mutationsrate, etc. einzeln oder in beliebiger Kombination betreffen.
-
Insbesondere kann die Schnittstelle eine lokale Anzeige wie zuvor beschrieben aufweisen.
-
Ohne Beschränkung der Allgemeinheit kann die Softwarekomponente ein Lernproblem der künstlichen Intelligenz betreffen. Ebenso kann die Softwarekomponente probabilistische (graphische) Modelle‟ oder „generative Wahrscheinlichkeitsmodelle“ betreffen.