Documentation

Running polco

Help

java -jar polco.jar --help

A help message is displayed, with detailed information about usage, options and input and output formats

Version

java -jar polco.jar --version

Displays the current version of the polco tool.

Memory

To run the program with more memory, use the Java Virtual Machine options Xms and Xmx. The following call runs with 1G initial memory, and allows Java to allocate up to 2G:

java -Xms1g -Xmx2g -jar polco.jar -kind text -iq ccp6.iq -out text ccp6.txt

Examples

Inequality matrix

java -jar polco.jar -kind text -iq ccp6.iq -out text ccp6.txt

Equality and inequality matrix

java -jar polco.jar -kind text -eq coli.eq -iq coli.iq -out zip coli.zip

Polymake files (.poly)

java -jar polco.jar -kind polymake -in CUT6.poly -out text cut6.txt

H– and V–format files (.ine/.ext)

java -jar polco.jar -kind cdd -in ccc6.ext -out text ccc6.txt

Calling polco from another Java program

You can also use polco as library within another Java program. An a example usage is given in the external pagejavadoc comments of the polco.adapter package.

Background

The algorithm enumerates extreme rays of a polyhedral cone. The input of the algorithm is a homogeneous system of linear equalities (matrix A) and inequalities (B). The output is a matrix R with extreme rays as column vectors.

Algorithm input and output are formalized below, transformations for inhomogeneous systems (polytopes) and for facet enumerations follow.

We recommend the Polyhedral FAQ homepage to get more information about polyhedral computation.

Standard case

Input: equality matrix Ae×d and inequality matrix Bi×d
Output: extreme ray matrix Rd×n

Polyhedral cone P:

P = { A x = 0 , B x0 }
P = { x = R c for some c0 }

Inhomogeneous case (vertex enumeration for polyhedron or polytope)

Note: A polytope is a bounded convex polyhedron. We use the term polyhedron in the following.

P' = { A' x = a , B' xb }

Can be seen as intersection of a d+1 dimensional polyhedral cone P and a hyperplane. To transform into the standard case, we set:

A = [ a , -A' ]
B = [ b , -B' ]

The resulting extreme rays rj(d+1)×1 of P (columns in output matrix R) are interpreted as follows:

rj(1) = 0r'j = [ rj(2) , rj(3) , ... , rj(d+1) ]T
is an extreme ray of the polyhedron P' (an unbounded direction)rj(1) > 0v'j = [ rj(2) , rj(3) , ... , rj(d+1) ]T / rj(1)
is a vertex of the polyhedron P'

Facet enumeration (convex hull)

Input: extreme ray matrix R'
Output: inequality matrix B'

Use standard extreme ray enumeration with input inequality matrix B and output extreme ray matrix R as follows:

B = R'T
B' = RT

API / Javadoc & Source files

Libraries

JavaScript has been disabled in your browser