or 7310 project report

17
TELECOMMUNICATIONS NETWORK DESIGN PROBLEM Qingtao Cao Shuyu Zhang Yuanchen Fang OR 7310 Course Project

Upload: zhang-shuyu

Post on 13-Apr-2017

147 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: OR 7310 Project Report

TELECOMMUNICATIONS NETWORK DESIGN

PROBLEM

Qingtao Cao

Shuyu Zhang

Yuanchen Fang

OR 7310 Course Project

Page 2: OR 7310 Project Report

OR7310 CourseProject Fall2015

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

Page 3: OR 7310 Project Report

OR7310 CourseProject Fall2015

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

Part1

Part2

IfadestinationofPart2hasdemandfromoriginofPart1,thedatamustgothroughhubEandtransfernomatterwhereitgoesafterwardsorbefore.

Page 4: OR 7310 Project Report

OR7310 CourseProject Fall2015

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;

Page 5: OR 7310 Project Report

OR7310 CourseProject Fall2015

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

Page 6: OR 7310 Project Report

OR7310 CourseProject Fall2015

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

Page 7: OR 7310 Project Report

OR7310 CourseProject Fall2015

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

Page 8: OR 7310 Project Report

OR7310 CourseProject Fall2015

7

ABLNIKMQHD_H_4 0 ABLNIKMQHD_M_4 1 IPTUJFK_J_2 1 For Group 2, We get the objective 26285100, and adm [*]: = QMEGRCOS_C_1 0 QMEGRCOS_G_1 1 QMEGRCOS_O_1 1 QMEGRCOS_R_1 0 QMEGRCOS_C_2 0 QMEGRCOS_G_2 1 QMEGRCOS_O_2 1 QMEGRCOS_R_2 1 QMEGRCOS_C_3 0 QMEGRCOS_G_3 1 QMEGRCOS_O_3 1 QMEGRCOS_R_3 0 QMEGRCOS_C_4 0 QMEGRCOS_G_4 0 QMEGRCOS_O_4 1 QMEGRCOS_R_4 0 QMEGRCOS_C_5 0 QMEGRCOS_G_5 1 QMEGRCOS_O_5 0 QMEGRCOS_R_5 1 QMEGRCOS_C_6 1 QMEGRCOS_G_6 1 QMEGRCOS_O_6 1 QMEGRCOS_R_6 1 QMEGRCOS_E_1 0 QMEGRCOS_M_1 1 QMEGRCOS_Q_1 0 QMEGRCOS_S_1 0 QMEGRCOS_E_2 1 QMEGRCOS_M_2 1 QMEGRCOS_Q_2 0 QMEGRCOS_S_2 0 QMEGRCOS_E_3 0 QMEGRCOS_M_3 1 QMEGRCOS_Q_3 0 QMEGRCOS_S_3 0 QMEGRCOS_E_4 0 QMEGRCOS_M_4 0 QMEGRCOS_Q_4 0 QMEGRCOS_S_4 1 QMEGRCOS_E_5 0 QMEGRCOS_M_5 0 QMEGRCOS_Q_5 0 QMEGRCOS_S_5 0 QMEGRCOS_E_6 0 QMEGRCOS_M_6 1 QMEGRCOS_Q_6 0 QMEGRCOS_S_6 1 From the function 2, we get the optimal solution of M model, which is 36759150 + 26285100 + 8*(166000 +81000) – (2+2) * (166000+81000) = 64032250 For Q model, For Group 1, We get the objective 36037600, 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 0 ABLNIKMQHD_N_2 0 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 1 ABLNIKMQHD_N_4 1 IPTUJFK_K_3 0 ABLNIKMQHD_B_1 1 ABLNIKMQHD_K_1 0 ABLNIKMQHD_Q_1 1 IPTUJFK_P_1 1 ABLNIKMQHD_B_2 0 ABLNIKMQHD_K_2 1 ABLNIKMQHD_Q_2 1 IPTUJFK_P_2 1 ABLNIKMQHD_B_3 1 ABLNIKMQHD_K_3 0 ABLNIKMQHD_Q_3 0 IPTUJFK_P_3 0 ABLNIKMQHD_B_4 0 ABLNIKMQHD_K_4 0 ABLNIKMQHD_Q_4 1 IPTUJFK_T_1 0 ABLNIKMQHD_D_1 0 ABLNIKMQHD_L_1 0 IPTUJFK_F_1 1 IPTUJFK_T_2 1 ABLNIKMQHD_D_2 0 ABLNIKMQHD_L_2 0 IPTUJFK_F_2 1 IPTUJFK_T_3 0 ABLNIKMQHD_D_3 1 ABLNIKMQHD_L_3 0 IPTUJFK_F_3 0 IPTUJFK_U_1 1 ABLNIKMQHD_D_4 0 ABLNIKMQHD_L_4 1 IPTUJFK_I_1 0 IPTUJFK_U_2 0 ABLNIKMQHD_H_1 0 ABLNIKMQHD_M_1 0 IPTUJFK_I_2 1 IPTUJFK_U_3 0 ABLNIKMQHD_H_2 1 ABLNIKMQHD_M_2 0 IPTUJFK_I_3 1 ABLNIKMQHD_H_3 0 ABLNIKMQHD_M_3 1 IPTUJFK_J_1 1 ABLNIKMQHD_H_4 0 ABLNIKMQHD_M_4 0 IPTUJFK_J_2 1 For Group 2, We get the objective 27269900, and adm [*]: = XEGRCOSQ_C_1 0 XEGRCOSQ_G_1 1 XEGRCOSQ_Q_1 1 XEGRCOSQ_S_1 0 XEGRCOSQ_C_2 0 XEGRCOSQ_G_2 1 XEGRCOSQ_Q_2 1 XEGRCOSQ_S_2 0 XEGRCOSQ_C_3 0 XEGRCOSQ_G_3 1 XEGRCOSQ_Q_3 1 XEGRCOSQ_S_3 0 XEGRCOSQ_C_4 0 XEGRCOSQ_G_4 1 XEGRCOSQ_Q_4 0 XEGRCOSQ_S_4 0

