99
Fernando Bernardes de Oliveira Cooperative Coevolutionary Models for the Multi-Depot Vehicle Routing Problem Belo Horizonte–MG December, 2015

Cooperative Coevolutionary Models for the MDVRP

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cooperative Coevolutionary Models for the MDVRP

Fernando Bernardes de Oliveira

Cooperative Coevolutionary Models for theMulti-Depot Vehicle Routing Problem

Belo Horizonte–MG

December, 2015

Page 2: Cooperative Coevolutionary Models for the MDVRP

Fernando Bernardes de Oliveira

Cooperative Coevolutionary Models for the Multi-Depot

Vehicle Routing Problem

A thesis submitted to Escola de En-genharia, Universidade Federal de MinasGerais, for the degree of Doctor in Electri-cal Engineering

Universidade Federal de Minas Gerais – UFMG

Graduate Program in Electrical Engineering – PPGEE

Supervisor: Prof. Dr. Frederico Gadelha Guimarães

Belo Horizonte–MG

December, 2015

Page 3: Cooperative Coevolutionary Models for the MDVRP

Fernando Bernardes de Oliveira

Cooperative Coevolutionary Models for the Multi-DepotVehicle Routing Problem

A thesis submitted to Escola de En-genharia, Universidade Federal de MinasGerais, for the degree of Doctor in Electri-cal Engineering

PhD thesis approved in Belo Horizonte–MG– December 7th, 2015:

Prof. Dr. Frederico Gadelha GuimarãesSupervisor

Prof. Dr. Pierre Georges Bernard Collet

Prof. Dr. Marcone Jamilson FreitasSouza

Prof. Dr. Jaime Arturo Ramírez

Prof. Dr. Martín Gómez Ravetti

Belo Horizonte–MGDecember, 2015

Page 4: Cooperative Coevolutionary Models for the MDVRP

I would like to dedicate this work to my parents, José and Jamile, my brother Ricardo,my sister Ana Marcele, and my beloved wife Ana Flávia.

In loving memory of my grandmother Maria Joaquina.

“Voici mon secret. Il est très simple: on ne voit bien qu’avec le cœur.L’essentiel est invisible pour les yeux.”

— Antoine de Saint-Exupéry, Le Petit Prince.

Page 5: Cooperative Coevolutionary Models for the MDVRP

Acknowledgements

I would like to acknowledge some of the many people who have inspired, sup-ported, and educated me over the years.

My parents, José and Jamile, for doing their best. I would not survive withouttheir love and education. Unfortunately, they did not have the same educational oppor-tunities in life that I have had. But even so, they did everything they could and I couldlive my dreams. I love you all days of my life!

I would like to thank my brother Ricardo, my sister Ana Marcele, and their part-ners Lúcia and Paulo, respectively, my uncle Antônio and my aunt Constância. Theysupport me and encourage me each day with love, happiness, patience and specialmeetings. I love you!

My beloved wife Ana Flávia who follows closely my academic life since masterdegree course and bravely resisted so far. I would not have gotten here without herencouragement, patience, support and, above all, love. You are so special and I loveyou!

My huge friends Chrystian, Denise, Igor and my godson Artur. They alwayssupport and cheer me, and understand my absence. I love you!

I am very fortunate to have Prof. Dr. Frederico as my supervisor. He participatedin my examining board of master degree and since then I wanted, maybe pretentiousor not, to be his PhD student. One day, I found out that he was at UFMG and I sent tohim an email enquiring about projects. He kindly received me and we started workingtogether. In the beginning, he was a professor, who taught me academic subjects, suchas evolutionary methodologies, parallel and GPU techniques and so on. Over time, hebecame a huge friend, showing me how important it is to have friends around, andhow good it is to share a bottle of wine and a nice meal. As a supervisor, he teachesme how to be a better professor and to praise students and their works. Moreover, heimproved my abilities as a person, as a student and as professional. This thesis is theresult of his inspiration, dedication, knowledge and patience. As a Japanese proverbsays: “Better than a thousand days of diligent study is one day with a great teacher.”.And as I always say to you, thanks a lot Fred!

I had great professors in this period of my life, I would like to thank Prof. Dr.Marcone with whom I learned with pleasure about optimization problems, heuristic andmetaheuristic techniques at CEFET-MG during my master degree course. I would alsolike to thank Prof. Dr. Felipe Campelo, who allowed the use of the computing environ-

Page 6: Cooperative Coevolutionary Models for the MDVRP

ment in the first set of experiments. Moreover, I could learn from him about science,statistical experiments, and not least the life and work of Carl Sagan, who showed methe real light. Finally, I would like to thank the other members of my examining board,Prof. Dr. Jaime Arturo Ramírez and Prof. Dr. Pierre Collet, who dedicated time andeffort to improve this work and contribute to my academic life.

I would like to thank everyone who helped me and my wife in our experience inMontreal, especially the dear friends André and Rodrigo, Rodrigo Pedrosa and Min Li.You are all fantastic friends!

To Prof. Potvin, who accepted me as his student at Université de Montréal,during my stay in Montreal, and contributed a lot to this work and to my academiceducation. We had excellent discussions.

To my friends and colleagues in the Instituto de Ciências Exatas e Aplicadas(ICEA) at Universidade Federal de Ouro Preto (UFOP), who were always kind andhelpful with me, especially during the doctoral period.

I have to thank Hugo and Brígida: two not human beings that make me feelbetter and better every day, and loved all the time. I would like to be like you one day:make my best to someone without wanting anything in return – just love.

Finally, I would like to thank the financial support from CAPES Foundation, Min-istry of Education of Brazil, grant BEX 0295/14-0, for awarding me the scholarshipfor the visit period at CIRRELT (Centre interuniversitaire de recherche sur les réseauxd’entreprise, la logistique et le transport) in Université de Montréal (Québec), Canada. Iwould like to thank the support from Pró-reitoria de Pós-graduação e Pesquisa (PROPP)of UFOP, which awarded me financial support and liberated me from teaching activities.

Page 7: Cooperative Coevolutionary Models for the MDVRP

“Science is a cooperative enterprise, spanning the generations.It’s the passing of a torch from teacher, to student, to teacher.

A community of minds reaching back to antiquityand forward to the stars.”

Neil deGrasse Tyson (1958 – )American astrophysicist and author.

in: Cosmos, A Space Time Odyssey (2014) – Ep. 1.

Page 8: Cooperative Coevolutionary Models for the MDVRP

Abstract

The Multi-Depot Vehicle Routing Problem (MDVRP) is an important variant of the clas-sical Vehicle Routing Problem (VRP), where the customers can be served from a num-ber of depots. This work introduces a cooperative coevolutionary algorithm to minimizethe total route cost of the MDVRP. Coevolutionary algorithms are inspired by the simul-taneous evolution process involving two or more species. In this approach, problemscan be decomposed into smaller subproblems and each part is evolved separately.After that, those parts are combined to create a complete solution to the original prob-lem. This work presents a problem decomposition approach for the MDVRP in whicheach subproblem becomes a single depot VRP and evolves independently in its do-main space. Customers are distributed among the depots based on their distance fromthe depots and their distance from their closest neighbor. A population is associatedwith each depot where the individuals represent partial solutions to the problem, thatis, sets of routes over customers assigned to the corresponding depot. The fitness ofa partial solution depends on its ability to cooperate with partial solutions from otherpopulations to form a complete solution to the MDVRP. As the problem is decomposedand each part evolves separately, this approach is strongly suitable to parallel envi-ronments. Therefore, a parallel and asynchronous evolution strategy environment witha variable length genotype coupled with local search operators is proposed. A largenumber of experiments have been conducted to assess the performance of these ap-proaches and our model is compared with the best heuristics proposed for the MDVRP.Two versions of our method are presented. The first version is developed consideringa CPU multithreading environment. The results suggest our coevolutionary algorithmproduces competitive solutions when compared with the best known solutions, evenimproving some of them. Besides, it is faster than the best method reported in the liter-ature. The benefit of our approach comes from its ability to decompose complex prob-lems into simpler subproblems and evolve solutions to the subproblems in parallel. Thesecond version of our method is developed using GPU computing. It is able to producecompetitive solutions in less time when compared to the CPU version only. The aver-age speedup is equal to 8 times over all benchmark instances. Finally, the results ofboth environments suggest the proposed coevolutionary algorithms in a parallel envi-ronment are able to produce high-quality solutions to the MDVRP in low computationaltime.

Key-words: Multi-depot vehicle routing problem. Vehicle routing. Cooperative coevolu-tionary algorithm. Evolution strategies. GPU computing. GPGPU.

Page 9: Cooperative Coevolutionary Models for the MDVRP

List of Figures

Figure 1 – MDVRP solution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Figure 2 – Cooperative coevolutionary algorithm with problem decomposition. . 29Figure 3 – Pairing example – populations 𝐴 and 𝐵 . . . . . . . . . . . . . . . . 30Figure 4 – Pairing example – All versus All . . . . . . . . . . . . . . . . . . . . . 30Figure 5 – Pairing example – Random . . . . . . . . . . . . . . . . . . . . . . . 30Figure 6 – Pairing example – All versus best . . . . . . . . . . . . . . . . . . . . 31Figure 7 – Pairing example – Tournament sampling . . . . . . . . . . . . . . . . 31Figure 8 – Pairing example – Shared sampling with All versus All strategy . . . 32Figure 9 – Problem decomposition: Assignment of customers to depots. . . . . 37Figure 10 – Cooperative coevolutionary model for the MDVRP. . . . . . . . . . . 39Figure 11 – Giant tour representation and the obtained routes . . . . . . . . . . . 40Figure 12 – Architecture of the parallel modules in CoES. . . . . . . . . . . . . . 42Figure 13 – Population Evolve module. . . . . . . . . . . . . . . . . . . . . . . . . 43Figure 14 – Complete Solutions Evaluate module. . . . . . . . . . . . . . . . . . 46Figure 15 – Repair procedure – remove duplicates . . . . . . . . . . . . . . . . . 47Figure 16 – Repair procedure – insert customer . . . . . . . . . . . . . . . . . . 47Figure 17 – Elite Group module. . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Figure 18 – Path Relinking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Figure 19 – Boxplots of the two main factors . . . . . . . . . . . . . . . . . . . . 51Figure 20 – Boxplots of interactions . . . . . . . . . . . . . . . . . . . . . . . . . 52Figure 21 – Average gap based on the ratio between customers and depots. . . 56Figure 22 – Average gap based on the ratio between customer assignments and

depots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56Figure 23 – CoES solution to the MDVRP – instance P01. . . . . . . . . . . . . . 58Figure 24 – CPU and GPU comparison . . . . . . . . . . . . . . . . . . . . . . . 62Figure 25 – Grid of Thread Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . 64Figure 26 – Mutation on the GPU. . . . . . . . . . . . . . . . . . . . . . . . . . . 69Figure 27 – Kernel executing timeline. . . . . . . . . . . . . . . . . . . . . . . . . 69Figure 28 – Local search on the GPU. . . . . . . . . . . . . . . . . . . . . . . . . 70Figure 29 – Elite Group with GPU computation. . . . . . . . . . . . . . . . . . . . 72Figure 30 – Local search on the GPU in EG module. . . . . . . . . . . . . . . . . 72Figure 31 – NVIDIA GeForce GTX 750 – Device information . . . . . . . . . . . 74

Page 10: Cooperative Coevolutionary Models for the MDVRP

List of Tables

Table 1 – Selected parameter values . . . . . . . . . . . . . . . . . . . . . . . . 50Table 2 – Significant factors and interactions . . . . . . . . . . . . . . . . . . . . 51Table 3 – Final parameter values . . . . . . . . . . . . . . . . . . . . . . . . . . 53Table 4 – CoES(𝜆 = 𝜇): results . . . . . . . . . . . . . . . . . . . . . . . . . . . 54Table 5 – CoES(𝜆 = 𝜇): comparison with results of the literature – Best values . 55Table 6 – CoES(𝜆 = 𝜇): comparison with results of the literature – Mean values 57Table 7 – Comparison of run time . . . . . . . . . . . . . . . . . . . . . . . . . . 59Table 8 – Summary of VRP with GPU applications . . . . . . . . . . . . . . . . 67Table 9 – CoES and CoEs results . . . . . . . . . . . . . . . . . . . . . . . . . . 75Table 10 – CoES and CoEs: gap with previous results . . . . . . . . . . . . . . . 76Table 11 – CoES and CoEsGPU: comparison of run time . . . . . . . . . . . . . 78

Page 11: Cooperative Coevolutionary Models for the MDVRP

List of Algorithms

1 General structure of a Coevolutionary algorithm . . . . . . . . . . . . . . 32

2 Assignment of customers . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3 CoES – general scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4 Populations initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

5 Start Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

6 Local search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

Page 12: Cooperative Coevolutionary Models for the MDVRP

List of abbreviations and acronyms

ACO Ant Colony Optimization

ALU Arithmetic Logic Unit

API Application Programming Interface

CA Coevolutionary algorithm

CSE Complete Solutions Evaluate

CUDA Compute Unifed Device Architecture

CVRP Capacitated Vehicle Routing Problem

DCVRP Distance-constrained Capacitated VRP

DE Differential Evolution

EA Evolutionary algorithms

EC Evolutionary Computation

EG Elite Group

ES Evolution Strategy

GA Genetic Algorithm

GPGPU General-Purpose computation on Graphics Processing Units

GPU Graphics Processing Unit

ILS Iterated Local Search

LS Local Search

MDVRP Multi-Depot Vehicle Routing Problem

NVCC NVIDIA Cuda Compiler

NS Neighborhood Structures

OpenCL Open Computing Language

PE Population Evolve

Page 13: Cooperative Coevolutionary Models for the MDVRP

PR Path Relinking

PSO Particle Swarm Optimization

QAP Quadratic Assignment Problems

RCL Restricted Candidate List

RMI Remote Method Invocation

SA Simulated Annealing

SVRPDSP Single Vehicle Routing Problem with Deliveries and Selective Pickups

TS Tabu Search

TSP Traveling Salesman Problem

UM Unified Memory

VND Variable Neighborhood Descent

VRP Vehicle Routing Problem

VRPTW VRP with Time Windows

Page 14: Cooperative Coevolutionary Models for the MDVRP

Contents

1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.2 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.3 Structure of the thesis . . . . . . . . . . . . . . . . . . . . . . . . . 18

2 THE MULTI-DEPOT VEHICLE ROUTING PROBLEM . . . . . . . . . 202.1 Formulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.2 Literature review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.2.1 Heuristics for the Multi-Depot Vehicle Routing Problem . . . . . . . . 222.2.2 Parallel applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.3 Final considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3 COEVOLUTIONARY ALGORITHMS . . . . . . . . . . . . . . . . . . 253.1 Fundamentals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.1.1 Competitive coevolution . . . . . . . . . . . . . . . . . . . . . . . . . . 253.1.2 Cooperative coevolution . . . . . . . . . . . . . . . . . . . . . . . . . 263.2 Coevolution in Evolutionary Computation . . . . . . . . . . . . . . 273.2.1 Cooperative Coevolutionary algorithms . . . . . . . . . . . . . . . . . 283.2.2 What does fitness mean? . . . . . . . . . . . . . . . . . . . . . . . . . 283.2.3 Pairing and fitness evaluation . . . . . . . . . . . . . . . . . . . . . . 293.2.4 General structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.3 Literature review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.4 Final considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4 COOPERATIVE COEVOLUTIONARY MODEL FOR THE MDVRP . . 364.1 Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.2 Parallel evolution strategy . . . . . . . . . . . . . . . . . . . . . . . 394.2.1 Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.2.2 Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.2.3 Parallel modules and coordination . . . . . . . . . . . . . . . . . . . . 414.2.4 Population Evolve (PE) module . . . . . . . . . . . . . . . . . . . . . 424.2.5 Complete Solutions Evaluate (CSE) module . . . . . . . . . . . . . . 454.2.6 Elite Group (EG) module . . . . . . . . . . . . . . . . . . . . . . . . . 474.3 Computational results . . . . . . . . . . . . . . . . . . . . . . . . . . 494.3.1 Parameter settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504.3.2 Comparison with other methods . . . . . . . . . . . . . . . . . . . . . 52

Page 15: Cooperative Coevolutionary Models for the MDVRP

4.3.3 Comparison of run times . . . . . . . . . . . . . . . . . . . . . . . . . 584.4 Final considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

5 COEVOLUTIONARY GPU MODEL FOR THE MDVRP . . . . . . . . 615.1 GPU concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625.1.1 GPU architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625.1.2 General-Purpose computation on Graphics Processing Units . . . . . 625.1.2.1 Compute Unifed Device Architecture – CUDA . . . . . . . . . . . . . . . . . . 63

5.1.2.2 OpenCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

5.2 Literature review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655.2.1 GPU applications to VRP and MDVRP . . . . . . . . . . . . . . . . . 665.3 Parallel evolution strategy on the GPU . . . . . . . . . . . . . . . . 675.3.1 Preliminary study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675.3.1.1 Mutation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

5.3.1.2 Local search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

5.3.2 The proposed parallel GPU environment . . . . . . . . . . . . . . . . 715.4 Computational experiments . . . . . . . . . . . . . . . . . . . . . . 735.4.1 Comparison between CoES and CoEsGPU . . . . . . . . . . . . . . 745.4.2 Comparison of run times . . . . . . . . . . . . . . . . . . . . . . . . . 775.5 Final considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

6 CONCLUSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806.1 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806.2 Limitations of the proposed method . . . . . . . . . . . . . . . . . 826.3 Contributions of this thesis . . . . . . . . . . . . . . . . . . . . . . 836.4 Suggestions for future works . . . . . . . . . . . . . . . . . . . . . 84

COLOPHON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

Page 16: Cooperative Coevolutionary Models for the MDVRP

15

1 Introduction

“Science is more than a body of knowledge;it is a way of thinking.”

— Carl Sagan (1934 – 1996), in: The Demon-HauntedWorld: Science as a Candle in the Dark.

Complex optimization problems might be represented by the difficulty for build-ing solutions, fitness evaluation, exploration of the search space, solution representa-tion, among others. To obtain the optimal solution of these problems requires a massivecomputational effort and it might be impracticable, as well as the available time wouldbe insufficient (ALBA et al., 2009)

A vehicle routing problem (VRP) is a generic name for a large class of combina-torial optimization problems (DOERNER; SCHMID, 2010; MONTOYA-TORRES et al.,2015). The goal is to find a set of routes for serving customers with a certain number ofvehicles in a given environment. In the classical VRP, a problem instance is specifiedby a set of customers to be served with their corresponding locations and demandsand other primary information such as the distance between two customers, distancebetween a customer and the depot, number of vehicles and vehicle capacity (BAL-DACCI; MINGOZZI, 2009). In a solution, each vehicle leaves the depot and executesa route over a certain number of customers before returning to the depot, while ensur-ing that the total demand on the route does not exceed the vehicle capacity. In somecases, a maximum route duration (or distance) constraint is enforced. The Multi-DepotVehicle Routing Problem (MDVRP) is a variant of the classical VRP in which more thanone depot is considered (CORDEAU; MAISCHBERGER, 2012; VIDAL et al., 2012;SUBRAMANIAN; UCHOA; OCHI, 2013; ESCOBAR et al., 2014).

Evolutionary algorithms (EA) are metaheuristics inspired in natural selectionand are efficient strategies for solving optimization problems. In NP-hard problems, EAcan yield efficient and competitive solutions in acceptable time (NEDJAH; MOURELLE;ALBA, 2006). Traditional evolutionary algorithms use a set named population to storedata structures which represent solutions to the problem. Besides, the performance ofevolutionary algorithms is strongly dependent on the representation used.

According the problem characteristics, a decomposition might be applied to di-vide the original problem into smaller subproblems. Each subproblem is evolved sepa-rately and those parts are combined to create a complete solution to the original prob-lem. This strategy uses a special class of EA, namely Coevolutionary algorithms (CAs).

Page 17: Cooperative Coevolutionary Models for the MDVRP

Chapter 1. Introduction 16

Those algorithms are inspired by the simultaneous evolution process involving two ormore species. The interaction between species defines the type of coevolution. It iscooperative when populations have to collaborate with others. When populations com-pete between them, the interaction is competitive (ENGELBRECHT, 2007). Coevolu-tionary algorithms are different from traditional EA in the evaluation process (FICICI,2004). The fitness of individuals depends on that interaction and it might change evenif individuals are not being modified.

As solutions to subproblems are evolved separately, coevolutionary models aresuitable to parallel environment. The parallelism might improve the evolutionary pro-cess and reduce the response time. There are several computational methods andmanners to use parallelism, as CPU multithreading, GPU computing, parallel distributedprocessing, among others.

This study proposes a coevolutionary and parallel environment to solve the MD-VRP problem. The motivation of this work is presented in Section 1.1. The main andspecific objectives are defined in Section 1.2. Section 1.3 presents the structure of theother parts of this thesis.

1.1 Motivation

The number of studies on the MDVRP is rather limited when compared to theclassical VRP. A survey of these studies, based on either exact methods or heuris-tics, can be found in Montoya-Torres et al. (2015). In recent years, evolutionary-basedmetaheuristics proved to be the most popular approach to address this problem, asdescribed in Section 2.2. But, in spite of this popularity, no coevolutionary algorithmhas yet been proposed in the literature for the MDVRP. As the problem can be easilydecomposed into a number of single-depot VRPs, with a population of partial solutionsassociated with each depot, a coevolutionary approach might be also useful. Eachpartial solution or individual in a population corresponds to vehicle routes defined overthe subset of customers assigned to the corresponding depot. Although each popula-tion can evolve separately, this evolution is guided by the ability of each individual toform good complete solutions with individuals from the other populations. This is theproblem-solving approach proposed in this work.

In the past decade, although various methods have been proposed to solve theVRP, few studies exist for minimizing the route cost in MDVRP (MONTOYA-TORRESet al., 2015; TU et al., 2014; RAY et al., 2014; RAHIMI-VAHED et al., 2015; KUO;WANG, 2012; SALHI; IMRAN; WASSAN, 2014; CONTARDO; MARTINELLI, 2014).There are various methods which used mathematical programming to solve MDVRP

Page 18: Cooperative Coevolutionary Models for the MDVRP

Chapter 1. Introduction 17

in different aspects and the first paper proposed in this area was by Laporte et al. in1984, who formulated the MDVRP as an integer linear program (LAPORTE; NOBERT;ARPIN, 1984). Some mathematical formulations have been proposed by Baldacci &Mingozzi (2009) to solve different groups of VRP including the MDVRP. On the otherhand, Adelzadeh, Asl & Koosha (2014) have combined mathematical formulation withfuzzy-based method to use in a specific case of the MDVRP. There are some othermethods that introduce a mathematical model for the MDVRP, for instance, to solvethe heterogeneous fleet with integer linear programming (ISAZA; FRANCO; PADILLA,2012). Dondo, Mendez & Cerda (2003) investigated the minimization of the total routecost based on a mixed integer linear programming. The location routing problem inMDVRP is studied by Contardo, Cordeau & Gendron (2014), while Li, Li & Pardalos(2014) employed linear programming to consider shared depots in the MDVRP.

Some heuristic algorithms exist in the literature in order to soft the NP-hardnesscharacteristic of the MDVRP. Min, Current & Schilling (1992) have published a heuris-tic method based on problem decomposition. With regard to the minimization of therouting cost, an insertion based heuristic method is proposed by Salhi & Nagy (1999),and next the same authors improved their method for solving pickup and delivery prob-lem in the MDVRP (NAGY; SALHI, 2005). Some other heuristic algorithms are listedas follows: modeling the MDVRP as a binary optimization problem has been proposedby Jin et al. (2004). Cost minimization for the heterogeneous fleet using a set cover-ing heuristic has been presented in Irnich (2000). Travel distance and cost reductionwith a heuristic based on integer programming is discussed in Gulczynski, Golden &Wasil (2011). Determining a near optimal vehicle fleet size using a heuristic algorithmis presented in Rahimi-Vahed et al. (2015).

Given the extensive application of meta-heuristic algorithms to deal with NP-hard problems, most recent methods for the MDVRP have been focused on using suchalgorithms. The first usage of a meta-heuristic algorithm in MDVRP dates back to 1996,when Renaud et al. proposed a version of the MDVRP with maximum duration of routesand vehicle capacity (RENAUD; LAPORTE; BOCTOR, 1996). The most popular evo-lutionary algorithm in the literature for solving different objectives in the MDVRP is theGenetic Algorithm (GA). Generally, GA creates its initial population based on the pre-defined objective function in MDVRP, then this population evolves toward better, nearoptimal configurations through the successive application of heuristic genetic opera-tors. Karakatic & Podgorelec (2015) published a comprehensive survey on differenttypes of GA applied to the MDVRP and some other algorithms such as the methodproposed by Liu (2013), which is based on the combination of simulated annealing,bee colony optimization and GA. Vidal et al. (2014) suggested a hybrid GA with localsearch and dynamic programming for the classical MDVRP with unconstrained vehiclefleet. Particle Swarm Optimization (PSO) is another type of meta-heuristic algorithm

