Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision | ||
tutorial:optimization [2013/08/26 16:55] – added example for lift-and-project pfetsch | tutorial:optimization [2014/01/03 15:45] – external edit 127.0.0.1 | ||
---|---|---|---|
Line 414: | Line 414: | ||
*Note* that we need to take the inequalities instead of facets here, since facets are irredundant and thus might not be TDI, although the complete set of inequalities is TDI. | *Note* that we need to take the inequalities instead of facets here, since facets are irredundant and thus might not be TDI, although the complete set of inequalities is TDI. | ||
- | ===== 0/ | ||
===== Chvátal-Gomory Closure ===== | ===== Chvátal-Gomory Closure ===== | ||
Line 448: | Line 447: | ||
</ | </ | ||
- | The Chvátal-Gomory closure of a polytope can be computed with the function '' | + | The Chvátal-Gomory closure of a polytope can be computed with the function '' |
< | < | ||
polytope > $g = gc_closure($p); | polytope > $g = gc_closure($p); | ||
Line 475: | Line 474: | ||
==== Chvátal-Gomory Closure - Example 2 ==== | ==== Chvátal-Gomory Closure - Example 2 ==== | ||
- | Let us now consider the classical example of a polytope with the vertices of simplex in d dimensions and the point 1/2 times (1, ..., 1). It can be shown that such a polytope has rank at least log(d) - 1, see [Pokutta, 2011]. In our example, we use d = 4: | + | Let us now consider the classical example of a polytope with the vertices of simplex in d dimensions and the point 1/2 times (1, ..., 1). It can be shown that such a polytope has rank at least log(d) - 1, see [[http:// |
< | < | ||
polytope > $M = new Matrix< | polytope > $M = new Matrix< | ||
Line 529: | Line 528: | ||
my $p = shift; | my $p = shift; | ||
my $d = $p-> | my $d = $p-> | ||
- | my $q = new Polytope< | + | my $q = new Polytope< |
for (my $k = 0; $k < $d; $k = $k+1) | for (my $k = 0; $k < $d; $k = $k+1) | ||
{ | { | ||
Line 540: | Line 539: | ||
my $v1 = new Vector< | my $v1 = new Vector< | ||
my $v2 = new Vector< | my $v2 = new Vector< | ||
- | my $c1 = new Polytope< | ||
- | my $c2 = new Polytope< | ||
- | # intersect | + | # create intersection of corresponding polyhedra |
- | my $b1 = intersection($c1, $p); | + | my $b1 = new Polytope< |
- | my $b2 = intersection($c2, $p); | + | my $b2 = new Polytope< |
if ( ($b1-> | if ( ($b1-> | ||
Line 554: | Line 551: | ||
elsif ( ($b1-> | elsif ( ($b1-> | ||
{ | { | ||
- | my $c = conv($b1); | + | $q = intersection($q, |
- | $q = intersection($q, | + | |
} | } | ||
elsif ( ($b1-> | elsif ( ($b1-> | ||
{ | { | ||
- | my $c = conv($b2); | + | $q = intersection($q, |
- | $q = intersection($q, | + | |
} | } | ||
} | } | ||
Line 607: | Line 602: | ||
Thus, we have obtained the integral hull in a single step of the lift-and-project closure as opposed to two steps in the CG-closure. | Thus, we have obtained the integral hull in a single step of the lift-and-project closure as opposed to two steps in the CG-closure. | ||
- | ===== Other Software ===== | ||