Generalized Maximum Capacity Path Problem
with Loss Factors
Javad Tayyebi
1a
, Mihai-Lucian Rîtan
2b
and Adrian Marius Deaconu
2c
1
Department of Industrial Engineering, Birjand University of Technology, Industry and Mining Boulevard,
Ibn Hesam Square, Birjand, Iran
2
Department of Mathematics and Computer Science, Transilvania University of Brașov,
Iuliu Maniu st. 50, Brașov, Romania
Keywords: Capacity Path Problems, Combinatorial Optimization, Polynomial Algorithms.
Abstract: The focus of this paper is on an extension of the maximum capacity path problem, known as the generalized
maximum capacity path problem. In the traditional maximum capacity path problem, the objective is to find
a path from a source to a sink with the highest capacity among all possible paths. However, this extended
problem takes into account the presence of loss factors in addition to arc capacities. The generalized maximum
capacity path problem is regarded as a network flow optimization problem, where the network comprises arcs
with both capacity constraints and loss factors. The main goal is to identify a path from the source to the sink
that allows for the maximum flow along the path, considering the loss factors while satisfying the capacity
constraints. The paper introduces a zero-one formulation for the generalized maximum capacity path problem.
Additionally, it presents two efficient polynomial-time algorithms that can effectively solve this problem.
1 INTRODUCTION
Combinatorial optimization is a special class of
mathematical program that consists of finding an
optimal object among a finite set of specific-
structured objects. Some most prominent problems of
this class are shortest path (SP) problems, maximum
reliability path (MRP) problems, and maximum
capacity path (MCP) problems. In these problems, the
goal is to find an optimal path from an origin to a
destination under a special objective function as
follows:
1. min
∈ℙ
𝑙

(
,
)
∈
for SP problems,
2. max
∈ℙ
𝑝

(
,
)
∈
for MRP problems,
3. max
∈ℙ
min
(,)∈
𝑢

for MCP problems,
where the set consists of all paths from the
origin to the destination. In this context, the variables
𝑙

, 𝑝

, and 𝑢

represent the length, reliability, and
capacity of arc (𝑖,𝑗) respectively. Fortunately, these
problems are tractable and there exist polynomial-
time algorithms to solve them. For instance, the
a
https://orcid.org/0000-0002-7559-3870
b
https://orcid.org/0009-0007-4601-6533
c
https://orcid.org/0000-0002-1070-1383
shortest path problem can be solved using Dijkstra's
algorithm with a Fibonacci-heap implementation,
which has a complexity of 𝑂(𝑚 + 𝑛 log(𝑛) ) if the
lengths, 𝑙

, are nonnegative. In case the lengths can
be negative, the best-known algorithm is a FIFO
implementation of the Bellman-Ford algorithm, with
a complexity of 𝑂(𝑚𝑛), where 𝑛 and 𝑚 represent the
number of nodes and arcs, respectively. The
maximum reliability path problem can be
transformed into a shortest path problem by defining
𝑙

as −log(𝑝

) for every arc (𝑖,𝑗). Consequently, it
can be solved similarly to the shortest path problem,
especially when 𝑝

