Documentation
Running polco
Help
A help message is displayed, with detailed information about usage, options and input and output formats
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:
Examples
Inequality matrix
- Computes 368 facets of the 0/1 cut polytope on the complete graph over 6 vertices
- Download sample input file Download ccp6.iq (IQ, 1 KB)
Equality and inequality matrix
- Computes convex basis (3560 extreme rays) for a metabolic network of the central metabolism of E.coli (see [2])
- Download sample input files Download coli.eq (EQ, 190 KB) and Download coli.iq (IQ, 176 KB)
Polymake files (.poly)
- Computes 368 facets of the 0/1 cut polytope on the complete graph over 6 vertices
- Download sample input file Download CUT6.poly (POLY, 15 KB)
- See the external page polymake homepage
H– and V–format files (.ine/.ext)
- Computes 210 facets of the 0/1 cut cone on the complete graph over 6 vertices
- Download sample input file Download ccc6.ext (EXT, 1 KB)
- File formats of cdd (cdd+, cddlib) and lrs libraries and tools, click here (link no longer available) for description of file formats
- See cdd, cddplus, cddlib homepage (link no longer available)
- See external page lrs homepage
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 page javadoc 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 x ≥ 0 }
P = { x = R c for some c ≥ 0 }
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' x ≤ b }
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
- Javadoc of the API is available external page online
- The Download polco-src.jar (JAR, 2 MB) bundle contains the Java source files.
Libraries
- external page javasoft.ch (link no longer available) own development for numeric & matrix computations, a simple Java database, logging etc.
- external page dom4j easy to use library for XML, XPath and XSLT
- external page hdf-java Java wrapper to access the HDF native interface, used to write external page HDF5 files.
- external page JMatIO Matlab's MAT-file I/O API in pure Java, supports Matlab 5 MAT-flie format reading and writing