zonotope_approximation: A function to over-approximate a zonotope with PCA method and to evaluate the approximation by computing a ratio of fitness.
Description
For the evaluation of the PCA method the exact volume of the approximation body is computed and the volume of the input zonotope is computed by CoolingBodies algorithm. The ratio of fitness is \(R=vol(P) / vol(P_{red})\), where \(P_{red}\) is the approximate polytope.
A list that contains the approximation body in H-representation and the ratio of fitness
Arguments
Z
A zonotope.
fit_ratio
Optional. A boolean parameter to request the computation of the ratio of fitness.
settings
Optional. A list that declares the values of the parameters of CB algorithm as follows:
error
A numeric value to set the upper bound for the approximation error. The default value is \(0.1\).
walk_length
An integer to set the number of the steps for the random walk. The default value is \(1\).
win_len
The length of the sliding window for CB algorithm. The default value is \(250\).
hpoly
A boolean parameter to use H-polytopes in MMC of CB algorithm. The default value is TRUE when the order of the zonotope is \(<5\), otherwise it is FALSE.
seed
Optional. A fixed seed for the number generator.
References
A.K. Kopetzki and B. Schurmann and M. Althoff,
“Methods for Order Reduction of Zonotopes,” IEEE Conference on Decision and Control, 2017.
# over-approximate a 2-dimensional zonotope with 10 generators and compute the ratio of fitnessZ = gen_rand_zonotope(2, 8)
retList = zonotope_approximation(Z = Z)