Skip to content

Releases: peterwittek/ncpol2sdpa

1.12.2

28 Jul 16:41
Compare
Choose a tag to compare
  • Changed: Symbolic expression parsing improved.
  • Fixed: Chompack-based chordal extension works.
  • Fixed: get_item works for cases of moment substitutions.

1.12.1

16 Mar 11:34
Compare
Choose a tag to compare
  • Changed: Removed automated detection of simple moment substitutions.
  • Changed: Better handling of monomial substitutions.

1.12.0

28 Nov 17:47
Compare
Choose a tag to compare
  • New: Pass the optional momentsubstitutions= parameter to the get_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

07 Aug 09:07
Compare
Choose a tag to compare
  • 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

23 Jun 19:41
Compare
Choose a tag to compare
  • 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

26 Feb 08:40
Compare
Choose a tag to compare
  • Fixed: Problem with unexpanded moment equality constraints resolved.

1.10.2

03 Feb 11:15
Compare
Choose a tag to compare
  • 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

29 Jan 10:59
Compare
Choose a tag to compare
  • Fixed: The moment equalities are removed correctly if asked.

1.10

08 Dec 11:03
Compare
Choose a tag to compare
  • New: The function generate_operators returns a list of operators from the sympy.physics.quantum submodule. This is the old behaviour of generate_variables.
  • New: The SdpRelaxation class is now subscriptable. You can retrieve the value of polynomials in the solved relaxation in such way. Internally, it calls get_xmat_value with self.
  • New: The convenience method solve() was added to the class SdpRelaxation.
  • New: The convenience method write_to_file() was added to the class SdpRelaxation.
  • New: The convenience method save_monomial_index() was added to the class SdpRelaxation.
  • New: The convenience method find_solution_ranks() was added to the class SdpRelaxation. It replaces the previous stand-alone find_rank_loop() function.
  • New: The conversion routines convert_to_picos and convert_to_mosek are also part of the class sdpRelaxation.
  • New: The new method extract_dual_value() was added to the class SdpRelaxation 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 of sympy.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 class SdpRelaxation, and it returns a list of the sigma_i polynomials.
  • Changed: The optional parameter bounds for get_relaxation is deprececated, use the optional parameters momentinequalities and momentequalities instead.
  • Changed: Removed convert_to_picos_extra_moment_matrix and added optional parameter duplicate_moment_matrix to convert_to_picos to achieve the same effect.
  • Changed: The chordal extension is now requested as an optional parameter chordal_extension=True passed to the get_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

28 Aug 00:57
Compare
Choose a tag to compare
1.9
  • New: Defining the constraints now also allows using for the symbols <, <=, >=, >. Additionally, the function Eq from SymPy can be used to defined equalities.
  • New: The function solve_sdp also accepts solver="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 class SdpRelaxation.
  • 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 function solve_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, and get_xmat_value are no longer required an x_mat or y_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.