{"id":4921,"date":"2024-01-31T10:59:11","date_gmt":"2024-01-31T10:59:11","guid":{"rendered":"https:\/\/lamarr-institute.org\/blog\/qubolite-qubo\/"},"modified":"2025-11-12T14:54:20","modified_gmt":"2025-11-12T14:54:20","slug":"qubolite-qubo","status":"publish","type":"blog","link":"https:\/\/lamarr-institute.org\/de\/blog\/qubolite-qubo\/","title":{"rendered":"qubolite: Eine Toolbox f\u00fcr das Arbeiten mit QUBO"},"content":{"rendered":"\n<p>Quantencomputing (QC) hat eine neue \u00c4ra der Berechnung eingel\u00e4utet und verspricht, Probleme zu l\u00f6sen, die f\u00fcr klassische Computer praktisch unl\u00f6sbar sind. Eine der vielversprechendsten Anwendungen des Quantencomputings ist die F\u00e4higkeit, kombinatorische Optimierungsprobleme wie \u201eQuadratic unconstrained binary optimization\u201c (QUBO) Probleme zu l\u00f6sen. Diese Problematik hat mit dem Aufkommen des Quantencomputings wieder an Bedeutung gewonnen. Solch schwer zu l\u00f6senden kombinatorischen Probleme treten in vielen verschiedenen Bereichen auf, einschlie\u00dflich dem Finanzbereich, der Logistik, dem Maschinellen Lernen (ML) und Data Mining. F\u00fcr mehr Details \u00fcber QC und die Optimierung im Maschinellen Lernen sei hier auf unsere Blogeintr\u00e4ge \u201e<a href=\"https:\/\/lamarr-institute.org\/de\/blog\/quantencomputer\/\" target=\"_blank\" rel=\"noreferrer noopener\">Quantencomputer: Neue Potenziale f\u00fcr Maschinelles Lernen<\/a>\u201d und \u201e<a href=\"https:\/\/lamarr-institute.org\/de\/blog\/optimierung-im-maschinellen-lernen\/\" target=\"_blank\" rel=\"noreferrer noopener\">Optimierung im Maschinellen Lernen<\/a>\u201d verwiesen.<\/p>\n\n\n\n<p>Um das Potenzial des Quantencomputings f\u00fcr QUBO zu nutzen, stellen wir <strong><em>qubolite<\/em><\/strong> vor, ein Python-Paket, das Hilfsmittel zur Erstellung, Analyse und L\u00f6sen von QUBO-Instanzen umfasst. Dieses Paket beinhaltet aktuelle Forschungsalgorithmen, die von Wissenschaftlern des Lamarr Instituts entwickelt werden.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>QUBO verstehen: Optimierung bin\u00e4rer Variablen<\/strong><\/h2>\n\n\n\n<p>Bevor wir tiefer in <b><i>qubolite<\/i><\/b> unser Python-Pakt eingehen hier ein kurzer Exkurs, was QUBO ist: Wie der Name bereits andeutet, besch\u00e4ftigen wir uns mit dem Problem, bin\u00e4re Werte zu finden, die eine quadratische Zielfunktion minimieren. Mathematisch kann unser Ziel wie folgt ausgedr\u00fcckt werden:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/lamarr-institute.org\/wp-content\/uploads\/formel.png\" alt=\"- Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)\" class=\"wp-image-32886\" title=\"\"><\/figure>\n\n\n\n<p>wobei <em>x<\/em>&nbsp;einen bin\u00e4ren Vektor darstellt und <em>Q<\/em>&nbsp;eine symmetrische Matrix ist, welche die Problemparameter beinhaltet.<\/p>\n\n\n\n<p>Aufgrund ihrer diskreten Natur treten QUBO-Instanzen haupts\u00e4chlich im Bereich der kombinatorischen Optimierung auf, also dort, wo wir eine optimale Konfiguration von Variablen aus einer endlichen Anzahl von M\u00f6glichkeiten finden m\u00f6chten. Allerdings sind solche Probleme oft schwer oder sogar unl\u00f6sbar f\u00fcr klassische Computer, da die Anzahl der m\u00f6glichen L\u00f6sungen mit der Problemgr\u00f6\u00dfe, d. h. der Anzahl der Variablen, exponentiell w\u00e4chst. Quantencomputing verspricht eine erhebliche Beschleunigung beim L\u00f6sen von QUBO-Problemen, dank Algorithmen wie dem Quantum Approximate Optimization Algorithm (QAOA) und dem Quantenannealing. Aufgrund der Fehleranf\u00e4lligkeit und begrenzten Rechenleistung der heutigen Quantenhardware muss man jedoch bei der Entwicklung geeigneter Problemformulierungen, die mit den uns zur Verf\u00fcgung stehenden Quantenressourcen gel\u00f6st werden k\u00f6nnen, sehr sorgf\u00e4ltig vorgehen. <a href=\"https:\/\/docs.dwavesys.com\/docs\/latest\/c_qpu_ice.html\" target=\"_blank\" rel=\"noreferrer noopener\">Integrierte Steuerungsfehler<\/a> sind ein prominentes Beispiel f\u00fcr diese Einschr\u00e4nkungen. Sie beschreiben die physikalischen Fehler, die auftreten, wenn ein gegebenes QUBO-Problem auf der Hardware implementiert wird. W\u00e4hrend dieses Prozesses k\u00f6nnen Parameter ver\u00e4ndert werden, was dazu f\u00fchrt, dass der Quantenannealer ein anderes Problem l\u00f6st und somit suboptimale L\u00f6sungen des urspr\u00fcnglichen Problems erh\u00e4lt. Dieser Effekt ist in Abb. 1 visualisiert.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"738\" height=\"458\" src=\"https:\/\/lamarr-institute.org\/wp-content\/uploads\/parameter_perturbation_ueberarbeitet_en-1.jpg\" alt=\"- Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)\" class=\"wp-image-13417\" style=\"width:911px;height:auto\" title=\"\" srcset=\"https:\/\/lamarr-institute.org\/wp-content\/uploads\/parameter_perturbation_ueberarbeitet_en-1.jpg 738w, https:\/\/lamarr-institute.org\/wp-content\/uploads\/parameter_perturbation_ueberarbeitet_en-1-300x186.jpg 300w\" sizes=\"auto, (max-width: 738px) 100vw, 738px\" \/><figcaption class=\"wp-element-caption\">Abb. 1: QUBO-Solver haben eine limitierte Parameteraufl\u00f6sung, was zu Ungenauigkeiten und somit suboptimalen L\u00f6sungen f\u00fchrt.<br>\u00a9 Sascha M\u00fccke <\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>QUBO erschlie\u00dfen: <em>qubolite<\/em> stellt sich vor<\/strong><\/h2>\n\n\n\n<p>Um die Arbeit mit QUBO zug\u00e4nglicher zu machen, haben Wissenschaftler des Lamarr Instituts <strong><em>qubolite<\/em><\/strong> entwickelt, ein umfassendes Python-Paket, das eine Reihe von Funktionalit\u00e4ten bietet:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>QUBO-Hilfsmittel<\/strong>: Viele n\u00fctzliche Hilfsmittel f\u00fcr die Arbeit mit QUBO sind integriert, wie zum Beispiel einfache Instanziierung, Umwandlung in und aus dem Ising-Modell, Berechnung des Dynamikbereichs der Parameter, Sampling oder Teilzuweisungen bestimmter Variablen.<\/li>\n\n\n\n<li><strong>Problem-Solvers<\/strong>: Das Paket bietet State-of-the-Art-Solver wie \u201eSimulated Annealing\u201d, aber auch einen \u201eBrute-Force\u201d-Ansatz, mit einer effizienten, parallelisierten Implementierung in C\/C++.<\/li>\n\n\n\n<li><strong>Preprocessing<\/strong>: Um das Beste aus den verf\u00fcgbaren Solvern herauszuholen, sind Methoden zur Vorverarbeitung implementiert. Diese k\u00f6nnen entweder bestimmte Eigenschaften von L\u00f6sungen identifizieren und die Gr\u00f6\u00dfe des Suchraums reduzieren oder QUBO-Instanzen optimal f\u00fcr die Verwendung auf echten Quantencomputern konditionieren.<\/li>\n\n\n\n<li><strong>QUBO-Embeddings<\/strong>: Verschiedene reale Probleme, formuliert als QUBO, werden bereitgestellt, angefangen bei ML-Problemen wie Clustering bis hin zu allgemeinen kombinatorischen Problemen.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Die ersten Schritte mit <em>qubolite<\/em><\/strong><\/h2>\n\n\n\n<p>Um mit <strong><em>qubolite<\/em><\/strong> loszulegen, reicht es das Paket \u00fcber <a href=\"https:\/\/pip.pypa.io\/en\/stable\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>pip<\/em><\/a> zu installieren:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/lamarr-institute.org\/wp-content\/uploads\/code_snippet_1_install_ueberarbeitet-3.jpg\" alt=\"install qubolite\" class=\"wp-image-32667\" style=\"width:911px;height:auto\" title=\"\"><\/figure>\n\n\n\n<p>F\u00fcr die vollst\u00e4ndige Nutzung von <strong><em>qubolite<\/em><\/strong> werden alle optionalen Abh\u00e4ngigkeiten verwendet, die sich auf mehrere Open-Source Python-Pakete wie <a href=\"https:\/\/scikit-learn.org\/stable\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>sklearn<\/em><\/a> und <a href=\"https:\/\/igraph.org\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>igraph <\/em><\/a>st\u00fctzen. Die Standardversion ist jedoch nur vom <a href=\"https:\/\/numpy.org\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>numpy<\/em><\/a> -Paket abh\u00e4ngig. Nach der Installation k\u00f6nnen wir QUBO-Probleme instanziieren. Hierf\u00fcr betrachten wir ein einfaches Clustering-Problem, das mit dem ML-Paket <strong><em>sklearn<\/em><\/strong> generiert wird:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/lamarr-institute.org\/wp-content\/uploads\/code_snippet_2_data_ueberarbeitet.jpg\" alt=\"import sklern dataset\" class=\"wp-image-32669\" style=\"width:911px;height:auto\" title=\"\"><\/figure>\n\n\n\n<p>Der Datensatz ist in Abb. 2 (links) visualisiert. Das Ziel ist jetzt, die Datenpunkte in zwei Cluster aufzuteilen. Dazu importieren wir eine Clustering-Einbettung und erhalten eine QUBO-Instanz:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/lamarr-institute.org\/wp-content\/uploads\/code_snippet_3_embedding_ueberarbeitet.jpg\" alt=\"import clustering embeddings from qubolite\" class=\"wp-image-32672\" style=\"width:911px;height:auto\" title=\"\"><\/figure>\n\n\n\n<p>Die L\u00f6sung dieses QUBO-Problems stellt ein perfektes Clustering der Datenpunkte dar. Da unsere Problemgr\u00f6\u00dfe klein ist (30), k\u00f6nnen wir die Brute-Force-Methode verwenden, welche garantiert die beste L\u00f6sung findet.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/lamarr-institute.org\/wp-content\/uploads\/code_snippet_4_solving_ueberarbeitet.jpg\" alt=\"qubolite solvers, import brute force\" class=\"wp-image-32674\" style=\"width:911px;height:auto\" title=\"\"><\/figure>\n\n\n\n<p>The erhaltene L\u00f6sung ist in Abb. 2 (rechts) visualisiert, wobei die Clusterzuweisungen mit unterschiedlichen Farben angezeigt werden. Allerdings ist bei zunehmender Gr\u00f6\u00dfe des Datensatzes ein Brute-Force-Ansatz nicht mehr m\u00f6glich, da die Anzahl der L\u00f6sungen mit der Problemgr\u00f6\u00dfe exponentiell w\u00e4chst.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"367\" src=\"https:\/\/lamarr-institute.org\/wp-content\/uploads\/\/points_clustered_points_ueberarbeitet_en-1-1024x367.jpg\" alt=\"- Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)\" class=\"wp-image-13419\" style=\"width:911px;height:auto\" title=\"\" srcset=\"https:\/\/lamarr-institute.org\/wp-content\/uploads\/points_clustered_points_ueberarbeitet_en-1-1024x367.jpg 1024w, https:\/\/lamarr-institute.org\/wp-content\/uploads\/points_clustered_points_ueberarbeitet_en-1-300x108.jpg 300w, https:\/\/lamarr-institute.org\/wp-content\/uploads\/points_clustered_points_ueberarbeitet_en-1-768x275.jpg 768w, https:\/\/lamarr-institute.org\/wp-content\/uploads\/points_clustered_points_ueberarbeitet_en-1.jpg 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Abb. 2: Exemplarischer Datensatz (links). Entsprechendes Clustering mit einer QUBO-Formulierung, bei der die bin\u00e4ren Variablen mit dem Wert 0 blau und die Variablen mit dem Wert 1 rot dargestellt sind (rechts).<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Preprocessing f\u00fcr Quantencomputer<\/strong><\/h2>\n\n\n\n<p>Da Quantencomputer das quantenmechanische Ph\u00e4nomen der Superposition nutzen, haben sie die F\u00e4higkeit, effizient nach einer optimalen L\u00f6sung in exponentiell gro\u00dfen R\u00e4umen zu suchen. Heutzutage befindet sich Quantenhardware noch in ihren Anf\u00e4ngen, da sie eine begrenzte Anzahl von Qubits besitzt und anf\u00e4llig f\u00fcr Fehler ist. <\/p>\n\n\n\n<p>Wie stark sich diese Fehler auf die L\u00f6sungsqualit\u00e4t auswirken, h\u00e4ngt in gro\u00dfem Ma\u00dfe von dem Dynamikbereich der gegebenen QUBO-Matrixparameter ab. Der Dynamikbereich entspricht der Anzahl der Bits, die erforderlich sind, um die QUBO-Parameter unter Ber\u00fccksichtigung des abgedeckten Wertebereichs und kleiner Abstufungen treu zu kodieren. Wissenschaftler des Lamarr Instituts entwickelten einen Algorithmus zur Reduzierung des Dynamikbereich eines gegebenen QUBO-Problems, w\u00e4hrend die optimale L\u00f6sung erhalten bleibt. Diese Methode ist in <strong><em>qubolite<\/em><\/strong> implementiert und kann folgenderma\u00dfen verwendet werden:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/lamarr-institute.org\/wp-content\/uploads\/code_snippet_5_preprocessing_ueberarbeitet.jpg\" alt=\"qubolite preprocessing\" class=\"wp-image-32676\" style=\"width:911px;height:auto\" title=\"\"><\/figure>\n\n\n\n<p>Nicht nur die Leistungsf\u00e4higkeit echter Quantenannealer wird durch die Reduzierung des Dynamikbereichs erh\u00f6ht, sondern auch die Leistung klassischer Hardwarel\u00f6sungen, die eine begrenzte Parameter-Bit-Pr\u00e4zision haben. Ein solcher beispielhafter Hardwarel\u00f6ser ist unser IAIS Evo Annealer. Weitere Details zu dieser Technologie sind in unserem Blogbeitrag \u201e<a href=\"https:\/\/lamarr-institute.org\/de\/blog\/evo-annealer\/\" target=\"_blank\" rel=\"noreferrer noopener\">Vorbereitung auf das Quantenzeitalter mit dem IAIS Evo Annealer<\/a>\u201c zu finden.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Wir schlie\u00dfen die L\u00fccke mit modernster Quantenforschung und ihrem Impact in der realen Welt<\/strong><\/h2>\n\n\n\n<p><strong><em>qubolite <\/em><\/strong>er\u00f6ffnet neue M\u00f6glichkeiten zur L\u00f6sung komplexer Optimierungsprobleme mit Quantencomputing, da die neuesten Forschungsergebnisse des Lamarr-Instituts in Echtzeit integriert werden. Das Python-Paket bietet eine benutzerfreundliche und vielseitige Toolbox, um das Potenzial von QC zu nutzen. Dar\u00fcber hinaus wird es nicht nur in unserer Forschung verwendet, sondern auch in verschiedenen Industrieprojekten am Fraunhofer IAIS, einer der vier Lamarr-Partnerinstitutionen, eingesetzt. Im Zuge der fortschreitenden Entwicklung von Quanten-Hardware tr\u00e4gt <strong><em>qubolite<\/em><\/strong> als frei nutzbares Softwarepaket dazu bei, Quantenoptimierung f\u00fcr eine Vielzahl von Branchen zug\u00e4nglich und nutzbar zu machen.<\/p>\n\n\n\n<p>Weitere Informationen \u00fcber qubolite:<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/smuecke\/qubolite\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/smuecke\/qubolite<\/a><\/p>\n\n\n\n<p>Optimum-Preserving QUBO Parameter Compression<\/p>\n\n\n\n<p>M\u00fccke, Sascha et al., 2023, <em>arXiv<\/em>-Vorabdruck, <a href=\"https:\/\/arxiv.org\/abs\/2307.02195\" target=\"_blank\" rel=\"noreferrer noopener\">pdf<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u201eQuadratic unconstrained binary optimization\u201c (QUBO) Probleme treten in vielen verschiedenen Bereichen auf, beispielsweise im Maschinellen Lernen oder Data Mining. Um die Arbeit mit QUBOs zu vereinfachen, pr\u00e4sentieren wir unser funktionsreiches Python-Paket qubolite<\/p>\n","protected":false},"author":22,"featured_media":3956,"template":"","meta":{"_acf_changed":false,"footnotes":""},"blog-category":[1416,396],"blog-tag":[1517,1527,1565,1584,1585,1583],"class_list":["post-4921","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog-category-alle-blogbeitraege","blog-category-forschung","blog-tag-high-performance-computers-hpc-de","blog-tag-ki-in-der-physik","blog-tag-python-de","blog-tag-quantencomputer","blog-tag-quantum-ml-de","blog-tag-qubo-de"],"acf":[],"publishpress_future_workflow_manual_trigger":{"enabledWorkflows":[]},"_links":{"self":[{"href":"https:\/\/lamarr-institute.org\/de\/wp-json\/wp\/v2\/blog\/4921","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lamarr-institute.org\/de\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/lamarr-institute.org\/de\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/lamarr-institute.org\/de\/wp-json\/wp\/v2\/users\/22"}],"version-history":[{"count":0,"href":"https:\/\/lamarr-institute.org\/de\/wp-json\/wp\/v2\/blog\/4921\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lamarr-institute.org\/de\/wp-json\/wp\/v2\/media\/3956"}],"wp:attachment":[{"href":"https:\/\/lamarr-institute.org\/de\/wp-json\/wp\/v2\/media?parent=4921"}],"wp:term":[{"taxonomy":"blog-category","embeddable":true,"href":"https:\/\/lamarr-institute.org\/de\/wp-json\/wp\/v2\/blog-category?post=4921"},{"taxonomy":"blog-tag","embeddable":true,"href":"https:\/\/lamarr-institute.org\/de\/wp-json\/wp\/v2\/blog-tag?post=4921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}