Files
ortools-clone/ortools/constraint_solver/solver_parameters.proto
Corentin Le Molgat a66a6daac7 Bump Copyright to 2025
2025-01-10 11:35:44 +01:00

141 lines
3.8 KiB
Protocol Buffer

// Copyright 2010-2025 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;
}