• No results found

Sensor-less Smart Waste Management System

N/A
N/A
Protected

Academic year: 2021

Share "Sensor-less Smart Waste Management System"

Copied!
50
0
0

Loading.... (view fulltext now)

Full text

(1)

IT 19 001

Examensarbete 30 hp Januari 2019

Sensor-less Smart Waste Management System

Rahul Sridhar Setty

Institutionen för informationsteknologi

(2)
(3)

Teknisk- naturvetenskaplig fakultet UTH-enheten

Besöksadress:

Ångströmlaboratoriet Lägerhyddsvägen 1 Hus 4, Plan 0 Postadress:

Box 536 751 21 Uppsala Telefon:

018 – 471 30 03 Telefax:

018 – 471 30 00 Hemsida:

http://www.teknat.uu.se/student

Abstract

Sensor-less Smart Waste Management System

Rahul Sridhar Setty

In order to improve the municipal solid waste management efficiency, smart management approaches have been proposed such as wireless sensor network architecture solution which includes the use of sensors to detect the garbage bin fill levels and vehicle route optimization techniques. Experimental results show that we can save up to 35% of the operational cost by improving the efficiency of solid waste management. In this thesis, a new low-cost architecture solution is proposed for improving the efficiency of municipal solid waste management without the use of sensors. Instead, a messaging application is used to ask the customers for pick up of garbage. Based on their reply, the prototype architecture uses a cluster-first route-second method that implements a clustering algorithm with truck capacity as the constraint and solves a travelling salesman algorithm in each cluster. The prototype architecture consists of a back-end server that implements sweep clustering algorithm for clustering the customers by their location and solves travelling salesman problem with dynamic programming method in each cluster, firebase realtime database and front-end using android application for the mobile. The experimental results show that the prototype system can adapt to the change in dataset size and truck capacity constraints. We have observed that with an increase in truck capacity constraint, the number of clusters formed for the data set decreases.

Forward and backward sweep clustering methods have been compared where there is no significant difference in the results produced. The dataset has been generated manually due to unavailability of real data from various sources. As a future work, we need to test the prototype with the real data in order to produce more accurate results.

Tryckt av: Reprocentralen ITC IT 19 001

Examinator: Mats Daniels Ämnesgranskare: Di Yuan

Handledare: Sheng Leslie Joevenller

(4)
(5)

I

Acknowledgements

I would first of all like to thank Uppsala University and my supervisor Sheng Joevenller from Sircle for providing a unique opportunity to work on an industrial project as a master thesis. I would like to thank my reviewer Professor Di Yuan for guidance in optimization algorithm during my thesis period.

Through this thesis, I was able to build a working prototype model for Sircle with various technologies. I got an opportunity to work with various tools/frameworks such as Eclipse IDE, Android Studio, Firebase database, Google API services, and learning new concepts in the vehicle route optimization. I was able to gather knowledge on how the efficiency of municipal solid waste management can be improved through route optimization without the use of sensors.

(6)

Table of Contents II

Table of Contents

Acknowledgements I

List of Tables IV

List of Figures V

List of Acronyms VI

1 Introduction 1

1.1 Municipal solid waste management . . . 1

1.2 Sensor based solution . . . 1

1.3 Goal of the master thesis . . . 2

1.4 Assumptions . . . 3

1.5 Sircle . . . 3

1.6 Infoping . . . 4

2 Related work in route optimization 5 2.1 Vehicle routing problem (VRP) . . . 5

2.2 Capacitated vehicle routing problem (CVRP) . . . 6

2.2.1 Feasibility . . . 7

2.3 Classic heuristic methods for CVRP . . . 7

2.3.1 Clark and wright heuristic . . . 7

2.3.2 Nearest neighbor heuristic . . . 7

2.3.3 Nearest addition heuristic . . . 7

2.3.4 Sweep heuristic . . . 8

3 Problem formulation and definitions 9 3.1 Customer details . . . 9

3.2 Vehicle fleet . . . 9

3.3 Decision variables . . . 9

3.4 Objective function with constraints . . . 9

4 Sweep heuristic algorithm for CVRP 11 4.1 Phase I - Clustering . . . 11

4.2 Phase II - Solving TSP for each cluster . . . 13

4.2.1 Integer programming for TSP . . . 13

4.2.2 Different approaches to implement TSP . . . 15

(7)

Table of Contents III

4.2.3 TSP using dynamic programming . . . 18

5 System architecture 22 5.1 Sircle server . . . 22

5.2 Firebase realtime database . . . 26

5.3 Smart waste management application using android . . . 27

5.3.1 Android screen shots explanation . . . 27

5.3.2 OSRM service for vehicle route in android . . . 28

6 Experimental results 29 6.1 How current prototype accounts for change in the dataset and truck capacity 29 6.1.1 Increase the dataset size and keep the truck capacity constant . . 29

6.1.2 Keeping dataset size constant with varying truck capacity . . . . 32

7 Conclusions 35

8 Future work 36

Literature 37

(8)

List of Tables IV

List of Tables

Table 6.1: Sample user dataset 1 . . . 30 Table 6.2: Sample user dataset 2 . . . 30 Table 6.3: Sample user dataset 3 . . . 31

(9)

List of Figures V

List of Figures

Figure 1.1: WSN architecture . . . 2

Figure 1.2: Sircle . . . 3

Figure 1.3: Infoping . . . 4

Figure 2.1: Classic vehicle routing problem . . . 5

Figure 4.1: Polar coordinates . . . 11

Figure 4.2: Backward sweep clustering . . . 12

Figure 4.3: Sub tours created in the solution for TSP . . . 14

Figure 4.4: Intra-route neighborhood operators . . . 16

Figure 4.5: Dynamic programming example . . . 19

Figure 4.6: Cost matrix . . . 20

Figure 4.7: Shortest tour path sequence . . . 21

Figure 5.1: System architecture . . . 22

Figure 5.2: Forward sweep clustering . . . 25

Figure 5.3: Firebase . . . 26

Figure 5.4: Firebase realtime database snapshot . . . 26

Figure 5.5: Android app screenshot 1 . . . 27

Figure 5.6: Android app screenshot 2 . . . 27

Figure 6.1: Android app snapshot for dataset 1 . . . 30

Figure 6.2: Android app snapshot for dataset 2 . . . 31

Figure 6.3: Android app snapshot for dataset 3 . . . 32

Figure 6.4: Forward vs backward sweep algorithm . . . 32

Figure 6.5: Sweep algorithm cluster formation . . . 33

Figure 6.6: Android app snapshot: truck capacity 400kg . . . 34

Figure 6.7: Android app snapshot: truck capacity 600kg . . . 34

(10)

List of Acronyms VI

List of Acronyms

WSN Wireless sensor network

MSW Municipal solid waste management

DTN Data transfer nodes

VRP Vehicle routing problem

CVRP Capacitated vehicle routing problem NNH Nearest neighbor heuristic

TSP Travelling salesman problem

ACS Ant colony optimization

OSRM Open source routing machine

VRPTW Vehicle routing problem with time window API Application programming interface

JSON Javascript object notation

(11)

Introduction 1

1 Introduction

1.1 Municipal solid waste management