Page 19: Cooperative Coevolutionary Models for the MDVRP

Chapter 1. Introduction 18

that has been also applied to solve the MDVRP (WENJING; YE, 2010).

To the best of our knowledge, there is no significant contribution in the literatureto reduce the route cost in the MDVRP by using a coevolutionary algorithm. A coevo-lutionary algorithm is a special kind of evolutionary algorithm in which there are twoor more populations evolving with interdependency. This study aims to propose a par-allel coevolutionary environment which finds competitive solutions to the MDVRP. Thebenefit of this approach is to decompose large problems into subproblems and evolvesolutions to the subproblems in parallel. The quality of the complete solution wouldguide the coevolution of the populations.

1.2 Objectives

The main objectives of this thesis are to define a coevolutionary model to theMDVRP and to propose parallel approaches for the model. The specific objectives arepresented next.

1. Definition of coevolutionary model to the MDVRP. This model needs to decom-pose the original problem and to present strategies to evolve each part separately.This thesis will also identify how those parts are combined using a competitive orcooperative interaction to create a complete solution to the MDVRP.

2. Proposition of a parallel environment to support the coevolutionary model. Thisthesis will present parallel modules that run specific parts of the evolutionaryprocess under a CPU multithreading approach.

3. Incorporation of GPU computing to the parallel environment. A preliminary studywill be presented to define which parts might be performed into the GPU.

4. Implementation, test and validation of the proposed coevolutionary model andtheir parallel environments through computational experiments and benchmarkinstances of the MDVRP available in the literature.

1.3 Structure of the thesis

The rest of this thesis is structured as follows. Chapter 2 presents the Multi-Depot Vehicle Routing Problem, its mathematical formulation and a literature review.The review focuses on the main issues addressed in this work, as parallel strategies,evolutionary-based algorithms and heuristics for solving the MDVRP.

Page 20: Cooperative Coevolutionary Models for the MDVRP

Chapter 1. Introduction 19

The biological concepts of coevolution and how they are used to define Coevo-lutionary algorithm are presented in Chapter 3. This chapter introduces the fundamen-tals of competitive and cooperative coevolution. It also discusses strategies to combineindividuals from different populations and create a complete solution for the problem.A general structure of CA is illustrated and some application from the literature arepresented.

Chapter 4 is dedicated to define the proposed coevolutionary model to the MD-VRP. The methodology to decompose the original problem and the parallel evolutionstrategy are presented. This chapter also presents computational experiments to eval-uate the proposed method.

A version of proposed parallel environment with GPU computing is defined inChapter 5. Fundamental concepts about Graphics Processing Unit, their architectures,programming languages and frameworks are introduced. A literature review of solu-tions and applications with GPU computing is presented. A preliminary study is per-formed to define which part GPU computing would be applied, as well as their advan-tages and disadvantages. After the study, proposed parallel GPU environment is de-fined and computational experiments are used to compare the performance betweenboth environments.

Chapter 6 concludes this thesis with an overall discussion of the work andpresents its contributions. Suggestions for future works close the Chapter.

Page 21: Cooperative Coevolutionary Models for the MDVRP

20

2 The Multi-Depot Vehicle RoutingProblem

“One child, one teacher, one book and one pen canchange the world. Education is the only solution.

Education first.”

— Malala Yousafzai (1997 – ).

The Multi-Depot Vehicle Routing Problem (MDVRP) is a variant of the classi-cal VRP where more than one depot is considered (MONTOYA-TORRES et al., 2015).Basically, a solution to this problem is a set of vehicle routes such that: (i) each ve-hicle route starts and ends at the same depot, (ii) each customer is served exactlyonce by one vehicle, (iii) the total demand on each route does not exceed vehiclecapacity (iv) the maximum route time is satisfied and (v) the total cost is minimized(MONTOYA-TORRES et al., 2015). Typically, the fleet of vehicles is limited and ho-mogeneous (MONTOYA-TORRES et al., 2015; CORDEAU; MAISCHBERGER, 2012;VIDAL et al., 2012; SUBRAMANIAN; UCHOA; OCHI, 2013; ESCOBAR et al., 2014).Figure 1 shows a typical solution to this problem with two depots and two vehicle routesassociated with each depot.

Figure 1 – MDVRP solution.

Page 22: Cooperative Coevolutionary Models for the MDVRP

Chapter 2. The Multi-Depot Vehicle Routing Problem 21

The mathematical formulation is presented in Section 2.1. Besides, a literaturereview from some mostly important applications for solving the MDVRP is discussed inSection 2.2. Conclusion and final considerations are shown in Section 2.3.

2.1 Formulation

The MDVRP can be formalized as follows and it is based on Montoya-Torres etal. (2015), Cordeau & Maischberger (2012), Vidal et al. (2012), Subramanian, Uchoa& Ochi (2013), Escobar et al. (2014), Cordeau, Gendreau & Laporte (1997). Let 𝐺 =

(𝑉,𝐴) be a complete graph, where 𝑉 is the set of nodes and 𝐴 is the set of arcs. Thenodes are partitioned into two subsets: the customers to be served, 𝑉𝐶 = {1, ..., 𝑁},and the multiple depots 𝑉𝐷 = {𝑁 + 1, ..., 𝑁 + 𝑀}, with 𝑉𝐶 ∪ 𝑉𝐷 = 𝑉 and 𝑉𝐶 ∩ 𝑉𝐷 = ∅.There is a non-negative cost 𝑐𝑖𝑗 associated with each arc (𝑖, 𝑗) ∈ 𝐴. The demand ofeach customer is 𝑑𝑖 (there is no demand at the depot nodes). There is also a fleet of𝐾 vehicles, each with capacity 𝑄. The service time at each customer 𝑖 is 𝑡𝑖 while themaximum route duration time is set to 𝑇 . A conversion factor 𝑤𝑖𝑗 might be needed totransform the cost 𝑐𝑖𝑗 into time units. In this work, however, the cost is the same as thetime and distance units, so 𝑤𝑖𝑗 = 1.

In the mathematical formulation that follows, binary variables 𝑥𝑖𝑗𝑘 are equal to1 when vehicle 𝑘 visits node 𝑗 immediately after node 𝑖. Auxiliary variables 𝑦𝑖 are alsoused in the subtour elimination constraints.

Minimize𝑁+𝑀∑𝑖=1

𝑁+𝑀∑𝑗=1

𝐾∑𝑘=1

𝑐𝑖𝑗𝑥𝑖𝑗𝑘 , (2.1)

subject to:

𝑁+𝑀∑𝑖=1

𝐾∑𝑘=1

𝑥𝑖𝑗𝑘 = 1 (𝑗 = 1, ..., 𝑁); (2.2)

𝑁+𝑀∑𝑗=1

𝐾∑𝑘=1

𝑥𝑖𝑗𝑘 = 1 (𝑖 = 1, ..., 𝑁); (2.3)

𝑁+𝑀∑𝑖=1

𝑥𝑖ℎ𝑘 −𝑁+𝑀∑𝑗=1

𝑥ℎ𝑗𝑘 = 0 (𝑘 = 1, ..., 𝐾; ℎ = 1, ..., 𝑁 + 𝑀); (2.4)

𝑁+𝑀∑𝑖=1

𝑁+𝑀∑𝑗=1

𝑑𝑖𝑥𝑖𝑗𝑘 ≤ 𝑄 (𝑘 = 1, ..., 𝐾); (2.5)

Page 23: Cooperative Coevolutionary Models for the MDVRP

Chapter 2. The Multi-Depot Vehicle Routing Problem 22

𝑁+𝑀∑𝑖=1

𝑁+𝑀∑𝑗=1

(𝑐𝑖𝑗𝑤𝑖𝑗 + 𝑡𝑖)𝑥𝑖𝑗𝑘 ≤ 𝑇 (𝑘 = 1, ..., 𝐾); (2.6)

𝑁+𝑀∑𝑖=𝑁+1

𝑁∑𝑗=1

𝑥𝑖𝑗𝑘 ≤ 1 (𝑘 = 1, ..., 𝐾); (2.7)

𝑁+𝑀∑𝑗=𝑁+1

𝑁∑𝑖=1

𝑥𝑖𝑗𝑘 ≤ 1 (𝑘 = 1, ..., 𝐾); (2.8)

𝑦𝑖 − 𝑦𝑗 + (𝑀 + 𝑁)𝑥𝑖𝑗𝑘 ≤ 𝑁 + 𝑀 − 1; for 1 ≤ 𝑖 = 𝑗 ≤ 𝑁 and 1 ≤ 𝑘 ≤ 𝐾; (2.9)

𝑥𝑖𝑗𝑘 ∈ {0, 1} ∀ 𝑖, 𝑗, 𝑘; (2.10)

𝑦𝑖 ∈ {0, 1} ∀ 𝑖; (2.11)

The objective (2.1) minimizes the total cost. Constraints (2.2) and (2.3) guaran-tee that each customer is served by exactly one vehicle. Flow conservation is guaran-teed through constraint (2.4). Vehicle capacity and route duration constraints are foundin (2.5) and (2.6), respectively. Constraints (2.7) and (2.8) check vehicle availability.Subtour elimination constraints are in (2.9). Finally, (2.10) and (2.11) define 𝑥 and 𝑦 asbinary variables.

In the original formulation of the MDVRP, a fixed number of vehicles is allocatedto each depot. In our work, though, the search is allowed to consider a larger numberof vehicles (at a penalty cost in the objective). This is discussed in Chapter 4.

2.2 Literature review

The literature review focuses on the main issues addressed in this work. First,Section 2.2.1 introduces evolutionary-based algorithms and heuristics for the MDVRP.Then, Section 2.2.2 presents parallel applications, their environments and the appliedresources.

2.2.1 Heuristics for the Multi-Depot Vehicle Routing Problem

Evolutionary algorithms use a set of candidate solutions, known as a popula-tion, and heuristic mechanisms to evolve it like selection and reproduction (also called

Page 24: Cooperative Coevolutionary Models for the MDVRP

Chapter 2. The Multi-Depot Vehicle Routing Problem 23

genetic operators). Evolution proceeds from one generation to the next until a stoppingcondition is satisfied (ENGELBRECHT, 2007; LUKE, 2013). Evolutionary algorithmshave been widely used to solve the VRP, as surveyed in Potvin (2009). The main con-tributions with regard to the MDVRP are reported below.

Genetic algorithms (GAs) are probably the most widely used class of evolution-ary algorithms and it was applied as well to the MDVRP. A comprehensive survey ofdifferent types of GAs for the MDVRP can be found in Karakatic & Podgorelec (2015),while GAs for the MDVRP, among other VRP variants, are also described in Gendreauet al. (2008).

With regard to hybrid strategies, a simulated annealing-based solution accep-tance criterion is applied after reproduction in Chen & Xu (2008). The Clarke and Wrightsavings heuristic and the nearest neighbor heuristic are used in Ho et al. (2008) to cre-ate initial solutions for the GAs. A combination of simulated annealing, bee colonyoptimization and GA is also proposed in Liu (2013). Vidal et al. (VIDAL et al., 2012;VIDAL et al., 2014) introduce a powerful hybrid GA using neighborhood-based heuris-tics and population-diversity management schemes to address many different types ofVRPs, including the MDVRP.

Particle Swarm Optimization is inspired by the social behavior of agents, suchas swarms and birds flock. Individuals are named particles, flying in the search spaceaccording to simple rules that combine local and global information (ENGELBRECHT,2007; LUKE, 2013). This problem-solving methodology was used in Wenjing & Ye(2010) for solving the MDVRP.

In addition to EAs, some noteworthy heuristics were proposed to solve the MD-VRP. Tabu Search (TS) has been used in several contexts. In particular, Renaud, La-porte & Boctor (1996) and Cordeau, Gendreau & Laporte (1997) use this heuristic forsome VRP problems including MDVRP. A hybrid granular TS algorithm was proposedby Escobar et al. (2014). Those authors introduce the idea of granular neighborhoods,in which the search process uses restricted neighborhoods for each customer definedby a granularity threshold value.

An adaptive large neighborhood search (ALNS) algorithm based on the largeneighborhood search approach was introduced by Pisinger & Ropke (2007). This ap-proach is applied to solve five different variants of the VRP.

The method developed by Subramanian, Uchoa & Ochi (2013) combines anexact procedure based on the set partitioning formulation with an Iterated Local Search(ILS). A Mixed Integer Programming solver is used for the exact procedure.

Page 25: Cooperative Coevolutionary Models for the MDVRP

Chapter 2. The Multi-Depot Vehicle Routing Problem 24

2.2.2 Parallel applications

A few parallel algorithms for the MDVRP are reported in the literature. A parallelversion of ACO is introduced in Yu, Yang & Xie (2011). In this work, the MDVRP wassimplified through the definition of a single virtual depot, while insuring that the ca-pacity constraint of each vehicle is satisfied. The algorithm was implemented using adistributed coarse-grained environment composed of eight computers each equippedwith a Pentium processor (3 GHz with 512 MB RAM).

A parallel iterated Tabu Search (TS) is proposed in Maischberger & Cordeau(2011), Cordeau & Maischberger (2012). In the first paper, some preliminary resultsare reported on eight classes of VRPs including the MDVRP. The algorithm was run ona cluster made of 128 nodes (each with a 3 GHz Xeon processor). The second paperreports results over four VRP variants, including the MDVRP, as well as other variantswith time windows.

2.3 Final considerations

Vehicle Routing Problems are extensively studied since 1950 with various class.Besides, there are important and useful applications in real life for these problems. Avariant of this problem with multiple depots were presented in this chapter. Some ap-proaches were proposed to solve the MDVRP with different algorithms and techniques.

MDVRP is also an important class and a few parallel algorithms for this problemare reported in the literature. This work has as objective to explore the parallel contextof this problem. MDVRP is appropriated for the coevolutionary approach in which theproblem may be decomposed by each depot. Furthermore, the coevolutionary strategyis also suitable for the parallel context. At first, coevolution and coevolutionary algorithmare discussed in Chapter 3. Thereafter, the coevolutionary model for the MDVRP ispresented in Chapter 4.

Page 26: Cooperative Coevolutionary Models for the MDVRP

25

3 Coevolutionary algorithms

“The genes are the master programmers,and they are programming for their lives.”

— Richard Dawkins (1941 – ), in: The Selfish Gene.

Closely related species evolve together in a special manner defined as coevo-lution. There is a reciprocal contribution or dispute between species. They might livein the same area competing by territory, food, among others. On the other hand, thereare some species living together and the cooperation between them is not harmful ordangerous and can be useful for one or all.

Those interactions delineate the evolutionary process and the behavior on anenvironment. They are used in Evolutionary Computation to create algorithms andmethodologies to solve complex problems by decomposing them. Populations are usedfor each part of the problem and each one evolves in its domain. Then, those popula-tions will cooperate or compete to solve the original problem.

This chapter discusses about the biological fundamentals about coevolution ingeneral (Section 3.1) and its application in Evolutionary Computation (Section 3.2). Aliterature review is presented in Section 3.3, and conclusion and final considerationsare shown in Section 3.4.

3.1 Fundamentals

In biology, coevolution is the simultaneous evolution process between two ormore species (ROSIN; BELEW, 1997; FICICI, 2004; MONROY; STANLEY; MIIKKU-LAINEN, 2006). This process is described as a “reciprocal evolutionary change in in-teracting species” by Thompson (2009). The type of coevolution is defined by means ofthe interaction between those species and the survival depends on this relation. Then,it is defined in terms of competitive and cooperative coevolution. Those scenarios arepresented as follows.

3.1.1 Competitive coevolution

Competitive coevolution is represented as an arms race, which populationscompete among themselves. One of those species attempts to take an advantage

Page 27: Cooperative Coevolutionary Models for the MDVRP

Chapter 3. Coevolutionary algorithms 26

over another, which it responses with an adaptive strategy to recovery that advantage(KATADA; HANDA, 2010).

A biological example is the predator-prey competitive coevolution between thegazelle and the cheetah. The cheetah runs after the gazelle, while it tries to escapeof the hunting. Those individuals in the cheetah population which outrun others havehigher chance of success in catching individuals in the gazelle population, and conse-quently have more survival probabilities. This higher survival probability means higherchance of reproducing and passing on those genes that made them good hunters.Similarly, the gazelles which are faster also have more chances of surviving and pass-ing on the genes that made them good at surviving. Therefore, populations tend to befaster and faster, achieving an equilibrium point (EBNER, 2006). The success of onespecies is the failure of the other one.

That situation is associated with the Red Queen effect or Red Queen hypothe-sis, in which species have to improve some trait to keep the equilibrium (MARKOSE;TSANG; JARAMILLO, 2005; EBNER, 2006; MONROY; STANLEY; MIIKKULAINEN,2006). The Red Queen effect is a metaphor from Lewis Carroll’s book “Through theLooking Glass”. There is a part in which The Red Queen says: “It takes all the runningyou can do, to keep in the same place” (VON ZUBEN, 2013).

Systems and processes are described and studied using the Red Queen ef-fect. For instance, a multiagent system was employed to simulate a financial marketusing this effect by Markose, Tsang & Jaramillo (2005). The growing of virtual plantsand the competition of them for the sun light was studied by Ebner (2006). A histor-ical mechanism was defined to the coevolving populations by Avery, Michalewicz &Schmidt (2007), in which the fitness is influenced by past generations. In Katada &Handa (2010) work, landscape features of the fitness of a coevolutionary problem areestimated and simulated using the Red Queen effect.

3.1.2 Cooperative coevolution

In cooperative coevolution, species have an advantageous interaction for all orthere is no damage between them. They may live together in the same area and onepopulation needs the other ones to survive and evolve. Generally species cooperateto a global benefit. For instance, in symbiosis species cooperate with one another andwhen one of those improves, the other species also improves (ENGELBRECHT, 2007).Lichens are a symbiotic interaction between a fungus and an algae.

The commensalism is characterized as an interaction that one species benefitswithout damage to another one (ENGELBRECHT, 2007). An example of this interac-tion occurs between remoras (or suckerfish) and sharks. Remora become attached to

Page 28: Cooperative Coevolutionary Models for the MDVRP

Chapter 3. Coevolutionary algorithms 27

the sharks and eat residues left by them. This is a beneficial relation to the remoraswithout prejudice to the sharks.

3.2 Coevolution in Evolutionary Computation

The concepts of coevolution are applied to create evolutionary algorithms andapproaches for solving problems using the idea of competition and cooperation forthe populations. Coevolutionary algorithm (CA) is a class of evolutionary algorithmsinspired by the simultaneous evolution process involving two or more species. CA arecategorized into two groups depending on the nature of this interaction which can beeither competitive or cooperative, the latter being the one considered in this study.

One of the characteristics of problems suitable for using coevolution is that theyhave to be decomposable. Thus, a complex problem is divided into smaller problemsand each one is evolved by one or more populations. Those parts cooperate or com-pete for building the entire solution of the original problem.

Coevolutionary algorithms can be distinguished from traditional evolutionary al-gorithms by their evaluation process (FICICI, 2004). That is, individuals can only beevaluated through interaction with other individuals from the same or different popula-tions. The fitness of each individual depends on the collaboration of others from thesame population or different ones (ENGELBRECHT, 2007). Some advantages and thedifferences between standard EA and coevolutionary algorithm are suitably defined byEngelbrecht (2007, p. 275) as follows:

“In standard EAs, evolution is usually viewed as if the population at-tempts to adapt in a fixed physical environment. In contrast, coevolutionary(CoE) algorithms (CoEA) realize that in natural evolution the physical envi-ronment is influenced by other independently-acting biological populations.Evolution is therefore not just locally within each population, but also in re-sponse to environmental changes as caused by other populations. Anotherdifference between standard EAs and CoEAs is that EAs define the mean-ing of optimality through an absolute fitness function. This fitness functionthen drives the evolutionary process. On the other hand, CoEAs do notdefine optimality using a fitness function, but attempt to evolve an optimalspecies where optimality is defined as defeating opponents (in the case ofpredator-prey CoE).”

Besides, coevolution might be useful in several contexts, for instance, whenthere is some difficulty or complications to operate the fitness evaluation or even it

Page 29: Cooperative Coevolutionary Models for the MDVRP

Chapter 3. Coevolutionary algorithms 28

does not exist; when the search space is very large or infinite; when there is somespecial cases or structures in the search; in a multiagent environment; among oth-ers (JONG; STANLEY; WIEGAND, 2013; VON ZUBEN, 2013). The coevolution mayachieve efficient solutions, even in situations which it is not demanded (VON ZUBEN,2013). As the main problem is decomposed, CAs evolve small parts of this problem ina specific subdomain of the search space.

As the main focus of this work is on cooperative Coevolutionary algorithms,some aspects about this model are especially discussed in Section 3.2.1. Section 3.2.2discuss the concepts of fitness function in coevolutionary algorithm. The main ways tocombine individuals from different populations and evaluate the fitness of the completesolution are shown in Section 3.2.3.

3.2.1 Cooperative Coevolutionary algorithms

Each population in a cooperative coevolutionary algorithm only represents apart of a complex decomposable problem (ENGELBRECHT, 2007). Accordingly, thetrue fitness of an individual can only be obtained from interaction with other individualsfrom the same or other populations. Each individual receives a reward or punishment.An individual is rewarded when it interacts well with other individuals while it gets apunishment otherwise.

Figure 2 depicts a general cooperative coevolutionary algorithm with decompo-sition. A complex problem is first decomposed into smaller subproblems. Each popula-tion is evolved on its subproblem and, after a number of generations, individuals fromthese populations are combined to create complete solutions to the original problem.Through this process, it is possible to compute the fitness of these complete solutions.Some feedback information is then returned to each population, like the best solutionfound so far, any required updates to the individuals in the population, etc.

3.2.2 What does fitness mean?

The fitness in coevolutionary algorithm is different from traditional EAs in someaspects. EA uses an absolute fitness to represent each individual of population. InCAs, the fitness is based on the interaction with other individuals from different popula-tions. Then, this fitness is relative and is defined according to that interaction (LUKE,2013).

As individuals are combined to create a complete solution, a global fitness isdetermined. A relative fitness measure represents the assessment of an individual ina complete solution, as an individual or partial fitness. This assessment defines the

Page 30: Cooperative Coevolutionary Models for the MDVRP

Chapter 3. Coevolutionary algorithms 29

Figure 2 – Cooperative coevolutionary algorithm with problem decomposition.

influence or contribution of an individual in the global fitness. The credit assignmentproblem is related to the determination of the contribution of a partial solution to theglobal fitness value. Additionally, as an individual might be combined with differentindividuals more than once, there are several ways to attribute a partial fitness to anindividual. For instance, it might be used the average value, the variance, or the bestvalue obtained in the interaction.

3.2.3 Pairing and fitness evaluation

The pairing strategies define how the individuals from different populations arecombined to create a complete solution for the fitness function evaluation. The processis illustrated considering two populations 𝐴 and 𝐵 with size 𝑛 as shown in Figure 3 inwhich each position represents one individual. The solutions set is represented as 𝑆

and the individuals combination as ⊕.

Fitness Sampling (ENGELBRECHT, 2007) or Fitness Assessment (LUKE, 2013)defines how individuals are combined for the purpose of fitness evaluation. Thesemethods are the followings (ENGELBRECHT, 2007; LUKE, 2013):

a) All versus All: All possible combinations of individuals from all populations are

Page 31: Cooperative Coevolutionary Models for the MDVRP

Chapter 3. Coevolutionary algorithms 30

Figure 3 – Pairing example – populations 𝐴 and 𝐵

considered. This method is very expensive and can be appropriate for popula-tions with only a few individuals. Figure 4 presents the association of individual𝑎1 with all individuals of population 𝐵. The process occurs again with the otherindividuals from 𝐴 until all 𝐴⊕𝐵 combinations are created.

Figure 4 – Pairing example – All versus All

