# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: ortools/constraint_solver/routing_parameters.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2
from ortools.constraint_solver import routing_enums_pb2 as ortools_dot_constraint__solver_dot_routing__enums__pb2
from ortools.constraint_solver import solver_parameters_pb2 as ortools_dot_constraint__solver_dot_solver__parameters__pb2
from ortools.sat import sat_parameters_pb2 as ortools_dot_sat_dot_sat__parameters__pb2
from ortools.util import optional_boolean_pb2 as ortools_dot_util_dot_optional__boolean__pb2


DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n2ortools/constraint_solver/routing_parameters.proto\x12\x13operations_research\x1a\x1egoogle/protobuf/duration.proto\x1a-ortools/constraint_solver/routing_enums.proto\x1a\x31ortools/constraint_solver/solver_parameters.proto\x1a ortools/sat/sat_parameters.proto\x1a#ortools/util/optional_boolean.proto\"\xfa%\n\x17RoutingSearchParameters\x12Q\n\x17\x66irst_solution_strategy\x18\x01 \x01(\x0e\x32\x30.operations_research.FirstSolutionStrategy.Value\x12.\n&use_unfiltered_first_solution_strategy\x18\x02 \x01(\x08\x12\x1f\n\x17savings_neighbors_ratio\x18\x0e \x01(\x01\x12&\n\x1esavings_max_memory_usage_bytes\x18\x17 \x01(\x01\x12 \n\x18savings_add_reverse_arcs\x18\x0f \x01(\x08\x12\x1f\n\x17savings_arc_coefficient\x18\x12 \x01(\x01\x12\x1f\n\x17savings_parallel_routes\x18\x13 \x01(\x08\x12/\n\'cheapest_insertion_farthest_seeds_ratio\x18\x10 \x01(\x01\x12\x39\n1cheapest_insertion_first_solution_neighbors_ratio\x18\x15 \x01(\x01\x12\x37\n/cheapest_insertion_first_solution_min_neighbors\x18, \x01(\x05\x12\x36\n.cheapest_insertion_ls_operator_neighbors_ratio\x18\x1f \x01(\x01\x12\x34\n,cheapest_insertion_ls_operator_min_neighbors\x18- \x01(\x05\x12P\nHcheapest_insertion_first_solution_use_neighbors_ratio_for_initialization\x18. \x01(\x08\x12\x32\n*cheapest_insertion_add_unperformed_entries\x18( \x01(\x08\x12)\n!christofides_use_minimum_matching\x18\x1e \x01(\x08\x12m\n\x16local_search_operators\x18\x03 \x01(\x0b\x32M.operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators\x12\x34\n,use_multi_armed_bandit_concatenate_operators\x18) \x01(\x08\x12?\n7multi_armed_bandit_compound_operator_memory_coefficient\x18* \x01(\x01\x12\x44\n<multi_armed_bandit_compound_operator_exploration_coefficient\x18+ \x01(\x01\x12\x35\n-relocate_expensive_chain_num_arcs_to_consider\x18\x14 \x01(\x05\x12:\n2heuristic_expensive_chain_lns_num_arcs_to_consider\x18  \x01(\x05\x12+\n#heuristic_close_nodes_lns_num_nodes\x18# \x01(\x05\x12W\n\x1alocal_search_metaheuristic\x18\x04 \x01(\x0e\x32\x33.operations_research.LocalSearchMetaheuristic.Value\x12.\n&guided_local_search_lambda_coefficient\x18\x05 \x01(\x01\x12\x1e\n\x16use_depth_first_search\x18\x06 \x01(\x08\x12\x34\n\x06use_cp\x18\x1c \x01(\x0e\x32$.operations_research.OptionalBoolean\x12\x38\n\nuse_cp_sat\x18\x1b \x01(\x0e\x32$.operations_research.OptionalBoolean\x12\x44\n\x16use_generalized_cp_sat\x18/ \x01(\x0e\x32$.operations_research.OptionalBoolean\x12>\n\x0esat_parameters\x18\x30 \x01(\x0b\x32&.operations_research.sat.SatParameters\x12\x63\n\x1c\x63ontinuous_scheduling_solver\x18! \x01(\x0e\x32=.operations_research.RoutingSearchParameters.SchedulingSolver\x12\x66\n\x1fmixed_integer_scheduling_solver\x18\" \x01(\x0e\x32=.operations_research.RoutingSearchParameters.SchedulingSolver\x12\x19\n\x11optimization_step\x18\x07 \x01(\x01\x12&\n\x1enumber_of_solutions_to_collect\x18\x11 \x01(\x05\x12\x16\n\x0esolution_limit\x18\x08 \x01(\x03\x12-\n\ntime_limit\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x31\n\x0elns_time_limit\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12s\n\x1cimprovement_limit_parameters\x18% \x01(\x0b\x32M.operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters\x12\x1c\n\x14use_full_propagation\x18\x0b \x01(\x08\x12\x12\n\nlog_search\x18\r \x01(\x08\x12\x1f\n\x17log_cost_scaling_factor\x18\x16 \x01(\x01\x12\x17\n\x0flog_cost_offset\x18\x1d \x01(\x01\x12\x0f\n\x07log_tag\x18$ \x01(\t\x1a\xd7\x12\n LocalSearchNeighborhoodOperators\x12:\n\x0cuse_relocate\x18\x01 \x01(\x0e\x32$.operations_research.OptionalBoolean\x12?\n\x11use_relocate_pair\x18\x02 \x01(\x0e\x32$.operations_research.OptionalBoolean\x12\x45\n\x17use_light_relocate_pair\x18\x18 \x01(\x0e\x32$.operations_research.OptionalBoolean\x12\x44\n\x16use_relocate_neighbors\x18\x03 \x01(\x0e\x32$.operations_research.OptionalBoolean\x12\x42\n\x14use_relocate_subtrip\x18\x19 \x01(\x0e\x32$.operations_research.OptionalBoolean\x12:\n\x0cuse_exchange\x18\x04 \x01(\x0e\x32$.operations_research.OptionalBoolean\x12?\n\x11use_exchange_pair\x18\x16 \x01(\x0e\x32$.operations_research.OptionalBoolean\x12\x42\n\x14use_exchange_subtrip\x18\x1a \x01(\x0e\x32$.operations_research.OptionalBoolean\x12\x37\n\tuse_cross\x18\x05 \x01(\x0e\x32$.operations_research.OptionalBoolean\x12@\n\x12use_cross_exchange\x18\x06 \x01(\x0e\x32$.operations_research.OptionalBoolean\x12J\n\x1cuse_relocate_expensive_chain\x18\x17 \x01(\x0e\x32$.operations_research.OptionalBoolean\x12\x39\n\x0buse_two_opt\x18\x07 \x01(\x0e\x32$.operations_research.OptionalBoolean\x12\x38\n\nuse_or_opt\x18\x08 \x01(\x0e\x32$.operations_research.OptionalBoolean\x12?\n\x11use_lin_kernighan\x18\t \x01(\x0e\x32$.operations_research.OptionalBoolean\x12\x39\n\x0buse_tsp_opt\x18\n \x01(\x0e\x32$.operations_research.OptionalBoolean\x12=\n\x0fuse_make_active\x18\x0b \x01(\x0e\x32$.operations_research.OptionalBoolean\x12J\n\x1cuse_relocate_and_make_active\x18\x15 \x01(\x0e\x32$.operations_research.OptionalBoolean\x12?\n\x11use_make_inactive\x18\x0c \x01(\x0e\x32$.operations_research.OptionalBoolean\x12\x45\n\x17use_make_chain_inactive\x18\r \x01(\x0e\x32$.operations_research.OptionalBoolean\x12=\n\x0fuse_swap_active\x18\x0e \x01(\x0e\x32$.operations_research.OptionalBoolean\x12\x46\n\x18use_extended_swap_active\x18\x0f \x01(\x0e\x32$.operations_research.OptionalBoolean\x12G\n\x19use_node_pair_swap_active\x18\x14 \x01(\x0e\x32$.operations_research.OptionalBoolean\x12:\n\x0cuse_path_lns\x18\x10 \x01(\x0e\x32$.operations_research.OptionalBoolean\x12?\n\x11use_full_path_lns\x18\x11 \x01(\x0e\x32$.operations_research.OptionalBoolean\x12\x39\n\x0buse_tsp_lns\x18\x12 \x01(\x0e\x32$.operations_research.OptionalBoolean\x12>\n\x10use_inactive_lns\x18\x13 \x01(\x0e\x32$.operations_research.OptionalBoolean\x12T\n&use_global_cheapest_insertion_path_lns\x18\x1b \x01(\x0e\x32$.operations_research.OptionalBoolean\x12S\n%use_local_cheapest_insertion_path_lns\x18\x1c \x01(\x0e\x32$.operations_research.OptionalBoolean\x12l\n>use_relocate_path_global_cheapest_insertion_insert_unperformed\x18! \x01(\x0e\x32$.operations_research.OptionalBoolean\x12_\n1use_global_cheapest_insertion_expensive_chain_lns\x18\x1d \x01(\x0e\x32$.operations_research.OptionalBoolean\x12^\n0use_local_cheapest_insertion_expensive_chain_lns\x18\x1e \x01(\x0e\x32$.operations_research.OptionalBoolean\x12[\n-use_global_cheapest_insertion_close_nodes_lns\x18\x1f \x01(\x0e\x32$.operations_research.OptionalBoolean\x12Z\n,use_local_cheapest_insertion_close_nodes_lns\x18  \x01(\x0e\x32$.operations_research.OptionalBoolean\x1au\n ImprovementSearchLimitParameters\x12$\n\x1cimprovement_rate_coefficient\x18& \x01(\x01\x12+\n#improvement_rate_solutions_distance\x18\' \x01(\x05\"3\n\x10SchedulingSolver\x12\t\n\x05UNSET\x10\x00\x12\x08\n\x04GLOP\x10\x01\x12\n\n\x06\x43P_SAT\x10\x02\"\xa8\x01\n\x16RoutingModelParameters\x12J\n\x11solver_parameters\x18\x01 \x01(\x0b\x32/.operations_research.ConstraintSolverParameters\x12!\n\x19reduce_vehicle_cost_model\x18\x02 \x01(\x08\x12\x1f\n\x17max_callback_cache_size\x18\x03 \x01(\x05\x42I\n#com.google.ortools.constraintsolverP\x01\xaa\x02\x1fGoogle.OrTools.ConstraintSolverb\x06proto3')



