# American Institute of Mathematical Sciences

• Previous Article
Unified optimality conditions for set-valued optimizations
• JIMO Home
• This Issue
• Next Article
Optimization of a condition-based duration-varying preventive maintenance policy for the stockless production system based on queueing model
July  2019, 15(3): 1085-1100. doi: 10.3934/jimo.2018086

## Performance analysis of a cooperative flow game algorithm in ad hoc networks and a comparison to Dijkstra's algorithm

 1 Süleyman Demirel University, Faculty of Technology, Department of Software Engineering, Isparta, Turkey 2 Süleyman Demirel University, Arts and Sciences Faculty, Department of Mathematics, Isparta, Turkey 3 Poznan University of Technology, Faculty of Engineering Management, Poznan, Poland

* Corresponding author: Serap Ergün

Received  May 2016 Revised  March 2018 Published  July 2018

The aim of this study is to provide a mathematical framework for studying node cooperation, and to define strategies leading to optimal node behaviour in ad hoc networks. In this study we show time performances of three different methods, namely, Dijkstra's algorithm, Dijkstra's algorithm with battery times and cooperative flow game algorithm constructed from a flow network model. There are two main outcomes of this study regarding the shortest path problem which is that of finding a path of minimum length between two distinct vertices in a network. The first one finds out which method gives better results in terms of time while finding the shortest path, the second one considers the battery life of wireless devices on the network to determine the remaining nodes on the network. Further, optimization performances of the methods are examined in finding the shortest path problem. The study shows that the battery times play an important role in network routing and more devices provided to keep the network. To view the time performance analysis of the methods MATLAB is used. Also, considering the cooperation between the nodes, it is envisaged that using cooperative game theory brings a new approach to network traffic engineering and routing methods.

Citation: Serap Ergün, Sirma Zeynep Alparslan Gök, Tuncay Aydoǧan, Gerhard Wilhelm Weber. Performance analysis of a cooperative flow game algorithm in ad hoc networks and a comparison to Dijkstra's algorithm. Journal of Industrial & Management Optimization, 2019, 15 (3) : 1085-1100. doi: 10.3934/jimo.2018086
##### References:

show all references

##### References:
The network example
Time Performances of three algorithms
The pseudo code of Dijkstra's Algorithm
 1 function Dijkstra(Graph, source): 2 dist[source] := 0 // Distance from source to source 3 for each vertex v in Graph: // Initializations 4 if v $\mathit{\boldsymbol{\neq}}$ source 5 dist[v] := infinity // Unknown distance function from source to v 6 previous[v] := undefined // Previous node in optimal path from source 7 end if 8 add v to Q // All nodes initially in Q (unvisited nodes) 9 end for 10 11 while Q is not empty: // The main loop 12 u := vertex in Q with min dist[u] // Source node in first case 13 remove u from Q 14 15 for each neighbor v of u: // where v has not yet been removed from Q. 16 alt := dist[u] + length(u, v) 17 if alt $<$ dist[v]: // A shorter path to v has been found 18 dist[v] := alt 19 previous[v] := u 20 end if 21 end for 22 end while 23 return dist[], previous[] 24 end function
 1 function Dijkstra(Graph, source): 2 dist[source] := 0 // Distance from source to source 3 for each vertex v in Graph: // Initializations 4 if v $\mathit{\boldsymbol{\neq}}$ source 5 dist[v] := infinity // Unknown distance function from source to v 6 previous[v] := undefined // Previous node in optimal path from source 7 end if 8 add v to Q // All nodes initially in Q (unvisited nodes) 9 end for 10 11 while Q is not empty: // The main loop 12 u := vertex in Q with min dist[u] // Source node in first case 13 remove u from Q 14 15 for each neighbor v of u: // where v has not yet been removed from Q. 16 alt := dist[u] + length(u, v) 17 if alt $<$ dist[v]: // A shorter path to v has been found 18 dist[v] := alt 19 previous[v] := u 20 end if 21 end for 22 end while 23 return dist[], previous[] 24 end function
