2. What’s new in PEPit 0.2.0
Adding possibility to set LMI constraints associated to function objects.
The method
add_psd_matrix
has been added to the classFunction
and must be used to add LMI constraints associated to a function.Storing dual values prior to dimension reduction.
Each
Constraint
object receives a dual value in the attribute_dual_value
which can be accessed through the methodeval_dual
. In previous releases, and in case of dimension reduction being activated, the dual values being stored where those of the latest solved problem. From this release, the dual values being stored are always those of the original problem. Note the primal values are those of the last problem providing adversarial example of smallest dimension possible.Creating
PSDMatrix
class.PSDMatrix
class as been added. This doesn’t affect how the methodsadd_psd_matrix
must be used. A user must continue providing a psd matrix under the form of an Iterable ofExpression``s. The latter will be automatically transformed into a ``PSDMatrix
object that contains a_dual_value
attribute and aneval_dual
method as anyConstraint
object.Fixing a minor issue in pep.py.
There was an issue when the Gram matrix G did not need any eigenvalue correction as
eig_threshold
inpep.get_nb_eigenvalues_and_corrected_matrix
where defined as the maximum of an empty list. This issue has been fixed in this release.Eigenvalues are now sorted in decreasing order in the output of the PEP, making it easier to plot low-dimensional worst-case examples (examples of such usages can be found in the exercise repository Learning-Performance-Estimation).
Many new examples were introduced, including for looking for low-dimensional worst-case examples, fixed-point iterations, variational inequalities, and continuous-time dynamics.