b) Random: An individual from one population is combined with randomly selectedindividuals from other populations. This method is less expensive than the pre-vious one and the number of evaluations is typically a parameter of the method.An example is illustrated in Figure 5 in which 3 random solutions 𝑆 using 𝑎1 arecreated: 𝑆1 = [𝑎1 ⊕ 𝑏1];𝑆2 = [𝑎1 ⊕ 𝑏2];𝑆3 = [𝑎1 ⊕ 𝑏𝑛]. As this is a random process,some individuals either can not be used, as 𝑏3, or be used more than once, as 𝑏2

(with 𝑎1 and 𝑎3). The process is executed for each individual in 𝐴 with randomlyselected individuals in 𝐵, and 𝐵 with randomly selected individuals in 𝐴, if thelast one is necessary (𝐵 ⊕ 𝐴).

Figure 5 – Pairing example – Random

c) All versus best: All individuals of one population are combined with the bestindividuals from other populations. This is repeated for each population. Figure

Page 32: Cooperative Coevolutionary Models for the MDVRP

Chapter 3. Coevolutionary algorithms 31

6 shows the combination of all individuals from 𝐴 with the best one of 𝐵. Thebest is represented as 𝑏𝑒𝑠𝑡(𝑔−1) and it was obtained in previous generation 𝑔. Theprocess also occurs from population 𝐵 to the best in 𝐴, as 𝐵 ⊕ 𝐴𝑏𝑒𝑠𝑡(𝑔−1)

.

Figure 6 – Pairing example – All versus best

d) Tournament sampling: This process consists of combining individuals from apopulation with selected individuals from other populations based on their partialfitness. A tournament is performed among all selected individuals to determine awinner. For instance, in Figure 7 the partial fitness 𝐹 of individual 𝑏1 is performedagainst 𝑏𝑛: 𝐹 (𝑏1) × 𝐹 (𝑏𝑛). The winner is combined with 𝑎2 to create a completesolution and define the fitness.

Figure 7 – Pairing example – Tournament sampling

e) Shared sampling: Only individuals with higher shared fitness are combined tofavor individuals that are significantly different from the others in a population.Figure 8 shows individuals with higher shared fitness from both populations: 𝐴 =

(𝑎2, 𝑎𝑛) and 𝐵 = (𝑏2, 𝑏3). It is also presented all possible combinations of thoseindividuals using All versus All strategy. The other strategies can also be appliedin the last part of the process.

3.2.4 General structure

Whereas traditional evolutionary algorithm uses one population, coevolutionaryalgorithm uses more than one population to represent each part of the problem. Then,each population interacts with others to create complete solutions and define the fit-ness value. A general structure of CAs is shown in Algorithm 1.

Page 33: Cooperative Coevolutionary Models for the MDVRP

Chapter 3. Coevolutionary algorithms 32

Figure 8 – Pairing example – Shared sampling with All versus All strategy

Algorithm 1: General structure of a Coevolutionary algorithm1 GeneralCA()

2 [𝑃1 . . . 𝑃𝑛]← createPopulations();3 𝑆 ← interact([𝑃1 . . . 𝑃𝑛]);4 evaluate(𝑆);5 setFitness(𝑆, [𝑃1 . . . 𝑃𝑛]);6 𝐵 ← getBest(𝑆, [𝑃1 . . . 𝑃𝑛]);

7 while (stop criteria is not met) do8 foreach population 𝑃𝑖 do9 evolve(𝑃𝑖);

10 end foreach11 𝑆 ← interact([𝑃1 . . . 𝑃𝑛]);12 evaluate(𝑆);13 setFitness(𝑆, [𝑃1 . . . 𝑃𝑛]);14 updateBest(𝐵, 𝑆, [𝑃1 . . . 𝑃𝑛]);15 end while

16 return(𝐵);

17 fim

At first, individuals are created for all 𝑛 populations (line 2). These individualsinteract to create a set 𝑆 of complete solutions for the problem (line 3). The strategiespresented in Section 3.2.3 are applied to define how the individuals from different pop-ulations are combined. For instance, as the process is starting, the Random strategymight be used in that moment to define initial fitness values. Then, 𝑆 is evaluated (line4) and the fitness may be assigned for each individual in all 𝑛 populations (line 5). Thebest solution and/or the best individual for each population are selected and insertedin set 𝐵 (line 6).

The evolutionary process occurs until the stop criteria is not met (lines 7–15).Adequate evolutionary operators are applied to evolve each population (lines 8–10). Af-ter that, the offspring interacts with regard to a pairing strategy (line 11). For instance,All versus best strategy might be applied to interact offspring with the best individuals

Page 34: Cooperative Coevolutionary Models for the MDVRP

Chapter 3. Coevolutionary algorithms 33

from the previous generation. The set 𝑆 is evaluated (line 12) and the fitness is as-signed (line 13). The best values are updated in set 𝐵 (line 14) and they are returnedin the end of process (line 16).

The general structure may be applied in both competitive and cooperative mod-els. The main differences occur in pairing strategies (lines 3 and 11), evaluation pro-cess (lines 4 and 12) and fitness setting (lines 5 and 13).

3.3 Literature review

In this section, we review different applications of CAs. Recently, various engi-neering problems have been solved with this approach (WANG; CHENG; HUANG,2014; WANG; CHEN, 2013a; LADJICI; TIGUERCHA; BOUDOUR, 2014; LADJICI;BOUDOUR, 2011; CHEN; MORI; MATSUBA, 2014; BLECIC; CECCHINI; TRUNFIO,2014).

Note that a discussion about sequential and parallel versions of CAs can befound in Popovici & Jong (2006). The authors show in particular how different popu-lation update strategies can impact the overall performance. The authors empiricallydemonstrate the superiority of the parallel version over the sequential one on bench-mark functions, using a number of different metrics.

A competitive model with three populations is used in Li, Guimarães & Lowther(2014) and Li, Guimarães & Lowther (2015) to solve constrained design problems. Thefirst population is made of candidate solutions from the design space while the otherpopulations represent disturbances due to uncertainties.

Li & Yao (2012) propose a cooperative coevolutionary algorithm in a particleswarm environment. They apply it to large scale optimization problems on functionswith up to 2,000 variables. Other methodologies using particle swarm and coevolutioncan also be found in Aote, Raghuwanshi & Malik (2015), Chen et al. (2010).

Some coevolution-based algorithms for solving multi-objective problems are re-ported in Coello, Lamont & Veldhuizen (2007). In particular, different strategies for com-petitive and cooperative coevolution are discussed. A distributed cooperative coevolu-tionary approach for multiobjective optimization is presented in Tan, Yang & Lee (2003),Tan, Yang & Goh (2006). In this work, a coarse-grained parallelization is proposed andcommunication is realized with Java RMI (Remote Method Invocation)1. The model wastested on benchmark functions using five interconnected personal computers. In Liu etal. (2014), a dynamic multi-objective optimization problem is solved using coopera-1 <http://goo.gl/AT63td>

Page 35: Cooperative Coevolutionary Models for the MDVRP

Chapter 3. Coevolutionary algorithms 34

tive coevolutionary algorithms. Finally, another coevolutionary algorithm is presentedin Wang, Purshouse & Fleming (2013) for a problem with more than two objectives.

A study on sequential and parallel versions of a cooperative coevolutionary al-gorithms based on the ES(1+1) evolution strategy is presented in Jansen & Wiegand(2003), Jansen & Wiegand (2004). The authors identify situations where a coopera-tive scheme could be inappropriate, like problems involving non separable functions.Depending on the decomposition method or the characteristics of the function, thecoevolutionary algorithm could even be harmful.

A synchronous parallel cooperative coevolutionary model for solving large scaleproblems with a Differential Evolution (DE) search engine is reported in Vu, Nguyen &Bui (2011). The parallel model was implemented on three interconnected personalcomputers. Parallel communication was performed with the MPICH2 library2. Anotherparallel cooperative coevolutionary architecture is introduced in Tang & Yusoh (2012) tosolve software and data components allocation problems in a cloud computing environ-ment. Unfortunately, the proposed architecture was implemented on a single computer.Different parallel variants of CAs can also be found in Seredynski (1996), Seredynski& Zomaya (2002), Chen & Lu (2005).

Other applications of coevolution are the followings. The prisoner’s dilemmais addressed with a coevolution approach in Tanimoto (2013), Zeng et al. (2014). Acompetitive coevolutionary algorithm is proposed to study electricity markets and finda Nash Equilibrium in Ladjici, Tiguercha & Boudour (2014). In this work, each agentevolves in interaction with the others to maximize profits. Recurrent neural networks(CHANDRA, 2014), as well as neural networks for complex classification tasks (TIANet al., 2012), are trained using cooperative coevolutionary algorithms. A machine learn-ing approach using cooperative coevolutionary algorithm is also reported in García-Pedrajas, Castillo & Ortiz-Boyer (2010).

As far as we know, the coevolutionary paradigm has never been applied to theMDVRP. With regard to vehicle routing in general, a large scale capacitated arc rout-ing problem is addressed in Mei, Li & Yao (2014) using a coevolutionary algorithm.In this work, the routes are grouped into different subsets to be optimized and prob-lem instances with more than 300 edges are solved. A multi-objective capacitated arcrouting problem is also studied in Shang et al. (2014). A coevolutionary algorithm ispresented in Wang & Chen (2013b) for a pickup and delivery problem with time win-dows. To minimize the number of vehicles and the total traveling distance, the authorsuse two populations: one for diversification purposes and the other for intensificationpurposes. In the scheduling domain, a competitive coevolutionary quantum genetic al-gorithm for minimizing the makespan of a job shop scheduling problem is reported in2 <http://www.mpich.org/>

Page 36: Cooperative Coevolutionary Models for the MDVRP

Chapter 3. Coevolutionary algorithms 35

Gu et al. (2010).

3.4 Final considerations

The concepts of competitive and cooperative coevolution were discussed in thischapter. The works presented in the literature review suggest Coevolutionary algo-rithms are able to find suitable results for complex problems in several areas. As theproblem is decomposed, each part might find a good solution in its domain and con-tribute to the complete solution.

With regard to practical application to VRPs, a coevolutionary approach is pro-posed to study a class of this problem in a different context. The Multi-Depot VehicleRouting Problem was selected to perform the decomposition and use the coevolution-ary environment. As CAs are suitable for complex problems, we expect to find relevantresults for the MDVRP. The Chapter 4 introduces the coevolutionary model and theapplied methodologies and strategies are discussed.

Page 37: Cooperative Coevolutionary Models for the MDVRP

36

4 Cooperative coevolutionary modelfor the MDVRP

“Science and everyday lifecannot and should not be separated.”

— Rosalind Franklin (1920–1958).

A cooperative coevolutionary model with problem decomposition is proposedhere to solve the MDVRP. The main contribution of this method is the computationalefficiency resulting from the decomposition of the problem into subproblems. Each sub-problem becomes a single depot VRP and evolves independently on its domain space.The decomposition approach considers the depots separately and assigns a subset ofcustomers to each one. Some overlap is possible, that is, customers might be associ-ated to one or more depots depending on its neighbors (other customers or depots).An evolving population is associated with each subproblem and the (partial) solutionsin each population must then cooperate to form a complete solution to the MDVRP.

The decomposition approach is explained in Section 4.1. Then, Section 4.2 de-scribes the evolution process for solving the subproblems. Computational experimentswere used to evaluate the proposed method and are presented in Section 4.3. Conclu-sion and final considerations are shown in Section 4.4.

4.1 Methodology

Each customer is assigned to a depot using the two following rules:

1. The closest depot;

2. The closest depot to the closest neighbour node (if different from the one in rule1);

When the two rules identify the same depot, the assignment is obvious. Whenthe two rules identify two different depots, then the conflict must be addressed in someway. Figure 9 illustrates how these rules are applied. In the Figure, there are threedepots (nodes A, B and C) and twenty customers (nodes 1 to 20). For customer 1,rule 1 identifies A as the closest depot. Then, rule 2 identifies the closest neighbor tocustomer 1 as customer 2, whose closest depot is also A. Thus, customer 1 can only

Page 38: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 37

Figure 9 – Problem decomposition: Assignment of customers to depots.

be assigned to depot A. In the Figure, all white nodes can only be assigned to theirclosest depot.

Now, let us consider customer 6. Rule 1 identifies B as the closest depot. Then,rule 2 identifies the closest neighbor to customer 6 as customer 7, whose closest de-pot is A. Since we do not know if it is better to assign customer 6 to depot A or B,customer 6 is initially assigned to both depots. That is, this customer will be part ofthe two evolving populations associated with depots A and B. It implies that there issome overlap among the subproblems. In Figure 9, all gray nodes are assigned to twodifferent depots.

Algorithm 2: Assignment of customers1 assignCustomers(𝑉𝐶 , 𝑉𝐷, 𝐴)2 for 𝑖← 1 to 𝑁 do // for each customer 𝑖

// Rule 1: closest depot3 𝑚𝑖 ← getClosestDepot(𝑉𝐷, 𝑖);4 insert(𝐴𝑚𝑖

, 𝑖);// Rule 2: depot of the closest neighbor

5 𝑗 ← getClosestNeighbor(𝑉𝐶 , 𝑖);6 𝑚𝑗 ← getClosestDepot(𝑉𝐷, 𝑗);7 if (𝑚𝑖 = 𝑚𝑗) then // Different depots8 insert(𝐴𝑚𝑗

, 𝑖);9 end if

10 end for11 return(𝐴1 . . . 𝐴𝑀 );12 end

Page 39: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 38

The assignment procedure is further detailed in Algorithm 2. The procedurestarts with the set of customers 𝑉𝐶 , the set of depots 𝑉𝐷, as well as the set of arcs 𝐴.In Line 3 the closest depot 𝑚𝑖 to customer 𝑖 is selected according to rule 1 and insertedin the assignment group 𝐴𝑚𝑖

of depot 𝑚𝑖 (Line 4). The closest neighbor to customer 𝑖 isdefined as customer 𝑗 (Line 5) and the closest depot to 𝑗, identified as 𝑚𝑗, is selectedaccording to rule 2. The depots are compared in Line 7. If the two depots are different(𝑚𝑖 = 𝑚𝑗), customer 𝑖 is also inserted in the allocation group 𝐴𝑚𝑗

of depot 𝑚𝑗 (Line 8).After processing all customers, the assignment groups are returned (Line 11).

The decomposition strategy attempts to group closest customers to the samedepot and allows to solve each subproblem independently. As the problem formulation(Section 2.1) has as objective the total cost minimization, the only measure used in theassignment rules is the distance between customers and depots. Other criteria couldbe further integrated, as assigning customers according to the mean of demands inthe depots, the mean of route duration times, and so on.

After this decomposition, each subproblem becomes a classical single depotVRP for a subset of customers identified by the two assignment rules above. At firstmoment, each single depot VRP could be solved using an exact method. Nevertheless,some questions have to be observed. One of those questions refers to diversity ofsolutions. Due the decomposition strategy and the coevolutionary model, several anddifferent solutions could be created and managed for each single depot VRP and alsoto the complete problem. This condition might allow a better exploration of the searchspace. Another question is that customers would be inserted in more than one depots.The replication requires a repair procedure when a complete solution is created to theMDVRP, as it is discussed below. Then, infeasible solutions might be created by theexact methods and might not be defined properly.

Given that the gray nodes are duplicated, a repair operator will be needed toobtain a valid complete solution (see Section 4.2.5). Each subproblem is solved withan evolutionary algorithm, in which each individual represents a partial solution to theMDVRP. Figure 10 illustrates the structure of the proposed coevolutionary model. Foreach depot, there is one population which evolves and searches the best routes for theset of customers assigned to it. Then, one individual for each population is selected tocreate a complete solution for the MDVRP.

A decomposition approach is particularly interesting for problem instances witha low degree of interdependency (coupling) between the subproblems. For example,customer 19 in Figure 9 should clearly be served by depot C. It is unlikely that goodsolutions will be obtained by assigning this customer to depots A or B, and these so-lutions are automatically eliminated through the decomposition approach. It is clearthat some degree of interdependency exists among the subproblems for the instance

Page 40: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 39

Figure 10 – Cooperative coevolutionary model for the MDVRP.

illustrated in Figure 9, due to the presence of gray nodes.

This model is strongly suitable for a parallel environment where each popula-tion evolves separately and cooperates with other populations to solve the problem. Aparallel architecture for this model is proposed in the next section.

4.2 Parallel evolution strategy

A parallel environment exploiting the Evolution Strategy (ES) paradigm, calledCoES, supports the evolution of our cooperative coevolutionary model. Evolution Strat-egy (ENGELBRECHT, 2007; LUKE, 2013; FREITAS et al., 2014) is an evolutionaryalgorithm using mutation as the main operator to generate new solutions. ES was cho-sen because each subproblem has a variable length representation (genotype) andthe design of a recombination operator in this case would be rather cumbersome (seeSection 4.2.2).

Algorithm 3: CoES – general scheme1 CoES(𝑉𝐶 , 𝑉𝐷, 𝐴,𝑁,𝑀,𝑄, 𝜇, 𝛼),2 𝐴1 . . . 𝐴𝑀 ← assignCustomers(𝑉𝐶 , 𝑉𝐷, 𝐴);3 [𝑃1 . . . 𝑃𝑀 ]← initializePopulations(𝐴1 . . . 𝐴𝑀 , 𝜇, 𝛼) ;4 𝑆 ← createCompleteSolutions(𝑃1 . . . 𝑃𝑀 );5 𝑓 ← evaluateSolutions(𝑆);6 𝑠* ← getBestSolution();7 startModules();8 return(𝑠*);9 end

The proposed parallelization scheme, which is operational under asynchronousupdates, is shown in Algorithm 3. CoES first receives all required information aboutthe problem, in particular the number of customers (𝑁 ), number of depots (𝑀 ) andvehicle capacity (𝑄). Each population is initialized with 𝜇 individuals (Line 3), which are

Page 41: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 40

Figure 11 – Giant tour representation and the obtained routes

encoded using the representation scheme presented in Section 4.2.1. The initializationprocedure uses a semi-greedy method to insert customers from a given list. Parameter𝛼 defines the number of customers in this list, as discussed in Section 4.2.2. Completesolutions are then created with a Random fitness sampling strategy (ENGELBRECHT,2007) (Line 4). Here, individuals from each initial population are selected randomlyto create complete solutions. It should be noted that another strategy is used in thefollowing populations, as explained in Section 4.2.5. In Line 5, all complete solutionsare evaluated and the best one is selected (Line 6). Then, a number of parallel modulesare started (Line 7). At the end, the best complete solution to the MDVRP is returned(Line 8).

The representation and initialization procedures are described in Sections 4.2.1and 4.2.2. The parallel modules are introduced in Section 4.2.3.

4.2.1 Representation

Individuals from each population are represented by a giant tour, without routedelimiters. It is basically a single sequence made of all customers assigned to a depot,as shown in Figure 11(a). Since each individual in a population corresponds to a par-ticular depot and subset of customers, the length of the giant tour is likely to change(variable genotype). Individual routes are created from this giant tour with the Splitalgorithm (PRINS, 2004), which can optimally extract feasible routes from a single se-quence. In constrained problems, the Split algorithm can be relaxed at the beginning toallow infeasible routes that violate one or more constraints. During the execution of thecoevolutionary algorithm, this relaxation is progressively reduced to converge towardsfeasible routes. Figure 11(b) illustrates two routes that could be obtained from the gianttour representation in 11(a).

Page 42: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 41

4.2.2 Initialization

The population initialization procedure is shown in Algorithm 4. The first individ-ual in each population is constructed with the Nearest Insertion Heuristic (NIH) (BODINet al., 1983) while the other ones are constructed with a semi-greedy approach basedon NIH. With regard to the first individual, the closest customer to the depot is firstinserted in the giant tour. Then, the next customer to be inserted is the one which isclosest to the previous one. This is repeated until the giant tour is complete.

Algorithm 4: Populations initialization1 initializePopulations(𝐴1 . . . 𝐴𝑀 , 𝜇, 𝛼)2 for 𝑖← 1 to 𝑀 do

// Greedy construction3 𝑖𝑛𝑑1 ← greedy(𝐴𝑖);4 insert(𝑃𝑖, 𝑖𝑛𝑑1);5 for 𝑗 ← 2 to 𝜇 do

// Semi-Greedy construction6 𝑖𝑛𝑑𝑗 ← semiGreedy(𝐴𝑖, 𝛼);7 insert(𝑃𝑖, 𝑖𝑛𝑑𝑗);8 end for9 end for

10 end

Based on this greedy heuristic, a semi-greedy variant generates the remainingindividuals. The first customer is selected at random. Then, the remaining customersare sorted based on their distance from the previous one. The sorting is used to rankthe customers. A Restricted Candidate List (RCL) is created with the 𝛼 best-rankedcustomers and the next customer to be inserted is selected at random in the RCL. Thisis repeated until the giant tour is complete.

4.2.3 Parallel modules and coordination

The parallel modules are executed until a stopping criterion, based on the ex-ecution time, is met. Figure 12 depicts the architecture of these modules within CoESas well as their communication scheme.

The Start Modules procedure is shown in Algorithm 5. It is called in Line 7 ofAlgorithm 3 to create a thread for each module and to initialize the environment. Astart flag is used to indicate that each module should wait until all modules have beeninitialized. At the beginning of the procedure, the flag is set to FALSE (Line 2). At theend, the start flag is set to TRUE (Line 7) so that all modules can be executed.

Page 43: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 42

Figure 12 – Architecture of the parallel modules in CoES.

Algorithm 5: Start Modules1 startModules()2 𝑠𝑡𝑎𝑟𝑡← FALSE;3 createThread(Monitor());4 createThread(PE());5 createThread(CSE());6 createThread(EG());7 𝑠𝑡𝑎𝑟𝑡← TRUE;8 end

The Monitor module manages the parallel processes and transmits informationabout the MDVRP problem. When the time-based stopping criterion is met, all modulesare terminated by the Monitor module and the best solution is returned.

The Population Evolve (PE) module evolves each population with ES. The Com-plete Solutions Evaluate (CSE) module combines individuals from different populationsto create and evaluate complete solutions. In addition, it applies local search heuristicsto improve the complete solutions. The Elite Group (EG) module maintains an elite setof complete solutions, and also applies local search heuristics to these elite solutions.The various modules mentioned above are explained in detail in the following sections.

4.2.4 Population Evolve (PE) module

The Population Evolve (PE) module manages the ES-based evolution by creat-ing a thread for each population. Within a thread, the evolution process is run sequen-tially. This is represented in Figure 13. Note that the ES-based evolution is highlightedin the gray box of Figure 13.

With regard to the ES-based population evolution, 𝜆 offspring are created from𝜇 parents (ENGELBRECHT, 2007). In our approach, each one of the 𝜆 offspring isgenerated as follows. First, a parent is selected at random, so that each parent gen-erates 𝜆/𝜇 offspring on average. The self-adaptive procedure updates the number of

Page 44: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 43

Figure 13 – Population Evolve module.

mutations (strategy parameter 𝜎) using a binomial distribution 𝐵(𝑛, 𝑝). The distributionis computed with 𝑛 equal to the number of customers in the giant tour (genotype length)and 𝑝 equal to 0.5. The mutation is applied to the giant tour by selecting two differentrandom positions and by swapping the corresponding customers. This is repeated 𝜎

times. Then, the Split algorithm is applied and individual routes are created, thus al-lowing for a local, population-based, fitness evaluation of the newly generated partialsolution. With regard to fitness evaluation, the fixed number of vehicles at the depotis accounted for in different ways depending on the status of the parent. Basically, ifthis number is not exceeded in the parent, then its offspring incur a penalty cost foreach vehicle in excess (if any). If this number is already exceeded in the parent, thenno penalty is incurred in its offspring. With this approach, a mix of solutions with andwithout extra vehicles is maintained throughout the search.

A Local Search (LS) procedure is applied to the offspring with probability 𝜌𝑙𝑠.Nine Neighborhood Structures (NS) are defined to improve the routes. They are thesame as those presented in Prins (2004), Vidal et al. (2012), Ruela et al. (2013). It isimportant to note that the local search is performed at the population or subproblemlevel, therefore only routes starting and ending at the same depot and visiting thesubset of customers in the subproblem are considered. Let us suppose that 𝑢 and

Page 45: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 44

𝑣 are two customer nodes belonging to the same or different routes (𝑈 and 𝑉 ), 𝑥

is the successor of 𝑢 and 𝑦 is the successor of 𝑣 along their respective routes. Thefollowing moves are applied in random order, and the exploration of the correspondingneighbourhood stops as soon as an improving move is found:

∙ Move 1: move 𝑢 after 𝑣;

∙ Move 2: move (𝑢, 𝑥) after 𝑣;

∙ Move 3: move (𝑥, 𝑢) after 𝑣;

