1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Maxima Manual: Introduction to simplex</title>
<meta name="description" content="Maxima Manual: Introduction to simplex">
<meta name="keywords" content="Maxima Manual: Introduction to simplex">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="maxima_toc.html#Top" rel="start" title="Top">
<link href="maxima_264.html#g_t_0423_043a_0430_0437_0430_0442_0435_043b_044c-_0444_0443_043d_043a_0446_0438_0439-_0438-_043f_0435_0440_0435_043c_0435_043d_043d_044b_0445" rel="index" title="Указатель функций и переменных">
<link href="maxima_toc.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="maxima_231.html#simplex_002dpkg" rel="up" title="simplex-pkg">
<link href="maxima_233.html#Functions-and-Variables-for-simplex" rel="next" title="Functions and Variables for simplex">
<link href="maxima_231.html#simplex_002dpkg" rel="previous" title="simplex-pkg">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
body {color: black; background: white; margin-left: 8%; margin-right: 13%;
font-family: "FreeSans", sans-serif}
h1 {font-size: 150%; font-family: "FreeSans", sans-serif}
h2 {font-size: 125%; font-family: "FreeSans", sans-serif}
h3 {font-size: 100%; font-family: "FreeSans", sans-serif}
a[href] {color: rgb(0,0,255); text-decoration: none;}
a[href]:hover {background: rgb(220,220,220);}
div.textbox {border: solid; border-width: thin; padding-top: 1em;
padding-bottom: 1em; padding-left: 2em; padding-right: 2em}
div.titlebox {border: none; padding-top: 1em; padding-bottom: 1em;
padding-left: 2em; padding-right: 2em; background: rgb(200,255,255);
font-family: sans-serif}
div.synopsisbox {
border: none; padding-top: 1em; padding-bottom: 1em; padding-left: 2em;
padding-right: 2em; background: rgb(255,220,255);}
pre.example {border: 1px solid rgb(180,180,180); padding-top: 1em;
padding-bottom: 1em; padding-left: 1em; padding-right: 1em;
background-color: rgb(238,238,255)}
div.spacerbox {border: none; padding-top: 2em; padding-bottom: 2em}
div.image {margin: 0; padding: 1em; text-align: center}
div.categorybox {border: 1px solid gray; padding-top: 1em; padding-bottom: 1em;
padding-left: 1em; padding-right: 1em; background: rgb(247,242,220)}
img {max-width:80%; max-height: 80%; display: block; margin-left: auto; margin-right: auto}
-->
</style>
<link rel="icon" href="figures/favicon.ico">
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6>"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
</head>
<body lang="ru" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Introduction-to-simplex"></a>
<div class="header">
<p>
Next: <a href="maxima_233.html#Functions-and-Variables-for-simplex" accesskey="n" rel="next">Functions and Variables for simplex</a>, Previous: <a href="maxima_231.html#simplex_002dpkg" accesskey="p" rel="previous">simplex-pkg</a>, Up: <a href="maxima_231.html#simplex_002dpkg" accesskey="u" rel="up">simplex-pkg</a> [<a href="maxima_toc.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="maxima_264.html#g_t_0423_043a_0430_0437_0430_0442_0435_043b_044c-_0444_0443_043d_043a_0446_0438_0439-_0438-_043f_0435_0440_0435_043c_0435_043d_043d_044b_0445" title="Index" rel="index">Index</a>]</p>
</div>
<a name="Introduction-to-simplex-1"></a>
<h3 class="section">66.1 Introduction to simplex</h3>
<p><code>simplex</code> is a package for linear optimization using the simplex algorithm.
</p>
<p>Example:
</p>
<div class="example">
<pre class="example">(%i1) load("simplex")$
(%i2) minimize_lp(x+y, [3*x+2*y>2, x+4*y>3]);
9 7 1
(%o2) [--, [y = --, x = -]]
10 10 5
</pre></div>
<a name="Tests-for-simplex"></a>
<h4 class="subsection">66.1.1 Tests for simplex</h4>
<p>There are some tests in the directory <code>share/simplex/Tests</code>.
</p>
<a name="klee_005fminty"></a>
<h4 class="subsubsection">66.1.1.1 klee_minty</h4>
<p>The function <code>klee_minty</code> produces input for <code>linear_program</code>, for which
exponential time for solving is required without scaling.
</p>
<p>Example:
</p>
<div class="example">
<pre class="example">load("klee_minty")$
apply(linear_program, klee_minty(6));
</pre></div>
<p>A better approach:
</p>
<div class="example">
<pre class="example">epsilon_sx : 0$
scale_sx : true$
apply(linear_program, klee_minty(10));
</pre></div>
<a name="NETLIB"></a>
<h4 class="subsubsection">66.1.1.2 NETLIB</h4>
<p>Some smaller problems from netlib (<a href="https://www.netlib.org/lp/data/">https://www.netlib.org/lp/data/</a>)
test suite are converted to a format, readable by Maxima. Problems are
<code>adlittle</code>, <code>afiro</code>, <code>kb2</code>, <code>sc50a</code> and
<code>share2b</code>. Each problem has three input files in CSV format for
matrix <var>A</var> and vectors <var>b</var> and <var>c</var>.
</p>
<p>Example:
</p>
<div class="example">
<pre class="example">A : read_matrix("adlittle_A.csv", 'csv)$
b : read_list("adlittle_b.csv", 'csv)$
c : read_list("adlittle_c.csv", 'csv)$
linear_program(A, b, c)$
%[2];
=> 225494.9631623802
</pre></div>
<p>Results:
</p>
<div class="example">
<pre class="example">PROBLEM MINIMUM SCALING
adlittle +2.2549496316E+05 false
afiro -4.6475314286E+02 false
kb2 -1.7499001299E+03 true
sc50a -6.4575077059E+01 false
share2b -4.1573518187E+02 false
</pre></div>
<p>The Netlib website <a href="https://www.netlib.org/lp/data/readme">https://www.netlib.org/lp/data/readme</a> lists the values as
</p>
<div class="example">
<pre class="example">PROBLEM MINIMUM
adlittle +2.2549496316E+05
afiro -4.6475314286E+02
kb2 -1.7499001299E+03
sc50a -6.4575077059E+01
share2b -4.1573224074E+02
</pre></div>
<a name="Item_003a-simplex_002fnode_002fFunctions-and-Variables-for-simplex"></a><hr>
<div class="header">
<p>
Next: <a href="maxima_233.html#Functions-and-Variables-for-simplex" accesskey="n" rel="next">Functions and Variables for simplex</a>, Previous: <a href="maxima_231.html#simplex_002dpkg" accesskey="p" rel="previous">simplex-pkg</a>, Up: <a href="maxima_231.html#simplex_002dpkg" accesskey="u" rel="up">simplex-pkg</a> [<a href="maxima_toc.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="maxima_264.html#g_t_0423_043a_0430_0437_0430_0442_0435_043b_044c-_0444_0443_043d_043a_0446_0438_0439-_0438-_043f_0435_0440_0435_043c_0435_043d_043d_044b_0445" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
|