The pseudo code of Dijkstra's Algorithm with Battery Times
 1 function DijkstraBatteryTime(Graph, source): 2 dist[source] := 0 // Distance from source to source 3 for each vertex v in Graph: // Initializations 4 if v $\mathit{\boldsymbol{\neq }}$ source 5 dist[v] := infinity // Unknown distance function from source to v 6 previous[v] := undefined // Previous node in optimal path from source 7 end if 8 add v to Q // All nodes initially in Q (unvisited nodes) 9 end for 10 while Q is not empty: // The main loop 11 u := vertex in Q with min dist[u] // Source node in first case 12 remove u from Q 13 for each neighbor v of u: // where v has not yet been removed from Q. 14 alt := dist[u] + length(u, v) 15 battime:=dist[u]+length(u, v) 16 if alt $<$ dist[v]: // A shorter path to v has been found 17 if battime$<$dist[v:] // A shorter path to v has been found 18 dist[v]:=battime 19 previous [v]:=u 20 dist[v] := alt 21 previous[v] := u 22 end if 23 end if 24 end for 25 end while 26 return dist[], previous[] 27 end function
 1 function DijkstraBatteryTime(Graph, source): 2 dist[source] := 0 // Distance from source to source 3 for each vertex v in Graph: // Initializations 4 if v $\mathit{\boldsymbol{\neq }}$ source 5 dist[v] := infinity // Unknown distance function from source to v 6 previous[v] := undefined // Previous node in optimal path from source 7 end if 8 add v to Q // All nodes initially in Q (unvisited nodes) 9 end for 10 while Q is not empty: // The main loop 11 u := vertex in Q with min dist[u] // Source node in first case 12 remove u from Q 13 for each neighbor v of u: // where v has not yet been removed from Q. 14 alt := dist[u] + length(u, v) 15 battime:=dist[u]+length(u, v) 16 if alt $<$ dist[v]: // A shorter path to v has been found 17 if battime$<$dist[v:] // A shorter path to v has been found 18 dist[v]:=battime 19 previous [v]:=u 20 dist[v] := alt 21 previous[v] := u 22 end if 23 end if 24 end for 25 end while 26 return dist[], previous[] 27 end function
The pseudo code of cooperative flow game algorithm
 1 function CooperativeFlowGame(Graph, source): 2 dist[source] := 0 // Distance from source to source 3 for each vertex v in Graph: // Initializations 4 if v $\mathit{\boldsymbol{\neq }}$ source 5 dist[v] := infinity // Unknown distance function from source to v 6 previous[v] := undefined // Previous node in optimal path from source 7 end if 8 add v to Q // All nodes initially in Q (unvisited nodes) 9 end for 10 subset[vs]; // Calculate all the subset's (coalitions) values 11 while Q is not empty: // The main loop 12 u := vertex in Q with min dist[u] // Source node in first case 13 remove u from Q 14 for each coalition vs of u: // where vs has not yet been removed from Q. 15 alt := dist[u] + length(u, vs) 16 if alt $<$ dist[vs]: // A shorter path to vs has been found 17 dist[vs] := alt // Choose this coalition 18 previous[vs] := u 19 end if 20 end for 21 end while 22 return dist[], previous[] 23 end function
 1 function CooperativeFlowGame(Graph, source): 2 dist[source] := 0 // Distance from source to source 3 for each vertex v in Graph: // Initializations 4 if v $\mathit{\boldsymbol{\neq }}$ source 5 dist[v] := infinity // Unknown distance function from source to v 6 previous[v] := undefined // Previous node in optimal path from source 7 end if 8 add v to Q // All nodes initially in Q (unvisited nodes) 9 end for 10 subset[vs]; // Calculate all the subset's (coalitions) values 11 while Q is not empty: // The main loop 12 u := vertex in Q with min dist[u] // Source node in first case 13 remove u from Q 14 for each coalition vs of u: // where vs has not yet been removed from Q. 15 alt := dist[u] + length(u, vs) 16 if alt $<$ dist[vs]: // A shorter path to vs has been found 17 dist[vs] := alt // Choose this coalition 18 previous[vs] := u 19 end if 20 end for 21 end while 22 return dist[], previous[] 23 end function
