Learn R Programming

volesti (version 1.1.2-9)

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.

Usage

zonotope_approximation(
  Z,
  fit_ratio = FALSE,
  settings = list(error = 0.1, walk_length = 1, win_len = 250, hpoly = FALSE)
)

Value

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.

Examples

Run this code
# over-approximate a 2-dimensional zonotope with 10 generators and compute the ratio of fitness
Z = gen_rand_zonotope(2, 8)
retList = zonotope_approximation(Z = Z)

Run the code above in your browser using DataLab