is less than 1. Additionally, both
the maximum reliability path problem and the
maximum capacity path problem can be solved
directly by modifying the shortest path algorithms.
This is because they share similar optimality
conditions with the shortest path problem (refer to
Ahuja, 1988 for more details). However, the best-
known algorithm for solving the maximum capacity
path problem in an undirected network does not rely
on this concept. Instead, it employs a recursive
302
Tayyebi, J., Rîtan, M. and Deaconu, A.
Generalized Maximum Capacity Path Problem with Loss Factors.
DOI: 10.5220/0012387900003639
Paper published under CC license (CC BY-NC-ND 4.0)
In Proceedings of the 13th International Conference on Operations Research and Enterprise Systems (ICORES 2024), pages 302-308
ISBN: 978-989-758-681-1; ISSN: 2184-4372
Proceedings Copyright © 2024 by SCITEPRESS Science and Technology Publications, Lda.
algorithm with a linear complexity of 𝑂(𝑚) (Punnen,
1991).
The maximum capacity path problem finds its
application in various domains. For instance, let us
consider a network that represents connections
between routers on the Internet. In this context, each
arc in the network denotes the bandwidth of the
corresponding connection between two routers. With
the maximum capacity path problem, our objective is
to discover the path between two Internet nodes that
offers the highest possible bandwidth. This network
routing problem is well-known in the field. Apart
from being a fundamental network routing problem,
the maximum capacity path problem also plays a
crucial role in other areas. One noteworthy
application is within the Schulze method, which is
utilized for determining the winner of a multiway
election (Schulze, 2011). In this method, the
maximum capacity path problem aids in resolving ties
and determining the strongest path among multiple
alternatives. Additionally, the maximum capacity
path problem finds application in digital compositing,
wherein it assists in combining multiple images or
video layers into a final composite image or sequence
(Fernandez, 1998). By identifying the path with the
maximum capacity, the compositing process can
ensure the most efficient allocation of computational
resources. Moreover, the problem contributes to
metabolic pathway analysis, which involves studying
chemical reactions within biological systems. In this
context, the maximum capacity path problem aids in
understanding the flow of metabolites through
various pathways and identifying the most influential
pathways in terms of capacity (Ullah, 2009). In
summary, the maximum capacity path problem has
extensive applications ranging from network routing
on the Internet, multiway election methods, digital
compositing, to metabolic pathway analysis. Its
capability to identify and utilize paths with the
highest capacity proves valuable across these diverse
domains.
In this paper, a new combinatorial optimization
problem called the generalized maximum capacity
path (GMCP) problem is introduced. It is a more
intricate version of the problem that involves finding
a directed path from a given source node s to a given
sink node t, with the minimum loss among all
available directed paths from s to t (Deaconu, 2023).
The GMCP problem is defined on a network where
each arc is characterized by two attributes: capacity
and loss factors.
The capacity of an arc represents the maximum
flow value that can be transmitted through it. On the
other hand, the loss factor of an arc indicates the flow
value that arrives at the tail node when one unit of
flow is sent through the arc. The objective of the
generalized maximum capacity path problem is to
discover a path that is capable of transmitting the
maximum flow while considering the loss factors.
This problem is inspired by an extension of
maximum flow problems that incorporates loss
factors, known as the generalized maximum flow
problem (Ahuja 1993). Therefore, the algorithms
developed for solving the GMCP problem can also be
utilized as subroutines for addressing generalized
maximum flow problems.
Moreover, the GMCP problem can be viewed as
an extension of the maximum reliability path (MRP)
and maximum capacity path (MCP) problems. It
becomes equivalent to the MRP problem when
capacities are infinite and transforms into the MCP
problem when the loss factors are equal to 1. Thus,
the GMCP problem expands upon the scope of both
MRP and MCP problems, encompassing their
characteristics and generalizations.
Overall, the GMCP problem introduces a novel
combinatorial optimization problem that extends the
concepts of maximum flow, MRP, and MCP by
incorporating loss factors. The algorithms developed
for GMCP can be utilized for generalized maximum
flow problems, making it a versatile and applicable
problem in various contexts.
The rest of this paper is organized as follows. In
Section 2, we provide the necessary background
information and definitions to lay the foundation for
the research work. Section 3 clearly defines the
research problem and outlines its significance.
Section 4 describes in detail the proposed algorithms
to solve the problem. Section 5 presents the
experiments conducted to validate and evaluate the
proposed algorithms. Finally, Section 6 summarizes
the main findings of the paper and discuss their
implications and potential future directions.
2 PRELIMINARIES
Consider a directed and connected network 𝐺 =
(𝑉,𝐴,𝑢), where 𝑉 represents the set of nodes, A
represents the set of arcs (each arc 𝑎 = (𝑖,𝑗) starts
from node 𝑖 and terminates at node 𝑗), and 𝑢 is a
capacity function mapping arcs to non-negative real
numbers. Within this network, there are two special
nodes: 𝑠 , referred to as the source node, and 𝑡 ,
referred to as the sink node. Let 𝑛 denote the total
number of nodes in the network (|V|), and 𝑚
represent the number of arcs (|A|).
Generalized Maximum Capacity Path Problem with Loss Factors
303
A path, denoted as 𝑃, from a node 𝑤 𝑉 to a
node 𝑣 ∈ 𝑉 in network 𝐺 is defined as a sequence of
nodes 𝑃: (𝑤 = 𝑖
,𝑖
,...,𝑖
= 𝑣), where 𝑙 is equal
to or greater than 1, and each consecutive pair of
nodes (𝑖
,𝑖

) belongs to 𝐴 , for every 𝑘 =
1,2,...,𝑙1.
For the sake of simplicity, from now on, we refer
to a path from 𝑠 to 𝑡 as an "𝑠𝑡-path".
The capacity of an 𝑠𝑡- path 𝑃 is denoted by 𝑢(𝑃)
and is given by the minimum of its capacities, that is,
𝑢
(
𝑃
)
=min {𝑢(𝑎)|𝑎∈𝑃}.
The maximum capacity path problem (MCP) in
the network G is to find an 𝑠𝑡-path 𝑃
having the
maximum capacity among all 𝑠𝑡-paths:
𝑢𝑃
=max
{
𝑢
(
𝑃
)|
𝑃 is an 𝑠𝑡 path
}
.
This problem is also called the widest path
problem, the bottleneck shortest path problem, and
the max-min path problem in the literature.
3 PROBLEM FORMULATION
In this section, we will delve into the problem of the
Generalized Maximum Capacity Path (GMCP). Let
us formally define the problem considering a
connected and directed network denoted as
𝐺(𝑉,𝐴,𝑢,𝑝). Here, 𝑝 is the loss factor parameter.
For each arc (𝑖,𝑗) 𝐴, there are two key
parameters associated with it. The first one is the
capacity, denoted as 𝑢

