summaryrefslogtreecommitdiff
path: root/glpk-5.0/examples/cf12b.mod
blob: 56f1ba10697f80fba1136be15e275a19dc45318d (plain)
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
/*

  Curve fitting problem 12.11(b) H P Williams "Model Building in Mathematical Programming"

  Dr. H J Mackenzie
  HARD software
  hjm@hardsoftware.com

  2006-01-23

 */

# set of points

set I;

# independent variable

param x {i in I};

# dependent variable

param y {i in I};

# output input values

printf {i in I} "x = %.1f; y = %.1f\n", x[i], y[i];

# define equation variables

var a;

var b;

var u {i in I}, >= 0;

var v {i in I}, >= 0;

var z;

# define objective function

minimize deviation: z;

# define equation constraint

s.t. equation {i in I} : b * x[i] + a + u[i] - v[i] = y[i];

# define deviation constrains

s.t. u_deviation {i in I} : z - u[i] >= 0;
s.t. v_deviation {i in I} : z - v[i] >= 0;

solve;

printf "y = %.4fx + %.4f Max deviation = %.4f\n", b, a, z;

/*
 *
 * DATA section
 *
 */

data;

param : I :   x    y :=
        1     0    1
        2   0.5  0.9
        3     1  0.7
        4   1.5  1.5
        5   1.9    2
        6   2.5  2.4
        7     3  3.2
        8   3.5    2
        9     4  2.7
       10   4.5  3.5
       11     5    1
       12   5.5    4
       13     6  3.6
       14   6.6  2.7
       15     7  5.7
       16   7.6  4.6
       17   8.5    6
       18     9  6.8
       19    10  7.3
;

end;