 |
vrpRouting
0.3
|
Go to the documentation of this file.
28 #ifndef INCLUDE_PROBLEM_FLEET_H_
29 #define INCLUDE_PROBLEM_FLEET_H_
52 class Fleet:
protected std::vector<Vehicle_pickDeliver> {
54 using std::vector<Vehicle_pickDeliver>::begin;
55 using std::vector<Vehicle_pickDeliver>::end;
56 using std::vector<Vehicle_pickDeliver>::empty;
57 using std::vector<Vehicle_pickDeliver>::at;
58 using std::vector<Vehicle_pickDeliver>::back;
62 Vehicle_t* vehicles ,
size_t size_vehicles,
63 const Orders& p_orders, std::vector<Vehicle_node>& p_nodes,
size_t& node_id)
66 build_fleet(vehicles, size_vehicles, {}, p_orders, p_nodes, node_id);
71 const std::vector<Short_vehicle> &new_stops,
72 const Orders& p_orders, std::vector<Vehicle_node>& p_nodes,
size_t& node_id)
75 build_fleet(vehicles, size_vehicles, new_stops, p_orders, p_nodes, node_id);
100 for (
const auto &v : f) log << v;
101 log <<
"end fleet\n";
131 const Vehicle_t&,
const std::vector<Short_vehicle>&,
133 std::vector<Vehicle_node>& p_nodes,
size_t& node_id);
137 Vehicle_t*,
size_t,
const std::vector<Short_vehicle>&,
139 std::vector<Vehicle_node>& p_nodes,
size_t& node_id);
160 #endif // INCLUDE_PROBLEM_FLEET_H_
std::vector< Vehicle_pickDeliver > get_used_trucks()
Get all the used vehicles.
void set_initial_solution(const Orders &, Identifiers< size_t > &, Identifiers< size_t > &, TTimestamp, bool)
set the vehicle's user's initial solution
Vehicle_pickDeliver get_truck()
Finds an unused vehicle.
friend std::ostream & operator<<(std::ostream &log, const Fleet &f)
Vehicle_pickDeliver get_phony() const
Get a vehicle from the user's defined vehicles.
Identifiers< size_t > m_used
set of used vehicles
bool is_order_ok(const Order &order) const
Given an order, Cycle trhugh all the trucks to verify if the order can be served by at least one truc...
void set_compatibles(const Orders &orders)
sets the compatability of orders on the fleet
Fleet(Vehicle_t *vehicles, size_t size_vehicles, const std::vector< Short_vehicle > &new_stops, const Orders &p_orders, std::vector< Vehicle_node > &p_nodes, size_t &node_id)
Create a fleet based on the Vehicles of the problem.
Identifiers< size_t > feasible_orders() const
Fleet()=delete
creating a fleet without information is not allowed
Identifiers< size_t > m_unused
set of unused vehicles
void add_vehicle(const Vehicle_t &, const std::vector< Short_vehicle > &, const Orders &, std::vector< Vehicle_node > &p_nodes, size_t &node_id)
add a new vehicle to the fleet
void build_fleet(Vehicle_t *, size_t, const std::vector< Short_vehicle > &, const Orders &, std::vector< Vehicle_node > &p_nodes, size_t &node_id)
build the fleet
Identifiers< size_t > m_invalid
set of invalid vehicles
void clean()
removes from fleet all invalid vehicles
std::vector< Vehicle_pickDeliver > get_unused_trucks()
Get all the unused vehicles.
Fleet(Vehicle_t *vehicles, size_t size_vehicles, const Orders &p_orders, std::vector< Vehicle_node > &p_nodes, size_t &node_id)
Create a fleet based on the Vehicles of the problem.