, which represents the
maximum amount of flow that can be sent along the
arc. The second parameter is the loss factor, denoted
as 𝑝

, which lies in the interval (0,1]. The loss factor
captures physical transformations such as
evaporation, energy dissipation, breeding, theft, or
interest rates (Tayyebi, 2019).
Considering the flow along the arcs, if 𝑥

units of
flow enter arc (𝑖,𝑗), only 𝑝

𝑥

units of flow are
actually delivered to node 𝑗. This implies that
1 − 𝑝

𝑥

units of flow are absorbed or lost along
the arc due to the specified loss factor.
The aim of the generalized maximum capacity
problem is to find an 𝑠𝑡-path that enables the
transmission of the maximum possible flow while
taking the loss factors into consideration.
To formulate this problem in a precise manner, we
introduce the following variables:
𝑥

, representing the flow entering arc (𝑖,𝑗).
𝑦

, a binary variable that determines whether or
not arc (𝑖,𝑗) carries a positive flow (1 if it does, 0
otherwise).
Now, we can express the GMCP as a mixed zero-
one linear programming model, which can be stated
as follows:
max𝑧=𝑣
(1a)
𝑥

:
(
,
)
∈
−𝑝

𝑥

:
(
,
)
∈
=
𝑣
𝑖=𝑠,
0𝑖𝑠,𝑡,
−𝑣
𝑖=𝑡,
∀𝑖𝑉,
(1b)
𝑦

:
(
,
)
∈
1, ∀𝑖𝑉\{𝑡},
(1c)
0≤𝑥

≤𝑢

𝑦

, (𝑖,
𝑗
)∈
𝐴
,
(1d)
Let us break its points down into separate parts:
1. The variables 𝑣
and 𝑣
represent the flow
leaving the source node 𝑠 and the flow entering
the sink node 𝑡, respectively.
2. Constraints (1b) and (1d) correspond to the
balanced flow constraint and the bound
constraints commonly found in maximum flow
problems (Ahuja, 1988).
3. Constraint (1c) ensures that at most one
outgoing arc from any node is capable of
sending flow. This constraint guarantees that
flow is sent only along a single 𝑠𝑡-path.
4. The formulation (1) of the GMCP problem
closely resembles that of generalized maximum
flow problems, with the added inclusion of zero-
one variables 𝑦

and the constraint (1c) (Ahuja,
1988).
Remark 1: While we have assumed that 𝑝

≤1,
constraint (1d) does not account for the possibility of
a flow increment on arc (𝑖,𝑗) when 𝑝

>1. In such
cases, it should be written as 0≤
𝑚𝑎𝑥 { 𝑥

,𝑝

𝑥

}≤𝑢