The marginal vectors of the cooperative flow game
 $\sigma$ $m_{1}^{\sigma }$ $m_{2}^{\sigma }$ $m_{3}^{\sigma }$ $m_{4}^{\sigma }$ $\sigma _{1}=(1, 2, 3, 4)$ $0$ $0$ $0$ $12$ $\sigma _{2}=(1, 2, 4, 3)$ $0$ $0$ $12$ $0$ $\sigma _{3}=(1, 3, 2, 4)$ $0$ $0$ $0$ $12$ $\sigma _{4}=(1, 3, 4, 2)$ $0$ $7$ $0$ $5$ $\sigma _{5}=(1, 4, 2, 3)$ $0$ $0$ $12$ $0$ $\sigma _{6}=(1, 4, 3, 2)$ $0$ $7$ $5$ $0$ $\sigma _{7}=(2, 1, 3, 4)$ $0$ $0$ $0$ $12$ $\sigma _{8}=(2, 1, 4, 3)$ $0$ $0$ $12$ $0$ $\sigma _{9}=(2, 3, 1, 4)$ $0$ $0$ $0$ $12$ $\sigma _{10}=(2, 3, 4, 1)$ $5$ $0$ $0$ $7$ $\sigma _{11}=(2, 4, 1, 3)$ $0$ $0$ $12$ $0$ $\sigma _{12}=(2, 4, 3, 1)$ $5$ $0$ $7$ $0$ $\sigma _{13}=(3, 1, 2, 4)$ $0$ $0$ $0$ $12$ $\sigma _{14}=(3, 1, 4, 2)$ $0$ $7$ $0$ $5$ $\sigma _{15}=(3, 2, 1, 4)$ $0$ $0$ $0$ $12$ $\sigma _{16}=(3, 2, 4, 1)$ $5$ $0$ $0$ $7$ $\sigma _{17}=(3, 4, 1, 2)$ $-1$ $7$ $0$ $6$ $\sigma _{18}=(3, 4, 2, 1)$ $5$ $1$ $0$ $6$ $\sigma _{19}=(4, 1, 2, 3)$ $0$ $0$ $12$ $0$ $\sigma _{20}=(4, 1, 3, 2)$ $0$ $7$ $5$ $0$ $\sigma _{21}=(4, 2, 1, 3)$ $0$ $0$ $12$ $0$ $\sigma _{22}=(4, 2, 3, 1)$ $5$ $0$ $7$ $0$ $\sigma _{23}=(4, 3, 1, 2)$ $-1$ $7$ $6$ $0$ $\sigma _{24}=(4, 3, 2, 1)$ $5$ $1$ $6$ $0$
 $\sigma$ $m_{1}^{\sigma }$ $m_{2}^{\sigma }$ $m_{3}^{\sigma }$ $m_{4}^{\sigma }$ $\sigma _{1}=(1, 2, 3, 4)$ $0$ $0$ $0$ $12$ $\sigma _{2}=(1, 2, 4, 3)$ $0$ $0$ $12$ $0$ $\sigma _{3}=(1, 3, 2, 4)$ $0$ $0$ $0$ $12$ $\sigma _{4}=(1, 3, 4, 2)$ $0$ $7$ $0$ $5$ $\sigma _{5}=(1, 4, 2, 3)$ $0$ $0$ $12$ $0$ $\sigma _{6}=(1, 4, 3, 2)$ $0$ $7$ $5$ $0$ $\sigma _{7}=(2, 1, 3, 4)$ $0$ $0$ $0$ $12$ $\sigma _{8}=(2, 1, 4, 3)$ $0$ $0$ $12$ $0$ $\sigma _{9}=(2, 3, 1, 4)$ $0$ $0$ $0$ $12$ $\sigma _{10}=(2, 3, 4, 1)$ $5$ $0$ $0$ $7$ $\sigma _{11}=(2, 4, 1, 3)$ $0$ $0$ $12$ $0$ $\sigma _{12}=(2, 4, 3, 1)$ $5$ $0$ $7$ $0$ $\sigma _{13}=(3, 1, 2, 4)$ $0$ $0$ $0$ $12$ $\sigma _{14}=(3, 1, 4, 2)$ $0$ $7$ $0$ $5$ $\sigma _{15}=(3, 2, 1, 4)$ $0$ $0$ $0$ $12$ $\sigma _{16}=(3, 2, 4, 1)$ $5$ $0$ $0$ $7$ $\sigma _{17}=(3, 4, 1, 2)$ $-1$ $7$ $0$ $6$ $\sigma _{18}=(3, 4, 2, 1)$ $5$ $1$ $0$ $6$ $\sigma _{19}=(4, 1, 2, 3)$ $0$ $0$ $12$ $0$ $\sigma _{20}=(4, 1, 3, 2)$ $0$ $7$ $5$ $0$ $\sigma _{21}=(4, 2, 1, 3)$ $0$ $0$ $12$ $0$ $\sigma _{22}=(4, 2, 3, 1)$ $5$ $0$ $7$ $0$ $\sigma _{23}=(4, 3, 1, 2)$ $-1$ $7$ $6$ $0$ $\sigma _{24}=(4, 3, 2, 1)$ $5$ $1$ $6$ $0$
