[SCM] Debian packaging for the lrslib vertex enumeration package branch, master, updated. 08143926a8c76346ae9308746e390c53d21da63a
David Bremner
bremner at unb.ca
Sun Sep 13 16:13:18 UTC 2009
The following commit has been merged in the master branch:
commit 818c5e321ff9be7035fa948de5101dd613649309
Author: David Bremner <bremner at unb.ca>
Date: Sun Aug 9 20:28:44 2009 -0300
add options, still need tidying
diff --git a/debian/lrslib.1.xml b/debian/lrslib.1.xml
index 374626d..91a86aa 100644
--- a/debian/lrslib.1.xml
+++ b/debian/lrslib.1.xml
@@ -170,6 +170,407 @@ end
input if n is less than the number of columns supplied.
</para>
</refsect2>
+
+<refsect2>
+ <title>Basic Options</title>
+
+ <para>
+ New for Version 4.2: bound, dualperturb, printslack,
+ project
+ <emphasis>lrs</emphasis> has many options to allow various
+ functions to be performed, and to modify the output produced.
+ Almost all options are placed
+ <emphasis role="strong">after</emphasis> the end statement,
+ maintaining compatibility with <emphasis>cdd</emphasis>. Where this
+ is not the case, it will be mentioned explicitly. All options are
+ optional.
+ </para>
+
+ <para>
+ <emphasis role="strong">allbases</emphasis>
+ This option instructs <emphasis>lrs</emphasis> to list each vertex
+ (or facet) for each of its bases. Normally a vertex (or facet) is
+ only output when its lex-min basis is found, to avoid duplications
+ - see section
+ <ulink url="#Output%20Duplication">Output Duplication</ulink>
+ <ulink url="#Hints%20and%20Comments">.</ulink> This option is often
+ combined with printcobasis .
+ </para>
+ <para>
+ <emphasis role="strong">bound x </emphasis>New
+ in Ver
+ 4.2 //
+ Use with H-representation - for lrs or nash
+ //
+ Either the maximize or minimize option should be selected. x is an
+ integer or rational.For maximization
+ (resp. minimization) the reverse search tree is truncated
+ whenever the current objective value is less (resp. more) than x
+ .
+ </para>
+ <para>
+ <emphasis role="strong">cache n</emphasis>
+ <emphasis>lrs</emphasis> stores the latest n dictionaries in
+ the reverse search tree. This speeds up the backtracking step, but
+ requires more memory. If n is set to one, there is no caching
+ and "pure" reverse search is performed. The default
+ is n=10. At the end of a run a message gives cache information. The
+ output
+ <emphasis role="strong">*Dictionary Cache: max size= 4 misses= 10/1340 Tree Depth=5</emphasis>
+ indicates that with cache size set
+ to 4, only 10 of the 1340 dictionaries computed were not in
+ the cache during backtracking and had to be recomputed. The
+ maximum tree depth was 5, so there would be no misses with a cache
+ size of 6. Full caching reduces processing time by about 40%.
+</para>
+<para>
+ <emphasis role="strong">debug startingbasis endingbasis</emphasis>
+ <blockquote>
+ Print out cryptic but detailed trace, dictionaries etc. starting at
+ #B=startingbasis and ending at #B=endingbasis.
+ <emphasis role="strong">debug 0 0</emphasis> gives a complete trace.
+ </blockquote>
+ </para>
+<para>
+ <emphasis role="strong">digits n </emphasis>
+ // placed before the begin statement//
+ n is the maximum number of decimal digits to be used. If this is
+ exceeded the program terminates with a message (it can
+ usually be restarted). The default is set to about 100
+ digits. At the end of a run a message is given informing the user
+ of the maximum integer size encountered. This may be used to
+ optimize memory usage and speed on subsequent runs (if doing
+ estimation for example). The output:
+ <emphasis role="strong">*Max digits= 45/100</emphasis>
+ indicates that the maximum integer
+ encountered had 45 decimal digits, and the program allowed up to
+ 100 digit integers.
+</para>
+<para>
+ <emphasis role="strong">dualperturb</emphasis>
+ If lrs is executed with the maximize or minimize option, the
+ reverse search tree is rooted at an optimum vertex for this
+ function.If there are mulitiple
+ optimum vertices, the output will often not be complete. This
+ option gives a small perturbation to the objective to avoid
+ this.A warning message is given if
+ the starting dictionary is dual degenerate
+ .
+</para>
+<para>
+ <emphasis role="strong"></emphasis><emphasis role="strong">estimates k</emphasis>
+ Estimate the output size. Used in conjunction with maxdepth - see
+ <ulink url="#Estimation">Estimation.</ulink>
+
+ <emphasis role="strong">geometric </emphasis>
+ // H-representation or voronoi option only //
+ With this option, each ray is printed together with the vertex with
+ which it is incident. They output has the form:
+ 0 r<subscript>0 </subscript> r
+ <subscript>1</subscript>...
+ r<subscript>n-1</subscript>* 1
+ v<subscript>0 </subscript> v
+ <subscript>1</subscript>... v<subscript>n-1</subscript>
+
+ This indicates ray 0
+ r<subscript>0 </subscript> r
+ <subscript>1</subscript>...
+ r<subscript>n-1</subscript>is incident with vertex
+ 1 v<subscript>0 </subscript> v
+ <subscript>1</subscript>...
+ v<subscript>n-1</subscript>. For the quadrant, the output is:
+ <emphasis role="strong">1 0 0</emphasis>
+
+ <emphasis role="strong">0 0 1 * 1 0 0</emphasis>
+
+ <emphasis role="strong">0 1 0 * 1 0 0</emphasis>
+ This indicates the origin is a
+ vertex, and there are two geometric rays: (0,t) and (t,0) both
+ adjacent to the origin. For more information see Geometric Rays in
+ <ulink url="#Hints%20and%20Comments">Hints and Comments</ulink> .
+</para>
+<para>
+ <emphasis role="strong">incidence; // New in version 4.0 //</emphasis>
+ <blockquote>
+ This option automatically switches on
+ <emphasis role="strong">printcobasis</emphasis> , so see below for
+ a description of this option first.
+ Can be used with printcobasis n.
+ (Ver 4.2b)
+ <para>
+ For input H-representation, indices of all input inequalities that
+ contain the vertex/ray that is about to be output. For a simplicial
+ face, there is no new output, since these indices are already
+ listed. Otherwise, the additional tight inequalities are listed
+ after a colon. Eg:
+ <emphasis role="strong">V#1 R#0 B#1 h=0 facets 12 14 15 16 : 9 10 11 13 I#8 det= 8</emphasis>
+
+ <emphasis role="strong"> 1 0 0 0 1</emphasis>
+ The vertex
+ <emphasis role="strong">0 0 0 1</emphasis> satisfies 8 input
+ inequalities as equations, as indicated by
+ <emphasis role="strong">I#8</emphasis> : those with indices
+ <emphasis role="strong">12,14,15,16</emphasis> are in the cobasis,
+ and those with indices
+ <emphasis role="strong">9, 10, 11, 13</emphasis>are in the basis.
+ For a ray:
+ <emphasis role="strong">V#1 R#5 B#1 h=0 facets 5 9* 10 11 12 13 : 2 3 4 I#8 det= 8</emphasis>
+
+ <emphasis role="strong"> 0 1 1 0 0 1 1</emphasis>
+ Here the ray
+ <emphasis role="strong">1 1 0 0 1 1</emphasis>
+ lies on 8 inequalities, with indices
+ <emphasis role="strong">5 10 11 12 13</emphasis> in basis and
+ <emphasis role="strong">2 3 4 i</emphasis>n cobasis. The starred
+ index<emphasis role="strong">9*</emphasis> indicates that the ray
+ is terminated by the input inequality 9. This inequality is in the
+ cobasis and defines the vertex from which the ray starts.
+ </para>
+ <para>
+ For input V-representation, indices of all input vertices/rays that
+ lie on the facet that is about to be output:
+
+ <emphasis role="strong">F#5 B#3 h=2 vertices/rays 7 8* 11 13 15 : 1 3 5 9 I#8 det= 16</emphasis>
+
+ <emphasis role="strong">1 -1 0 0 0</emphasis>
+ The facet generated by inequality
+ x<subscript>1</subscript> <= 1 contains 8 input vertices, as
+ indicated by I#8: those with indices
+ <emphasis role="strong">7,11,13,15</emphasis> are in the cobasis,
+ and those with indices<emphasis role="strong">1 3 5 9</emphasis>are
+ in the basis.The starred index<emphasis role="strong">8*</emphasis>
+ indicates that this vertex is also in the cobasis, but is not
+ contained in the facet. It arises due to the lifting operation used
+ with input V-representations.
+ </para>
+ </blockquote>
+</para>
+<para>
+ <emphasis role="strong">#incidence</emphasis>
+ <blockquote>
+ The same as printcobasis. Included for compatability with
+ <emphasis>cdd.</emphasis>
+ </blockquote>
+</para>
+<para>
+ <emphasis role="strong">linearity k i<subscript>1</subscript>i<subscript>2</subscript> i ... i<subscript>k</subscript></emphasis>
+ <blockquote>
+ The input contains k linearities in rows
+ <emphasis role="strong">i<subscript>1</subscript>i<subscript>2</subscript>i ... i<subscript>k</subscript></emphasis>of
+ the input file are equations. See
+ <ulink url="#Linearities">Linearities.</ulink>
+ </blockquote>
+</para>
+<para>
+ <emphasis role="strong">maxdepth k</emphasis>
+ The search will be truncated at depth k. All bases with depth less
+ than or equal to k will be computed. k is a
+ non-negative integer, and this option is used for estimates - see
+ <ulink url="#Estimation">Estimation.</ulink>
+
+ <emphasis role="strong">Note</emphasis>: For H-representations,
+ rays at depth k will not be reported. For V-representations, facets
+ at depth k will not be reported.
+</para>
+<para>
+ <emphasis role="strong">maximize </emphasis><emphasis role="strong">a<subscript>0</subscript> a<subscript>1</subscript>... a<subscript>n-1</subscript></emphasis> <emphasis role="strong"> </emphasis>
+ // H-representation only //
+</para>
+<para>
+ <emphasis role="strong">minimize </emphasis><emphasis role="strong">a<subscript>0</subscript> a<subscript>1</subscript>... a<subscript>n-1</subscript></emphasis>
+ // H-representation only //
+ <subscript></subscript>
+ If used with lrs the starting vertex maximizes (or minimizes) the
+ function a<subscript>0</subscript> +
+ a<subscript>1</subscript>x<subscript>1</subscript>+ ... +
+ a<subscript>n-1</subscript>
+ x<subscript>n-1</subscript>.The
+ dualperturb option may be needed to avoid dual
+ degeneracy.See Nash Equilibria
+ and
+ <ulink url="#Linear%20Programming">Linear Programming</ulink>
+ maxoutput n // from Version 4.2a
+ //
+ Limits number of output lines produced (either vertices+rays or
+ facets) to
+ n
+</para>
+<para>
+<emphasis role="strong">mindepth k</emphasis>
+ Backtracking will be terminated at depth k, for k a
+ non-negative integer. This can be used for running reverse search
+ on subtrees as separate processes, e.g. in a distributed computing
+ environment.
+ <emphasis role="strong">nonnegative //modified in lrs 4.2 // </emphasis>
+ // This option must come before the begin statement//
+
+ //H-representation only //
+ Bug: Can only be used if the
+ origin is a vertex of the polyhedron
+ <blockquote>
+ For problems where the input is an H-representation of the form
+ b+Ax>=0, x>=0 (ie. all variables non-negative, all
+ constraints inequalities) it is not necessary to give the
+ non-negative constraints explicitly if the nonnegative option is
+ used. This option cannot be used for V-representations, or with the
+ linearity option (in which case the linearities will be treated as
+ inequalities). This option may be used with redund , but the
+ implied nonnegativity constraints are not tested themselves for
+ redundancy. To test everything it is necessary to enter the
+ nonnegativity constraints explicitly in the input file. (In Ver
+ 4.1, the origin must be a vertex).
+ </blockquote>
+</para>
+ <para>
+ <emphasis role="strong">printcobasis k </emphasis>Modified
+ in lrs4.0
+ </para>
+ Every k'th cobasis is printed. If k is omitted, the cobasis is
+ printed for each vertex/ray/facet that is output. For a long run it
+ is useful to print the cobasis occasionally so that the program can
+ be restarted if necessary.
+ <emphasis role="strong">H-representation: </emphasis>If the
+ input is an H-representation the cobasis is a list the indices of
+ the inequalities from the input file that define the current vertex
+ or ray. For example, with input cube.ine a typical output is:
+
+ <emphasis role="strong">V#5 R#0 B#5 h=1 facets 3 4 5 I#3 det=1</emphasis>
+
+ <emphasis role="strong">1 1 1 -1</emphasis>
+ This indicates that the vertex
+ (1,1,-1) is defined by the 3rd, 4th and 5th facet inequalities in
+ the input file being satisfied as equations. It is the (B#)5th
+ basis computed, and there have been (V#)5 vertices and (R#)0 rays
+ output up to this point. I#3 means that this vertex is incident
+ with 3 input inequalities, ie. it is non-degenerate. See
+ option <emphasis role="strong">incidence</emphasis> above for
+ more information. For rays, a
+ cobasis is also printed. In this case the cobasis is the cobasis of
+ the vertex from which the ray emanates. One of the indices is
+ starred, this indicates the inequality to be dropped from the
+ cobasis to define the ray. For example the output:
+
+ <emphasis role="strong">V#1 R#6 B#4 h=1 facets 2 4* 5 7 I#3 det=1</emphasis>
+
+ <emphasis role="strong">0 1 1 2 1</emphasis>
+ indicates that the ray (1,1,2,1)
+ emanates from a vertex with cobasis defined by input inequalities 2
+ 4 5 7 satisfied as equations. The ray is defined by dropping the
+ equation with index 4. Note that there may not appear any vertex in
+ the output with cobasis 2 4 5 7, since the corresponding vertex may
+ be degenerate and printed with another (the lex-min) cobasis. To
+ find out which vertices correspond to which rays, use also the
+ <emphasis role="strong">geometric</emphasis> option. Now the
+ output may appear:
+ <emphasis role="strong">V#1 R#6 B#4 h=1 facets 2 4* 5 7 I#3 det=1</emphasis>
+
+ <emphasis role="strong">0 1 1 2 1 * 1 0 0 0 0</emphasis>
+ This indicates that the ray is
+ incident to the origin. Alternatively, if the
+ <emphasis role="strong">allbases</emphasis>option is used, all
+ cobases will be printed out.
+ <emphasis role="strong">V-representation</emphasis>: If the input
+ is a V-representation, the cobasis is a list of the input vertices
+ /rays that define the current facet. For example, with input file
+ cube.ext a typical output is:
+ <emphasis role="strong">F#5 B#4 h=3 vertices/rays 2 3 4 5* I#3 det= 8</emphasis>
+
+ <emphasis role="strong"> 1 0 0 -1</emphasis>
+ There have been 5 facets output up
+ to this point, and 4 bases have been computed. This facet is
+ defined by the vertices in positions 2,3,4 in the input file. The
+ additional cobasis index 5* appears because a V-representation is
+ lifted to one higher dimension before processing, and this index
+ fills out the cobasis. I#3 means that this facet is incident with 3
+ input vertices/rays, ie. it is non-degenerate. See option
+ <emphasis role="strong">incidence</emphasis> above for more
+ information. To initiate
+ <emphasis>lrs</emphasis> from this facet all 4 indices must be
+ given in this order (omit the *), eg.
+ startingcobasis 2 3 4 5
+ Similarly, all 4 indices must be
+ given in order to restart from this facet:
+ restart 5 4 3 2 3 4
+ 5
+ <emphasis role="strong">printslack </emphasis>New
+ in Ver
+ 4.2 //
+ Use with H-representation
+ //
+ lrs prints a list of the indices of the input inequalities that are
+ satisfied strictly for the current vertex, ie. corresponding slack
+ variable is positive. If nonnegative
+ is set, the list will also include indices n+i for each decision
+ variable x<subscript>i</subscript> which is
+ positive.
+ <emphasis role="strong">project</emphasis>
+ Used by driver <ulink url="#fourier">fourier</ulink>
+ only.
+ <emphasis role="strong"></emphasis><emphasis role="strong">restart V# R# B# depth {facet #s or vertex/ray #s</emphasis>}
+ Modified in lrs4.0
+ <emphasis>lrs</emphasis> can be restarted from any known cobasis.
+ The calculation will proceed to normal termination. All of the
+ information is contained in the output from a
+ <emphasis role="strong">printcobasis</emphasis> option. The
+ <emphasis role="strong">order of the indices is very important,</emphasis>
+ enter them exactly as they appear in the output from the previously
+ aborted run. To restart from cobasis:
+ <emphasis role="strong">V#5 R#0 B#5 h=1 facets 3 4 5 det=1</emphasis>
+ enter:
+
+ <emphasis role="strong">restart 5 0 5 1 3 4 5</emphasis>
+ <para>
+ <emphasis role="strong">F#5 B#4 h=3 vertices/rays 2 3 4 5* det= 8</emphasis>
+
+ <emphasis role="strong"> 1 0 0 -1</emphasis>
+ enter
+
+ <emphasis role="strong">restart 5 4 3 2 3 4 5</emphasis>
+ </para>
+ <para>
+ Note that if some cobasic index is followed by a
+ "*", then the index only, without the
+ "*", is included in the restart line.
+
+ <emphasis role="strong">Caution:</emphasis> When restarting, output
+ from the restart dictionary may be duplicated, and the final totals
+ of number of vertices/rays/facets may reflect this.
+ </para>
+ <emphasis role="strong">startingcobasis i<subscript>1</subscript>i<subscript>2</subscript>i ... i<subscript>n-1</subscript></emphasis>
+ This allows the user to specify a known cobasis for beginning the
+ reverse search.
+ <emphasis role="strong">i<subscript>1</subscript>i<subscript>2</subscript>i ... i<subscript>n-1</subscript><subscript></subscript></emphasis>
+ is a list of the inequalities (for H-representation) or
+ vertices/rays (for V-representation) that define a cobasis. If it
+ is invalid, or this option is not specified,
+ <emphasis>lrs</emphasis> will find its own starting cobasis. For
+ example, with cube.ine, the user can start at vertex (-1,1,-1) by
+ specifying:
+ <emphasis role="strong">startingcobasis 1 3 4</emphasis>
+ <emphasis role="strong">truncate </emphasis>
+ // H-representation only
+ //
+ <emphasis role="strong"></emphasis>
+ <blockquote>
+ The reverse search tree is truncated(pruned) whenever a new
+ vertex is encountered. Note: This does note necessarily produce the
+ set of all vertices adjacent to the optimum vertex in the
+ polyhedron, but just a subset of them.
+ </blockquote>
+ <emphasis role="strong">verbose</emphasis>
+ <blockquote>
+ Print slightly more detailed information about the run.
+ </blockquote>
+ <emphasis role="strong">volume </emphasis>
+ // V-representation only //
+ Compute volume - see section
+ <ulink url="#Volume%20Computation">Volume Computation.</ulink>
+ <emphasis role="strong">voronoi </emphasis>
+ // V-representation only - place immediately after end
+ statement //
+ Compute Voronoi diagram - see section
+ <ulink url="#Voronoi%20Diagrams">Voronoi Diagrams.</ulink>
+</refsect2>
</refsect1>
--
Debian packaging for the lrslib vertex enumeration package
More information about the debian-science-commits
mailing list