In large urban areas where there is high population density, it is harder to find a solu- tion for the municipal solid waste management problems [1]. Optimization of MSW collection and transportation becomes one of the major concerns because the existing MSW management systems have a high cost of collection, and transportation approxi- mately 80–90% and 50–80% in low-income, and middle-income countries respectively.

In high-income countries like Sweden, the transport collection accounts for a major part of the total cost in modern waste management systems often between 50% and 75%

(Sonesson et al. Swedish Institute for Food and Biotechnology). It is prudent to look into this because the collection of MSW often accounts for the bulk of waste management budgets and thus even a slight improvement in waste collection operation would reap substantial cost savings.

1.2 Sensor based solution

A lot of research and work has been done in order to solve the MSW management problem in both urban and rural areas to improve efficiency and reduce the operational cost. One of the solutions is to use "Wireless Sensor Network" architecture. The MSW consists of many sensor nodes which are distributed over different physical locations, capable of measuring different characteristics such as temperature, humidity, garbage bin fill levels, and are capable of exchanging data within each other and with the base station through the network [2].

(12)

Introduction 2

Figure 1.1: WSN architecture

In Figure 1.1, the sensor nodes acquire the fill level data of each garbage bin which reside in different physical locations in rural or urban areas. These fill level data are then sent to the supervisor system through DTN. The DTN provide long-range communication to transfer garbage fill level data between the sensors and the supervisor system. The supervisor system can find solutions to different problems such as optimizing the route taken by the garbage trucks based on the acquired data from the sensors with the main aim to reduce the operational cost [2].

The challenge in such architecture is that a lot of investment in hardware cost is involved.

With an increase in the number of garbage bins, there will be an increase in the number of sensor nodes and DTN which will increase the overall operational costs. A lot of optimizations has to be performed such as increasing the battery life of the sensor nodes, network maintenance, etc [2].

1.3 Goal of the master thesis

This master thesis focuses on developing architecture/prototype for the sensor-less smart waste management system using android mobile application and vehicle route optimization techniques. Most of the previous work has been done with the sensor based solution where there is a use of sensor nodes to detect the garbage bin fill levels.

This thesis focuses on replicating the sensor based solution without the use of sensor nodes and at the same time making sure the quality is met.

The main idea is that instead of collecting garbage bin fill level data from the sensor nodes, ask the owner of the household/customers whether their garbage is full or not through a messaging application. The customer can reply with a "Yes" or "No" option on their smart phone. Based on the reply data from the customer, the optimized route for the garbage truck is generated which minimizes the distance covered and fuel emission leading to an environmentally friendly solution. This idea will be feasible because as the survey [3] states that 85% of the population in Sweden uses a smart phone in the age group of 16 years or older from the year 2012 to 2016. This can reduce hardware and

(13)

Introduction 3

maintenance cost as there are no sensor nodes or DTN involved to collect the garbage bin fill level data.

1.4 Assumptions

There are few assumptions which are made in the thesis:

• This service will only be useful for private households (villa) with bin owners.

• The private households will be asked whether the food and plastic waste are full or not as they are the most frequently produced waste by the households.

• The garbage truck type is a "multi-chamber vehicle" which can carry food and plastic waste separately.

• The private households will be considered only from Uppsala (Sweden), for this thesis.

• While performing the route optimization for the garbage truck, the demand from each household will be identical as we do not know the fill level of the garbage bins. When the owner of the household reply with a "Yes" through the messaging application when asked, the assumption is that the garbage is filled with at least 95%.

1.5 Sircle

Figure 1.2: Sircle

The master thesis is done under the supervision of "Sircle" which is a spin-off firm in Uppsala and a project facilitated by Uppsala University Innovation and European Regional Development Funds which aims to bring university knowledge to apply in industrial applications. This project has also collaborated with the Optimization group at Uppsala University.

The idea of this spin-off firm has sprung out of traffic optimization research where the use of novel real-time sensor data has been studied. Part of the research has been dedicated to monitoring of waste bins. The studies show that optimization of waste pickups could potentially save up to 60% of the collection time and reduce emissions and costs. This application is at the stage of proof of concept by using low-energy consumption type of sensors which is enabling numerous applications that are gathering data to empower

(14)

Introduction 4

smart waste management system. We will be experimenting to use software to test whether such a system is more user-friendly and less hurdle for implementation. The spin-off firm has conducted pre-study at Ekonomikum campus where a digital tool is used to collect waste volume data and showed interesting results.

1.6 Infoping

Figure 1.3: Infoping

Sircle has collaborated with a messaging application firm Infoping. In the application, administrators can send the message instantly to everyone as a push notification or as a smart SMS. The recipients can give feedback with reply buttons (Yes/No) in the message.

The sender can see the statistics on who has read the message, who replied, etc. The recipient need not have the application installed on his/her phone. They will receive the message as a smart SMS which will be a link to a web page where they can reply [4].

This application can be used to send the question such as "Whether your garbage is full or not?" to the private households.

(15)

Related work in route optimization 5

2 Related work in route optimization

2.1 Vehicle routing problem (VRP)

Figure 2.1: Classic vehicle routing problem

Since this thesis focuses on the optimizing the garbage truck route, we will be exploring different vehicle route optimization techniques. The VRP is a combinatorial problem with travelling salesman problem and bin packing problem as special cases [5]. In 1981, Lenstra and Rinnooy Kan analyzed the complexity of the VRP and came up with the conclusion that all the vehicle routing problems are NP-Hard [6] [7]. The classic VRP focuses on finding the route with the shortest possible distance covered by the vehicle starting from one point, making sure all the nodes are visited once and returning to the start point [7]. In our case, we aim to find a minimal route starting from one point (say depot), collecting the garbage of all the customers once and then returning back to the depot with minimum possible distance covered. This problem holds an important place in the distribution management industry such as goods delivery, newspaper distribution, garbage collection, etc. These problems can be subjected to several constraints such as vehicle capacity, delivery time windows, etc. It is still difficult to solve vehicle routing

(16)

Related work in route optimization 6

problem with a capacity constraint with hundreds of nodes with methods such as Branch and Bound or Branch and Cut [8].

The VRP was first proposed by George Dantzig and John Ramser in 1959 [9] for deliver- ing petrol. In 1964, Clark and Wright developed an iterative savings algorithm which aimed to give a rapid selection of an optimum route [10]. In 1981, N. ChristofidesA, Mingozzi and P. Toth presented two papers where they proposed algorithms for solving the VRP. The first paper presents an exact solution for solving VRP using (i) shortest k-spanning tree and (ii) q-routes [8] [11]. The second paper presents a state-space relax- ation method using dynamic programming [8] [12]. In 1984, Gilbert Laporte, Martin Desrochers, and Yves Nobert developed a "Two exact algorithm" where one is based on cutting plane and the other on the branch and bound where they considered a version of VRP with an identical vehicle and an upper bound in the distance traveled by each vehicle [8] [13].

A lot of research has been done in recent years to solve VRP using heuristic and meta- heuristic approaches [8]. Some of the heuristic approaches are: 2-phase algorithm which consists of (i) cluster first, route second approach and (ii) route first, cluster second approach. Some of the meta-heuristic approaches are: ant colony optimization [14], simulated annealing [15], tabu search [16], genetic algorithm [17], etc.

