2 What’s new in PEPit 0.2.0
Adding possibility to set LMI constraints associated to function objects.
The method
add_psd_matrixhas been added to the classFunctionand must be used to add LMI constraints associated to a function.Storing dual values prior to dimension reduction.
Each
Constraintobject receives a dual value in the attribute_dual_valuewhich 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
PSDMatrixclass.PSDMatrixclass as been added. This doesn’t affect how the methodsadd_psd_matrixmust 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 ``PSDMatrixobject that contains a_dual_valueattribute and aneval_dualmethod as anyConstraintobject.Fixing a minor issue in pep.py.
There was an issue when the Gram matrix G did not need any eigenvalue correction as
eig_thresholdinpep.get_nb_eigenvalues_and_corrected_matrixwhere 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.