╨╧рб▒с>■   ■                                                                                                                                                                                                                                                                                                                                                                                                                                                    0; !Fixed (cost/day)/aircraft of type; FSIZE = 7 2; !Fleet size limits; DEPAT = ! Depart time of each flight; 800 900 800 1100 1100 1200 1400 1400 1400 1600 1800; ARVAT = ! Arrival time of each flight; 934 1039 1116 1314 1423 1521 1609 1510 1959 1912 2121; PC = ! Profit contribution of each flight; 105 109 110 130 106 112!First type A; 132 115 133 108 116 121 108 115 140 122 115 !then type B; 129 123 135 117 124; ENDDATA !-----------------------------------------------; ! Maximize profit contribution from flights minus overhead cost of aircraft in fleet; MAX=@SUM(AXF(I,N,J,K):PC(I,N,J,K)*X(I,N,J,K)) - @SUM( AXC( I, J): FCOST( I) * OVNITE( I, J)); !At any instant, departures in particular, the number of cumulative arrivals must be >= number of cumulative Departures. For each flight of each aircraft type; @FOR( ACRFT( I): @FOR( FXCXC( N, J, K): ! Aircraft on ground in morning + number aircraft arrived thus far >= number aircraft departed thus far; OVNITE( I, J) + @SUM( FXCXC( N1, J1, K1)| K1 #EQ# J #AND# ARVAT( N1, J1, K1) #LT# DEPAT( N, J, K): X( I, N1, J1, J)) >= @SUM( FXCXC( N1, J1, K1)| J1 #EQ# J #AND# DEPAT( N1, J1, K1) #LE# DEPAT( N, J, K): X( I, N1, J, K1)););); ! This model does not allow deadheading, so at the end of the day, arrivals must equal departures; @FOR( ACRFT( I): @FOR( CITY( J): @SUM( AXF( I, N, J1, J): X( I, N, J1, J)) = @SUM( AXF( I, N, J, K): X( I, N, J, K)); ); ); ! Each flight must be covered; @FOR( FXCXC( N, J, K): @SUM( AXF( I, N, J, K): X( I, N, J, K)) = 1; ); ! Fleet size limits; @FOR( ACRFT( I): @SUM( AXC( I, J): OVNITE( I, J)) <= FSIZE( I); ); ! Fractional planes are not allowed; @FOR( AXF: @GIN( X); ); END MODEL: SETS: ! Fleet routing and assignment (FLEETRA); CITY/ ORD DEN LAX/:; ! The cities involved; ACRFT/ A B /: FCOST, FSIZE; ! Types of aircraft; FLIGHT/1..11/:;!Each flight gets unique number 1,2...; FXCXC(FLIGHT, CITY, CITY)/!Origin-destination pairs; 1 ORD DEN 2 ORD DEN 3 LAX DEN 4 ORD LAX 5 DEN ORD 6 DEN ORD 7 ORD LAX 8 DEN LAX 9 LAX ORD 10 LAX DEN 11 DEN ORD/ : DEPAT, ARVAT; AXC( ACRFT, CITY): OVNITE; AXF( ACRFT, FXCXC): X, PC; ENDSETS DATA: FCOST = 0 ■   ¤   ■   ■                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Root Entry        y CONTENTS            y                           !"#$%■                                                                                                                                                                                                                                                                                                                                                                           Root Entry        *0_Ъю╧╗Є└Ё^аяuf■─ @ Contents            $                                                         ■   ¤   ■    ■                                                                                                                                                                                                                                                                                                                                                                                                                                                              !"#$%&'()*+,-./01234■                                                                                                                                                                                                                                                                                                               par \cf3 ! This model does not allow deadheading, so at the end of the day, arrivals must equal departures;\cf2 \par \cf1 @FOR\cf2 ( ACRFT( I): \par \cf1 @FOR\cf2 ( CITY( J): \par \cf1 @SUM\cf2 ( AXF( I, N, J1, J): X( I, N, J1, J)) = \par \cf1 @SUM\cf2 ( AXF( I, N, J, K): X( I, N, J, K)); \par ); \par ); \par \cf3 ! Each flight must be covered;\cf2 \par \cf1 @FOR\cf2 ( FXCXC( N, J, K): \par \cf1 @SUM\cf2 ( AXF( I, N, J, K): X( I, N, J, K)) = 1; \par ); \par \cf3 ! Fleet size limits;\cf2 \par \cf1 @FOR\cf2 ( ACRFT( I): \par \cf1 @SUM\cf2 ( AXC( I, J): OVNITE( I, J)) <= FSIZE( I); \par ); \par \cf3 ! Fractional planes are not allowed;\cf2 \par \cf1 @FOR\cf2 ( AXF: \cf1 @GIN\cf2 ( X); \par ); \par \cf1 END\cf2 \par \par } ьЛ{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Courier New;}} {\colortbl ;\red0\green0\blue255;\red0\green0\blue0;\red0\green175\blue0;} \viewkind4\uc1\pard\cf1\f0\fs20 MODEL\cf2 : \par \cf1 SETS\cf2 : \cf3 ! Fleet routing and assignment (FLEETRA);\cf2 \par CITY/ ORD DEN LAX/:; \cf3 ! The cities involved;\cf2 \par ACRFT/ A B /: FCOST, FSIZE; \cf3 ! Types of aircraft;\cf2 \par FLIGHT/1..11/:;\cf3 !Each flight gets unique number 1,2...;\cf2 \par FXCXC(FLIGHT, CITY, CITY)/\cf3 !Origin-destination pairs;\cf2 \par 1 ORD DEN 2 ORD DEN 3 LAX DEN 4 ORD LAX 5 DEN ORD \par 6 DEN ORD 7 ORD LAX 8 DEN LAX 9 LAX ORD 10 LAX \par DEN 11 DEN ORD/ : DEPAT, ARVAT; \par AXC( ACRFT, CITY): OVNITE; \par AXF( ACRFT, FXCXC): X, PC; \par \cf1 ENDSETS\cf2 \par \cf1 DATA\cf2 : \par FCOST = 0 0; \cf3 !Fixed (cost/day)/aircraft of type;\cf2 \par FSIZE = 7 2; \cf3 !Fleet size limits;\cf2 \par DEPAT = \cf3 ! Depart time of each flight;\cf2 \par 800 900 800 1100 1100 1200 \par 1400 1400 1400 1600 1800; \par ARVAT = \cf3 ! Arrival time of each flight;\cf2 \par 934 1039 1116 1314 1423 1521 \par 1609 1510 1959 1912 2121; \par PC = \cf3 ! Profit contribution of each flight;\cf2 \par 105 109 110 130 106 112\cf3 !First type A;\cf2 \par 132 115 133 108 116 \par 121 108 115 140 122 115 \cf3 !then type B;\cf2 \par 129 123 135 117 124; \par \cf1 ENDDATA\cf2 \par \cf3 !-----------------------------------------------;\cf2 \par \cf3 ! Maximize profit contribution from flights minus overhead cost of aircraft in fleet;\cf2 \par \cf1 MAX\cf2 =\cf1 @SUM\cf2 (AXF(I,N,J,K):PC(I,N,J,K)*X(I,N,J,K)) \par - \cf1 @SUM\cf2 ( AXC( I, J): FCOST( I) * OVNITE( I, J)); \par \cf3 !At any instant, departures in particular, the number of cumulative arrivals must be >= number of cumulative Departures. For each flight of each aircraft type;\cf2 \par \cf1 @FOR\cf2 ( ACRFT( I): \par \cf1 @FOR\cf2 ( FXCXC( N, J, K): \par \cf3 ! Aircraft on ground in morning + number aircraft arrived thus far >= number aircraft departed thus far;\cf2 \par OVNITE( I, J) + \par \cf1 @SUM\cf2 ( FXCXC( N1, J1, K1)| K1 #EQ# J #AND# \par ARVAT( N1, J1, K1) #LT# DEPAT( N, J, K): \par X( I, N1, J1, J)) >= \par \cf1 @SUM\cf2 ( FXCXC( N1, J1, K1)| J1 #EQ# J #AND# \par DEPAT( N1, J1, K1) #LE# DEPAT( N, J, K): \par X( I, N1, J, K1)););); \