1// Copyright 2010-2021 Google LLC 2// Licensed under the Apache License, Version 2.0 (the "License"); 3// you may not use this file except in compliance with the License. 4// You may obtain a copy of the License at 5// 6// http://www.apache.org/licenses/LICENSE-2.0 7// 8// Unless required by applicable law or agreed to in writing, software 9// distributed under the License is distributed on an "AS IS" BASIS, 10// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11// See the License for the specific language governing permissions and 12// limitations under the License. 13 14// This file contains protocol buffers for all parameters of the CP solver. 15 16syntax = "proto3"; 17 18option java_package = "com.google.ortools.constraintsolver"; 19option java_multiple_files = true; 20option csharp_namespace = "Google.OrTools.ConstraintSolver"; 21 22package operations_research; 23 24// Solver parameters. 25message ConstraintSolverParameters { 26 // 27 // Internal parameters of the solver. 28 // 29 enum TrailCompression { 30 NO_COMPRESSION = 0; 31 COMPRESS_WITH_ZLIB = 1; 32 }; 33 34 // This parameter indicates if the solver should compress the trail 35 // during the search. No compression means that the solver will be faster, 36 // but will use more memory. 37 TrailCompression compress_trail = 1; 38 39 // This parameter indicates the default size of a block of the trail. 40 // Compression applies at the block level. 41 int32 trail_block_size = 2; 42 43 // When a sum/min/max operation is applied on a large array, this 44 // array is recursively split into blocks of size 'array_split_size'. 45 int32 array_split_size = 3; 46 47 // 48 // Control naming of the variables.. 49 // 50 51 // This parameters indicates if the solver should store the names of 52 // the objets it manages. 53 bool store_names = 4; 54 55 // Create names for cast variables. 56 bool name_cast_variables = 5; 57 58 // Should anonymous variables be given a name. 59 bool name_all_variables = 6; 60 61 // 62 // Control monitoring of the solver and the model. 63 // 64 65 // Activate propagation profiling. 66 bool profile_propagation = 7; 67 68 // Export propagation profiling data to file. 69 string profile_file = 8; 70 71 // Activate local search profiling. 72 bool profile_local_search = 16; 73 74 // Print local search profiling data after solving. 75 bool print_local_search_profile = 17; 76 77 // Activate propagate tracing. 78 bool trace_propagation = 9; 79 80 // Trace search. 81 bool trace_search = 10; 82 83 // Print the model before solving. 84 bool print_model = 11; 85 86 // Print model statistics before solving. 87 bool print_model_stats = 12; 88 89 // Print added constraints. 90 bool print_added_constraints = 13; 91 92 // 93 // Control search. 94 // 95 96 // Disable solving. 97 98 bool disable_solve = 15; 99 100 // The following flags are meant for internal use only. 101 102 // 103 // Control the implementation of the table constraint. 104 // 105 bool use_small_table = 101; 106 reserved 100, 102, 103, 104; 107 108 // 109 // Control the propagation of the cumulative constraint. 110 // 111 bool use_cumulative_edge_finder = 105; 112 bool use_cumulative_time_table = 106; 113 bool use_cumulative_time_table_sync = 112; 114 bool use_sequence_high_demand_tasks = 107; 115 bool use_all_possible_disjunctions = 108; 116 int32 max_edge_finder_size = 109; 117 118 // 119 // Control the propagation of the diffn constraint. 120 // 121 bool diffn_use_cumulative = 110; 122 123 // 124 // Control the implementation of the element constraint. 125 // 126 bool use_element_rmq = 111; 127 128 // 129 // Skip locally optimal pairs of paths in PathOperators. Setting this 130 // parameter to true might skip valid neighbors if there are constraints 131 // linking paths together (such as precedences). In any other case this 132 // should only speed up the search without omitting any neighbors. 133 // 134 bool skip_locally_optimal_paths = 113; 135 136 // 137 // Control the behavior of local search. 138 // 139 int32 check_solution_period = 114; 140} 141