∙ Move 4: exchange 𝑢 and 𝑣;

∙ Move 5: exchange (𝑢, 𝑥) with 𝑣;

∙ Move 6: exchange (𝑢, 𝑥) and (𝑣, 𝑦);

∙ Move 7: if (𝑢, 𝑥) and (𝑣, 𝑦) are in the same route (but not adjacent), replace themby (𝑢, 𝑣) and (𝑥, 𝑦);

∙ Move 8: if (𝑢, 𝑥) and (𝑣, 𝑦) are in distinct routes, replace them by (𝑢, 𝑣) and (𝑥, 𝑦);

∙ Move 9: if (𝑢, 𝑥) and (𝑣, 𝑦) are in distinct routes, replace them by (𝑢, 𝑦) and (𝑣, 𝑥).

Move 7 is a 2-opt move, while moves 8 and 9 are 2-opt* moves. When all neigh-borhoods have been explored and no improvement to the current solution has beenfound, the local search procedure stops (RUELA et al., 2013).

The local search process is illustrated in Algorithm 6. Two routes, 𝑈 and 𝑉 , aresubmitted to local search. The routes might be the same (𝑈 = 𝑉 ) or different ones(𝑈 = 𝑉 ). A random permutation is generated and defines the order to apply the nineNeighborhood Structures (NS) (Line 2). For instance, a NS list is defined in a randomorder: 𝑁𝑆 ← {8, 3, 7, 5, 1, 4, 9, 2, 6}. In that case, the NS 8 is performed first, then theNS 3, then the NS 7, and so on. The nine NS are used sequentially from 8 to 6.

A flag (𝑠𝑡𝑜𝑝, Line 3) indicates that all NS are explored until an improvement isfound. While that flag is false (Line 4), a move in a given NS is performed. At first,the flag 𝑠𝑡𝑜𝑝 is set to 𝑡𝑟𝑢𝑒. This condition will finish the process if no improvement isfound. From the first NS in the list to the last one (Line 6), moves in the correspondingneighbourhood 𝑖 are performed on routes 𝑈 and 𝑉 until an improving neighbor is found.These routes are submitted to the improvement process (Line 7). An improvementrepresents a better result to the pair 𝑈 and 𝑉 and is found when the first improvingneighbor of current NS is obtained. The improvement is represented by ≺ symbol.

Page 46: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 45

If an improvement was found, current routes are replaced by their better results𝑈 ′ and 𝑉 ′ (Lines 9 and 10). Then, the flag 𝑠𝑡𝑜𝑝 is set to 𝑓𝑎𝑙𝑠𝑒 again (Line 11), and thewhole local search process will be performed one more time.

It is noteworthy that the random list of moves is generated once at the beginning.After that, the process uses that random list until no improvement to the current routeshas been found. Moreover, the proposed local search strategy operates with a variableneighborhood structure. At the end, LS process returns a local minimum with respectto the defined neighborhood structures.

Algorithm 6: Local search1 localSearch(𝑈, 𝑉 )2 NS← randomPermutation(9);3 stop← false;4 while (stop == false) do5 stop← true;6 for 𝑖← 1 to 9 do7 [U’, V’]← firstImprovingNeighbor(𝑈, 𝑉,𝑁𝑆𝑖);8 if ( [𝑈 ′, 𝑉 ′] ≺ [𝑈, 𝑉 ] ) then9 𝑈 ← 𝑈 ′;

10 𝑉 ← 𝑉 ′;11 stop← false;12 end if13 end for14 end while15 end

Once all offspring are created, parents and offspring are ranked according totheir local fitness and the ES(𝜇 + 𝜆) selection is applied to produce the next popula-tion. Using a producer-consumer synchronization scheme, the new population is thenprocessed by the CSE module. The corresponding thread waits until the end of theevaluation of all complete solutions before restarting.

4.2.5 Complete Solutions Evaluate (CSE) module

The Complete Solutions Evaluate module receives a population of partial so-lutions from the PE module and evaluates the global fitness of complete solutions.Each complete solution is created and evaluated in a multithread environment, wherea thread is started for each individual 𝑖 in population 𝑝, as illustrated in Figure 14.

The CSE module is notified by the PE module to process population 𝑝 at instantA in Figure 14. It combines each individual in 𝑝 with the best individuals obtained fromthe other populations to create a complete solution. More precisely, the partial solutions

Page 47: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 46

Figure 14 – Complete Solutions Evaluate module.

associated with the other depots are taken from the best solution in the Elite Groupmodule (All versus best strategy), see instant B in Figure 14.

Once a complete solution is created, a repair procedure is applied to removeduplicate customers and to insert customers that are not included in the solution. Inboth cases, the least additional cost heuristic is used (BODIN et al., 1983). The addi-tional cost when customer 𝑖 is between customers 𝑥 and 𝑦 is defined in Equation (4.1).The least additional cost is looked for when inserting a customer between two consec-utive customers in the solution. When duplicates must be removed, only the copy withleast additional cost is kept.

𝐶𝑥𝑖𝑦 = 𝑐𝑥𝑖 + 𝑐𝑖𝑦 − 𝑐𝑥𝑦 (4.1)

To illustrate the removal of a duplicate customer, we refer to Figure 15 wherecustomer 𝑖 is included in two routes associated with depots 𝐴 and 𝐵. The additionalcost is calculated in both cases with Equation (4.1) to obtain 𝐶𝑥𝑖𝑦 for depot A and 𝐶𝑟𝑖𝑠

for depot B. If 𝐶𝑥𝑖𝑦 < 𝐶𝑟𝑖𝑠, then customer 𝑖 is kept in the route of depot 𝐴 and theduplicate is removed from the route of depot 𝐵.

When inserting a customer in a solution, all insertion positions between twoconsecutive customers are considered and the least cost one is chosen. In Figure 16,customer 𝑖 is inserted between customers 𝑥 and 𝑦 in a route of depot 𝐴. There is nochange in a route of depot 𝐵 (𝐶𝑥𝑖𝑦 < 𝐶𝑟𝑖𝑠).

The complete solution is evaluated and submitted to a local search procedurewith probability 𝜌𝑙𝑠. The local search is based on the same moves than those presented

Page 48: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 47

Figure 15 – Repair procedure – remove duplicates

Figure 16 – Repair procedure – insert customer

in Section 4.2.4. However, it is now possible for a customer to be moved from onedepot to another, thus changing individuals in the populations. This is the reason forthe population update at instant C in Figure 14. After the update, the PE module isnotified and can restart.

Each complete solution created is sent to the EG module at instant D in Figure14. The module checks if the complete solution can be part of the elite group, as it isexplained next.

4.2.6 Elite Group (EG) module

The Elite Group (EG) module maintains a set of 𝜏 elite complete solutions,including the best solution to the MDVRP found so far. This is illustrated in Figure 17.Assuming that a complete solution is submitted by the CSE module, the EG modulewill try to add the solution to the elite group. If there are less than 𝜏 solutions in the elitegroup, the solution is automatically added. Otherwise, the new solution can enter theelite group only if there is no solution with the same total cost and it is better than theworst solution in the group, in which case it replaces the latter. This condition attemptsto ensure the diversity in the elite group.

The local search for the elite group operates in two steps, called PR and RI,

Page 49: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 48

Figure 17 – Elite Group module.

where PR stands for Path Relinking and RI for Route Improvement. The local searchis run in a multithread environment with a thread for each solution in the elite group.

PR uses each solution in the elite group as an initial solution and the best so-lution so far as the guiding solution. This strategy is known as Forward Path Relinking(RESENDE; RIBEIRO, 2010). To apply PR in this setting, the difference between aninitial solution 𝑖 and the guiding solution 𝑔 must be calculated. We assume that eachcustomer in a solution is characterized by the vehicle serving this customer and thecorresponding depot. For each customer, the triplet (customer, depot, vehicle) from theguiding solution is added to set ∆ when it differs from the initial solution.

We refer to Figure 18 for an example. In this figure, we have one initial solution(Figure 18a) and a guiding solution (Figure 18b). There are two depots A and B, twelvecustomers and two vehicles at each depot (represented by the pentagons numbered1 and 2). The difference between the initial and guiding solutions corresponds to thenodes in gray, namely customers 2 and 11. Thus ∆ = {(2, 𝐵, 2), (11, 𝐴, 1)}. The tripletsin ∆ are then sequentially processed one by one to progressively modify the initialsolution. That is, the customer in the first triplet is removed from its route in the initialsolution and reinserted in the route indicated by the depot and vehicle of the guidingsolution. The insertion of customer in the new route uses also the least additional costheuristic, as defined in Section 4.2.5. Besides, the triplet is processed only if the totaldemand (the current demand of the route plus the demand of new customer) does notexceed the vehicle capacity. A new solution is obtained which is closer to the guidingsolution. The procedure is then applied again using the new solution and the secondtriplet. This is repeated until all triplets are done. It is hoped that a solution better thanthe guiding solution will emerge along the path between the initial and guiding solutions.

Page 50: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 49

(a) Initial solution

(b) Guiding solution

Figure 18 – Path Relinking

The RI improvement procedure is applied to the solution returned by PR. Thisprocedure is the local search mentioned in Section 4.2.5. It means that the local searchis only used after PR and not when the triplet is processed. If the solution obtained atthe end is better than the best solution, then the elite group is updated.

4.3 Computational results

The performance of the proposed CoES algorithm was assessed through anumber of computational experiments. They were conducted on the 33 MDVRP bench-mark instances taken from the literature (CORDEAU; GENDREAU; LAPORTE, 1997;CORDEAU; MAISCHBERGER, 2012; VIDAL et al., 2012; SUBRAMANIAN; UCHOA;OCHI, 2013; ESCOBAR et al., 2014)1. These instances are Euclidean and the timeunits are the same as the distance units. They are divided into S1 (𝑃01− 𝑃23) and S2(𝑃24− 𝑃33)2 and have various sizes ranging from 48 to 360 customers, see Table 4.

The algorithm was implemented in C++ 113 and all experiments were run on acomputer with two 2.50 GHz Intel Xeon (E5-2640) processors with 12 cores per CPU1 The MDVRP instances might also be obtained in <https://github.com/fboliveira/MDVRP-Instances>2 Those instances were proposed by Cordeau, Gendreau & Laporte (1997) and they are also named

pr01-pr10.3 C++ 2011 Standard

Page 51: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 50

and 96 GB RAM. The computer was run under the Ubuntu 14.04.1 LTS operationalsystem.

A first experiment was realized to set the parameter values, as it is discussed inSection 4.3.1. A comparison with the best solutions reported in the literature follows inSection 4.3.2. Comparison of run times is presented in Section 4.3.3.

4.3.1 Parameter settings

The algorithm stops when it reaches either the allowed total computation time𝑇𝑚𝑎𝑥 or the maximum computation time without improvement to the best solution 𝑇𝑢𝑝𝑑.Also, the number of individuals 𝜇 in each population and the maximum number of com-plete solutions in the elite group 𝜏 must be defined. Finally, the local search procedurein the PE and CSE modules are applied with a probability 𝜌𝑙𝑠.

After some preliminary tests and using some values commonly found in theliterature, lower and upper bound values were determined for the above parameters.These values are presented in Table 1.

Table 1 – Selected parameter values

Parameter Lower bound Upper bound𝑇𝑚𝑎𝑥 600 sec. 1,800 sec.𝑇𝑢𝑝𝑑 300 sec. 600 sec.𝜇 20 100𝜏 5 50𝜌𝑙𝑠 0.2 0.8

As there are two values (levels) for each parameter (factors), a 2𝑘 factorial ex-periment was designed to study the impact of each factor as well as their interactions.There are 5 factors with 2 levels each, resulting in 32 observations (25) for each in-stance. Selecting the instance in group S1 (𝑃01−𝑃23) from the benchmark, we obtaina total of 736 observations (i.e., 32 × 23). Given the large number of factors and totalobservations, an experiment with a single replication was performed. In this situation,the Sparsity-of-effects principle applies, that is, the main effects and low-order interac-tions usually dominate. Then, we can use an experiment with one replication and com-bine highest-order interaction for calculating the mean square error (MONTGOMERY;RUNGER, 2011; CAMPELO, 2015). The response variable corresponds to the gap be-tween the solution value obtained by CoES and the best-known solution value reportedin Vidal et al. (2012).

The experiment is performed with the Analysis of variance (ANOVA) methodfrom the R-Project (R Core Team, 2015). Among other assumptions, ANOVA requires

Page 52: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 51

a normal distribution for the residuals. As the number of samples is large, they areapproximately normal because of the Central Limit Theorem (CLT) and this assumptionis satisfied.

Table 2 reports only the significant factors and interactions identified by ANOVA.In this case, the null hypothesis states that there is no significant impact and a p-valuesmaller than 0.05 invalidates this assumption. Table 2 shows the significant factorsidentified by ANOVA along with their corresponding p-value.

Table 2 – Significant factors and interactions

Factor/Interaction 𝑝-value𝜇 < 2−16

𝜏 0.035𝜇 : 𝜌𝑙𝑠 : 𝜏 0.016

Two main factors and one interaction have a significant impact on the results.The most significant factor is the number of individuals in each population 𝜇. The sec-ond one is the elite group size 𝜏 . The third one corresponds to the interaction of the twoprevious factors with the local search rate 𝜌𝑙𝑠. Figure 19 shows box plots of the mainfactors. Based on these plots, 𝜇 was set to 20 and 𝜏 was set to 50.

20

100

0

2

4

6

8

Number of individuals

10

50

0

2

4

6

8

Elite group size

Figure 19 – Boxplots of the two main factors

Then, the other parameters can be set by fixing 𝜇 and 𝜏 to the above values andby observing the interactions. Figure 20 shows boxplots of the interaction of 𝜇 = 20 and𝜏 = 50 with 𝜌𝑙𝑠, 𝑇𝑚𝑎𝑥 and 𝑇𝑢𝑝𝑑, respectively. The parameter values associated with thefirst two boxplots are shown in the format 𝜇. 𝜏. 𝜌𝑙𝑠. In the case of the four last boxplots,the format is 𝜇. 𝜏. 𝜌𝑙𝑠. 𝑇𝑚𝑎𝑥 .𝑇𝑢𝑝𝑑. The interaction between 𝜇, 𝜏 and 𝜌𝑙𝑠 was shown to bea significant factor in Table 2. Figure 20 indicates that an appropriate value for 𝜌𝑙𝑠 is 0.2.

Page 53: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 52

With regard to 𝑇𝑚𝑎𝑥 and 𝑇𝑢𝑝𝑑, Figure 20 shows that suitable values are 𝑇𝑚𝑎𝑥 = 1, 800

and 𝑇𝑢𝑝𝑑 = 600.

20.5

0.0

.2

20.5

0.0

.8

0

1

2

3

4

5

6

7

Interaction with Pls rate

20.5

0.0

.2.6

00.3

00

20.5

0.0

.2.1

800.3

00

20.5

0.0

.2.6

00.6

00

20.5

0.0

.2.1

800.6

00

0

1

2

3

4

5

6

7

Interaction with Tmax and Tupd

Figure 20 – Boxplots of interactions

The final parameter settings for the CoES algorithm are summarized in Table 3.The comparison with other algorithms in the next section is based on these parametervalues.

The last two parameters in that table (𝜆 and 𝛼) were defined after some pre-liminary tests. Those tests suggest that results with 𝜆 = 𝜇 were promising. Besides,when it was applied a different value from 𝜆 and 𝜇 (𝜆 = 𝜇), the results have not sug-gested a significant difference. The parameter 𝛼, which represents the proportion ofcustomers in the RCL (Section 4.2.2), is defined as the ratio between the number ofclosest customers (𝑛𝑐) and the number of depots (𝑀 ) in the current problem (instance).

4.3.2 Comparison with other methods

The performance of our CoES was compared with the best heuristics proposedfor the MDVRP, namely, the tabu search (CGL) (CORDEAU; GENDREAU; LAPORTE,1997), the adaptive large neighborhood search (ALNS) (PISINGER; ROPKE, 2007),a fuzzy logic guided genetic algorithm (FLGA) (LAU et al., 2010), a parallel iteratedtabu search heuristic (ITS) (CORDEAU; MAISCHBERGER, 2012), a hybrid algorithm

Page 54: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 53

Table 3 – Final parameter values

Parameter Value𝑇𝑚𝑎𝑥 1.800 sec.𝑇𝑢𝑝𝑑 600 sec.𝜇 20𝜏 50𝜌𝑙𝑠 0.2𝜆 𝜇𝛼 𝑛𝑐

𝑀

combining Iterated Local Search and Set Partitioning (ILS-RVND-SP) (SUBRAMA-NIAN; UCHOA; OCHI, 2013), a hybrid genetic algorithm with adaptive diversity control(HGSADC+) (VIDAL et al., 2014) and a hybrid Granular Tabu Search (ELTG) (ESCO-BAR et al., 2014). The reported values were used, that is, none of those heuristicswere implemented here.

CoES was run 10 times on all benchmark instances, using the previously de-fined parameter settings. To remove any factor that could impact the performance, theorder of execution of all replicates was randomized. Note that heuristics CGL and ELTGwere run by their authors only once on each instance and the value reported was usedto compare with the best value of CoES.

The results from CoES are shown in Table 4. The instance name is in columnInst, 𝑀 is the number of depots, 𝑁 is the number of customers, 𝑄 is the vehicle capacityand 𝑇 is the maximum duration time4 of a vehicle route (∞ means that there is notime constraint). The next two columns present the average values for the processingtime (in seconds) and for the solution cost. Values equal to zero represent that CoESsolved the problem in less than one second. When (*) appears, the same solution wasproduced by CoES in each of the 10 runs. The last column shows the best solution costobtained by CoES.

The best and mean solution values, when compared with the other methods,are shown in Tables 5 and 6, respectively. These tables report the gap (in %), that is,

100× (𝑍𝐶𝑜𝐸𝑆 − 𝑍𝑙𝑖𝑡)

𝑍𝑙𝑖𝑡

where 𝑍𝐶𝑜𝐸𝑆 is the solution value of CoES and 𝑍𝑙𝑖𝑡 the value of one of the other meth-ods (as reported in the literature). A negative value indicates that CoES performs bet-ter.

The Average line reports the average gap over all instances. The lines S1𝑎𝑣𝑔 andS2𝑎𝑣𝑔 show the average gap over the instances in each subset. The Sum line reports4 These values do not represent a specific time unit.

Page 55: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 54

Table 4 – CoES(𝜆 = 𝜇): results

Inst 𝑀 𝑁 𝑄 𝑇Average values Best costTime (s) Cost

P01 4 50 80 ∞ 1.00 (*) 576.87 576.87P02 4 50 160 ∞ 0.50 475.06 473.87P03 5 75 140 ∞ 2.50 643.57 641.19P04 2 100 100 ∞ 189.70 1011.42 1007.40P05 2 100 200 ∞ 26.60 752.39 750.11P06 3 100 100 ∞ 77.30 877.86 876.50P07 4 100 100 ∞ 24.20 893.36 888.41P08 2 249 500 310 803.40 4474.23 4450.37P09 3 249 500 310 513.30 3904.92 3895.70P10 4 249 500 310 719.90 3680.02 3666.35P11 5 249 500 310 396.20 3593.37 3569.68P12 2 80 60 ∞ 0.90 (*) 1318.95 1318.95P13 2 80 60 200 0.00 (*) 1318.95 1318.95P14 2 80 60 180 0.00 (*) 1360.12 1360.12P15 4 160 60 ∞ 107.00 2549.65 2526.06P16 4 160 60 200 8.20 (*) 2572.23 2572.23P17 4 160 60 180 14.70 2733.80 2709.09P18 6 240 60 ∞ 429.10 3781.66 3771.35P19 6 240 60 200 72.60 (*) 3827.06 3827.06P20 6 240 60 180 190.20 4094.86 4058.07P21 9 360 60 ∞ 554.90 5668.97 5608.26P22 9 360 60 200 214.00 5708.78 5702.16P23 9 360 60 180 529.30 6159.90 6129.99P24 4 48 200 500 0.00 (*) 861.32 861.32P25 4 96 195 480 370.95 1311.83 1306.44P26 4 144 190 460 452.48 1812.86 1806.53P27 4 192 185 440 872.02 2098.21 2060.85P28 4 240 180 420 399.90 2441.42 2392.31P29 4 288 175 400 808.95 2780.06 2760.03P30 6 72 200 500 134.93 1092.70 1089.56P31 6 144 190 475 343.88 1691.90 1665.01P32 6 216 180 450 1107.15 2169.92 2150.52P33 6 288 170 425 216.22 2971.21 2913.66

Average 290.36 2460.89 2445.61S1𝑎𝑣𝑔 211.98 2694.69 2682.55S2𝑎𝑣𝑔 470.65 1923.14 1900.62Sum 9581.98 81209.43 80704.97

S1𝑠𝑢𝑚 4875.50 61978.00 61698.74S2𝑠𝑢𝑚 4706.48 19231.43 19006.23

the total amount of time and cost over all instances. The lines S1𝑠𝑢𝑚 and S2𝑠𝑢𝑚 showthe sum of those values over the instances in each subset. In the Tables, the entries inbold indicate that the same or better solution values were obtained by CoES over thecorresponding method.

With regard to the solutions reported in Table 4 labeled with (*), it should benoted that the gap with the other methods in Table 6 for those instances is always null(𝑔𝑎𝑝 = 0.00) or negative (𝑔𝑎𝑝 < 0.00). When considering the gap between CoES andthe other methods in Table 6 for the mean values, the average over all test instances

Page 56: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 55

Table 5 – CoES(𝜆 = 𝜇): comparison with results of the literature – Best values

Instance CGL ITS ILS-RVND-SP HGSADC+ ELTGP01 0.00 0.00 0.00 0.00 0.00P02 0.00 0.07 0.07 0.07 0.07P03 -0.61 0.00 0.00 0.08 0.00P04 0.07 0.64 0.64 0.82 0.64P05 -0.43 0.01 0.01 0.01 0.01P06 -0.15 0.00 0.00 0.00 0.00P07 -0.40 0.73 0.73 0.73 0.42P08 -0.72 1.41 1.62 1.77 1.80P09 -0.64 0.90 0.94 0.96 0.38P10 -1.30 0.97 0.96 0.97 1.01P11 -0.31 0.62 0.67 0.67 0.69P12 0.00 0.00 0.00 0.00 0.00P13 0.00 0.00 0.00 0.00 0.00P14 0.00 0.00 0.00 0.00 0.00P15 -0.32 0.82 0.82 0.82 0.82P16 0.00 0.00 0.00 0.00 0.00P17 -0.41 0.00 0.00 0.00 0.00P18 1.64 1.85 1.85 1.85 1.85P19 0.00 0.00 0.00 0.00 0.00P20 0.00 0.00 0.00 0.00 0.00P21 1.31 2.44 2.44 2.44 2.44P22 -0.24 0.00 0.00 0.00 0.00P23 -0.16 0.84 0.84 0.84 0.57P24 0.00 0.00 0.00 0.00 0.00P25 -0.65 -0.07 -0.07 -0.07 -0.36P26 -0.50 0.15 0.15 0.15 0.15P27 -1.59 0.12 0.12 0.07 -0.16P28 -0.66 2.62 2.62 2.22 1.82P29 -0.29 3.08 2.96 2.91 1.83P30 -0.23 0.00 0.00 0.00 0.00P31 -0.67 0.01 0.01 0.00 -0.03P32 -1.21 0.81 0.81 0.77 -0.04P33 -5.70 1.23 1.37 0.94 0.10

Average -0.43 0.58 0.59 0.58 0.42S1 -0.12 0.49 0.50 0.52 0.47S2 -1.15 0.80 0.80 0.70 0.33

is always smaller than 1.2%. It is less than 0.9% for subset S1, and less than 1.9%for S2. When considering the gap in Table 5 for the best values, the average over alltest instances is always less than 0.6%. Besides, better results (𝑔𝑎𝑝 < 0) were found.Those results suggest that CoES provides competitive results.

As HGSADC+ uses an evolutionary approach, some analyses have been per-formed using average costs and time for that method as a reference. Figure 21 showsthe average gap with HGSADC+ when the instances are sorted in increasing orderof the ratio between the number of customers and the number of depots. The graphpresents a subtle trend suggesting that increasing the number of customers in eachsubproblem could make the problem harder for CoES. However, the correlation factoris 𝑅2 = 40.20% and needs to be further investigated.

Page 57: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 56

Figure 21 – Average gap based on the ratio between customers and depots.