𝑦

. To handle this situation
without loss of generality, we can redefine the
capacity of arc (𝑖,𝑗) as 𝑚𝑖𝑛 {𝑢

,𝑢

/𝑝

}.
4 ALGORITHMS
This section focuses on the development of two
algorithms to solve the GMCP problem in polynomial
time. This provides evidence that the problem is
tractable, similar to the MCP, SP, and MRP problems.
ICORES 2024 - 13th International Conference on Operations Research and Enterprise Systems
304
We start with a simple observation: if we send the
maximum flow along a path, then at least one of its
arcs will be saturated. The capacity of this saturated
arc determines the flow value along the path. Let
(
𝑖
,𝑗
)
be the last saturated arc in an 𝑠𝑡-path 𝑃 =
𝑠−⋯−𝑖
−𝑗
−⋯−𝑘−𝑡. The flow value along
path 𝑃 is then equal to 𝑢
× 𝑝
× … × 𝑝

.
An interesting insight is that if we remove the arc
(
𝑖
,𝑗
)
from the network and add a new arc
(
𝑠,𝑗
)
with capacity 𝑢

= 𝑢
, loss factor 𝑝

=
𝑝
, 𝑡ℎ𝑒𝑛 we can send the same flow value along
the new path 𝑠−𝑗
−⋯−𝑘−𝑡. This simple idea
leads to a polynomial-time algorithm for solving
problem (1).
In the first algorithm, disregarding arc capacities,
we aim to find a maximum reliability path from s to
t, which is a path 𝑃 where the value of the product
𝑝

(
,
)
∈
is maximized. This can be achieved by
assigning arc lengths 𝑙

=−𝑙𝑜𝑔𝑝

and finding the
shortest 𝑠𝑡-path based on these arc lengths. Let 𝑃 be
the shortest path obtained. Then, we identify the last
arc
(
𝑖
,𝑗
)
in 𝑃 that would become saturated if we
were to send the maximum flow along 𝑃. We remove
arc
(
𝑖
,𝑗
)
from the network and introduce an
artificial arc
(
𝑠,𝑗
)
with a loss factor 𝑝

= 𝑝
,
capacity 𝑢

=𝑢
and a weight of
−log (𝑢
𝑝
). We repeat this process until we
find a path 𝑃 in which the last saturated arc is one of
the artificial arcs.
Considering the unique characteristics of our
algorithm, it is noteworthy to underscore that the
negative weights exclusively pertain to arcs
emanating from the source node 𝑠 . This crucial
distinction enables the seamless application of
Dijkstra's algorithm, as its efficacy is contingent upon
the absence of negative cycles within the graph. To
further streamline the application of Dijkstra's
algorithm and eliminate negative arcs altogether, we
propose a judicious adjustment to the arc weights.
Specifically, we suggest augmenting all arcs with the
minimum value among the arcs originating from 𝑠,
denoted as min
(
𝑠,𝑗
)
for the pair
(
𝑠,𝑗
)
. This
augmentation ensures the absence of negative
weights in the entire graph, rendering it amenable to
Dijkstra's algorithm without any reservations.
Subsequently, upon identifying the optimal path
and obtaining the computed result, we advocate for
subtracting the added value—representative of the
minimum value among the source-emerging arcs.
This corrective measure guarantees the restoration of
the original, unaltered values on the optimal path
while harnessing the benefits of an adjusted graph
conducive to the successful application of Dijkstra's
algorithm.
It is important to note that the optimal value of
problem (1) is equal to the maximum flow along the
last path found by the algorithm. To obtain the
optimal path, we need to save the segment of path 𝑃
from 𝑠 to 𝑖
whenever
(
𝑖
,𝑗
)
is removed and
(
𝑠,𝑗
)
is added. This can be accomplished by introducing an
additional parameter 𝑃

for each artificial arc.
Therefore, if the algorithm finds path 𝑃 in the last
iteration, the optimal solution will be a path that
includes arcs from 𝑃

