2. OR 7310 Course Project Fall 2015
1
Table of Contents
1. INTRODUCTION .....................................................................................................................2
2. CALDATA NETWORK...........................................................................................................2
3. BARRY NETWORK.................................................................................................................3
3.1 Lower Bound........................................................................................................................3
3.2 Heuristic (Upper Bound) – Method 1 ................................................................................6
3.2.1 Description of the Method..............................................................................................6
3.2.2 Calculation of Total Cost................................................................................................8
3.2.3 Improving the heuristic to lower upper bound .............................................................8
3.3 Heuristic (Upper Bound) – Method 2 ................................................................................9
3.3.1 Description of Method 2.................................................................................................9
3.3.2 Constraints Added ........................................................................................................11
3.3.3 Result............................................................................................................................13
4. CONCLUSION........................................................................................................................16
Reference......................................................................................................................................16
3. OR 7310 Course Project Fall 2015
2
1. INTRODUCTION
We are faced with a telecommunication network design problem. It is a real-world problem,
which is a combination of routing problem and facility location selection problem.
There are two different networks we need to solve: Caldata network and Barry network. Both
are enormous to solve on personal computer using AMPL which will take very long time to get
result or just unlikely to work out, although the model and data are given and correct.
What we need to do is using our creativity and insightfulness in addition to the techniques we
have learned in the course to improve the method and get a reasonable solution with low
optimality gap so that it can be used in the real world.
2. CALDATA NETWORK
Caldata network as well as the Barry network has something in common which result in the
way to solve them have several similarities.
Each network has a small number of hubs. Hubs are connected by arcs, and in the network
architecture the company is using, arcs are created in sets of parallel rings.
As data flows from one hub to another in this network, it will often have to switch from one
ring to another. And ring-switching is only possible at hubs that have a BBDX installed.
In addition, data can only enter or leave a ring at a hub if the ring has an ADM installed at
that hub.
Due to the BBDX locations are given in the project, the primary questions are the locations of
ADMs in order to minimize the total cost of data transfer and ADM installation, which in the
mean time satisfies all the demand and capacity requirements.
Figure 2-1 Caldata Network
Part 1
Part 2
If a destination of Part 2 has
demand from origin of Part 1,
the data must go through hub
E and transfer no matter where
it goes afterwards or before.
4. OR 7310 Course Project Fall 2015
3
Although the data demand varies a lot in destinations and origins, there has something in
common. If a destination of Part 2 has demand from origin of Part 1, the data must go through
hub E and transfer no matter where it goes afterwards or before.
Using this idea, we can separate the problem into 2 parts as well as each demand. For
example there is a demand from B to K, which has a value of 13000. We separate it and make it
2 demands: B – E and E – K, both have value of 13000.
We can believe the ADM locations we get in this way are the same as the original problem
since the demand of each hub stays the same.
However, the total cost is not the one. Because, we have not count the transfer fee yet since
we deal with the problem individually.
In this way, we separate every demand that contains two parts and calculate and combine the
common new demands. Then we change the data in the data file of AMPL and solve separately.
(Files in the zip archive) As we have imagined, the process went pretty fast and we can get the
total cost as well as the ADM locations in a short time. The ADM locations are the answer we
want.
Part 1 Cost = 14505000, Part 2 Cost = 22814000
Then, we deal with the total cost which is pretty easy that we can do by hand. The total
number of data needs to transfer is 103000.
So, the total optimal cost will be: 14505000 + 22814000 + 103000*8 – 103000*(2+2) =
37731000. The ADM locations are as below.
ABEC_A_1 1 ABEC_B_1 1 ABEC_C_1 0 ABEC_E_1 0 BDE_B_1 1 BDE_E_1 1
ABEC_A_2 1 ABEC_B_2 0 ABEC_C_2 0 ABEC_E_2 1 BDE_B_2 0 BDE_E_2 0
ABEC_A_3 0 ABEC_B_3 1 ABEC_C_3 1 ABEC_E_3 1 BDE_D_1 1
ABEC_A_4 1 ABEC_B_4 1 ABEC_C_4 0 ABEC_E_4 1 BDE_D_2 0
EGLKIHF_E_1 1 EGLKIHF_H_1 1 EGLKIHF_L_1 0 HIKJ_K_1 0 KLNM_M_2 0
EGLKIHF_E_2 1 EGLKIHF_H_2 0 EGLKIHF_L_2 0 HIKJ_K_2 1 KLNM_M_3 1
EGLKIHF_E_3 1 EGLKIHF_H_3 0 EGLKIHF_L_3 1 KLNM_K_1 0 KLNM_N_1 1
EGLKIHF_F_1 1 EGLKIHF_I_1 0 HIKJ_H_1 1 KLNM_K_2 1 KLNM_N_2 1
EGLKIHF_F_2 0 EGLKIHF_I_2 0 HIKJ_H_2 0 KLNM_K_3 1 KLNM_N_3 1
EGLKIHF_F_3 0 EGLKIHF_I_3 0 HIKJ_I_1 0 KLNM_L_1 1
EGLKIHF_G_1 1 EGLKIHF_K_1 0 HIKJ_I_2 1 KLNM_L_2 0
EGLKIHF_G_2 0 EGLKIHF_K_2 1 HIKJ_J_1 1 KLNM_L_3 0
EGLKIHF_G_3 0 EGLKIHF_K_3 0 HIKJ_J_2 1 KLNM_M_1 0
3. BARRY NETWORK
3.1 Lower Bound
As the idea of the first question, we think we can separate the full mode into two subsets
model in the Barry Question. Because there are 8 points in the ring QMEGRCOS (ring 2), and
just 7 points in the ring KIPTUJF (ring 3), so we consider that the ring 2 is more complex than
the ring 3. Then we group the ring ABLNIKMQHD (ring 1) and ring 3 together (Group 1) to run,
and let the ring 2 (Group 2) run itself. The main question become to how many flow form Group
1 to Group 2 with M point and Q point, vice versa.
To simplify the model and get a lower bound, we decide to combine point Q and point M to a
point V. Technically, firstly, the sum of point Q’s and point M’s demand become the point V’s
demand; secondly, the sum of point Q’s and point M’s supply become the point V’s supply;
5. OR 7310 Course Project Fall 2015
4
Thirdly, all flow from Group 1 to Group 2 must pass the point V, and all flow from Group 2 to
Group 1 must pass the point V. we get the model 2.
Figure 3-1 Barry Model 2
We prove why the new model is lower bound firstly.
Assume we can get the optimal solution of the original model (OSO), and then we can get all
flows. Take all the flows into the model 2, which must work with the lower or same with OSO
because of the missing cost of flow between point Q and point M. So we get a feasible solution
of the model 2(FS2) with the flows from original mode. Finally we can calculate the optional
solution of the model 2(OS2), which is smaller or the same with the FS2. As the function show,
FS2 is a lower bound of original model.
OS2≪FS2≪OSO
Then, we should calculate the OS2. The main idea is divided model 2 into Group 1 and
Group 2, and run separately. All flow between Group 1 and Group 2 must be through point V, so
all flow get point V firstly, and then translate to other Group. Let the translation from Group 1 to
Group 2 is T1, and Group 2 to Group 1 is T2. Comparing directly run the model 2, separately run
has the same ADM point and same flow, because we don’t change anything of flow. But there
are two differences in separately run. Firstly, the T1 and T2 have one more time in and out in
point V. Secondly; there are not translation between Goup1 and Group2. The function 2 is:
Group 1 optimal solution + Group 2 optimal solution + translation fee*(T1+T2) - (In+Out)
fee*(T1+T2) = Model 2 optimal solution
6. OR 7310 Course Project Fall 2015
5
For Group 1:
1. Sum total supply from each point in Group 1 to all points in Group 2, and adding the total
supply to this point V in Group 1.
(Example: sum all supply of point A to all point in Group 2, which is 10500, and adding
this number to the supply from point A to Point V (3500), which is 3500+10500=140000,
and 140000 is the total supply from point A to point V in Group 1).
2. Sum total supply from all points in Group 2 to each point in Group 1, and adding the total
supply to point V to this point in Group 1.
(Example: sum all supply of all points in Group 2 to point P, which is 15000, and adding
this number to the supply from point V to Point P (1000), which is 1000+15000=15000,
and 15000 is the total supply from point V to point P in Group 1).
3. Change data, and we run the Group 1;
We get the objective 35613930 and adm [*]: =
ABLNIKVHD_A_1 1 ABLNIKVHD_H_4 1 ABLNIKVHD_N_3 0 IPTUJFK_K_1 1
ABLNIKVHD_A_2 1 ABLNIKVHD_I_1 1 ABLNIKVHD_N_4 0 IPTUJFK_K_2 0
ABLNIKVHD_A_3 1 ABLNIKVHD_I_2 1 ABLNIKVHD_V_1 1 IPTUJFK_K_3 0
ABLNIKVHD_A_4 1 ABLNIKVHD_I_3 0 ABLNIKVHD_V_2 1 IPTUJFK_P_1 1
ABLNIKVHD_B_1 1 ABLNIKVHD_I_4 0 ABLNIKVHD_V_3 1 IPTUJFK_P_2 0
ABLNIKVHD_B_2 0 ABLNIKVHD_K_1 0 ABLNIKVHD_V_4 1 IPTUJFK_P_3 1
ABLNIKVHD_B_3 0 ABLNIKVHD_K_2 0 IPTUJFK_F_1 1 IPTUJFK_T_1 0
ABLNIKVHD_B_4 1 ABLNIKVHD_K_3 1 IPTUJFK_F_2 0 IPTUJFK_T_2 0
ABLNIKVHD_D_1 0 ABLNIKVHD_K_4 0 IPTUJFK_F_3 1 IPTUJFK_T_3 1
ABLNIKVHD_D_2 0 ABLNIKVHD_L_1 0 IPTUJFK_I_1 0 IPTUJFK_U_1 0
ABLNIKVHD_D_3 0 ABLNIKVHD_L_2 1 IPTUJFK_I_2 1 IPTUJFK_U_2 0
ABLNIKVHD_D_4 1 ABLNIKVHD_L_3 0 IPTUJFK_I_3 1 IPTUJFK_U_3 1
ABLNIKVHD_H_1 0 ABLNIKVHD_L_4 0 IPTUJFK_J_1 1
ABLNIKVHD_H_2 0 ABLNIKVHD_N_1 0 IPTUJFK_J_2 1
ABLNIKVHD_H_3 0 ABLNIKVHD_N_2 1 IPTUJFK_J_3 1
For Group 2, the same method of the Group 1.
We get the objective 26008450 and adm [*]: =
VEGRCOS_C_1 0 VEGRCOS_E_4 0 VEGRCOS_O_1 1 VEGRCOS_R_4 1
VEGRCOS_V_1 1
VEGRCOS_C_2 0 VEGRCOS_E_5 0 VEGRCOS_O_2 1 VEGRCOS_R_5 0
VEGRCOS_V_2 1
VEGRCOS_C_3 0 VEGRCOS_E_6 0 VEGRCOS_O_3 1 VEGRCOS_R_6 1
VEGRCOS_V_3 0
VEGRCOS_C_4 0 VEGRCOS_G_1 1 VEGRCOS_O_4 0 VEGRCOS_S_1 0
VEGRCOS_V_4 0
VEGRCOS_C_5 0 VEGRCOS_G_2 1 VEGRCOS_O_5 1 VEGRCOS_S_2 0
VEGRCOS_V_5 1
VEGRCOS_C_6 1 VEGRCOS_G_3 0 VEGRCOS_O_6 1 VEGRCOS_S_3 1
VEGRCOS_V_6 1
VEGRCOS_E_1 1 VEGRCOS_G_4 1 VEGRCOS_R_1 1 VEGRCOS_S_4 0
VEGRCOS_E_2 0 VEGRCOS_G_5 1 VEGRCOS_R_2 0 VEGRCOS_S_5 0
VEGRCOS_E_3 0 VEGRCOS_G_6 1 VEGRCOS_R_3 0 VEGRCOS_S_6 1
7. OR 7310 Course Project Fall 2015
6
For model 2,
1. Sum all supply from Group 1’s points (Except point V) to Group 2’s points, get
T1 = 166000;
2. Sum all demand from Group 1’s points (Except point V) to Group 2’s points, get
T2= 81000;
From the function 2, we get the optimal solution of model 2, which is
35613930 + 26008450 + 8*(166000 +81000) – (2+2) * (166000+81000) = 62610380
So 62610380 is the lower bound.
3.2 Heuristic (Upper Bound) – Method 1
3.2.1 Description of the Method
As the idea of the first question, we think we can separate the full mode into two subsets
model in the Barry Question. Because there are 8 points in the ring QMEGRCOS (ring 2), and
just 7 points in the ring KIPTUJF (ring 3), so we consider that the ring 2 is more complex than
the ring 3. Then we group the ring ABLNIKMQHD (ring 1) and ring 3 together (Group 1) to run,
and let the ring 2 (Group 2) run itself. The main question become to how many flow form Group
1 to Group 2 with M point and Q point, vice versa.
We assume all flows between Group 1 and Group2 is just through one point, M or Q.
Firstly, prove it is heuristic solution of the full model. We assume all flows between Group 1
and Group2 is just through one point M (Q), and named M (Q) model. As the same way of
lower bound, we can get the optimal solution of M model, named it OSMM. We can get all
flows and ADM points in M model, and put it in the original model. Because the original model
have the laxer condition, so the flows and ADM points from OSMM can work in original model,
which mean these flows and ADM points are a feasible solution of original model.
So the optimal solution of M model and Q model is a heuristic solution of original model.
Then, we should calculate the optimal solution of M model and Q model. The method is the
same of the way to calculate the option solution of model 2 in lower bound part.
For M model,
For Group 1,
We get the objective 36759150, and adm [*]: =
ABLNIKMQHD_A_1 1 ABLNIKMQHD_I_1 1 ABLNIKMQHD_N_1 0 IPTUJFK_J_3 1
ABLNIKMQHD_A_2 1 ABLNIKMQHD_I_2 1 ABLNIKMQHD_N_2 1 IPTUJFK_K_1 1
ABLNIKMQHD_A_3 1 ABLNIKMQHD_I_3 0 ABLNIKMQHD_N_3 0 IPTUJFK_K_2 0
ABLNIKMQHD_A_4 1 ABLNIKMQHD_I_4 0 ABLNIKMQHD_N_4 0 IPTUJFK_K_3 0
ABLNIKMQHD_B_1 1 ABLNIKMQHD_K_1 0 ABLNIKMQHD_Q_1 0 IPTUJFK_P_1 1
ABLNIKMQHD_B_2 0 ABLNIKMQHD_K_2 0 ABLNIKMQHD_Q_2 0 IPTUJFK_P_2 1
ABLNIKMQHD_B_3 1 ABLNIKMQHD_K_3 0 ABLNIKMQHD_Q_3 1 IPTUJFK_P_3 0
ABLNIKMQHD_B_4 0 ABLNIKMQHD_K_4 1 ABLNIKMQHD_Q_4 0 IPTUJFK_T_1 0
ABLNIKMQHD_D_1 1 ABLNIKMQHD_L_1 0 IPTUJFK_F_1 1 IPTUJFK_T_2 1
ABLNIKMQHD_D_2 0 ABLNIKMQHD_L_2 1 IPTUJFK_F_2 1 IPTUJFK_T_3 0
ABLNIKMQHD_D_3 0 ABLNIKMQHD_L_3 0 IPTUJFK_F_3 0 IPTUJFK_U_1 1
ABLNIKMQHD_D_4 0 ABLNIKMQHD_L_4 0 IPTUJFK_I_1 0 IPTUJFK_U_2 0
ABLNIKMQHD_H_1 1 ABLNIKMQHD_M_1 1 IPTUJFK_I_2 1 IPTUJFK_U_3 0
ABLNIKMQHD_H_2 0 ABLNIKMQHD_M_2 1 IPTUJFK_I_3 1
ABLNIKMQHD_H_3 0 ABLNIKMQHD_M_3 1 IPTUJFK_J_1 1
9. OR 7310 Course Project Fall 2015
8
XEGRCOSQ_C_5 0 XEGRCOSQ_G_5 0 XEGRCOSQ_Q_5 0 XEGRCOSQ_S_5 1
XEGRCOSQ_C_6 1 XEGRCOSQ_G_6 1 XEGRCOSQ_Q_6 1 XEGRCOSQ_S_6 1
XEGRCOSQ_E_1 1 XEGRCOSQ_O_1 1 XEGRCOSQ_R_1 1 XEGRCOSQ_X_1 1
XEGRCOSQ_E_2 0 XEGRCOSQ_O_2 1 XEGRCOSQ_R_2 0 XEGRCOSQ_X_2 0
XEGRCOSQ_E_3 0 XEGRCOSQ_O_3 1 XEGRCOSQ_R_3 0 XEGRCOSQ_X_3 0
XEGRCOSQ_E_4 0 XEGRCOSQ_O_4 0 XEGRCOSQ_R_4 1 XEGRCOSQ_X_4 0
XEGRCOSQ_E_5 0 XEGRCOSQ_O_5 1 XEGRCOSQ_R_5 0 XEGRCOSQ_X_5 0
XEGRCOSQ_E_6 0 XEGRCOSQ_O_6 1 XEGRCOSQ_R_6 1 XEGRCOSQ_X_6 0
From the function 2, we get the optimal solution of M model, which is
36037600 + 27269900 + 8*(166000 +81000) – (2+2) * (166000+81000) = 64295500
Comparing the outcome of Q model and M model, we find M model is better, and the
heuristic is the optimal solution of M model, 64032250.
3.2.2 Calculation of Total Cost
To efficiently compute the total cost (ADM installation cost and flow cost) when the ADM
installations are fixed, original.mod and original.dat are modified to calculate the objective
function of Total_Cost instead of searching ADM installation locations:
(1) In original.mod, move “var adm{RING_NODES} binary” from variable list and add it to
the parameter list, “param adm{RING_NODES} binary;
(2) In original.dat, add “param adm” data set, which includes the (cycle_hub_ring, {0, 1})
pairs, where 0 means ADM not being installed in this location and 1 means ADM being
installed in this location.
The modified model and data files are renamed as test.mod and test.dat. These two files are
used in adjusting and improving the feasible solutions obtained by the method shown in section
3.2.1 through quickly calculating the total cost when ADM installation locations are known.
3.2.3 Improving the heuristic to lower upper bound
There are four ideas to improve the heuristic:
1. From the image of model 2, we can find there are 8 ADM points in point V, which mean
that 8 ADM points is enough to translate all flow between Group 1 and Group 2.
8 ADM points in points QM is the best.
2. Compared to model 2, M model has one more ADM point in points QM, which one is in Q
points in Group 1. The reason is there are must be an ADM point in Q point to accept the flow
from point A. Because in M model, the function of translation in point Q is deleted, so the value
of ADM point in point Q is weakened. To improve the heuristic, an ADM point should be set in
Q points in Group 2 to use the function of translation in point Q in Group 1.
There is at least one ADM point in Q point in each Group.
3. Because the M model is better Q model, so we can conclude the cost of majority flow
between Group 1 and Group 2 in M model is cheaper than in Q model.
The number of ADM points in point M is more than the number of ADM points in point
Q in each group.
4. The optimal solution of model 2 is a lower bound of the original model, so the ADM points
in the optimal solution of model 2 can create a smaller flow cost.
The ADM points in the optimal solution in model 2 are the basic.
10. OR 7310 Course Project Fall 2015
9
Let the ADM points in the optimal solution in model 2 be the basic, and use other three ideas
to improve the heuristic.
From the method of 3.2.2, we use the ADM points we get in the model 2 to set the other
points (expect point Q and M) in the original model, and try to find a better heuristic with these
three criteria.
When we set the ADM points in pint Q and point M like that:
MEGRCOSQ_M_1 1 MEGRCOSQ_Q_1 0 ABLNIKMQHD_M_1 1
ABLNIKMQHD_Q_1 0
MEGRCOSQ_M_2 0 MEGRCOSQ_Q_2 1 ABLNIKMQHD_M_1 0
ABLNIKMQHD_Q_1 1
MEGRCOSQ_M_3 0 MEGRCOSQ_Q_3 0 ABLNIKMQHD_M_1 1
ABLNIKMQHD_Q_1 0
MEGRCOSQ_M_4 0 MEGRCOSQ_Q_4 0 ABLNIKMQHD_M_1 1
ABLNIKMQHD_Q_1 0
MEGRCOSQ_M_5 1 MEGRCOSQ_Q_5 0
MEGRCOSQ_M_6 1 MEGRCOSQ_Q_6 0
And run the original model and original data, we get the objective 63032250.
Because it is a feasible solution of original model, so it is a heuristic solution.
3.3 Heuristic (Upper Bound) – Method 2
3.3.1 Description of Method 2
Instead of searching best solution within each of the two parts individually and combining the
results manually as shown in section 3.2, another way we have tried is to simply obtain the final
heuristic solution by program running. The procedures are shown as follows:
(1) Combine cycle MEGRCOSQ into one hub, say V, and include it as part of cycle
ABLNIKVHD. Figure 3-3 shows the Barry network after combination.
Figure 3-3 Barry network with cycle MEGRCOSQ being combined into hub V
11. OR 7310 Course Project Fall 2015
10
The sums of demands going from hub M, E, G, R, C, O, S, Q to hub A, B, L, N, I, P, T, U, J,
F, K, H, D, respectively, equal the origin demands of the new hub V to other hubs, and the sums
of demands going to hub M, E, G, R, C, O, S, Q from hub A, B, L, N, I, P, T, U, J, F, K, H, D,
respectively, equals the destination demands of hub V. The data is summarized in table 3-1.
Table 3-1 Barry network virtual hub V demand
Origin Destination Demand Origin Destination Demand
A V 140,000 K V 14,000
B V 5,000 N V 1,000
F V 7,000 V I 22,000
H V 1,000 V J 31,000
I V 29,000 V K 13,000
J V 25,000 V P 16,000
(2) Remove all the data related to cycle MEGRCOSQ and hubs M, E, G, R, C, O, S, and Q
from original.dat, update cycle ABLNIKMQHD to ABLNIKVHD, and add all the data
required related to the new hub V. The modified original.mod and original.dat files are
renamed as barryUpperRight.mod and barryUpperRight.dat.
(3) Run barryUpperRight.mod and barryUpperRight.dat and get the ADM installation
locations for hub A, B, L, N, I, P, T, U, J, F (ADM installation locations for the virtual
hub V are obtained too, but they will not be used in the following steps). The AMPL
output of adm is shown as follows.
ADM installation locations for reduced Barry network in Figure 3-4
ampl: display adm;
adm [*] :=
ABLNIKVHD_A_1 1 ABLNIKVHD_H_4 1 ABLNIKVHD_N_3 0 IPTUJFK_K_1 1
ABLNIKVHD_A_2 1 ABLNIKVHD_I_1 1 ABLNIKVHD_N_4 0 IPTUJFK_K_2 0
ABLNIKVHD_A_3 1 ABLNIKVHD_I_2 1 ABLNIKVHD_V_1 1 IPTUJFK_K_3 0
ABLNIKVHD_A_4 1 ABLNIKVHD_I_3 0 ABLNIKVHD_V_2 1 IPTUJFK_P_1 1
ABLNIKVHD_B_1 1 ABLNIKVHD_I_4 0 ABLNIKVHD_V_3 1 IPTUJFK_P_2 0
ABLNIKVHD_B_2 0 ABLNIKVHD_K_1 0 ABLNIKVHD_V_4 1 IPTUJFK_P_3 1
ABLNIKVHD_B_3 0 ABLNIKVHD_K_2 0 IPTUJFK_F_1 1 IPTUJFK_T_1 0
ABLNIKVHD_B_4 1 ABLNIKVHD_K_3 1 IPTUJFK_F_2 0 IPTUJFK_T_2 0
ABLNIKVHD_D_1 0 ABLNIKVHD_K_4 0 IPTUJFK_F_3 1 IPTUJFK_T_3 1
ABLNIKVHD_D_2 0 ABLNIKVHD_L_1 0 IPTUJFK_I_1 0 IPTUJFK_U_1 0
ABLNIKVHD_D_3 0 ABLNIKVHD_L_2 1 IPTUJFK_I_2 1 IPTUJFK_U_2 0
ABLNIKVHD_D_4 1 ABLNIKVHD_L_3 0 IPTUJFK_I_3 1 IPTUJFK_U_3 1
ABLNIKVHD_H_1 0 ABLNIKVHD_L_4 0 IPTUJFK_J_1 1
ABLNIKVHD_H_2 0 ABLNIKVHD_N_1 0 IPTUJFK_J_2 1
ABLNIKVHD_H_3 0 ABLNIKVHD_N_2 1 IPTUJFK_J_3 1
(4) Use the ADM installation locations obtained in (3) as part of the input and run the
original full model, original.mod and original.dat. The obtained result will be a heuristic
feasible solution, which is an upper bound for the problem.
12. OR 7310 Course Project Fall 2015
11
3.3.2 Constraints Added
To increase the algorithm calculation speed, besides using the pre-processed partial results as
input as shown previously, another two types of constraints are added when executing step (1) in
section 3.3.1:
(1) Prevention of searching unnecessary data flowing paths:
Since the objective function of total cost includes ADM installation cost, ADM and BBDX
usage cost, and data flow costs on arcs, the heuristic is searching for all possible combinations of
ADM installation which minimizes the number of ADM installed and the number of times of
ring changing. Meanwhile, it tends to search for the paths which data flowing on with as less cost
as possible. For example, if 1 unit of data is sent from hub A to hub F, the two most possible
paths of data flow are A – B – L – N – I – K – F or A – D – H – Q – M – K – F, which are shown
as the blue and orange paths in the following figure:
Figure 3-5 Possible paths for sending data from hub A to hub F in Barry network
Although the total cost of sending 1 unit of data on path A – D – H – Q – M – K – F is lower
than on path A – B – L – N – I – K – F, the demand from A to F does not necessarily flow on
path A – D – H – Q – M – K – F since other factors such as ADM installation locations and arc
capacity are also considered in determining the best upper bound. However, it is impossible that
the demand from A to F will flow on the paths as shown in red and dark red dotted lines in the
Figure 3-6, since the paths take unnecessary cycle with much longer path and larger flow cost.
13. OR 7310 Course Project Fall 2015
12
Figure 3-6 Impossible paths for sending data from hub A to hub F in Barry network
When computes are running the programming models, they search all possible combinations
of variables (ADM installation locations and flow on type 2 arcs in this case) and check the
feasibility without any distinction. This process will include many unnecessary searches, which
lower the computation speed. Therefore, a constraint of limiting flow cost needs to be added to
the original.mod to avoid such time-wasting iterations.
By roughly computing the sum of flow costs on the longest possible path in Barry network, it
is shown that the cost of meeting 1 unit of demand will not exceed $9.00. There are 1,360,000
units of data demands in Barry network, therefore, the total cost of demand flowing on type 2
arcs will not exceed 1,360,000×$9 = $12,240,000.
Thus, a constraint
Flowcost {(k,l) in COMMODITIES}:
sum {(i,j) in ARCS_2} (flow_cost[i,j] * flow2[i,j,k,l]) <= 12240000;
is added to original.mod to prevent the searches of data flowing on unnecessary long paths.
(2) Limitation of number of ADMs installed on each hub:
The summary of total demand for each hub on cycle MEGRCOSQ is shown in Table 3-1.
Table 3-2 Total demand for each hub on cycle MEGRCOSQ
Hub Demand as Origin Demand as Destination Total Demand
M 7,000 63,000 70,000
E 59,000 2,000 61,000
G 373,000 78,000 451,000
R 4,000 209,000 213,000
14. OR 7310 Course Project Fall 2015
13
C 43,000 1,000 44,000
O 145,000 246,000 391,000
S 0 160,000 160,000
Q 0 12,000 12,000
It is known that at most 48,000×2 = 96,000 units of data can go in or out of one ADM on
each ring, the minimum number of ADMs needed to be installed for each hub can be calculated
by
Minimum number of ADMS installed on hub ! =
Total demand of hub !
96000
where ! gives the smallest integer larger than !. Table 3-3 gives the minimum number of
ADMs needed for each hub on cycle MEGRCOSQ.
Table 3-3 Minimum number of ADMS needed for each hub on cycle MEGRCOSQ
Hub Minimum number of ADMs needed
M 1
E 1
G 5
R 3
C 1
O 5
S 2
Q 1
Therefore, eight constraints
HubE:
sum {j in RING_NODES: substr(j, length(j)-2, 1) = "E"} adm[j] = 1;
HubG:
sum {j in RING_NODES: substr(j, length(j)-2, 1) = "G"} adm[j] = 5;
HubR:
sum {j in RING_NODES: substr(j, length(j)-2, 1) = "R"} adm[j] = 3;
HubC:
sum {j in RING_NODES: substr(j, length(j)-2, 1) = "C"} adm[j] = 1;
HubO:
sum {j in RING_NODES: substr(j, length(j)-2, 1) = "O"} adm[j] = 5;
HubS:
sum {j in RING_NODES: substr(j, length(j)-2, 1) = "S"} adm[j] = 2;
HubM:
sum {j in RING_NODES: substr(j, length(j)-2, 1) = "M"} adm[j] >= 1;
HubQ:
sum {j in RING_NODES: substr(j, length(j)-2, 1) = "Q"} adm[j] >= 1;
are added to original.mod to help the program approaching the best solution faster.
The adjusted original.mod and original.dat are renamed as barryFull.mod and barryFull.dat.
3.3.3 Result
The selected outputs of running barryFull.mod and barryFull.dat are shown as follows:
16. OR 7310 Course Project Fall 2015
15
ABLNIKMQHD_H_3 0 IPTUJFK_F_3 1 MEGRCOSQ_E_4 0 MEGRCOSQ_R_2 0
ABLNIKMQHD_H_4 1 IPTUJFK_I_1 0 MEGRCOSQ_E_5 0 MEGRCOSQ_R_3 0
ABLNIKMQHD_I_1 1 IPTUJFK_I_2 1 MEGRCOSQ_E_6 0 MEGRCOSQ_R_4 1
ABLNIKMQHD_I_2 1 IPTUJFK_I_3 1 MEGRCOSQ_G_1 1 MEGRCOSQ_R_5 1
ABLNIKMQHD_I_3 0 IPTUJFK_J_1 1 MEGRCOSQ_G_2 1 MEGRCOSQ_R_6 0
ABLNIKMQHD_I_4 0 IPTUJFK_J_2 1 MEGRCOSQ_G_3 1 MEGRCOSQ_S_1 0
ABLNIKMQHD_K_1 0 IPTUJFK_J_3 1 MEGRCOSQ_G_4 1 MEGRCOSQ_S_2 0
ABLNIKMQHD_K_2 0 IPTUJFK_K_1 1 MEGRCOSQ_G_5 1 MEGRCOSQ_S_3 0
ABLNIKMQHD_K_3 1 IPTUJFK_K_2 0 MEGRCOSQ_G_6 0 MEGRCOSQ_S_4 1
ABLNIKMQHD_K_4 0 IPTUJFK_K_3 0 MEGRCOSQ_M_1 1 MEGRCOSQ_S_5 0
ABLNIKMQHD_L_1 0 IPTUJFK_P_1 1 MEGRCOSQ_M_2 1 MEGRCOSQ_S_6 1
ABLNIKMQHD_L_2 1 IPTUJFK_P_2 0 MEGRCOSQ_M_3 0
ABLNIKMQHD_L_3 0 IPTUJFK_P_3 1 MEGRCOSQ_M_4 1
ABLNIKMQHD_L_4 0 IPTUJFK_T_1 0 MEGRCOSQ_M_5 0
;
The ADM installation locations under best solution (upper bound) are shown in Figure 3-7,
where ! denotes an ADM installed in this location and " denotes no ADM installed in this
location.
Figure 3-7 ADM installation locations
The total cost (upper bound) is $63032250, which is the same as the heuristic in section 2, and
the optimality gap is 0.67%.
Although constraints are added to increase the computing speed, this program took 9430
seconds (2.6 hours) to first reach the best feasible solution and 11586 seconds (3.2 hours) to stop.
17. OR 7310 Course Project Fall 2015
16
4. CONCLUSION
For Caldata network, we have optimal solution and the total optimal cost is 37731000.
For Barry network, we have the solution for lower bound and the total cost for lower bound
is 62610830.
We have two improved good heuristic solutions. The total cost of them is both 63032250
Using the equation: GAP = (Upper bound-Lower bound)/Upper bound, the best optimality
gap we can get is 0.67
Reference
[1] Fourer, R., Gay, D., Kernighan, B. (2003). AMPL: A modeling language for mathematical
programming (2nd
Edition). Duxbury, Thomson.