Figure 22 shows the average gap with HGSADC+ when the instances are sortedin increasing order of the ratio between the number of customers assigned to more thanone depot and the number of depots. It measures the overlap among the subproblems.The results suggest that the performance of the coevolutionary approach is not directlyaffected by this characteristic, even for instances in which the overlap is important, e.g.,P08 and P33.

Figure 22 – Average gap based on the ratio between customer assignments and de-pots.

Overall, the coevolution paradigm was able to produce competitive solutions,even if its inherent parallel nature was not fully exploited in our implementation.

Page 58: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 57

Table 6 – CoES(𝜆 = 𝜇): comparison with results of the literature – Mean values

Instance CGL ALNS FLGA ITS ILS-RVND-SP HGSADC+ ELTGP01 0.00 0.00 0.00 0.00 0.00 0.00 0.00P02 0.25 0.32 0.32 0.32 0.32 0.32 0.32P03 -0.25 0.37 0.37 0.37 0.37 0.46 0.37P04 0.47 0.53 0.98 1.01 1.04 1.08 1.04P05 -0.13 0.01 0.04 0.31 0.29 0.31 0.31P06 0.00 -0.58 -0.55 0.16 0.16 0.16 0.16P07 0.16 0.45 0.61 1.29 1.29 1.29 0.98P08 -0.18 1.20 0.81 1.60 1.83 2.07 2.35P09 -0.41 0.32 -0.29 0.92 1.05 1.14 0.62P10 -0.93 0.36 0.28 1.17 1.25 1.33 1.39P11 0.35 0.56 0.32 1.27 1.33 1.30 1.36P12 0.00 -0.01 0.00 0.00 0.00 0.00 0.00P13 0.00 0.00 0.00 0.00 0.00 0.00 0.00P14 0.00 0.00 0.00 0.00 0.00 0.00 0.00P15 0.61 1.19 1.42 1.77 1.77 1.77 1.77P16 0.00 -0.07 -0.24 0.00 0.00 0.00 0.00P17 0.50 0.91 0.91 0.91 0.87 0.91 0.91P18 1.92 1.21 1.43 2.13 2.13 2.13 2.13P19 0.00 -0.30 -0.35 0.00 -0.01 0.00 0.00P20 0.91 0.74 0.78 0.91 0.91 0.91 0.91P21 2.40 3.04 2.59 3.55 3.55 3.55 3.55P22 -0.13 -0.23 -0.42 0.12 0.05 0.12 0.12P23 0.33 1.10 1.00 1.33 1.33 1.31 1.06P24 0.00 0.00 0.00 0.00 0.00 0.00 0.00P25 -0.24 0.34 -0.08 0.34 0.25 0.34 0.06P26 -0.15 0.38 0.18 0.48 0.49 0.50 0.50P27 0.19 1.81 1.06 1.81 1.81 1.94 1.65P28 1.38 4.43 2.09 4.46 4.42 4.73 3.91P29 0.43 3.44 1.87 3.62 3.53 3.88 2.57P30 0.05 0.29 0.29 0.29 0.29 0.29 0.29P31 0.93 1.63 1.52 1.58 1.61 1.63 1.59P32 -0.32 1.57 0.83 1.45 1.62 1.72 0.86P33 -3.83 2.82 1.77 2.93 3.08 3.59 2.08

Average 0.13 0.84 0.59 1.09 1.11 1.18 1.00S1 0.26 0.48 0.44 0.83 0.85 0.88 0.84S2 -0.16 1.67 0.95 1.70 1.71 1.86 1.35

Figure 23 illustrates a solution to the MDVRP provided by CoES. The solutionrefers to instance P01, with 4 depots and 50 customers, and is the optimal result. Allnumbers with gray background represent the depot. It is also presented the routes foreach depot. The customers are assigned to a depot according to the rules defined inSection 4.1. Those rules are important because there are some customers with a directassociation, as the customer 40. That customer is assigned only to the depot 1. How-ever, some customers are assigned to more than one depot. For instance, customer33 is assigned to the depot 3 (rule 1), and is also assigned to the depot 1 (rule 2). Thisrule is applied because the closest customer to 33 is 45. The customer 45 is assignedto the depot 1 because the other customers (15, 37, 44, 17) and respectively proximityof each one.

Page 59: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 58

The condition of customer 33 indicates that the rule 2 (the closest depot tothe closest neighbour node) is important and necessary. This rule might contribute tothe diversity, in which different allocations for a customer are allowed. It is noteworthythat the optimal solution has the customer 33 assigned to depot 1, and this might bepossible because of the rule 2.

0 10 20 30 40 50 60 700

10

20

30

40

50

60

70

1

2

3

41

2

3

4

5

6

7 8

9

10

11

12

13

14

15

16

17

18

19

20

21

2223

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

Figure 23 – CoES solution to the MDVRP – instance P01.

4.3.3 Comparison of run times

In order to compare the CPU times between the method proposed in this workand HGSADC+ (VIDAL et al., 2014), a conversion procedure is required. The perfor-mance of several computers is reported by Dongarra (2014) when solving dense sys-tems of linear equations. This conversion uses the amount of floating point operationsper second (flop/s) as reference and the measure is estimated using the LINPACKBenchmark (DONGARRA, 2014). The processor used in Vidal et al. (2014) (AMDOpteron 250 2.4 GHz) is reported with 1291 Mflop/s. This value is computed with amatrix of order 100 (defined as problem size). However, the environment used in ourwork is not reported and an experiment was conducted to obtain the (flop/s) underthe same conditions. The LINPACK Benchmark was obtained from Intel5 and a testwas performed using 100 equations (problem size) and 100 trials. The average resultof this test is 2787 Mflop/s. Therefore, a scaling factor of 2.16 is obtained by dividing2787 Mflop/s by the reported value of 1291 Mflop/s in Vidal et al. (2014).

Table 7 shows the run times of our method (in minutes) in contrast to the runtimes reported for HGSADC+, considering the conversion factor. The column CoES𝑎𝑑𝑗

corresponds to the adjusted time for our method. The average times in seconds CoES𝑠𝑒𝑐

reported in Table 4, column 𝑇𝑖𝑚𝑒(𝑠), were transformed into the corresponding adjusted5 Available at: <http://goo.gl/1ZEYbj>

Page 60: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 59

Table 7 – Comparison of run time

Inst Time (min) SpeedupCoES𝑎𝑑𝑗 HGSADC+P01 0.04 1.09 27.25P02 0.02 1.69 84.50P03 0.09 2.53 28.11P04 6.83 3.43 0.50P05 0.96 4.89 5.09P06 2.78 3.02 1.09P07 0.87 3.75 4.31P08 28.92 19.93 0.69P09 18.48 19.51 1.06P10 25.92 17.71 0.68P11 14.26 17.14 1.20P12 0.03 2.85 95.00P13 0.00 2.85 285.00 (*)P14 0.00 2.53 253.00 (*)P15 3.85 7.79 2.02P16 0.30 7.75 25.83P17 0.53 8.31 15.68P18 15.45 14.01 0.91P19 2.61 15.11 5.79P20 6.85 16.20 2.36P21 19.98 20.07 1.00P22 7.70 20.00 2.60P23 19.05 20.00 1.05P24 0.00 2.05 205.00 (*)P25 7.12 4.67 0.66P26 8.69 8.84 1.02P27 16.74 12.84 0.77P28 7.68 19.51 2.54P29 15.53 20.00 1.29P30 2.59 3.04 1.17P31 6.60 7.85 1.19P32 21.26 15.65 0.74P33 4.15 20.00 4.82Average 8.06 10.50 32.24S1 7.63 10.09 36.73S2 9.04 11.45 21.92

values (in minutes) as follows:

𝐶𝑜𝐸𝑆𝑎𝑑𝑗(𝑚𝑖𝑛) =𝐶𝑜𝐸𝑆𝑠𝑒𝑐 * 2.16

60

The column 𝐻𝐺𝑆𝐴𝐷𝐶+ is the average computation time in minutes of HGSADC+.The speed-up 𝑆 of our method is:

𝑆 =𝐻𝐺𝑆𝐴𝐷𝐶+

𝐶𝑜𝐸𝑆𝑎𝑑𝑗

Page 61: Cooperative Coevolutionary Models for the MDVRP

Chapter 4. Cooperative coevolutionary model for the MDVRP 60

When (*) appears, the CoES𝑎𝑑𝑗 is equal to zero and the speed-up would not becalculated (division by zero). Then, it was used 0.01 as time of CoES𝑎𝑑𝑗 to perform theoperation. Nevertheless, the value zero was reported.

The reported computation times of CoES are generally smaller than those ofHGSADC+. This computational efficiency might be due to the decomposition in thecoevolutionary algorithm combined with our parallel implementation (which could beimproved, for example, through massive parallelism on GPUs).

4.4 Final considerations

This chapter presented a cooperative coevolutionary algorithm to solve the MD-VRP. In this algorithm, each depot is associated with a population with its assignedcustomers. Individuals in each population represent partial single-depot solutions tothe problem. Each population evolves separately, but the quality of an individual de-pends on its ability to cooperate with partial solutions from other populations to form agood complete solution to the MDVRP.

The results show that our coevolutionary algorithm produces competitive so-lutions when compared with the best known solutions, even improving some of them.Besides, it is faster than HGSDAC+, which is the best method reported in the literature.The benefit of our approach comes from its ability to decompose complex problems intosimpler subproblems and evolve solutions to the subproblems in parallel. The decom-position approach also makes the method more scalable. In large MDVRP instances,it is unlikely that customers close to a depot will be allocated to a distant depot. There-fore, the coevolutionary algorithm incorporates important characteristics of a probleminstance and allows a reduction of the search space. Moreover, the evolutionary engineleads to simpler representations and genetic operators.

The coevolutionary algorithm proposed in this work would greatly benefit fromparallel architectures, as cloud computing architectures, cluster computing and GPUprogramming. Then, the next chapter will present the GPU concepts and some studiesof CoES in this environment.

Page 62: Cooperative Coevolutionary Models for the MDVRP

61

5 Coevolutionary GPU model for theMDVRP

“Nothing in life is to be feared, it is only to be understood.Now is the time to understand more,

so that we may fear less.”

— Marie Curie (1867 – 1934).

Graphics processing units (GPUs) are specialized on images rendering andwere built to games industry. Given the crescent demand for 3D graphics and high def-inition, the GPU has evolved into a massive parallel environment, highly multi-threadedprocessors, with hundreds of cores, thousands of concurrent threads and very highmemory bandwidth (NVIDIA, 2015).

Due to these characteristics, the GPUs have been used for general-purposecomputation (General-Purpose computation on Graphics Processing Units – GPGPUor GPU Computing). These techniques have started with the release of the CUDAframework (Compute Unifed Device Architecture) by NVIDIA (NVIDIA, 2015). CUDAallows GPU processing in several applications in different segments.

MDVRP is a combinatorial problem and demands several operations to be solved.The problem was decomposed and each part evolves independently. Those problemswere solved in asynchronous way and in parallel with CoES (Chapter 4). There aresome processes, as local search, evolution, evaluation, among others, which also de-mand several operations. Those operations might be performed in parallel using GPUenvironment. GPU might be employed in all processes or in parts of them. For instance,mutation does not depend on another individual to be executed. Then, each mutationmight be processed in parallel. Equivalently, the local search, which uses two routes,might also be performed in parallel. As those processes demand several operationsand they might be executed in parallel independently, it is proposed a new versionof CoES using GPU computing. It is expected that the new version might solve theMDVRP in less time, as compared with the CoES.

The main GPU concepts, its architecture and GPGPU fundamentals are pre-sented in Section 5.1. A literature review of GPGPU applications in VRP context isshown in Section 5.2. The proposed GPU CoES model is defined in Section 5.3. Com-putational experiments were used to evaluate the proposed method and are presentedin Section 5.4. Conclusion and final considerations are shown in Section 5.5.

Page 63: Cooperative Coevolutionary Models for the MDVRP

Chapter 5. Coevolutionary GPU model for the MDVRP 62

5.1 GPU concepts

5.1.1 GPU architecture

Graphics Processing Unit dedicates more transistors to data processing ratherthan storage and control flow (NVIDIA, 2015). A comparison between GPU and CPUarchitectures is shown in Figure 24.

Figure 24 – CPU and GPU comparison – Image from NVIDIA (2015)

There are more units of Control, Cache and Arithmetic Logic Unit (ALU) on GPUthan CPU. This architecture allows many data-parallel computations. Initially GPUswere define to process games. There are many operations performed to render gamesgraphics and those operations have to be executed fast. This process is defined asgraphics pipeline. As some parts of this pipeline are programmable, this devices wereemployed to perform general computations and to take advantage of massive parallelenvironment. This technique is known as General-Purpose computation on GraphicsProcessing Units and is discussed next.

5.1.2 General-Purpose computation on Graphics Processing Units

The evolution of GPUs has allowed the improvement of computational resourcesand these units can be employed to general-purpose by means of APIs (ApplicationProgramming Interface) and languages, as C/C++. GPGPU was possible when NVIDIAintroduced CUDA framework in 2006 (NVIDIA, 2015). CUDA is a parallel architecturethat allows developers to use GPU for computation in several segments, as industry,chemistry, biology, medicine, among others (HWU, 2011). The first GPU with CUDAsupport was the GeForce 8800 GTX (SANDERS; KANDROT, 2011).

Units made by other manufacturers use OpenCL (Open Computing Language)as parallel architecture for heterogeneous systems, composed of CPUs and GPUs.

Page 64: Cooperative Coevolutionary Models for the MDVRP

Chapter 5. Coevolutionary GPU model for the MDVRP 63

OpenCL was developed by Apple Inc. and it is licensed to Khronos Group for use anddistribution1.

5.1.2.1 Compute Unifed Device Architecture – CUDA

The CUDA architecture is composed of one or more CPUs, called host, andone or more GPUs, named device. This allows either mono or multi-GPUs parallel en-vironments. The compilation process creates instruction sets separately for executingon the host (as a C code) and on the device (as assembler, named PTX, and/or binarymode, named cubin). The compiler is NVIDIA Cuda Compiler (NVCC), which syntax issimilar to GNU GCC (NVIDIA Corporation, 2015).

The code that will be run on the host or on the device is defined by FunctionType Qualifiers. The main function executed 𝜂 times in parallel by 𝜂 different CUDAthreads is named kernel and has the qualifier __global__. This function is executedon the device callable from the host. The number of CUDA threads is specified using aexecution configuration syntax (<<< ... >>>). There are others qualifiers. The __de-vice__ declares a function that is executed on the device and callable from the deviceonly. The __host__ declares a function that is executed on the host and callable fromthe host only. The __device__ and __host__ can be used together and those func-tions are called both on the device and on the host. Therefore, NVCC compiles thefunction to both environments (NVIDIA, 2015).

Blocks are organized into a one-dimensional, two-dimensional, or three-dimen-sional grid of thread blocks as represented by Figure 25. The number of thread blocksin a grid is determined by the size of the data being processed or the number of pro-cessors in the system (NVIDIA, 2015).

CUDA is only supported by NVIDIA GPUs. Each GPU has a compute capa-bility that defines operations and precision. For instance, floating-point operations areallowed in version greater than or equal to 1.3.

5.1.2.1.1 Unified Memory Programming

CUDA 6 introduced a new model of memory management namely Unified Mem-ory (UM). Before that version, the principal mode to process in GPU was copying datafrom CPU memory to device memory. At the end of process, the result data was copiedto CPU memory again. This condition would lead to a huge throughput and compro-mise the performance.1 <http://www.khronos.org/opencl/>

Page 65: Cooperative Coevolutionary Models for the MDVRP

Chapter 5. Coevolutionary GPU model for the MDVRP 64

Figure 25 – Grid of Thread Blocks.Image from NVIDIA (2015)

In this model, processes use memory in a common and a single space. It meansthat it is not necessary to transfer data between CPU and GPU several times. Thespace memory is reserved once and both CPU and GPU can access the same data.Concurrent access to the same position in memory has to be observed to avoid prob-lems.

There are some requirements to use UM, as compute capability 3.0 or higherand 64-bit application and operating system (Linux or Windows). For more informationrefer to NVIDIA (2015).

5.1.2.1.2 Concurrent Kernel Execution

CUDA allows asynchronous executions, as memory copy and computations.Concurrent kernels can be invoked to process data on GPU improving the device us-age and the performance of application. The concurrent execution has to observe theamount of data processed. Kernels with large amount of data would not be executed

Page 66: Cooperative Coevolutionary Models for the MDVRP

Chapter 5. Coevolutionary GPU model for the MDVRP 65

concurrently with others kernels. This situation would cause less performance of ker-nels, time-out or other undefined problems.

Nevertheless, concurrent kernels is allowed only in the same CUDA context.Streams are used to perform concurrent operations. This resource works as a com-mand set and instructions are operated together in the same context. To process con-current operations, a stream is created, data are transferred, if necessary, and thekernel is executed in that stream. After the process, the stream is destroyed. This lifecycle would spend more time to be operated and its employment has to be studiedcarefully.

Concurrent kernels are available on devices with compute capability 2.0 orhigher. For more information about concurrent kernels and streams refer to NVIDIA(2015).

5.1.2.2 OpenCL

OpenCL is a free framework with a programming language, APIs and librariesfor heterogeneous computing. Those systems can be composed of CPUs, GPUs andother processors, from several manufacturers, as Intel, AMD, NVIDIA, among others.Moreover, the proposition of OpenCL is that it can be executed in smartphones andvideo-games, such as Sony Playstation 3 (MUNSHI et al., 2011; SCARPINO, 2012).

The structure of OpenCL is similar to CUDA. However, as the system is het-erogeneous, there are some different concepts and terms. Program is a kernels set.Kernels are executed on the OpenCL device and have the qualifiers __kernel or ker-nel. An OpenCL device is composed of one or more processing elements, which areformed from one or more local memory. Work-item is a set of parallel execution ofkernel on the device.

The syntax is usually more difficult than CUDA. Some characteristics of impliedspecification may be more complex. The understanding of the syntax can be difficult atfirst, even for those familiar with C/C++ (GASTER et al., 2012).

The portability is an advantage of OpenCL. As it can be used in GPUs fromdifferent manufacturers, this may help the migrations between devices with OpenCLsupport and according to the current specification.

5.2 Literature review

There are GPGPU applications in several areas, as security (SANCI; ISLER,2011), medicine (CHEN et al., 2010), bioinformatics (BUSTAMAM; BURRAGE; HAMIL-

Page 67: Cooperative Coevolutionary Models for the MDVRP

Chapter 5. Coevolutionary GPU model for the MDVRP 66

TON, 2012), DNA sequencing (TRAPNELL; SCHATZ, 2009), among others. In thecontext of this work, some applications are presented below.

Parallel metaheuristics on the GPU are presented by Van Luong (2011), as wellas Tabu Search (TS) by Luong et al. (2010). A parallel Local Search application isshown in Luong, Melab & Talbi (2011) and Schulz (2013).

A Genetic Algorithm is proposed to solve Quadratic Assignment Problems (QAP)by Tsutsui & Fujimoto (2009), Tsutsui & Fujimoto (2010). Real and binary representa-tions on the GPU are studied by Arora, Tulshyan & Deb (2010) and Huang, Huang &Lai (2012), which propose modified genetic operators. A parallel Particle Swarm Opti-mization is defined in Mussi et al. (2010), as well as a Ant Colony Optimization (ACO)is shown by Delévacq et al. (2012).

A Differential Evolution (DE) with self-adaptation of parameters is presentedby Wang, Rahnamayan & Wu (2012). A coevolutionary approach of DE is presentedby Fabris & Krohling (2011) to solve Min-Max problems. Evolutionary approaches areapplied to data mining by Wong & Cui (2010). New evolutionary methods on the GPUare purposed in Luong, Melab & Talbi (2010) and Green et al. (2012).

5.2.1 GPU applications to VRP and MDVRP

Some works are found in the literature using GPU to solve VRP and its vari-ants. A parallel version of Simulated Annealing (SA) is proposed by Li et al. (2010) tosolve VRP with Time Windows (VRPTW). A hybrid version of Variable NeighborhoodDescent (VND) is presented by Coelho et al. (2012), Coelho et al. (2016) and appliedto Single Vehicle Routing Problem with Deliveries and Selective Pickups (SVRPDSP).Ant Colony Optimization (ACO) is used by Diego et al. (2012) as a parallel version onGPU to solve Capacitated Vehicle Routing Problem (CVRP).

Local searches are investigated on the GPU by Schulz (2013). It is studiedbest improving strategy for the 2-opt and 3-opt operators for CVRP and Distance-constrained Capacitated VRP (DCVRP). CUDA kernels are created for each operator.The largest instance has 2401 cities.

The methodology for using the GPU, the environment and main resources andthe largest instance sizes (Size) of the works are summarized in Table 8.

A survey about using of GPU in discrete optimization problems was presentedby Schulz et al. (2013). In special for routing problems, it is described that there aresome works in the literature using GPU to process and solve Traveling Salesman Prob-lem (TSP) and a few ones to VRP. It is discussed that GPU is used in some part of thealgorithm and not fully employed with CPU.

Page 68: Cooperative Coevolutionary Models for the MDVRP

Chapter 5. Coevolutionary GPU model for the MDVRP 67

Table 8 – Summary of VRP with GPU applications

Work Problem Algorithm Methodology Environment SizeLi et al. (2010) VRPTW SA generate a new

solutionGeForce 9800GT 500 cities

Coelho et al. (2012) SVRPDSP VND best improvementmethod for eachneighborhoodstructure

GeForce GTX 560 Ti 101 cities

Diego et al. (2012) CVRP ACO evolution process GeForce GTX460 700 citiesSchulz (2013) CVRP/DCVRP LS kernels for the op-

eratorsGeForce GTX 480 2401 cities

As far as we know, there is only one work in literature using GPU to solve MD-VRP. A special class of this problem in emergency logistics is studied by Li, Lv & Liu(2011) using a GA model. It is defined a synchronous process and each chromosomewas associated to one thread to be evolved. The results were not compared with theliterature and it was only considered the speed-up between CPU and GPU versions.It was used a Intel Core 2 processor and a GeForce GTX 460. The largest instancehas 200 customers. It was described a reduction of computation time for the largestinstance from 182499 ms to 191 ms (speed-up of 964.92).

5.3 Parallel evolution strategy on the GPU

The proposed parallel environment presented in Section 4.2 uses an EvolutionStrategy (ES) paradigm and supports the evolution of our cooperative coevolutionarymodel. It runs asynchronously and the modules are operated in parallel. This sectionintroduces a new version of this environment, called CoESGPU, in which GPU compu-tations are aggregated. A preliminary study is presented in Section 5.3.1 and defineshow and where those computations would be inserted. After the study, the new parallelGPU environment is proposed and is defined in Section 5.3.2.

5.3.1 Preliminary study

This preliminary study presents some possible parts to aggregate GPU compu-tations and considerations about each part, as well as advantages and disadvantages.It has been considered the following operations to be executed on the GPU:

∙ Mutation – PE module (Section 4.2.4)

∙ Local Search – PE and EG modules (Section 4.2.6)

Page 69: Cooperative Coevolutionary Models for the MDVRP

Chapter 5. Coevolutionary GPU model for the MDVRP 68

Local search operations are applied in two different locations. The first one isin population evolve module after evaluation. The second location is in elite group oncomplete solutions. The trial changes on each operation is presented next.

The evaluation would be also considered as a process to be performed on theGPU. Nevertheless, as the problem is represented as a giant tour, and demands theSplit algorithm to create routes, those processes would not be suitable for GPU. As theprocess is performed, it depends on memory allocation to create each route from thegiant tour. Memory allocation on the GPU would spend more time and resources to beperformed and would compromise the process.

5.3.1.1 Mutation

CoES uses mutation as main operator and each parent generates 𝜆 offspring.After mutation, each individual is evaluated and is submitted to a Local Search proce-dure with a certain probability, as illustrated in Figure 13.

The first attempt was to implement mutation operations on the GPU, changingthe evolutionary process. In the CoES, mutation is performed for each individual inde-pendently. CoEsGPU performs all mutation operations of each population on the GPU.Figure 26 presents changes in essential part of the PE module. These changes oc-cur after notification from CSE module [wait CSE(p)] and before selection [Selection(𝜇 + 𝜆)].

A UM structure is created and individuals are transferred to GPU memory. GPUmutation is performed 𝜆 times using the following steps. For each individual, a self-adaptation procedure defines the number of mutations. A CUDA kernel operates mu-tation on the GPU. Offspring are copied from GPU to CPU memory and inserted in aset. After mutation, offspring (set) are evaluated and submitted to a local search with acertain probability. The next step is selection and occurs as defined in PE module.