The classic heuristic approaches are the most widely used even today because they limit their search space exploration and provide results in satisfactory computational time. These approaches can be adapted to different constraints such as upper bound in vehicle capacity, distance traveled, time window, etc. The meta-heuristic approaches aim to explore the promising regions of the search space. They usually produce more promising results than classic heuristic methods but the challenge is that they consume more computation time. They cannot extend with different constraints as they are dependent on context and a lot of fine-tuning of parameters are required [18].

For this master thesis, classic heuristic approaches will be considered over the meta- heuristic approaches as classic heuristic approaches limit their search space exploration and provide results in satisfactory computational time [18]. There are different types in VRP such as CVRP [5], VRPTW [19], etc. This thesis will focus on CVRP since the garbage truck will have a limited weight/volume positive finite capacity. All the garbage trucks will have an identical capacity constraint value.

2.2 Capacitated vehicle routing problem (CVRP)

The CVRP is an extension of classic VRP with a constraint that all the vehicles have a uniform capacity of a single commodity such as food or plastic waste. In CVRP, a set of delivery trucks with uniform capacity serves a group of customers with known demands of the single commodity by ensuring transportation cost is reduced and the capacity of the vehicle is not exceeded [20].

(17)

Related work in route optimization 7

2.2.1 Feasibility

A solution is feasible if the total demand of the customers where the delivery vehicle has to serve in a route does not exceed the capacity of the vehicle with minimum transportation cost [20].

2.3 Classic heuristic methods for CVRP

The classic or constructive heuristic methods for VRP aims to build a feasible solution gradually and makes sure that the solution cost is minimized. With the help of sequential heuristic methods, one route is generated at a time and with parallel heuristic meth- ods, multiple routes can be generated simultaneously [21]. The constructive heuristic methods have a basic following algorithm [22]:

1. Start with an empty feasible solution.

2. Repeat until an optimal feasible solution is produced:

Construct the complete solution by extending the current solution with the use of heuristic

2.3.1 Clark and wright heuristic

In 1964, Clark and Wright developed a heuristic approach for CVRP [10]. The initial solution of the algorithm is that every route will have one customer and a corresponding vehicle which means for every customer, a vehicle is associated with it. The number of vehicles is reduced in every iteration of the algorithm by unifying the route to minimize the distance [21].

2.3.2 Nearest neighbor heuristic

The NNH for CVRP is a constructive heuristic method where the nearest neighbor (based on distance) of a node in the route is selected to generate a feasible solution. At the start of the algorithm, a customer node is selected randomly, and nearest unvisited neighbor is selected from the last visited node to create a route. The route is created as long as the capacity of the vehicle is not exceeded. This approach is derived from the TSP [23] [21].

2.3.3 Nearest addition heuristic

In this approach, an unvisited customer node is inserted between two visited customer nodes. It is an extension of NNH. The cost of insertion of the unvisited customer node between the visited neighbor customer nodes has to be minimum. The cost of insertion is calculated by subtracting the sum of the distance between the unvisited customer node with the visited customer nodes and the distance between the visited neighbor customer nodes [21].

(18)

Related work in route optimization 8

2.3.4 Sweep heuristic

In 1974, Gillet and Miller developed a two-phase constructive heuristic algorithm called as Sweep algorithm for CVRP [21] [24]. This sweep heuristic algorithm is based on cluster first route second approach. The first phase of the algorithm consists of customer segmentation where clusters of customers are generated based on the polar coordinates between the depot and the customer node with vehicle capacity as a constraint. The second phase consists of solving TSP for each cluster [21].

(19)

Problem formulation and definitions 9

3 Problem formulation and definitions

This section defines and explains the mathematical formula, i.e. objective function with different constraints for the CVRP [7].

3.1 Customer details

• The CVRP consists of a set of customer nodes C, C={1,. . . ,n} where they reside in n different locations.

• A pair of customer nodes (i,j) is associated with time tij (in minutes) and distance dij(in kilometer) metrics where (i,j)2C and i,j.

• Each customer node has a demand Dl, l2C. The depot is denoted by 0.

3.2 Vehicle fleet

• There are a set of V vehicles, V={1,. . . ,m}.

• Each vehicle will start from the depot, serve all the customers once and return to the depot.

All the vehicles will have a uniform capacity bp, p2V.

Let Rp={rp(1),. . . ,rp(np)}, Rprepresents the route sequence for vehicle p,8p. rp(k) is the index of the kth customer node and npis the number of customers in the route. Every route finishes at the depot.

3.3 Decision variables

xijp=1 if customer node j is served by vehicle p after customer node i, where (i,j)2C and8p. Else, xijp=0.

ypj is a fraction of customer’s demand j served by vehicle p, where j2C and8p.

3.4 Objective function with constraints

The objective function is to minimize the total distance traveled by all the vehicles with the capacity of the vehicle as a constraint. The mathematical formula for the objective

(20)

Problem formulation and definitions 10

function with constraints is based on Belfiore (2008) [7], Dror & Trudeau (1990) [25] and Ho & Haugland [26].

The objective function is written as:

min

Â

n

i=0

Â

n j=0

Â

m p=1

xijpdij (3.1)

The constraints are listed as follows:

Â

n j=1

x0jp =1 8p (3.2)

Â

n i=0

xiqp

Â

n

j=0

xqjp =0 q2 {0,..., n}; 8p (3.3)

Â

m p=1

yip=1 i2 {1,..., n} (3.4)

Â

n i=1

ypiDibp 8p (3.5)

Â

m p=1

Â

n i=0

xijp 1 j2 {0,..., n} (3.6)

yip 0 i2 {1,..., n}; 8p (3.7)

xijp 2 {0,1} i2 {0,..., n}; j2 {0,..., n}; 8p (3.8) Constraints are explained as follows:

1. The first constraint 3.2 makes sure that every vehicle8p leaves the garbage depot and arrives at the customer node for service.

2. The second constraint 3.3 makes sure that every vehicle serves the respective customer, leaves the customer and goes back to the garbage depot.

3. The third constraint 3.4 makes sure that the total demand of the customers are fulfilled.

4. The fourth constraint 3.5 makes sure that the total demand of the customers served does not exceed the vehicle capacity.

5. The fifth constraint 3.6 makes sure that at least one customer node is visited by at least one vehicle.

6. The sixth constraint 3.7 makes sure that the decision variable yipis positive.

7. The seventh constraint 3.8 makes sure that the decision variable xijpis binary.

(21)

Sweep heuristic algorithm for CVRP 11

4 Sweep heuristic algorithm for CVRP

The objective function 3.1 with different constraints can be implemented with the help of sweep heuristic algorithm.

4.1 Phase I - Clustering

With the help of sweep clustering algorithm, clusters of customer nodes are created based on the demand of each customer node and the vehicle capacity. In this thesis, we assume that the demand of each customer will be identical as we do not know how much garbage has been filled. We assume that the customer’s garbage bin is filled greater than 95% when they inform through Infoping app to collect the garbage. We assume that the capacity of each vehicle is identical.

The sweep clustering algorithm is applied to a polar coordinate system where the depot and the customer nodes are associated with location coordinates in terms of latitude and longitude [27]. The polar coordinate system consists of radial coordinate (r) and angular coordinate (q) where r ranges from 0 to • and q ranges from 0 to 2p [28].

