! Keywords: Airlines / Distribution / Network / 
! RailRoad Industry / Routing / Scheduling / Shipping /
! Shortest Route / Transportation;
! Fleet routing and assignment with two plane types; 
! We want to schedule planes to cover the following
! schedule of 11 flights that repeats every day. 
! We have two plane types, A and B, to choose from.
!  See the text Optimization Modeling with LINGO for more details.
!            City           Time
! Flight Depart Arrive Depart Arrive
!  1 221  ORD    DEN    0800   0934
!  2 223  ORD    DEN    0900   1039
!  3 274  LAX    DEN    0800   1116
!  4 105  ORD    LAX    1100   1314
!  5 228  DEN    ORD    1100   1423
!  6 230  DEN    ORD    1200   1521
!  7 259  ORD    LAX    1400   1609
!  8 293  DEN    LAX    1400   1510
!  9 412  LAX    ORD    1400   1959
! 10 766  LAX    DEN    1600   1912
! 11 238  DEN    ORD    1800   2121
!
!  Maximize profit contribution from flights covered;
  MAX 105 F221A + 121 F221B + 109 F223A + 108 F223B
    + 110 F274A + 115 F274B + 130 F105A + 140 F105B
    + 106 F228A + 122 F228B + 112 F230A + 115 F230B
    + 132 F259A + 129 F259B + 115 F293A + 123 F293B
    + 133 F412A + 135 F412B + 108 F766A + 117 F766B
    + 116 F238A + 124 F238B
  SUBJECT TO
! Conservation of flow constraints,
!  for type A aircraft,
!   Chicago at 8 am, sources - uses = 0;
  2) - F221A - F223A - F105A - F259A - GC1400A + GC2400A = 0
!   Chicago at midnight;
  3)   F228A + F230A + F412A + F238A + GC1400A - GC2400A = 0
! Denver at 11 am;
  4)   F221A + F223A - F228A - GD1100A + GD2400A =    0
! Denver at high noon;
  5)   F274A - F230A - F293A - F238A + GD1100A - GD1800A = 0
! Denver at midnight;
   6)   F766A - GD2400A + GD1800A =    0
! LA at 8 am;
   7) - F274A - GL0800A + GL2400A =    0
! LA  at 1400;
   8)   F105A - F412A + GL0800A - GL1400A =    0
! LA  at 1600;
   9)   F293A - F766A + GL1400A - GL1600A =    0
! LA  at midnight;
 10)   F259A - GL2400A + GL1600A =    0
!   Aircraft type B, conservation of flow;
! Chicago at 8 am;
 11) - F221B - F223B - F105B - F259B - GC1400B + GC2400B = 0
! Chicago at midnight;
 12)   F228B + F230B + F412B + F238B + GC1400B - GC2400B = 0
! Denver at 11 am;
 13)   F221B + F223B - F228B - GD1100B + GD2400B =    0
! Denver at high noon;
 14)  F274B - F230B - F293B - F238B + GD1100B - GD1800B = 0
! Denver at midnight;
  15)   F766B - GD2400B + GD1800B =    0
! LA at 8 am;
  16) - F274B - GL0800B + GL2400B =    0
! LA  at 1400;
  17)   F105B - F412B + GL0800B - GL1400B =    0
! LA  at 1600;
  18)   F293B - F766B + GL1400B - GL1600B =    0
! LA  at midnight;
  19)   F259B - GL2400B + GL1600B =    0
! Can put at most one plane on each flight;
  20)   F221A + F221B <=  1
  21)   F223A + F223B <=  1
  22)   F274A + F274B <=  1
  23)   F105A + F105B <=  1
  24)   F228A + F228B <=  1
  25)   F230A + F230B <=  1
  26)   F259A + F259B <=  1
  27)   F293A + F293B <=  1
  28)   F412A + F412B <=  1
  29)   F766A + F766B <=  1
  30)   F238A + F238B <=  1
! Fleet size of type B;
  31)   GC2400B + GD2400B + GL2400B <=   2
  END