Routing telephone calls
{ Exmpl12.3-1_RoutingPhoneCalls.mpl }
{ Applications of Optimization with Xpress-MP }
{ Chapter 12.3, Routing Telephone Calls, Size: 16x17, Page 245 }
TITLE
RoutingPhoneCalls;
INDEX
call := (n_ni,n_t,n_v,ni_v,p_t);
arc := (n_ni,n_p,p_n,p_ni,p_v,ni_n,ni_p,ni_t,v_p,v_t,t_v,t_ni);
path := 1..17;
DATA
Cap[arc] := (120,300,300,300,200,120,300,80,200,70,70,80);
Dem[call] := (100, 80, 75,100, 70);
Route[path,arc] := [1,n_ni,1,
2,n_p,1,2,p_ni,1,
3,n_p,1,3,p_v,1,3,v_t,1,3,t_ni,1,
4,n_p,1,4,p_v,1,4,v_t,1,
5,n_p,1,5,p_ni,1,5,ni_t,1,
6,n_ni,1,6,ni_t,1,
7,n_ni,1,7,ni_p,1,7,p_v,1,7,v_t,1,
8,n_p,1,8,p_v,1,
9,n_p,1,9,p_ni,1,9,ni_t,1,9,t_v,1,
10,n_p,1,10,ni_t,1,10,t_v,1,
11,n_ni,1,11,ni_t,1,11,t_v,1,
12,ni_n,1,12,n_p,1,12,p_v,1,
13,ni_p,1,13,p_v,1,
14,ni_t,1,14,t_v,1,
15,p_v,1,15,v_t,1,
16,p_n,1,16,n_ni,1,16,ni_t,1,
17,p_ni,1,17,ni_t,1]
CIndex[path,call] := [1,n_ni,1,
2,n_ni,1,
3,n_ni,1,
4,n_t,1,
5,n_t,1,
6,n_t,1,
7,n_t,1,
8,n_v,1,
9,n_v,1,
10,n_v,1,
11,n_v,1,
12,ni_v,1,
13,ni_v,1,
14,ni_v,1,
15,p_t,1,
16,p_t,1,
17,p_t,1];
VARIABLE
Flow[path];
MODEL
MAX TotFlow = SUM(path: Flow);
SUBJECT TO
FlowWithinDemand[call] -> FDEM:
SUM(path: Flow WHERE CIndex > 0) <= Dem;
ArcCapacities[arc] -> ACAP:
SUM(path: Flow WHERE Route > 0) <= Cap;
INTEGER
Flow;
END
Back To Top
|
Maximal Home Page
|
List of Models |
Previous Page
|
Next Page