Page 9: OR 7310 Project Report

OR7310 CourseProject Fall2015

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.

Page 10: OR 7310 Project Report

OR7310 CourseProject Fall2015

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

Page 11: OR 7310 Project Report

OR7310 CourseProject Fall2015

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.

Page 12: OR 7310 Project Report

OR7310 CourseProject Fall2015

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.

Page 13: OR 7310 Project Report

OR7310 CourseProject Fall2015

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

Page 14: OR 7310 Project Report

OR7310 CourseProject Fall2015

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:

Page 15: OR 7310 Project Report

OR7310 CourseProject Fall2015

14

Nodes Cuts/ Node Left Objective IInf Best Integer Best Bound ItCnt Gap …… Elapsed time = 9430.26 sec. (3993133.54 ticks, tree = 453.80 MB) 20621 2786 infeasible 6.30344e+07 6.15990e+07 20403224 2.28% 20622 2787 6.22780e+07 942 6.30344e+07 6.15990e+07 20403518 2.28% 20623 2788 6.29957e+07 948 6.30344e+07 6.15990e+07 20404239 2.28% * 20624 2787 integral 0 6.30322e+07 6.15990e+07 20404249 2.27% 20624 2787 6.30322e+07 0 6.30322e+07 6.15990e+07 20404249 2.27% 20625 2788 6.22800e+07 703 6.30322e+07 6.15990e+07 20404326 2.27% …… Elapsed time = 11586.15 sec. (4768491.88 ticks, tree = 36.23 MB) 31591 149 cutoff 6.30322e+07 6.23128e+07 25088302 1.14% 31592 148 cutoff 6.30322e+07 6.23128e+07 25088303 1.14% 31593 147 cutoff 6.30322e+07 6.23128e+07 25088308 1.14% 31594 146 cutoff 6.30322e+07 6.23128e+07 25088310 1.14% 31595 145 cutoff 6.30322e+07 6.23128e+07 25088317 1.14% 31596 144 cutoff 6.30322e+07 6.23128e+07 25088448 1.14% …… Root node processing (before b&c): Real time = 55.98 sec. (43337.77 ticks) Parallel b&c, 8 threads: Real time = 11530.30 sec. (4726854.90 ticks) Sync time (average) = 1221.45 sec. Wait time (average) = 1223.94 sec. ------------ Total (root+branch&cut) = 11586.28 sec. (4770192.66 ticks) CPLEX 12.6.2.0: optimal (non-)integer solution within mipgap or absmipgap; objective 63032250 25088448 MIP simplex iterations …… ampl: display Total_Cost; Total_Cost = 63032200 ampl: display adm; adm [*] := ABLNIKMQHD_A_1 1 ABLNIKMQHD_M_1 1 IPTUJFK_T_2 0 MEGRCOSQ_M_6 0 ABLNIKMQHD_A_2 1 ABLNIKMQHD_M_2 0 IPTUJFK_T_3 1 MEGRCOSQ_O_1 1 ABLNIKMQHD_A_3 1 ABLNIKMQHD_M_3 1 IPTUJFK_U_1 0 MEGRCOSQ_O_2 1 ABLNIKMQHD_A_4 1 ABLNIKMQHD_M_4 1 IPTUJFK_U_2 0 MEGRCOSQ_O_3 1 ABLNIKMQHD_B_1 1 ABLNIKMQHD_N_1 0 IPTUJFK_U_3 1 MEGRCOSQ_O_4 1 ABLNIKMQHD_B_2 0 ABLNIKMQHD_N_2 1 MEGRCOSQ_C_1 0 MEGRCOSQ_O_5 0 ABLNIKMQHD_B_3 0 ABLNIKMQHD_N_3 0 MEGRCOSQ_C_2 0 MEGRCOSQ_O_6 1 ABLNIKMQHD_B_4 1 ABLNIKMQHD_N_4 0 MEGRCOSQ_C_3 0 MEGRCOSQ_Q_1 0 ABLNIKMQHD_D_1 0 ABLNIKMQHD_Q_1 0 MEGRCOSQ_C_4 1 MEGRCOSQ_Q_2 0 ABLNIKMQHD_D_2 0 ABLNIKMQHD_Q_2 1 MEGRCOSQ_C_5 0 MEGRCOSQ_Q_3 1 ABLNIKMQHD_D_3 0 ABLNIKMQHD_Q_3 0 MEGRCOSQ_C_6 0 MEGRCOSQ_Q_4 0 ABLNIKMQHD_D_4 1 ABLNIKMQHD_Q_4 0 MEGRCOSQ_E_1 1 MEGRCOSQ_Q_5 0 ABLNIKMQHD_H_1 0 IPTUJFK_F_1 1 MEGRCOSQ_E_2 0 MEGRCOSQ_Q_6 0 ABLNIKMQHD_H_2 0 IPTUJFK_F_2 0 MEGRCOSQ_E_3 0 MEGRCOSQ_R_1 1

Page 16: OR 7310 Project Report

OR7310 CourseProject Fall2015

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.

Page 17: OR 7310 Project Report

OR7310 CourseProject Fall2015

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.