MODEL:
! TELEHUB3;
! Find number of direct T1 and T3 lines between each node pair,
and number of lines via the single hub(node 1). A path via
hub can have a mix of T1 and T3 lines;
! Keywords: telecommunications, network design, routing, hub network;
SETS:
! We assume node 1 is the hub;
NODE/ HUB E1 E2 E3 E4 E5 /:;
LINK( NODE, NODE) | &2 #GT# &1 : DEMAND, VC1, FC1,
VC3, FC3, T1, T3, USET1D, USET3D, USEH;
ENDSETS
DATA:
! Capacity of T1 and T3 lines;
CAP1 = 10; CAP3 = 100;
! Call volume by node pair;
! E1 E2 E3 E4 E5;
DEMAND = 0 1 0 3 0 !HUB;
5 4 1 215 !E1;
4 6 125 !E2;
558 171 !E3;
895;!E4;
! Fixed cost of a T1 line;
FC1 = 18 19 18 15 19
32 32 22 17
34 28 18
31 17
18;
! Variable cost of a T1 line;
VC1 = 2.55 2.25 2.45 2.05 4.50
3.00 2.85 3.45 2.65
3.00 2.50 1.75
2.40 1.60
1.90;
FC3 = 55 55 55 55 120
70 70 70 85
70 70 85
70 85
85;
VC3 = 2.20 1.80 2.20 1.40 3.50
2.10 1.40 2.45 2.05
2.80 1.75 1.70
1.75 0.90
1.80;
ENDDATA
! Min sum of fixed + variable costs;
MIN = @SUM( LINK(I,J):
T1(I,J) * FC1(I,J) + USET1D(I,J) * VC1(I,J)
+ T3(I,J) * FC3(I,J) + USET3D(I,J) * VC3(I,J) );
@FOR(LINK(I,J):
! Capacity on a link >= amount used on link;
T1(I,J) * CAP1 >= USET1D(I,J);
T3(I,J) * CAP3 >= USET3D(I,J);
! We must carry the demand either direct or via the hub;
DEMAND( I, J) <= USET1D( I, J) + USET3D( I, J) + USEH( I, J);
! Number of lines must be general integers;
@GIN( T1(I,J) ); @GIN( T3(I,J) );
);
! Anything not carried direct, must go via the hub;
@FOR( NODE( I)| I #GT# 1:
USET1D(1,I) + USET3D( 1, I) = DEMAND(1,I)
+ @SUM( LINK( S, T) | S #EQ# I #OR# T #EQ# I: USEH( S, T));
);
END
|