When GPU mutation was incorporated to the environment, some problems werefound. As CoES runs asynchronous, concurrent kernels are performed. This questioncould be solved in two ways. The first one is using locking GPU mutation by exclusivethread operations (mutex). The other processes are paused until mutation is com-pleted in a population. Tests with some instances were performed and results suggestthe mean total time increase. Besides, this solution would compromise the parallel andasynchronous environment because similar processes have to wait other ones to beexecuted. Locking threads are acceptable when an update is critical and would col-lide with other ones, as the best solution is changed. The second manner is applyingstreams. A stream is created and data are transferred to GPU in that context. Mutationis operated, data are copied back to CPU memory and stream is destroyed. Figure

Page 70: Cooperative Coevolutionary Models for the MDVRP

Chapter 5. Coevolutionary GPU model for the MDVRP 69

Figure 26 – Mutation on the GPU.

27 illustrates the time line of kernel operation2. The result suggests the time to createand allocate data (cudaMallocManaged) is higher than the time to process mutation.This condition would spend more time allocating and cause degrading performance inparallel environment. Tests using instances selected randomly suggest the mean totaltime also increase.

Figure 27 – Kernel executing timeline.

The proposed GPU mutation in a parallel and asynchronous environment wouldrealize more operations together and improve the performance. However, results sug-2 This picture was generated using NVIDIA Visual Profiler in Windows environment. For more infor-

mation refer to <http://docs.nvidia.com/cuda/profiler-users-guide/>

Page 71: Cooperative Coevolutionary Models for the MDVRP

Chapter 5. Coevolutionary GPU model for the MDVRP 70

gest the mean total time increase. This outcome would be due to the characteristics ofCoES. GPU mutation needs to be further investigated, for instance, in a synchronousCPU environment.

5.3.1.2 Local search

As local search is an expensive operation, some moves were chosen to beperformed on the GPU. Initially moves 1 and 4 were selected due to the simplicity tooperate each change and calculate the difference between and after moves.

Local search is performed in PE module, after (partial) individual evaluation,and in EG module using complete solutions. In both cases, moves are applied usingtwo routes, 𝑈 and 𝑉 , when they are the same route (𝑈 == 𝑉 ) or are different (𝑈 = 𝑉 ).As the process would be more expensive and justify the use of GPU computation, pre-liminary tests were performed only with different routes (𝑈 = 𝑉 ). Figure 28 illustrateslocal search process on the GPU. Routes 𝑈 and 𝑉 are copied to GPU memory. Thekernel calculates costs of operating all moves from 1 or 4 and stored them. In the end,the kernel defines which neighborhood is the best in the current move, if it exists. Thebest move means the smallest cost to be operated and that reduces the total cost ofroute. CoES local search stops as soon as an improving move is found. In the GPUversion, all possible moves of one type are calculated and the best of them, if it exists,is applied.

Figure 28 – Local search on the GPU.

As data used to calculate the differences from customers and depots are ac-cessed several times on the GPU, they are stored once in a UM structure. Data arecopied to GPU memory in the beginning of application and are kept there until the endof processing time (stop criteria, Section 4.2.3).

Page 72: Cooperative Coevolutionary Models for the MDVRP

Chapter 5. Coevolutionary GPU model for the MDVRP 71

The results of LS in PE module present the same problem of mutation. As theprocess would be applied to all offspring, concurrent kernel are found and the time tocopy data to/from GPU is more expensive than LS operations in some cases. Lockingthreads and streams were applied and the results suggest the mean total time alsoincrease.

The LS on the GPU were applied in EG module too. When it was applied inboth places, PE and EG modules, the results suggest concurrent kernel is higher thanin other cases. The use of locking and streams results in the same increase of time.However, when LS is applied in EG module with a few solutions results suggest a smallincrease of performance.

As Schulz (2013) reports the improvement of LS on the GPU with algorithmbased on 2-opt and 3-opt, the previous moves were replaced to moves 7, 8 and 9(Section 4.2.4). Those moves are more expensive and the performance would be im-proved due to the characteristics of moves. Move 7 is executed in the same route whilemoves 8 and 9 are applied only in different routes. Besides, as previously observed,this version of LS is applied only in EG module. The results suggest a concurrent ker-nel, as indicated in previous tests, meanwhile they also suggest a small decrease ofthe mean total time.

Those preliminary studies were fundamental to understand how GPU computa-tion are supported in parallel environment and their implications on performance. Theparallel GPU environment is proposed using moves 7, 8 and 9 in EG module and ispresented next.

5.3.2 The proposed parallel GPU environment

The proposed parallel GPU environment, CoEsGPU, introduces GPU computa-tion in the CoES. More specifically, local search moves in EG modules are performedon the GPU. Figure 29 presents changes in EG module to incorporate GPU compu-tation. The process is associated to Local Search and works as presented in Figure30.

To avoid concurrent kernels and stream overheads, only one complete solutionSol is randomly selected in EG and submitted to the GPU computation. A move is alsorandomly selected to be operated. If move is equal to 7, 8 or 9, routes 𝑈 and 𝑉 aresubmitted to GPU computation. Otherwise they are submitted to the CPU as usual.Those routes are randomly defined and transferred to GPU memory using Thrust De-vice Vector3. This library implements parallel primitives and algorithms, and helps copy3 thrust::device_vector

Page 73: Cooperative Coevolutionary Models for the MDVRP

Chapter 5. Coevolutionary GPU model for the MDVRP 72

Figure 29 – Elite Group with GPU computation.

data between CPU and GPU memories. For more information refer to Hoberock & Bell(2015).

Figure 30 – Local search on the GPU in EG module.

A CUDA kernel is invoked to perform GPU local search. The number of cus-tomers in route 𝑈 defines the number of threads executed on the GPU in parallel.

Page 74: Cooperative Coevolutionary Models for the MDVRP

Chapter 5. Coevolutionary GPU model for the MDVRP 73

Each thread operates over each customer in 𝑈 and calculates costs to operate a moveto/from that position. As explained before, data about the current problem (number ofcustomers, number of depots, restrictions, among others), about depots (distances,vehicles, capacity, among others) and about customers (distances, demand, servicetime, among others) are stored in a UM and loaded in the beginning of the applica-tion once. Those data are used in each thread to calculate costs. After all operations,threads are synchronized (__syncthreads()) and the first one (thread index == 0)defines which cost is smaller and which changes have to be performed. Those resultsare transferred to CPU memory and the move is checked. If it produces smaller coststhan the current costs of routes, it is performed. Otherwise, an improvement was notfound and there is nothing to be changed.

It is noteworthy that the proposed environment performs the best improvementin the defined moves while CoES uses first improvement strategy in those moves.We expect that change produces competitive solutions in a smaller time than CoES.Computational experiments were performed to validate the CoEsGPU and are shownin Section 5.4.

5.4 Computational experiments

The experiment was defined to compare the performance between both envi-ronments (CPU only and CPU+GPU). The benchmark instances presented in Section4.3 were used to compare the proposed algorithms.

CoEsGPU was implemented in C++ 114, using CUDA Toolkit 7.5 and Thrust1.8.1 (HOBEROCK; BELL, 2015). All experiments were run on a computer with one3.60GHz Intel Core i7 (4790) processor with 8 cores and 8 GB RAM. The computerwas run under the Ubuntu 14.04.3 LTS operational system. A NVIDIA GeForce GTX750 was used and information5 about this GPU are shown in Figure 31. This devicehas specially compute capability 5.0, 2 GB RAM and 512 CUDA Cores.

CoES and CoEsGPU were run 10 times each on all benchmark instances, usingthe defined parameter settings presented in Section 4.3.1. To remove any factor thatcould impact the performance, the order of execution of all replicates was randomizedon each environment. The order of environment was not randomized and all replicatesof CoES were executed first, while CoEsGPU was performed after. Besides, CoESwas executed again because the computational environment is different from that onein Section 4.3.4 C++ 2011 Standard5 The device information are produced using deviceQuery() utility available in CUDA Toolkit

Page 75: Cooperative Coevolutionary Models for the MDVRP

Chapter 5. Coevolutionary GPU model for the MDVRP 74

Figure 31 – NVIDIA GeForce GTX 750 – Device information

A comparison between environments with previous results of the CoES is pre-sented in Section 5.4.1. Comparison of run times is presented in Section 5.4.2.

5.4.1 Comparison between CoES and CoEsGPU

The performance of CoES was compared with the previous results of our pro-posed algorithm presented in Section 4.3.2, named here as CoES𝑝. As the computa-tional environment has changed, the objective of this comparison is to show possiblevariations in the results.

The results of CoES and CoEsGPU are shown in Table 9. The first columnpresents the instances. The next columns present for each environment the mean time(in seconds) (Avg. Time (s)), the mean cost (Avg. Cost) and the best solution costobtained (Best Cost). The Average line reports the average gap over all instances.The lines S1𝑎𝑣𝑔 and S2𝑎𝑣𝑔 show the average gap over the instances in each subset.The Sum line reports the total amount of time and cost over all instances. The linesS1𝑠𝑢𝑚 and S2𝑠𝑢𝑚 show the sum of those values over the instances in each subset.

The mean and best solution values, when compared with the previous resultsof CoES (CoES𝑝), are shown in Table 10]. This table reports the gap (in %), that is,

100×(𝑍𝑁𝑒𝑤 − 𝑍𝐶𝑜𝐸𝑆𝑝)

𝑍𝐶𝑜𝐸𝑆𝑝

Page 76: Cooperative Coevolutionary Models for the MDVRP

Chapter 5. Coevolutionary GPU model for the MDVRP 75

Table 9 – CoES and CoEs results

Instance CoES CoEsGPUAvg. Time (s) Avg. Cost Best Cost Avg. Time (s) Avg. Cost Best Cost

P01 66.70 576.87 576.87 25.70 576.87 576.87P02 47.80 476.66 476.66 12.70 475.34 473.53P03 164.70 651.16 646.94 117.20 643.72 641.19P04 559.90 1023.44 1010.31 682.60 1015.82 1010.31P05 816.70 763.89 758.62 442.10 756.69 750.79P06 735.30 883.81 881.13 689.70 881.71 878.21P07 559.10 902.51 898.01 678.30 898.34 890.84P08 796.30 4586.77 4539.55 975.80 4583.10 4539.55P09 1134.70 4006.85 3970.12 1583.90 3964.57 3900.17P10 1280.50 3791.65 3757.06 1365.50 3781.13 3724.68P11 1583.50 3684.88 3658.90 1361.80 3670.89 3609.75P12 111.70 1329.13 1326.85 43.00 1318.95 1318.95P13 170.40 1325.40 1318.95 1.80 1318.95 1318.95P14 300.60 1376.68 1360.12 4.10 1360.12 1360.12P15 738.30 2594.84 2582.11 663.80 2572.20 2555.01P16 694.90 2616.39 2602.69 263.10 2573.62 2572.23P17 1098.90 2767.08 2748.65 309.60 2742.23 2720.23P18 1706.20 3891.41 3866.32 1181.40 3867.11 3814.39P19 1451.50 3938.50 3919.44 776.60 3838.66 3827.06P20 521.80 4138.97 4125.49 1183.60 4132.72 4107.91P21 459.40 5798.96 5779.52 519.60 5901.91 5779.52P22 497.20 5791.94 5754.35 641.00 5820.32 5728.30P23 758.80 6315.79 6278.79 545.40 6385.17 6278.79P24 57.70 861.32 861.32 1.10 861.32 861.32P25 676.50 1324.98 1311.36 400.90 1319.77 1303.13P26 1086.00 1839.65 1812.01 913.50 1818.38 1809.84P27 1522.60 2142.87 2115.05 1402.00 2122.49 2102.59P28 319.80 2532.28 2454.78 413.70 2502.47 2437.49P29 1233.00 2850.93 2815.49 771.50 2850.59 2815.49P30 396.90 1114.50 1099.75 183.00 1091.76 1082.94P31 467.10 1748.88 1737.11 834.30 1700.14 1685.84P32 897.60 2255.19 2194.30 1327.50 2192.94 2165.87P33 401.60 3062.18 3037.19 368.90 3038.51 2967.85

Average 706.48 2514.13 2493.21 626.81 2502.38 2477.11S1𝑎𝑣𝑔 706.73 2749.29 2732.06 611.67 2742.61 2717.46S2𝑎𝑣𝑔 705.88 1973.28 1943.84 661.64 1949.84 1924.31Sum 23313.70 82966.36 82275.81 20684.70 82578.51 81744.60

S1𝑠𝑢𝑚 16254.90 63233.58 62837.45 14068.30 63080.14 62501.51S2𝑠𝑢𝑚 7058.80 19732.78 19438.36 6616.40 19498.37 19243.09

where 𝑍𝑁𝑒𝑤 is the solution value of CoES or CoEsGPU and 𝑍𝐶𝑜𝐸𝑆𝑝 the previous valuesof CoES (as reported in Section 4.3.2). A negative value indicates that the new methodperforms better. The Average line reports the average gap over all instances. The linesS1 and S2 show the average gap over the instances in each subset. In the Tables, theentries in bold indicate that the same or better solution values – cost and time – wereobtained by the new method over the CoES𝑝.

With regard to the solutions reported in Table 9, the results suggest CoEsGPUproduces mean and best solution values than CoES. Besides, better results were found

Page 77: Cooperative Coevolutionary Models for the MDVRP

Chapter 5. Coevolutionary GPU model for the MDVRP 76

Table 10 – CoES and CoEs: gap with previous results

Instance Mean values Best valuesCoES CoEsGPU CoES CoEsGPU

P01 0.00 0.00 0.00 0.00P02 0.34 0.06 0.59 -0.07P03 1.18 0.02 0.90 0.00P04 1.19 0.44 0.29 0.40P05 1.53 0.57 1.13 0.09P06 0.68 0.44 0.53 0.20P07 1.02 0.56 1.08 0.27P08 2.52 2.43 2.00 2.17P09 2.61 1.53 1.91 0.11P10 3.03 2.75 2.47 1.59P11 2.55 2.16 2.50 1.12P12 0.77 0.00 0.60 0.00P13 0.49 0.00 0.00 0.00P14 1.22 0.00 0.00 0.00P15 1.77 0.88 2.22 1.15P16 1.72 0.05 1.18 0.00P17 1.22 0.31 1.46 0.41P18 2.90 2.26 2.52 1.14P19 2.91 0.30 2.41 0.00P20 1.08 0.92 1.66 1.23P21 2.29 4.11 3.05 4.61P22 1.46 1.95 0.92 0.46P23 2.53 3.66 2.43 2.89P24 0.00 0.00 0.00 0.00P25 1.00 0.61 0.38 -0.25P26 1.48 0.30 0.30 0.18P27 2.13 1.16 2.63 2.03P28 3.72 2.50 2.61 1.89P29 2.55 2.54 2.01 2.40P30 1.99 -0.09 0.94 -0.61P31 3.37 0.49 4.33 1.25P32 3.93 1.06 2.04 0.71P33 3.06 2.26 4.24 1.86Average 1.83 1.10 1.56 0.83S1 1.61 1.10 1.38 0.77S2 2.32 1.08 1.95 0.95

in some instances, when considering the gap for then mean and best values. Whenconsidering the gap for the mean values of CoEsGPU, the average over all test in-stances is always smaller than 1.2%. It is less than 1.2% for subset S1, and less than1.1% for S2. When considering the gap for the best values of CoEsGPU, the averageover all test instances is always smaller than 1.0%. It is less than 0.8% for subset S1,and less than 1.0% for S2. When considering the gap for the mean values of CoES,the average over all test instances is always smaller than 2.4%. It is less than 1.9% forsubset S1, and less than 1.7% for S2. When considering the gap for the best values ofCoES, the average over all test instances is always smaller than 2.0%. It is less than1.4% for subset S1, and less than 2.0% for S2.

Page 78: Cooperative Coevolutionary Models for the MDVRP

Chapter 5. Coevolutionary GPU model for the MDVRP 77

The results suggest CoEsGPU provides competitive solutions as CoES𝑝, mean-while it uses less computational resources. The results of CoES in the current com-putational environment suggest it requires more CPU cores to operate (24 cores forCoES𝑝 against 8 cores here). It also suggests a great influence of the GPU in results.The difference of CoES performance in the current computational environment mightbe explained by parameter settings. It suggests a new study of parameters in this en-vironment and needs to be further investigated.

Overall, CoES and CoEsGPU are highly parallel environments and producecompetitive solutions. This parallel nature might be observed with the GPU computingin the proposed method.

5.4.2 Comparison of run times

Comparison of run times between CoES and CoEsGPU were performed withtimes reported in Table 9 and obtained in the current computational environment. Table11 shows the mean run times (in seconds) of both methods, CoES and CoEsGPU, foreach test instance. The speed-up 𝑆 between both methods is:

𝑆 =𝐶𝑜𝐸𝑆

𝐶𝑜𝐸𝑠𝐺𝑃𝑈

The results suggest the reported computation times of CoEsGPU are generallysmaller than those of CoES. This computational efficiency is due to the parallel im-plementation of coevolutionary algorithm combined with GPU computing. The averagespeedup over all test instances is equal to 8 times. It is higher than 8 times for subsetS1 and higher than 6 times for subset S2. Besides, the speedup of some instanceswere highly increased, e.g. P13 (more than 94 times), P14 (more than 73 times) andP24 (more than 52 times).

Under the defined conditions of experiments, the inclusion of GPU computingin our proposed method leads to a higher performance environment, with competitivesolutions and improved speedup. The use of GPU computing in other modules and op-erations need to be further investigated to increase the performance through massiveparallelism on that devices.

5.5 Final considerations

This chapter presented a new version of CoES with GPU computing. As the pro-posed method is highly parallel and asynchronous, preliminary studies were essentialto define which parts would be performed on the GPU. Local search moves were de-

Page 79: Cooperative Coevolutionary Models for the MDVRP

Chapter 5. Coevolutionary GPU model for the MDVRP 78

Table 11 – CoES and CoEsGPU: comparison of run time

Instance Mean time (s) SpeedupCoES CoEsGPUP01 66.70 25.70 2.60P02 47.80 12.70 3.76P03 164.70 117.20 1.41P04 559.90 682.60 0.82P05 816.70 442.10 1.85P06 735.30 689.70 1.07P07 559.10 678.30 0.82P08 796.30 975.80 0.82P09 1134.70 1583.90 0.72P10 1280.50 1365.50 0.94P11 1583.50 1361.80 1.16P12 111.70 43.00 2.60P13 170.40 1.80 94.67P14 300.60 4.10 73.32P15 738.30 663.80 1.11P16 694.90 263.10 2.64P17 1098.90 309.60 3.55P18 1706.20 1181.40 1.44P19 1451.50 776.60 1.87P20 521.80 1183.60 0.44P21 459.40 519.60 0.88P22 497.20 641.00 0.78P23 758.80 545.40 1.39P24 57.70 1.10 52.45P25 676.50 400.90 1.69P26 1086.00 913.50 1.19P27 1522.60 1402.00 1.09P28 319.80 413.70 0.77P29 1233.00 771.50 1.60P30 396.90 183.00 2.17P31 467.10 834.30 0.56P32 897.60 1327.50 0.68P33 401.60 368.90 1.09Average 706.48 626.81 8.00S1 706.73 611.67 8.72S2 705.88 661.64 6.33

fined on the GPU for one complete solution at a time. Concurrent kernels and streamsoverhead were avoided with that choice.

Decomposition and coevolutionary algorithm allows to scale complex problemsin subproblems and performs the solution in parallel. GPU computing enables massiveparallelism and the solution might be obtained in smaller time than CPU only. Evenif GPU was not fully used, the results suggest CoEsGPU is able to produce compet-itive solutions in smaller time, when compared with CoES. As presented, the GPUarchitecture is different from CPU and performs more operations with more cores. Itmeans that parallel operations on the GPU are not easily implemented and would leada high overhead. Other modules and operations from CoES need to be further stud-

Page 80: Cooperative Coevolutionary Models for the MDVRP

Chapter 5. Coevolutionary GPU model for the MDVRP 79

ied to be performed on the GPU and questions, as concurrent kernels, memory copiesand overheads, have to be observed carefully. For instance, the asynchronous environ-ment would be change to synchronous to avoid concurrent kernels. Besides, strategiesto invoke calls on the GPU, as stack processes, might be also further studied to betterexploit the potential of the GPU computing.

Conclusions about this work, and contributions and ideas for future works arepresented in the next chapter.

Page 81: Cooperative Coevolutionary Models for the MDVRP

80

6 Conclusion

“If I have seen further than others,it is by standing upon the shoulders of giants.”

— Isaac Newton (1643 – 1727).

6.1 Conclusions

A general introduction about complex optimization problems and how the com-plexity might be reduced by decomposition was given in Chapter 1. The characteristicsand the evaluation process of Evolutionary algorithms and Coevolutionary algorithm,which it is the main difference between them, were presented. A motivation to applyCA in Multi-Depot Vehicle Routing Problem was discussed and represents the pro-posed strategy to solve the problem in less time. The objectives of the thesis were alsodefined.

In Chapter 2 the Multi-Depot Vehicle Routing Problem was formalized and itsmathematical formulation was defined. In this Chapter the MDVRP is presented asa variant of the classical VRP and is also an important class with several real-worldapplications. The literature review was significant to identify heuristics and parallel ap-plications proposed to solve the MDVRP.

Coevolution was discussed in Chapter 3. The biological fundamentals were pre-sented, as well as the competitive and cooperative interaction between species. Afterthat, it was discussed how the concepts of coevolution are applied to create evolu-tionary algorithms and approaches for solving problems using the idea of competitionand cooperation for the populations. Coevolutionary algorithms are applied in decom-posable problems, which are split into small problems and evolve separately. In thisChapter the pairing strategies were presented, which define different ways to combinesubproblems and to create a complete solution to the original problem. The impact inevaluation performance of each pairing strategy was discussed considering the num-ber of produced complete solutions. A general structure of CAs was shown in Algo-rithm 1 and each part of the process was discussed. A literature review was presentedto clarify different applications of CAs.

The proposed cooperative coevolutionary model with problem decompositionwas introduced in Chapter 4. The Chapter began with the methodology used to as-sign each customer to a depot. The rules use the distance from the closest depot and

Page 82: Cooperative Coevolutionary Models for the MDVRP

Chapter 6. Conclusion 81

from the closest neighbor to define which depot(s) a customer is associated. The rep-resentation uses a giant tour without route delimiters and avoids additional computingcosts to insert some delimiter between customer to define each routes. Split algorithmwas applied to define those routes. As the number of customer on each depot mightbe different, a variable genotype was employed. This characteristic contributed to usethe Evolution Strategy paradigm because mutation is the principal operator of this al-gorithm. The population is initialized with greed and semi-greed proposed strategiesbased on the Nearest Insertion Heuristic. Parallel modules were defined and each oneperforms a different part of evolution process, as evolving populations, creating andevaluating complete solutions and executing local searches. The proposed paralleliza-tion scheme is operated under asynchronous updates and modules communicationwith others to change information about individuals, populations, complete and bestsolutions. Computational experiments were used to validate the proposed method andbenchmark instances were taken from the literature. An initial experiment was con-ducted to define global parameter settings. Our model was compared with the bestheuristics proposed for the MDVRP. The results show that our coevolutionary algo-rithm produces competitive solutions when compared with the best known solutions,even improving some of them. Besides, it is faster than HGSDAC+, which is the bestmethod reported in the literature. The benefit of our approach comes from its abilityto decompose complex problems into simpler subproblems and evolve solutions to thesubproblems in parallel. The decomposition approach also makes the method morescalable. In large MDVRP instances, it is unlikely that customers close to a depot willbe allocated to a distant depot. Therefore, the coevolutionary algorithm incorporatesimportant characteristics of a problem instance and allows a reduction of the searchspace. Moreover, the evolutionary engine leads to simpler representations and geneticoperators.

Chapter 5 was dedicated to introduce GPU computing in the proposed method.At first, GPU concepts, its architecture and GPGPU fundamentals were presented.The comparison between architectures showed GPU has more processing units andperforms many data-parallel computations than CPU. Due the evolution of those de-vices, GPUs were employed to general-purposes. CUDA and OpenCL are the mainframeworks for the GPGPU and they were briefly discussed in this chapter. The re-cent advances of CUDA, as Unified Memory and Concurrent Kernel Execution, werepresented and were employed in the GPU coevolutionary environment. GPGPU appli-cations in several areas were introduced with a literature review. Some GPGPU worksto solve VRP and its variants were also outlined. A preliminary study was essential todefine which parts would be performed on the GPU. As the environment uses asyn-chronous updates, the results suggested concurrent kernels might compromise theoverall performance because streams have to be employed. Then, the proposed paral-