and 𝑃, excluding
(
𝑠,𝑗
)
.
Algorithm 1 provides a formal description of our
first algorithm. Since an arc is removed in each
iteration, the number of iterations is at most equal to
m (the total number of arcs). As a result, we can
conclude the following:
Theorem 1: The complexity of Algorithm 1 is
𝑂(𝑚𝑆(𝑛,𝑚)) in which 𝑆(𝑚,𝑛) is the complexity of
finding the shortest path in the network.
Algorithm 1.
Input: An instance of the generalized MCP
problem
Output: An optimal path
for
(
𝑖,𝑗
)
∈𝐴:
if 𝑖==𝑠:
Set 𝑙
̅

=−log𝑝

𝑢

and 𝑃

=(𝑖,𝑗)
else:
Set 𝑙
̅

=−log𝑝

and 𝑃

=∅
while True:
Find a shortest path 𝑃 with respect to 𝑙
̅

if 𝑃

≠∅:
The optimal path is 𝑃

∪𝑃\{(𝑠,𝑗
)}
else:
Find the last arc (𝑖
,𝑗
) of 𝑃 to be
saturated.
Remove (𝑖
,𝑗
).
Add an artificial arc (𝑠,𝑗
)
Set 𝑙
̅

=−log (𝑢
𝑝
)
In the followings, we discuss optimality
conditions for problem (1) and present an algorithm
with a time complexity of 𝑂(𝑆(𝑚,𝑛)), which
improves the complexity of Algorithm 1 by a factor
of 𝑚.
To begin, we introduce a label 𝑑(𝑗) for each node
𝑗 ∈ 𝑉. During intermediate stages of computation,
the label 𝑑(𝑗) serves as an estimate (or an upper
bound) of the maximum flow sent from the source
node s to node j along a single path. At the termination
of the algorithm, the label 𝑑(𝑗) represents the optimal
value of problem (1). Our objective is to establish
Generalized Maximum Capacity Path Problem with Loss Factors
305
necessary and sufficient conditions for a set of labels
to accurately represent the maximum flow.
Let 𝑑(𝑗) denote the value of the maximum flow
sent from the source node to node j (where we set
𝑑(𝑠) = +). In order for the labels to be optimal,
they must satisfy the following necessary optimality
conditions:
Constraint (1c): For each node 𝑗 ≠ 𝑠, there exists
at most one outgoing arc with positive flow. This
condition ensures that the flow is sent only along
a single 𝑠𝑡-path.
Capacity Constraint: For each arc (𝑖,𝑗), the flow
through the arc must not exceed its capacity.
Mathematically, this can be written as 𝑓

≤ 𝑢

,
where 𝑓

represents the flow on arc (𝑖,𝑗) and 𝑢

represents the capacity of arc (𝑖,𝑗).
Flow Conservation: The flow conservation
principle must be satisfied at every node (except
the source and sink nodes). For any node 𝑗 ≠ 𝑠
and 𝑗 ≠ 𝑡, the sum of incoming flows must equal
the sum of outgoing flows. Mathematically, this
can be expressed as
𝑓

(
,
)
∈
𝑓

(
,
)
∈
=
0.
Optimality Condition: For each node 𝑗 ≠ 𝑠, the
label 𝑑(𝑗) represents the maximum flow sent
from the source node 𝑠 to node 𝑗. Therefore, we
have 𝑑
(
𝑗
)
=
𝑓

(
,
)
∈
𝑓

(
,
)
∈
, where
𝑓

represents the flow on arc (𝑖,𝑗) and 𝑓

represents the flow on arc (𝑗,𝑘).
By satisfying these necessary optimality
conditions, we can ensure that the labels 𝑑(𝑗)
accurately represent the maximum flow in the
network.
If the labels are optimal, they must satisfy the
following necessary optimality conditions:
𝑑
≥𝑝

min𝑢

,𝑑
.
This is an extension of the optimality conditions
of both the MCP and MRP problems. On the optimal
path, the inequality is satisfied in the equality form. It
states that the label of node 𝑗 is either 𝑝

𝑑
or 𝑝

𝑢

.
In the case that the flow value arrived at node 𝑖 is less
than 𝑢

, (namely, 𝑑
<𝑢

), this arc is not saturated
and consequently, 𝑑
=𝑝

𝑑
. In the other case, (𝑖,𝑗)
is saturated, and it interdict sending flow more than
its capacity. So, 𝑑
=𝑝

𝑢

