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 Downloadccp6.iq (IQ, 1 KB)vertical_align_bottom
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 Downloadcoli.eq (EQ, 190 KB)vertical_align_bottom and Downloadcoli.iq (IQ, 176 KB)vertical_align_bottom
Polymake files (.poly)
- Computes 368 facets of the 0/1 cut polytope on the complete graph over 6 vertices
- Download sample input file DownloadCUT6.poly (POLY, 15 KB)vertical_align_bottom
- See the external pagepolymake homepagecall_made
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 Downloadccc6.ext (EXT, 1 KB)vertical_align_bottom
- 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 pagelrs homepagecall_made
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 packagecall_made.
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 pageonlinecall_made
- The Downloadpolco-src.jar (JAR, 2 MB)vertical_align_bottom bundle contains the Java source files.
Libraries
- external pagejavasoft.chcall_made (link no longer available) own development for numeric & matrix computations, a simple Java database, logging etc.
- external pagedom4jcall_made easy to use library for XML, XPath and XSLT
- external pagehdf-javacall_made Java wrapper to access the HDF native interface, used to write external pageHDF5call_made files.
- external pageJMatIOcall_made Matlab's MAT-file I/O API in pure Java, supports Matlab 5 MAT-flie format reading and writing