From 70326e59b12c3f6cb90822ab28108efe0cf433ed Mon Sep 17 00:00:00 2001 From: Mizux Seiha Date: Mon, 24 Aug 2020 19:08:06 +0200 Subject: [PATCH] remove duplicated examples/cpp/knapsack.cc --- examples/cpp/BUILD | 9 ---- examples/cpp/CMakeLists.txt | 1 - examples/cpp/knapsack.cc | 80 -------------------------------- ortools/algorithms/samples/BUILD | 15 ++++++ 4 files changed, 15 insertions(+), 90 deletions(-) delete mode 100644 examples/cpp/knapsack.cc create mode 100644 ortools/algorithms/samples/BUILD diff --git a/examples/cpp/BUILD b/examples/cpp/BUILD index c30bdafb13..505de76f27 100644 --- a/examples/cpp/BUILD +++ b/examples/cpp/BUILD @@ -254,15 +254,6 @@ cc_binary( ], ) -cc_binary( - name = "knapsack", - srcs = ["knapsack.cc"], - deps = [ - "//ortools/algorithms:knapsack_solver_lib", - "//ortools/base", - ], -) - cc_binary( name = "linear_assignment_api", srcs = ["linear_assignment_api.cc"], diff --git a/examples/cpp/CMakeLists.txt b/examples/cpp/CMakeLists.txt index 5b739e4b7f..5612fc6dc2 100644 --- a/examples/cpp/CMakeLists.txt +++ b/examples/cpp/CMakeLists.txt @@ -31,7 +31,6 @@ foreach(EXECUTABLE golomb_sat integer_programming jobshop_sat - knapsack linear_assignment_api linear_programming linear_solver_protocol_buffers diff --git a/examples/cpp/knapsack.cc b/examples/cpp/knapsack.cc deleted file mode 100644 index 49381fb05c..0000000000 --- a/examples/cpp/knapsack.cc +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2018 Google LLC -// 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. - -// Bi-dimensional knapsack problem. - -#include -#include -#include -#include "ortools/algorithms/knapsack_solver.h" -#include "ortools/base/logging.h" - -namespace operations_research { -void RunKnapsackExample() { - // Instantiate the solver. - KnapsackSolver solver( - KnapsackSolver::KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER, - "KnapsackExample"); - - std::vector values = { - 360, 83, 59, 130, 431, 67, 230, 52, 93, 125, 670, 892, 600, - 38, 48, 147, 78, 256, 63, 17, 120, 164, 432, 35, 92, 110, - 22, 42, 50, 323, 514, 28, 87, 73, 78, 15, 26, 78, 210, - 36, 85, 189, 274, 43, 33, 10, 19, 389, 276, 312}; - - std::vector> weights = { - {7, 0, 30, 22, 80, 94, 11, 81, 70, 64, 59, 18, 0, 36, 3, 8, 15, - 42, 9, 0, 42, 47, 52, 32, 26, 48, 55, 6, 29, 84, 2, 4, 18, 56, - 7, 29, 93, 44, 71, 3, 86, 66, 31, 65, 0, 79, 20, 65, 52, 13}}; - - std::vector capacities = {850}; - - solver.Init(values, weights, capacities); - int64 computed_value = solver.Solve(); - - // Print solution - std::vector packed_items; - for (std::size_t i = 0; i < values.size(); ++i) { - if (solver.BestSolutionContains(i)) packed_items.push_back(i); - } - std::ostringstream packed_items_ss; - std::copy(packed_items.begin(), packed_items.end() - 1, - std::ostream_iterator(packed_items_ss, ", ")); - packed_items_ss << packed_items.back(); - - std::vector packed_weights; - packed_weights.reserve(packed_items.size()); - for (const auto &it : packed_items) { - packed_weights.push_back(weights[0][it]); - } - std::ostringstream packed_weights_ss; - std::copy(packed_weights.begin(), packed_weights.end() - 1, - std::ostream_iterator(packed_weights_ss, ", ")); - packed_weights_ss << packed_weights.back(); - - int64 total_weights = - std::accumulate(packed_weights.begin(), packed_weights.end(), 0LL); - - LOG(INFO) << "Total value: " << computed_value; - LOG(INFO) << "Packed items: {" << packed_items_ss.str() << "}"; - LOG(INFO) << "Total weight: " << total_weights; - LOG(INFO) << "Packed weights: {" << packed_weights_ss.str() << "}"; -} -} // namespace operations_research - -int main(int argc, char **argv) { - google::InitGoogleLogging(argv[0]); - FLAGS_logtostderr = 1; - operations_research::RunKnapsackExample(); - return EXIT_SUCCESS; -} diff --git a/ortools/algorithms/samples/BUILD b/ortools/algorithms/samples/BUILD new file mode 100644 index 0000000000..a3c7abbe83 --- /dev/null +++ b/ortools/algorithms/samples/BUILD @@ -0,0 +1,15 @@ +cc_binary( + name = "knapsack", + srcs = ["knapsack.cc"], + deps = [ + "//ortools/algorithms:knapsack_solver_lib", + ], +) + +cc_binary( + name = "simple_knapsack_program", + srcs = ["simple_knapsack_program.cc"], + deps = [ + "//ortools/algorithms:knapsack_solver_lib", + ], +)