in this case.
Since this optimality condition is similar to that of
the SP problem, we can apply the concept of
Dijkstra’s algorithm to solve problem 1. This is
presented in Algorithm 2.
Theorem 2: Algorithm 2 solves the problem in
𝑂(𝑛
) time.
Proof. Considering the provided information, we can
deduce that in the given for loop, each arc is checked
only once. As a result, the number of iterations
executed by the two last lines of the loop is at most
𝑂(𝑚) which is also less than or equal to 𝑂(𝑛
),
considering the worst-case scenario.
Conversely, the node selection process, where the
node with the minimum label is chosen, requires
𝑂(𝑛) time in each iteration. Taking into account that
the number of iterations is 𝑂
(
𝑛
)
, we can conclude
that the most time-consuming operation in this
algorithm is the node selection, which takes 𝑂(𝑛
)
time.
Algorithm 2.
Input: An instance of the generalized MCP
problem
Output: An optimal path
for 𝑖∈𝑉:
Set 𝑑
(
𝑖
)
=0
Set 𝑑(𝑠) = +
Set 𝑆(0) = 𝑠; 𝑆
̅
=𝑉
while |𝑆|<𝑛:
Let 𝑖∈𝑆 be a node for which
𝑑
(
𝑖
)
=min{𝑑
(
𝑗
)
:𝑗𝑆};
𝑆
̅
=𝑆
̅
\{𝑖};
for each 𝑗∈𝑉:
(
𝑖,𝑗
)
∈𝐴:
if
𝑑
<𝑝

min𝑢

,𝑑
:
Update 𝑑
=𝑝

min𝑢

