Skip to content
This repository has been archived by the owner on Dec 7, 2021. It is now read-only.

Releases: qiskit-community/qiskit-aqua

Qiskit Aqua 0.7.4

06 Aug 21:33
baeb4ae
Compare
Choose a tag to compare

Changelog

Added

  • Add validation of sizes of arguments of OptimizationResults and unit tests (#1167)
  • For the Enhancement of converters of QuadraticProgram (#1061)
  • Indented string display (#1112)
  • Improve opflow test repeatability (#1147)
  • Make pyscf an optional dependency (#1140)
  • Documentation update for CustomCircuitOracle (#1149)
  • Further enhancements in ADMMOptimizer (#1126)
  • Check number of qubits in PauliOp.eval (#1105)
  • Improve inequality for "a" in Shor's Algorithm documentation (#1133)
  • Since #1100 Aqua depends on Terra 0.15 or higher (#1119)
  • For Z2Symmetry chop resultant tapered operators (#1110)
  • added LinearEqualityToPenalty._auto_define_penalty() function (#1043)
  • Unify optimizer parameters (#1084)
  • Reduce the number of qubits required by ADMMOptimizer (#1050)
  • Pretty output for optimization elements (#1021)
  • Make cvxpy an optional dependency (#1055)
  • VQE default expectation selection (#1040)
  • Set lstsq fitter for StateTomographyFitter on HHL (#1039)
  • Pin sphinx version temporarily (#1033)
  • Add static type hints checking (#1020)
  • Refactor Shor's algorithm (#975)
  • Re-use optimal vector result previously computed in VQE (#1014)
  • Update to new NumPy RNG (#921)
  • Allow Custom Lambda for Iterative Grover, see #893 (#1005)
  • Add reno for release notes and update CONTRIBUTING guide (#1002)
  • Replace algorithm result eigvecs by eingenstate (#997)
  • Improve resource access for unit tests (#993)
  • Speed-up of AbelianGrouper.group_subops (#923)
  • sort params in variational dists (#985)

Changed

  • Move functionality QuadraticProgramToNegativeValueOracle to circuit library and GroverOptimizer (#1160)
  • Make OptimizationResult read-only (all parameters of the constructor become mandatory) (#1131)

Removed

  • Remove cvxpy cap (#1150)
  • Remove Swaps From IQFT in Grover Optimizer (#1078)
  • Remove cvxopt and use cvxpy instead (#1035)
  • Remove install check for PySCF 1.7.2post1 (#1004)

Fixed

  • Mp2info incorrect when only one double excitation (#1161)
  • Fix PySCF driver exception (#1159)
  • show full grover circ; fixes #1139 (#1141)
  • VQE change backends (#1154)
  • Fix preservation of ListOp's combofn (#1152)
  • VQE construct circuit returns circuits (#1121)
  • Fix torch abstract class method not implemented (#1146)
  • OptimizationResult does not contain variable information #1107 (#1122)
  • Be more memory efficient converting SummedOp to MatrixOp (#1129)
  • Matrix multiplicative factor (z + z == 2 * z) (#1111)
  • Determine the max number of ancillae for all ESOPs (TruthTableOracle fix) (#1128)
  • P_BFGS spawn crash on MacOS and python >= 3.8 (#1123)
  • Fix qgan.py where batch size is greater than data size to raise error (#1115)
  • Fix to accommodate latest docplex 2.15.194 (#1117)
  • SLSQP optimizer, multistart Cobyla, enhanced compatibility checks (#1082)
  • Fix lint in controlled circuit and Instruction.definition change (#1100)
  • SummedOp updates & optimization converters to use Opflow (#1059)
  • CircuitStateFn.assign_parameters overwrites is_measurement (#1094)
  • OperatorStateFn: bind parameters in coeff and primitive (#1085)
  • Set qcp to True for cvxpy Problem.solve in qp_solver (#1083)
  • Z2 symmetry fix for when no symmetries found (#1075)
  • DeprecationWarning of round with numpy 1.19 (#1081)
  • Correct coefficient propagation in the operators (#1077)
  • Fix Exchange/Wiki providers, new Yahoo! provider, fix divide by 0 (#1051)
  • remove warnings from deprecated varform (#1058)
  • Fix hash function of PauliOp class (#1052)
  • MatrixOp.to_instruction updated to return an Instruction (#1049)
  • Evaluate eigenvalues in MinEigenOptimizer more efficiently (#1045)
  • CircuitOp uses QuantumCircuit.compose, not .combine (#1048)
  • fix remaining type hints errors (#1025)
  • Fix QAOA initial point bug (#1026)
  • Remove deprecated VQ tests (#987)
  • Fix ADAM resuseability (#1016)
  • Test lam argument in Grover algorithm (#1011)
  • Fix VQE optimizer setter (#1008)
  • Separate simplification of operators from SummedOp.add and fix bugs of add (#1000)
  • Fix cobyla optimizer (#999)
  • Ignore buggy pyscf 1.7.2.post1 (#994)

Qiskit Aqua 0.7.3

18 Jun 14:09
7dc2482
Compare
Choose a tag to compare

Changelog

Fixed

  • CircuitOp uses QuantumCircuit.compose, not .combine (#1048)
  • MatrixOp.to_instruction updated to return an Instruction (#1049)
  • Fix hash function of PauliOp class (#1052)
  • Make cvxpy an optional dependency (#1055)

Qiskit Aqua 0.7.2

15 Jun 21:42
fdeb139
Compare
Choose a tag to compare

Changelog

Fixed

  • Remove cvxopt and use cvxpy instead (#1036)
  • Pin sphinx version temporarily (#1038)
  • Fix VQE optimizer setter, VQE default expectation selection (#1046)

Qiskit Aqua 0.7.1

14 May 16:10
d188431
Compare
Choose a tag to compare

Changelog

Added

  • Added a linear option to the IsingToQuadraticProgram converter (#956)

Removed

  • The monkey-patched QuantumCircuit.mcmt method and tests, has moved to Terra (#950)
  • CPLEX as install requirement in requirements.txt (#952)

Qiskit Aqua 0.7.0

01 May 03:25
e55943b
Compare
Choose a tag to compare

Changelog

Added

  • NFT optimizer, part of a project of Qiskit Camp Asia 2019 (#729)
  • Algorithm interface and result classes (#849)
  • Chemistry FCIDump file driver (#859)
  • Automatic Z2 symmetry reduction in the chemistry module (#870)
  • Ising optimization: The 0-1 Knapsack problem (#878)
  • VQE, VQC and QSVM accept QuantumCircuits as variational forms/feature maps (#905)
  • New GSLS (Gaussian Smoothing Line Search) optimizer for variational algorithms (#877)
  • Qiskit's optimization module: a full toolset for solving quadratic programs (#877)
    • QuadraticProblem: A class representing quadratic programs with quadratic and linear objective and constraints
    • OptimizationAlgorithm: A base class for optimization algorithm
    • OptimizationResult: A base class for optimization results
    • Summary of the optimization algorithms:
      • MinimumEigenOptimizer: An optimization algorithm using a minimum eigen solver, such as VQE (or a classical
        alternative). See the MinimumEigenSolver algorithms in Aqua.
      • GroverOptimizer: The Grover Adaptive Search algorithm (Gilliam et al.)
      • ADMMOptimizer: The ADMM-based heuristic (Gambella et al.)
      • RecursiveMinimumEigenOptimizer: A meta-algorithm applying recursive optimization on top of a
        MinimumEigenOptimizer (Bravyi et al.)
      • CobylaOptimizer: Wrapping of SciPy’s COBYLA subroutine as optimization algorithm
      • CplexOptimizer: Wrapping the CPLEX API as optimization algorithm
    • A set of converters to translate different problem representations
      • InequalityToEquality: Converts inequality constraints to equality constraints by adding slack variables
      • IntegerToBinary: Converts integer variables to binary variables
      • LinearEqualityToPenalty: Converts linear equality constraints to quadratic penalty terms that are added
        to the objective
      • QuadraticProgramToIsing: Converts a QuadraticProgram to an Aqua operator
      • QuadraticProgramToNegativeValueOracle: Converts a QuadraticProgram to a negative-value oracle used for
        Grover Adaptive Search
      • QuadraticProgramToQubo: Converts a QuadraticProgram to a QUBO problem, a convenience converter wrapping the
        functionality of the IntegerToBinary and LinearEqualityToPenalty converters
      • IsingToQuadraticProgram: Converters an Aqua operator to a QuadraticProgram
  • Operator flow, a set of tools for constructing Physically-intuitive quantum computations using State functions,
    Operators, and Measurements, and relying on Terra's Operator objects as computational primitives (#852)
    • OperatorBase: A base class for Operators, State functions, Measurements, and combinations thereof
    • primitive_ops: Classes for representing basic Operator building blocks, backed by computational
      primitives in Terra. Includes PrimitiveOp (base and factory), PauliOp, MatrixOp, and CircuitOp
    • list_ops: Classes for representing composite Operators, State functions, and Measurements constructed
      from others, including ListOp (non-abstract parent), SummedOp, ComposedOp, and TensoredOp
    • state_fns: Classes for representing State function and Measurement building blocks, backed by
      primitives in Terra (other than DictStateFn, which is back by a dict). Includes
      StateFn (base and factory), DictStateFn, CircuitStateFn, VectorStateFn, and OperatorStateFn
    • operator_globals: A set of convenient immutable building block OperatorBase instances, including
      single-qubit Paulis (X, Y, Z, I), basic gates (H, CX, T, S, Swap, CZ), and
      single-qubit states (Zero, One, Plus, Minus)
    • converters: Classes for manipulating and modifying Operators, including ConverterBase (base),
      CircuitSampler, PauliBasisChange, DictToCircuitSum, and AbelianGrouper
    • expectations: Converters for changing measurements of Observables to be more efficient or tractable,
      including ExpectationBase (base), ExpectationFactory (factory), PauliExpectation,
      MatrixExpectation, and AerPauliExpectation
    • evolutions: Converters for changing Unitary evolutions of Hamiltonian Operators into
      CircuitOps approximating or equalling the exponentiation e^(-iHt). Includes
      EvolutionBase (base), EvolutionFactory (factory), EvolvedOp (lazy placeholder
      Operator for evolution), PauliTrotterEvolution, MatrixEvolution,
      TrotterizationBase (base), TrotterizationFactory (factory), Trotter,
      Suzuki, and QDrift
  • The QDrift Trotterization algorithm (#852)
  • Operator evolution using Terra's HamiltonianGate for improved performance (#852)

Changed

  • Logical expression oracle improvements (#821)
  • Refactor Multiclass Extensions to set Estimator internally (#822)
  • Refactor algorithms (#831) (#849)
  • Classical algorithms renamed, former names deprecated (#851)
  • Chemistry process algorithm result returns result object, lines, dict return deprecated (#861)
  • Measurement error mitigation supports different output orders on same qubits (#865)
  • If ibmq-provider is used and job limit is reached, run_circuit now waits for a previous job
    to finish before submitting the next one. (#906)
  • Deprecate using FeatureMap and VariationalForm in VQC and QSVM (#905)
  • The Eigensolvers and MinimumEigensolvers now accept OperatorBase (Operator flow) Observables
    in addition to the existing Operators (#852).
  • The BaseOperator was renamed LegacyBaseOperator to avoid confusion with the new
    Operator flow OperatorBase (#852).
  • HartreeFock initial state and UCCSD variational form num_qubits parameter removed as it was
    only value checked against that computed internally from the other parameters. UCCSD depth
    parameter renamed to reps and moved in order so it can default to 1. (#939)

Removed

  • Declarative api (#758) (#759) (#760) (#762) (#763)
  • Moved to Terra:
    • multi-controlled Toffoli, U1 and Pauli rotation gates (including tests) (#833)
    • arithmetic circuits in qiskit/aqua/circuits (#895)
    • boolean logic gates (#896)
    • quantum Fourier transformation (#909)
    • the RY, RYRZ and SwapRZ variational forms (#920)
    • the PauliExpansion, First- and SecondOrderExpansion feature maps (#920)

Fixed

  • Boolean logic circuit construction (#819)
  • Measurement on actual devices for Amplitude Estimation algorithms (#841) (#842)
  • Supported constant values on the left-hand side of constraints and variables on the right-hand
    side of constraints for the DOcplex translator (#750)
  • WeightedPauliOperator constructor simplification bug (#891)
  • TPBGroupedWeightedPauliOperator multiplication (#915)

Qiskit Aqua 0.6.6

16 Apr 15:35
bae0ec3
Compare
Choose a tag to compare

Changelog

Removed

  • Remove backend and PassManager on compiler transpile calls (#882)
  • Remove transpile calls and use unroller (#883)

Qiskit Aqua 0.6.5

16 Mar 20:23
ebe5695
Compare
Choose a tag to compare

Changelog

Removed

  • Removed cvxopt from installation. (#858)

Fixed

  • Fixes issue #768. The AQGD optimizer if condition in func converged was ignored. That kept breaking the while loop for training. (#858)

Qiskit Aqua 0.6.4

06 Feb 22:20
4b9ef07
Compare
Choose a tag to compare

Changelog

Changed

  • Fix weighted_pauli_operator expectation value mode for Aer 0.4 release. (#808)
  • Update python 3.6 Gaussian driver. (#808)

Added

  • Python 3.8 Gaussian drivers. (#808)

Qiskit Aqua 0.6.3

29 Jan 19:54
a51f7db
Compare
Choose a tag to compare

Changelog

Changed

  • Add install checks for cvxopt, torch, pyscf. Add python 3.8 support. (#795)

Deprecated

  • Python 3.5 support in qiskit-aqua is deprecated. Support will be
    removed on the upstream python community's end of life date for the version,
    which is 09/13/2020.

Qiskit Aqua 0.6.2

17 Dec 18:48
c041574
Compare
Choose a tag to compare

Changelog

Changed

  • VQE, VQC and QSVM now use parameterized circuits when available to save time
    in transpilation. (#693)
  • Initial stage of ml, finance, and optimization refactor into separate application-specific directories.
    (#700) Among other changes:
    • qiskit/aqua/translators/data_providers/ moved to qiskit/finance/data_providers/
    • qiskit/aqua/translators/ising/portfolio.py and portfolio_diversification.py moved to qiskit/finance/ising/
    • qiskit/aqua/translators/ising/ (i.e. all but above 2) moved to qiskit/optimization/ising/
  • UCCSD updated so the excitation pool can be managed by an adaptive algorithm like VQEAdapt. (#685)
  • Deprecate Declarative JSON API. (#720)

Added

  • Ability to create a CustomCircuitOracle object with a callback for evaluate_classically,
    which a Grover object will now check for, upon initialization, on its provided oracle. (#681)
  • VariationalForm and FeatureMap have a new property called support_parameterized_circuit which
    indicates whether or not the circuit can be built with a Terra Parameter (or ParameterVector) object.
    Further, the evolution_instruction method supports Parameter for the time parameter. (#693)
  • VQEAdapt, an adaptive version of VQE for chemistry which dynamically selects the UCCSD excitations to
    include in the ansatz. (#685)
  • Optionally split a qobj by max gates per job to better avoid "Payload is too large" errors when
    running on quantum hardware. (#694)
  • An option in evolution_instruction to control whether to add a barrier between every slice. (#708)
  • Added VQE snapshot mode for the Aer QasmSimulator when no noise model is specified and shots==1. (#715)
  • Added the implementation for the iterative QAE algorithm (#749)

Fixed

  • Parameter ordering in the init of the multivariate_distribution class. (#741)
  • List concatenation bug in the VQC algorithm. (#733)
  • Bug where UCCSD might generate an empty operator and try to evolve it. (#680)
  • Decompose causes DAG failure using feature maps. (#719)
  • Error when only using a subset of qubits in measurement error mitigation. (#748)

Removed

  • The CircuitCache class is removed, use parameterized circuits as an alternative. (#693)