summaryrefslogtreecommitdiff
path: root/packages/glpk/examples/simplex3.hs
blob: e093124beae9fb1ddf2a888e87ef7fd0913cbdb9 (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
-- compare with
-- $ glpsol --cpxlp  /usr/share/doc/glpk-utils/examples/plan.lp  -o result.txt

import Numeric.LinearProgramming

prob = Minimize [0.03, 0.08, 0.17, 0.12, 0.15, 0.21, 0.38]

constr = Dense
    [ [1,1,1,1,1,1,1]                           :==: 2000
    , [0.15, 0.04, 0.02, 0.04, 0.2,0.01, 0.03]   :<=:  60
    , [0.03, 0.05, 0.08, 0.02, 0.06, 0.01, 0]    :<=:  100
    , [0.02, 0.04, 0.01, 0.02, 0.02, 0,    0]    :<=:  40
    , [0.02, 0.03, 0,    0,    0.01, 0,    0]    :<=:  30
    , [0.7,  0.75, 0.8,  0.75, 0.8,  0.97,  0]   :=>:  1500
    , [0.02, 0.06, 0.08, 0.12, 0.02, 0.01, 0.97] :&: (250,300)
    ]

bounds = [ 1 :&: (0,200)
         , 2 :&: (0,2500)
         , 3 :&: (400,800)
         , 4 :&: (100,700)
         , 5 :&: (0,1500) ]

main = print $ simplex prob constr bounds