This repository has been archived by the owner on Dec 7, 2021. It is now read-only.
Releases: qiskit-community/qiskit-aqua
Releases · qiskit-community/qiskit-aqua
Qiskit Aqua 0.7.4
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
Qiskit Aqua 0.7.2
Qiskit Aqua 0.7.1
Qiskit Aqua 0.7.0
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
QuantumCircuit
s 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
- MinimumEigenOptimizer: An optimization algorithm using a minimum eigen solver, such as VQE (or a classical
- 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 thereofprimitive_ops
: Classes for representing basic Operator building blocks, backed by computational
primitives in Terra. IncludesPrimitiveOp
(base and factory),PauliOp
,MatrixOp
, andCircuitOp
list_ops
: Classes for representing composite Operators, State functions, and Measurements constructed
from others, includingListOp
(non-abstract parent),SummedOp
,ComposedOp
, andTensoredOp
state_fns
: Classes for representing State function and Measurement building blocks, backed by
primitives in Terra (other thanDictStateFn
, which is back by adict
). Includes
StateFn
(base and factory),DictStateFn
,CircuitStateFn
,VectorStateFn
, andOperatorStateFn
operator_globals
: A set of convenient immutable building blockOperatorBase
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, includingConverterBase
(base),
CircuitSampler
,PauliBasisChange
,DictToCircuitSum
, andAbelianGrouper
expectations
: Converters for changing measurements of Observables to be more efficient or tractable,
includingExpectationBase
(base),ExpectationFactory
(factory),PauliExpectation
,
MatrixExpectation
, andAerPauliExpectation
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
, andQDrift
- 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
andVariationalForm
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 renamedLegacyBaseOperator
to avoid confusion with the new
Operator flowOperatorBase
(#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. UCCSDdepth
parameter renamed toreps
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
Qiskit Aqua 0.6.5
Qiskit Aqua 0.6.4
Qiskit Aqua 0.6.3
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
Changelog
Changed
VQE
,VQC
andQSVM
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 forevaluate_classically
,
which aGrover
object will now check for, upon initialization, on its provided oracle. (#681) VariationalForm
andFeatureMap
have a new property calledsupport_parameterized_circuit
which
indicates whether or not the circuit can be built with a TerraParameter
(orParameterVector
) object.
Further, theevolution_instruction
method supportsParameter
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 andshots==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)