How To Run Clarkson's Algorithm Experiments
Here are the steps to perform the experiment of comparing the naive LP algorithm and
Clarkson's algorithm.
- First you have to compile the cddlib library cddlib-0.94m. The source can be
obtained from GitHub site. To compile
cddlib correctly, you need to preinstall GNU gmp library
at a standard location such as /usr/local. Needless to say, you need a modern C compiler.
- After you compiled cddlib-0.94m successfully, you must move to "src" subdirectory. Copy all the input files, ucube*.ine and ducube*.ine, to this subdirectory.
- Then, execute commands in terminal such as
./redundancies ducube10k_4d.ine > ducube10k_4d_float.out
./redundancies_gmp ducube10k_4d.ine > ducube10k_4d_gmp.out
./redundancies_clarkson ducube10k_4d.ine > ducube10k_4d_c_float.out
./redundancies_clarkson_gmp ducube10k_4d.ine > ducube10k_4d_c_gmp.out
Above, ./redundancies executes the standard (naive) LP algorithm in float and
./redundancies_gmp the same algorithm in exact (GMP rational) arithmetic.
./redundancies_clarkson executes the LP+Clarkson algorithm in float and
./redundancies_clarkson_gmp the same algorithm in exact (GMP rational) arithmetic.
Note that the actual problems solved above are the dual problem. The ucube*.ine files represent
H-representations of the polar of the convex hull of random points in hypercubes. The outcome of redundancies stays identical.
The current implementation of Clarkson's algorithm, redundancies_clarkson.c, works only for full-dimensional H-representations.
back
Last updated: January 22, 2021