lemon-project-template-glpk

annotate deps/glpk/examples/cf12b.mod @ 9:33de93886c88

Import GLPK 4.47
author Alpar Juttner <alpar@cs.elte.hu>
date Sun, 06 Nov 2011 20:59:10 +0100
parents
children
rev   line source
alpar@9 1 /*
alpar@9 2
alpar@9 3 Curve fitting problem 12.11(b) H P Williams "Model Building in Mathematical Programming"
alpar@9 4
alpar@9 5 Dr. H J Mackenzie
alpar@9 6 HARD software
alpar@9 7 hjm@hardsoftware.com
alpar@9 8
alpar@9 9 2006-01-23
alpar@9 10
alpar@9 11 */
alpar@9 12
alpar@9 13 # set of points
alpar@9 14
alpar@9 15 set I;
alpar@9 16
alpar@9 17 # independent variable
alpar@9 18
alpar@9 19 param x {i in I};
alpar@9 20
alpar@9 21 # dependent variable
alpar@9 22
alpar@9 23 param y {i in I};
alpar@9 24
alpar@9 25 # output input values
alpar@9 26
alpar@9 27 printf {i in I} "x = %.1f; y = %.1f\n", x[i], y[i];
alpar@9 28
alpar@9 29 # define equation variables
alpar@9 30
alpar@9 31 var a;
alpar@9 32
alpar@9 33 var b;
alpar@9 34
alpar@9 35 var u {i in I}, >= 0;
alpar@9 36
alpar@9 37 var v {i in I}, >= 0;
alpar@9 38
alpar@9 39 var z;
alpar@9 40
alpar@9 41 # define objective function
alpar@9 42
alpar@9 43 minimize deviation: z;
alpar@9 44
alpar@9 45 # define equation constraint
alpar@9 46
alpar@9 47 s.t. equation {i in I} : b * x[i] + a + u[i] - v[i] = y[i];
alpar@9 48
alpar@9 49 # define deviation constrains
alpar@9 50
alpar@9 51 s.t. u_deviation {i in I} : z - u[i] >= 0;
alpar@9 52 s.t. v_deviation {i in I} : z - v[i] >= 0;
alpar@9 53
alpar@9 54 solve;
alpar@9 55
alpar@9 56 printf "y = %.4fx + %.4f Max deviation = %.4f\n", b, a, z;
alpar@9 57
alpar@9 58 /*
alpar@9 59 *
alpar@9 60 * DATA section
alpar@9 61 *
alpar@9 62 */
alpar@9 63
alpar@9 64 data;
alpar@9 65
alpar@9 66 param : I : x y :=
alpar@9 67 1 0 1
alpar@9 68 2 0.5 0.9
alpar@9 69 3 1 0.7
alpar@9 70 4 1.5 1.5
alpar@9 71 5 1.9 2
alpar@9 72 6 2.5 2.4
alpar@9 73 7 3 3.2
alpar@9 74 8 3.5 2
alpar@9 75 9 4 2.7
alpar@9 76 10 4.5 3.5
alpar@9 77 11 5 1
alpar@9 78 12 5.5 4
alpar@9 79 13 6 3.6
alpar@9 80 14 6.6 2.7
alpar@9 81 15 7 5.7
alpar@9 82 16 7.6 4.6
alpar@9 83 17 8.5 6
alpar@9 84 18 9 6.8
alpar@9 85 19 10 7.3
alpar@9 86 ;
alpar@9 87
alpar@9 88 end;