Quantum Informed Recursive Optimization#

An algorithm to facilitate the functionality of Quantum Informed Recursive Optimizations, as developed by J. Finzgar et. al. in Quantum-Informed Recursive Optimization Algorithms (2023) .

It is based on updating the problem instance based on correlations, that are in turn established with a QAOA protocol. For further info have a look at our tutorial on QIRO!

The central data structure of the QIRO module is the QIROProblem class.

QIROProblem#

The QIROProblem encapsulates the required prerequesites to run the algorithm:

  • The problem to be solved, which is not necessarly a graph.

  • The replacement_routine, which has the job of performing the aforementioned specific reductions to the problem object.

  • The cost_operator, mixer, init_function and cl_cost_function in analogy to QAOAProblem instantiation.

Collection of mixers and auxiliary functions#

qiro_rx_mixer(problem_updated)

RX-Mixer for QIRO algorithm.

qiro_rz_mixer(problem_updated)

This function applies an RZ gate with a negative phase shift to a given quantum variable.

qiro_controlled_RX_mixer_gen(predicate, union)

For a QIRO MIS instances, generate a controlled RX mixer for a given predicate function.

qiro_init_function([solutions, exclusions])

State initialization function for QIRO algorithm.

find_max(single_cor, double_cor, res, solutions)

Subroutine for finding the values with maximal correlation in the QIRO algorithm.

QIRO implementations of problem instances#

For implemented problem instances see the QIRO implementations page