Articulo de referencia

Optimización binaria cuadrática sin restricciones

La optimización binaria cuadrática sin restricciones ( QUBO ), también conocida como programación binaria cuadrática sin restricciones ( UBQP ), es un problema de optimización c...

La optimización binaria cuadrática sin restricciones ( QUBO ), también conocida como programación binaria cuadrática sin restricciones ( UBQP ), es un problema de optimización combinatoria con una amplia gama de aplicaciones, desde finanzas y economía hasta aprendizaje automático . [ 1 ] QUBO es un problema NP-difícil , y para muchos problemas clásicos de la informática teórica , como el corte máximo , la coloración de grafos y el problema de partición , se han formulado incrustaciones en QUBO. [ 2 ] [ 3 ] Las incrustaciones para modelos de aprendizaje automático incluyen máquinas de vectores de soporte , agrupamiento y modelos gráficos probabilísticos . [ 4 ] Además, debido a su estrecha conexión con los modelos de Ising , QUBO constituye una clase de problemas centrales para la computación cuántica adiabática , donde se resuelve mediante un proceso físico llamado recocido cuántico . [ 5 ]

Definición

DejarB={0,1}{\displaystyle \mathbb {B} =\lbrace 0,1\rbrace }el conjunto de dígitos binarios (o bits ), entoncesBnorte{\displaystyle \mathbb {B} ^{n}}es el conjunto de vectores binarios de longitud fijanortenorte{\displaystyle n\in \mathbb {N} }. Dada una matriz simétrica o triangular superiorQRnorte×norte{\displaystyle {\boldsymbol {Q}}\in \mathbb {R} ^{n\times n}}, cuyas entradasQij{\displaystyle Q_{ij}}Defina un peso para cada par de índices.i,j{1,,norte}{\displaystyle i,j\in \lbrace 1,\dots ,n\rbrace }, podemos definir la funciónFQ:BnorteR{\displaystyle f_{\boldsymbol {Q}}:\mathbb {B} ^{n}\rightarrow \mathbb {R} }que asigna un valor a cada vector binarioincógnita{\displaystyle {\boldsymbol {x}}}a través de

FQ(incógnita)=incógnitaQincógnita=i=1nortej=1norteQijincógnitaiincógnitaj.{\displaystyle f_{\boldsymbol {Q}}({\boldsymbol {x}})={\boldsymbol {x}}^{\intercal }{\boldsymbol {Qx}}=\sum _{i=1}^{n}\sum _{j=1}^{n}Q_{ij}x_{i}x_{j}.}

Alternativamente, las partes lineal y cuadrática se pueden separar como

