diff options
Diffstat (limited to 'packages/glpk/examples')
-rw-r--r-- | packages/glpk/examples/simplex1.hs | 21 | ||||
-rw-r--r-- | packages/glpk/examples/simplex2.hs | 16 | ||||
-rw-r--r-- | packages/glpk/examples/simplex3.hs | 24 | ||||
-rw-r--r-- | packages/glpk/examples/simplex4.hs | 24 |
4 files changed, 85 insertions, 0 deletions
diff --git a/packages/glpk/examples/simplex1.hs b/packages/glpk/examples/simplex1.hs new file mode 100644 index 0000000..4609524 --- /dev/null +++ b/packages/glpk/examples/simplex1.hs | |||
@@ -0,0 +1,21 @@ | |||
1 | -- first example in glpk manual | ||
2 | |||
3 | import Numeric.LinearProgramming | ||
4 | |||
5 | objFun = Maximize [10, 6, 4] | ||
6 | |||
7 | constr = Dense [ [1,1,1] :<: 100 | ||
8 | , [10,4,5] :<: 600 | ||
9 | , [2,2,6] :<: 300 ] | ||
10 | |||
11 | -- default bounds | ||
12 | bnds = [ 1 :>: 0 | ||
13 | , 2 :>: 0 | ||
14 | , 3 :>: 0 ] | ||
15 | |||
16 | main = do | ||
17 | print $ simplex objFun constr [] | ||
18 | print $ simplex objFun constr bnds | ||
19 | print $ simplex objFun constr [Free 3] | ||
20 | print $ simplex objFun constr [ 2 :<: 50 ] | ||
21 | |||
diff --git a/packages/glpk/examples/simplex2.hs b/packages/glpk/examples/simplex2.hs new file mode 100644 index 0000000..76a53df --- /dev/null +++ b/packages/glpk/examples/simplex2.hs | |||
@@ -0,0 +1,16 @@ | |||
1 | import Numeric.LinearProgramming | ||
2 | |||
3 | prob = Maximize [1,2,3,4] | ||
4 | |||
5 | constr1 = Sparse [ [1#1, 1#2] :<: 10 | ||
6 | , [1#3, 1#4] :<: 10 | ||
7 | ] | ||
8 | |||
9 | constr2 = Dense [ [1,1,0,0] :<: 10 | ||
10 | , [0,0,1,1] :<: 10 | ||
11 | ] | ||
12 | |||
13 | main = do | ||
14 | print $ simplex prob constr1 [] | ||
15 | print $ simplex prob constr2 [] | ||
16 | |||
diff --git a/packages/glpk/examples/simplex3.hs b/packages/glpk/examples/simplex3.hs new file mode 100644 index 0000000..0f787cb --- /dev/null +++ b/packages/glpk/examples/simplex3.hs | |||
@@ -0,0 +1,24 @@ | |||
1 | import Numeric.LinearProgramming | ||
2 | |||
3 | -- $ glpsol --cpxlp /usr/share/doc/glpk-utils/examples/plan.lp -o result.txt | ||
4 | |||
5 | prob = Minimize [0.03, 0.08, 0.17, 0.12, 0.15, 0.21, 0.38] | ||
6 | |||
7 | constr = Dense | ||
8 | [ [1,1,1,1,1,1,1] :==: 2000 | ||
9 | , [0.15, 0.04, 0.02, 0.04, 0.2,0.01, 0.03] :<: 60 | ||
10 | , [0.03, 0.05, 0.08, 0.02, 0.06, 0.01, 0] :<: 100 | ||
11 | , [0.02, 0.04, 0.01, 0.02, 0.02, 0, 0] :<: 40 | ||
12 | , [0.02, 0.03, 0, 0, 0.01, 0, 0] :<: 30 | ||
13 | , [0.7, 0.75, 0.8, 0.75, 0.8, 0.97, 0] :>: 1500 | ||
14 | , [0.02, 0.06, 0.08, 0.12, 0.02, 0.01, 0.97] :&: (250,300) | ||
15 | ] | ||
16 | |||
17 | bounds = [ 1 :&: (0,200) | ||
18 | , 2 :&: (0,2500) | ||
19 | , 3 :&: (400,800) | ||
20 | , 4 :&: (100,700) | ||
21 | , 5 :&: (0,1500) ] | ||
22 | |||
23 | main = print $ simplex prob constr bounds | ||
24 | |||
diff --git a/packages/glpk/examples/simplex4.hs b/packages/glpk/examples/simplex4.hs new file mode 100644 index 0000000..3b9c060 --- /dev/null +++ b/packages/glpk/examples/simplex4.hs | |||
@@ -0,0 +1,24 @@ | |||
1 | import Numeric.LinearProgramming | ||
2 | |||
3 | -- $ glpsol --cpxlp /usr/share/doc/glpk-utils/examples/plan.lp -o result.txt | ||
4 | |||
5 | prob = Minimize [0.03, 0.08, 0.17, 0.12, 0.15, 0.21, 0.38] | ||
6 | |||
7 | constr = Sparse | ||
8 | [ [1#1,1#2,1#3,1#4,1#5,1#6,1#7] :==: 2000 | ||
9 | , [0.15#1, 0.04#2, 0.02#3, 0.04#4, 0.2#5,0.01#6, 0.03#7] :<: 60 | ||
10 | , [0.03#1, 0.05#2, 0.08#3, 0.02#4, 0.06#5, 0.01#6] :<: 100 | ||
11 | , [0.02#1, 0.04#2, 0.01#3, 0.02#4, 0.02#5] :<: 40 | ||
12 | , [0.02#1, 0.03#2, 0.01#5] :<: 30 | ||
13 | , [0.7#1, 0.75#2, 0.8#3, 0.75#4, 0.8#5, 0.97#6] :>: 1500 | ||
14 | , [0.02#1, 0.06#2, 0.08#3, 0.12#4, 0.02#5, 0.01#6, 0.97#7] :&: (250,300) | ||
15 | ] | ||
16 | |||
17 | bounds = [ 1 :&: (0,200) | ||
18 | , 2 :&: (0,2500) | ||
19 | , 3 :&: (400,800) | ||
20 | , 4 :&: (100,700) | ||
21 | , 5 :&: (0,1500) ] | ||
22 | |||
23 | main = print $ simplex prob constr bounds | ||
24 | |||