Page 83: Cooperative Coevolutionary Models for the MDVRP

Chapter 6. Conclusion 82

lel GPU environment uses GPU computing in some operate moves of the local searchprocess. Those moves were used in the EG module under a complete solution selectedrandomly. CUDA Thrust were also employed to transfer data between devices suc-cessfully. Computational experiments were also defined to compare the performancebetween both environments. Global parameter settings defined previously were alsoemployed in those experiments. Even if GPU computing is performed in only a ran-dom complete solution, the results suggest the performance was increased. CoEsGPUwas able to produce competitive solutions in less time when compared to CoES. Thespeedup is higher than 7 times over all benchmark instances. The results also suggestboth methods need to be further investigated to increase the performance throughmassive parallelism on the CPU and the GPU as a heterogeneous environment.

Due to the nature of the coevolutionary approach, it may be employed in severalparallel and distributed architectures, as cloud computing, cluster computing, island-based models, among others. In this study we investigated cooperative coevolutionarybased methods for minimizing the route cost in the MDVRP and those methods wereimplemented in two parallel environments. It is worth commenting that the proposedalgorithm was able to produce competitive solutions in both environments. The resultssuggest CoES is faster than the best method reported in the literature and the perfor-mance was increased in CoEsGPU. Additionally, the problem complexity was reducedwithout any change in the mathematical formulation.

Finally, it is noteworthy that the proposed algorithm might be extended to otherVRP and MDVRP variants. As the coevolutionary strategy was defined, other restric-tions could be introduced, such as time windows. Since each subproblem reduces to asingle-depot VRP, each population may also evolve separately.

6.2 Limitations of the proposed method

Some limitations about the proposed method and the scope of application haveto be considered. The decomposition uses the distance between customers and depotsto be performed. This strategy depends on a low degree of interdependency betweenthe subproblems. It means that, in situations which all customers and depots are closein a small area, for instance, several customers could be replicated in the depots. Prob-lems with high degree of interdependency, as described above, will strongly overloadthe repair procedure. Additionally, it will rely on the local search process to create com-petitive solutions. Those conditions might consume more time and resource than theevolution process, for instance.

The rules to assign customers to depots have to be observed. Those rules use

Page 84: Cooperative Coevolutionary Models for the MDVRP

Chapter 6. Conclusion 83

distance as criteria to group customers and depots. This measure is valid when theobjective is minimizing the total cost (total distance). If other conditions or restrictionswere employed, those rules might have to be changed. For instance, if the objective isthe number of vehicles minimization, it could be used the mean of customers demandas criteria.

The proposed method does not address location-routing problems, in whichthe number and location of depots are defined. Our method considers that depots areknown and the customers are allocated to them. The method might be further improvedto decompose and group customers, and also define or not a depot location in thatsubset.

The fleet of vehicles used in this work is homogeneous. Some changes have tobe applied for applications with heterogeneous vehicles. For instance, the Split algo-rithm has to be improved to consider this kind of fleet.

Despite these limitations, the proposed method is competitive with other meth-ods in the literature, as the reported results suggest.

6.3 Contributions of this thesis

In conclusion, the original contributions of this thesis are presented next.

∙ A coevolutionary algorithm to solve the MDVRP was presented in this work. In theproposed method, each depot is associated with a population with its assignedcustomers. Individuals in each population represent partial single-depot solutionsto the problem. Each population evolves separately, but the quality of an individualdepends on its ability to cooperate with partial solutions from other populationsto form a good complete solution to the MDVRP. The proposed coevolutionaryalgorithm also allows the extension to other VRP and MDVRP variants.

∙ The benefit of our approach comes from its ability to decompose complex prob-lems into simpler subproblems and evolve solutions to the subproblems in par-allel. The decomposition approach also makes the method more scalable. It isnoteworthy the problem complexity was reduced without changing the mathe-matical formulation.

∙ Two versions of our method are presented. The first version is developed consid-ering a CPU multithreading environment. As the environment would greatly ben-efit from parallel architectures, a GPU computing is combined to our method. Theenvironment exploits the Evolution Strategy paradigm and runs asynchronous.

Page 85: Cooperative Coevolutionary Models for the MDVRP

Chapter 6. Conclusion 84

6.4 Suggestions for future works

The following points summarize the suggestions for future work:

1. One interesting avenue of research would be to integrate mathematical program-ming into the local searches (matheuristic). Since each subproblem reduces to asingle-depot VRP, the use of mathematical programming within each populationcould be beneficial.

2. Other sophisticated local search strategies could be incorporated into the EGmodule, such as Tabu Search, Iterated local search, among others.

3. The parallel implementation would be improved by exploiting multi-GPU program-ming for the PE, CSE and EG modules. This strategy would avoid concurrent ker-nels and streams overhead. Besides, it could be applied a parallel and distributedcomputational environment, as a parallel island-based model, over a local net-work or in a cloud computing system. Moreover other CUDA libraries could befully studied and employed. As there are some implications for the updates whenusing the GPU, another strategy would be changing CoEsGPU to a synchronousmethod and performing other operations on the device.

4. A new decomposition strategy might be defined using a multi-agent coevolution-ary environment. In this work depots were used as reference to decompose theMDVRP. The decomposition could use each customer as reference and definethe coevolution between them. In a multi-agent cooperative system, each cus-tomer is an agent and competes and cooperates with others to be allocated ondepots and vehicles, and to be positioned on each routes.

5. Correlation factors of decomposition were observed and could be investigated.For instance, the relation of the number of customers in each subproblem andthe results of algorithms would be studied. The results of this study would alsosuggest the influence of customers overlap in the proposed method, as lead toincorporate other attributes to decomposition, as virtual depots and customerclustering.

6. Coevolutionary environment could be extended to other VRP and MDVRP vari-ants, as periodic problems, pick-up and delivering, time window restriction, back-haul and reverse distribution networks, among others.

7. Other genetic operators might be incorporated to the proposed methods. Asthose methods are ES-based evolution, the main operator is mutation. Even so,other operators could be studied, as defined in Nagata (2007).

Page 86: Cooperative Coevolutionary Models for the MDVRP

Chapter 6. Conclusion 85

8. Different neighborhood structures were applied to improve the routes, and themoves were employed randomly. Due the problem decomposition, each neigh-borhood might contribute in different ways. Then, a study could be conductedto investigate each neighborhood contribution, as its different sizes. Besides, itcould be investigated if the order of neighborhood application (randomly, sequen-tially, or in a different manner) would influence the improvement, as well as if allof them are indeed necessary.

Page 87: Cooperative Coevolutionary Models for the MDVRP

86

Colophon

This thesis was created in LATEX using “abnTEX2”, which is maintained by abn-TeX2 team and led by Lauro César Araujo. Further information are available at:<http://www.abntex.net.br>.

The algorithms in this thesis were written using the “algorithm2e”, a LATEX pack-age maintained by Christophe Fiorio and available at:<https://www.ctan.org/pkg/algorithm2e>.

Statistical analysis was performed using “R: A Language and Environmentfor Statistical Computing” (R Core Team, 2014). A “RStudio Desktop” was usedwith the R language and it is available at: <http://www.rstudio.com/>.

Pictures were drawn in LibreOffice and it can be obtained at: <https://www.libreoffice.org/>.

Page 88: Cooperative Coevolutionary Models for the MDVRP

87

Bibliography

ADELZADEH, M.; ASL, V. M.; KOOSHA, M. A mathematical model and a solvingprocedure for multi-depot vehicle routing problem with fuzzy time window andheterogeneous vehicle. The International Journal of Advanced ManufacturingTechnology, Springer London, v. 75, n. 5-8, p. 793–802, 2014. ISSN 0268-3768.Disponível em: <http://dx.doi.org/10.1007/s00170-014-6141-8>. Cited on page 17.

ALBA, E. et al. (Ed.). Optimization techniques for solving complex problems. [S.l.]:Hoboken, N.J. Wiley, 2009. (Wiley series on parallel and distributed computing). ISBN978-0-470-29332-4. Cited on page 15.

AOTE, S.; RAGHUWANSHI, M.; MALIK, L. A new particle swarm optimizer withcooperative coevolution for large scale optimization. In: SATAPATHY, S. C. et al. (Ed.).Proceedings of the 3rd International Conference on Frontiers of Intelligent Computing:Theory and Applications (FICTA) 2014. Springer International Publishing, 2015,(Advances in Intelligent Systems and Computing, v. 327). p. 781–789. ISBN 978-3-319-11932-8. Disponível em: <http://dx.doi.org/10.1007/978-3-319-11933-5_88>.Cited on page 33.

ARORA, R.; TULSHYAN, R.; DEB, K. Parallelization of binary and real-coded geneticalgorithms on gpu using cuda. In: Evolutionary Computation (CEC), 2010 IEEECongress on. [S.l.: s.n.], 2010. p. 1 –8. Cited on page 66.

AVERY, P.; MICHALEWICZ, Z.; SCHMIDT, M. A historical population in acoevolutionary system. In: Computational Intelligence and Games, 2007. CIG 2007.IEEE Symposium on. [S.l.: s.n.], 2007. p. 104–111. Cited on page 26.

BALDACCI, R.; MINGOZZI, A. A unified exact method for solving differentclasses of vehicle routing problems. Mathematical Programming, Springer-Verlag, v. 120, n. 2, p. 347–380, 2009. ISSN 0025-5610. Disponível em:<http://dx.doi.org/10.1007/s10107-008-0218-9>. Cite 2 times on pages 15 and 17.

BLECIC, I.; CECCHINI, A.; TRUNFIO, G. A. Fast and accurate optimization ofa gpu-accelerated {CA} urban model through cooperative coevolutionary particleswarms. Procedia Computer Science, v. 29, n. 0, p. 1631 – 1643, 2014. ISSN1877-0509. 2014 International Conference on Computational Science. Disponível em:<http://www.sciencedirect.com/science/article/pii/S1877050914003251>. Cited onpage 33.

BODIN, L. et al. Routing and Scheduling of Vehicles and Crews: The State of The Art.Computers & Operations Research, 1983. Cite 2 times on pages 41 and 46.

BUSTAMAM, A.; BURRAGE, K.; HAMILTON, N. Fast parallel markov clustering inbioinformatics using massively parallel computing on gpu with cuda and ellpack-rsparse format. Computational Biology and Bioinformatics, IEEE/ACM Transactions on,v. 9, n. 3, p. 679 –692, may-june 2012. ISSN 1545-5963. Cited on page 66.

Page 89: Cooperative Coevolutionary Models for the MDVRP

Bibliography 88

CAMPELO, F. Lecture Notes on Design and Analysis of Experiments. 2015.<https://github.com/fcampelo/Design-and-Analysis-of-Experiments>. Version 2.11,Creative Commons BY-NC-SA 4.0. Cited on page 50.

CHANDRA, R. Memetic cooperative coevolution of elman recurrent neural networks.Soft Computing, Springer Berlin Heidelberg, v. 18, n. 8, p. 1549–1559, 2014. ISSN1432-7643. Disponível em: <http://dx.doi.org/10.1007/s00500-013-1160-1>. Citedon page 34.

CHEN, D. et al. Gpgpu-aided ensemble empirical-mode decomposition for eeganalysis during anesthesia. Information Technology in Biomedicine, IEEE Transactionson, v. 14, n. 6, p. 1417 –1427, nov. 2010. ISSN 1089-7771. Cite 2 times on pages 33and 65.

CHEN, H.; MORI, Y.; MATSUBA, I. Solving the balance problem of massivelymultiplayer online role-playing games using coevolutionary programming. AppliedSoft Computing, v. 18, n. 0, p. 1 – 11, 2014. ISSN 1568-4946. Disponível em:<http://www.sciencedirect.com/science/article/pii/S1568494614000209>. Cited onpage 33.

CHEN, M.; LU, Q. A coevolutionary model based on dynamic combination ofgenetic algorithm and ant colony algorithm. In: Parallel and Distributed Computing,Applications and Technologies, 2005. PDCAT 2005. Sixth International Conferenceon. [S.l.: s.n.], 2005. p. 941–944. Cited on page 34.

CHEN, P.; XU, X. A hybrid algorithm for multi-depot vehicle routing problem. In:Service Operations and Logistics, and Informatics, 2008. IEEE/SOLI 2008. IEEEInternational Conference on. [S.l.: s.n.], 2008. v. 2, p. 2031–2034. Cited on page 23.

COELHO, I. et al. An integrated cpu–gpu heuristic inspired on variable neighbourhoodsearch for the single vehicle routing problem with deliveries and selective pickups.International Journal of Production Research, v. 54, n. 4, p. 945–962, 2016. Cited onpage 66.

COELHO, I. et al. The single vehicle routing problem with deliveries and selectivepickups in a cpu-gpu heterogeneous environment. In: High Performance Computingand Communication 2012 IEEE 9th International Conference on Embedded Softwareand Systems (HPCC-ICESS), 2012 IEEE 14th International Conference on. [S.l.: s.n.],2012. p. 1606–1611. Cite 2 times on pages 66 and 67.

COELLO, C. C.; LAMONT, G. B.; VELDHUIZEN, D. A. van. Evolutionary Algorithmsfor Solving Multi-Objective Problems. 2nd. ed. [S.l.]: Springer, 2007. (Genetic andEvolutionary Computation). Cited on page 33.

CONTARDO, C.; CORDEAU, J.-F.; GENDRON, B. An exact algorithm basedon cut-and-column generation for the capacitated location-routing problem.INFORMS Journal on Computing, v. 26, n. 1, p. 88–102, 2014. Disponível em:<http://dx.doi.org/10.1287/ijoc.2013.0549>. Cited on page 17.

CONTARDO, C.; MARTINELLI, R. A new exact algorithm for the multi-depotvehicle routing problem under capacity and route length constraints. DiscreteOptimization, v. 12, n. 0, p. 129 – 146, 2014. ISSN 1572-5286. Disponível em:

Page 90: Cooperative Coevolutionary Models for the MDVRP

Bibliography 89

<http://www.sciencedirect.com/science/article/pii/S1572528614000097>. Cited onpage 16.

CORDEAU, J.-F.; GENDREAU, M.; LAPORTE, G. A tabu search heuristic for periodicand multi-depot vehicle routing problems. Networks, Wiley Subscription Services, Inc.,A Wiley Company, v. 30, n. 2, p. 105–119, 1997. ISSN 1097-0037. Cite 4 times onpages 21, 23, 49, and 52.

CORDEAU, J.-F.; MAISCHBERGER, M. A parallel iterated tabu search heuristic forvehicle routing problems. Computers & Operations Research, v. 39, n. 9, p. 2033 –2050, 2012. ISSN 0305-0548. Cite 6 times on pages 15, 20, 21, 24, 49, and 52.

DELÉVACQ, A. et al. Parallel ant colony optimization on graphics processing units.Journal of Parallel and Distributed Computing, 2012. ISSN 0743-7315. Disponível em:<http://www.sciencedirect.com/science/article/pii/S0743731512000044>. Cited onpage 66.

DIEGO, F. et al. Parallel cuda architecture for solving de vrp with aco. In: SETHI,S. P.; BOGATAJ, M.; ROS-MCDONNELL, L. (Ed.). Industrial Engineering: InnovativeNetworks. [S.l.]: Springer London, 2012. p. 385–393. ISBN 978-1-4471-2320-0. Cite2 times on pages 66 and 67.

DOERNER, K.; SCHMID, V. Survey: Matheuristics for rich vehicle routing problems.In: BLESA, M. et al. (Ed.). Hybrid Metaheuristics. Springer Berlin Heidelberg, 2010,(Lecture Notes in Computer Science, v. 6373). p. 206–221. ISBN 978-3-642-16053-0.Disponível em: <http://dx.doi.org/10.1007/978-3-642-16054-7_15>. Cited on page15.

DONDO, R.; MENDEZ, C. A.; CERDA, J. An optimal approach to the multiple-depotheterogeneous vehicle routing problem with time window and capacity constraints.Latin American applied research, scieloar, v. 33, p. 129 – 134, 04 2003. ISSN0327-0793. Disponível em: <http://www.scielo.org.ar/scielo.php?script=sci_arttext&pid=S0327-07932003000200011&nrm=iso>. Cited on page 17.

DONGARRA, J. J. Performance of Various Computers Using Standard LinearEquations Software (Linpack Benchmark Report). [S.l.], 2014. Cited on page 58.

EBNER, M. Coevolution and the red queen effect shape virtual plants. GeneticProgramming and Evolvable Machines, Springer Netherlands, v. 7, p. 103–123, 2006. ISSN 1389-2576. 10.1007/s10710-006-7013-2. Disponível em:<http://dx.doi.org/10.1007/s10710-006-7013-2>. Cited on page 26.

ENGELBRECHT, A. Computational Intelligence: An Introduction. [S.l.]: Wiley, 2007.ISBN 9780470512500. Cite 9 times on pages 16, 23, 26, 27, 28, 29, 39, 40, and 42.

ESCOBAR, J. et al. A hybrid granular tabu search algorithm for the multi-depot vehiclerouting problem. Journal of Heuristics, Springer US, v. 20, n. 5, p. 483–509, 2014.ISSN 1381-1231. Disponível em: <http://dx.doi.org/10.1007/s10732-014-9247-0>.Cite 6 times on pages 15, 20, 21, 23, 49, and 53.

FABRIS, F.; KROHLING, R. A. A co-evolutionary differential evolution algorithm forsolving min-max optimization problems implemented on gpu using c-cuda. ExpertSystems with Applications, -, n. 0, p. –, 2011. ISSN 0957-4174. Disponível em:

Page 91: Cooperative Coevolutionary Models for the MDVRP

Bibliography 90

<http://www.sciencedirect.com/science/article/pii/S0957417411015004>. Cited onpage 66.

FICICI, S. G. Solution concepts in coevolutionary algorithms. Tese (Doutorado) —Faculty of Brandeis University, Waltham, MA, USA, 2004. AAI3127125. Cite 3 timeson pages 16, 25, and 27.

FREITAS, A. R. R. et al. Memetic self-adaptive evolution strategies applied to themaximum diversity problem. Optimization Letters, Springer Berlin Heidelberg, v. 8,n. 2, p. 705–714, 2014. ISSN 1862-4472. Disponível em: <http://dx.doi.org/10.1007/s11590-013-0610-0>. Cited on page 39.

GARCíA-PEDRAJAS, N.; CASTILLO, J. Romero del; ORTIZ-BOYER, D. A cooperativecoevolutionary algorithm for instance selection for instance-based learning. MachineLearning, Springer US, v. 78, n. 3, p. 381–420, 2010. ISSN 0885-6125. Disponívelem: <http://dx.doi.org/10.1007/s10994-009-5161-3>. Cited on page 34.

GASTER, B. et al. Heterogeneous Computing with OpenCL: Revised OpenCL 1.2Edition. [S.l.]: Elsevier Science, 2012. Cited on page 65.

GENDREAU, M. et al. Metaheuristics for the vehicle routing problem and its extensions:A categorized bibliography. In: GOLDEN, B.; RAGHAVAN, S.; WASIL, E. (Ed.). TheVehicle Routing Problem: Latest Advances and New Challenges. Springer US, 2008,(Operations Research/Computer Science Interfaces, v. 43). p. 143–169. ISBN 978-0-387-77777-1. Disponível em: <http://dx.doi.org/10.1007/978-0-387-77778-8_7>.Cited on page 23.

GREEN, R. et al. Central force optimization on a gpu: a case study in highperformance metaheuristics. The Journal of Supercomputing, Springer Netherlands,p. 1–21, 2012. ISSN 0920-8542. 10.1007/s11227-011-0725-y. Disponível em:<http://dx.doi.org/10.1007/s11227-011-0725-y>. Cited on page 66.

GU, J. et al. A novel competitive co-evolutionary quantum genetic algorithm forstochastic job shop scheduling problem. Computers & Operations Research, v. 37,n. 5, p. 927 – 937, 2010. ISSN 0305-0548. Disruption Management. Disponível em:<http://www.sciencedirect.com/science/article/pii/S0305054809001841>. Cited onpage 35.

GULCZYNSKI, D.; GOLDEN, B.; WASIL, E. The multi-depot split delivery vehiclerouting problem: An integer programming-based heuristic, new test problems,and computational results. Comput. Ind. Eng., Pergamon Press, Inc., Tarrytown,NY, USA, v. 61, n. 3, p. 794–804, out. 2011. ISSN 0360-8352. Disponível em:<http://dx.doi.org/10.1016/j.cie.2011.05.012>. Cited on page 17.

HO, W. et al. A hybrid genetic algorithm for the multi-depot vehicle routing problem.Engineering Applications of Artificial Intelligence, v. 21, n. 4, p. 548 – 557, 2008.ISSN 0952-1976. Disponível em: <http://www.sciencedirect.com/science/article/pii/S0952197607000887>. Cited on page 23.

HOBEROCK, J.; BELL, N. Thrust: A Parallel Algorithms Library. 2015. Doc:<http://docs.nvidia.com/cuda/thrust/>. Version 1.8.1. Disponível em: <http://thrust.github.io/>. Cite 2 times on pages 72 and 73.

Page 92: Cooperative Coevolutionary Models for the MDVRP

Bibliography 91

HUANG, C.-S.; HUANG, Y.-C.; LAI, P.-J. Modified genetic algorithms for solving fuzzyflow shop scheduling problems and their implementation with cuda. Expert Systemswith Applications, v. 39, n. 5, p. 4999 – 5005, 2012. ISSN 0957-4174. Disponível em:<http://www.sciencedirect.com/science/article/pii/S0957417411014989>. Cited onpage 66.

HWU, W. mei W. (Ed.). GPU Computing Gems: Emerald Edition. [S.l.]: Elsevier, 2011.Cited on page 62.

IRNICH, S. A multi-depot pickup and delivery problem with a single hub andheterogeneous vehicles. European Journal of Operational Research, v. 122, p.310–328, 2000. Cited on page 17.

ISAZA, S. N.; FRANCO, J. L.; PADILLA, N. H. Desarrollo y codificación de unmodelo matemático para la optimización de un problema de ruteo de vehículoscon múltiples depósitos. In: Megaprojects: Building Infrastructure by FosteringEngineering Collaboration, Efficient and Effective Integration and Innovative Planning:Proceedings of the 10th Latin American and Caribbean Conference for Engineeringand Technology. Panama City, Panama: [s.n.], 2012. Cited on page 17.

JANSEN, T.; WIEGAND, R. Sequential versus parallel cooperative coevolutionary(1+1) eas. In: Evolutionary Computation, 2003. CEC ’03. The 2003 Congress on. [S.l.:s.n.], 2003. v. 1, p. 30–37 Vol.1. Cited on page 34.

JANSEN, T.; WIEGAND, R. P. The cooperative coevolutionary (1+1) ea. EvolutionaryComputation, v. 12, n. 4, p. 405 – 434, 2004. ISSN 10636560. Disponível em:<http://search-ebscohost-com.ez28.periodicos.capes.gov.br/login.aspx?direct=true&db=aph&AN=15625967&lang=pt-br&site=ehost-live&authtype=ip,cookie,uid>. Citedon page 34.

JIN, T. et al. One-stage search for multi-depot vehicle routing problem. In: Proceedingsof the IASTED International Conference on Intelligent Systems and Control. [s.n.],2004. p. 404–408. Disponível em: <http://hdl.handle.net/1783.1/39301>. Cited onpage 17.

JONG, E. de; STANLEY, K.; WIEGAND, R. P. Introductory Tutorial on Coevolution.2013. Disponível em: <http://goo.gl/VAOS2>. Acessado em: 02 jul 2013. Cited onpage 28.

KARAKATIC, S.; PODGORELEC, V. A survey of genetic algorithms for solving multidepot vehicle routing problem. Applied Soft Computing, v. 27, n. 0, p. 519–532, 2015.ISSN 1568-4946. Disponível em: <http://www.sciencedirect.com/science/article/pii/S1568494614005572>. Cite 2 times on pages 17 and 23.

KATADA, Y.; HANDA, Y. Tracking the red queen effect by estimating features ofcompetitive co-evolutionary fitness landscapes. In: Evolutionary Computation (CEC),2010 IEEE Congress on. [S.l.: s.n.], 2010. p. 1 –8. Cited on page 26.

KUO, Y.; WANG, C.-C. A variable neighborhood search for the multi-depotvehicle routing problem with loading cost. Expert Systems with Applications,v. 39, n. 8, p. 6949 – 6954, 2012. ISSN 0957-4174. Disponível em: <http://www.sciencedirect.com/science/article/pii/S0957417412000371>. Cited on page16.