x=r cosq (4.1)

y=r sinq (4.2)

Figure 4.1: Polar coordinates

The polar coordinates for a point (in blue circle) with (r, q) are shown in Figure 4.1. The radial coordinate (r) is the distance from the origin in the polar coordinate system, and the angular coordinate is the counterclockwise angle from the x-axis [29].

r=

qx2+y2 (4.3)

(22)

Sweep heuristic algorithm for CVRP 12

q=arctan(y

x) (4.4)

The "arctan" is the inverse of a tangent, and it gives the value between -p/2 and +p/2 range. We might need to add p or 2p to get the required angle [28].

When the sweep clustering algorithm is implemented, the depot is considered to be the origin or center in the polar coordinate system. The polar angle between the depot and all the customer nodes is calculated with the help of the formula 4.3 and 4.4. We can think that there is a virtual ray projected from the depot of some finite radius, and starts to rotate in an anti-clockwise direction. When the ray rotates in an anti-clockwise direction, it will pass through the customer nodes from minimum polar angle to maximum polar angle.

Figure 4.2: Backward sweep clustering

In order to perform clustering of customer nodes, the sweep clustering algorithm takes into account the demand of each customer node (demand[i]) and the capacity of the vehicle (b). When the virtual ray starts to rotate in an anti-clockwise direction, it will first pass through the customer node with the minimum polar angle (say address[i]). Then it will pass through the next customer node with address[i + 1]. When the virtual ray passes through the first customer node (address[i]), the demand of that node (demand[i]) is compared with the capacity of the vehicle (b). When the virtual ray passes through the second customer node (address[i + 1]), the demand of the second customer node (demand[i + 1]) is added with the demand of the first customer node (demand[i]). Then, the sum of demand[i] and demand[i + 1] is compared with the capacity of the vehicle (b).

If the sum of the demand of the customer nodes (demand[i] + demand[i +1]) is greater than the vehicle capacity (b), then the first cluster is formed with two customer nodes, and the next customer node becomes the first node of the second cluster. In Figure 4.2, cluster 2 is created when the sum of customers nodes in cluster 1 exceeds the vehicle capacity. The sweep clustering algorithm continues until the virtual ray does not find any customer node.

(23)

Sweep heuristic algorithm for CVRP 13

4.2 Phase II - Solving TSP for each cluster

The next stage is solving TSP for each cluster. In each cluster, the garbage truck will be collecting the garbage of each customer node exactly once and then return to the depot in a minimum possible distance covered. The complexity of the TSP is the number of possible tours covering all the customer nodes (n) in a cluster which is equal to (n - 1)!/2 [30]. The distance between two points can be calculated either by Euclidean distance or Manhattan distance. In this scenario, the distance between the customer nodes is the roadway distance since these customer nodes are present in the actual physical locations.

The TSP can be classified into three categories broadly [30]:

1. Symmetric TSP (sTSP):

Given a set of n cities, C={c1,...,cn} and an edge set, E={(i,j):(i,j)2C}. Then, dij=dji which means the distance value from city i to j is equal to the distance value from city j to i.

2. Asymmetric TSP (aTSP): In Asymmetric TSP, dij,dji.

3. Multi TSP (mTSP): In multi TSP, there are m salesmen who are allocated a subset of cities to visit. The cities allocated to each salesmen do not overlap with each other. In multi TSP, the sum of the distance of the tour by m salesmen should be minimized where the salesmen start and end at the depot, visiting all the cities exactly once. There are a lot of real-life applications for multi TSP as a large number of cities can be visited with the help of multiple salesmen. The most common application is in routing and scheduling problems such as bus routing problem, crew scheduling problem, interview scheduling problem, etc.

4.2.1 Integer programming for TSP

The TSP is usually applied on a complete graph, G=(V,E) which can be a directed or an undirected graph. Since the graph is complete, there is an edge between every pair of the city. The vertex set for n cities can be defined by V={1,...,n} and the edge set can be defined by E={(i,j):(i,j)2V, i<j} and the distance between the edges (i,j) is defined by dij [30].

For each edge (i,j) in the graph G, a binary variable is associated which tells whether the edge is included in the tour or not [31].

xij= 8<

:

1, if edge (i,j)2V in tour.

0, otherwise. (4.5)

We assume that the graph will be undirected, then xij=xji and dij=dji. The objective function is to minimize the total distance covered with all the edges included in the tour exactly once.

min

Â

(i,j)2E

xijdij (4.6)

(24)

Sweep heuristic algorithm for CVRP 14

In the tour, a city should be visited exactly once. This means the city should have an incoming edge and an outgoing edge. There must be city i, with two binary variables xij=1.

j

Â

2V

xij =2 8i2V (4.7)

With the constraint 4.7, there is a possibility that the solution produced will have sub- tours that are not connected with each other.

Figure 4.3: Sub tours created in the solution for TSP

As an example, Figure 4.3 shows a solution where two sub-tours are created with the constraint 4.7. The first sub tour with cities 1, 2, 3 and 4 that are connected satisfy constraint 4.7 where each city has an incoming edge and an outgoing edge. The second sub-tour with city 5, 6 and 7 that are connected also satisfy the constraint 4.7. For the final solution of TSP, there has to be a connection between the sub-tours. We need to add an extra constraint to eliminate such solution with sub-tours that are not connected with each other [31].

(i,j)

Â

2S,i,j

xij |S| 1 8SV; S , f (4.8)

S is a non-empty subset of the set of V cities. The constraint 4.8 states that the number of edges between the nodes in S must be at most|S|- 1 [31]. If we consider the first sub-tour in Figure 4.3, the number of edges is 4 and|S|- 1 is 3.

x12+x24+x43+x31>|S| 1 (4.9) The number of edges in the sub-tour is greater than 3 which violates the sub-tour elimination constraint 4.8.

The final integer programming formula for TSP is shown below:

min

Â

(i,j)2E

xijdij (4.10)

(25)

Sweep heuristic algorithm for CVRP 15

j

Â

2V

xij =2 8i2V (4.11)

(i,j)

Â

2S,i,j

xij |S| 1 8SV; S , f (4.12)

xij2 {0,1} (4.13)

4.2.2 Different approaches to implement TSP Local Search

The local search starts from an initial feasible solution which can be provided by heuris- tics methods such as nearest neighbor, Clark and wright heuristic, etc. In the search space, the local search approach moves from the present solution to a neighboring solution with the help of neighborhood operators where the neighboring solution is a better solution than the present solution [21]. In terms of TSP, the neighboring solution can produce a shorter route distance than the current solution. Each solution will have a limited number of feasible neighborhood solution to move, and the present solution may not move to the best neighborhood solution [21].

The neighborhood operators can be defined as Intra-route or Inter-route. In Intra-route neighborhood operator, there is a change in one or more customer node position in a single route [21]. Some of the Intra-route operators are Relocate, 2-Opt, OR-Opt, etc. In Inter-route operator, there is a change in one or more customer nodes between multiple routes.

The limitation of the local search approach is that the optimization of the solution with the help of neighborhood operators might lead to local optima where they cannot produce a better solution [21]. In order to escape from local optima, several methods such as guided local search, simulated annealing, etc. are used.

(26)

Sweep heuristic algorithm for CVRP 16