FQ,q(incógnita)=incógnitaQincógnita+qincógnita,{\displaystyle f_{{\boldsymbol {Q}}',{\boldsymbol {q}}}({\boldsymbol {x}})={\boldsymbol {x}}^{\intercal }{\boldsymbol {Q}}'{\boldsymbol {x}}+{\boldsymbol {q}}^{\intercal }{\boldsymbol {x}},}

dóndeQRnorte×norte{\displaystyle {\boldsymbol {Q}}'\in \mathbb {R} ^{n\times n}}yqRnorte{\displaystyle {\boldsymbol {q}}\in \mathbb {R} ^{n}}Esto es equivalente a la definición anterior a través deQ=Q+diagnóstico[q]{\displaystyle {\boldsymbol {Q}}={\boldsymbol {Q}}'+\operatorname {diag} [{\boldsymbol {q}}]}utilizando el operador diag , explotando esoincógnita=incógnitaincógnita{\displaystyle x=x\cdot x}para todos los valores binariosincógnita{\displaystyle x}.

Intuitivamente, el pesoQij{\displaystyle Q_{ij}}se agrega si ambosincógnitai=1{\displaystyle x_{i}=1}yincógnitaj=1{\displaystyle x_{j}=1}El problema QUBO consiste en encontrar un vector binarioincógnita{\displaystyle {\boldsymbol {x}}^{*}}que minimizaFQ{\displaystyle f_{\boldsymbol {Q}}}, es decir,incógnitaBnorte: FQ(incógnita)FQ(incógnita){\displaystyle \forall {\boldsymbol {x}}\in \mathbb {B} ^{n}:~f_{\boldsymbol {Q}}({\boldsymbol {x}}^{*})\leq f_{\boldsymbol {Q}}({\boldsymbol {x}})}.

En general,incógnita{\displaystyle {\boldsymbol {x}}^{*}}no es único, lo que significa que puede haber un conjunto de vectores minimizadores con igual valor con respecto aFQ{\displaystyle f_{\boldsymbol {Q}}}La complejidad de QUBO surge del número de vectores binarios candidatos que deben evaluarse, como|Bnorte|=2norte{\displaystyle \left|\mathbb {B} ^{n}\right|=2^{n}}crece exponencialmente ennorte{\displaystyle n}.

A veces, QUBO se define como el problema de maximizarFQ{\displaystyle f_{\boldsymbol {Q}}}, lo cual es equivalente a minimizarFQ=FQ{\displaystyle f_{-{\boldsymbol {Q}}}=-f_{\boldsymbol {Q}}}.

Propiedades

QUBO es invariante de escala para factores positivos.α>0{\displaystyle \alpha >0}, que dejan el óptimoincógnita{\displaystyle {\boldsymbol {x}}^{*}}sin alterar:

FαQ(incógnita)=incógnita(αQ)incógnita=α(incógnitaQincógnita)=αFQ(incógnita){\displaystyle f_{\alpha {\boldsymbol {Q}}}({\boldsymbol {x}})={\boldsymbol {x}}^{\intercal }(\alpha {\boldsymbol {Q}}){\boldsymbol {x}}=\alpha ({\boldsymbol {x}}^{\intercal }{\boldsymbol {Qx}})=\alpha f_{\boldsymbol {Q}}({\boldsymbol {x}})}.

En su forma general, QUBO es NP-difícil y no puede resolverse eficientemente mediante ningún algoritmo conocido de tiempo polinomial. [ 6 ] Sin embargo, existen casos especiales que se pueden resolver en tiempo polinomial, dondeQ{\displaystyle {\boldsymbol {Q}}}tiene ciertas propiedades, [ 7 ] por ejemplo:

  • Si todos los coeficientes son positivos, el óptimo es trivial.incógnita=(0,,0){\displaystyle {\boldsymbol {x}}^{*}=(0,\dots ,0)^{\intercal }}. De manera similar, si todos los coeficientes son negativos, el óptimo esincógnita=(1,,1){\displaystyle {\boldsymbol {x}}^{*}=(1,\dots ,1)^{\intercal }}.
  • SiQ{\displaystyle {\boldsymbol {Q}}}es diagonal , los bits se pueden optimizar de forma independiente y el problema es resoluble enO(norte){\displaystyle {\mathcal {O}}(n)}. Las asignaciones de variables óptimas son simplementeincógnitai=1{\displaystyle x_{i}^{*}=1}siQii<0{\displaystyle Q_{ii}<0}, yincógnitai=0{\displaystyle x_{i}^{*}=0}de lo contrario.
  • Si todos los elementos fuera de la diagonal deQ{\displaystyle {\boldsymbol {Q}}}son no positivos, el problema QUBO correspondiente es resoluble en tiempo polinomial. [ 8 ]

QUBO se puede resolver utilizando solucionadores de programación lineal entera como CPLEX o Gurobi Optimizer . Esto es posible ya que QUBO se puede reformular como un problema de optimización binaria con restricciones lineales. Para lograr esto, sustituya el productoincógnitaiincógnitaj{\displaystyle x_{i}x_{j}}mediante una variable binaria adicionalzijB{\displaystyle z_{ij}\in \mathbb {B} }y agregar las restriccionesincógnitaizij{\displaystyle x_{i}\geq z_{ij}},incógnitajzij{\displaystyle x_{j}\geq z_{ij}}yincógnitai+incógnitaj1zij{\displaystyle x_{i}+x_{j}-1\leq z_{ij}}. Tenga en cuenta quezij{\displaystyle z_{ij}}También se puede relajar a variables continuas dentro de los límites cero y uno.

Aplicaciones

QUBO es un problema de optimización estructuralmente simple, pero computacionalmente difícil. Puede utilizarse para codificar una amplia gama de problemas de optimización de diversas áreas científicas. [ 9 ]

Corte máximo

Dado un gráficoGRAMO=(V,mi){\displaystyle G=(V,E)}con conjunto de vérticesV={1,,norte}{\displaystyle V=\lbrace 1,\dots ,n\rbrace }y bordesmiV×V{\displaystyle E\subseteq V\times V}, el problema del corte máximo (max-cut) consiste en encontrar dos subconjuntosS,TV{\displaystyle S,T\subseteq V}conT=VS{\displaystyle T=V\setminus S}, de tal manera que el número de aristas entreS{\displaystyle S}yT{\displaystyle T}se maximiza.

El problema de corte máximo ponderado más general asume pesos en los bordes.wij0 i,jV{\displaystyle w_{ij}\geq 0~\forall i,j\in V}, con(i,j)miwij=0{\displaystyle (i,j)\notin E\Rightarrow w_{ij}=0}y solicita una particiónS,TV{\displaystyle S,T\subseteq V}que maximiza la suma de los pesos de las aristas entreS{\displaystyle S}yT{\displaystyle T}, es decir,

máximoSViS,jSwij.{\displaystyle \max _{S\subseteq V}\sum _{i\in S,j\notin S}w_{ij}.}

Al establecerwij=1{\displaystyle w_{ij}=1}a pesar de(i,j)mi{\displaystyle (i,j)\in E}Esto equivale al problema de corte máximo original mencionado anteriormente, razón por la cual nos centraremos en esta forma más general a continuación.

Para cada vértice eniV{\displaystyle i\in V}introducimos una variable binariaincógnitai{\displaystyle x_{i}}con la interpretaciónincógnitai=0{\displaystyle x_{i}=0}siiS{\displaystyle i\in S}yincógnitai=1{\displaystyle x_{i}=1}siiT{\displaystyle i\in T}. ComoT=VS{\displaystyle T=V\setminus S}, cadai{\displaystyle i}está en exactamente un conjunto, lo que significa que hay una correspondencia 1:1 entre vectores binarios.incógnitaBnorte{\displaystyle {\boldsymbol {x}}\in \mathbb {B} ^{n}}y particiones deV{\displaystyle V}en dos subconjuntos.

Observamos que, para cualquieri,jV{\displaystyle i,j\in V}, la expresiónincógnitai(1incógnitaj)+(1incógnitai)incógnitaj{\displaystyle x_{i}(1-x_{j})+(1-x_{i})x_{j}}se evalúa a 1 si y solo sii{\displaystyle i}yj{\displaystyle j}están en diferentes subconjuntos, equivalentes a XOR lógico .WR+norte×norte{\displaystyle {\boldsymbol {W}}\in \mathbb {R} _{+}^{n\times n}}conWij=wij i,jV{\displaystyle W_{ij}=w_{ij}~\forall i,j\in V}Al extender la expresión anterior a la forma matriz-vector, encontramos que

incógnitaW(1incógnita)+(1incógnita)Wincógnita=2incógnitaWincógnita+(W1+W1)incógnita{\displaystyle {\boldsymbol {x}}^{\intercal }{\boldsymbol {W}}({\boldsymbol {1}}-{\boldsymbol {x}})+({\boldsymbol {1}}-{\boldsymbol {x}})^{\intercal }{\boldsymbol {Wx}}=-2{\boldsymbol {x}}^{\intercal }{\boldsymbol {Wx}}+({\boldsymbol {W1}}+{\boldsymbol {W}}^{\intercal }{\boldsymbol {1}})^{\intercal }{\boldsymbol {x}}}

es la suma de los pesos de todas las aristas entreS{\displaystyle S}yT{\displaystyle T}, dónde1=(1,1,,1)Rnorte{\displaystyle {\boldsymbol {1}}=(1,1,\dots ,1)^{\intercal }\in \mathbb {R} ^{n}}Como esta es una función cuadrática sobreincógnita{\displaystyle {\boldsymbol {x}}}, es un problema QUBO cuya matriz de parámetros podemos leer a partir de la expresión anterior como

Q=2Wdiagnóstico[W1+W1],{\displaystyle {\boldsymbol {Q}}=2{\boldsymbol {W}}-\operatorname {diag} [{\boldsymbol {W1}}+{\boldsymbol {W}}^{\intercal }{\boldsymbol {1}}],}

después de cambiar el signo para convertirlo en un problema de minimización.

Análisis de clúster

Agrupamiento binario con QUBO
20 puntos con asignación aleatoria de clústeres
Una mala asignación de clúster.
20 puntos con asignación de clúster razonable
Una buena asignación de clúster.
Representación visual de un problema de agrupamiento con 20 puntos: Los círculos del mismo color pertenecen al mismo grupo. Cada círculo puede interpretarse como una variable binaria en el problema QUBO correspondiente.

A continuación, consideramos el problema del análisis de clústeres , donde se nos da un conjunto denorte{\displaystyle N}puntos end{\displaystyle d}espacio -dimensional y queremos asignar cada punto a una de dos clases o clústeres , de manera que los puntos en el mismo clúster sean similares entre sí. Para este ejemplo establecemosnorte=20{\displaystyle N=20}yd=2{\displaystyle d=2}Los datos se proporcionan como una matriz.incógnitaR20×2{\displaystyle {\boldsymbol {X}}\in \mathbb {R} ^{20\times 2}}donde cada fila contiene dos coordenadas cartesianas . Para dos grupos, podemos asignar una variable binaria.incógnitaiB{\displaystyle x_{i}\in \mathbb {B} }hasta el punto correspondiente a lai{\displaystyle i}-ésima fila enincógnita{\displaystyle {\boldsymbol {X}}}, indicando si pertenece al primero (incógnitai=0{\displaystyle x_{i}=0}) o segundo grupo (incógnitai=1{\displaystyle x_{i}=1}). En consecuencia, tenemos 20 variables binarias, que forman un vector binario.incógnitaB20{\displaystyle {\boldsymbol {x}}\in \mathbb {B} ^{20}}que corresponde a una asignación de clúster de todos los puntos (véase la figura).

Una forma de derivar una agrupación es considerar las distancias por pares entre puntos. Dada una asignación de clústerincógnita{\displaystyle {\boldsymbol {x}}}, la expresiónincógnitaiincógnitaj+(1incógnitai)(1incógnitaj){\displaystyle x_{i}x_{j}+(1-x_{i})(1-x_{j})}se evalúa a 1 si puntosi{\displaystyle i}yj{\displaystyle j}están en el mismo grupo. De manera similar,incógnitai(1incógnitaj)+(1incógnitai)incógnitaj=1{\displaystyle x_{i}(1-x_{j})+(1-x_{i})x_{j}=1}indica que están en grupos diferentes.dij>0{\displaystyle d_{ij}>0}denota la distancia euclidiana entre los puntosi{\displaystyle i}yj{\displaystyle j}, es decir,

dij=incógnitaiincógnitaj{\displaystyle d_{ij}={\sqrt {{\boldsymbol {X}}_{i}^{\intercal }{\boldsymbol {X}}_{j}}}},

dóndeincógnitai{\displaystyle {\boldsymbol {X}}_{i}}es eli{\displaystyle i}-fila deincógnita{\displaystyle {\boldsymbol {X}}}.

Para definir una función de costo a minimizar, cuando los puntosi{\displaystyle i}yj{\displaystyle j}están en el mismo grupo sumamos su distancia positivadij{\displaystyle d_{ij}}y restarlo cuando se encuentran en grupos diferentes. De esta manera, una solución óptima tiende a colocar los puntos que están muy separados en grupos diferentes, y los puntos que están cerca en el mismo grupo.

DejarDRnorte×norte{\displaystyle {\boldsymbol {D}}\in \mathbb {R} ^{N\times N}}conDij=dij/2{\displaystyle D_{ij}=d_{ij}/2}a pesar dei,j{1,,norte}{\displaystyle i,j\in \lbrace 1,\dots ,n\rbrace }. Dada una tareaincógnitaBnorte{\displaystyle {\boldsymbol {x}}\in \mathbb {B} ^{N}}, dicha función de coste viene dada por

F(incógnita)=incógnitaDincógnitaincógnitaD(1incógnita)(1incógnita)Dincógnita+(1incógnita)D(1incógnita)=4incógnitaDincógnita41Dincógnita+1D1,{\displaystyle {\begin{aligned}f({\boldsymbol {x}})&={\boldsymbol {x}}^{\intercal }{\boldsymbol {Dx}}-{\boldsymbol {x}}^{\intercal }{\boldsymbol {D}}({\boldsymbol {1}}-{\boldsymbol {x}})-({\boldsymbol {1}}-{\boldsymbol {x}})^{\intercal }{\boldsymbol {Dx}}+({\boldsymbol {1}}-{\boldsymbol {x}})^{\intercal }{\boldsymbol {D}}({\boldsymbol {1}}-{\boldsymbol {x}})\\&=4{\boldsymbol {x}}^{\intercal }{\boldsymbol {D}}{\boldsymbol {x}}-4{\boldsymbol {1}}^{\intercal }{\boldsymbol {D}}{\boldsymbol {x}}+{\boldsymbol {1}}^{\intercal }{\boldsymbol {D1}},\end{aligned}}}

dónde1=(1,1,,1)Rnorte{\displaystyle {\boldsymbol {1}}=(1,1,\dots ,1)^{\intercal }\in \mathbb {R} ^{N}}.

De la segunda línea podemos ver que esta expresión se puede reordenar a un problema QUBO definiendo

Q=4D4diagnóstico[D1]{\displaystyle {\boldsymbol {Q}}=4{\boldsymbol {D}}-4\operatorname {diag} [{\boldsymbol {D1}}]}

e ignorando el término constante1D1{\displaystyle {\boldsymbol {1}}^{\intercal }{\boldsymbol {D1}}}. Utilizando estos parámetros, un vector binario que minimiza esta instancia de QUBOQ{\displaystyle {\boldsymbol {Q}}}corresponderá a una asignación de clúster óptima con respecto a la función de costo anterior.

Conexión con los modelos de Ising

QUBO está muy relacionado y es computacionalmente equivalente al modelo de Ising , cuya función hamiltoniana se define como

H(σ)=σJσ+hσ=i,jJijσiσj+jhjσj{\displaystyle H({\boldsymbol {\sigma }})={\boldsymbol {\sigma }}^{\intercal }{\boldsymbol {J}}{\boldsymbol {\sigma }}+{\boldsymbol {h}}^{\intercal }{\boldsymbol {\sigma }}=\sum _{i,j}J_{ij}\sigma _{i}\sigma _{j}+\sum _{j}h_{j}\sigma _{j}}

con parámetros de valor realhj,Jij{\displaystyle h_{j},J_{ij}}a pesar dei,j{\displaystyle i,j}Las variables de espínσj{\displaystyle \sigma _{j}}son binarios con valores de{1,+1}{\displaystyle \lbrace -1,+1\rbrace }en lugar deB{\displaystyle \mathbb {B} }. Nótese que esta formulación está simplificada, ya que, en un contexto físico,σi{\displaystyle \sigma _{i}}son típicamente operadores de Pauli , que son matrices de valores complejos de tamaño2norte×2norte{\displaystyle 2^{n}\times 2^{n}}, mientras que aquí las tratamos como variables binarias. Muchas formulaciones del hamiltoniano del modelo de Ising asumen además que las variables están dispuestas en una red, donde solo pares de variables vecinasi j{\displaystyle \langle i~j\rangle }pueden tener coeficientes distintos de cero; aquí, simplemente asumimos queJij=0{\displaystyle J_{ij}=0}sii{\displaystyle i}yj{\displaystyle j}no son vecinos.

Aplicando la identidadσ=12incógnita{\displaystyle \sigma =1-2x}produce un problema QUBO equivalente [ 10 ]

σJσ+hσ=(12incógnita)J(12incógnita)+h(12incógnita)=4incógnitaJincógnita41Jincógnita+1J12hincógnita+h1=incógnita(4J)incógnita(4J1+2h)incógnita+1J1+h1constante.,{\displaystyle {\begin{aligned}&{\boldsymbol {\sigma }}^{\intercal }{\boldsymbol {J}}{\boldsymbol {\sigma }}+{\boldsymbol {h}}^{\intercal }{\boldsymbol {\sigma }}\\&=({\boldsymbol {1}}-2{\boldsymbol {x}})^{\intercal }{\boldsymbol {J}}({\boldsymbol {1}}-2{\boldsymbol {x}})+{\boldsymbol {h}}^{\intercal }({\boldsymbol {1}}-2{\boldsymbol {x}})\\&=4{\boldsymbol {x}}^{\intercal }{\boldsymbol {J}}{\boldsymbol {x}}-4{\boldsymbol {1}}^{\intercal }{\boldsymbol {Jx}}+{\boldsymbol {1}}^{\intercal }{\boldsymbol {J1}}-2{\boldsymbol {h}}^{\intercal }{\boldsymbol {x}}+{\boldsymbol {h}}^{\intercal }{\boldsymbol {1}}\\&={\boldsymbol {x}}^{\intercal }(4{\boldsymbol {J}}){\boldsymbol {x}}-(4{\boldsymbol {J}}^{\intercal }{\boldsymbol {1}}+2{\boldsymbol {h}})^{\intercal }{\boldsymbol {x}}+\underbrace {{\boldsymbol {1}}^{\intercal }{\boldsymbol {J1}}+{\boldsymbol {h}}^{\intercal }{\boldsymbol {1}}} _{\text{const.}},\end{aligned}}}

cuya matriz de pesosQ{\displaystyle {\boldsymbol {Q}}}es dado por

Q=4Jdiagnóstico[4J1+2h],{\displaystyle {\boldsymbol {Q}}=4{\boldsymbol {J}}-\operatorname {diag} [4{\boldsymbol {J}}^{\intercal }{\boldsymbol {1}}+2{\boldsymbol {h}}],}

Ignorando nuevamente el término constante, que no afecta la minimización. Usando la identidadincógnita=(1σ)/2{\displaystyle x=(1-\sigma )/2}, un problema QUBO con matrizQ{\displaystyle {\boldsymbol {Q}}}se puede convertir a un modelo de Ising equivalente utilizando la misma técnica, obteniendo

J=Q/4,h=(Q1+Q1)/4,{\displaystyle {\begin{aligned}{\boldsymbol {J}}&={\boldsymbol {Q}}/4,&{\boldsymbol {h}}&=-({\boldsymbol {Q1}}+{\boldsymbol {Q}}^{\intercal }{\boldsymbol {1}})/4,\end{aligned}}}

y un desplazamiento constante de1Q1/4{\displaystyle {\boldsymbol {1}}^{\intercal }{\boldsymbol {Q1}}/4}. [ 10 ]

Referencias

  1. Kochenberger, Gary; Hao, Jin-Kao; Glover, Fred; Lewis, Mark; Lu, Zhipeng; Wang, Haibo; Wang, Yang (2014). "El problema de programación cuadrática binaria sin restricciones: una revisión" (PDF) . Journal of Combinatorial Optimization . 28 : 58–81 . doi : 10.1007/s10878-014-9734-0 . S2CID 16808394 . 
  2. Glover, Fred; Kochenberger, Gary (2019). "Un tutorial sobre la formulación y el uso de modelos QUBO". arXiv : 1811.11538 [ cs.DS ].
  3. Lucas, Andrew (2014). "Formulaciones de Ising de muchos problemas NP" . Frontiers in Physics . 2 : 5. arXiv : 1302.5843 . Bibcode : 2014FrP.....2....5L . doi : 10.3389/fphy.2014.00005 .
  4. Mücke, Sascha; Piatkowski, Nico; Morik, Katharina (2019). "Aprendiendo bit a bit: extrayendo la esencia del aprendizaje automático" (PDF) . LWDA . S2CID 202760166. Archivado del original (PDF) el 27 de febrero de 2020. 
  5. Tom Simonite (8 de mayo de 2013). "La computadora cuántica de D-Wave va a las carreras y gana" . MIT Technology Review. Archivado del original el 24 de septiembre de 2015. Recuperado el 12 de mayo de 2013 .
  6. AP Punnen (editor), Problema de optimización binaria cuadrática sin restricciones: Teoría, algoritmos y aplicaciones, Springer, Springer, 2022.
  7. Çela, E., Punnen, AP (2022). Complejidad y casos especiales de QUBO resolubles polinomialmente. En: Punnen, AP (eds) El problema de optimización binaria cuadrática sin restricciones. Springer, Cham. https://doi.org/10.1007/978-3-031-04520-2_3
  8. Véase el Teorema 3.16 en Punnen (2022); tenga en cuenta que los autores asumen la versión de maximización de QUBO.
  9. Ratke, Daniel (10 de junio de 2021). "Lista de formulaciones QUBO" . Recuperado el 16 de diciembre de 2022 .
  10. ^ Mücke , S. (2025). Optimización clásica cuántica en aprendizaje automático. Shaker Verlag. https://d-nb.info/1368090214
  • QUBO Benchmark (Prueba comparativa de paquetes de software para la solución exacta de QUBO; forma parte de la conocida colección de pruebas comparativas de Mittelmann)
  • Endre Boros, Peter L Hammer y Gabriel Tavares (abril de 2007). "Heurísticas de búsqueda local para la optimización binaria cuadrática sin restricciones (QUBO)" . Journal of Heuristics . 13 (2). Association for Computing Machinery: 99–132 . doi : 10.1007/s10732-007-9009-3 . S2CID 32887708. Recuperado el 12 de mayo de 2013 . 
  • Di Wang y Robert Kleinberg (noviembre de 2009). "Análisis de problemas de optimización binaria cuadrática sin restricciones mediante flujos multicommodity" . Discrete Applied Mathematics . 157 (18). Elsevier: 3746–3753 . doi : 10.1016/j.dam.2009.07.009 . PMC 2808708. PMID 20161596 .  
  • Universidad de Hiroshima y NTT DATA Group Corporation  : "QUBO++ con solucionador QUBO GPU ABS2" # Software.