_ROUTINGSEARCHPARAMETERS = DESCRIPTOR.message_types_by_name['RoutingSearchParameters']
_ROUTINGSEARCHPARAMETERS_LOCALSEARCHNEIGHBORHOODOPERATORS = _ROUTINGSEARCHPARAMETERS.nested_types_by_name['LocalSearchNeighborhoodOperators']
_ROUTINGSEARCHPARAMETERS_IMPROVEMENTSEARCHLIMITPARAMETERS = _ROUTINGSEARCHPARAMETERS.nested_types_by_name['ImprovementSearchLimitParameters']
_ROUTINGMODELPARAMETERS = DESCRIPTOR.message_types_by_name['RoutingModelParameters']
_ROUTINGSEARCHPARAMETERS_SCHEDULINGSOLVER = _ROUTINGSEARCHPARAMETERS.enum_types_by_name['SchedulingSolver']
RoutingSearchParameters = _reflection.GeneratedProtocolMessageType('RoutingSearchParameters', (_message.Message,), {

  'LocalSearchNeighborhoodOperators' : _reflection.GeneratedProtocolMessageType('LocalSearchNeighborhoodOperators', (_message.Message,), {
    'DESCRIPTOR' : _ROUTINGSEARCHPARAMETERS_LOCALSEARCHNEIGHBORHOODOPERATORS,
    '__module__' : 'ortools.constraint_solver.routing_parameters_pb2'
    # @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
    })
  ,

  'ImprovementSearchLimitParameters' : _reflection.GeneratedProtocolMessageType('ImprovementSearchLimitParameters', (_message.Message,), {
    'DESCRIPTOR' : _ROUTINGSEARCHPARAMETERS_IMPROVEMENTSEARCHLIMITPARAMETERS,
    '__module__' : 'ortools.constraint_solver.routing_parameters_pb2'
    # @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
    })
  ,
  'DESCRIPTOR' : _ROUTINGSEARCHPARAMETERS,
  '__module__' : 'ortools.constraint_solver.routing_parameters_pb2'
  # @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters)
  })
