#include "orders.h"
Definition at line 48 of file orders.h.
◆ Orders() [1/3]
vrprouting::problem::Orders::Orders |
( |
| ) |
|
|
default |
◆ Orders() [2/3]
vrprouting::problem::Orders::Orders |
( |
const Orders & |
| ) |
|
|
default |
◆ Orders() [3/3]
template<typename PTR >
vrprouting::problem::Orders::Orders |
( |
PickDeliveryOrders_t * |
p_orders, |
|
|
size_t |
p_size_orders, |
|
|
const PTR |
problem_ptr |
|
) |
| |
|
inline |
◆ add_order()
◆ build_orders()
template<typename PTR >
void vrprouting::problem::Orders::build_orders |
( |
PickDeliveryOrders_t * |
orders, |
|
|
size_t |
size_orders, |
|
|
const PTR |
problem_ptr |
|
) |
| |
|
private |
- Parameters
-
[in] | orders | |
[in] | size_orders | |
[in] | problem_ptr | pointer to problem to get some needed information |
- Sort orders: ASC pick_open_t, deliver_close_t, id
Definition at line 102 of file orders.h.
106 std::sort(orders, orders + size_orders,
109 if (lhs.deliver_close_t == rhs.deliver_close_t) {
110 return lhs.id < rhs.id;
112 return lhs.deliver_close_t < rhs.deliver_close_t;
119 for (
size_t i = 0; i < size_orders; ++i) {
120 auto order = orders[i];
124 problem_ptr->add_node(pick);
125 problem_ptr->add_node(drop);
127 this->emplace_back(Order{size(), order.id, pick, drop});
References PickDeliveryOrders_t::pick_open_t.
Referenced by Orders().
◆ find_best_I()
size_t vrprouting::problem::Orders::find_best_I |
( |
const Identifiers< size_t > & |
within_this_set | ) |
const |
◆ find_best_I_J()
size_t vrprouting::problem::Orders::find_best_I_J |
( |
const Identifiers< size_t > & |
within_this_set | ) |
const |
find the best order -> this -> order
- Returns
- the index of the order within_this_set that has more possibilities of placing orders before or after it
- Parameters
-
- Precondition
- not within_this_set.empty()
Definition at line 89 of file orders.cpp.
92 auto best_order = within_this_set.
front();
95 for (
const auto o : within_this_set) {
96 auto size_I = this->at(o).subsetI(within_this_set).size();
97 auto size_J = this->at(o).subsetJ(within_this_set).size();
98 if (max_size < (std::max)(size_I, size_J)) {
99 max_size = (std::max)(size_I, size_J);
References Identifiers< T >::empty(), Identifiers< T >::front(), and pgassert.
◆ find_best_J()
size_t vrprouting::problem::Orders::find_best_J |
( |
const Identifiers< size_t > & |
within_this_set | ) |
const |
◆ is_valid()
bool vrprouting::problem::Orders::is_valid |
( |
Speed |
speed = 1.0 | ) |
const |
is the order valid?
- Returns
- true when each order from the set of orders is valid
Definition at line 110 of file orders.cpp.
111 for (
const auto &o : *
this) {
112 if (!o.is_valid(speed)) {
116 pgassert(o.delivery().is_delivery());
118 pgassert(o.delivery().is_compatible_IJ(o.pickup(), speed));
References pgassert.
◆ set_compatibles()
void vrprouting::problem::Orders::set_compatibles |
( |
Speed |
speed = 1.0 | ) |
|
set the compatability between all orders
- Postcondition
- For each order: order -> {J} is set
-
For each order: {I} -> order is set
Definition at line 128 of file orders.cpp.
129 for (
auto &I : *
this) {
130 for (
const auto& J : *
this) {
131 I.set_compatibles(J, speed);
Referenced by vrprouting::problem::PickDeliver::PickDeliver().
◆ operator<<
std::ostream& operator<< |
( |
std::ostream & |
log, |
|
|
const Orders & |
p_orders |
|
) |
| |
|
friend |
Definition at line 76 of file orders.h.
78 for (
const auto &o : p_orders) log << o <<
"\n";
79 log <<
"end Orders\n";
◆ elements
T std::vector< T >::elements |
|
inherited |
The documentation for this class was generated from the following files: