summaryrefslogtreecommitdiff
path: root/glpk-5.0/examples/dea.mod
diff options
context:
space:
mode:
authorPasha <pasha@member.fsf.org>2023-01-27 00:54:07 +0000
committerPasha <pasha@member.fsf.org>2023-01-27 00:54:07 +0000
commitef800d4ffafdbde7d7a172ad73bd984b1695c138 (patch)
tree920cc189130f1e98f252283fce94851443641a6d /glpk-5.0/examples/dea.mod
parentec4ae3c2b5cb0e83fb667f14f832ea94f68ef075 (diff)
downloadoneapi-master.tar.gz
oneapi-master.tar.bz2
simplex-glpk with modified glpk for fpgaHEADmaster
Diffstat (limited to 'glpk-5.0/examples/dea.mod')
-rw-r--r--glpk-5.0/examples/dea.mod222
1 files changed, 222 insertions, 0 deletions
diff --git a/glpk-5.0/examples/dea.mod b/glpk-5.0/examples/dea.mod
new file mode 100644
index 0000000..ba61073
--- /dev/null
+++ b/glpk-5.0/examples/dea.mod
@@ -0,0 +1,222 @@
+/* Data Envelopment Analysis (DEA)
+ *
+ * DEA quantifies the relative efficiency of decision making units (DMUs) by
+ * finding the efficient frontier in multiple input multiple output data. The
+ * inputs are resources (eg. number of employees, available machines, ...),
+ * the outputs are productive outputs (eg. contracts made, total sales, ...).
+ * The method is non-parametric. More details are available in the paper
+ * below.
+ *
+ * Models according to: Seiford, Threall, "Recent developments in DEA", 1990.
+ *
+ * Implementation: Sebastian Nowozin <nowozin@gmail.com>
+ */
+
+### SETS ###
+
+set dmus; # Decision Making Units (DMU)
+set inputs; # Input parameters
+set outputs; # Output parameters
+
+
+### PARAMETERS ###
+
+param input_data{dmus,inputs} >= 0;
+param output_data{dmus,outputs} >= 0;
+
+
+### PROGRAM ###
+
+var theta{dmus} >= 0;
+var lambda{dmus,dmus} >= 0;
+
+minimize inefficiency: sum{td in dmus} theta[td];
+
+s.t. output_lower_limit{o in outputs, td in dmus}:
+ sum{d in dmus} lambda[d,td]*output_data[d,o] >= output_data[td,o];
+s.t. input_upper_limit{i in inputs, td in dmus}:
+ sum{d in dmus} lambda[d,td]*input_data[d,i] <= theta[td]*input_data[td,i];
+
+ s.t. PI1{td in dmus}:
+ sum{d in dmus} lambda[d,td] = 1;
+/*
+possibilities:
+ i) (no constraint)
+ ii) s.t. PI1{td in dmus}:
+ sum{d in dmus} lambda[d,td] <= 1;
+ iii) s.t. PI1{td in dmus}:
+ sum{d in dmus} lambda[d,td] >= 1;
+*/
+
+
+### SOLVE AND PRINT SOLUTION ###
+
+solve;
+
+printf "DMU\tEfficiency\n";
+for {td in dmus} {
+ printf "%s\t%1.4f\n", td, theta[td];
+}
+
+### DATA ###
+
+data;
+
+set dmus := 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 ;
+set inputs := AvgInventory LaborCost OperatingCost Population ;
+set outputs := PrescrVol kDollarValue ;
+
+param input_data default 0.0 :
+
+ AvgInventory LaborCost OperatingCost Population :=
+
+1 8000 17030 1280 1410
+2 9000 25890 2779 1523
+3 13694 29076 2372 1354
+4 4250 17506 1385 822
+5 6500 23208 639 746
+6 7000 12946 802 1281
+7 4500 18001 1130 1016
+8 5000 14473 1097 1070
+9 27000 31760 5559 1694
+10 21560 50972 15010 1910
+11 15000 39523 4799 1745
+12 8500 13076 3489 1353
+13 35000 35427 1704 500
+14 18000 27554 2882 1016
+15 59750 53848 14208 2500
+16 19200 38253 1480 2293
+17 40000 109404 83016 2718
+18 8466 18198 1278 2877
+19 16000 40891 7599 4150
+20 10000 45444 5556 4421
+21 25000 35623 2121 3883
+22 14000 20192 5515 3519
+23 12500 34973 10475 32366
+24 17260 32284 14498 3393
+25 7000 17920 7585 4489
+26 14000 42094 3742 2217
+27 16400 35422 14236 4641
+28 13000 19100 3529 5968
+29 30000 72167 8656 8715
+30 12530 19970 1714 5968
+31 31500 39183 4919 5607
+32 10000 32048 3483 7324
+33 22000 68877 12279 8685
+34 10000 29812 3332 8685
+35 16000 47686 2507 5420
+36 10000 33415 4738 7703
+37 9000 12359 4603 4665
+38 16439 23614 2989 6317
+39 14500 36069 1793 31839
+40 39000 76307 9539 15619
+41 24927 40706 12661 30213
+42 13858 39267 4609 34719
+43 33375 29509 11323 31839
+44 29044 44482 5542 34719
+45 32257 61365 20550 32366
+46 8800 49671 3306 43561
+47 47000 40425 10396 31263
+48 12000 33034 4915 31263
+49 28000 69163 4688 15173
+50 13300 28931 16735 73064
+51 13500 29758 4260 62309
+52 24000 40927 8285 23166
+53 16000 40403 2131 99836
+54 17000 38730 2539 60348
+55 25000 35978 2502 99836
+56 16000 37509 6278 99836
+57 20000 46950 10715 85925
+58 14000 35966 3144 85925
+59 22000 68318 8015 108987
+60 21879 69537 7778 108987
+61 15000 25425 2812 201404
+62 10000 19508 2454 201404
+63 20000 28191 3367 201404
+64 18000 37073 8624 108987
+65 19051 23763 3496 201404
+66 15000 28642 3366 201404
+67 10000 35919 3868 201404
+68 24000 54653 26494 108987
+69 1800 6276 3413 60348
+ ;
+
+param output_data default 0.0 :
+
+ PrescrVol kDollarValue :=
+
+1 12293 61.00
+2 18400 92.00
+3 16789 92.65
+4 10700 45.00
+5 9800 50.00
+6 6500 29.00
+7 8200 56.00
+8 8680 45.00
+9 33800 183.00
+10 23710 156.00
+11 24000 120.00
+12 17500 75.00
+13 25000 130.00
+14 26000 122.00
+15 26830 178.513
+16 16600 106.00
+17 90000 450.00
+18 11140 73.624
+19 25868 136.00
+20 32700 191.295
+21 29117 152.864
+22 18000 100.00
+23 11100 60.00
+24 23030 137.778
+25 10656 58.00
+26 24682 152.095
+27 26908 120.00
+28 16464 80.00
+29 57000 321.00
+30 17532 94.747
+31 30035 168.00
+32 16000 100.00
+33 63700 277.00
+34 18000 90.00
+35 27339 139.134
+36 19500 116.00
+37 13000 80.00
+38 15370 102.00
+39 18446 90.00
+40 56000 260.00
+41 73845 364.951
+42 28600 145.00
+43 27000 243.00
+44 52423 279.816
+45 73759 363.388
+46 20500 80.00
+47 27100 115.00
+48 15000 110.00
+49 50895 277.852
+50 19707 128.00
+51 17994 78.80
+52 36135 167.222
+53 30000 153.00
+54 26195 125.00
+55 28000 216.00
+56 24658 152.551
+57 36850 190.00
+58 29250 183.69
+59 50000 250.00
+60 40078 265.443
+61 20200 110.00
+62 12500 75.00
+63 30890 195.00
+64 31000 175.00
+65 31277 192.992
+66 11500 75.00
+67 30000 175.668
+68 38383 190.00
+69 2075 8.650
+ ;
+
+end;