Skip to content

Commit 6e52c52

Browse files
committed
[Routing] port more examples to pybind11
1 parent cd4ed09 commit 6e52c52

File tree

11 files changed

+462
-373
lines changed

11 files changed

+462
-373
lines changed

ortools/constraint_solver/BUILD.bazel

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,6 @@ cc_library(
193193
"//ortools/base:base_export",
194194
"//ortools/base:bitmap",
195195
"//ortools/base:file",
196-
"//ortools/base:int_type",
197196
"//ortools/base:intops",
198197
"//ortools/base:iterator_adaptors",
199198
"//ortools/base:map_util",

ortools/constraint_solver/diffn.cc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,14 @@
2020
#include "absl/log/check.h"
2121
#include "absl/strings/str_format.h"
2222
#include "absl/types/span.h"
23-
#include "ortools/base/int_type.h"
2423
#include "ortools/constraint_solver/constraint_solver.h"
2524
#include "ortools/constraint_solver/constraint_solveri.h"
2625
#include "ortools/util/string_array.h"
2726

2827
namespace operations_research {
2928
// Diffn constraint, Non overlapping boxes.
3029
namespace {
31-
DEFINE_INT_TYPE(Box, int);
30+
3231
class Diffn : public Constraint {
3332
public:
3433
Diffn(Solver* const solver, const std::vector<IntVar*>& x_vars,

ortools/constraint_solver/python/constraint_solver.cc

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1009,14 +1009,22 @@ PYBIND11_MODULE(constraint_solver, m) {
10091009
DOC(operations_research, Solver, MakeFixedDurationIntervalVar),
10101010
py::return_value_policy::reference_internal)
10111011
.def("new_fixed_duration_interval_var",
1012-
py::overload_cast<IntVar*, int64_t, const std::string&>(
1013-
&Solver::MakeFixedDurationIntervalVar),
1012+
[](Solver* s, IntExpr* start, int64_t duration,
1013+
const std::string& name) {
1014+
return s->MakeFixedDurationIntervalVar(
1015+
start->Var(), duration, name);
1016+
},
1017+
py::arg("start"), py::arg("duration"), py::arg("name"),
10141018
DOC(operations_research, Solver, MakeFixedDurationIntervalVar_2),
10151019
py::return_value_policy::reference_internal)
10161020
.def("new_fixed_duration_interval_var",
1017-
py::overload_cast<IntVar*, int64_t, IntVar*,
1018-
const std::string&>(
1019-
&Solver::MakeFixedDurationIntervalVar),
1021+
[](Solver* s, IntExpr* start, int64_t duration,
1022+
IntExpr* performed_variable, const std::string& name) {
1023+
return s->MakeFixedDurationIntervalVar(
1024+
start->Var(), duration, performed_variable->Var(), name);
1025+
},
1026+
py::arg("start"), py::arg("duration"), py::arg("performed_variable"),
1027+
py::arg("name"),
10201028
DOC(operations_research, Solver, MakeFixedDurationIntervalVar_3),
10211029
py::return_value_policy::reference_internal)
10221030
.def("new_fixed_interval",

ortools/routing/routing.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ There are two sets of variables available:
4040
- "next(i)" variables representing the immediate successor of the node
4141
corresponding to i; use IndexToNode() to get the node corresponding to
4242
a "next" variable value; note that node indices are strongly typed
43-
integers (cf. ortools/base/int_type.h);
43+
integers;
4444
- "vehicle(i)" variables representing the vehicle route to which the
4545
node corresponding to i belongs;
4646
- "active(i)" boolean variables, true if the node corresponding to i is

ortools/routing/samples/BUILD.bazel

Lines changed: 66 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,28 @@ py_binary(
214214
srcs = ["tsp.py"],
215215
main = "tsp.py",
216216
deps = [
217-
"//ortools/routing:parameters_py_pb2",
217+
"//ortools/routing/python:routing",
218+
],
219+
)
220+
221+
py_test(
222+
name = "cvrp_reload_py3",
223+
size = "medium",
224+
srcs = ["cvrp_reload.py"],
225+
main = "cvrp_reload.py",
226+
deps = [
227+
"//ortools/constraint_solver/python:constraint_solver",
228+
"//ortools/routing/python:routing",
229+
],
230+
)
231+
232+
py_test(
233+
name = "cvrptw_py3",
234+
size = "medium",
235+
srcs = ["cvrptw.py"],
236+
main = "cvrptw.py",
237+
deps = [
238+
"//ortools/constraint_solver/python:constraint_solver",
218239
"//ortools/routing/python:routing",
219240
],
220241
)
@@ -226,7 +247,6 @@ py_test(
226247
main = "cvrptw_break.py",
227248
deps = [
228249
"//ortools/constraint_solver/python:constraint_solver",
229-
"//ortools/routing:parameters_py_pb2",
230250
"//ortools/routing/python:routing",
231251
],
232252
)
@@ -256,7 +276,6 @@ py_test(
256276
srcs = ["simple_routing_program.py"],
257277
main = "simple_routing_program.py",
258278
deps = [
259-
"//ortools/routing:parameters_py_pb2",
260279
"//ortools/routing/python:routing",
261280
],
262281
)
@@ -267,7 +286,6 @@ py_test(
267286
srcs = ["vrp_node_max.py"],
268287
main = "vrp_node_max.py",
269288
deps = [
270-
"//ortools/routing:parameters_py_pb2",
271289
"//ortools/routing/python:routing",
272290
],
273291
)
@@ -279,7 +297,6 @@ py_test(
279297
main = "vrp_tokens.py",
280298
deps = [
281299
"//ortools/constraint_solver/python:constraint_solver",
282-
"//ortools/routing:parameters_py_pb2",
283300
"//ortools/routing/python:routing",
284301
],
285302
)
@@ -329,7 +346,6 @@ py_test(
329346
main = "tsp_circuit_board.py",
330347
deps = [
331348
"//ortools/constraint_solver/python:constraint_solver",
332-
"//ortools/routing:parameters_py_pb2",
333349
"//ortools/routing/python:routing",
334350
],
335351
)
@@ -359,7 +375,6 @@ py_test(
359375
srcs = ["tsp_cities.py"],
360376
main = "tsp_cities.py",
361377
deps = [
362-
"//ortools/routing:parameters_py_pb2",
363378
"//ortools/routing/python:routing",
364379
],
365380
)
@@ -409,7 +424,6 @@ py_test(
409424
main = "tsp_distance_matrix.py",
410425
deps = [
411426
"//ortools/constraint_solver/python:constraint_solver",
412-
"//ortools/routing:parameters_py_pb2",
413427
"//ortools/routing/python:routing",
414428
],
415429
)
@@ -440,7 +454,6 @@ py_test(
440454
main = "vrp.py",
441455
deps = [
442456
"//ortools/constraint_solver/python:constraint_solver",
443-
"//ortools/routing:parameters_py_pb2",
444457
"//ortools/routing/python:routing",
445458
],
446459
)
@@ -472,7 +485,17 @@ py_test(
472485
main = "vrp_breaks.py",
473486
deps = [
474487
"//ortools/constraint_solver/python:constraint_solver",
475-
"//ortools/routing:parameters_py_pb2",
488+
"//ortools/routing/python:routing",
489+
],
490+
)
491+
492+
py_test(
493+
name = "vrp_breaks_from_start_py3",
494+
size = "medium",
495+
srcs = ["vrp_breaks_from_start.py"],
496+
main = "vrp_breaks_from_start.py",
497+
deps = [
498+
"//ortools/constraint_solver/python:constraint_solver",
476499
"//ortools/routing/python:routing",
477500
],
478501
)
@@ -504,7 +527,6 @@ py_test(
504527
main = "vrp_capacity.py",
505528
deps = [
506529
"//ortools/constraint_solver/python:constraint_solver",
507-
"//ortools/routing:parameters_py_pb2",
508530
"//ortools/routing/python:routing",
509531
],
510532
)
@@ -536,7 +558,6 @@ py_test(
536558
main = "vrp_drop_nodes.py",
537559
deps = [
538560
"//ortools/constraint_solver/python:constraint_solver",
539-
"//ortools/routing:parameters_py_pb2",
540561
"//ortools/routing/python:routing",
541562
],
542563
)
@@ -567,7 +588,6 @@ py_test(
567588
main = "vrp_global_span.py",
568589
deps = [
569590
"//ortools/constraint_solver/python:constraint_solver",
570-
"//ortools/routing:parameters_py_pb2",
571591
"//ortools/routing/python:routing",
572592
],
573593
)
@@ -599,7 +619,28 @@ py_test(
599619
main = "vrp_initial_routes.py",
600620
deps = [
601621
"//ortools/constraint_solver/python:constraint_solver",
602-
"//ortools/routing:parameters_py_pb2",
622+
"//ortools/routing/python:routing",
623+
],
624+
)
625+
626+
py_test(
627+
name = "vrp_items_to_deliver_py3",
628+
size = "medium",
629+
srcs = ["vrp_items_to_deliver.py"],
630+
main = "vrp_items_to_deliver.py",
631+
deps = [
632+
"//ortools/constraint_solver/python:constraint_solver",
633+
"//ortools/routing/python:routing",
634+
],
635+
)
636+
637+
py_test(
638+
name = "vrp_nodes_indices_py3",
639+
size = "medium",
640+
srcs = ["vrp_nodes_indices.py"],
641+
main = "vrp_nodes_indices.py",
642+
deps = [
643+
"//ortools/constraint_solver/python:constraint_solver",
603644
"//ortools/routing/python:routing",
604645
],
605646
)
@@ -630,7 +671,6 @@ py_test(
630671
main = "vrp_starts_ends.py",
631672
deps = [
632673
"//ortools/constraint_solver/python:constraint_solver",
633-
"//ortools/routing:parameters_py_pb2",
634674
"//ortools/routing/python:routing",
635675
],
636676
)
@@ -661,7 +701,6 @@ py_test(
661701
main = "vrp_pickup_delivery.py",
662702
deps = [
663703
"//ortools/constraint_solver/python:constraint_solver",
664-
"//ortools/routing:parameters_py_pb2",
665704
"//ortools/routing/python:routing",
666705
],
667706
)
@@ -692,7 +731,6 @@ py_test(
692731
main = "vrp_pickup_delivery_fifo.py",
693732
deps = [
694733
"//ortools/constraint_solver/python:constraint_solver",
695-
"//ortools/routing:parameters_py_pb2",
696734
"//ortools/routing/python:routing",
697735
],
698736
)
@@ -723,7 +761,6 @@ py_test(
723761
main = "vrp_pickup_delivery_lifo.py",
724762
deps = [
725763
"//ortools/constraint_solver/python:constraint_solver",
726-
"//ortools/routing:parameters_py_pb2",
727764
"//ortools/routing/python:routing",
728765
],
729766
)
@@ -754,7 +791,6 @@ py_test(
754791
main = "vrp_resources.py",
755792
deps = [
756793
"//ortools/constraint_solver/python:constraint_solver",
757-
"//ortools/routing:parameters_py_pb2",
758794
"//ortools/routing/python:routing",
759795
],
760796
)
@@ -804,7 +840,6 @@ py_test(
804840
srcs = ["vrp_solution_callback.py"],
805841
main = "vrp_solution_callback.py",
806842
deps = [
807-
"//ortools/routing:parameters_py_pb2",
808843
"//ortools/routing/python:routing",
809844
],
810845
)
@@ -835,7 +870,17 @@ py_test(
835870
main = "vrp_time_windows.py",
836871
deps = [
837872
"//ortools/constraint_solver/python:constraint_solver",
838-
"//ortools/routing:parameters_py_pb2",
873+
"//ortools/routing/python:routing",
874+
],
875+
)
876+
877+
py_test(
878+
name = "vrp_time_windows_per_vehicles_py3",
879+
size = "medium",
880+
srcs = ["vrp_time_windows_per_vehicles.py"],
881+
main = "vrp_time_windows_per_vehicles.py",
882+
deps = [
883+
"//ortools/constraint_solver/python:constraint_solver",
839884
"//ortools/routing/python:routing",
840885
],
841886
)
@@ -867,7 +912,6 @@ py_test(
867912
main = "vrp_with_time_limit.py",
868913
deps = [
869914
"//ortools/constraint_solver/python:constraint_solver",
870-
"//ortools/routing:parameters_py_pb2",
871915
"//ortools/routing/python:routing",
872916
],
873917
)
@@ -898,7 +942,6 @@ py_test(
898942
main = "vrptw_store_solution_data.py",
899943
deps = [
900944
"//ortools/constraint_solver/python:constraint_solver",
901-
"//ortools/routing:parameters_py_pb2",
902945
"//ortools/routing/python:routing",
903946
],
904947
)

0 commit comments

Comments
 (0)