,𝑑
Update 𝑆=𝑆 𝑈
{
𝑖
}
;
We can also use the available implementations of
Dijkstra’s algorithm for the complexity improvement
of Algorithm 2. For example, the Fibonacci heap
implementation reduces the complexity to 𝑂(𝑚+
𝑛log𝑛).
5 EXPERIMENTS &
DISCUSSIONS
Based on the findings presented in Theorem 1 and
Theorem 2, it is obvious that Algorithm 2
outperforms Algorithm 1 in terms of speed. However,
Algorithm 1 offers an advantage in that it can be
effectively parallelized on GPUs by utilizing classical
Dijkstra's algorithm (Ortega-Arranz, 2013) in a
sequential manner. So, the implementation of CUDA-
based Dijkstra's algorithm resulted in a noteworthy
acceleration of Algorithm 1.
The CUDA version exhibited significantly
improved performance compared to Algorithm 2, as
demonstrated in Table 2. Particularly, for larger
ICORES 2024 - 13th International Conference on Operations Research and Enterprise Systems
306
network instances with 10,000 nodes or more, the
CUDA implementation of Algorithm 1 was up to 25.7
times faster than Algorithm 2.
Table 1: Network generator parameters used for
experiments.
No. of
nodes
No. of
Instances
No. of
p
aths
No. of
c
y
cles
Erdős–
Rén
y
i
p
rob.
No.
1000 10000
500 100 0.5
1
500 100 0.7
2
500 100 0.9
3
2000 1000
1000 100 0.1
4
1000 250 0.15
5
1000 500 0.6
6
5000 100
2500 1000 0.1
7
2500 1000 0.2
8
2500 1000 0.3
9
10000 5
5000 2500 0.15
10
5000 2500 0.3
11
5000 2500 0.5
12
15000 3 7500 1000 0.15
13
20000 2 7500 1000 0.15
14
25000 1 8000 1500 0.15
15
Table 2: Running times (ms) comparison between
Algorithm 1 (CPU and GPU) and Algorithm 2 CPU.
No. Alg. 1 CPU
Alg. 1
GPU
Alg. 2
CPU
Alg. 1 GPU vs
Alg. 2 CPU(times)
1
165.75 187.30 18.32 0.10
2
121.1 138.66 8.24 0.06
3
188.96 311.78 14.84 0.05
4
30.22 52.40 6.86 0.13
5
120.00 209.34 63.00 0.30
6
193.50 315.60 19.50 0.06
7
183.00 71.52 40.15 0.56
8
284.30 103.41 41.7 0.40
9
626.6 226.74 61.4 0.27
10
671.10 89.21 98.01 1.10
11
677.14 67.78 216.00 3.19
12
940.20 76.15 358.01 4.70
13
1306.07 49.41 238.10 4.82
14
2965.04 53.48 452.11 8.46
15
3549.10 32.11 826.04 25.72
Figure 1: Running times (ms) comparison between
Algorithm 1 GPU and Algorithm 2 CPU.
We used different instances of random generated
networks having the number of nodes varying from
1000 to 25000 (see Table 1). The networks were
generated using the network random generator from
(Deaconu, 2021).
It is imperative to acknowledge that, throughout
various experimental analyses, graph's density played
an important role, and was calibrated using the
Erdős–Rényi probability distribution. The Erdős–
Rényi variable, a continuous parameter spanning the
interval [0, 1], played a pivotal role in these
experimental investigations.
In this context, it is essential to elucidate that the
ErdősRényi variable assumes a value of 0 when the
graph lacks any new arcs, signifying minimal density.
Conversely, a value of 1 denotes the graph's
attainment of maximum density, highlighting the
comprehensive spectrum of density exploration in our
experimental framework.
The experiments were performed using a PC with
an Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz, 24
GB RAM, and an NVIDIA GeForce GTX 1070 TI
graphics card. The algorithms were programmed in
Visual C++ 2022 under Windows 10.
6 CONCLUSIONS
In this paper, a novel combinatorial optimization
problem was introduced. The main objective is to
identify a path that can transmit the maximum flow,
taking into account both the capacities and loss
0
100
200
300
400
500
600
700
800
900
123456789101112131415
Alg. 1 GPU vs Alg. 2 CPU (ms)
Alg. 1 GPU Alg. 2 CPU
Generalized Maximum Capacity Path Problem with Loss Factors
307
factors of the arcs. This problem is known as the
generalized maximum capacity path problem
(GMCP).
The paper presents two strongly polynomial
algorithms to address the GMCP. The first algorithm
has a time complexity of 𝑂(𝑚𝑆(𝑛,𝑚)), where
𝑆(𝑚,𝑛) represents the time complexity of finding the
shortest path in the network. On the other hand, the
second algorithm has a more efficient time
complexity of 𝑂(𝑛
). However, it is worth noting that
when the first algorithm is implemented on GPUs, it
performs substantially faster than the second
algorithm, especially for large network instances.
REFERENCES
Ahuja, R. K., Magnanti, T. L., & Orlin, J. B. (1993).
Network flows, Prentice Hall.
Deaconu, A.M., & Spridon, D., (2021). Adaptation of
Random Binomial Graphs for Testing Network Flow
Problems Algorithms. Mathematics, 9(15), 1716.
Deaconu, A.M., Ciupala, L., & Spridon, D., (2023).
Finding minimum loss path in big networks. 22nd
International Symposium on Parallel and Distributed
Computing (ISPDC), Bucharest, Romania, pp. 39-44.
Fernandez, E., Garfinkel, R., & Arbiol, R. (1998).
Mosaicking of aerial photographic maps via seams
defined by bottleneck shortest paths. Operations
Research, 46(3), 293-304.
Ortega-Arranz, H., Torres, Y., Llanos, D.R., & Gonzalez-
Escribano, A., (2013). A new GPU-based approach to
the Shortest Path problem. 2013 International
Conference on High Performance Computing &
Simulation (HPCS), Helsinki, Finland, pp. 505-511.
Punnen, A. P. (1991). A linear time algorithm for the
maximum capacity path problem. European Journal of
Operational Research, 53(3), 402-404.
Schulze, M. (2011). A new monotonic, clone-independent,
reversal symmetric, and Condorcet-consistent single-
winner election method. Social choice and Welfare, 36,
267-303.
Tayyebi, J., & Deaconu, A. (2019). Inverse generalized
maximum flow problems. Mathematics, 7(10), 899.
Ullah, E., Lee, K., & Hassoun, S. (2009, November). An
algorithm for identifying dominant-edge metabolic
pathways. In 2009 IEEE/ACM International
Conference on Computer-Aided Design-Digest of
Technical Papers (pp. 144-150). IEEE.
ICORES 2024 - 13th International Conference on Operations Research and Enterprise Systems
308