source: html/userguide/ch02s07.html @ 2182

Last change on this file since 2182 was 966, checked in by ddelanu, 16 years ago

Temporary version, trying to fix problems in server change, real release to follow

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 6.6 KB
1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>
2  Simplex-specific Methods
3  </title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="CLP User Guide"><link rel="up" href="ch02.html" title="Chapter 2. 
4  Basic Model Classes
5  "><link rel="prev" href="ch02s06.html" title="Some Useful Set and Get Methods"><link rel="next" href="ch02s08.html" title="
6  Presolve
7  "></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">
8  Simplex-specific Methods
9  </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s06.html">Prev</a> </td><th width="60%" align="center">Chapter 2. 
10  Basic Model Classes
11  </th><td width="20%" align="right"> <a accesskey="n" href="ch02s08.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="simplexspecific"></a>
12  Simplex-specific Methods
13  </h2></div></div></div><p>
14  Some of the most commonly-used methods when working with Simplex are listed in
15  the table below.
16  </p><div class="table"><a name="id4769539"></a><p class="title"><b>Table 2.3. Common Simplex-specific methods</b></p><table summary="Common Simplex-specific methods" border="0"><colgroup><col><col></colgroup><thead><tr><th>
17    Method(s)
18    </th><th>
19    Description
20    </th></tr></thead><tbody><tr><td align="left" valign="top">
21      <tt class="function">primal(int mode=0)</tt>
22      </td><td align="left" valign="top">
23      This applies the primal algorithm. If <i class="parameter"><tt>mode</tt></i> is
24      set to the default of 0, then the method uses the status variables to
25      determine basis and solution. If <i class="parameter"><tt>mode</tt></i> is 1 then
26      the method does a values pass so variables not in basis are given their
27      current values and one pass of variables is done to clean up the basis
28      with an equal or better objective value.
29      </td></tr><tr><td align="left" valign="top">
30      <tt class="function">dual(int mode=0)</tt>
31      </td><td align="left" valign="top">
32      This applies the dual algorithm. if <i class="parameter"><tt>mode</tt></i> is set
33      to the default of 0, then the method uses the status variables to
34      determine basis and solution.  If <i class="parameter"><tt>mode</tt></i> is 1 then
35      the method uses input duals and does a values pass so one pass of basic
36      variables is done to clean up the duals with an equal or better objective
37      value.
38      </td></tr><tr><td align="left" valign="top">
39      <tt class="function">scaling(int mode=1)</tt>
40      </td><td align="left" valign="top">
41      This method toggles scaling on (<i class="parameter"><tt>mode</tt></i> set to 1)
42      and off (<i class="parameter"><tt>mode</tt></i> set to 0).
43      </td></tr><tr><td align="left" valign="top">
44      <tt class="function">int crash(double gap,int mode)</tt>
45      </td><td align="left" valign="top">
46      This method attemps to improve on an all slack basis.
47      For dual this will move variables to the dual feasible bound
48      if the gap between bounds is less than <i class="parameter"><tt>gap</tt></i>.  Setting
49      <i class="parameter"><tt>mode</tt></i> to 0 guesses which algorithm is better, while
50      a value of 1 or 2 will result in more work being done.  The return code is
51      0 if the basis was not slacks in first case, it is negative if dual is
52      preferred or positive if primal.  ±1 means an all slack basis seemed
53      best, while ±2 means some work was done.
54      </td></tr><tr><td align="left" valign="top">
55      <tt class="function">perturb(int mode)</tt>
56      </td><td align="left" valign="top">
57      This method toggles perturbation on (<i class="parameter"><tt>mode</tt></i> set to 1)
58      and off (<i class="parameter"><tt>mode</tt></i> set to 0).  It should be considered
59      a work in progress, although on some problems it gives very good results.
60      </td></tr><tr><td align="left" valign="top">
61      <tt class="function">factorizationFrequency()</tt><br>
62      <tt class="function">setFactorizationFrequency(int value)</tt>
63      </td><td align="left" valign="top">
64      These are "get" and "set" methods for the basis matrix
65      factorization frequency.  The default is to refactor every 200 iterations,
66      but it may make more sense to use something such as 100 + the number of
67      rows divided by 50.
68      </td></tr><tr><td align="left" valign="top">
69      <tt class="function">dualBound()</tt><br>
70      <tt class="function">setDualBound(double value)</tt>
71      </td><td align="left" valign="top">
72      These are "get" and "set" methods for the
73      "dual bound".  The CLP dual algorithm declares all problems
74      to be dual feasible by putting non-basic variables to correct bounds for
75      the reduced cost.  If the gap between the bounds is too big then it
76      pretends the gap is only the value specified by this set method.
77      In essence, this gives a composite dual rather than a pure
78      Phase I- Phase II method.
79      </td></tr><tr><td align="left" valign="top">
80      <tt class="function">infeasibilityCost()</tt><br>
81      <tt class="function">setInfeasibilityCost(double value)</tt>
82      </td><td align="left" valign="top">
83      These are the primal analogs to the "dual bound" methods.
84      </td></tr><tr><td align="left" valign="top">
85      <tt class="function">numberPrimalInfeasibilities()</tt><br>
86      <tt class="function">sumPrimalInfeasibilities()</tt>
87      </td><td align="left" valign="top">
88      After a solve, there may be infeasibilities.  These methods serve to
89      check for said infeasibilities.  One could check the solution explicitly
90      as well.  For a code fragement illustrating this, see
91      <a href="ch02s08.html#presolveexample" title="Example 2.3. Presolve code fragment">Example 2.3, &#8220;Presolve code fragment&#8221;</a>.
92      </td></tr></tbody></table></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s06.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s08.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Some Useful Set and Get Methods </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 
93  Presolve
94  </td></tr></table></div></body></html>
Note: See TracBrowser for help on using the repository browser.