The comparision of three methods
 Time performances * $CFGA\ DWBT>DA$
 Time performances * $CFGA\ DWBT>DA$
 [1] Chia-Huang Wu, Kuo-Hsiung Wang, Jau-Chuan Ke, Jyh-Bin Ke. A heuristic algorithm for the optimization of M/M/$s$ queue with multiple working vacations. Journal of Industrial & Management Optimization, 2012, 8 (1) : 1-17. doi: 10.3934/jimo.2012.8.1 [2] Gabriella Bretti, Maya Briani, Emiliano Cristiani. An easy-to-use algorithm for simulating traffic flow on networks: Numerical experiments. Discrete & Continuous Dynamical Systems - S, 2014, 7 (3) : 379-394. doi: 10.3934/dcdss.2014.7.379 [3] Maya Briani, Emiliano Cristiani. An easy-to-use algorithm for simulating traffic flow on networks: Theoretical study. Networks & Heterogeneous Media, 2014, 9 (3) : 519-552. doi: 10.3934/nhm.2014.9.519 [4] Mary Wilkerson. Thurston's algorithm and rational maps from quadratic polynomial matings. Discrete & Continuous Dynamical Systems - S, 2019, 12 (8) : 2403-2433. doi: 10.3934/dcdss.2019151 [5] Jean-Paul Arnaout, Georges Arnaout, John El Khoury. Simulation and optimization of ant colony optimization algorithm for the stochastic uncapacitated location-allocation problem. Journal of Industrial & Management Optimization, 2016, 12 (4) : 1215-1225. doi: 10.3934/jimo.2016.12.1215 [6] Pierre Frankel. Alternating proximal algorithm with costs-to-move, dual description and application to PDE's. Discrete & Continuous Dynamical Systems - S, 2012, 5 (3) : 545-557. doi: 10.3934/dcdss.2012.5.545 [7] Xiangyu Gao, Yong Sun. A new heuristic algorithm for laser antimissile strategy optimization. Journal of Industrial & Management Optimization, 2012, 8 (2) : 457-468. doi: 10.3934/jimo.2012.8.457 [8] Adil Bagirov, Sona Taheri, Soodabeh Asadi. A difference of convex optimization algorithm for piecewise linear regression. Journal of Industrial & Management Optimization, 2019, 15 (2) : 909-932. doi: 10.3934/jimo.2018077 [9] Yong Wang, Wanquan Liu, Guanglu Zhou. An efficient algorithm for non-convex sparse optimization. Journal of Industrial & Management Optimization, 2019, 15 (4) : 2009-2021. doi: 10.3934/jimo.2018134 [10] Jianjun Liu, Min Zeng, Yifan Ge, Changzhi Wu, Xiangyu Wang. Improved Cuckoo Search algorithm for numerical function optimization. Journal of Industrial & Management Optimization, 2020, 16 (1) : 103-115. doi: 10.3934/jimo.2018142 [11] Cristian Barbarosie, Anca-Maria Toader, Sérgio Lopes. A gradient-type algorithm for constrained optimization with application to microstructure optimization. Discrete & Continuous Dynamical Systems - B, 2020, 25 (5) : 1729-1755. doi: 10.3934/dcdsb.2019249 [12] Leong-Kwan Li, Sally Shao. Convergence analysis of the weighted state space search algorithm for recurrent neural networks. Numerical Algebra, Control & Optimization, 2014, 4 (3) : 193-207. doi: 10.3934/naco.2014.4.193 [13] Nguyen Van Thoai. Decomposition branch and bound algorithm for optimization problems over efficient sets. Journal of Industrial & Management Optimization, 2008, 4 (4) : 647-660. doi: 10.3934/jimo.2008.4.647 [14] Tran Ngoc Thang, Nguyen Thi Bach Kim. Outcome space algorithm for generalized multiplicative problems and optimization over the efficient set. Journal of Industrial & Management Optimization, 2016, 12 (4) : 1417-1433. doi: 10.3934/jimo.2016.12.1417 [15] Lianshuan Shi, Enmin Feng, Huanchun Sun, Zhaosheng Feng. A two-step algorithm for layout optimization of structures with discrete variables. Journal of Industrial & Management Optimization, 2007, 3 (3) : 543-552. doi: 10.3934/jimo.2007.3.543 [16] M. Delgado Pineda, E. A. Galperin, P. Jiménez Guerra. MAPLE code of the cubic algorithm for multiobjective optimization with box constraints. Numerical Algebra, Control & Optimization, 2013, 3 (3) : 407-424. doi: 10.3934/naco.2013.3.407 [17] Lipu Zhang, Yinghong Xu, Zhengjing Jin. An efficient algorithm for convex quadratic semi-definite optimization. Numerical Algebra, Control & Optimization, 2012, 2 (1) : 129-144. doi: 10.3934/naco.2012.2.129 [18] Behrouz Kheirfam, Morteza Moslemi. On the extension of an arc-search interior-point algorithm for semidefinite optimization. Numerical Algebra, Control & Optimization, 2018, 8 (2) : 261-275. doi: 10.3934/naco.2018015 [19] Paul B. Hermanns, Nguyen Van Thoai. Global optimization algorithm for solving bilevel programming problems with quadratic lower levels. Journal of Industrial & Management Optimization, 2010, 6 (1) : 177-196. doi: 10.3934/jimo.2010.6.177 [20] Chunlin Hao, Xinwei Liu. Global convergence of an SQP algorithm for nonlinear optimization with overdetermined constraints. Numerical Algebra, Control & Optimization, 2012, 2 (1) : 19-29. doi: 10.3934/naco.2012.2.19

2018 Impact Factor: 1.025