Migrate from qiskit-optimization to qiskit-addon-opt-mapper

This migration guide summarizes the steps required to migrate a workflow built using the qiskit-optimization library to the new and improved qiskit-addon-opt-mapper library.

TL;DR

The qiskit-addon-opt-mapper library shares a lot of common structure and design with qiskit-optimization, with a few key differences that should be taken into account when migrating from one package to the other:

  1. The core data structure of qiskit-optimization is the QuadraticProgram, in qiskit-addon-opt-mapper, this structure is now called OptimizationProblem. The core methods and attributes remain consistent with the QuadraticProgram, but the class is now extended to support higher order terms in variables, objective function and constraints.

  2. The new qiskit-addon-opt-mapper package is focused on the optimization problem modeling and mapping step, which means there isn’t a migration path for the former qiskit-optimization modules: algorithms, optimizers and minimum_eigensolvers.

  3. The subset of classical solvers from qiskit-optimization’s algorithms module are now exposed in qiskit-addon-opt-mapper in a new solvers module.

Tables

General migration guidelines

qiskit_optimization

qiskit_addon_opt_mapper

QuadraticProgram

OptimizationProblem

any class that contains QuadraticProgram, for example, QuadraticProgramConverter

OptimizationProblemConverter

any to_quadratic_program() method

to_optimization_problem()

any quadratic_program input parameter or attribute

optimization_problem

Migrate classical solvers

qiskit_optimization.algorithms

qiskit_addon_opt_mapper.solvers

OptimizationAlgorithm

OptimizationSolver

OptimizationResult

SolverResult

CplexOptimizer

CplexSolver

GurobiOptimizer

GurobiSolver

ScipyMilpOptimizer

ScipyMilpSolver

Any other class in this module

Not part of this package