vrpRouting
0.3
optimizers/simple.h
Go to the documentation of this file.
1
/*PGR-GNU*****************************************************************
2
3
FILE: optimize.cpp
4
5
Copyright (c) 2015 pgRouting developers
6
Mail:
[email protected]
7
8
------
9
10
This program is free software; you can redistribute it and/or modify
11
it under the terms of the GNU General Public License as published by
12
the Free Software Foundation; either version 2 of the License, or
13
(at your option) any later version.
14
15
This program is distributed in the hope that it will be useful,
16
but WITHOUT ANY WARRANTY; without even the implied warranty of
17
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
GNU General Public License for more details.
19
20
You should have received a copy of the GNU General Public License
21
along with this program; if not, write to the Free Software
22
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
23
24
********************************************************************PGR-GNU*/
25
28
#ifndef INCLUDE_OPTIMIZERS_SIMPLE_H_
29
#define INCLUDE_OPTIMIZERS_SIMPLE_H_
30
#pragma once
31
32
#include "
problem/solution.h
"
33
#include "
problem/vehicle_pickDeliver.h
"
34
#include "
initialsol/initials_code.h
"
35
36
namespace
vrprouting
{
37
namespace
optimizers {
38
namespace
simple {
39
40
class
Optimize
:
public
problem::Solution
{
41
using
Initials_code
=
initialsol::simple::Initials_code
;
42
43
public
:
44
Optimize
(
const
problem::Solution
&solution,
size_t
times,
const
Initials_code
&);
45
46
/* @brief decrease_truck
47
*
48
* Optimization by decreasing trucks
49
*/
50
void
decrease_truck
();
51
void
move_wait_time_based
();
52
void
move_duration_based
();
53
void
inter_swap
(
size_t
times);
54
Solution
best_solution
;
55
56
Initials_code
get_kind
()
const
{
return
m_kind
;}
57
58
private
:
59
bool
decrease_truck
(
size_t
);
60
void
sort_for_move
();
61
void
sort_by_duration
();
62
void
sort_by_size
();
63
void
sort_by_id
();
64
void
delete_empty_truck
();
65
66
bool
swap_worse
(
problem::Vehicle_pickDeliver
&from,
problem::Vehicle_pickDeliver
&to);
67
bool
move_reduce_cost
(
problem::Vehicle_pickDeliver
&from,
problem::Vehicle_pickDeliver
&to);
68
bool
inter_swap
();
69
70
// TODO(pending) use const & where applicable
71
bool
move_order
(
72
problem::Order
order,
73
problem::Vehicle_pickDeliver
&from_truck,
74
problem::Vehicle_pickDeliver
&to_truck);
75
bool
swap_order
();
76
bool
swap_order
(
77
problem::Order
from_order,
78
problem::Vehicle_pickDeliver
&from_truck,
79
problem::Order
to_order,
80
problem::Vehicle_pickDeliver
&to_truck);
81
void
save_if_best
();
82
83
Initials_code
m_kind
;
84
};
85
86
}
// namespace simple
87
}
// namespace optimizers
88
}
// namespace vrprouting
89
90
#endif // INCLUDE_OPTIMIZERS_SIMPLE_H_
vrprouting::problem::Solution
Definition:
solution.h:50
vrprouting::optimizers::simple::Optimize::sort_for_move
void sort_for_move()
Definition:
optimizers/simple.cpp:511
vrprouting::initialsol::simple::Initials_code
Initials_code
Different kinds to insert an order into the vehicle.
Definition:
initialsol/initials_code.h:37
vrprouting::optimizers::simple::Optimize::move_wait_time_based
void move_wait_time_based()
initials_code.h
vrprouting::optimizers::simple::Optimize::decrease_truck
void decrease_truck()
Definition:
optimizers/simple.cpp:534
vrprouting::optimizers::simple::Optimize::save_if_best
void save_if_best()
Definition:
optimizers/simple.cpp:579
vrprouting::optimizers::simple::Optimize::move_duration_based
void move_duration_based()
vrprouting::optimizers::simple::Optimize::sort_by_duration
void sort_by_duration()
Definition:
optimizers/simple.cpp:354
vrprouting::problem::Solution::Solution
Solution()=delete
constructor
vrprouting::optimizers::simple::Optimize::get_kind
Initials_code get_kind() const
Definition:
optimizers/simple.h:56
vrprouting::optimizers::simple::Optimize::move_reduce_cost
bool move_reduce_cost(problem::Vehicle_pickDeliver &from, problem::Vehicle_pickDeliver &to)
Definition:
optimizers/simple.cpp:385
vrprouting::optimizers::simple::Optimize::sort_by_id
void sort_by_id()
Definition:
optimizers/simple.cpp:333
vrprouting::problem::Vehicle_pickDeliver
Definition:
vehicle_pickDeliver.h:46
vrprouting::optimizers::simple::Optimize::sort_by_size
void sort_by_size()
Definition:
optimizers/simple.cpp:343
vehicle_pickDeliver.h
vrprouting::optimizers::simple::Optimize::Optimize
Optimize(const problem::Solution &solution, size_t times, const Initials_code &)
Definition:
optimizers/simple.cpp:42
solution.h
vrprouting::optimizers::simple::Optimize::delete_empty_truck
void delete_empty_truck()
Definition:
optimizers/simple.cpp:363
vrprouting::optimizers::simple::Optimize::swap_order
bool swap_order()
vrprouting::optimizers::simple::Optimize::swap_worse
bool swap_worse(problem::Vehicle_pickDeliver &from, problem::Vehicle_pickDeliver &to)
Definition:
optimizers/simple.cpp:132
vrprouting::optimizers::simple::Optimize
Definition:
optimizers/simple.h:40
vrprouting::optimizers::simple::Optimize::inter_swap
bool inter_swap()
Definition:
optimizers/simple.cpp:87
vrprouting::problem::Order
Definition:
order.h:40
vrprouting::optimizers::simple::Optimize::m_kind
Initials_code m_kind
Definition:
optimizers/simple.h:83
vrprouting::optimizers::simple::Optimize::move_order
bool move_order(problem::Order order, problem::Vehicle_pickDeliver &from_truck, problem::Vehicle_pickDeliver &to_truck)
moves an order to an non empty vehicle
Definition:
optimizers/simple.cpp:467
vrprouting::optimizers::simple::Optimize::best_solution
Solution best_solution
Definition:
optimizers/simple.h:54
vrprouting
Definition:
base_matrix.cpp:46
include
optimizers
simple.h
Generated on Tue Nov 15 2022 03:49:51 for vrpRouting by
1.8.17