2025-01-10 11:35:44 +01:00
|
|
|
# Copyright 2010-2025 Google LLC
|
2022-09-09 16:49:24 +02:00
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
|
# you may not use this file except in compliance with the License.
|
|
|
|
|
# You may obtain a copy of the License at
|
|
|
|
|
#
|
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
#
|
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
|
# See the License for the specific language governing permissions and
|
|
|
|
|
# limitations under the License.
|
|
|
|
|
|
2025-08-06 10:57:31 +02:00
|
|
|
load("@rules_cc//cc:cc_binary.bzl", "cc_binary")
|
|
|
|
|
load("@rules_cc//cc:cc_library.bzl", "cc_library")
|
|
|
|
|
load("@rules_cc//cc:cc_test.bzl", "cc_test")
|
|
|
|
|
|
2023-06-21 17:31:06 +02:00
|
|
|
# Constraint solver examples.
|
2021-12-18 18:16:52 +01:00
|
|
|
cc_binary(
|
|
|
|
|
name = "binpacking_2d_sat",
|
|
|
|
|
srcs = [
|
|
|
|
|
"binpacking_2d_sat.cc",
|
|
|
|
|
],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2023-10-24 17:40:38 +02:00
|
|
|
"//ortools/base:path",
|
2021-12-18 18:16:52 +01:00
|
|
|
"//ortools/packing:binpacking_2d_parser",
|
|
|
|
|
"//ortools/packing:multiple_dimensions_bin_packing_cc_proto",
|
|
|
|
|
"//ortools/sat:cp_model",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/container:btree",
|
|
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
2025-05-26 15:07:03 +02:00
|
|
|
"@protobuf",
|
2021-12-18 18:16:52 +01:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-09 17:36:49 -07:00
|
|
|
cc_test(
|
|
|
|
|
name = "binpacking_2d_sat_class01_instance2_test",
|
|
|
|
|
size = "medium",
|
|
|
|
|
srcs = [
|
|
|
|
|
"binpacking_2d_sat.cc",
|
|
|
|
|
],
|
|
|
|
|
args = ["--input $(rootpath //ortools/packing/testdata:Class_01.2bp) --instance 2"],
|
|
|
|
|
data = ["//ortools/packing/testdata:Class_01.2bp"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2023-10-25 10:57:37 +02:00
|
|
|
"//ortools/base:path",
|
2023-08-09 17:36:49 -07:00
|
|
|
"//ortools/packing:binpacking_2d_parser",
|
|
|
|
|
"//ortools/packing:multiple_dimensions_bin_packing_cc_proto",
|
|
|
|
|
"//ortools/sat:cp_model",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
2025-05-26 15:07:03 +02:00
|
|
|
"@protobuf",
|
2023-08-09 17:36:49 -07:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2020-10-21 09:03:08 +02:00
|
|
|
cc_binary(
|
|
|
|
|
name = "constraint_programming_cp",
|
|
|
|
|
srcs = ["constraint_programming_cp.cc"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/constraint_solver:cp",
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-09 20:54:52 -07:00
|
|
|
cc_test(
|
2023-08-09 20:56:39 -07:00
|
|
|
name = "constraint_programming_cp_test",
|
2023-08-09 20:54:52 -07:00
|
|
|
size = "small",
|
|
|
|
|
srcs = ["constraint_programming_cp.cc"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/constraint_solver:cp",
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2020-10-21 09:03:08 +02:00
|
|
|
cc_binary(
|
|
|
|
|
name = "costas_array_sat",
|
|
|
|
|
srcs = ["costas_array_sat.cc"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:model",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/flags:parse",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-09 20:54:52 -07:00
|
|
|
cc_test(
|
|
|
|
|
name = "costas_array_sat_model1_test",
|
|
|
|
|
size = "medium",
|
|
|
|
|
srcs = ["costas_array_sat.cc"],
|
|
|
|
|
args = [
|
|
|
|
|
"--minsize=6 --maxsize=6 --model=1",
|
|
|
|
|
],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:model",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/flags:parse",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2023-08-09 20:54:52 -07:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
cc_test(
|
|
|
|
|
name = "costas_array_sat_model2_test",
|
|
|
|
|
size = "medium",
|
|
|
|
|
srcs = ["costas_array_sat.cc"],
|
|
|
|
|
args = [
|
|
|
|
|
"--minsize=6 --maxsize=6 --model=2",
|
|
|
|
|
],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:model",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/flags:parse",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2023-08-09 20:54:52 -07:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
cc_test(
|
|
|
|
|
name = "costas_array_sat_model3_test",
|
|
|
|
|
size = "medium",
|
|
|
|
|
srcs = ["costas_array_sat.cc"],
|
|
|
|
|
args = [
|
|
|
|
|
"--minsize=6 --maxsize=6 --model=3",
|
|
|
|
|
],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:model",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/flags:parse",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2023-08-09 20:54:52 -07:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-06-21 17:31:06 +02:00
|
|
|
cc_binary(
|
|
|
|
|
name = "cryptarithm_sat",
|
|
|
|
|
srcs = ["cryptarithm_sat.cc"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:model",
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-09 20:54:52 -07:00
|
|
|
cc_test(
|
|
|
|
|
name = "cryptarithm_sat_test",
|
|
|
|
|
size = "small",
|
|
|
|
|
srcs = ["cryptarithm_sat.cc"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:model",
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-06-21 17:31:06 +02:00
|
|
|
cc_binary(
|
|
|
|
|
name = "dobble_ls",
|
|
|
|
|
srcs = ["dobble_ls.cc"],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/base:map_util",
|
|
|
|
|
"//ortools/constraint_solver:cp",
|
|
|
|
|
"//ortools/util:bitset",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/random",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-09 17:36:49 -07:00
|
|
|
cc_test(
|
|
|
|
|
name = "dobble_ls_test",
|
|
|
|
|
size = "medium",
|
2023-08-09 20:54:52 -07:00
|
|
|
srcs = ["dobble_ls.cc"],
|
2023-08-09 17:36:49 -07:00
|
|
|
args = ["--time_limit_in_ms=10000"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/base:map_util",
|
|
|
|
|
"//ortools/constraint_solver:cp",
|
|
|
|
|
"//ortools/util:bitset",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/random",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2023-08-09 17:36:49 -07:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2020-10-21 09:03:08 +02:00
|
|
|
cc_binary(
|
2023-06-21 17:31:06 +02:00
|
|
|
name = "golomb_sat",
|
|
|
|
|
srcs = ["golomb_sat.cc"],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:model",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/flags:parse",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2025-05-26 15:07:03 +02:00
|
|
|
"@protobuf",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-09 17:36:49 -07:00
|
|
|
cc_test(
|
|
|
|
|
name = "golomb_sat_test",
|
|
|
|
|
size = "medium",
|
|
|
|
|
srcs = ["golomb_sat.cc"],
|
|
|
|
|
args = ["--size 5"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:model",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/flags:parse",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2025-05-26 15:07:03 +02:00
|
|
|
"@protobuf",
|
2023-08-09 17:36:49 -07:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2020-10-21 09:03:08 +02:00
|
|
|
cc_binary(
|
2023-06-21 17:31:06 +02:00
|
|
|
name = "knapsack_2d_sat",
|
|
|
|
|
srcs = [
|
|
|
|
|
"knapsack_2d_sat.cc",
|
|
|
|
|
],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/packing:binpacking_2d_parser",
|
|
|
|
|
"//ortools/packing:multiple_dimensions_bin_packing_cc_proto",
|
|
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:cp_model_solver",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
2025-05-26 15:07:03 +02:00
|
|
|
"@protobuf",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-09 20:54:52 -07:00
|
|
|
cc_test(
|
|
|
|
|
name = "knapsack_2d_sat_class01_instance2_test",
|
|
|
|
|
size = "medium",
|
|
|
|
|
srcs = [
|
|
|
|
|
"knapsack_2d_sat.cc",
|
|
|
|
|
],
|
|
|
|
|
args = ["--input $(rootpath //ortools/packing/testdata:Class_01.2bp) --instance 2"],
|
|
|
|
|
data = ["//ortools/packing/testdata:Class_01.2bp"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/packing:binpacking_2d_parser",
|
|
|
|
|
"//ortools/packing:multiple_dimensions_bin_packing_cc_proto",
|
|
|
|
|
"//ortools/sat:cp_model",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
2025-05-26 15:07:03 +02:00
|
|
|
"@protobuf",
|
2023-08-09 20:54:52 -07:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2020-10-21 09:03:08 +02:00
|
|
|
cc_binary(
|
2023-06-21 17:31:06 +02:00
|
|
|
name = "jobshop_sat",
|
|
|
|
|
srcs = [
|
|
|
|
|
"jobshop_sat.cc",
|
|
|
|
|
],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/base:file",
|
|
|
|
|
"//ortools/base:timer",
|
|
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:cp_model_solver",
|
|
|
|
|
"//ortools/sat:model",
|
|
|
|
|
"//ortools/scheduling:jobshop_scheduling_cc_proto",
|
|
|
|
|
"//ortools/scheduling:jobshop_scheduling_parser",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-09 17:44:00 -07:00
|
|
|
cc_test(
|
|
|
|
|
name = "jobshop_sat_ft06",
|
2023-08-09 20:54:52 -07:00
|
|
|
size = "small",
|
2023-08-09 17:44:00 -07:00
|
|
|
srcs = [
|
|
|
|
|
"jobshop_sat.cc",
|
|
|
|
|
],
|
|
|
|
|
args = ["--input $(rootpath //ortools/scheduling/testdata:ft06)"],
|
|
|
|
|
data = ["//ortools/scheduling/testdata:ft06"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/base:file",
|
|
|
|
|
"//ortools/base:timer",
|
|
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:cp_model_solver",
|
|
|
|
|
"//ortools/sat:model",
|
|
|
|
|
"//ortools/scheduling:jobshop_scheduling_cc_proto",
|
|
|
|
|
"//ortools/scheduling:jobshop_scheduling_parser",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
2023-08-09 17:44:00 -07:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2020-10-21 09:03:08 +02:00
|
|
|
cc_binary(
|
2023-06-21 17:31:06 +02:00
|
|
|
name = "magic_sequence_sat",
|
|
|
|
|
srcs = ["magic_sequence_sat.cc"],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:model",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/flags:parse",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-09 20:54:52 -07:00
|
|
|
cc_test(
|
|
|
|
|
name = "magic_sequence_sat_test",
|
|
|
|
|
size = "medium",
|
|
|
|
|
srcs = ["magic_sequence_sat.cc"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:model",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/flags:parse",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2023-08-09 20:54:52 -07:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2020-10-21 09:03:08 +02:00
|
|
|
cc_binary(
|
2023-06-21 17:31:06 +02:00
|
|
|
name = "multi_knapsack_sat",
|
|
|
|
|
srcs = [
|
|
|
|
|
"multi_knapsack_sat.cc",
|
|
|
|
|
],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/sat:cp_model",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
2017-03-30 13:54:42 +02:00
|
|
|
|
2023-08-09 20:54:52 -07:00
|
|
|
cc_test(
|
|
|
|
|
name = "multi_knapsack_sat_test",
|
|
|
|
|
size = "medium",
|
|
|
|
|
srcs = [
|
|
|
|
|
"multi_knapsack_sat.cc",
|
|
|
|
|
],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/sat:cp_model",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
2023-08-09 20:54:52 -07:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2020-10-21 09:03:08 +02:00
|
|
|
cc_binary(
|
2023-06-21 17:31:06 +02:00
|
|
|
name = "shift_minimization_sat",
|
|
|
|
|
srcs = [
|
|
|
|
|
"shift_minimization_sat.cc",
|
|
|
|
|
],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/base:file",
|
|
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:model",
|
|
|
|
|
"//ortools/util:filelineiter",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/container:btree",
|
|
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
2023-08-09 17:44:00 -07:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
cc_test(
|
|
|
|
|
name = "shift_minimization_sat_test",
|
2023-08-09 20:54:52 -07:00
|
|
|
size = "medium",
|
2023-08-09 17:44:00 -07:00
|
|
|
srcs = [
|
|
|
|
|
"shift_minimization_sat.cc",
|
|
|
|
|
],
|
|
|
|
|
args = ["--input $(rootpath //examples/cpp:shift_minimization.dat)"],
|
|
|
|
|
data = ["//examples/cpp:shift_minimization.dat"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/base:file",
|
|
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:model",
|
|
|
|
|
"//ortools/util:filelineiter",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/container:btree",
|
|
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
2017-03-30 13:54:42 +02:00
|
|
|
|
2023-06-21 17:31:06 +02:00
|
|
|
cc_binary(
|
|
|
|
|
name = "weighted_tardiness_sat",
|
|
|
|
|
srcs = [
|
|
|
|
|
"weighted_tardiness_sat.cc",
|
|
|
|
|
],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/base:file",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:cp_model_solver",
|
|
|
|
|
"//ortools/sat:disjunctive",
|
|
|
|
|
"//ortools/sat:integer",
|
|
|
|
|
"//ortools/sat:integer_expr",
|
|
|
|
|
"//ortools/sat:intervals",
|
|
|
|
|
"//ortools/sat:model",
|
|
|
|
|
"//ortools/sat:optimization",
|
|
|
|
|
"//ortools/sat:precedences",
|
|
|
|
|
"//ortools/sat:sat_solver",
|
|
|
|
|
"//ortools/util:filelineiter",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
2025-05-26 15:07:03 +02:00
|
|
|
"@protobuf",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
2017-03-30 13:54:42 +02:00
|
|
|
|
2023-08-09 20:54:52 -07:00
|
|
|
cc_test(
|
|
|
|
|
name = "weighted_tardiness_sat_test",
|
|
|
|
|
size = "medium",
|
|
|
|
|
srcs = [
|
|
|
|
|
"weighted_tardiness_sat.cc",
|
|
|
|
|
],
|
|
|
|
|
args = ["--input $(rootpath //examples/cpp:wt40.txt)"],
|
|
|
|
|
data = ["//examples/cpp:wt40.txt"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/base:file",
|
|
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:cp_model_solver",
|
|
|
|
|
"//ortools/sat:disjunctive",
|
|
|
|
|
"//ortools/sat:integer",
|
|
|
|
|
"//ortools/sat:integer_expr",
|
|
|
|
|
"//ortools/sat:intervals",
|
|
|
|
|
"//ortools/sat:model",
|
|
|
|
|
"//ortools/sat:optimization",
|
|
|
|
|
"//ortools/sat:precedences",
|
|
|
|
|
"//ortools/sat:sat_solver",
|
|
|
|
|
"//ortools/util:filelineiter",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
2025-05-26 15:07:03 +02:00
|
|
|
"@protobuf",
|
2023-08-09 20:54:52 -07:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-06-21 17:31:06 +02:00
|
|
|
cc_binary(
|
|
|
|
|
name = "magic_square_sat",
|
|
|
|
|
srcs = ["magic_square_sat.cc"],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:model",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/flags:parse",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-09 20:54:52 -07:00
|
|
|
cc_test(
|
|
|
|
|
name = "magic_square_sat_test",
|
|
|
|
|
size = "medium",
|
|
|
|
|
srcs = ["magic_square_sat.cc"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:model",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/flags:parse",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2023-08-09 20:54:52 -07:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2020-10-21 09:03:08 +02:00
|
|
|
cc_binary(
|
2023-06-21 17:31:06 +02:00
|
|
|
name = "network_routing_sat",
|
|
|
|
|
srcs = ["network_routing_sat.cc"],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/base:hash",
|
|
|
|
|
"//ortools/base:map_util",
|
|
|
|
|
"//ortools/graph:shortest_paths",
|
|
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:model",
|
|
|
|
|
"//ortools/util:tuple_set",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/container:btree",
|
|
|
|
|
"@abseil-cpp//absl/container:flat_hash_map",
|
|
|
|
|
"@abseil-cpp//absl/container:flat_hash_set",
|
|
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-09 17:36:49 -07:00
|
|
|
cc_test(
|
|
|
|
|
name = "network_routing_sat_test",
|
|
|
|
|
size = "medium",
|
|
|
|
|
srcs = ["network_routing_sat.cc"],
|
|
|
|
|
args = ["--clients=10 --backbones=5 --demands=10 --traffic_min=5 --traffic_max=10 --min_client_degree=2 --max_client_degree=5 --min_backbone_degree=3 --max_backbone_degree=5 --max_capacity=20 --fixed_charge_cost=10"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/base:hash",
|
|
|
|
|
"//ortools/base:map_util",
|
|
|
|
|
"//ortools/graph:shortest_paths",
|
|
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:model",
|
|
|
|
|
"//ortools/util:tuple_set",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/container:btree",
|
|
|
|
|
"@abseil-cpp//absl/container:flat_hash_map",
|
|
|
|
|
"@abseil-cpp//absl/container:flat_hash_set",
|
|
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2023-08-09 17:36:49 -07:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2020-10-21 09:03:08 +02:00
|
|
|
cc_binary(
|
2023-06-21 17:31:06 +02:00
|
|
|
name = "nqueens",
|
|
|
|
|
srcs = ["nqueens.cc"],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/base:map_util",
|
|
|
|
|
"//ortools/constraint_solver:cp",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/container:flat_hash_map",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-09 20:54:52 -07:00
|
|
|
cc_test(
|
|
|
|
|
name = "nqueens_test",
|
|
|
|
|
srcs = ["nqueens.cc"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/base:map_util",
|
|
|
|
|
"//ortools/constraint_solver:cp",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/container:flat_hash_map",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2023-08-09 20:54:52 -07:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2020-10-21 09:03:08 +02:00
|
|
|
cc_binary(
|
2023-06-21 17:31:06 +02:00
|
|
|
name = "sports_scheduling_sat",
|
|
|
|
|
srcs = ["sports_scheduling_sat.cc"],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:model",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-09 17:36:49 -07:00
|
|
|
cc_test(
|
|
|
|
|
name = "sports_scheduling_sat_test",
|
|
|
|
|
size = "medium",
|
|
|
|
|
srcs = ["sports_scheduling_sat.cc"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:model",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2023-08-09 17:36:49 -07:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-06-21 17:31:06 +02:00
|
|
|
cc_binary(
|
|
|
|
|
name = "vector_bin_packing_solver",
|
|
|
|
|
srcs = [
|
|
|
|
|
"vector_bin_packing_solver.cc",
|
|
|
|
|
],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/base:file",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/packing:arc_flow_builder",
|
|
|
|
|
"//ortools/packing:arc_flow_solver",
|
|
|
|
|
"//ortools/packing:vector_bin_packing_cc_proto",
|
|
|
|
|
"//ortools/packing:vector_bin_packing_parser",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/status",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-09 20:54:52 -07:00
|
|
|
cc_test(
|
|
|
|
|
name = "vector_bin_packing_solver_test",
|
|
|
|
|
size = "medium",
|
|
|
|
|
srcs = [
|
|
|
|
|
"vector_bin_packing_solver.cc",
|
|
|
|
|
],
|
|
|
|
|
args = ["--input $(rootpath //ortools/packing/testdata:1D__bpp_scholl__bin2data.N2W2B1R0.vbp)"],
|
|
|
|
|
data = ["//ortools/packing/testdata:1D__bpp_scholl__bin2data.N2W2B1R0.vbp"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/base:file",
|
|
|
|
|
"//ortools/packing:arc_flow_builder",
|
|
|
|
|
"//ortools/packing:arc_flow_solver",
|
|
|
|
|
"//ortools/packing:vector_bin_packing_cc_proto",
|
|
|
|
|
"//ortools/packing:vector_bin_packing_parser",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/status",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
2023-08-09 20:54:52 -07:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-06-21 17:31:06 +02:00
|
|
|
# Routing examples.
|
|
|
|
|
cc_binary(
|
|
|
|
|
name = "random_tsp",
|
|
|
|
|
srcs = ["random_tsp.cc"],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/constraint_solver:routing",
|
|
|
|
|
"//ortools/util:random_engine",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/strings",
|
2025-05-26 15:07:03 +02:00
|
|
|
"@protobuf",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-06-21 17:31:06 +02:00
|
|
|
cc_binary(
|
|
|
|
|
name = "pdptw",
|
|
|
|
|
srcs = ["pdptw.cc"],
|
2021-12-18 18:16:52 +01:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/base:file",
|
|
|
|
|
"//ortools/base:mathutil",
|
|
|
|
|
"//ortools/constraint_solver:routing",
|
2024-03-25 11:59:02 +01:00
|
|
|
"//ortools/routing/parsers:lilim_parser",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2025-05-26 15:07:03 +02:00
|
|
|
"@protobuf",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-06-21 17:31:06 +02:00
|
|
|
# Linear and integer programming examples.
|
2020-10-21 09:03:08 +02:00
|
|
|
cc_binary(
|
2023-06-21 17:31:06 +02:00
|
|
|
name = "integer_programming",
|
|
|
|
|
srcs = ["integer_programming.cc"],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/linear_solver",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/strings",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-09 20:54:52 -07:00
|
|
|
cc_test(
|
|
|
|
|
name = "integer_programming_test",
|
|
|
|
|
size = "small",
|
|
|
|
|
srcs = ["integer_programming.cc"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/linear_solver",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/strings",
|
2023-08-09 20:54:52 -07:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2020-10-21 09:03:08 +02:00
|
|
|
cc_binary(
|
|
|
|
|
name = "linear_programming",
|
|
|
|
|
srcs = ["linear_programming.cc"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/linear_solver",
|
|
|
|
|
"//ortools/linear_solver:linear_solver_cc_proto",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-09 20:54:52 -07:00
|
|
|
cc_test(
|
|
|
|
|
name = "linear_programming_test",
|
|
|
|
|
size = "small",
|
|
|
|
|
srcs = ["linear_programming.cc"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/linear_solver",
|
|
|
|
|
"//ortools/linear_solver:linear_solver_cc_proto",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
2023-08-09 20:54:52 -07:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2020-10-21 09:03:08 +02:00
|
|
|
cc_binary(
|
|
|
|
|
name = "linear_solver_protocol_buffers",
|
|
|
|
|
srcs = ["linear_solver_protocol_buffers.cc"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/linear_solver",
|
|
|
|
|
"//ortools/linear_solver:linear_solver_cc_proto",
|
2024-03-25 11:59:02 +01:00
|
|
|
"//ortools/linear_solver:solve_mp_model",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2021-01-15 09:47:18 +01:00
|
|
|
cc_binary(
|
2023-06-21 17:31:06 +02:00
|
|
|
name = "strawberry_fields_with_column_generation",
|
|
|
|
|
srcs = ["strawberry_fields_with_column_generation.cc"],
|
2021-01-15 09:47:18 +01:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/linear_solver",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2023-08-09 22:34:09 -07:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
cc_test(
|
|
|
|
|
name = "strawberry_fields_with_column_generation_test",
|
|
|
|
|
size = "large",
|
2023-10-26 11:00:54 +02:00
|
|
|
srcs = ["strawberry_fields_with_column_generation.cc"],
|
2023-08-09 22:34:09 -07:00
|
|
|
args = ["--colgen_instance=4"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/linear_solver",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2021-01-15 09:47:18 +01:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-06-21 17:31:06 +02:00
|
|
|
# Dimacs assignment problems
|
|
|
|
|
cc_library(
|
|
|
|
|
name = "print_dimacs_assignment",
|
|
|
|
|
hdrs = ["print_dimacs_assignment.h"],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/base:file",
|
2024-12-29 19:47:45 +01:00
|
|
|
"//ortools/graph",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/graph:linear_assignment",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/status",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-06-21 17:31:06 +02:00
|
|
|
cc_library(
|
|
|
|
|
name = "parse_dimacs_assignment",
|
2025-01-06 13:20:57 +01:00
|
|
|
srcs = ["parse_dimacs_assignment.cc"],
|
2023-06-21 17:31:06 +02:00
|
|
|
hdrs = ["parse_dimacs_assignment.h"],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2024-12-29 19:47:45 +01:00
|
|
|
"//ortools/graph",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/graph:linear_assignment",
|
|
|
|
|
"//ortools/util:filelineiter",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/strings",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
cc_binary(
|
2023-06-21 17:31:06 +02:00
|
|
|
name = "dimacs_assignment",
|
|
|
|
|
srcs = ["dimacs_assignment.cc"],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
2023-06-21 17:31:06 +02:00
|
|
|
":parse_dimacs_assignment",
|
|
|
|
|
":print_dimacs_assignment",
|
|
|
|
|
"//ortools/algorithms:hungarian",
|
2020-10-21 09:03:08 +02:00
|
|
|
"//ortools/base",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/base:timer",
|
2024-12-29 19:47:45 +01:00
|
|
|
"//ortools/graph",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/graph:linear_assignment",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/container:flat_hash_map",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-06-21 17:31:06 +02:00
|
|
|
# MPS driver for LP and MIP.
|
2020-10-21 09:03:08 +02:00
|
|
|
cc_binary(
|
|
|
|
|
name = "mps_driver",
|
|
|
|
|
srcs = ["mps_driver.cc"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/base:timer",
|
|
|
|
|
"//ortools/glop:lp_solver",
|
|
|
|
|
"//ortools/glop:parameters_cc_proto",
|
|
|
|
|
"//ortools/lp_data:mps_reader",
|
2023-08-09 17:36:49 -07:00
|
|
|
"//ortools/util:proto_tools",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/status",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2025-05-26 15:07:03 +02:00
|
|
|
"@protobuf",
|
2023-08-09 17:36:49 -07:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
cc_test(
|
|
|
|
|
name = "mps_driver_test",
|
|
|
|
|
size = "small",
|
|
|
|
|
srcs = ["mps_driver.cc"],
|
|
|
|
|
args = ["--input $(rootpath //ortools/linear_solver/testdata:maximization.mps)"],
|
|
|
|
|
data = ["//ortools/linear_solver/testdata:maximization.mps"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/base:timer",
|
|
|
|
|
"//ortools/glop:lp_solver",
|
|
|
|
|
"//ortools/glop:parameters_cc_proto",
|
|
|
|
|
"//ortools/lp_data:mps_reader",
|
2020-10-21 09:03:08 +02:00
|
|
|
"//ortools/util:proto_tools",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/status",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2025-05-26 15:07:03 +02:00
|
|
|
"@protobuf",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-06-21 17:31:06 +02:00
|
|
|
# Linear Assignment C++ Example
|
2021-01-15 09:47:18 +01:00
|
|
|
cc_binary(
|
2023-06-21 17:31:06 +02:00
|
|
|
name = "linear_assignment_api",
|
|
|
|
|
srcs = ["linear_assignment_api.cc"],
|
2021-01-15 09:47:18 +01:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2024-12-29 19:47:45 +01:00
|
|
|
"//ortools/graph",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/graph:linear_assignment",
|
2021-01-15 09:47:18 +01:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-09 20:54:52 -07:00
|
|
|
cc_test(
|
|
|
|
|
name = "linear_assignment_api_test",
|
|
|
|
|
size = "small",
|
|
|
|
|
srcs = ["linear_assignment_api.cc"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2024-12-29 19:47:45 +01:00
|
|
|
"//ortools/graph",
|
2023-08-09 20:54:52 -07:00
|
|
|
"//ortools/graph:linear_assignment",
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-06-21 17:31:06 +02:00
|
|
|
# Flow C++ Example
|
2020-10-21 09:03:08 +02:00
|
|
|
cc_binary(
|
2023-06-21 17:31:06 +02:00
|
|
|
name = "flow_api",
|
|
|
|
|
srcs = ["flow_api.cc"],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2024-12-29 19:47:45 +01:00
|
|
|
"//ortools/graph",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/graph:max_flow",
|
|
|
|
|
"//ortools/graph:min_cost_flow",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-09 20:54:52 -07:00
|
|
|
cc_test(
|
|
|
|
|
name = "flow_api_test",
|
|
|
|
|
size = "small",
|
|
|
|
|
srcs = ["flow_api.cc"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2024-12-29 19:47:45 +01:00
|
|
|
"//ortools/graph",
|
2023-08-09 20:54:52 -07:00
|
|
|
"//ortools/graph:max_flow",
|
|
|
|
|
"//ortools/graph:min_cost_flow",
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2020-10-21 09:03:08 +02:00
|
|
|
cc_binary(
|
2023-06-21 17:31:06 +02:00
|
|
|
name = "max_flow",
|
|
|
|
|
srcs = ["max_flow.cc"],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/graph:max_flow",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-09 20:54:52 -07:00
|
|
|
cc_test(
|
|
|
|
|
name = "max_flow_test",
|
|
|
|
|
size = "small",
|
|
|
|
|
srcs = ["max_flow.cc"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/graph:max_flow",
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2022-08-07 16:31:58 -04:00
|
|
|
cc_binary(
|
2023-06-21 17:31:06 +02:00
|
|
|
name = "min_cost_flow",
|
|
|
|
|
srcs = ["min_cost_flow.cc"],
|
2022-08-07 16:31:58 -04:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2023-08-09 20:54:52 -07:00
|
|
|
"//ortools/graph:min_cost_flow",
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
cc_test(
|
|
|
|
|
name = "min_cost_flow_test",
|
|
|
|
|
size = "small",
|
|
|
|
|
srcs = ["min_cost_flow.cc"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/graph:min_cost_flow",
|
2022-08-07 16:31:58 -04:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-06-21 17:31:06 +02:00
|
|
|
# Frequency Assignment Problem
|
|
|
|
|
cc_library(
|
|
|
|
|
name = "fap_parser",
|
2025-01-06 13:20:57 +01:00
|
|
|
srcs = ["fap_parser.cc"],
|
2023-06-21 17:31:06 +02:00
|
|
|
hdrs = ["fap_parser.h"],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/base:file",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/base:hash",
|
|
|
|
|
"//ortools/base:map_util",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/container:flat_hash_map",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-06-21 17:31:06 +02:00
|
|
|
cc_library(
|
|
|
|
|
name = "fap_model_printer",
|
2025-01-06 13:20:57 +01:00
|
|
|
srcs = ["fap_model_printer.cc"],
|
2023-06-21 17:31:06 +02:00
|
|
|
hdrs = ["fap_model_printer.h"],
|
2022-10-10 15:03:10 +02:00
|
|
|
deps = [
|
2023-06-21 17:31:06 +02:00
|
|
|
":fap_parser",
|
2022-10-10 15:03:10 +02:00
|
|
|
"//ortools/base",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/base:file",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/strings",
|
|
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2022-10-10 15:03:10 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-06-21 17:31:06 +02:00
|
|
|
cc_library(
|
|
|
|
|
name = "fap_utilities",
|
2025-01-06 13:20:57 +01:00
|
|
|
srcs = ["fap_utilities.cc"],
|
2023-06-21 17:31:06 +02:00
|
|
|
hdrs = ["fap_utilities.h"],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
2023-06-21 17:31:06 +02:00
|
|
|
":fap_parser",
|
2020-10-21 09:03:08 +02:00
|
|
|
"//ortools/base",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/base:map_util",
|
|
|
|
|
"//ortools/constraint_solver:cp",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/container:btree",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
2017-03-30 13:54:42 +02:00
|
|
|
|
2020-10-21 09:03:08 +02:00
|
|
|
cc_binary(
|
2023-06-21 17:31:06 +02:00
|
|
|
name = "frequency_assignment_problem",
|
|
|
|
|
srcs = ["frequency_assignment_problem.cc"],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
2023-06-21 17:31:06 +02:00
|
|
|
":fap_model_printer",
|
|
|
|
|
":fap_parser",
|
|
|
|
|
":fap_utilities",
|
2020-10-21 09:03:08 +02:00
|
|
|
"//ortools/base",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/base:map_util",
|
|
|
|
|
"//ortools/constraint_solver:cp",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/container:btree",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-06-21 17:31:06 +02:00
|
|
|
# Quadratic assignment problem.
|
2020-10-21 09:03:08 +02:00
|
|
|
cc_binary(
|
2023-06-21 17:31:06 +02:00
|
|
|
name = "qap_sat",
|
|
|
|
|
srcs = ["qap_sat.cc"],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:model",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/sat:sat_parameters_cc_proto",
|
|
|
|
|
"//ortools/util:qap_reader",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
2025-05-26 15:07:03 +02:00
|
|
|
"@protobuf",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
cc_binary(
|
2023-06-21 17:31:06 +02:00
|
|
|
name = "slitherlink_sat",
|
|
|
|
|
srcs = ["slitherlink_sat.cc"],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:model",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-09 22:37:28 -07:00
|
|
|
cc_test(
|
|
|
|
|
name = "slitherlink_sat_test",
|
|
|
|
|
size = "small",
|
2023-10-26 11:00:54 +02:00
|
|
|
srcs = ["slitherlink_sat.cc"],
|
2023-08-09 22:37:28 -07:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:model",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/strings:str_format",
|
2023-08-09 22:37:28 -07:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2020-10-21 09:03:08 +02:00
|
|
|
cc_binary(
|
|
|
|
|
name = "uncapacitated_facility_location",
|
|
|
|
|
srcs = ["uncapacitated_facility_location.cc"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
|
|
|
|
"//ortools/linear_solver",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/flags:parse",
|
|
|
|
|
"@abseil-cpp//absl/random",
|
2025-05-26 15:07:03 +02:00
|
|
|
"@protobuf",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
cc_binary(
|
|
|
|
|
name = "variable_intervals_sat",
|
|
|
|
|
srcs = ["variable_intervals_sat.cc"],
|
|
|
|
|
deps = [
|
|
|
|
|
"//ortools/sat:cp_model",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/sat:sat_parameters_cc_proto",
|
2020-10-21 09:03:08 +02:00
|
|
|
"//ortools/util:time_limit",
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2023-08-09 22:37:28 -07:00
|
|
|
cc_test(
|
|
|
|
|
name = "variable_intervals_sat_test",
|
|
|
|
|
size = "small",
|
2023-10-26 11:00:54 +02:00
|
|
|
srcs = ["variable_intervals_sat.cc"],
|
2023-08-09 22:37:28 -07:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/sat:cp_model",
|
|
|
|
|
"//ortools/sat:sat_parameters_cc_proto",
|
|
|
|
|
"//ortools/util:time_limit",
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
|
2021-09-28 16:27:58 +02:00
|
|
|
cc_binary(
|
2023-06-21 17:31:06 +02:00
|
|
|
name = "pdlp_solve",
|
|
|
|
|
srcs = ["pdlp_solve.cc"],
|
2020-10-21 09:03:08 +02:00
|
|
|
deps = [
|
|
|
|
|
"//ortools/base",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/linear_solver:linear_solver_cc_proto",
|
2024-03-25 11:59:02 +01:00
|
|
|
"//ortools/pdlp:iteration_stats",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/pdlp:primal_dual_hybrid_gradient",
|
2024-03-25 11:59:02 +01:00
|
|
|
"//ortools/pdlp:quadratic_program",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/pdlp:quadratic_program_io",
|
|
|
|
|
"//ortools/pdlp:solve_log_cc_proto",
|
|
|
|
|
"//ortools/pdlp:solvers_cc_proto",
|
|
|
|
|
"//ortools/port:proto_utils",
|
2024-03-25 11:59:02 +01:00
|
|
|
"//ortools/util:file_util",
|
2024-07-12 13:56:11 +02:00
|
|
|
"//ortools/util:fp_roundtrip_conv",
|
2023-06-21 17:31:06 +02:00
|
|
|
"//ortools/util:sigint",
|
2025-03-26 10:55:19 +01:00
|
|
|
"@abseil-cpp//absl/flags:flag",
|
|
|
|
|
"@abseil-cpp//absl/log:check",
|
|
|
|
|
"@abseil-cpp//absl/log:flags",
|
|
|
|
|
"@abseil-cpp//absl/strings",
|
2020-10-21 09:03:08 +02:00
|
|
|
],
|
|
|
|
|
)
|