Page 93: Cooperative Coevolutionary Models for the MDVRP

Bibliography 92

LADJICI, A.; BOUDOUR, M. Nash–cournot equilibrium of a deregulated electricitymarket using competitive coevolutionary algorithms. Electric Power SystemsResearch, v. 81, n. 4, p. 958 – 966, 2011. ISSN 0378-7796. Disponível em:<http://www.sciencedirect.com/science/article/pii/S0378779610002889>. Cited onpage 33.

LADJICI, A.; TIGUERCHA, A.; BOUDOUR, M. Nash equilibrium in a two-settlementelectricity market using competitive coevolutionary algorithms. International Journalof Electrical Power & Energy Systems, v. 57, n. 0, p. 148 – 155, 2014. ISSN0142-0615. Disponível em: <http://www.sciencedirect.com/science/article/pii/S0142061513005036>. Cite 2 times on pages 33 and 34.

LAPORTE, G.; NOBERT, Y.; ARPIN, D. Optimal solutions to capacitated multidepotvehicle routing problems. In: Congressus Numerantium. [S.l.: s.n.], 1984. p. 283–292.Cited on page 17.

LAU, H. et al. Application of genetic algorithms to solve the multidepot vehicle routingproblem. Automation Science and Engineering, IEEE Transactions on, v. 7, n. 2, p.383–392, April 2010. ISSN 1545-5955. Cited on page 52.

LI, J.; LI, Y.; PARDALOS, P. M. Multi-depot vehicle routing problem with time windowsunder shared depot resources. Journal of Combinatorial Optimization, SpringerUS, p. 1–18, 2014. ISSN 1382-6905. Disponível em: <http://dx.doi.org/10.1007/s10878-014-9767-4>. Cited on page 17.

LI, J.; LV, X.; LIU, L. A parallel genetic algorithm with gpu accelerated for large-scalemdvrp in emergency logistics. In: Computational Science and Engineering (CSE),2011 IEEE 14th International Conference on. [S.l.: s.n.], 2011. p. 602–605. Cited onpage 67.

LI, J.-M. et al. A parallel simulated annealing solution for vrptw based on gpuacceleration. In: PHILLIPS-WREN, G. et al. (Ed.). Advances in Intelligent DecisionTechnologies. [S.l.]: Springer Berlin Heidelberg, 2010, (Smart Innovation, Systemsand Technologies, v. 4). p. 201–208. ISBN 978-3-642-14615-2. Cite 2 times on pages66 and 67.

LI, M.; GUIMARãES, F.; LOWTHER, D. A competitive co-evolutionary algorithm forconstrained robust design. In: Computation in Electromagnetics (CEM 2014), 9th IETInternational Conference on. [S.l.: s.n.], 2014. p. 1–2. Cited on page 33.

LI, M.; GUIMARãES, F.; LOWTHER, D. Competitive co-evolutionary algorithm forconstrained robust design. Science, Measurement Technology, IET, v. 9, n. 2, p.218–223, March 2015. ISSN 1751-8822. Cited on page 33.

LI, X.; YAO, X. Cooperatively coevolving particle swarms for large scale optimization.Evolutionary Computation, IEEE Transactions on, v. 16, n. 2, p. 210–224, April 2012.ISSN 1089-778X. Cited on page 33.

LIU, C.-Y. An improved adaptive genetic algorithm for the multi-depot vehicle routingproblem with time window. Journal of Networks, v. 8, n. 5, 2013. Disponível em:<http://ojs.academypublisher.com/index.php/jnw/article/view/jnw080510351042>.Cite 2 times on pages 17 and 23.

Page 94: Cooperative Coevolutionary Models for the MDVRP

Bibliography 93

LIU, R. et al. A novel cooperative coevolutionary dynamic multi-objective optimizationalgorithm using a new predictive model. Soft Computing, Springer BerlinHeidelberg, v. 18, n. 10, p. 1913–1929, 2014. ISSN 1432-7643. Disponível em:<http://dx.doi.org/10.1007/s00500-013-1175-7>. Cited on page 33.

LUKE, S. Essentials of Metaheuristics. second. [S.l.]: Lulu, 2013. Available for freeat http://cs.gmu.edu/∼sean/book/metaheuristics/. Cite 4 times on pages 23, 28, 29,and 39.

LUONG, T.; MELAB, N.; TALBI, E. Gpu computing for parallel local searchmetaheuristic algorithms. Computers, IEEE Transactions on, PP, n. 99, p. 1, 2011.ISSN 0018-9340. Cited on page 66.

LUONG, T. V. et al. A gpu-based iterated tabu search for solving the quadratic 3-dimensional assignment problem. In: Computer Systems and Applications (AICCSA),2010 IEEE/ACS International Conference on. [S.l.: s.n.], 2010. p. 1 –8. Cited on page66.

LUONG, T. V.; MELAB, N.; TALBI, E.-G. Parallel hybrid evolutionary algorithms ongpu. In: Evolutionary Computation (CEC), 2010 IEEE Congress on. [S.l.: s.n.], 2010.p. 1 –8. Cited on page 66.

MAISCHBERGER, M.; CORDEAU, J.-F. Solving variants of the vehicle routingproblem with a simple parallel iterated tabu search. In: PAHL, J.; REINERS, T.; VOß,S. (Ed.). Network Optimization. [S.l.]: Springer Berlin Heidelberg, 2011, (Lecture Notesin Computer Science, v. 6701). p. 395–400. ISBN 978-3-642-21526-1. Cited on page24.

MARKOSE, S.; TSANG, E.; JARAMILLO, S. M. The red queen principle and theemergence of efficient financial markets: An agent based approach. In: LUX,T.; SAMANIDOU, E.; REITZ, S. (Ed.). Nonlinear Dynamics and HeterogeneousInteracting Agents. Springer Berlin Heidelberg, 2005, (Lecture Notes in Economicsand Mathematical Systems, v. 550). p. 287–303. ISBN 978-3-540-27296-0. 10.1007/3-540-27296-8_19. Disponível em: <http://dx.doi.org/10.1007/3-540-27296-8$_$19>.Cited on page 26.

MEI, Y.; LI, X.; YAO, X. Cooperative coevolution with route distance grouping forlarge-scale capacitated arc routing problems. Evolutionary Computation, IEEETransactions on, v. 18, n. 3, p. 435–449, June 2014. ISSN 1089-778X. Cited on page34.

MIN, H.; CURRENT, J.; SCHILLING, D. The multiple depot vehicle routing problemwith backhauling. Journal of Business Logistics, v. 13, n. 1, p. 259–288, 1992. Citedon page 17.

MONROY, G. A.; STANLEY, K. O.; MIIKKULAINEN, R. Coevolution of neural networksusing a layered pareto archive. In: Proceedings of the 8th annual conference onGenetic and evolutionary computation. New York, NY, USA: ACM, 2006. (GECCO’06), p. 329–336. ISBN 1-59593-186-4. Cite 2 times on pages 25 and 26.

MONTGOMERY, D.; RUNGER, G. Applied Statistics and Probability for Engineers.5th. ed. [S.l.]: John Wiley & Sons, 2011. ISBN 9780470053041. Cited on page 50.

Page 95: Cooperative Coevolutionary Models for the MDVRP

Bibliography 94

MONTOYA-TORRES, J. R. et al. A literature review on the vehicle routing problemwith multiple depots. Computers & Industrial Engineering, v. 79, n. 0, p. 115 – 129,2015. ISSN 0360-8352. Cite 4 times on pages 15, 16, 20, and 21.

MUNSHI, A. et al. OpenCL Programming Guide. [S.l.]: Pearson Education, 2011.(OpenGL). Cited on page 65.

MUSSI, L. et al. Gpu implementation of a road sign detector based on particleswarm optimization. Evolutionary Intelligence, Springer Berlin / Heidelberg, v. 3,p. 155–169, 2010. ISSN 1864-5909. 10.1007/s12065-010-0043-y. Disponível em:<http://dx.doi.org/10.1007/s12065-010-0043-y>. Cited on page 66.

NAGATA, Y. Evolutionary computation in combinatorial optimization: 7th europeanconference, evocop 2007, valencia, spain, april 11-13, 2007. proceedings. In: .Berlin, Heidelberg: Springer Berlin Heidelberg, 2007. cap. Edge Assembly Crossoverfor the Capacitated Vehicle Routing Problem, p. 142–153. ISBN 978-3-540-71615-0.Cited on page 84.

NAGY, G.; SALHI, S. Heuristic algorithms for single and multiple depot vehiclerouting problems with pickups and deliveries. European Journal of OperationalResearch, v. 162, n. 1, p. 126 – 141, 2005. ISSN 0377-2217. Logistics: From Theoryto Application. Cited on page 17.

NEDJAH, N.; MOURELLE, L. de M.; ALBA, E. (Ed.). Parallel EvolutionaryComputations. [S.l.]: Springer, 2006. v. 22. (Studies in Computational Intelligence,v. 22). ISBN 978-3-540-32837-7. Cited on page 15.

NVIDIA. CUDA C Programming Guide. Pg-02829-001_v7.5. NVIDIA, 2015.Accessed in 28 out 2015. Disponível em: <https://docs.nvidia.com/cuda/cuda-c-programming-guide/>. Cite 5 times on pages 61, 62, 63, 64, and 65.

NVIDIA Corporation. NVIDIA CUDA Compiler Driver NVCC. 2015. Available at<http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html>. Accessed in 28out 2015. Cited on page 63.

PISINGER, D.; ROPKE, S. A general heuristic for vehicle routing problems. Computers& Operations Research, v. 34, n. 8, p. 2403 – 2435, 2007. ISSN 0305-0548. Disponívelem: <http://www.sciencedirect.com/science/article/pii/S0305054805003023>. Cite 2times on pages 23 and 52.

POPOVICI, E.; JONG, K. D. Sequential versus parallel cooperative coevolutionaryalgorithms for optimization. In: Evolutionary Computation, 2006. CEC 2006. IEEECongress on. [S.l.: s.n.], 2006. p. 1610–1617. Cited on page 33.

POTVIN, J.-Y. State-of-the art review—evolutionary algorithms for vehicle routing.INFORMS Journal on Computing, v. 21, n. 4, p. 518–548, 2009. Disponível em:<http://pubsonline.informs.org/doi/abs/10.1287/ijoc.1080.0312>. Cited on page 23.

PRINS, C. A simple and effective evolutionary algorithm for the vehicle routingproblem. Computers & Operations Research, v. 31, n. 12, p. 1985 – 2002, 2004.ISSN 0305-0548. Disponível em: <http://www.sciencedirect.com/science/article/pii/S0305054803001588>. Cite 2 times on pages 40 and 43.

Page 96: Cooperative Coevolutionary Models for the MDVRP

Bibliography 95

R Core Team. R: A Language and Environment for Statistical Computing. Vienna,Austria, 2014. Disponível em: <http://www.R-project.org/>. Cited on page 86.

R Core Team. R: A Language and Environment for Statistical Computing. Vienna,Austria, 2015. Disponível em: <http://www.R-project.org/>. Cited on page 50.

RAHIMI-VAHED, A. et al. Fleet-sizing for multi-depot and periodic vehiclerouting problems using a modular heuristic algorithm. Computers & OperationsResearch, v. 53, n. 0, p. 9 – 23, 2015. ISSN 0305-0548. Disponível em:<http://www.sciencedirect.com/science/article/pii/S0305054814001865>. Cite 2times on pages 16 and 17.

RAY, S. et al. The multi-depot split-delivery vehicle routing problem: Model andsolution algorithm. Knowledge-Based Systems, v. 71, n. 0, p. 238 – 265, 2014.ISSN 0950-7051. Disponível em: <http://www.sciencedirect.com/science/article/pii/S0950705114002883>. Cited on page 16.

RENAUD, J.; LAPORTE, G.; BOCTOR, F. F. A tabu search heuristic for the multi-depotvehicle routing problem. Computers & Operations Research, v. 23, n. 3, p. 229 – 235,1996. ISSN 0305-0548. Disponível em: <http://www.sciencedirect.com/science/article/pii/0305054895O0026P>. Cite 2 times on pages 17 and 23.

RESENDE, M. G.; RIBEIRO, C. C. Handbook of metaheuristics. In: . Boston,MA: Springer US, 2010. cap. Greedy Randomized Adaptive Search Procedures:Advances, Hybridizations, and Applications, p. 283–319. ISBN 978-1-4419-1665-5.Disponível em: <http://dx.doi.org/10.1007/978-1-4419-1665-5_10>. Cited on page48.

ROSIN, C. D.; BELEW, R. K. New methods for competitive coevolution. Evol. Comput.,MIT Press, Cambridge, MA, USA, v. 5, p. 1–29, March 1997. ISSN 1063-6560. Citedon page 25.

RUELA, A. S. et al. A parallel hybrid genetic algorithm on cloud computing for thevehicle routing problem with time windows. In: Systems, Man, and Cybernetics (SMC),2013 IEEE International Conference on. [S.l.: s.n.], 2013. p. 2467–2472. Cite 2 timeson pages 43 and 44.

SALHI, S.; IMRAN, A.; WASSAN, N. A. The multi-depot vehicle routing problemwith heterogeneous vehicle fleet: Formulation and a variable neighborhood searchimplementation. Computers & Operations Research, v. 52, Part B, n. 0, p. 315 – 325,2014. ISSN 0305-0548. Recent advances in Variable neighborhood search. Disponívelem: <http://www.sciencedirect.com/science/article/pii/S0305054813001408>. Citedon page 16.

SALHI, S.; NAGY, G. A cluster insertion heuristic for single and multiple depot vehiclerouting problems with backhauling. Journal of the Operational Research Society, v. 50,n. 10, p. 1034–1042, Oct 1999. Cited on page 17.

SANCI, S.; ISLER, V. A parallel algorithm for uav flight route planning on gpu.International Journal of Parallel Programming, Springer Netherlands, v. 39, p.809–837, 2011. ISSN 0885-7458. 10.1007/s10766-011-0171-8. Disponível em:<http://dx.doi.org/10.1007/s10766-011-0171-8>. Cited on page 65.

Page 97: Cooperative Coevolutionary Models for the MDVRP

Bibliography 96

SANDERS, J.; KANDROT, E. CUDA by Example: An Introduction to General-purposeGPU Programming. [S.l.]: Addison-Wesley Professional, 2011. Cited on page 62.

SCARPINO, M. OpenCL in Action: How to Accelerate Graphics and Computation.[S.l.]: Manning Publications Company, 2012. Cited on page 65.

SCHULZ, C. Efficient local search on the gpu—investigations on the vehicle routingproblem. Journal of Parallel and Distributed Computing, v. 73, n. 1, p. 14 – 31, 2013.ISSN 0743-7315. Metaheuristics on {GPUs}. Cite 3 times on pages 66, 67, and 71.

SCHULZ, C. et al. Gpu computing in discrete optimization. part ii: Survey focused onrouting problems. EURO Journal on Transportation and Logistics, Springer-Verlag,v. 2, n. 1-2, p. 159–186, 2013. ISSN 2192-4376. Cited on page 66.

SEREDYNSKI, F. Coevolutionary multi-agent systems: the application to mapping andscheduling problems. In: Industrial Technology, 1996. (ICIT ’96), Proceedings of TheIEEE International Conference on. [S.l.: s.n.], 1996. p. 431–435. Cited on page 34.

SEREDYNSKI, F.; ZOMAYA, A. Parallel and distributed computing with coevolutionaryalgorithms. In: Parallel and Distributed Processing Symposium., ProceedingsInternational, IPDPS 2002, Abstracts and CD-ROM. [S.l.: s.n.], 2002. p. 8 pp–. Citedon page 34.

SHANG, R. et al. A multi-population cooperative coevolutionary algorithmfor multi-objective capacitated arc routing problem. Information Sciences,v. 277, n. 0, p. 609 – 642, 2014. ISSN 0020-0255. Disponível em: <http://www.sciencedirect.com/science/article/pii/S0020025514002680>. Cited on page34.

SUBRAMANIAN, A.; UCHOA, E.; OCHI, L. S. A hybrid algorithm for a class of vehiclerouting problems. Computers & Operations Research, v. 40, n. 10, p. 2519 – 2531,2013. ISSN 0305-0548. Disponível em: <http://www.sciencedirect.com/science/article/pii/S030505481300021X>. Cite 6 times on pages 15, 20, 21, 23, 49, and 53.

TAN, K.; YANG, Y.; GOH, C. A distributed cooperative coevolutionary algorithm formultiobjective optimization. Evolutionary Computation, IEEE Transactions on, v. 10,n. 5, p. 527–549, Oct 2006. ISSN 1089-778X. Cited on page 33.

TAN, K. C.; YANG, Y. J.; LEE, T. H. A distributed cooperative coevolutionary algorithmfor multiobjective optimization. In: Evolutionary Computation, 2003. CEC ’03. The2003 Congress on. [S.l.: s.n.], 2003. v. 4, p. 2513–2520 Vol.4. Cited on page 33.

TANG, M.; YUSOH, Z. I. M. A parallel cooperative co-evolutionary genetic algorithmfor the composite saas placement problem in cloud computing. In: COELLO, C. et al.(Ed.). Parallel Problem Solving from Nature – PPSN XII. Springer Berlin Heidelberg,2012, (Lecture Notes in Computer Science, v. 7492). p. 225–234. ISBN 978-3-642-32963-0. Disponível em: <http://dx.doi.org/10.1007/978-3-642-32964-7_23>. Citedon page 34.

TANIMOTO, J. Coevolutionary, coexisting learning and teaching agents model forprisoner’s dilemma games enhancing cooperation with assortative heterogeneousnetworks. Physica A: Statistical Mechanics and its Applications, v. 392, n. 13, p.

Page 98: Cooperative Coevolutionary Models for the MDVRP

Bibliography 97

2955 – 2964, 2013. ISSN 0378-4371. Disponível em: <http://www.sciencedirect.com/science/article/pii/S037843711300143X>. Cited on page 34.

THOMPSON, J. N. The coevolving web of life. The American Naturalist, The Universityof Chicago Press for The American Society of Naturalists, v. 173, n. 2, p. pp. 125–140,2009. ISSN 00030147. Disponível em: <http://www.jstor.org/stable/10.1086/595752>.Cited on page 25.

TIAN, J. et al. Coevolutionary learning of neural network ensemble for complexclassification tasks. Pattern Recognition, v. 45, n. 4, p. 1373 – 1385, 2012. ISSN0031-3203. Disponível em: <http://www.sciencedirect.com/science/article/pii/S0031320311003918>. Cited on page 34.

TRAPNELL, C.; SCHATZ, M. C. Optimizing data intensive gpgpu computationsfor dna sequence alignment. Parallel Computing, v. 35, n. 8-9, p. 429–440, 2009.ISSN 0167-8191. Disponível em: <http://www.sciencedirect.com/science/article/pii/S0167819109000714>. Cited on page 66.

TSUTSUI, S.; FUJIMOTO, N. Solving quadratic assignment problems by geneticalgorithms with gpu computation: a case study. In: Proceedings of the 11th AnnualConference Companion on Genetic and Evolutionary Computation Conference: LateBreaking Papers. New York, NY, USA: ACM, 2009. (GECCO ’09), p. 2523–2530. ISBN978-1-60558-505-5. Disponível em: <http://doi.acm.org/10.1145/1570256.1570355>.Cited on page 66.

TSUTSUI, S.; FUJIMOTO, N. An analytical study of gpu computation for solvingqaps by parallel evolutionary computation with independent run. In: EvolutionaryComputation (CEC), 2010 IEEE Congress on. [S.l.: s.n.], 2010. p. 1 –8. Cited on page66.

TU, W. et al. A bi-level voronoi diagram-based metaheuristic for a large-scalemulti-depot vehicle routing problem. Transportation Research Part E: Logistics andTransportation Review, v. 61, n. 0, p. 84 – 97, 2014. ISSN 1366-5545. Disponível em:<http://www.sciencedirect.com/science/article/pii/S1366554513001798>. Cited onpage 16.

Van Luong, T. Parallel Metaheuristics on GPU. Tese (Doutorado) — LIFL Lille1 University - INRIA Lille Nord Europe, France, Dec 2011. Disponível em:<http://tel.archives-ouvertes.fr/docs/00/66/95/75/PDF/thesis.pdf>. Cited on page 66.

VIDAL, T. et al. A hybrid genetic algorithm for multidepot and periodic vehicle routingproblems. Operations Research, v. 60, n. 3, p. 611–624, 2012. Cite 7 times on pages15, 20, 21, 23, 43, 49, and 50.

VIDAL, T. et al. Implicit depot assignments and rotations in vehicle routing heuristics.European Journal of Operational Research, v. 237, n. 1, p. 15 – 28, 2014. ISSN0377-2217. Disponível em: <http://www.sciencedirect.com/science/article/pii/S037722171301028X>. Cite 4 times on pages 17, 23, 53, and 58.

VON ZUBEN, F. J. IA707 – Computação Evolutiva – Turma A: Notas de Aula. 2013.Disponível em: <http://goo.gl/8AnUK>. Acessado em: 26 jun 2013. Cite 2 times onpages 26 and 28.

Page 99: Cooperative Coevolutionary Models for the MDVRP

Bibliography 98

VU, C. C.; NGUYEN, H. H.; BUI, L. T. A parallel cooperative coevolution evolutionaryalgorithms. In: Knowledge and Systems Engineering (KSE), 2011 Third InternationalConference on. [S.l.: s.n.], 2011. p. 48–53. Cited on page 34.

WANG, H.; RAHNAMAYAN, S.; WU, Z. Parallel differential evolution withself-adapting control parameters and generalized opposition-based learningfor solving high-dimensional optimization problems. Journal of Parallel andDistributed Computing, n. 0, p. –, 2012. ISSN 0743-7315. Disponível em:<http://www.sciencedirect.com/science/article/pii/S0743731512000639>. Cited onpage 66.

WANG, H.-F.; CHEN, Y.-Y. A coevolutionary algorithm for the flexible deliveryand pickup problem with time windows. International Journal of ProductionEconomics, v. 141, n. 1, p. 4 – 13, 2013. ISSN 0925-5273. Meta-heuristicsfor manufacturing scheduling and logistics problems. Disponível em: <http://www.sciencedirect.com/science/article/pii/S0925527312001697>. Cited on page33.

WANG, H.-F.; CHEN, Y.-Y. A coevolutionary algorithm for the flexible deliveryand pickup problem with time windows. International Journal of ProductionEconomics, v. 141, n. 1, p. 4 – 13, 2013. ISSN 0925-5273. Meta-heuristicsfor manufacturing scheduling and logistics problems. Disponível em: <http://www.sciencedirect.com/science/article/pii/S0925527312001697>. Cited on page34.

WANG, R.; PURSHOUSE, R.; FLEMING, P. Preference-inspired coevolutionaryalgorithms for many-objective optimization. Evolutionary Computation, IEEETransactions on, v. 17, n. 4, p. 474–494, Aug 2013. ISSN 1089-778X. Cited on page34.

WANG, X.; CHENG, H.; HUANG, M. Qos multicast routing protocol oriented tocognitive network using competitive coevolutionary algorithm. Expert Systems withApplications, v. 41, n. 10, p. 4513 – 4528, 2014. ISSN 0957-4174. Disponível em:<http://www.sciencedirect.com/science/article/pii/S0957417414000414>. Cited onpage 33.

WENJING, Z.; YE, J. An improved particle swarm optimization for the multi-depotvehicle routing problem. In: E-Business and E-Government (ICEE), 2010 InternationalConference on. [S.l.: s.n.], 2010. p. 3188–3192. Cite 2 times on pages 18 and 23.

WONG, M.-L.; CUI, G. Data mining using parallel multi-objective evolutionaryalgorithms on graphics hardware. In: Evolutionary Computation (CEC), 2010 IEEECongress on. [S.l.: s.n.], 2010. p. 1 –8. Cited on page 66.

YU, B.; YANG, Z. Z.; XIE, J.-X. A parallel improved ant colony optimization formulti-depot vehicle routing problem. Journal of the Operational Research Society,v. 62, n. 1, p. 183–188, 2011. Cited on page 24.

ZENG, W. et al. Risk consideration and cooperation in the iterated prisoner’s dilemma.Soft Computing, Springer Berlin Heidelberg, p. 1–21, 2014. ISSN 1432-7643.Disponível em: <http://dx.doi.org/10.1007/s00500-014-1523-2>. Cited on page 34.