$ondollar title NASA Capital Budgeting (ILP) Example 11.2 of Rardin (1998) $offsymxref offsymlist offuelxref offuellist offupper option limrow = 0, limcol = 0; sets j "missions" /1*14/, t "budget periods" /2000, 2005, 2010, 2015, 2020/; table req(j,t) "mission j budget requirements in period t" 2000 2005 2010 2015 2020 1 6 2 2 3 3 3 5 4 10 5 5 8 6 1 8 4 7 1 8 8 5 9 4 5 10 8 4 11 2 7 12 5 7 13 1 4 1 1 14 4 5 3 3; parameter v(j) "estimated value of mission j" /1 200, 2 3, 3 20, 4 50, 5 70, 6 20, 7 5, 8 10, 9 200, 10 150, 11 18, 12 8, 13 300, 14 185/; parameter b(t) "budget in period t (billion)" /2000 10, 2005 12, 2010 14, 2015 14, 2020 14/; free variable value "total value"; binary variables x(j) "whether to do mission j"; equations obj "maximize total value", bud(t) "budget limits in period t", me4v5 "4 and 5 mutually exclusive", me8v11 "8 and 11 mutually exclusive", me9v14 "9 and 14 mutually exclusive", d4on3 "4 depends on 3", d5on3 "5 depends on 3", d6on3 "6 depends on 3", d7on3 "7 depends on 3", d11on2 "11 depends on 2"; obj.. value =e= sum(j, v(j)*x(j)); bud(t).. sum(j, req(j,t)*x(j)) =l= b(t); me4v5.. x('4') + x('5') =l= 1; me8v11.. x('8') + x('11') =l= 1; me9v14.. x('9') + x('14') =l= 1; d4on3.. x('4') =l= x('3'); d5on3.. x('5') =l= x('3'); d6on3.. x('6') =l= x('3'); d7on3.. x('7') =l= x('3'); d11on2.. x('11') =l= x('2'); model nasa /all/; solve nasa using mip maximizing value;