zonotope_approximation: A function to over-approximate a zonotope with PCA method and...

View source: R/zonotope_approximation.R

zonotope_approximationR Documentation

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)
)

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.

Value

A list that contains the approximation body in H-representation and the ratio of fitness

References

A.K. Kopetzki and B. Schurmann and M. Althoff, “Methods for Order Reduction of Zonotopes,” IEEE Conference on Decision and Control, 2017.

Examples

# 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)


volesti documentation built on Sept. 19, 2023, 5:08 p.m.