bi-objective network flow optimization problem · bi-objective network flow optimization problem...

45
Bi-objective Network Flow Optimization Problem Pedro Miguel Guedelha Dias Thesis to obtain the Master of Science Degree in Industrial Engineering and Management Supervisor: Prof. Jos´ e Rui de Matos Figueira Examination Committee Chairperson: Prof. Ana Paula Ferreira Dias Barbosa P´ ovoa Supervisor: Prof. Jos´ e Rui de Matos Figueira Member of the Committee: Prof. Augusto Manuel Jos´ e Eus ´ ebio June 2016

Upload: others

Post on 29-Jan-2021

13 views

Category:

Documents


0 download

TRANSCRIPT

  • Bi-objective Network Flow Optimization Problem

    Pedro Miguel Guedelha Dias

    Thesis to obtain the Master of Science Degree in

    Industrial Engineering and Management

    Supervisor: Prof. José Rui de Matos Figueira

    Examination Committee

    Chairperson: Prof. Ana Paula Ferreira Dias Barbosa PóvoaSupervisor: Prof. José Rui de Matos Figueira

    Member of the Committee: Prof. Augusto Manuel José Eusébio

    June 2016

  • Abstract

    Network flow problems, specifically minimum cost network flow problems, are a type of optimization problems

    that can model many real world problems even if they do not present a network structure. Although the single

    objective case for these problems is well studied in academic literature and multiple tools are available to

    solve them, the literature for the multi objective case is scarce and not many of the algorithms for the multi

    objective problems presented in the literature have been implemented in tools that can be used for solving

    real problems.

    In this dissertation, the goal is to develop a solver for the special case of the bi objective minimum cost

    flow problem. To achieve this, an in depth review of the current literature that deals with these problems is

    made, along with a presentation of the concepts that are fundamental to both multi objective optimization and

    minimum cost flow problems. Finally, a solver capable of dealing with bi objective minimum cost flow problems

    is developed using the knowledge that was acquired in the first stages of the study in this dissertation. The

    solver is used to solve a large test package to provide an insight to its performance capabilities and the

    results are presented and analyzed in the last chapter.

    Keywords— Bi-Objective Network Simplex, Minimum Cost Flow, CPLEX, Multi-objective Optimization

  • Resumo

    Problemas de fluxo de redes, em especı́fico os problemas de custo mı́nimo de fluxos de redes, são um

    tipo de problemas de optimização que pode ser utilizado para modelar muitos problemas reais mesmo

    quando estes não possuem uma estrutura em rede. Embora os problemas com uma única função objectivo

    estejam bem estudados na literatura académica e existam múltiplas ferramentas capazes de resolver este

    tipo de problemas, a literatura no caso dos problemas multi-objectivo é escassa e poucos dos algoritmos

    apresentados na literatura foram implementados em ferramentas que possam ser utilizadas em problemas

    reais.

    Nesta dissertação, o objectivo é o desenvolvimento de uma ferramenta para o caso especı́fico dos

    problemas bi-objectivo de minimização de custo de fluxos. Para atingir este objectivo, é feita uma revisão da

    literatura académica que lida com este tipo de problemas, acompanhada de uma revisão dos conceitos fun-

    damentais para associados com a optimização multiobjectivo e os problemas de redes de fluxo. Finalmente,

    uma ferramenta capaz de resolver problemas bi-objectivo de minimização de custo de fluxos é desenvolvida.

    Esta ferramenta é utilizada para resolver um conjunto de problemas que compõe uma pacote de testes de

    forma a compreender a sua performance e as suas capacidades e os resultados obtidos são apresentados e

    analisados no último capı́tulo.

    Palavras Chave— Simplex de Redes Bi-Objectivo, Fluxos de Custo Mı́nimo, CPLEX, Optimização Multiob-

    jectivo

  • Contents

    1 Introduction 31.1 Contextualization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Research methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.4 Structure of the Dissertation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    2 Problem 62.1 Multi-objective optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2 Dominance and related concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3 Graphs and networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.4 Minimum cost network flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.5 Bi-objective network flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.6 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    3 Literature review 123.1 Multi-objective minimum cost flow problems: Continuous case . . . . . . . . . . . . . . . . . . 12

    3.1.1 Exact based approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.1.2 Approximate based approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    3.2 Multi-objective minimum cost flow problems: Discrete case . . . . . . . . . . . . . . . . . . . 153.2.1 Exact based approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.2.2 Approximate based approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    3.3 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    4 Methodology 194.1 Network simplex for minimum cost flow problems . . . . . . . . . . . . . . . . . . . . . . . . . 194.2 Bi-objective network simplex for minimum cost flow problems . . . . . . . . . . . . . . . . . . 204.3 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    4.3.1 NETGEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.3.2 Converter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.3.3 Solver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    4.4 Results and Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.5 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    5 Final conclusions and future work 36

    1

  • List of Figures

    2.1 Example of a cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2 Example of a spanning tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.3 Example of a minimum cost flow network. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.4 Example of a bi-objective minimum cost flow network. . . . . . . . . . . . . . . . . . . . . . . 11

    3.1 Illustration of the sandwich idea. Hamacher et al. (2007) . . . . . . . . . . . . . . . . . . . . . 14

    4.1 Example DIMACS format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.2 Example of a bi-objective minimum cost flow network. . . . . . . . . . . . . . . . . . . . . . . 244.3 Initial solution f1 = 418 and f2 = 531 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.4 Solution for iteration 1 f1 = 420 and f2 = 516 . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.5 Solution for iteration 2 f1 = 424 and f2 = 502 . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.6 Solution for iteration 3 f1 = 430 and f2 = 492 . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.7 Solution for iteration 4 f1 = 452 and f2 = 466 . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.8 Solution for iteration 5 f1 = 468 and f2 = 450 . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.9 Solution for iteration 6 f1 = 492 and f2 = 442 . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.10 Solution for iteration 7 f1 = 510 and f2 = 439 . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.11 Solution for iteration 8 f1 = 510 and f2 = 439 . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.12 Solution for iteration 9 f1 = 524 and f2 = 438 . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.13 Solution set for example problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.14 Average CPU time for the 32 test classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.15 Median of the CPU time for the 32 test classes . . . . . . . . . . . . . . . . . . . . . . . . . . 314.16 Mean vs Median for CPU time of the 32 test classes . . . . . . . . . . . . . . . . . . . . . . . 324.17 Mean number of solutions found for the 32 test classes . . . . . . . . . . . . . . . . . . . . . 334.18 Median number of solutions found for the 32 test classes . . . . . . . . . . . . . . . . . . . . 334.19 Mean vs Median for number of found solutions of the 32 test classes . . . . . . . . . . . . . . 344.20 Average number of solutions versus average CPU time for the 32 test classes . . . . . . . . . 34

    2

  • Chapter 1

    Introduction

    This chapter presents an outline of this Master Dissertation, including information that contextualizes theproblem to be described, the research methodology adopted and the main goals to be achieved.

    1.1 Contextualization

    The competitiveness and complexity of the current economic and social environment of our world has broughtnew needs for organizations, which seek to operate at maximum levels of efficiency in order to maintainand improve their market position. The optimization of the usage and allocation of resources available inthese enterprises presents itself as a problem that these actively seek to solve refusing their competitors anyopportunity that can be exploited to gain an improved market position. But with the increased complexity ofthe current economic context, also the complexity of the decision-making problems that organizations facehas increased, acting as a driver for organizations to search for methods and tools that will allow for betterdecision making.

    The discipline of Operations Research (OR), employing multiple techniques from various sub-fields ofmathematics, presents multiple analytical methods that can be applied in a wide range of real world problems,with an emphasis in methods that can achieve optimal or near-optimal solutions for complex decision makingproblems that arise from the complex systems in our society. In these analytical methods we highlight LinearProgramming, which is a method that can be used to find optimal solutions for problems that are modeled asa series of linear relationships.

    A more specific class of Linear Programming problems are the network flow problems that often arise invarious fields like telecommunications, supply chain management, traffic networks, routing and distribution.Other problems like scheduling , while not being represented by a network, can be also modeled as NetworkFlow problems. These problems, in particular minimum cost network flow problems, model some flow alongthe routes of a network, where certain constraints are assigned to each route and where the objective is tominimize a certain set of conditions. While minimum cost network flow problems are here presented as aspecific class of Linear Programming problems, they can still be solved using the general simplex algorithm,used in solving most LP problems, or the more specialized network simplex algorithm. But as the context asevolved in complexity, MCNF problems also became more complex.

    Like most decision making problems, MCNF problems in the real world often have more than a singleobjective to be optimized simultaneously. Multi-objective problems have multiple optimal solutions, with

    3

  • potentially an infinite number of these solutions. In these cases, algorithms for multi-objective minimum costnetwork flows seek to present to the decision makers a set of optimal solutions so that the decision makerscan explore the multiple trade-offs between different optimal solutions.

    As such, computational algorithms for the solution of multi-objective minimum cost network flows areof great interest and have a large set of practical applications for common real world problems. But theintractability of these problems present a problem for many algorithms that have their usage limited by currentcomputational power, specifically the computational power available to common decision makers that do nothave access to high performance computers. An alternative application of the multi-objective network flowproblems is shown by Gomez et al. (2013), where the authors use a bi-objective formulation to build a newfamily of centrality measures for network analysis.

    In this Master Dissertation we develop a computational application implementing an algorithm that can beused in the solving of bi-objective minimum cost network flows of medium to large size.

    1.2 Research methodology

    The research methodology adopted follows a series of steps, which are presented in this section.The first step is the introduction of common definitions and concepts related to the overall concept of

    multi-objective minimum cost flows. These concepts and definitions shall be used throughout this documentand are standardized and harmonized for their usage in the following steps.

    The second step is the review of the academic literature that explores the field of multi objective minimumcost flows. It presents information about current algorithms that can be used for solving of these problemsand identifies distinct approaches that range from exact based versus approximate based approaches andalgorithms that deal with the continuous or the discrete case for these problems.

    The third step is the presentation of the algorithm to be implemented and the development of theapplication that shall be used for bi-objective minimum cost flows.

    The fourth step is the presentation, discussion and analysis of the results obtained after the developmentof the application where it is used to solve a large amount of randomly generated problems with varyingcharacteristics.

    The fifth step is the presentation of the final conclusions related to the previous steps and the presentationof recommendations for future research.

    1.3 Objectives

    The goals of this dissertation are the development of an application that implements an algorithm for thesolving of Bi-Objective Minimum Cost Flow problems and an exhaustive examination of the efficiency of thedeveloped solver using a set of computational tests applied to randomly generated medium and large sizednetworks. The solver shall be able to solve these problems in a computationally efficient way, being able toreturn the solution for medium and large sized networks in an acceptable time period.

    1.4 Structure of the Dissertation

    This dissertation has the following structure:

    4

  • • In Chapter 2 the reader can find a presentation of multiple concepts and definitions relevant to thefield of multi-objective optimization and minimum cost flow problems. This chapter intends to providea common ground of knowledge to the reader allowing for a better understanding of the multiplealgorithms described in the next chapters.

    • In Chapter 3 a presentation is made of the literature review of the state of the art in the area of study ofthe Dissertation, with particular focus on the multiple methods presented in academic literature for thesolving of multi-objective minimum cost flow problems.

    • In Chapter 4 it is addressed the Bi-Objective Network Simplex Algorithm for Minimum Cost Flowproblems, presenting the algorithm and its implementation to the reader. The reader can also finddetails about the solver that was developed in this dissertation and the results of the tests that weremade on the developed program. The results are analyzed and put into context with the field ofmulti-objective minimum cost flow problems.

    • In Chapter 5 the conclusions of the Dissertation are presented, also presenting guidelines for futurework related to the area of study.

    5

  • Chapter 2

    Problem

    2.1 Multi-objective optimization

    Multi-objective optimization deals with mathematical optimization of problems with multiple objective functions.A multi-objective optimization problem can be formulated as follows:

    ”min”(F (x) = (f1(x), f2(x), . . . , fp(x)

    )s.t. x ∈ X

    where p > 2 is the number of objective functions and the set X is the feasible set of decision vectors Ehrgott(2005).

    The set of feasible solutions, also called the decision space, is denoted by X ⊂ Rn with n equal to thenumber of decision variables. The objective space is the space generated by the objective functions of theproblem and is denoted f(X) = {(f1(x), f2(x), . . . , fp(x)), x ∈ X}.

    2.2 Dominance and related concepts

    In multi-objective optimization the concepts of dominance and efficiency are prominent, as tipically does notexists a feasible solution that minimizes all the objective functions simultaneously, meaning that the changein the allocation of resources that improves a certain objective function implies a deterioration in respect ofanother objective function.

    According to Ehrgott (2005), the importance of the concepts of dominance and efficiency are a result ofthe observation that any x which is not efficient cannot represent a better alternative to the decision makerbecause there exists at least one x′ ∈ X such that fk(x′) 6 fk(x) for all k = 1, . . . , p where strict inequalityholds at least once.

    The definitions of dominance and non-dominated solution are made for the objective space, while indistinction the concept of efficiency is made for the decision space.

    Definition 1. (Dominance). Consider y′, y′′ ∈ Rp, two objective solution vectors. Then, y′ dominates y′′ iffy′ 6 y′′ and y′ 6= y′′, i.e., y′k 6 y′′k for all k = 1, . . . , p with at least one strict inequality. Also, iff there is no other

    6

  • solution y ∈ Y such that y 5 y′ and y 6= y′, the solution y is called a non-dominated solution (ND solution).

    The distinction between dominance and strong dominance is also made, with the latter being a specialcase of dominance where a solution y is strictly better in all its components relative to a solution y′.

    Definition 2. (Strong Dominance). Consider y, y′ ∈ Rp, two objective solution vectors. Then, y stronglydominates y′ iff y < y′ and y 6= y′, i.e., yk < y′k for all k = 1, . . . , p.

    In multi-objective programming, two types of ND solutions can be distinguished: supported and unsup-ported ND solutions. Let,

    Y = = Conv(ND(Y I) + Rp=)

    with:

    Rp= = {y ∈ Rp|y = 0}

    ND(Y I) + Rp= = {y ∈ Rp : y = y′ + y′′, y′ ∈ ND(Y I) and y′′ ∈ Rp=}

    where Conv stands for the convex hull and Y I = F (XI). If a non-dominated solution stands on the boundaryof Y =, that solution is said to be a supported solution. Otherwise the solution is said to be an unsupportedsolution.

    Definition 3. (Supported ND Solution). Let y denote an ND solution. Then, iff y is on the boundary of Y =, yis a supported ND solution.

    Considering the supported ND solutions, i.e., solutions that stand on the boundary of the convex hull ofthe feasible set, of these solutions the ones that are an extreme point of the convex hull Y = are called thesupported-extreme ND solutions.

    While the concept of dominance is made for the objective space, the concept of efficiency can also bedefined, now for the decision space.

    Definition 4. (Efficient Solution). A feasible solution x′ ∈ X is said to be efficient iff it is impossible tofind another solution x ∈ X with a better evaluation of a given objective function without deteriorating theevaluation of at least another objective, i.e., x′ ∈ X is said to be efficient iff it is impossible to find anothersolution x ∈ X such that y = f(x) 5 y′ = f(x′) and y 6= y′.

    According to Steuer (1986), efficient solutions can be obtained as optimal solutions to a single-objectiveweighted sum problem of the type:

    min λ1f1(x) + λ2f2(x), x ∈ X

    with the conditions of λp > 0,∀p = 1, 2 and∑2

    p=1 λp = 1.

    2.3 Graphs and networks

    Important definitions and concepts related to graph theory and network optimization are going to be presentedin this section. The concepts presented here are of extreme importance to a full understanding of the methods

    7

  • and algorithms used later in this work for the optimization of network flows.The fundamental object used in the representation of networks is the graph, comprised of a set of objects

    linked between themselves. In this work, the term graph is always used to refer to connected and directedgraphs, that is, graphs where every object is linked to another and the links have one single direction.

    Definition 5. (Directed Graph). Let G = (V,E) be a directed and connected graph where the set V is a finiteset of vertices or nodes with cardinality |V | = m and the set E is a collection of ordered pairs of elements ofV called edges or arcs, with cardinality |E| = n.

    The concept of subgraph is also relevant and shall be presented. According to Eusébio and Figueira(2009a) a graph is called a subgraph of another graph when the sets of nodes and arcs that comprise the firstare included or are equal to the sets of nodes and arcs that comprise the latter. A subgraph can be called aspanning subgraph if the set of nodes of the first is strictly equal to the set of nodes of the latter.

    Definition 6. (Subgraph). Let the graph G′ = (V ′, E′) be a subgraph of the graph G = (V,E) if V ′ ⊆ V andE′ ⊆ E. The subgraph is called a spanning subgraph if V ′ = V

    In the context of graph theory, let a path be a sequence of adjacent nodes that are connected by arcs. Ina directed graph, all the arcs in any given path must have the same direction.

    Paths are of extreme importance because they allow the definition of cycle, another concept related tographs and networks that is of utmost importance for the understanding of the algorithms used to solvenetwork optimization problems. Let a cycle C be a closed path where the only repeated node is the startingand ending point, that is coincident. A directed cycle is a closed directed path.

    1

    2

    3

    4

    5

    Figure 2.1: Example of a cycle

    With the concept of cycle, also defined is the concept of Tree. Let a tree T = (N,A) be a subgraph ofG that contains no cycle and N ⊆ V and A ⊆ E. A tree is called a spanning tree when it spans the set ofvertices of the graph G, i.e., N = V .

    If a given arc (k, l) belonging to the set E but not to the set A, i.e., the arc belongs to a graph G but not toa specific spanning tree T of G, is considered, it can be said that there is a unique cycle C when the arc (k, l)is added to E. The direction of C is the same direction of the arc (k, l) and a partition of its vertices can bemade by separating the arcs having the same direction as C from the arcs having the opposite direction. Thecollection of all the possible cycles of this type is called the fundamental cycle basis and is a very importantconcept in the solving of minimum cost flow problems.

    8

  • 1

    2

    3

    4

    5

    Figure 2.2: Example of a spanning tree

    2.4 Minimum cost network flows

    The Minimum Cost Network Flow problem can be stated as an optimization problem where the objectiveis to find the best combination of flows through the arcs of a given network structure in respect to the costassociated with each given arc. Let us consider a network that is a directed graph G = (V,E) with the set Vof nodes and the set E of arcs.

    The vector c of costs, with cij for all (i, j) ∈ E, is the vector that gives the costs associated with each arcin the network and its values allow the building of the objective function that will be subject to minimization.Other information required for the minimum cost flow problem are the lower and upper bounds of each arc,indicating the minimum and maximum amount of flow that can be made to pass through a given arc. Thevectors l and u are the lower and upper bound vectors of the network. A final set of information is the supplyof the network, this is, the total amount of flow that is flowig through the arcs of the network. The supplyvalues, given by the supply vector b, are associated with certain nodes, where a node i with bi > 0 is called asource and a node i with bi < 0 is called a sink. A node i with bi = 0 is called a transshipment node.

    To the minimum cost flow problem a set of constraints is necessary to allow the complete formulationof the problem. Considering xij the flow amount for the arc (i, j) ∈ E, the first constraint is the capacityconstraint, that says that the total amount of flow in a given arc must be equal or more than the lower boundlij and equal or less than the upper bound uij , i.e., lij ≤ xij 6 uij ,∀(i, j) ∈ E. The second constraint is theflow conservation constraint,that says that the total sum of the flows that flow into and out of a node i must beequal to bi.

    With all the information presented above, the minimum cost flow problem can be stated as follows:

    min f(x) =∑

    (i,j)∈E

    cijxij

    s.t.∑

    j|(i,j)∈E

    xij −∑

    k|(k,i)∈E

    xki = bi,∀i ∈ V

    lij 6 xij 6 uij ,∀(i, j) ∈ E

    Minimum cost network flow problems arise in practice in multiple scenarios. Any network that has costsassociated with the arcs that make part of the network, such as telecommunications networks as an example,can be subject for a minimum cost flow optimization. Minimum cost network flow problems can also be used

    9

  • in logistics and supply chain management.

    i jcij

    [lij ,uij ]

    1

    2

    3

    4

    5

    3

    [0,10

    ]

    8[0,5]

    5[0,4]

    3

    [0,7]

    10[0,6]

    2

    [0,8]

    1[0,8]

    Figure 2.3: Example of a minimum cost flow network.

    2.5 Bi-objective network flows

    Bi-objective network flows extend the problem of network flows optimization to the field of multi-objectiveoptimization. The step from single-objective network flow problem to bi-objective network flow problem istaken by performing the addition of a second set of costs to every arc of a given network. Consider a networkG = (V,E), equal to the network presented in the section before. The set of costs for any arc (i, j) ∈ E isnow made of two vectors of costs, a vector c1 and a vector c2.

    The statement of a bi-objective minimum cost flow problem is of the same form of the single-objectiveminimum cost flow problem, with the addition of a second objective function that uses the second vector ofcosts. The problem can be stated as follows:

    min f1(x) =∑

    (i,j)∈E

    c1ijxij

    min f2(x) =∑

    (i,j)∈E

    c2ijxij

    s.t.∑

    j|(i,j)∈E

    xij −∑

    k|(k,i)∈E

    xki = bi,∀i ∈ V

    lij 6 xij 6 uij ,∀(i, j) ∈ E

    A remark is established to remind that the bi-objective minimum cost flow problem must follow the sameconstraints that the single-objective minimum cost flow problem, this being the capacity constraint and theflow conservation constraint.

    10

  • i j(c1ij ,c2ij)

    [lij ,uij ]

    1

    2

    3

    4

    5

    6

    (3,5)

    [0,10

    ]

    (8,1)[0,5]

    (5,5)[0,4]

    (3,9)

    [0,7]

    (2,1

    )

    [0,3

    ]

    (10,2)

    [0,6]

    (1,4)[0,8]

    (2,7

    )

    [0,8

    ]

    (4,5)

    [0,10

    ]

    Figure 2.4: Example of a bi-objective minimum cost flow network.

    The solving of bi-objective minimum cost flow problems is the main topic of discussion in this work andmethods for its solving shall be presented to the reader in the following chapter.

    2.6 Conclusions

    In this chapter the reader is introduced to the main concepts on the field of multi- objective optimization andnetwork flow problems. The concepts of dominance and efficiency are introduced as both are required tounderstand the algorithms for solving bi-objective minimum cost flow problems that are to be introduced tothe reader in the next chapters. The reader is also introduced to concepts from graph theory, with specialattention given to the concepts of tree and cycle, as they are used in multiple algorithms to perform or to beused as criteria for multiple operations on the graph structure of the problem to be solved. At the end of thischapter the reader now have a basic understanding of the main definitions that shall be used throughout thisdissertation, allowing in the chapter to introduce in a more complete fashion the multiple algorithms in thearea of study of the dissertation.

    11

  • Chapter 3

    Literature review

    In this chapter, it will be presented a review of the scientific literature of the theory and algorithms used in thesolving of multi-objective minimum cost flow problems. Multi-objective minimum cost flow problems are aspecial class of problems that make reference to several different fields of Operations Research, specificallythe fields of network optimization and of multi-objective optimization. Both of these fields have a lot of literaturepublished but few authors have merged both fields and, in comparison, few literature has been publishedabout the theory behind multi-objective minimum cost flows. This chapter takes much of its structure fromHamacher et al. (2007), where the authors also undertake a review of the academic literature on the subjectof multi-objective minimum cost flow problems. The first section presents the current state of the art for thecontinuous multiple objective minimum cost flow problem, going into detail about two specific approaches, theexact based approach and the approximate based approach. The second section presents the current stateof the art for the integer multiple objective minimum cost flow, also presenting some detail by dividing thepresented literature into the same two categories as before: exact and approximate based approaches. In thefinal section, some conclusions are presented relative to the methods and theories presented in the chapter.

    3.1 Multi-objective minimum cost flow problems: Continuous case

    Methods for the continuous multi-objective minimum cost flow problem case deal with problems where theobjective variables are not restricted to any value that is inside the constraint set. This means that theobjective variables can assume as a value any real number.

    3.1.1 Exact based approaches

    In this subsection, it is presented a set of algorithms used in finding the entire set of efficient solutions forbi-objective minimum cost flows.

    Since basic feasible solutions of the multi-objective minimum cost flow problem correspond to spanningtrees and the process of insertion of a non-tree edge into the tree simultaneously with the deletion of a edgein the tree corresponds to a pivot operation, two basic feasible flows are adjacent if their tree representationshave n− 2 arcs in common. The entire set of efficient basic feasible solutions can be obtained starting withany arbitrary efficient basic solution and performing network pivot operations.

    12

  • A generalization of the out-of-kilter method for solving bi-objective minimum cost flows with uniformcapacity for all arcs, i.e., uij = u for all (i, j) ∈ A is presented by Malhotra and Puri (1984). In this method,the efficient frontier is built in a left-to-right fashion starting with the lexicographical minimum flows for the firstobjective function. This set of flows is in-kilter with the first objective function but since the the multi-objectiveproblem does not have an optimal point, some of the arcs will be out-of-kilter for the second objective function.The set of arcs that are in-kilter for the first objective function and out-of-kilter for the second objective functionis called the eligible arc set. For each eligible arc, Pareto cycles are found in the incremental graph of thecurrent flow and added to the current flow. The flows that are obtained are argued by Malhotra and Puri(1984) to be efficient points on the frontier. The authors Lee and Pulat (1991) present an algorithm similar toMalhotra and Puri (1984), introducing a revised version of the out-of-kilter method. The algorithm initiallyassigns uniform weights on both objectives and the resulting single-objective minimum cost flow problemis solved by the out-of-kilter method after which the resulting flow is adjusted by a rerouting procedure ornode adjustment procedure, in order to be basic. From this compromise solution, the frontier is searched tothe left by considering arcs that are out-of-kilter with respect to the first objective function and to the rightby considering arcs that are out-of-kilter for the second objective function. To perform the move from onebasic flow to another, the labelling procedure from the single-criteria out-of-kilter method is modified and aprocedure for ensuring the attainment of a basic feasible flow is applied. For the selection of the arc enteringthe basis, a ratio is determined between reduced costs for the two objectives and the arc with the smallestratio is chosen. This choice corresponds to choosing the arc that gives the steepest slope of the line that linkstwo consecutive points on the efficient frontier. Believing that efficient basic flows necessarily yield extremenon-dominated objective vectors, a neglect to focus on the cases where multiple non-basic arcs have thesame minimal value of the ratio of the two reduced costs leads to non-extreme non-dominated objectivevectors being possibly generated.

    The algorithm presented by Pulat et al. (1992) is conceptually similar to Malhotra and Puri (1984), usingadjacency results to search the frontier in a left-to-right fashion. Apart from the addition of a second set ofnode prices, the main distinction is that algorithm uses the network simplex method to solve the bi-objectiveminimum cost flow problem in its parametric formulation. The authors realize that some basic feasible flowsmay not correspond to extreme non-dominated objective vectors but, since the aim is to provide a completedescription of all the efficient basic feasible flows, in case of multiple arcs yielding the same minimal ratio ofreduced costs, all of them are introduced in the current basic feasible flow.

    The authors Sedeño Noda and González-Martı́n (2000) present an algorithm based in the previous papers.The parametric formulation of the bi-objective minimum cost flow problem is solved in a left-to-right fashionusing the network simplex method. In each iteration, from a list S of arcs yielding the minimum ratio of thereduced costs one arc is selected to enter the basis tree of the current efficient basic feasible flow, resultingin a new efficient basic feasible flow that either corresponds to an extreme non-dominated objective vector ora non-extreme, non-dominated objective vector. In the first case all the other arcs in S fulfill the optimalitycondition for the second objective function and in this case the obtained result is stored. In the latter case,arcs violating the optimality condition still exist in S and one of these is introduced into the basic tree, yieldinga new efficient basic feasible flow. If the list S is empty, a new extreme non-dominated objective vector hasbeen identified and a new list of arcs is built. The algorithm ends when no more arcs are out-of-kilter withrespect to the second objective function.

    The same authors Sedeño Noda and González-Martı́n (2003) present another method, modifying amethod proposed by Aneja and Nair (1979), that in contrast with the already presented methods that exploit

    13

  • the topological connectivity of the efficient set, applies iteratively the weighted-sum problem. The methodstarts by finding the two lexicographical minima. For each two consecutive points identified in the efficientfrontier, a search for an additional extreme non-dominated objective vector located inside the triangle betweenthese two points and the correspondingly ideal point (c1

    ∗, c2∗) is performed using Lagrangian theory and the

    network simplex method. The algorithm finds the extreme point closest to the line between the ideal pointand some appropriately chosen vector z with zk > ck

    ∗, with k = 1, 2. Whenever a new point is found, two new

    search areas are added for future search. The output of the algorithm is the set of all extreme non-dominatedobjective vectors.

    3.1.2 Approximate based approaches

    Several approaches are now presented that instead of performing the computation of the whole efficientfrontier set, present representative subsets of the efficient frontier. These methods approximate the frontieras a whole with provable quality. The rationale for these methods is the general intractability of the efficientfrontier since there may exist an exponential number of extreme non-dominated points, as shown by Ruhe(1988).

    All the approaches are applicable to the bi-objective minimum cost flow problem only and use sets Land U which ”sandwich” the efficient frontier, i.e., Yn ⊆ ((L+ R2=) ∩ (U + (−R

    2=))). Articles that follow the

    sandwich idea for bi-objective minimum cost flows use the algorithm presented in Burkard et al. (1991) forthe approximation of univariate convex functions of the type f : R→ [a, b].

    Figure 3.1: Illustration of the sandwich idea. Hamacher et al. (2007)

    The general idea behind the sandwich method is described as follows: it is assumed that for any t ∈ [a, b]the left and right derivatives f−(t) and f+(t) can be obtained. Now, let a = t1 ≤ t2 · · · < tn = b be a finitepartition of the interval [a, b], the points ti, i = 1, . . . , n are refered as breakpoints. Two piecewise linearfunctions l(t) and u(t) approximate f(t) from above and from below. At any stage, both linear functionssatisfy l(t) 6 f(t) 6 u(t) for all t ∈ [a, b]. The error of the current approximation can be measured withmax{u(t)− l(t) : t ∈ [a, b]}. Now let tr and tl be two consecutive brekpoints in the current partition satisfyingthe condition t∗ ∈ [tl, tr] and where t∗ = argmax{u(t)− l(t) : t ∈ [a, b]}. The interval [tl, tr], is the interval wihthe largest error and a new breakpoint tnew = tr−tl2 is added to the current partition and the value of f(tnew)is found. This choice of the new breakpoint is called interval bisection rule. Finally, both linear functions l(t)

    14

  • and u(t) are updated and this scheme is applied iteratively until the aproximation error falls below a specifiedthreshold. The error of the approximation also decreases quadratically with the number of breakpoints added.WHen applying the interval bisection rule to the bi-objective minimum cost flow, one objective function istreated as the independent variable and the other objective function has the role of f(t), i.e., one objectivefunction is considered a convex function of the other objective function.

    In the paper Ruhe (1988), the author introduces the Hausdorff distance between the upper and lowerapproximation for measure of the error of the aproximation. In contrast to the error measure applied inBurkard et al. (1991), the Hausdorff distance does not favor one objective function over the other. Newbreakpoints are generated according to the chord rule, that was introduced by Aneja and Nair (1979). Givenan interval [tl, tr], a new breakpoint is computed by tnew = argmin(f(t)− k ∗ t) where k is the slope of theupper aproximating function. Using the chord rule, a weighted sum problem has to be solved in each iterationof the algorithm.

    The authors Fruhwirth et al. (1989) introduce two new rules for generating breakpoints, called anglebisection and slope bisection rule. As in the chord rule, the new breakpoint is generated by tnew =argmin(f(t)− k ∗ t), but the choice of k vary with each rule. For the angle bisection, k is equal to the slope ofthe bisector of the outer angle of the triangle formed by (t, u(t)) and (t, l(t)) with t ∈ [tl, tr]. For the slopebisection rule, k is the mean of the slopes of the two functions that determine u(t). For these rules, errordecreases quadratically with the number of breakpoints and an upper bound on the number of evaluationscan be given to achieve a specific accuracy level.

    Yang and Goh (1997) propose a derivative free modfication to the sandwich approach where for eachinterval [ti, ti+1], the upper approximating function is calculated in the same way that before but the lowerfunction consists of a piecewise linear function that is parallel to the upper aproximating function and newbreakpoints are compute with the chord rule. The algorithm is applied to bicreiteria quadratic minimum costflow problems.

    In Ruhe and Fruhwirth (1990), the authors use the sandwich algorithm to compute an ε-optimal approxi-mation for the bi-objective minimum cost flow problem. In their algorithm, the authors modify the rule fordetermining additional breakpoints and instead of solving one minimum cost flow as i all previous algorithms,two problems are solved in each iteration. The authors address two general questions: given a ε value,an ε-optimal set of small cardinality is computed, and an ε-optimal set having high levl of accuracy is alsocomputed.

    3.2 Multi-objective minimum cost flow problems: Discrete case

    All the approaches presented in the following sections address problems with only two objective functionsand make use of two phases in the finding of all integer efficient solutions. In the first phase, all supportedinteger efficient flows are found. In the second phase all unsupported integer efficient flows are found.

    Two types of approaches are presented as in the previous section: approaches that return the wholeefficient set of flows, denominated exact based approaches, and approaches that return a representativesubset of the efficient frontier.

    15

  • 3.2.1 Exact based approaches

    The method presented by the authors at Lee and Pulat (1993) elaborates on the cycle relationship betweenbasic feasible flows and the structure of solutions of bi-objective minimum cost integer flows. Let xt and xt+1

    be two efficient basic solutions with objective vectors equal to yt and yt+1. Both objective vectors can besaid to be topologically adjacent in YN and due to the total unimodularity of the constraint matrix, xt and xt+1

    are integral. Consider the basic tree T of xt and let (u, v) be the non-basic arc whose inclusion in the treeyields xt+1. It is well known that the union of T and (u, v) will contain a unique cycle and let the maximumamount of flow that can be sent along this cycle be equal to δuv ∈ N. The number of supported integernon-dominated non-extreme points on the line connecting yt and yt+1 equals δuv − 1 and these integer pointsare all equidistant from each other.

    Now let (i, j) 6= (u, v) be a non-basic arc in the bases of xt and xt+1 whose arc flow xij is equal to its lowerbound lij . Assuming it is feasible to introduce the arc (i, j) into the bases, let xt

    ′and xt+1

    ′be the resulting

    flows when sending a unit of flow along the cycles created by the introduction of (i, j) to the basic trees ofxt′

    and xt+1′. Then, xt

    ′and xt+1

    ′are efficient flows for a modified problem with respect to an increased

    lower bound l′ij := lij + 1. Noting that the bases xt and xt

    ′are the same, as are the bases xt+1 and xt+1

    ′, is

    possible to introduce the non-basic arc (u, v) in the basis xt′

    to obtain xt+1′.

    It is shown by Lee and Pulat (1993) that the slopes of the lines connecting both yt, yt+1 and yt′

    and yt+1′

    are equal and the number of integer flows lying in these lines differ by at most one. More, the distancesbetween these integer points lying on the parallel lines are the same. Note that the same concepts applyif xij = uij instead of xij = lij . Based on this idea, the authors prove that any integer flow x ∈ XE can beobtained as a supported efficient solution with respect to the modified lower and upper capacities of somearcs.

    The results presented above are used to compute candidate points located inside the triangles defined bytwo consecutive supported non-dominated points. Instead of explicitly testing all combinations of modifiedupper and lower bound capacities, an implicit search for efficient flows is performed. Note that the authorsassume that all extreme non-dominated points and all other supported non-dominated points are known.For each supported integer efficient extreme point it is checked if a non-basic arc (i, j) 6= (u, v) can enterthe basic tree, also generating the integer points on the line that connects yt

    ′to yt+1

    ′. Rules are used

    to eliminate non-basic arcs from consideration that yield candidates being dominated by previously foundcandidates. Thus, not all feasible flows are generated. After all candidates have been generated, a filteringprocess eliminates dominated points from the candidate set and it is claimed that the remaining points in thecandidate set are non-dominated and all non-dominated points have been found.

    The authors in the paper Sedeño Noda and González-Martı́n (2001) claim that the previous algorithm isincorrect because some efficient flows are missed since the algorithm only introduces two non-basic arcs,when more than two are in general needed. The authors present a left-to-right approach starting with theefficient solution that is optimal with respect to objective function c1, to find unsupported efficient integerflows. Each flow is associated with a set of non-basic candidate arcs that, when introduced, might yield anunsupported efficient flow. Filtering rules similar to the ones used by Lee and Pulat (1993) are used in orderto reduce the number of elements in the candidate sets.

    In each iteration a new integer efficient flow xnew is obtained by adding a non-basic arc (i, j) to the basictree of the previously found efficient flow xold. By checking all known efficient flows with non-empty candidatesets, it is guaranteed that Cxnew has the smallest c1 value among undiscovered non-dominated points.Among all combinations of efficient flows and non-basic candidate arcs, the one yielding the non-dominated

    16

  • objective vector with smallest c1 value is chosen. The candidate set of xold is assigned to to xnew while thearc (i, j) is removed from the candidate set of xold, ensuring that combinations of non-basic variables aretaken into account when searching for unsupported non-dominated points. The procedure stops when allcandidate sets are empty.

    In Przybylski et al. (2006), the authors show the incorrectness of the approach suggest by the previousauthors, since the latter assume that the adjacency graph is connected. The authors in Przybylski et al. (2006)provide an example proving that the graph theoretical connectivity property does not hold for bi-objectiveminimum cost integer flow problems and conclude that it is not possible to find all non-dominated objectivevectors for bi-objective minimum cost integer flow problems by a straightforward application of the networksimplex algorithm. The results obtained in Przybylski et al. (2006) show that a different definition of anadjacency graph is needed to establish the graph theoretical connectivity result for these class of problems.

    The author Figueira (2002) proposes a branch-and-bound approach to find all non-dominated objectivevectors for the problem. For each pair of extreme non-dominated objective vectors that define a triangle inthe objective space, the approach allows to find unsupported non-dominated objective vectors that may belocated inside the triangle. Each of these triangles is searched in a left-to-right approach for unsupportednon-dominated objective vectors. The efficient flows found by the algorithm are then stored in a list L withdecreasing c2 values. The branch-and-bound technique is used to solve the ε-constraint problem P1, allowingthe decision whether there are unsupported non-dominated objective vectors having c2 values less thanthe first element and larger than the second element in the list L. All the sub problems occurring in thebranch-and-bound process are stored in a separate list W.

    The problem P1 is the current problem and its continuous relaxation is solved. Let xrel denote the optimalsolution for the relaxed version of P1. If xrel is integer, the optimal solution P1 is found and xrel is known tobe efficient. If not, branching is performed to find an integer solution. Two new problems P2 and P3 are setup by introducing to P1 the constraints luv 6 xuv 6 bxreluv c and bxreluv c+ 1 6 xuv 6 uuv, where the arc (u, v)defines the cycle that connects the two non-dominated extreme points in the triangle of interest. The costs ofthe continuous relaxation of P2 and P3 are computed using the network simplex algorithm and both problemsare added to W and branching is now performed on these two problems. The rules used for fathoming are: asub problem is discarded from consideration when it has no feasible solution or when its cost is greater thanthe cost of the current best solution. If a problem has an integer solution with a cost that is lower than thecurrent best solution, all sub problems with a greater cost are removed from W and the solution of the subproblem becomes the current best solution. The algorithm iterates until an optimal integer solution is foundfor problem P1. When an optimal solution is found, the first element of L is deleted and the solution of theproblem P1, if it is a new efficient solution, is inserted at the head of the list L and the algorithm proceeds.

    3.2.2 Approximate based approaches

    The methods that deal with the determination of the integer flows on the efficient frontier face a conceptuallyeasier task when compared with algorithms looking for all efficient solutions. All integer flows on the efficientfrontier can be found by methods used for solving the continuous case of the bi-objective minimum costnetwork flow problem, only involving considerations of network cycles. The authors Lee and Pulat (1991)extend their own algorithm for determining all the efficient extreme points in decision space for the continuousbi-objective minimum cost network flow to also find all the integer efficient extreme points on the efficientfrontier. While moving from one efficient extreme point, i.e., from xt with objective value yt, to the topologicallyadjacent xt+1 with objective value yt+1, an integer value δuv is sent along the non-basic arc (u, v). All

    17

  • intermediate integer points It, on the frontier line piece [yt, yt+1], are determined as

    It = yt + αyt+1 − yt

    δuv, where α = 1, . . . , δuv − 1

    Nikolova (2001) also presents an algorithm to find all supported integer efficient solutions of a bi-objectiveminimum cost network flow problem with a source node s and a sink node t and a flow of q units are to beshipped from the source node to the sink node. The author proves that each supported efficient solution ofthe bi-objective minimum cost integer flow can be obtained as a sum of a basic feasible solution x with flowvalue 0 in the incremental graph G(x). The author offers no details on how to apply the weighted sum methodto the algorithm.

    3.3 Conclusions

    Academic literature related with bi-objective minimum cost flows divide their approaches in two types, thecontinuous and the discrete case. A greater body of work can be found for the continuous case, wherealgorithms do not have to deal with the solving of problems that have one another cosntraint, this one relatedto the set of values that the objective variables can have as it is the case for discrete case bi-objectiveminimum cost flows. Also, the majority of the literature in the subject is specific for bi-objective minimum costflows, i.e., minimum cost flow problems that only have two objective functions.

    Most of the algorithms presented that aim to find all efficient flows are of theoretical rather than praticalinterest. This can be related to the exponential size of the efficient set and explicit enumeration of all eficientflows is out of the question due to its computational cost. This is also true for implicit descriptions of allefficient flows using only extreme efficient flows, since their number is exponential as well.

    For methods that aim to find a representative set of the efficient flow set, a duality is verified by thedifference in the number of research done for continuous and discrete cases: for the first, algorithms generateresults with quality guarantees while for the latter, a corresponding approach is missing.

    18

  • Chapter 4

    Methodology

    The main goal of this Master Dissertation is the development of an application that is able to solve bi-objectiveminimum cost network flow problems. The present chapter presents the steps that were followed for thedevelopment of the application. The algorithm that was implemented in this application is presented andexplained.

    4.1 Network simplex for minimum cost flow problems

    A description of the network simplex algorithm for minimum cost flow problems is now presented. Thefundamental idea behind the network simplex algorithm is that any feasible solution for the minimum cost flowproblem is capable of forming a spanning tree structure (STS) of the form (T , L, U), where T is a spanningtree of the network and every arc (k, l) ∈ T is an element of the basis of the problem, and L and U are thesets of arcs that for the solution have a given flow at its lower and upper bounds, respectively. A minimumcost flow problem has always at least one optimal STS, according to (Ahuja et al., 1993). It is possible to findan optimal STS by performing a shift from one STS to another, successively.

    The algorithm is initialized by finding an initial feasible STS. At each iteration of the algorithm, twooperations are performed, leading to the exchange of a pair of arcs, with one arc entering the spanning treeT and another arc leaving T . Any STS corresponds to one feasible basic solution and each shift between twodifferent STS with a pivot operation in the standard simplex method. Two vectors are associated with theSTS, these being the flow x, the primal solution of the problem, and the potential π, the dual solution.

    Each iteration can briefly be described as follows: start by finding an arc (k, l) /∈ T that is eligible to enterthe spanning tree T ; Adding the arc (i, j) to T and finding an arc (p, q) coming out of T ; finally, updating theSTS and the primal and dual solution vectors x and π.

    An arc (i, j) /∈ T is said to be eligible to enter T if its reduced cost, c̄ij , is strictly negative and its flow is atis lower bound, i.e., c̄ij < 0 and (i, j) ∈ L, or its reduced cost is strictly positive and its flow is at its upperbound, i.e., c̄ij > 0 and (i, j) ∈ U . The reduced cost of a given arc (i, j), according to Eusébio and Figueira(2009b), is defined as c̄ij = cij − πi + πj , with πi and πj being the dual variables associated with the verticesi and j. Also, for all arcs (i, j) ∈ T the reduced cost is c̄ij = 0.

    19

  • Algorithm 1 Network Simplex Algorithm

    Determine an initial feasible basis structure (T, L, U);Let x be the flow and π be the node potentials associated with the basis;Calculate the reduced costs c̄Let S ← {(i, j) ∈ E : {c̄ij > 0 : (i, j) ∈ L} , {c̄ij < 0 : (i, j) ∈ U}};while S 6= ∅ do

    Select an eligible arc (k, l) ∈ S;Identify the cycle C in T ∪ (k, l);Let µpq ← {rij : {uij − xij : (i, j) ∈ C} , {xij − lij : (i, j) ∈ C}};if (p, q) ∈ L thenx∗ij ← x∗ij + µpq, (i, j) ∈ C and x∗ji ← x∗ji − µpq, (j, i) ∈ C

    elsex∗ij ← x∗ij − µpq, (i, j) ∈ C and x∗ji ← x∗ji + µpq, (j, i) ∈ C

    end ifLet T ← T\ {(p, q)} ∪ {(k, l)};Update the sets L and U ;Update the node potentials π and the reduced costs c̄;Let S ← {(i, j) : {c̄ij > 0 : (i, j) ∈ L} , {c̄ij < 0 : (i, j) ∈ U}};

    end while

    4.2 Bi-objective network simplex for minimum cost flow problems

    As already seen, in the single objective network simplex, each basic feasible set is represented by a treegiven by the set of basic arcs that have a flow lij 6 xij 6 uij . All the other non-basic arcs have a flow withvalue of either xij = lij or xij = uij . In each step, a given non-basic arc is introduced into the basis and ischosen depending on its reduced cost, resulting in a cycle. The amount of flow that is sent through the arc isdetermined by the cycle arc that first reaches its lower or upper bound and the arc that first reaches its limit isthe arc that leaves the basis.

    The algorithm starts by finding one of the two optimal solutions for the bi-objective minimum cost networkflow, ordering the solutions in a lexicographical fashion. It is used a variation of the network simplex algorithm,starting with the initial solution x0 = xlex(1,2). Since there are two cost components associated with each arc(i, j) in the network, in the network simplex algorithm the reduced costs for each arc also consists of the twocomponents c̄1ij and c̄

    2ij .

    The computation of the entering arc is made by starting with the update of the reduced costs for eachindividual arc, with respect to both objective functions. The reduced costs are found by the same way theyare found in the single objective network simplex algorithm. Then, for each non-basic arc, the ratio of thereduced costs is calculated, with the ratio given by µ = min{ c̄

    2ij

    c̄1ij: (i, j) ∈ L with c̄2ij < 0 and c̄1ij > 0,

    c̄2ijc̄1ij

    :

    (i, j) ∈ U with c̄2ij > 0 and c̄1ij < 0}. The non-basic arcs for each the ratio of the reduced costs is equal to thecalculated µ are in the set of non-basic candidate basic-entering arcs.

    By performing a simplex pivot operation, one of the candidate arcs is removed from the candidate set andenters the basis, with an arc leaving the basis. The operation of selecting the leaving arc is made accordingto the already explained concept of cycle generated by the insertion of a non-basic arc into the basic tree.The algorithm finishes when no candidate arc to enter the basis can be found and the lex(2,1) best solutionis obtained and returns the complete set of efficient solutions, i.e., the efficient frontier for the bi-objectiveminimum cost network flow problem.

    20

  • 4.3 Implementation

    The primary objective of this Dissertation, the bi-objective solver, was developed in C programming language,using the CPLEX C Callable Library provided with the IBM CPLEX software. This library provides multiplemethods and functions that can be used to solve linear programming problems, with more especializedfunctions for network flow problems. The developed solver targets the Linux platform but can be used inalmost any UNIX compliant system.

    In order to create an automated testing environment for the developed program, a set of other tools wasused, namely the NETGEN network generator. Also, to provide an intermediate interface between NETGENand the solver, a package of scripts was written allowing full automated testing.

    The multiple components and tools developed in this dissertation shall be presented in the followingsections with special attention to the main output, the solver program.

    4.3.1 NETGEN

    NETGEN is a program used for generating large scale minimum cost network flow problems. It accepts a setof input parameters that parameterize a network flow problem.

    The output of the program is a text file in a specific file format called the DIMACS minimum cost flowformat. The format allows to describe a minimum cost network flow in a text format by assigning a specificmeaning to each line, identified by the starting character of the line in question. Lines starting with a characterp are problem descriptor lines and have the format p min NODES ARCS where min designates that it is aminimum cost problem, NODES is the number of nodes in the generated network and ARCS is the number ofarcs. Lines starting with a character n have the format n INDEX SUPPLY where the INDEX identifies the nodein the graph, starting with index 1, and the SUPPLY is the ammount of flow that flows from the node wherepositive supply indicates a supply node and a negative supply indicates a sink node. Lines starting with theformat a SRC DEST LOW CAP COST designate arcs in the network where SRC and DEST are, respectively, thesource and destination node, LOW and CAP are, respectively, the lower and upper capacity for that arc andCOST is the cost associated with sending an unit of flow throught the arc.

    The networks generated by NETGEN are based on a set of parameters that the user can change with hisnecessities. These parameters are the number of nodes, number of arcs, the number of source nodes, thenumber of sink nodes, the minimum and maximum cost for the arcs, the total supply amount, the number oftransshipment sources and sinks, the minimum and maximum capacity for each node, the percentage ofcapacitated arcs and the percentage of arcs with cost equal to the maximum cost.

    As the original NETGEN only generated networks with a single cost for each arc, the software had tobe modified to generate networks with two costs per arc, so that the generated networks could be used inthe test packages for the developed solver. The modifications had to take into account the stability of theoverall program so that the generated network problems would still have a valid network structure that couldbe solved.

    With the modifications done, an extra column was added to the arc descriptor lines in the DIMACS format,with the extra column holding the second cost for the respective arc. Also, in order to allow the automatedgeneration of multiple tests problems with the same configuration parameters, the program was changed toallow it to read the configuration parameters from a text file.

    21

  • p min 10 19

    n 1 15

    n 10 -15

    a 1 2 0 10 6 11

    a 1 3 0 9 9 10

    a 2 3 0 1 11 1

    a 2 4 0 8 2 5

    a 2 5 0 2 7 9

    a 3 5 0 6 4 2

    a 3 6 0 7 15 10

    a 4 5 0 1 2 9

    a 4 7 0 12 9 6

    a 5 6 0 4 14 3

    a 5 7 0 9 8 14

    a 6 7 0 5 11 7

    a 6 8 0 9 6 5

    a 6 10 0 3 8 10

    a 7 8 0 14 13 11

    a 7 9 0 15 2 3

    a 8 9 0 15 14 9

    a 8 10 0 12 8 4

    a 9 10 0 30 7 8

    Figure 4.1: Example DIMACS format

    4.3.2 Converter

    Since the CPLEX C Callable library used by the developed solver does not support direct reading from theDIMACS file format, a special converter was also developed that allows to translate the DIMACS file format toa format that the CPLEX library can read directly.. The NET file format was chosen because it is also a textformat like DIMACS, allowing for easier interpretation of its contents by an human reader. The converter is ascript written in the Python programming language and returns a translation from the special DIMACS formatwith two costs per arc to the NET format that can be read by the parsing functions of CPLEX.

    The converter was needed in this case because there is no other translator program for these formatsand it was not possible to abdicate from NETGEN or CPLEX, as NETGEN was required to generate thenetwork problems for the test package and CPLEX provides a set of functions that are fundamental to thesingle objective part of the multi-objective problem.

    4.3.3 Solver

    As already stated, the main objective of this dissertation is the development of an efficient solver for bi-objective minimum cost flow problems. In this section, the reader can find all the information related to thedevelopment of the solver program.

    The solver was completly written from scratch in the C programming language, using the IBM CPLEX CCallable Library as the supplier of the functions for the preparation and configuration of the problem and thefunctions used in the single objective part of the larger bi-objective problem. As CPLEX does not supportmulti-objective optimization for linear programming and network flow problems, the multi-objective part of theprogram was entirely written by the student. The main requirements for the solver were:

    • Read the full bi-objective minimum cost flow problem from a descriptive file in text format;

    22

  • • Solve the problem outputing the set of solutions for the problem, the solution values and the completebasis for each solution found;

    • Perform the solving in an acceptable computational time using an acceptable amount of resources.

    Due to the limitations of CPLEX regarding multi-objective optimization for network flows, the input for thesolver is a set of two separated text files in the CPLEX NET format. This file format allows to describe anetwork flow problem using multiple sections for nodes, arcs and costs, but only supports single objectiveproblems which is the reason that we need two files, each of them only being different by having differentcontent in the costs section. The two files are loaded into two separate data structures that will interact witheach other in the problem solving routines.

    As CPLEX allows for a large set of configurations and parameterizations for linear programming problems,some of these had to be tuned in order to preserve the original structure of the problem and not interfere withthe overall algorithm. The following parameters where configured with specific values:

    • Presolve: CPLEX has the capability to apply a process to the input problem that tries to reduce theproblem size by searching for logical reduction oportunities. Although a reduction in problem sizetranslates in a smaller run times, this process destroys the original problem network and interferes withthe bi-objective algorithm. Because of this, Presolve was turned off.

    • Aggregator: CPLEX tries to reduce the problem size by searching for dependent rows and tries toreduce the number of columns and rows in the problem. Because it is also a destructive process, theAggregator was turned off.

    The solver starts finding the optimal solution for the first objective function. In order to obtain thelexicographic minimum optimal solution, a method is used in which a new objective function is createdfrom the original two objective functions. In the new objective function, the costs are calculated using aweighted-sum of the costs of the two original objective functions, where the weights are λ1 for the objectivefunction f1 and λ2 for the objective function f2 and the new objective function is z = λ1 ∗ f1(x) + λ2 ∗ f2(x),with λ1 = 0.9999 and λ2 = 1 − λ1. The basis for the optimal solution for this problem is used as the initialbasis for the multi-objective problem. In this stage the solver also finds the optimal solution for the secondobjective function, as the value will be used as the stopping criteria for the main stage of the multi-objectivealgorithm.

    In the next stage, the solver proceeds to solve the multi-objective problem, having the basis computed inthe previous stage as the initial basis. The solver loops until it reaches the optimal solution for the secondobjective function, effectivly degrading the first objective function value while improving the value of thesecond objective function. At each loop, the solver returns a new efficient solution.

    Each time the solver enters a new iteration, the ratio of the reduced costs is computed for all the arcsusing the method explained in the section 4.2. After the reduced costs ratios are computed, the solver findsthe entering arc by searching for the all the arcs that meet the criteria for entering basis, i.e., have the lowerratio. If two or more arcs have the same reduced costs ratio and that ratio is equal to the lower ratio, the arcthat is chosen to enter the basis is dependent of the position of the arc in the problem structure, as havingthe same ratio means that the improvement in the objective function value is also the same. After the solverfinds the entering arc, the solver uses CPLEX to perform a simplex pivot operation where the entering arcis inserted in the basis and CPLEX performs the computation to find the leaving arc. At the end of each

    23

  • iteration the basis and reduced costs for both objective functions are updated and the solver returns the newfound solution.

    The reader can now find the application of the solver to a simple multi-objective minimum cost flowproblem as a demonstractive example of the solver operation. A graphical representation of the examplenetwork problem used can be seen in figure 4.2. This example network was already presented also in figure4.1 but in the DIMACS representation format.

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    (6,1

    1)[0

    ,10]

    (9,10)[0,9]

    (11,1)

    [0,1]

    (2,5)

    [0,8]

    (7,9)[0,2]

    (4,2)

    [0,6]

    (15,10)[0,7]

    (2,9)

    [0,1]

    (9,6)

    [0,12]

    (14,3)[0,4]

    (8,14

    )

    [0,9]

    (11,

    7)[0

    ,5]

    (6,5)

    [0,9]

    (8,10)

    [0,3]

    (13,11)

    [0,14]

    (2,3)[0,15]

    (14,

    9)[0

    ,15]

    (8,4)[0,12]

    (7,8)

    [0,30]

    Figure 4.2: Example of a bi-objective minimum cost flow network.

    The solver starts by finding the initial solution for the problem using the weighted-sum method alreadypresented to the reader. This solution, illustraded in 4.3, is the optimal solution for the objective function f1.

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    0

    8

    6

    0

    0

    0

    0

    0

    0

    0

    9

    6

    1

    0

    8

    7

    0

    15

    15

    Figure 4.3: Initial solution f1 = 418 and f2 = 531

    To find the entering arc, the reduced costs ratios are computed for each arc that is not in the basis andthat meet the criteria for entering the basis.

    24

  • Arc c̄1 c̄2 Ratio(6, 7) 14 -7 -0.5000(6, 10) 2 -15 -7.5000(8, 9) 21 -3 -0.1429(8, 10) 8 -16 -2.0000

    Table 4.1: Reduced costs c̄1 and c̄2 and the reduced costs ratios for the candidate arcs

    The computed ratios and the reduced costs used to compute the entering arc are presented in table 4.1.The arc with the lowest reduced cost ratio is the selected one for entering the basis. With this information, thesolver performs a simplex pivot operation, requesting that the arc (6, 10) is the entering variable.

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    0

    8

    0

    6

    0

    00

    0

    0

    0

    8

    7

    1

    8

    6

    0

    1

    14

    14

    Figure 4.4: Solution for iteration 1 f1 = 420 and f2 = 516

    In figure 4.4, the reader can find the graph with the solution obtained from the first iteration of the algorithm.With the basis represented in red, arc (6, 10) is now in the basis, having been inserted in the pivot operationas requested after the reduced costs were previously calculated.

    The algorithm continues the iterations until the value of the second objective function reaches its globaloptimum. The reader can find below the remainder iterations of the algorithm for the example program.

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    0

    8

    0 0

    0

    0

    3

    0

    0

    0

    8

    7 4

    3

    8

    4

    0

    12

    12

    Figure 4.5: Solution for iteration 2 f1 = 424 and f2 = 502

    25

  • 1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    0

    8

    0

    6

    0

    0

    3

    0

    0

    0

    8

    7

    1

    8

    2

    4

    0

    12

    12

    Figure 4.6: Solution for iteration 3 f1 = 430 and f2 = 492

    1

    2

    3

    4

    5

    6

    7

    8

    9

    100

    8

    06

    0

    4

    0

    3

    0

    08

    7

    1

    8

    2

    2

    10

    2

    10

    Figure 4.7: Solution for iteration 4 f1 = 452 and f2 = 466

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    0

    8

    0 0

    4

    0

    0

    3

    0

    08

    6 4

    3

    8

    4

    8

    4

    8

    Figure 4.8: Solution for iteration 5 f1 = 468 and f2 = 450

    26

  • 1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    9

    0

    0 0

    4

    0

    0

    3

    0

    06

    6

    4

    5

    6

    6

    6

    6

    6

    Figure 4.9: Solution for iteration 6 f1 = 492 and f2 = 442

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    9

    0

    0 0

    4

    0

    0

    0

    0

    06

    6

    4

    5

    6

    9

    6

    9

    6

    Figure 4.10: Solution for iteration 7 f1 = 510 and f2 = 439

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    9

    0 0

    4

    0

    0

    9

    0

    0

    06

    0

    6

    4

    5

    66

    9

    6

    Figure 4.11: Solution for iteration 8 f1 = 510 and f2 = 439

    The reader can observe that for both iterations 7 and 8, represented in figure 4.10 and 4.11, the values ofthe objective functions f1 and f2 do not change even if the basis for each solution is different.

    27

  • 1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    9

    1

    0 0

    4

    0

    0

    9

    0

    06

    5

    4

    6

    5

    1

    5

    9

    5

    Figure 4.12: Solution for iteration 9 f1 = 524 and f2 = 438

    The complete set of solutions can be found in figure 4.13. The points in the plot represent the set ofsolutions in the efficient frontier that were found by the solver, with each iteration of the solver yielding asolution for the multi-objective problem.

    420 440 460 480 500 520

    440

    460

    480

    500

    520

    540

    CP

    UTi

    me

    (s)

    Figure 4.13: Solution set for example problem

    4.4 Results and Comments

    The complete test package was run in a computer running Linux 3.16 with a Intel Core i5 processor and 8GBof RAM memory. The test package consisted of a set of 32 problems classes and for each class a set of 30network problems was generated using NETGEN, which means that a total of 960 problems were solved bythe solver program. Each class of problem had different generation parameters. The specific parameters canbe found in table 4.2 for each class.

    The two dependent variables of the study are the CPU time measured in seconds and the number ofefficient solutions found. For each variable it is presented the minimum, maximum and average value, thestandard deviation and the median. The independent variables used were the number of nodes, the numberof arcs and the upper capacity for the arcs in the generated network. These variables were chosen becauseof the direct influence that they have in the number of possible solutions and, therefore, in the number of

    28

  • iterations of the algorithm and the running time of the program. All the other parameters that NETGEN canaccept were kept constant in order to control their possible interference in the variables being studied.

    Class Nodes Arcs Upper Capacity1 50 100 202 50 100 603 100 200 204 100 200 605 150 300 206 150 300 607 200 400 208 200 400 609 200 600 20

    10 200 600 6011 300 900 2012 300 900 6013 400 900 2014 400 900 6015 450 1000 2016 450 1000 6017 600 1200 2018 600 1200 6019 700 1400 2020 700 1400 6021 800 1600 2022 800 1600 6023 900 1800 2024 900 1800 6025 1000 2000 2026 1000 2000 6027 1200 2500 2028 1200 2500 6029 1500 3000 2030 1500 3000 6031 2000 4000 2032 2000 4000 60

    Table 4.2: Test classes properties

    The selection of the properties for each test class followed the reasoning that we wanted to explorethe implications of the size of the network problem in the performance of the developed solver program.The classes have a progressively higher number of nodes and arcs beginning at the smaller problems with50 nodes and 100 arcs and finishing with networks with 2000 nodes and 4000 arcs. The upper capacityis alternated between the values of 20 and 60 to allow us to understand the impact that different uppercapacities can have for problems with the same number of nodes and arcs. All the other parameters werekept constant for all solutions. All the 30 classes have 5 nodes acting as supply nodes and other 5 nodesacting as sink nodes, maximum arc cost of 1000 for both objective functions and a total supply of 100.

    The complete set of results obtained from the test package are presented in table 4.3. For every class ofthe 32 classes that make up the full test package a set of descriptive statistics were computed from the rawresults. For both variables of study, the CPU time and the number of solutions found, the minimum value,maximum value, average, median and standard deviation were computed.

    29

  • Type CPU Time SolutionsMin Max Median Average σ Min Max Median Average σ1 0.026 0.055 0.037 0.039 0.008 9 30 16.5 18.533 6.0482 0.026 0.058 0.036 0.038 0.007 10 29 17 17.400 4.6593 0.043 0.092 0.069 0.068 0.012 16 43 29 28.667 7.0254 0.036 0.121 0.084 0.081 0.018 13 48 36.5 34.500 8.3665 0.064 0.193 0.126 0.127 0.029 21 73 41.5 44.867 11.3076 0.074 0.170 0.123 0.124 0.023 25 66 44 45.167 9.7787 0.106 0.374 0.201 0.207 0.052 30 121 62.5 64.733 17.5768 0.157 0.282 0.206 0.213 0.034 47 92 66 67.200 11.5059 0.404 0.774 0.611 0.619 0.079 109 213 170 168.367 21.20310 0.480 0.914 0.628 0.627 0.096 133 239 170 170.067 24.76511 1.035 3.087 1.411 1.520 0.487 206 326 273.5 264.867 33.64512 0.956 1.908 1.297 1.306 0.196 192 305 255.5 253.667 29.54613 1.227 2.143 1.682 1.662 0.209 149 260 200.5 199.133 25.03014 0.775 2.497 1.693 1.728 0.313 92 299 206 209.033 37.58515 1.447 2.492 1.949 1.945 0.248 160 274 212 212.367 27.41316 1.029 3.183 1.706 1.745 0.494 127 346 226 220.700 41.75617 1.147 2.788 1.717 1.769 0.340 148 307 221 222.567 31.96418 1.270 2.359 1.643 1.659 0.250 159 299 210 212.333 32.03219 1.555 3.282 2.430 2.426 0.403 173 367 270 269.733 45.11220 1.797 3.240 2.399 2.428 0.358 199 355 269.5 268.467 37.56121 2.550 4.519 3.287 3.198 0.463 245 378 307.5 304.900 35.14222 2.450 4.871 3.175 3.400 0.594 241 446 314 328.133 45.15523 3.149 6.828 4.042 4.330 0.874 280 456 356 358.133 39.98924 2.381 5.982 4.007 4.219 0.893 212 524 352 355.800 59.66725 4.021 6.398 5.123 5.160 0.636 319 512 406.5 407.367 48.25526 3.799 7.127 5.061 5.134 0.775 269 576 403 398.333 58.58127 6.826 10.042 8.716 8.588 0.874 451 669 565.5 559.533 55.87128 4.938 10.923 8.574 8.418 1.331 327 701 560.5 552.467 81.57229 10.130 14.436 12.011 12.067 0.998 551 783 656 652.833 54.55430 5.841 14.020 10.845 11.111 1.642 314 762 589.5 603.067 88.35831 15.539 26.683 20.513 20.570 2.553 638 1078 824.5 841.933 104.28732 17.052 25.034 20.876 20.954 2.242 714 1004 831.0 853.533 83.849

    Table 4.3: Tests results

    30

  • 0 5 10 15 20 25 30 35

    0

    5

    10

    15

    20

    25

    Test classes

    CP

    UTi

    me

    (s)

    Figure 4.14: Average CPU time for the 32 test classes

    The data presented in figure 4.14 show a clear increase in the amount of CPU time required in average tosolve the problems of each test type. As the number of arcs increases for the network problems, so does thecost of calculating both the reduced costs ratios and the cost of the simplex pivot operation performed atevery iteration of the algorithm. The increase in the amount of CPU time is expected, as the frequency ofthese two operations increases with the size of the problem.

    Also in figure 4.14 the standard deviation is represented for each class. The standard deviation, asa metric for the dispersion of the data, allows a better understanding of the dispersion of the CPU timemeasured for each class. The data shows that the standard deviation grows with the size of the networkproblem, but the reader can find that only for the larger classes of problems some points can be found in therange of more than three standard deviations.

    In figure 4.15 the median of the CPU time is also represented, as the median is considered more robustagainst extreme low and high values and as so, is considered a better descriptor for the typical values.

    0 5 10 15 20 25 30 35

    0

    5

    10

    15

    20

    Test classes

    CP

    UTi

    me

    (s)

    Figure 4.15: Median of the CPU time for the 32 test classes

    31

  • 0 5 10 15 20

    0

    5

    10

    15

    20

    Mean

    Med

    ian

    Figure 4.16: Mean vs Median for CPU time of the 32 test classes

    The data for the CPU time shows that for the first ten classes, the CPU time used solving the problemnever exceeded 1 second of time even if some dispersion is accounted. For the classes 11 to 26 the solvernever used more than 10 seconds of CPU time and only the classes higher than 26 required higher amountsof CPU time with a sharp increase in the amount required by the solver for these classes. The median andthe average were found to be always very similar which can mean that the data is free of extreme outliers,even if the standard deviation is increasingly larger.

    The mean and median values of the number of solutions found for the 32 problem classes can be foundin figures 4.17 and 4.18. The behaviour of the number of solutions found by the solver is similar to the thebehaviour of the CPU time used by the solver, as both are correlated to the number of iterations that thealgorithm performs.

    The results obtained show an increase number of solutions found on average for the increase in the sizeof the problems solved. The increase is expected but a small observation is made for the results obtained forthe classes in the range from 9 to 12, in each a much larger amount of solutions were found by the solver.The standard deviation, also shown in figure 4.17, is not much larger than the standard deviation for otherclasses which indicates that the data have the same degree of dispersion.

    32

  • 0 5 10 15 20 25 30 35

    0

    200

    400

    600

    800

    1,000

    Test classes

    Sol

    utio

    nsfo

    und

    Figure 4.17: Mean number of solutions found for the 32 test classes

    The median of the number of solutions found for the classes in the range from 9 to 12 also is much largerthan the median for the classes immediatly before and after these. An inspection of the parameters for theseclasses show that for classes 9, 10, 11 and 12 the number of arcs for these problems was increased at agreater rate than for classes before these, with classes 9 and 12 having a number of arcs three times greaterthan the number of nodes. Also is noteworthy that although the number of solutions is much larger thanexpected, the CPU time for these classes does not show an increase at an higher rate.

    0 5 10 15 20 25 30 35

    0

    200

    400

    600

    800

    Test classes

    Sol

    utio

    nsfo

    und

    Figure 4.18: Median number of solutions found for the 32 test classes

    As the reader can find in figure 4.19, the median and the average values for the number of solutions foundfor the 32 test classes is very similar for each class, indicating that the data lacks extreme points and thecentral tendency of the results for the variable.

    33

  • 0 200 400 600 800

    0

    200

    400

    600

    800

    Mean

    Med

    ian

    Figure 4.19: Mean vs Median for number of found solutions of the 32 test classes

    In figure 4.20 the reader can find a plot of the average values of the CPU time for the 32 test classesagainst the average values for the number of solutions found. The figure shows the expected increase inCPU time with the increase number of solutions found as both variables are correlated as already explained.

    0 200 400 600 800

    0

    5

    10

    15

    20

    Solutions found

    CP

    UTi

    me

    (s)

    Figure 4.20: Average number of solutions versus average CPU time for the 32 test classes

    4.5 Conclusions

    In this chapter the development of the solver for bi-objective minimum cost flow problems was presented, aswas the test package to which the solver was submited and the results that were obtained.

    At a first stage, the network simplex algorithm is introduced to the reader in both its single and bi-objectiveformulation. The algorithm in both forms is explained in detail as it is used next as the algorithm implementedby the solver to obtain the solutions for the problems.

    Next, the reader is introduced to the solver program and the tools that are developed and used in orderto submit the solver to the test package. The solver internal structure and functioning is explained and the

    34

  • reader is also introduced to the CPLEX library that provides most of the methods required for the singleobjective part of the problem.

    At a third stage, the results of the test package are presented to the reader with a set of descriptivestatistics that provide a summary of the overall results obtained from the 960 individual tests that were run.With the results, some conclusions are drawn linking some of the observed phenomena to known causes.

    The results obtained show that an implementation of the algorithm is able to solve medium to largesized bi-objective minimum cost flow problems in an acceptable computational time while still yielding anhigh number of solutions for the problem, providing a good description of the efficient frontier for the solvedproblems.

    35

  • Chapter 5

    Final conclusions and future work

    In this dissertation an implementation of an efficient solver for bi-objective minimum cost flow problems waspresented to the reader. The first chapters allowed us to understand the concepts that are fundamental forsolving this type of multi-objective problems, both from the field of multi-objective optimization and the field ofnetwork flows. The concepts of dominance and efficient solution were introduced to the reader and explainedin detail as the finding of the set of efficient solutions for bi-objective minimum cost flow problems is the mainpurpose of the developed solver.

    In the literature review, we reviewed the different approaches that are suggested for the problem. Boththe continuous and the discrete case of the multi-objective problem was studied in the literature review andfor each case, both exact based and approximate based approaches were identified and the algorithmsproposed by the authors were presented. Although the problem of this dissertation has many applicationsin real worl problems, the literature is scarce for these problems and most of the work presented is purelyacademic and lacks an implementation of the proposed algorithms.

    For the solver implemented in this dissertation, the bi-objective network simplex algorithm was used asthe algorithm for solving the bi-objective problem. In order to find an initial basis for the bi-objective, the solveruses a modified version of the bi-objective problem solved as a single objective problem with the weightedsum of the objective functions. Using this method the solver is able to find the lexicographic minimum solutionfor the first objective function and uses the solution’s basis as the initial basis for the bi-objective problem.This is described to the reader in greater detail in the last chapter of this dissertation, where the reader canalso find the results from the test package to which the solver was submited. This test package was used toprovide some data about the performance capabilities of the developed solver software for medium and