Skip to content

Commit 445a71e

Browse files
committed
adding a loader for the vehicle routing problem
1 parent 172ea1b commit 445a71e

File tree

4 files changed

+442
-0
lines changed

4 files changed

+442
-0
lines changed

libecole/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ add_library(
2121
src/instance/independent-set.cpp
2222
src/instance/combinatorial-auction.cpp
2323
src/instance/capacitated-facility-location.cpp
24+
src/instance/capacitated-vehicle-routing.cpp
2425

2526
src/reward/is-done.cpp
2627
src/reward/lp-iterations.cpp
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#pragma once
2+
3+
#include <cstddef>
4+
#include <string>
5+
#include <utility>
6+
#include <vector>
7+
8+
#include "ecole/export.hpp"
9+
#include "ecole/instance/abstract.hpp"
10+
#include "ecole/random.hpp"
11+
12+
namespace ecole::instance {
13+
14+
class ECOLE_EXPORT CapacitatedVehicleRoutingLoader : public InstanceGenerator {
15+
public:
16+
struct ECOLE_EXPORT Parameters {
17+
std::string filename; // NOLINT(readability-magic-numbers)
18+
std::size_t n_vehicles; // NOLINT(readability-magic-numbers)
19+
};
20+
21+
ECOLE_EXPORT static scip::Model generate_instance(Parameters parameters, RandomGenerator& rng);
22+
23+
ECOLE_EXPORT CapacitatedVehicleRoutingLoader(Parameters parameters, RandomGenerator rng);
24+
ECOLE_EXPORT CapacitatedVehicleRoutingLoader(Parameters parameters);
25+
ECOLE_EXPORT CapacitatedVehicleRoutingLoader();
26+
27+
ECOLE_EXPORT scip::Model next() override;
28+
ECOLE_EXPORT void seed(Seed seed) override;
29+
[[nodiscard]] ECOLE_EXPORT bool done() const override { return false; }
30+
31+
[[nodiscard]] ECOLE_EXPORT Parameters const& get_parameters() const noexcept { return parameters; }
32+
33+
private:
34+
RandomGenerator rng;
35+
Parameters parameters;
36+
};
37+
38+
} // namespace ecole::instance

0 commit comments

Comments
 (0)