Figure 4.4: Intra-route neighborhood operators

Guided local search

The guided local search [32] is a meta-heuristic method where the objective function of the local search method is augmented with a penalty factor [33]. This penalty factor is used to escape the local minima in order to produce better results [34]. The augmented objective function for guided local search is defined as:

g0(S) =g(S) +l

Â

i2F

Ii(S).pi.ci (4.14)

where

1. g(s) is the objective function for optimization.

2. l is the penalty factor which tells the importance of the penalties.

3. F is the set of features for the solution.

4. Ii(S) is the indicator function. If i belongs to the feature set F for the current solution S, then it is equal to 1; Otherwise 0.

5. pi is the number of times feature i is penalized.

6. ciis the cost of feature i.

Simulated annealing

The simulated annealing approach was first introduced by Kirkpatrick in 1983 [35]. It is a stochastic approach which uses a probabilistic method to generate approximate

(27)

Sweep heuristic algorithm for CVRP 17

solution [15]. This method has its origin in statistical mechanics, and it is based on the analogy from annealing process of solids where the solid is heated in a high temperature, and then is cooled down to crystallize [36].

The annealing algorithm starts with an initial feasible solution and moves to the neigh- borhood solution with the help of neighborhood operators. The acceptance or the rejection of the neighborhood solution is based on the probability p [15]. The probability p is defined as:

p=e DCT (4.15)

where

1. T is the temperature.

2. DC is the difference between the cost in the current solution and the neighborhood solution.

At the beginning of the annealing algorithm, a high value of T is considered. Therefore, there is a high chance of an inferior solution to be accepted. At this stage, the algorithm finds a good region in the solution space. As the algorithm progresses, the value of T is decreased, and the probability of accepting an inferior solution is reduced [15].

Tabu Search

Tabu search [16] is a meta-heuristic method that mimics the human memory process with the help of a Tabu list. The search tries to prevent the recent moves that possibly lead to previously visited local minima. A move is associated with a tabu status. There is an aspiration criterion to change the tabu status of a move in order to produce better results. The performance of the algorithm depends on three factors [34]:

1. Type of local search operator.

2. Tabu list length.

3. Parameters of aspiration criterion.

Dynamic programming

The dynamic programming method was first introduced by Richard Bellman in 1957 [37].

In dynamic programming, an optimization problem is broken down into sub-problems.

These sub-problems are solved and their results are stored so that they are not visited or solved again. The method makes sure that it looks through all the sub-problems and never computes them again. The method guarantees correctness and efficiency of the solution produced which cannot be matched by any approximate approaches [38].

This method can be used to solve TSP since it guarantees correctness in an optimal time.

The time complexity of dynamic programming for TSP is O(n2* 2n) which is much better than the naive solution which has time complexity O(n!) [39].

(28)

Sweep heuristic algorithm for CVRP 18

Ant colony optimization

In 1997, Dorigo and Gambardella introduced ACS for solving TSP. The ACS is a nature- based algorithm which reflects on how ant colonies work. The real ants in the ant colonies have the ability to find the shortest path from food source to the nest with the help of pheromone information that is deposited by other ants. This behavior on how the ant colonies work is applied to solve the optimization problems such as TSP [14].

ACS algorithm for solving TSP consists of several artificial ants which are distributed to the city nodes. The artificial ants start to construct a ACS solution in parallel by communicating with each other with the help of the pheromone deposited in the edges to get an optimal solution. The results of the ACS algorithm show that the performance is better than other nature-inspired methods such as genetic algorithm and simulated annealing [14].

4.2.3 TSP using dynamic programming

For this thesis, the TSP is solved by dynamic programming method. This method is chosen because it guarantees correctness and efficiency of the solution produced which cannot be matched by any other approximate approaches [38]. The limitation of this method is that it is not feasible for the higher number of nodes [39]. Since TSP is solved for each cluster and the number of houses will be limited in number, the dynamic programming method can be taken into consideration for the thesis.

There are some basic notations to be defined before we apply dynamic programming to TSP:

1. A complete directed graph G, G=(V,E).

2. The vertex set V is the set of nodes starting from 0 to n where V={0,...,n-1} and n is the number of nodes.

3. The edges set E={(i,j):(i,j)2V, i,j}.

4. Each edge (i,j) is associated with a cost defined by cij and cij,cji, cij 0.

5. The distance between the edges for the complete directed graph G is represented by a cost matrix C.

6. The start and the end node for TSP is 0 which is the depot.

The length of an optimal tour in dynamic programming for solving TSP is defined as [40]:

f(0,V {0}) = min

1kn 1{c0k+ f(k,V {0, k})} (4.16) where

(29)

Sweep heuristic algorithm for CVRP 19

1. The equation 4.16 finds an optimal tour starting from the node 0, visiting every other nodes exactly once and returning to the node 0.

2. The function f(0,V-{0}) is the length of the optimal tour.

3. V-{0} is the vertex set except node 0.

4. c0kis the distance from the node 0 to node k, k2V.

The equation 4.16 can be represented as a recurrence relation [40]:

f(i,f) =cij 1in 1; j=0 (4.17)

f(i,S) =min

j2S{cij+f(j,S {j})} 8SV; i < S; S , f (4.18) Let us consider an example to explain the recurrence relation 4.17 and 4.18 to solve TSP using dynamic programming.

Figure 4.5: Dynamic programming example

In Figure 4.5, a complete directed graph G where the number of nodes, n=4 and node 0 is the depot. We need to find the minimum route distance starting from node 0, visiting other nodes exactly once and returning to node 0. The edge between two nodes represents the distance. The cost matrix is defined as:

(30)

Sweep heuristic algorithm for CVRP 20

Figure 4.6: Cost matrix

The steps to solve is as follows:

Step 1:

Find f(i,f)=cij, 1in-1, j=0 which is the cost value from node i to the depot.

f(1, f) =c10=10 f(2, f) =c20=11 f(3, f) =c30=2 Step 2:

Calculate the value of f(i,S) which is the length of shortest tour until|S|=n-1.

For|S|=1,

f(1,{2}) = {c12+ f(2, f)} =8+11=19 f(2,{1}) = {c21+ f(1, f)} =6+10=16 f(3,{1}) = {c31+ f(1, f)} =12+10=22

f(1,{3}) = {c13+ f(3, f)} =4+2=6 f(2,{3}) = {c23+ f(3, f)} =3+2=5 f(3,{2}) = {c32+ f(2, f)} =5+11=16 For|S|=2,

f(1,{2,3}) =min{c12+ f(2,{3}), c13+ f(3,{2})}

=min{8+5,4+16} =13

(31)

Sweep heuristic algorithm for CVRP 21

f(2,{1,3}) =min{c21+ f(1,{3}), c23+ f(3,{1})}

=min{6+6,3+22} =12

f(3,{1,2}) =min{c31+ f(1,{2}), c32+ f(2,{1})}

=min{12+19,5+16} =21 For|S|=3,

f(0,{1,2,3}) =min{c01+ f(1,{2,3}), c02+ f(2,{1,3}), c03+ f(3,{1,2})}

=min{7+13,9+12,4+21}

=min{20,21,25} =20 Step 3:

We have found the value of the shortest tour for the graph which is equal to 20. Now, we need to find the sequence of the path for which the minimum value is obtained. From the above steps, we observe that the minimum value 20 is obtained from the formula c01+ f(1,{2,3}). The initial path we obtain is 0 ->1. The minimum of the function f(1,{2,3})is obtained which is equal to c12+ f(2,{3}). We get the path sequence as 0 ->1 ->2. The function f(2,{3})is represented as{c23+ f(3, f)}. The final shortest tour path sequence is 0 ->1 ->2 ->3 ->0 with minimum tour weight value equal to 20.

Figure 4.7: Shortest tour path sequence

(32)

System architecture 22

5 System architecture

Figure 5.1: System architecture

5.1 Sircle server

The server-side script of the prototype is responsible for:

1. Triggering the push notification to all the households who have opted in for the garbage collection service through the Infoping API.

2. Waiting for the user data to be received from the API.

3. Performing clustering and creating optimized vehicle route with the user data received.

4. Storing the optimized vehicle route data in firebase realtime database in API format.

In this thesis, we are assuming that we have a dummy user dataset which consists of:

User name

• User address

(33)

System architecture 23

• Reply (Yes/No)

The Infoping API has not been configured for the dummy dataset. The interaction with the Infoping API will be done as a future step.

Pseudo code for the server side script

1. A dummy user dataset is created where the first data is the depot’s information.

2. Initialize vehicle capacity with dummy data.

3. Set a dummy demand value for each customer which will be identical since we do not know the fill level of garbage bin of the customers.

4. Geocoding service

a) Convert each customer’s street address into latitude/longitude with the help of Google API geocode service.

b) This requires us to create an API key in order to access the Google API geocode service.

5. Cluster customer dataset and create optimized routes a) Sweep algorithm clustering

i. Cluster the customer dataset based on the vehicle capacity.

b) Travelling salesman problem - Vehicle route optimization i. For each cluster, TSP is solved.

ii. In TSP, a distance matrix is created between the customer’s location (latitude/longitude).

iii. The vehicle route distance between the customer’s location is calculated from the Google API distance matrix service.

6. Forward and backward clustering are performed, and optimized vehicle routes are created for the methods.

7. The total distance of the optimized routes of forward and backward clustering methods are compared.

8. The method with minimum route distance is considered, and its optimized route data is stored in the firebase realtime database.

Pseudo code for backward sweep clustering algorithm:

1. Initialize theta and angle.

(34)

System architecture 24

2. Create a new TreeMap object which maps Double to Integer. We are mapping the value of the angle in Double to the customer node index in the address list so that it is easy to sort the addresses in an ascending or descending order.

TreeMap<Double, Integer>treeMapAngle=new TreeMap<>() 3. FOR each address (i) in the address list:

a) IF (i + 1) is equal to address size THEN break;

b) ELSE: Calculate polar angle between the customer node and the depot i. Calculate DY which is the difference between the longitude of the cus-

tomer node and the depot.

ii. Calculate DX which is the difference between the latitude of the customer node and the depot.

iii. Calculate the theta (q) angle. It can be calculated with the help of Math.atan2() function where we have to pass DY and DX as parame- ters such as Math.atan2(DY,DX). The function returns the value in radi- ans which is in clockwise angle direction. The returned value usually ranges in (-180,180) and the center is pointing to the east direction [41].

(q=Math.atan2(DY,DX))

iv. Add 90 degrees to q to make the center point north.

q=q+p2

v. Convert the q value from radians to degrees.

angle=Math.toDegrees(q)

The returned value ranges from (-180,270)

vi. In order to make the value of angle range from (0,360), we can have a simple condition:

IF (angle<0) THEN angle+= 360

vii. Store the angle value and the index of the customer node in the TreeMap object.

4. Initialize clusterNumber and demandSum to 0.

5. Initialize HashMap object which maps String to Collection<Integer>. Map<String, Collection<Integer>mapClusterNode=new HashMap<>() 6. Initialize a String object, clusterName="Cluster"+ clusterNumber.

7. Initialize a MultiMap object which maps from String to Integer. This object is used to map the clusterName and the customer node index. We are using a MultiMap object instead of HashMap object because HashMap data structure does not allow duplicate keys. With MultiMap, we can store different values for the same key. In this case, we are storing different customer nodes index for the same clusterName.

(35)

System architecture 25

8. FOR each pair of (angle value, customer node index) in treeMapAngle object:

a) demandSum=demandSum+demandValue[customer node index].

b) IF (demandSum<=vehicleCapacity (b)) THEN

Store the clusterName as Key and customer node index as Value in the MultiMap object.

c) ELSE:

i. Increment clusterNumber to 1.

ii. Initialize the clusterName again with the incremented clusterNumber (clusterName="Cluster"+clusterNumber).

iii. Set demandSum=demand[customer node index].

iv. Again store the clusterName as Key and customer node index as Value in the MultiMap object.

9. FOR i in range (clusterNumber+1):

a) Set the tempClusterName="Cluster"+i.

b) Get all the customer node index values for a clusterName from the MultiMap object.

Collection<Integer>values=multimap.get(clusterName)

c) Store the clusterName and the values which are a collection of customer node index in a HashMap object.

mapClusterNode.put(clusterName,values)

If we reverse the order of the TreeMap object which contains a map from the angle to the customer node index, and by applying the other steps of the pseudo code, we can obtain the forward sweep clustering algorithm.

Figure 5.2: Forward sweep clustering

In this thesis, both forward and backward sweep algorithms are implemented, and the TSP is applied to get the shortest tour within each cluster. The algorithms are compared with each other, and the algorithm with minimum total tour length is chosen.

(36)

System architecture 26

5.2 Firebase realtime database

Figure 5.3: Firebase

This is a cloud-based database where the clients (iOS/Android apps) are synced in realtime, and the data is stored as JSON format [42].

Figure 5.4: Firebase realtime database snapshot

A snapshot of the database used in the thesis is shown in Figure 5.4. In the snapshot, the root node is the city name. The clustering and vehicle optimization routes are created for each date currently. This might change in the future as the garbage will not be collected on an everyday basis.

(37)

System architecture 27

5.3 Smart waste management application using android

Figure 5.5: Android app screenshot 1

Figure 5.6: Android app screenshot 2

A custom-made mobile android application is developed for the smart waste manage- ment system which shows the optimal vehicle route to the truck drivers in order to collect the garbage in a different locality. Each truck will have a mobile device with this application installed in it. The mobile application fetches the optimized vehicle route data for the current day from the firebase realtime database. The optimized vehicle route data is calculated by the server-side and is stored in the firebase realtime database.

5.3.1 Android screen shots explanation

1. The first page of the application is the company logo which is displayed for few seconds.

(38)

System architecture 28

2. The second page shows the clusters. The truck driver also has the option to select the city for the garbage collection. For each cluster, a garbage vehicle is allocated.

Currently, data for Uppsala city is generated.

3. When we tap on the cluster say "Route0", then it directs us to the third page where it lists the optimized sequence of customers to pick up the garbage.

4. Each customer is labeled as "Not serviced" at the start.

5. When the truck picks the garbage of the customer, the truck driver has an option to tap on the "Not serviced" which changes to "Serviced". This helps the truck driver to keep track of the customers.

6. When the truck driver taps on the floating button in the bottom right corner which has a map label of the third page, Map view page is displayed.