_sym_db.RegisterMessage(RoutingSearchParameters)
_sym_db.RegisterMessage(RoutingSearchParameters.LocalSearchNeighborhoodOperators)
_sym_db.RegisterMessage(RoutingSearchParameters.ImprovementSearchLimitParameters)

RoutingModelParameters = _reflection.GeneratedProtocolMessageType('RoutingModelParameters', (_message.Message,), {
  'DESCRIPTOR' : _ROUTINGMODELPARAMETERS,
  '__module__' : 'ortools.constraint_solver.routing_parameters_pb2'
  # @@protoc_insertion_point(class_scope:operations_research.RoutingModelParameters)
  })
_sym_db.RegisterMessage(RoutingModelParameters)

if _descriptor._USE_C_DESCRIPTORS == False:

  DESCRIPTOR._options = None
  DESCRIPTOR._serialized_options = b'\n#com.google.ortools.constraintsolverP\001\252\002\037Google.OrTools.ConstraintSolver'
  _ROUTINGSEARCHPARAMETERS._serialized_start=277
  _ROUTINGSEARCHPARAMETERS._serialized_end=5135
  _ROUTINGSEARCHPARAMETERS_LOCALSEARCHNEIGHBORHOODOPERATORS._serialized_start=2572
  _ROUTINGSEARCHPARAMETERS_LOCALSEARCHNEIGHBORHOODOPERATORS._serialized_end=4963
  _ROUTINGSEARCHPARAMETERS_IMPROVEMENTSEARCHLIMITPARAMETERS._serialized_start=4965
  _ROUTINGSEARCHPARAMETERS_IMPROVEMENTSEARCHLIMITPARAMETERS._serialized_end=5082
  _ROUTINGSEARCHPARAMETERS_SCHEDULINGSOLVER._serialized_start=5084
  _ROUTINGSEARCHPARAMETERS_SCHEDULINGSOLVER._serialized_end=5135
  _ROUTINGMODELPARAMETERS._serialized_start=5138
  _ROUTINGMODELPARAMETERS._serialized_end=5306
# @@protoc_insertion_point(module_scope)
