// Copyright 2010-2021 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. // This file contains protocol buffers for all parameters of the CP solver. syntax = "proto3"; option java_package = "com.google.ortools.constraintsolver"; option java_multiple_files = true; option csharp_namespace = "Google.OrTools.ConstraintSolver"; package operations_research; // Solver parameters. message ConstraintSolverParameters { // // Internal parameters of the solver. // enum TrailCompression { NO_COMPRESSION = 0; COMPRESS_WITH_ZLIB = 1; }; // This parameter indicates if the solver should compress the trail // during the search. No compression means that the solver will be faster, // but will use more memory. TrailCompression compress_trail = 1; // This parameter indicates the default size of a block of the trail. // Compression applies at the block level. int32 trail_block_size = 2; // When a sum/min/max operation is applied on a large array, this // array is recursively split into blocks of size 'array_split_size'. int32 array_split_size = 3; // // Control naming of the variables.. // // This parameters indicates if the solver should store the names of // the objets it manages. bool store_names = 4; // Create names for cast variables. bool name_cast_variables = 5; // Should anonymous variables be given a name. bool name_all_variables = 6; // // Control monitoring of the solver and the model. // // Activate propagation profiling. bool profile_propagation = 7; // Export propagation profiling data to file. string profile_file = 8; // Activate local search profiling. bool profile_local_search = 16; // Print local search profiling data after solving. bool print_local_search_profile = 17; // Activate propagate tracing. bool trace_propagation = 9; // Trace search. bool trace_search = 10; // Print the model before solving. bool print_model = 11; // Print model statistics before solving. bool print_model_stats = 12; // Print added constraints. bool print_added_constraints = 13; // // Control search. // // Disable solving. bool disable_solve = 15; // The following flags are meant for internal use only. // // Control the implementation of the table constraint. // bool use_small_table = 101; reserved 100, 102, 103, 104; // // Control the propagation of the cumulative constraint. // bool use_cumulative_edge_finder = 105; bool use_cumulative_time_table = 106; bool use_cumulative_time_table_sync = 112; bool use_sequence_high_demand_tasks = 107; bool use_all_possible_disjunctions = 108; int32 max_edge_finder_size = 109; // // Control the propagation of the diffn constraint. // bool diffn_use_cumulative = 110; // // Control the implementation of the element constraint. // bool use_element_rmq = 111; // // Skip locally optimal pairs of paths in PathOperators. Setting this // parameter to true might skip valid neighbors if there are constraints // linking paths together (such as precedences). In any other case this // should only speed up the search without omitting any neighbors. // bool skip_locally_optimal_paths = 113; // // Control the behavior of local search. // int32 check_solution_period = 114; }