Setting Algorithms. The Dijkstra algorithm (Di-
jkstra, 1959) is the most known setting algorithm that
works with positive weight arcs. In this algorithm,
the principle is to select a node with the minimum
weight at each iteration. It scans each node at most
once. That leads to a complexity of O(n
2
) as time
bound in the worst case (Ahuja et al., 1993) where n
is the number of nodes. Two sets are maintained: a
permanently set that represents selected nodes and a
temporary set that designates nodes not yet selected.
The algorithm performs the node selections operation
n times. Each operation requires that it scans each
temporarily labeled node which leads to O(n
2
). Be-
sides, the algorithm performs the distance updates op-
eration for all outgoing arcs of a node v. Overall,
the algorithm requires O (m) since each operation re-
quires, a constant time, O(1). In the end, Dijkstra’s
algorithm solves the shortest path problem in O(n
2
).
There are many versions of Dijkstra’s
algorithm with the aim of improving this time
bound by trying different data structures and several
implementations of the algorithm. In some applica-
tions of the shortest path problem, we want uniquely
to determine the shortest path between two nodes.
Bidirectional Dijkstra’s algorithm solves
the problem of finding the shortest path between two
nodes faster since it eliminates some unnecessary
computations by reducing the number of visited
vertices in practice. Besides, the A* search is an
acceleration of Dijkstra’s algorithm in the sense
that it preferably settles nodes that are closer to the
destination when finding the shortest path between
two nodes.
Correcting Algorithms. The Bellman algorithm
achieves the best currently known bound of time with
negative weight arcs O(nm). The algorithm main-
tains the set of labeled nodes in a FIFO queue and al-
lows detecting a negative cycle in a weighted directed
graph. In Bellman, the next node to be scanned is
removed from the head of the queue; a node that be-
comes labeled is added to the tail of the queue. The
algorithm performs at most n−1 passes through arcs.
Since each pass requires O (1) computations for each
arc, this implies O(nm) time bound for the algorithm.
Bellman is qualified as a robust algorithm since there
is no priority queue. Some heuristics have been in-
troduced to improve the practical performance of the
algorithm. For instance, (Cherkassky et al., 1996) in-
troduce a parent checking heuristic that scans a
node only if its parent is not in a decrease.
3 CONDENSED FLIGHT
NETWORK
3.1 Modelling
The condensed flight network (CFN) is generated
from the flight timetable using the time-independent
model. Nodes represent airports meanwhile the pres-
ence of an arc indicates that there exists at least one
elementary connection between two airports. Time,
distance, and cost labels are associated with each arc
of the CFN. In our study, we omit time scheduling
and keep only the transfer time represented by an arc
in the graph. This technique is often used to model the
information about the transfer since it is important in
computing shortest paths (Delling et al., 2009).
The model consists in creating two nodes for each
airport node: one to model flight departures and an
other to represent flight arrivals. Then, we introduce
three different types of arcs. board at is inserted
from an airport to departure node, alight at is in-
serted from an arrival node to the airport, and finally a
connect to to model the transfer time between an ar-
rival node and departure node of the same airport with
a transfer time. In Figure 2, the graph contains four
airports: NCE, BKK, PEK, ICN and four flight arcs
referenced by year month. Nodes in thin style repre-
sent departures, dashed nodes for arrival nodes. Dou-
ble arcs are transferring time. Besides, dotted arcs for
arrivals and dashed arcs for departures.
NCE
d
1
o
1
BKK
o
2
d
2
P EK
o
3
d
3
ICN
o
4
d
4
year month
year month
connect to
alight at
board at
board at
alight at
alight at
board at
year month
connect to
year month
board at
alight at
connect to
Figure 2: The CFN of the motivating example.
3.2 Graph Database
The CFN is stored in Neo4j graph database (Neo
Technology, 2017). Neo4j is used for many appli-
cations, typically recommendation systems and com-
plex networks like transportation network. Neo4j
graph database follows the property graph model to
store and manage its data. In Neo4j, data are repre-
sented in nodes, relationships, and properties or at-
ICORES 2019 - 8th International Conference on Operations Research and Enterprise Systems
372