7. The Map view shows the optimized vehicle route for the truck driver to collect the garbage.

5.3.2 OSRM service for vehicle route in android

The OSRM is an open source API for creating road paths in the real-world maps between two coordinates (latitude/longitude) [43]. In android, the map view class which is used for projecting the path between two points is shown with the help of "osmdroid" [44].

This open source API uses "Contraction Hierarchy" as the routing algorithm between two points in a roadmap for faster and simpler hierarchical routing [45].

(39)

Experimental results 29

6 Experimental results

The experiments are performed to check how the prototype accounts for the increase in dataset size and change in the truck capacity. We will perform some experiments to compare the forward and backward sweep algorithm to see whether they give any useful results.

Assumptions: The dataset used is generated manually. Since we do not have any data source to test the algorithm, the dataset size is limited. We have selected the dataset by picking addresses from Google maps in Uppsala to test the algorithm. The addresses picked are used to check the logic of the algorithm, and the names associated with the addresses are completely random. The generated dataset is used solely for the purpose of testing the algorithm and there is no intention to disclose any person’s identity.

Truck capacity and user demands: Assumption is each household generates 441kg garbage. Each truck’s capacity is 10000kg [46], which goes to pick up one bin per family.

We can consider the bin capacity to be 140kg. That means one truck can go through 71 households (10000/140 = 71). Every person throws 441kg waste annually, that breaks down to 8.4kg per week. Presumably, each household includes 3 persons, that is adding up to 25kg in weight for one household. It will take up to 5 weeks to fill one garbage bin.

Since we do not have any real dataset available for our scenario and we cannot generate more data manually. We have considered arbitrary truck capacity and customer demands for the experiment.

6.1 How current prototype accounts for change in the dataset and truck capacity

6.1.1 Increase the dataset size and keep the truck capacity constant

This experiment is used to check whether the prototype is able to create clusters dynami- cally when dataset size changes.

Truck capacity=200kg

Demand=40kg for every household

Scenario 1:

(40)

Experimental results 30

Table 6.1: Sample user dataset 1

Sr. No Name Address

1 Ragn-Sells Kvarnbolund 9, 752 63 Uppsala 2 Patrick Herrhagsvägen 50, 752 67 Uppsala 3 Micheal Stenhuggarvägen 46, 75267 Uppsala 4 Tom Pimpstensvägen 5-11, 75267 Uppsala 5 Dick Sandstensvägen 3, 752 67 Uppsala 6 Harry Sandstensvägen 2, 752 67 Uppsala

The first address in the sample user dataset 6.1 is the depot’s address where the garbage truck starts. When we run the prototype algorithm, one cluster is formed with optimized route sequence.

Figure 6.1: Android app snapshot for dataset 1

Scenario 2:

Table 6.2: Sample user dataset 2

Sr. No Name Address

1 Ragn-Sells Kvarnbolund 9, 752 63 Uppsala 2 Patrick Herrhagsvägen 50, 752 67 Uppsala 3 Micheal Stenhuggarvägen 46, 75267 Uppsala 4 Tom Pimpstensvägen 5-11, 75267 Uppsala 5 Dick Sandstensvägen 3, 752 67 Uppsala 6 Harry Sandstensvägen 2, 752 67 Uppsala 7 Julia Stenhagsvägen 213, 752 66 Uppsala 8 Daniel Stenhagsvägen 103, 752 60 Uppsala 9 Philip Kullerstensvägen 2, 752 60 Uppsala 10 Martin Stenhagsvägen 89, 752 60 Uppsala 11 Emanuel Stenhagsvägen 11, 752 60 Uppsala

(41)

Experimental results 31

For the sample user dataset 6.2, two clusters are formed by the prototype.

Figure 6.2: Android app snapshot for dataset 2

We can see from Figure 6.2, two clusters are formed with the increase in the dataset size by the prototype for the identical truck capacity.

Scenario 3:

Table 6.3: Sample user dataset 3

Sr. No Name Address

1 Ragn-Sells Kvarnbolund 9, 752 63 Uppsala 2 Patrick Herrhagsvägen 50, 752 67 Uppsala 3 Micheal Stenhuggarvägen 46, 75267 Uppsala 4 Tom Pimpstensvägen 5-11, 75267 Uppsala 5 Dick Sandstensvägen 3, 752 67 Uppsala 6 Harry Sandstensvägen 2, 752 67 Uppsala 7 Julia Stenhagsvägen 213, 752 66 Uppsala 8 Daniel Stenhagsvägen 103, 752 60 Uppsala 9 Philip Kullerstensvägen 2, 752 60 Uppsala 10 Martin Stenhagsvägen 89, 752 60 Uppsala 11 Emanuel Stenhagsvägen 11, 752 60 Uppsala 12 Neel Sernanders väg 5, 75261 Uppsala 13 Sarah Sernanders väg 4, 75261 Uppsala 14 Monica Sernanders väg 3, 75261 Uppsala 15 Rachel Sernanders väg 2, 75261 Uppsala 16 Joe Sernanders väg 1, 75261 Uppsala

When more data is added to the dataset, the number of clusters formed increases.

(42)

Experimental results 32

Figure 6.3: Android app snapshot for dataset 3

In Figure 6.3, we observe that there are three clusters formed by the algorithm. This shows that the prototype can form dynamic number of clusters with the increase in the dataset size for a constant truck capacity.

6.1.2 Keeping dataset size constant with varying truck capacity

In this case, we will consider sample dataset 6.3 in order to check how many clusters are formed with varying truck capacity. We will compare the forward and backward sweep algorithm to check if they produce any useful results.

Figure 6.4: Forward vs backward sweep algorithm

(43)

Experimental results 33

In Figure 6.4, a graph with the total route distance (in kilometer) generated by the forward and backward sweep algorithm for the dataset is shown for different truck capacity. With the current dataset into consideration, there is no significant difference in the results produced when the sweep algorithms are compared. We might get a different result when we consider the real dataset.

Figure 6.5: Sweep algorithm cluster formation

In Figure 6.5, a graph with the number of clusters formed with varying truck capacity is shown. With an increase in the truck capacity, the total route distance covered decreases (Figure 6.4) as there is a decrease in the number of clusters formed. If we consider truck capacity 600kg, only one cluster is formed. One vehicle serves all the customers in the dataset at once due to which the total distance covered for the dataset is reduced. If truck capacity 100kg is considered then seven clusters are formed. Assuming we need one vehicle for each cluster, seven vehicles are required to serve the customers in the respective cluster due to which the total distance covered increases.

In Figures 6.6 and 6.7, the snapshot of cluster details and the route is shown in the android application.

(44)

Experimental results 34

Figure 6.6: Android app snapshot: truck capacity 400kg

Figure 6.7: Android app snapshot: truck capacity 600kg

(45)

Conclusions 35

7 Conclusions

In this master thesis, a prototype system for municipal solid waste management system has been developed in order to improve efficiency. Compared to the traditional sensor- based solution, this prototype system does not make use of any sensors to measure the garbage bin fill level where the major cost of the solution lies. Instead, the garbage bin fills data is collected from the customers with the help of a messaging application. This prototype system has been developed with the help of open-source tools and languages with no sensors which makes it a low-cost solution. The prototype may not be accurate in terms of results as compared to the sensor-based solution.

