weapons.gms : Weapons Assignment

Description

This model determines an assignment of weapons to targets in order
to inflict maximum damage at minimal cost. This is a classic
NLP test problem.

Reference

  • Bracken, J, and McCormick, G P, Chapter 2. In Selected Applications of Nonlinear Programming. John Wiley and Sons, New York, 1968, pp. 22-27.

Small Model of Type : NLP


Category : GAMS Model library


Main file : weapons.gms

$title Weapons Assignment   (WEAPONS,SEQ=18)
$Ontext

This model determines an assignment of weapons to targets in order
to inflict maximum damage at minimal cost. This is a classic
NLP test problem.


Bracken, J, and McCormick, G P, Chapter 2. In Selected Applications of
Nonlinear Programming. John Wiley and Sons, New York, 1968, pp. 22-27.

$Offtext

sets w  weapons  / ICBM      Intercontinental Ballistic Missiles
                   MRBM-1    Medium-Range Ballistic Missiles from first area
                   LR-Bomber Longe-Range Bomber
                   F-Bomber  Fighter Bomber
                   MRBM-2    Medium-Range Ballistic Missiles from second area /
     t  targets  / 1*20 /


   table td target data

            1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20    avail
icbm          .05             .15 .10 .15 .20                                 .05            200
mrbm-1    .16 .17 .15 .16 .15 .19 .19 .18 .20 .14     .02     .12 .13 .12 .15 .16 .15 .15    100
lr-bomber .04 .05 .04 .04 .04 .10 .08 .09 .08 .05 .01 .02 .01 .02 .03 .02 .05 .08 .07 .08    300
f-bomber                                      .04 .09 .08 .09 .08 .02 .07                    150
mrbm-2    .08 .06 .08 .05 .05 .02 .02         .10 .05 .04 .09 .02 .01 .01                    250

damage     60  50  50  75  40  60  35  30  25 150  30  45 125 200 200 130 100 100 100 150
target     30                 100              40              50  70  35              10

parameters wa(w)  weapons availability
           tm(t)  minimum number of weapons per target
           mv(t)  military value of target ;

wa(w) = td(w,"avail");   tm(t) = td("target",t);   mv(t) = td("damage",t);

display wa,tm,mv;

variables x(w,t)  weapons assignment
          prob(t) probability for each target
          tetd    total expected damage
positive  variable x

equations maxw(w)  weapons balance
          minw(t)  minimum number of weapons required per target
          probe(t) probability definition
          etdp     total expected damage alternate formulation
          etd      total expected damage;

maxw(w)..  sum(t$td(w,t), x(w,t)) =l= wa(w);

minw(t)$tm(t)..  sum(w$td(w,t), x(w,t)) =g= tm(t);

probe(t)..       prob(t) =e= 1 - prod(w$td(w,t), (1-td(w,t))**x(w,t));

etdp..  tetd =e= sum(t, mv(t)*prob(t));

etd..   tetd =e= sum(t, mv(t)*(1-prod(w$td(w,t), (1-td(w,t))**x(w,t))));

models war   traditional formulation  / maxw, minw, etd /
       warp  extended formulation     / maxw, minw, probe, etdp /;

x.l(w,t)$td(w,t) = wa(w)/card(t);

solve war maximizing tetd using nlp;

parameter report Summary Report;
*option report:0;

report(w,t) = x.l(w,t);
report('total',t) = sum(w, x.l(w,t));
report(w,'total') = sum(t, x.l(w,t));

display report;