Releases: peterwittek/ncpol2sdpa
Releases · peterwittek/ncpol2sdpa
1.12.2
1.12.1
- Changed: Removed automated detection of simple moment substitutions.
- Changed: Better handling of monomial substitutions.
1.12.0
- New: Pass the optional
momentsubstitutions=
parameter to theget_relaxation
method to substitute out specific moments. - Changed: Warning message is displayed if the equality constraints are linearly dependent.
- Changed: CVXPY support improved, solver parameters passed on correctly. SCS can directly be requested as a solver.
- Fixed: Chordal graph extension works with blank objective functions and commuting variables.
- Fixed: Parallel computations produce weird deadlocks less frequently.
1.11.1
- Fixed: Major bug in generating localizing matrices with the correct monomials.
- Fixed:
fast_substitute
is able to handle some more extreme forms of commuting monomials.
1.11.0
- New: Experimental new parallel computation of the moment matrix and the constraints.
- New: CVXPY conversion with
convert_to_cvxpy
. CVXPY is now also a valid solver. - New: The method
get_dual
returns the block in the dual solution corresponding to the requested constraint. - Changed: Deprecated optional parameter
bounds
was removed. - Fixed: Moments are correctly returned even if equalities are removed.
- Fixed: Constants in PICOS conversion are added correctly irrespective of where they are in the matrices.
- Fixed: PICOS conversion handles feasibility problems correctly.
- Fixed: The optional parameter
removeequalities=True
handles equalities of SDP variables correctly.
1.10.3
- Fixed: Problem with unexpanded moment equality constraints resolved.
1.10.2
- New: Very efficient substitutions of moment equalities if one side of the equality is the moment of a monomial, and the other side is a constant.
1.10.1
- Fixed: The moment equalities are removed correctly if asked.
1.10
- New: The function
generate_operators
returns a list of operators from thesympy.physics.quantum
submodule. This is the old behaviour ofgenerate_variables
. - New: The
SdpRelaxation
class is now subscriptable. You can retrieve the value of polynomials in the solved relaxation in such way. Internally, it callsget_xmat_value
withself
. - New: The convenience method
solve()
was added to the classSdpRelaxation
. - New: The convenience method
write_to_file()
was added to the classSdpRelaxation
. - New: The convenience method
save_monomial_index()
was added to the classSdpRelaxation
. - New: The convenience method
find_solution_ranks()
was added to the classSdpRelaxation
. It replaces the previous stand-alonefind_rank_loop()
function. - New: The conversion routines
convert_to_picos
andconvert_to_mosek
are also part of the classsdpRelaxation
. - New: The new method
extract_dual_value()
was added to the classSdpRelaxation
to calculate the inner product of the coefficient matrix of an SDP variable with the dual solution. - New: The class
RdmHierarchy
was added to generate SDPs of the reduced density matrix method. Initial support for 1D spinless, translational invariant systems is included. - New: Better support for the steering hierarchy in a new class
SteeringHierarchy
. - Changed: The function
generate_variables
are now returns a list ofsympy.Symbol
variables if commutative variables are requested, and the default is commutative. - Changed: Many unnecessary user-facing functions were removed.
- Changed: The SOS decomposition is now requested with
get_sos_decomposition
from the classSdpRelaxation
, and it returns a list of the sigma_i polynomials. - Changed: The optional parameter
bounds
forget_relaxation
is deprececated, use the optional parametersmomentinequalities
andmomentequalities
instead. - Changed: Removed
convert_to_picos_extra_moment_matrix
and added optional parameterduplicate_moment_matrix
toconvert_to_picos
to achieve the same effect. - Changed: The chordal extension is now requested as an optional parameter
chordal_extension=True
passed to theget_relaxation
method, and not by specifying it as a hierarchy type in the constructor. - Changed: The Moroder hierarchy is now a class.
- Changed: Small improvements in speed in the substitution routines; unit tests for the substitution routines.
- Changed: The
read_sdpa_out
routine takes an optional argument for a relaxation, and adds the solution to this object if requested. - Changed: Instead of an examples folder, all examples were migrated to the documentation.
- Changed: The symbolic variables which are not to be relaxed are now supplied to the constructor with the optional parameter
parameters
. - Changed: Redundant positive-semidefinite constraint type removed.
- Fixed: PICOS and MOSEK conversion works for complex matrices too (issue #10).
- Fixed: The moment symmetries are correctly calculated for both Hermitian and non-Hermitian variables (issue #9)
1.9
- New: Defining the constraints now also allows using for the symbols
<
,<=
,>=
,>
. Additionally, the functionEq
from SymPy can be used to defined equalities. - New: The function
solve_sdp
also acceptssolver="cvxopt"
to use CVXOPT for solving a relaxation (requires PICOS and CVXOPT). - New:
convert_to_human_readable
function returns the objective function and the moment matrix as a string and a matrix of strings to give a symbolic representation of the problem. - New:
get_next_neighbors
function retrieves the forward neighbors at a given distance of a site or set of sites in a lattice. - New: Much faster substitutions if the right-hand side of the substitution never contains variables that are not in the left-hand side.
- New: Non-unique variables are considered only once in each variable set.
- New: When using
solve_sdp
to solve the relaxation, the solution, its status, and the time it takes to solve are now part of the classSdpRelaxation
. - New: The class
Probability
provides an intuitive way to define quantum probabilities and Bell inequalities. - New: The function
solve_sdp
autodetects available solvers and complains if there is none. - New: The optional parameter
solverparameters
to the functionsolve_sdp
can contain a dictionary of options, with a different set for each of the target solvers. - New: Regression testing framework added.
- Changed: The functions
find_rank_loop
,sos_decomposition
, andget_xmat_value
are no longer required anx_mat
ory_mat
parameter to pass the primal or dual solution. These values are extracted from the solved relaxation. The respective parameters became optional. - Changed: Constant term in objective function is added to the primal and dual values when using the
solve_sdp
function. - Changed: The primal and dual values of the Mosek solution change their signs when using the
solve_sdp
function. - Changed: The verbosity parameter also controls the console output of every solver.
- Changed: Faacets relaxations got their own class
FaacetsRelaxation
. - Fixed: Localizing matrices are built correctly when substitution rules contain polynomials and when the identity operator is not part of the monomial sets.
- Fixed: The function
get_xmat_value
also works in Pypy.