The prototype system consists of three parts: back-end server using java and eclipse framework, firebase realtime database and front-end using mobile android application.

The back-end server receives the customer data, clusters them based on the garbage truck capacity using sweep clustering algorithm, solves TSP for each cluster and stores the optimized route data as JSON format in the firebase realtime database. The android mobile application extracts the optimized route data and presents it for each cluster in the map view to the corresponding truck driver.

The experimental results show that the prototype can adapt to change in the dataset.

When the dataset size increases, the prototype creates more clusters for a constant truck capacity and demand from the customers. The prototype accounts for the change in truck capacity with no change in the dataset. When the truck capacity increases, the number of clusters formed decreases. Forward and backward sweep clustering methods were compared where there were no significant differences in the results produced.

(46)

Future work 36

8 Future work

Developing the prototype system further by:

1. Gathering the real data from various sources in order to test the prototype system.

2. Including navigation with traffic data.

3. Interacting with the Infoping server and test work flow.

4. Making the mobile application more user friendly.

5. Developing the application for other platforms such as iOS, Windows, and for other devices such as tablet.

6. Exploring which type of garbage is most frequently needed to be emptied.

7. Testing customer experiences through survey.

8. Predicting the customer behavior through machine learning after sufficient data has been collected.

9. Improving the existing clustering algorithm.

10. Monitoring the truck capacity, developing algorithm that dynamically updates the cluster, and route sequence.

11. Finding and validating this proof of concept, validation of customer need, and a draft biz model.

(47)

Literature 37

Literature

[1] F. Kreith, Handbook of solid waste management. 1999.

[2] S. Longhi, D. Marzioni, E. Alidori, G. Di Buo, M. Prist, M. Grisostomi, and M. Pirro, “Solid waste management architecture using wireless sensor network technology”, in New Technologies, Mobility and Security (NTMS), 2012 5th

International Conference on, IEEE, 2012, pp. 1–5.

[3] The statistics portal, https://www.statista.com/statistics/488351/smartphone- penetration-sweden/.

[4] Infoping : Instant information, instant feedback, https://infoping.net/en/, (Accessed on 23/05/2018),

[5] T. K. Ralphs, L. Kopman, W. R. Pulleyblank, and L. E. Trotter, “On the capacitated vehicle routing problem”, Mathematical programming, vol. 94, no. 2-3, pp. 343–359, 2003.

[6] J. K. Lenstra and A. Kan, “Complexity of vehicle routing and scheduling problems”, Networks, vol. 11, no. 2, pp. 221–227, 1981.

[7] P. Belfiore, H. Tsugunobu, and Y. Yoshizaki, “Scatter search for vehicle routing problem with time windows and split deliveries”, in Vehicle routing problem, InTech, 2008.

[8] G. Laporte, P. Toth, and D. Vigo, Vehicle routing: Historical perspective and recent contributions, 2013.

[9] G. B. Dantzig and J. H. Ramser, “The truck dispatching problem”, Management science, vol. 6, no. 1, pp. 80–91, 1959.

[10] G. Clarke and J. W. Wright, “Scheduling of vehicles from a central depot to a number of delivery points”, Operations research, vol. 12, no. 4, pp. 568–581, 1964.

[11] N. Christofides, A. Mingozzi, and P. Toth, “Exact algorithms for the vehicle routing problem, based on spanning tree and shortest path relaxations”, Mathematical programming, vol. 20, no. 1, pp. 255–282, 1981.

[12] ——, “State-space relaxation procedures for the computation of bounds to routing problems”, Networks, vol. 11, no. 2, pp. 145–164, 1981.

(48)

Literature 38

[13] G. Laporte, M. Desrochers, and Y. Nobert, “Two exact algorithms for the distance-constrained vehicle routing problem”, Networks, vol. 14, no. 1, pp. 161–172, 1984.

[14] M. Dorigo and L. M. Gambardella, “Ant colony system: A cooperative learning approach to the traveling salesman problem”, IEEE Transactions on evolutionary computation, vol. 1, no. 1, pp. 53–66, 1997.

[15] H. M. Harmanani, D. Azar, N. Helal, and W. Keirouz, “A simulated annealing algorithm for the capacitated vehicle routing problem.”, in CATA, 2011, pp. 96–101.

[16] M. Gendreau, A. Hertz, and G. Laporte, “A tabu search heuristic for the vehicle routing problem”, Management science, vol. 40, no. 10, pp. 1276–1290, 1994.

[17] B. M. Baker and M. Ayechew, “A genetic algorithm for the vehicle routing problem”, Computers & Operations Research, vol. 30, no. 5, pp. 787–800, 2003.

[18] G. Laporte, M. Gendreau, J.-Y. Potvin, and F. Semet, “Classical and modern heuristics for the vehicle routing problem”, International transactions in operational research, vol. 7, no. 4-5, pp. 285–300, 2000.

[19] B. Kallehauge, J. Larsen, O. B. Madsen, and M. M. Solomon, “Vehicle routing problem with time windows”, in Column generation, Springer, 2005, pp. 67–98.

[20] U. o. C. D. Tom Altman, Capacitated problems,

http://cse.ucdenver.edu/~cscialtman/complexity/Presentation.pdf, (Accessed on 25/05/2018),

[21] T. Cari´c, A. Gali´c, J. Fosin, H. Gold, and A. Reinholz, “A modelling and optimization framework for real-world vehicle routing problems”, in Vehicle Routing Problem, InTech, 2008.

[22] U. o. N. U. Dr Rong Qu, Constructive heuristic methods,

http://www.cs.nott.ac.uk/~pszrq/files/2AIMconstruct.pdf, (Accessed on 25/05/2018),

[23] M. M. Flood, “The traveling-salesman problem”, Operations Research, vol. 4, no. 1, pp. 61–75, 1956.

[24] B. E. Gillett and L. R. Miller, “A heuristic algorithm for the vehicle-dispatch problem”, Operations research, vol. 22, no. 2, pp. 340–349, 1974.

[25] M. Dror and P. Trudeau, “Split delivery routing”, Naval Research Logistics (NRL), vol. 37, no. 3, pp. 383–402, 1990.

References

Related documents

Parallellmarknader innebär dock inte en drivkraft för en grön omställning Ökad andel direktförsäljning räddar många lokala producenter och kan tyckas utgöra en drivkraft

In order to decrease the time required to move an application from a working real TSP cluster into Simics (described in greater level in chapter 5), one way is to do as much as

Specifi c recommendations are made on how cluster policy can improve cluster dynamics, on how fundamentals can be changed to make the emergence of strong clusters more likely, and

Active engagement and interest of the private sector (Energy Service Companies, energy communities, housing associations, financing institutions and communities, etc.)

Worth to mention is that many other CF schemes are dependent on each user’s ratings of an individ- ual item, which in the case of a Slope One algorithm is rather considering the

- there should be a mechanism created through which the relevant parties (operator, safeguards authorities, the IAEA) can give their statements and clearances before the material

In the context of non-overlapping constraints, many search strategies [9] try to first fix the coordinates of all objects in a given dimension d before fixing all the coordinates in

The validation of the computer program concerns the load flow calculation. The validation consists in a comparison between the computer program, another program and