Class KGOEVSelection
java.lang.Object
com.polytechnik.utils.EVSelected
com.polytechnik.kgo.KGOEVSelection
- Direct Known Subclasses:
KGOIterationalLinearConstraints.KGOEVSelectionSeparatelyLast
,KGOIterationalLinearConstraintsE.KGOEVSelectionSeparatelyLast
,KGOIterationalLinearConstraintsExtraDegreesOfFreedom.KGOEVSelectionSeparatelyExtraElements
A container to store a vector corresponding to a KGO operator.
It has several methods to "adjust" stored arbitrary solution
to become partially unitary KGO operator.
This class is deprecated, use
EVSelected
instead.- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final EVSolver
private final int
The dimensions,eVector.length=nX*nC
.private final int
The dimensions,eVector.length=nX*nC
.Fields inherited from class com.polytechnik.utils.EVSelected
eLambda, eVector, ind, nOrig
-
Constructor Summary
ConstructorsConstructorDescriptionKGOEVSelection
(int ind, double[] eVector, double eLambda, int nOrig, int nC, int nX) -
Method Summary
Modifier and TypeMethodDescriptionAdjust theEVSelected.eVector
to be partially unitary.private AdjustedStateToUnitaryWithSVD
getSVDAdjustedPartially
(double adjustmentLevel) Adjust singular values partially.Adjust all singular values to 1.(package private) AdjustedStateToUnitaryWithSVD
getSVDAdjustedToPlusMinus1
(double[] SK) Adjust all singular values to +-1, find the best combination of signs.Do not adjust singular values.(package private) static List
<KGOEVSelection> selectTopEV
(int ntop, double[] ev, int nC, int nX)
-
Field Details
-
nC
private final int nCThe dimensions,eVector.length=nX*nC
. -
nX
private final int nXThe dimensions,eVector.length=nX*nC
. -
EV
-
-
Constructor Details
-
KGOEVSelection
KGOEVSelection(int ind, double[] eVector, double eLambda, int nOrig, int nC, int nX)
-
-
Method Details
-
getEVAdjustedTo1
Adjust theEVSelected.eVector
to be partially unitary. The result should be the same (within sign) as the one fromgetSVDAdjustedTo1()
. This method is faster and returns the data with additional constraint-related info that is useful in iteration process.- See Also:
-
getSVDAdjustedTo1
Adjust all singular values to 1. The result should be the same as the one fromgetEVAdjustedTo1()
. This method is typically used for only for unit tests.- See Also:
-
selectTopEV
-
getSVDAdjustedPartially
Adjust singular values partially.- Parameters:
adjustmentLevel
- A value between [0:1], 0 -- do not adjust, 1 -- adjust all to 1, for other values they are set to Sigma*(1-adjustmentLevel)+1*(adjustmentLevel), then normalized to nC=sum Sigma^2.- Returns:
- Adjusted SVD.
-
getSVDAdjustedToPlusMinus1
Adjust all singular values to +-1, find the best combination of signs. For not very bad initial state the best result corresponds to all signs 1 (the same is with all -1), as this is a minimal adjustment of all positive singular values returned by a SVD solver. There are \( 2^{nC} \) check of +-1 combinations what may be really slow. -
getSVDNonAdjusted
Do not adjust singular values.
-