ortools.sat.sat_parameters_pb2

Generated protocol buffer code.

 1# -*- coding: utf-8 -*-
 2# Generated by the protocol buffer compiler.  DO NOT EDIT!
 3# source: ortools/sat/sat_parameters.proto
 4# Protobuf Python Version: 5.26.1
 5"""Generated protocol buffer code."""
 6from google.protobuf import descriptor as _descriptor
 7from google.protobuf import descriptor_pool as _descriptor_pool
 8from google.protobuf import symbol_database as _symbol_database
 9from google.protobuf.internal import builder as _builder
10# @@protoc_insertion_point(imports)
11
12_sym_db = _symbol_database.Default()
13
14
15
16
17DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n ortools/sat/sat_parameters.proto\x12\x17operations_research.sat\"\xc2\x62\n\rSatParameters\x12\x0f\n\x04name\x18\xab\x01 \x01(\t:\x00\x12`\n\x18preferred_variable_order\x18\x01 \x01(\x0e\x32\x34.operations_research.sat.SatParameters.VariableOrder:\x08IN_ORDER\x12Y\n\x10initial_polarity\x18\x02 \x01(\x0e\x32/.operations_research.sat.SatParameters.Polarity:\x0ePOLARITY_FALSE\x12\x1e\n\x10use_phase_saving\x18, \x01(\x08:\x04true\x12)\n\x1apolarity_rephase_increment\x18\xa8\x01 \x01(\x05:\x04\x31\x30\x30\x30\x12 \n\x15random_polarity_ratio\x18- \x01(\x01:\x01\x30\x12 \n\x15random_branches_ratio\x18  \x01(\x01:\x01\x30\x12!\n\x12use_erwa_heuristic\x18K \x01(\x08:\x05\x66\x61lse\x12%\n\x1ainitial_variables_activity\x18L \x01(\x01:\x01\x30\x12\x36\n\'also_bump_variables_in_conflict_reasons\x18M \x01(\x08:\x05\x66\x61lse\x12o\n\x16minimization_algorithm\x18\x04 \x01(\x0e\x32\x44.operations_research.sat.SatParameters.ConflictMinimizationAlgorithm:\tRECURSIVE\x12\x82\x01\n\x1d\x62inary_minimization_algorithm\x18\" \x01(\x0e\x32@.operations_research.sat.SatParameters.BinaryMinizationAlgorithm:\x19\x42INARY_MINIMIZATION_FIRST\x12\x32\n$subsumption_during_conflict_analysis\x18\x38 \x01(\x08:\x04true\x12$\n\x15\x63lause_cleanup_period\x18\x0b \x01(\x05:\x05\x31\x30\x30\x30\x30\x12 \n\x15\x63lause_cleanup_target\x18\r \x01(\x05:\x01\x30\x12\"\n\x14\x63lause_cleanup_ratio\x18\xbe\x01 \x01(\x01:\x03\x30.5\x12k\n\x19\x63lause_cleanup_protection\x18: \x01(\x0e\x32\x37.operations_research.sat.SatParameters.ClauseProtection:\x0fPROTECTION_NONE\x12#\n\x18\x63lause_cleanup_lbd_bound\x18; \x01(\x05:\x01\x35\x12g\n\x17\x63lause_cleanup_ordering\x18< \x01(\x0e\x32\x35.operations_research.sat.SatParameters.ClauseOrdering:\x0f\x43LAUSE_ACTIVITY\x12!\n\x14pb_cleanup_increment\x18. \x01(\x05:\x03\x32\x30\x30\x12\x1d\n\x10pb_cleanup_ratio\x18/ \x01(\x01:\x03\x30.5\x12$\n\x17variable_activity_decay\x18\x0f \x01(\x01:\x03\x30.8\x12+\n\x1bmax_variable_activity_value\x18\x10 \x01(\x01:\x06\x31\x65+100\x12\x1f\n\x11glucose_max_decay\x18\x16 \x01(\x01:\x04\x30.95\x12%\n\x17glucose_decay_increment\x18\x17 \x01(\x01:\x04\x30.01\x12,\n\x1eglucose_decay_increment_period\x18\x18 \x01(\x05:\x04\x35\x30\x30\x30\x12$\n\x15\x63lause_activity_decay\x18\x11 \x01(\x01:\x05\x30.999\x12(\n\x19max_clause_activity_value\x18\x12 \x01(\x01:\x05\x31\x65+20\x12S\n\x12restart_algorithms\x18= \x03(\x0e\x32\x37.operations_research.sat.SatParameters.RestartAlgorithm\x12\x65\n\x1a\x64\x65\x66\x61ult_restart_algorithms\x18\x46 \x01(\t:ALUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART\x12\x1a\n\x0erestart_period\x18\x1e \x01(\x05:\x02\x35\x30\x12\'\n\x1brestart_running_window_size\x18> \x01(\x05:\x02\x35\x30\x12#\n\x18restart_dl_average_ratio\x18? \x01(\x01:\x01\x31\x12$\n\x19restart_lbd_average_ratio\x18G \x01(\x01:\x01\x31\x12#\n\x14use_blocking_restart\x18@ \x01(\x08:\x05\x66\x61lse\x12*\n\x1c\x62locking_restart_window_size\x18\x41 \x01(\x05:\x04\x35\x30\x30\x30\x12(\n\x1b\x62locking_restart_multiplier\x18\x42 \x01(\x01:\x03\x31.4\x12\x30\n%num_conflicts_before_strategy_changes\x18\x44 \x01(\x05:\x01\x30\x12)\n\x1estrategy_change_increase_ratio\x18\x45 \x01(\x01:\x01\x30\x12 \n\x13max_time_in_seconds\x18$ \x01(\x01:\x03inf\x12#\n\x16max_deterministic_time\x18\x43 \x01(\x01:\x03inf\x12)\n\x1dmax_num_deterministic_batches\x18\xa3\x02 \x01(\x05:\x01\x30\x12\x34\n\x17max_number_of_conflicts\x18% \x01(\x03:\x13\x39\x32\x32\x33\x33\x37\x32\x30\x33\x36\x38\x35\x34\x37\x37\x35\x38\x30\x37\x12\x1f\n\x10max_memory_in_mb\x18( \x01(\x03:\x05\x31\x30\x30\x30\x30\x12#\n\x12\x61\x62solute_gap_limit\x18\x9f\x01 \x01(\x01:\x06\x30.0001\x12\x1e\n\x12relative_gap_limit\x18\xa0\x01 \x01(\x01:\x01\x30\x12\x16\n\x0brandom_seed\x18\x1f \x01(\x05:\x01\x31\x12)\n\x19permute_variable_randomly\x18\xb2\x01 \x01(\x08:\x05\x66\x61lse\x12\x31\n!permute_presolve_constraint_order\x18\xb3\x01 \x01(\x08:\x05\x66\x61lse\x12\x1f\n\x0fuse_absl_random\x18\xb4\x01 \x01(\x08:\x05\x66\x61lse\x12\"\n\x13log_search_progress\x18) \x01(\x08:\x05\x66\x61lse\x12(\n\x18log_subsolver_statistics\x18\xbd\x01 \x01(\x08:\x05\x66\x61lse\x12\x15\n\nlog_prefix\x18\xb9\x01 \x01(\t:\x00\x12\x1c\n\rlog_to_stdout\x18\xba\x01 \x01(\x08:\x04true\x12\x1f\n\x0flog_to_response\x18\xbb\x01 \x01(\x08:\x05\x66\x61lse\x12 \n\x11use_pb_resolution\x18+ \x01(\x08:\x05\x66\x61lse\x12\x36\n\'minimize_reduction_during_pb_resolution\x18\x30 \x01(\x08:\x05\x66\x61lse\x12,\n\x1e\x63ount_assumption_levels_in_lbd\x18\x31 \x01(\x08:\x04true\x12#\n\x16presolve_bve_threshold\x18\x36 \x01(\x05:\x03\x35\x30\x30\x12%\n\x1apresolve_bve_clause_weight\x18\x37 \x01(\x05:\x01\x33\x12,\n probing_deterministic_time_limit\x18\xe2\x01 \x01(\x01:\x01\x31\x12\x35\n)presolve_probing_deterministic_time_limit\x18\x39 \x01(\x01:\x02\x33\x30\x12%\n\x17presolve_blocked_clause\x18X \x01(\x08:\x04true\x12\x1e\n\x10presolve_use_bva\x18H \x01(\x08:\x04true\x12!\n\x16presolve_bva_threshold\x18I \x01(\x05:\x01\x31\x12#\n\x17max_presolve_iterations\x18\x8a\x01 \x01(\x05:\x01\x33\x12\x1f\n\x11\x63p_model_presolve\x18V \x01(\x08:\x04true\x12!\n\x16\x63p_model_probing_level\x18n \x01(\x05:\x01\x32\x12\'\n\x19\x63p_model_use_sat_presolve\x18] \x01(\x08:\x04true\x12&\n\x16\x64\x65tect_table_with_cost\x18\xd8\x01 \x01(\x08:\x05\x66\x61lse\x12#\n\x17table_compression_level\x18\xd9\x01 \x01(\x05:\x01\x32\x12*\n\x1a\x65xpand_alldiff_constraints\x18\xaa\x01 \x01(\x08:\x05\x66\x61lse\x12+\n\x1c\x65xpand_reservoir_constraints\x18\xb6\x01 \x01(\x08:\x04true\x12.\n\x1e\x65xpand_reservoir_using_circuit\x18\xa0\x02 \x01(\x08:\x05\x66\x61lse\x12.\n\x1e\x65ncode_cumulative_as_reservoir\x18\x9f\x02 \x01(\x08:\x05\x66\x61lse\x12*\n\x1emax_lin_max_size_for_expansion\x18\x98\x02 \x01(\x05:\x01\x30\x12,\n\x1c\x64isable_constraint_expansion\x18\xb5\x01 \x01(\x08:\x05\x66\x61lse\x12=\n-encode_complex_linear_constraint_with_integer\x18\xdf\x01 \x01(\x08:\x05\x66\x61lse\x12\x33\n\x1bmerge_no_overlap_work_limit\x18\x91\x01 \x01(\x01:\r1000000000000\x12\x30\n\x1cmerge_at_most_one_work_limit\x18\x92\x01 \x01(\x01:\t100000000\x12\'\n\x1bpresolve_substitution_level\x18\x93\x01 \x01(\x05:\x01\x31\x12\x34\n$presolve_extract_integer_enforcement\x18\xae\x01 \x01(\x08:\x05\x66\x61lse\x12\x31\n\x1dpresolve_inclusion_work_limit\x18\xc9\x01 \x01(\x03:\t100000000\x12\x1b\n\x0cignore_names\x18\xca\x01 \x01(\x08:\x04true\x12\x1e\n\x0finfer_all_diffs\x18\xe9\x01 \x01(\x08:\x04true\x12&\n\x17\x66ind_big_linear_overlap\x18\xea\x01 \x01(\x08:\x04true\x12#\n\x14use_sat_inprocessing\x18\xa3\x01 \x01(\x08:\x04true\x12&\n\x18inprocessing_dtime_ratio\x18\x91\x02 \x01(\x01:\x03\x30.2\x12&\n\x1ainprocessing_probing_dtime\x18\x92\x02 \x01(\x01:\x01\x31\x12+\n\x1finprocessing_minimization_dtime\x18\x93\x02 \x01(\x01:\x01\x31\x12\x17\n\x0bnum_workers\x18\xce\x01 \x01(\x05:\x01\x30\x12\x1d\n\x12num_search_workers\x18\x64 \x01(\x05:\x01\x30\x12\x1f\n\x13num_full_subsolvers\x18\xa6\x02 \x01(\x05:\x01\x30\x12\x13\n\nsubsolvers\x18\xcf\x01 \x03(\t\x12\x19\n\x10\x65xtra_subsolvers\x18\xdb\x01 \x03(\t\x12\x1a\n\x11ignore_subsolvers\x18\xd1\x01 \x03(\t\x12\x1a\n\x11\x66ilter_subsolvers\x18\xa5\x02 \x03(\t\x12\x41\n\x10subsolver_params\x18\xd2\x01 \x03(\x0b\x32&.operations_research.sat.SatParameters\x12!\n\x11interleave_search\x18\x88\x01 \x01(\x08:\x05\x66\x61lse\x12!\n\x15interleave_batch_size\x18\x86\x01 \x01(\x05:\x01\x30\x12$\n\x16share_objective_bounds\x18q \x01(\x08:\x04true\x12%\n\x17share_level_zero_bounds\x18r \x01(\x08:\x04true\x12#\n\x14share_binary_clauses\x18\xcb\x01 \x01(\x08:\x04true\x12\"\n\x12share_glue_clauses\x18\x9d\x02 \x01(\x08:\x05\x66\x61lse\x12\x30\n debug_postsolve_with_full_solver\x18\xa2\x01 \x01(\x08:\x05\x66\x61lse\x12-\n!debug_max_num_presolve_operations\x18\x97\x01 \x01(\x05:\x01\x30\x12\'\n\x17\x64\x65\x62ug_crash_on_bad_hint\x18\xc3\x01 \x01(\x08:\x05\x66\x61lse\x12$\n\x16use_optimization_hints\x18# \x01(\x08:\x04true\x12\"\n\x17\x63ore_minimization_level\x18\x32 \x01(\x05:\x01\x32\x12!\n\x13\x66ind_multiple_cores\x18T \x01(\x08:\x04true\x12 \n\x12\x63over_optimization\x18Y \x01(\x08:\x04true\x12x\n\x18max_sat_assumption_order\x18\x33 \x01(\x0e\x32<.operations_research.sat.SatParameters.MaxSatAssumptionOrder:\x18\x44\x45\x46\x41ULT_ASSUMPTION_ORDER\x12/\n max_sat_reverse_assumption_order\x18\x34 \x01(\x08:\x05\x66\x61lse\x12|\n\x16max_sat_stratification\x18\x35 \x01(\x0e\x32\x44.operations_research.sat.SatParameters.MaxSatStratificationAlgorithm:\x16STRATIFICATION_DESCENT\x12.\n!propagation_loop_detection_factor\x18\xdd\x01 \x01(\x01:\x02\x31\x30\x12\x37\n)use_precedences_in_disjunctive_constraint\x18J \x01(\x08:\x04true\x12\x42\n5max_size_to_create_precedence_literals_in_disjunctive\x18\xe5\x01 \x01(\x05:\x02\x36\x30\x12\x35\n%use_strong_propagation_in_disjunctive\x18\xe6\x01 \x01(\x08:\x05\x66\x61lse\x12\x35\n%use_dynamic_precedence_in_disjunctive\x18\x87\x02 \x01(\x08:\x05\x66\x61lse\x12\x34\n$use_dynamic_precedence_in_cumulative\x18\x8c\x02 \x01(\x08:\x05\x66\x61lse\x12\x31\n\"use_overload_checker_in_cumulative\x18N \x01(\x08:\x05\x66\x61lse\x12\x37\n\'use_conservative_scale_overload_checker\x18\x9e\x02 \x01(\x08:\x05\x66\x61lse\x12\x37\n(use_timetable_edge_finding_in_cumulative\x18O \x01(\x08:\x05\x66\x61lse\x12:\n,max_num_intervals_for_timetable_edge_finding\x18\x84\x02 \x01(\x05:\x03\x31\x30\x30\x12\x32\n\"use_hard_precedences_in_cumulative\x18\xd7\x01 \x01(\x08:\x05\x66\x61lse\x12\'\n\x17\x65xploit_all_precedences\x18\xdc\x01 \x01(\x08:\x05\x66\x61lse\x12\x36\n(use_disjunctive_constraint_in_cumulative\x18P \x01(\x08:\x04true\x12\x30\n use_timetabling_in_no_overlap_2d\x18\xc8\x01 \x01(\x08:\x05\x66\x61lse\x12\x38\n(use_energetic_reasoning_in_no_overlap_2d\x18\xd5\x01 \x01(\x08:\x05\x66\x61lse\x12=\n-use_area_energetic_reasoning_in_no_overlap_2d\x18\x8f\x02 \x01(\x08:\x05\x66\x61lse\x12<\n-max_pairs_pairwise_reasoning_in_no_overlap_2d\x18\x94\x02 \x01(\x05:\x04\x31\x32\x35\x30\x12-\n\x1euse_dual_scheduling_heuristics\x18\xd6\x01 \x01(\x08:\x04true\x12\x62\n\x10search_branching\x18R \x01(\x0e\x32\x36.operations_research.sat.SatParameters.SearchBranching:\x10\x41UTOMATIC_SEARCH\x12 \n\x13hint_conflict_limit\x18\x99\x01 \x01(\x05:\x02\x31\x30\x12\x1b\n\x0brepair_hint\x18\xa7\x01 \x01(\x08:\x05\x66\x61lse\x12\x33\n#fix_variables_to_their_hinted_value\x18\xc0\x01 \x01(\x08:\x05\x66\x61lse\x12\"\n\x12use_probing_search\x18\xb0\x01 \x01(\x08:\x05\x66\x61lse\x12#\n\x14use_extended_probing\x18\x8d\x02 \x01(\x08:\x04true\x12.\n\x1eprobing_num_combinations_limit\x18\x90\x02 \x01(\x05:\x05\x32\x30\x30\x30\x30\x12,\n\x1duse_shaving_in_probing_search\x18\xcc\x01 \x01(\x08:\x04true\x12\x31\n!shaving_search_deterministic_time\x18\xcd\x01 \x01(\x01:\x05\x30.001\x12%\n\x18shaving_search_threshold\x18\xa2\x02 \x01(\x03:\x02\x36\x34\x12\'\n\x17use_objective_lb_search\x18\xe4\x01 \x01(\x08:\x05\x66\x61lse\x12,\n\x1cuse_objective_shaving_search\x18\xfd\x01 \x01(\x08:\x05\x66\x61lse\x12,\n\x1cuse_variables_shaving_search\x18\xa1\x02 \x01(\x08:\x05\x66\x61lse\x12.\n!pseudo_cost_reliability_threshold\x18{ \x01(\x03:\x03\x31\x30\x30\x12!\n\x12optimize_with_core\x18S \x01(\x08:\x05\x66\x61lse\x12,\n\x1coptimize_with_lb_tree_search\x18\xbc\x01 \x01(\x08:\x05\x66\x61lse\x12/\n\x1fsave_lp_basis_in_lb_tree_search\x18\x9c\x02 \x01(\x08:\x05\x66\x61lse\x12\'\n\x1b\x62inary_search_num_conflicts\x18\x63 \x01(\x05:\x02-1\x12#\n\x14optimize_with_max_hs\x18U \x01(\x08:\x05\x66\x61lse\x12#\n\x14use_feasibility_jump\x18\x89\x02 \x01(\x08:\x04true\x12\x1b\n\x0buse_ls_only\x18\xf0\x01 \x01(\x08:\x05\x66\x61lse\x12%\n\x16\x66\x65\x61sibility_jump_decay\x18\xf2\x01 \x01(\x01:\x04\x30.95\x12\x30\n$feasibility_jump_linearization_level\x18\x81\x02 \x01(\x05:\x01\x32\x12+\n\x1f\x66\x65\x61sibility_jump_restart_factor\x18\x82\x02 \x01(\x05:\x01\x31\x12*\n\x1c\x66\x65\x61sibility_jump_batch_dtime\x18\xa4\x02 \x01(\x01:\x03\x30.1\x12=\n.feasibility_jump_var_randomization_probability\x18\xf7\x01 \x01(\x01:\x04\x30.05\x12;\n-feasibility_jump_var_perburbation_range_ratio\x18\xf8\x01 \x01(\x01:\x03\x30.2\x12/\n feasibility_jump_enable_restarts\x18\xfa\x01 \x01(\x08:\x04true\x12;\n-feasibility_jump_max_expanded_constraint_size\x18\x88\x02 \x01(\x05:\x03\x35\x30\x30\x12\x1c\n\x10num_violation_ls\x18\xf4\x01 \x01(\x05:\x01\x30\x12.\n violation_ls_perturbation_period\x18\xf9\x01 \x01(\x05:\x03\x31\x30\x30\x12\x34\n&violation_ls_compound_move_probability\x18\x83\x02 \x01(\x01:\x03\x30.5\x12#\n\x17shared_tree_num_workers\x18\xeb\x01 \x01(\x05:\x01\x30\x12&\n\x16use_shared_tree_search\x18\xec\x01 \x01(\x08:\x05\x66\x61lse\x12<\n.shared_tree_worker_objective_split_probability\x18\xed\x01 \x01(\x01:\x03\x30.5\x12\x37\n+shared_tree_worker_min_restarts_per_subtree\x18\x9a\x02 \x01(\x05:\x01\x31\x12\x36\n\'shared_tree_worker_enable_trail_sharing\x18\xa7\x02 \x01(\x08:\x04true\x12.\n\"shared_tree_open_leaves_per_worker\x18\x99\x02 \x01(\x01:\x01\x32\x12\x31\n shared_tree_max_nodes_per_worker\x18\xee\x01 \x01(\x05:\x06\x31\x30\x30\x30\x30\x30\x12x\n\x1ashared_tree_split_strategy\x18\xef\x01 \x01(\x0e\x32>.operations_research.sat.SatParameters.SharedTreeSplitStrategy:\x13SPLIT_STRATEGY_AUTO\x12&\n\x17\x65numerate_all_solutions\x18W \x01(\x08:\x05\x66\x61lse\x12\x37\n\'keep_all_feasible_solutions_in_presolve\x18\xad\x01 \x01(\x08:\x05\x66\x61lse\x12\x32\n\"fill_tightened_domains_in_response\x18\x84\x01 \x01(\x08:\x05\x66\x61lse\x12\x35\n%fill_additional_solutions_in_response\x18\xc2\x01 \x01(\x08:\x05\x66\x61lse\x12\'\n\x19instantiate_all_variables\x18j \x01(\x08:\x04true\x12\x36\n(auto_detect_greater_than_at_least_one_of\x18_ \x01(\x08:\x04true\x12(\n\x19stop_after_first_solution\x18\x62 \x01(\x08:\x05\x66\x61lse\x12#\n\x13stop_after_presolve\x18\x95\x01 \x01(\x08:\x05\x66\x61lse\x12+\n\x1bstop_after_root_propagation\x18\xfc\x01 \x01(\x08:\x05\x66\x61lse\x12\x16\n\x07use_lns\x18\x9b\x02 \x01(\x08:\x04true\x12\x1b\n\x0cuse_lns_only\x18\x65 \x01(\x08:\x05\x66\x61lse\x12\x1e\n\x12solution_pool_size\x18\xc1\x01 \x01(\x05:\x01\x33\x12\x1b\n\x0cuse_rins_lns\x18\x81\x01 \x01(\x08:\x04true\x12#\n\x14use_feasibility_pump\x18\xa4\x01 \x01(\x08:\x04true\x12 \n\x10use_lb_relax_lns\x18\xff\x01 \x01(\x08:\x05\x66\x61lse\x12\x63\n\x0b\x66p_rounding\x18\xa5\x01 \x01(\x0e\x32\x37.operations_research.sat.SatParameters.FPRoundingMethod:\x14PROPAGATION_ASSISTED\x12$\n\x14\x64iversify_lns_params\x18\x89\x01 \x01(\x08:\x05\x66\x61lse\x12\x1f\n\x10randomize_search\x18g \x01(\x08:\x05\x66\x61lse\x12+\n search_random_variable_pool_size\x18h \x01(\x03:\x01\x30\x12+\n\x1bpush_all_tasks_toward_start\x18\x86\x02 \x01(\x08:\x05\x66\x61lse\x12%\n\x16use_optional_variables\x18l \x01(\x08:\x05\x66\x61lse\x12!\n\x13use_exact_lp_reason\x18m \x01(\x08:\x04true\x12\'\n\x17use_combined_no_overlap\x18\x85\x01 \x01(\x08:\x05\x66\x61lse\x12*\n\x1e\x61t_most_one_max_expansion_size\x18\x8e\x02 \x01(\x05:\x01\x33\x12\"\n\x13\x63\x61tch_sigint_signal\x18\x87\x01 \x01(\x08:\x04true\x12!\n\x12use_implied_bounds\x18\x90\x01 \x01(\x08:\x04true\x12\"\n\x12polish_lp_solution\x18\xaf\x01 \x01(\x08:\x05\x66\x61lse\x12#\n\x13lp_primal_tolerance\x18\x8a\x02 \x01(\x01:\x05\x31\x65-07\x12!\n\x11lp_dual_tolerance\x18\x8b\x02 \x01(\x01:\x05\x31\x65-07\x12 \n\x11\x63onvert_intervals\x18\xb1\x01 \x01(\x08:\x04true\x12\x1a\n\x0esymmetry_level\x18\xb7\x01 \x01(\x05:\x01\x32\x12%\n\x16new_linear_propagation\x18\xe0\x01 \x01(\x08:\x04true\x12\x1f\n\x11linear_split_size\x18\x80\x02 \x01(\x05:\x03\x31\x30\x30\x12\x1e\n\x13linearization_level\x18Z \x01(\x05:\x01\x31\x12!\n\x16\x62oolean_encoding_level\x18k \x01(\x05:\x01\x31\x12=\n0max_domain_size_when_encoding_eq_neq_constraints\x18\xbf\x01 \x01(\x05:\x02\x31\x36\x12\x1b\n\x0cmax_num_cuts\x18[ \x01(\x05:\x05\x31\x30\x30\x30\x30\x12\x15\n\tcut_level\x18\xc4\x01 \x01(\x05:\x01\x31\x12*\n\x1bonly_add_cuts_at_level_zero\x18\\ \x01(\x08:\x05\x66\x61lse\x12!\n\x11\x61\x64\x64_objective_cut\x18\xc5\x01 \x01(\x08:\x05\x66\x61lse\x12\x19\n\x0b\x61\x64\x64_cg_cuts\x18u \x01(\x08:\x04true\x12\x1a\n\x0c\x61\x64\x64_mir_cuts\x18x \x01(\x08:\x04true\x12!\n\x12\x61\x64\x64_zero_half_cuts\x18\xa9\x01 \x01(\x08:\x04true\x12\x1e\n\x0f\x61\x64\x64_clique_cuts\x18\xac\x01 \x01(\x08:\x04true\x12\x1b\n\x0c\x61\x64\x64_rlt_cuts\x18\x97\x02 \x01(\x08:\x04true\x12\"\n\x15max_all_diff_cut_size\x18\x94\x01 \x01(\x05:\x02\x36\x34\x12\x1f\n\x10\x61\x64\x64_lin_max_cuts\x18\x98\x01 \x01(\x08:\x04true\x12)\n\x1cmax_integer_rounding_scaling\x18w \x01(\x05:\x03\x36\x30\x30\x12\'\n\x19\x61\x64\x64_lp_constraints_lazily\x18p \x01(\x08:\x04true\x12!\n\x12root_lp_iterations\x18\xe3\x01 \x01(\x05:\x04\x32\x30\x30\x30\x12\x32\n$min_orthogonality_for_lp_constraints\x18s \x01(\x01:\x04\x30.05\x12(\n\x1cmax_cut_rounds_at_level_zero\x18\x9a\x01 \x01(\x05:\x01\x31\x12+\n\x1emax_consecutive_inactive_count\x18y \x01(\x05:\x03\x31\x30\x30\x12\x30\n\x1a\x63ut_max_active_count_value\x18\x9b\x01 \x01(\x01:\x0b\x31\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x12$\n\x16\x63ut_active_count_decay\x18\x9c\x01 \x01(\x01:\x03\x30.8\x12!\n\x12\x63ut_cleanup_target\x18\x9d\x01 \x01(\x05:\x04\x31\x30\x30\x30\x12&\n\x1anew_constraints_batch_size\x18z \x01(\x05:\x02\x35\x30\x12)\n\x1b\x65xploit_integer_lp_solution\x18^ \x01(\x08:\x04true\x12%\n\x17\x65xploit_all_lp_solution\x18t \x01(\x08:\x04true\x12%\n\x15\x65xploit_best_solution\x18\x82\x01 \x01(\x08:\x05\x66\x61lse\x12+\n\x1b\x65xploit_relaxation_solution\x18\xa1\x01 \x01(\x08:\x05\x66\x61lse\x12 \n\x11\x65xploit_objective\x18\x83\x01 \x01(\x08:\x04true\x12)\n\x19\x64\x65tect_linearized_product\x18\x95\x02 \x01(\x08:\x05\x66\x61lse\x12\x1f\n\rmip_max_bound\x18| \x01(\x01:\x08\x31\x30\x30\x30\x30\x30\x30\x30\x12\x1a\n\x0fmip_var_scaling\x18} \x01(\x01:\x01\x31\x12&\n\x16mip_scale_large_domain\x18\xe1\x01 \x01(\x08:\x05\x66\x61lse\x12\x30\n!mip_automatically_scale_variables\x18\xa6\x01 \x01(\x08:\x04true\x12\x1d\n\ronly_solve_ip\x18\xde\x01 \x01(\x08:\x05\x66\x61lse\x12#\n\x14mip_wanted_precision\x18~ \x01(\x01:\x05\x31\x65-06\x12%\n\x19mip_max_activity_exponent\x18\x7f \x01(\x05:\x02\x35\x33\x12$\n\x13mip_check_precision\x18\x80\x01 \x01(\x01:\x06\x30.0001\x12/\n mip_compute_true_objective_bound\x18\xc6\x01 \x01(\x08:\x04true\x12\'\n\x17mip_max_valid_magnitude\x18\xc7\x01 \x01(\x01:\x05\x31\x65+20\x12;\n+mip_treat_high_magnitude_bounds_as_infinity\x18\x96\x02 \x01(\x08:\x05\x66\x61lse\x12\"\n\x12mip_drop_tolerance\x18\xe8\x01 \x01(\x01:\x05\x31\x65-16\x12\x1e\n\x12mip_presolve_level\x18\x85\x02 \x01(\x05:\x01\x32\"H\n\rVariableOrder\x12\x0c\n\x08IN_ORDER\x10\x00\x12\x14\n\x10IN_REVERSE_ORDER\x10\x01\x12\x13\n\x0fIN_RANDOM_ORDER\x10\x02\"F\n\x08Polarity\x12\x11\n\rPOLARITY_TRUE\x10\x00\x12\x12\n\x0ePOLARITY_FALSE\x10\x01\x12\x13\n\x0fPOLARITY_RANDOM\x10\x02\"V\n\x1d\x43onflictMinimizationAlgorithm\x12\x08\n\x04NONE\x10\x00\x12\n\n\x06SIMPLE\x10\x01\x12\r\n\tRECURSIVE\x10\x02\x12\x10\n\x0c\x45XPERIMENTAL\x10\x03\"\xe0\x01\n\x19\x42inaryMinizationAlgorithm\x12\x1a\n\x16NO_BINARY_MINIMIZATION\x10\x00\x12\x1d\n\x19\x42INARY_MINIMIZATION_FIRST\x10\x01\x12\x37\n3BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION\x10\x04\x12)\n%BINARY_MINIMIZATION_WITH_REACHABILITY\x10\x02\x12$\n EXPERIMENTAL_BINARY_MINIMIZATION\x10\x03\"R\n\x10\x43lauseProtection\x12\x13\n\x0fPROTECTION_NONE\x10\x00\x12\x15\n\x11PROTECTION_ALWAYS\x10\x01\x12\x12\n\x0ePROTECTION_LBD\x10\x02\"5\n\x0e\x43lauseOrdering\x12\x13\n\x0f\x43LAUSE_ACTIVITY\x10\x00\x12\x0e\n\nCLAUSE_LBD\x10\x01\"\x86\x01\n\x10RestartAlgorithm\x12\x0e\n\nNO_RESTART\x10\x00\x12\x10\n\x0cLUBY_RESTART\x10\x01\x12\x1d\n\x19\x44L_MOVING_AVERAGE_RESTART\x10\x02\x12\x1e\n\x1aLBD_MOVING_AVERAGE_RESTART\x10\x03\x12\x11\n\rFIXED_RESTART\x10\x04\"t\n\x15MaxSatAssumptionOrder\x12\x1c\n\x18\x44\x45\x46\x41ULT_ASSUMPTION_ORDER\x10\x00\x12\x1d\n\x19ORDER_ASSUMPTION_BY_DEPTH\x10\x01\x12\x1e\n\x1aORDER_ASSUMPTION_BY_WEIGHT\x10\x02\"o\n\x1dMaxSatStratificationAlgorithm\x12\x17\n\x13STRATIFICATION_NONE\x10\x00\x12\x1a\n\x16STRATIFICATION_DESCENT\x10\x01\x12\x19\n\x15STRATIFICATION_ASCENT\x10\x02\"\xe1\x01\n\x0fSearchBranching\x12\x14\n\x10\x41UTOMATIC_SEARCH\x10\x00\x12\x10\n\x0c\x46IXED_SEARCH\x10\x01\x12\x14\n\x10PORTFOLIO_SEARCH\x10\x02\x12\r\n\tLP_SEARCH\x10\x03\x12\x16\n\x12PSEUDO_COST_SEARCH\x10\x04\x12\'\n#PORTFOLIO_WITH_QUICK_RESTART_SEARCH\x10\x05\x12\x0f\n\x0bHINT_SEARCH\x10\x06\x12\x18\n\x14PARTIAL_FIXED_SEARCH\x10\x07\x12\x15\n\x11RANDOMIZED_SEARCH\x10\x08\"\xb8\x01\n\x17SharedTreeSplitStrategy\x12\x17\n\x13SPLIT_STRATEGY_AUTO\x10\x00\x12\x1e\n\x1aSPLIT_STRATEGY_DISCREPANCY\x10\x01\x12\x1f\n\x1bSPLIT_STRATEGY_OBJECTIVE_LB\x10\x02\x12 \n\x1cSPLIT_STRATEGY_BALANCED_TREE\x10\x03\x12!\n\x1dSPLIT_STRATEGY_FIRST_PROPOSAL\x10\x04\"h\n\x10\x46PRoundingMethod\x12\x13\n\x0fNEAREST_INTEGER\x10\x00\x12\x0e\n\nLOCK_BASED\x10\x01\x12\x15\n\x11\x41\x43TIVE_LOCK_BASED\x10\x03\x12\x18\n\x14PROPAGATION_ASSISTED\x10\x02\x42/\n\x16\x63om.google.ortools.satP\x01\xaa\x02\x12Google.OrTools.Sat')
18
19_globals = globals()
20_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
21_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'ortools.sat.sat_parameters_pb2', _globals)
22if not _descriptor._USE_C_DESCRIPTORS:
23  _globals['DESCRIPTOR']._loaded_options = None
24  _globals['DESCRIPTOR']._serialized_options = b'\n\026com.google.ortools.satP\001\252\002\022Google.OrTools.Sat'
25  _globals['_SATPARAMETERS']._serialized_start=62
26  _globals['_SATPARAMETERS']._serialized_end=12672
27  _globals['_SATPARAMETERS_VARIABLEORDER']._serialized_start=11185
28  _globals['_SATPARAMETERS_VARIABLEORDER']._serialized_end=11257
29  _globals['_SATPARAMETERS_POLARITY']._serialized_start=11259
30  _globals['_SATPARAMETERS_POLARITY']._serialized_end=11329
31  _globals['_SATPARAMETERS_CONFLICTMINIMIZATIONALGORITHM']._serialized_start=11331
32  _globals['_SATPARAMETERS_CONFLICTMINIMIZATIONALGORITHM']._serialized_end=11417
33  _globals['_SATPARAMETERS_BINARYMINIZATIONALGORITHM']._serialized_start=11420
34  _globals['_SATPARAMETERS_BINARYMINIZATIONALGORITHM']._serialized_end=11644
35  _globals['_SATPARAMETERS_CLAUSEPROTECTION']._serialized_start=11646
36  _globals['_SATPARAMETERS_CLAUSEPROTECTION']._serialized_end=11728
37  _globals['_SATPARAMETERS_CLAUSEORDERING']._serialized_start=11730
38  _globals['_SATPARAMETERS_CLAUSEORDERING']._serialized_end=11783
39  _globals['_SATPARAMETERS_RESTARTALGORITHM']._serialized_start=11786
40  _globals['_SATPARAMETERS_RESTARTALGORITHM']._serialized_end=11920
41  _globals['_SATPARAMETERS_MAXSATASSUMPTIONORDER']._serialized_start=11922
42  _globals['_SATPARAMETERS_MAXSATASSUMPTIONORDER']._serialized_end=12038
43  _globals['_SATPARAMETERS_MAXSATSTRATIFICATIONALGORITHM']._serialized_start=12040
44  _globals['_SATPARAMETERS_MAXSATSTRATIFICATIONALGORITHM']._serialized_end=12151
45  _globals['_SATPARAMETERS_SEARCHBRANCHING']._serialized_start=12154
46  _globals['_SATPARAMETERS_SEARCHBRANCHING']._serialized_end=12379
47  _globals['_SATPARAMETERS_SHAREDTREESPLITSTRATEGY']._serialized_start=12382
48  _globals['_SATPARAMETERS_SHAREDTREESPLITSTRATEGY']._serialized_end=12566
49  _globals['_SATPARAMETERS_FPROUNDINGMETHOD']._serialized_start=12568
50  _globals['_SATPARAMETERS_FPROUNDINGMETHOD']._serialized_end=12672
51# @@protoc_insertion_point(module_scope)
DESCRIPTOR = <google.protobuf.descriptor.FileDescriptor object>
class SatParameters(google.protobuf.message.Message):

Abstract base class for protocol messages.

Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below.

SatParameters(**kwargs)
498  def init(self, **kwargs):
499    self._cached_byte_size = 0
500    self._cached_byte_size_dirty = len(kwargs) > 0
501    self._fields = {}
502    # Contains a mapping from oneof field descriptors to the descriptor
503    # of the currently set field in that oneof field.
504    self._oneofs = {}
505
506    # _unknown_fields is () when empty for efficiency, and will be turned into
507    # a list if fields are added.
508    self._unknown_fields = ()
509    self._is_present_in_parent = False
510    self._listener = message_listener_mod.NullMessageListener()
511    self._listener_for_children = _Listener(self)
512    for field_name, field_value in kwargs.items():
513      field = _GetFieldByName(message_descriptor, field_name)
514      if field is None:
515        raise TypeError('%s() got an unexpected keyword argument "%s"' %
516                        (message_descriptor.name, field_name))
517      if field_value is None:
518        # field=None is the same as no field at all.
519        continue
520      if field.label == _FieldDescriptor.LABEL_REPEATED:
521        field_copy = field._default_constructor(self)
522        if field.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE:  # Composite
523          if _IsMapField(field):
524            if _IsMessageMapField(field):
525              for key in field_value:
526                field_copy[key].MergeFrom(field_value[key])
527            else:
528              field_copy.update(field_value)
529          else:
530            for val in field_value:
531              if isinstance(val, dict):
532                field_copy.add(**val)
533              else:
534                field_copy.add().MergeFrom(val)
535        else:  # Scalar
536          if field.cpp_type == _FieldDescriptor.CPPTYPE_ENUM:
537            field_value = [_GetIntegerEnumValue(field.enum_type, val)
538                           for val in field_value]
539          field_copy.extend(field_value)
540        self._fields[field] = field_copy
541      elif field.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE:
542        field_copy = field._default_constructor(self)
543        new_val = None
544        if isinstance(field_value, message_mod.Message):
545          new_val = field_value
546        elif isinstance(field_value, dict):
547          if field.message_type.full_name == _StructFullTypeName:
548            field_copy.Clear()
549            if len(field_value) == 1 and 'fields' in field_value:
550              try:
551                field_copy.update(field_value)
552              except:
553                # Fall back to init normal message field
554                field_copy.Clear()
555                new_val = field.message_type._concrete_class(**field_value)
556            else:
557              field_copy.update(field_value)
558          else:
559            new_val = field.message_type._concrete_class(**field_value)
560        elif hasattr(field_copy, '_internal_assign'):
561          field_copy._internal_assign(field_value)
562        else:
563          raise TypeError(
564              'Message field {0}.{1} must be initialized with a '
565              'dict or instance of same class, got {2}.'.format(
566                  message_descriptor.name,
567                  field_name,
568                  type(field_value).__name__,
569              )
570          )
571
572        if new_val:
573          try:
574            field_copy.MergeFrom(new_val)
575          except TypeError:
576            _ReraiseTypeErrorWithFieldName(message_descriptor.name, field_name)
577        self._fields[field] = field_copy
578      else:
579        if field.cpp_type == _FieldDescriptor.CPPTYPE_ENUM:
580          field_value = _GetIntegerEnumValue(field.enum_type, field_value)
581        try:
582          setattr(self, field_name, field_value)
583        except TypeError:
584          _ReraiseTypeErrorWithFieldName(message_descriptor.name, field_name)
DESCRIPTOR = <google.protobuf.descriptor.Descriptor object>
def MergeFrom(self, msg):
1361  def MergeFrom(self, msg):
1362    if not isinstance(msg, cls):
1363      raise TypeError(
1364          'Parameter to MergeFrom() must be instance of same class: '
1365          'expected %s got %s.' % (_FullyQualifiedClassName(cls),
1366                                   _FullyQualifiedClassName(msg.__class__)))
1367
1368    assert msg is not self
1369    self._Modified()
1370
1371    fields = self._fields
1372
1373    for field, value in msg._fields.items():
1374      if field.label == LABEL_REPEATED:
1375        field_value = fields.get(field)
1376        if field_value is None:
1377          # Construct a new object to represent this field.
1378          field_value = field._default_constructor(self)
1379          fields[field] = field_value
1380        field_value.MergeFrom(value)
1381      elif field.cpp_type == CPPTYPE_MESSAGE:
1382        if value._is_present_in_parent:
1383          field_value = fields.get(field)
1384          if field_value is None:
1385            # Construct a new object to represent this field.
1386            field_value = field._default_constructor(self)
1387            fields[field] = field_value
1388          field_value.MergeFrom(value)
1389      else:
1390        self._fields[field] = value
1391        if field.containing_oneof:
1392          self._UpdateOneofState(field)
1393
1394    if msg._unknown_fields:
1395      if not self._unknown_fields:
1396        self._unknown_fields = []
1397      self._unknown_fields.extend(msg._unknown_fields)

Merges the contents of the specified message into current message.

This method merges the contents of the specified message into the current message. Singular fields that are set in the specified message overwrite the corresponding fields in the current message. Repeated fields are appended. Singular sub-messages and groups are recursively merged.

Arguments:
  • other_msg (Message): A message to merge into the current message.
def Clear(self):
1420def _Clear(self):
1421  # Clear fields.
1422  self._fields = {}
1423  self._unknown_fields = ()
1424
1425  self._oneofs = {}
1426  self._Modified()

Clears all data that was set in the message.

def SetInParent(self):
1486  def Modified(self):
1487    """Sets the _cached_byte_size_dirty bit to true,
1488    and propagates this to our listener iff this was a state change.
1489    """
1490
1491    # Note:  Some callers check _cached_byte_size_dirty before calling
1492    #   _Modified() as an extra optimization.  So, if this method is ever
1493    #   changed such that it does stuff even when _cached_byte_size_dirty is
1494    #   already true, the callers need to be updated.
1495    if not self._cached_byte_size_dirty:
1496      self._cached_byte_size_dirty = True
1497      self._listener_for_children.dirty = True
1498      self._is_present_in_parent = True
1499      self._listener.Modified()

Sets the _cached_byte_size_dirty bit to true, and propagates this to our listener iff this was a state change.

def IsInitialized(self, errors=None):
1262  def IsInitialized(self, errors=None):
1263    """Checks if all required fields of a message are set.
1264
1265    Args:
1266      errors:  A list which, if provided, will be populated with the field
1267               paths of all missing required fields.
1268
1269    Returns:
1270      True iff the specified message has all required fields set.
1271    """
1272
1273    # Performance is critical so we avoid HasField() and ListFields().
1274
1275    for field in required_fields:
1276      if (field not in self._fields or
1277          (field.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE and
1278           not self._fields[field]._is_present_in_parent)):
1279        if errors is not None:
1280          errors.extend(self.FindInitializationErrors())
1281        return False
1282
1283    for field, value in list(self._fields.items()):  # dict can change size!
1284      if field.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE:
1285        if field.label == _FieldDescriptor.LABEL_REPEATED:
1286          if (field.message_type._is_map_entry):
1287            continue
1288          for element in value:
1289            if not element.IsInitialized():
1290              if errors is not None:
1291                errors.extend(self.FindInitializationErrors())
1292              return False
1293        elif value._is_present_in_parent and not value.IsInitialized():
1294          if errors is not None:
1295            errors.extend(self.FindInitializationErrors())
1296          return False
1297
1298    return True

Checks if all required fields of a message are set.

Arguments:
  • errors: A list which, if provided, will be populated with the field paths of all missing required fields.
Returns:

True iff the specified message has all required fields set.

def MergeFromString(self, serialized):
1177  def MergeFromString(self, serialized):
1178    serialized = memoryview(serialized)
1179    length = len(serialized)
1180    try:
1181      if self._InternalParse(serialized, 0, length) != length:
1182        # The only reason _InternalParse would return early is if it
1183        # encountered an end-group tag.
1184        raise message_mod.DecodeError('Unexpected end-group tag.')
1185    except (IndexError, TypeError):
1186      # Now ord(buf[p:p+1]) == ord('') gets TypeError.
1187      raise message_mod.DecodeError('Truncated message.')
1188    except struct.error as e:
1189      raise message_mod.DecodeError(e)
1190    return length   # Return this for legacy reasons.

Merges serialized protocol buffer data into this message.

When we find a field in serialized that is already present in this message:

  • If it's a "repeated" field, we append to the end of our list.
  • Else, if it's a scalar, we overwrite our field.
  • Else, (it's a nonrepeated composite), we recursively merge into the existing composite.
Arguments:
  • serialized (bytes): Any object that allows us to call memoryview(serialized) to access a string of bytes using the buffer interface.
Returns:

int: The number of bytes read from serialized. For non-group messages, this will always be len(serialized), but for messages which are actually groups, this will generally be less than len(serialized), since we must stop when we reach an END_GROUP tag. Note that if we do stop because of an END_GROUP tag, the number of bytes returned does not include the bytes for the END_GROUP tag information.

Raises:
  • DecodeError: if the input cannot be parsed.
def SerializeToString(self, **kwargs):
1130  def SerializeToString(self, **kwargs):
1131    # Check if the message has all of its required fields set.
1132    if not self.IsInitialized():
1133      raise message_mod.EncodeError(
1134          'Message %s is missing required fields: %s' % (
1135          self.DESCRIPTOR.full_name, ','.join(self.FindInitializationErrors())))
1136    return self.SerializePartialToString(**kwargs)

Serializes the protocol message to a binary string.

Keyword Args:

deterministic (bool): If true, requests deterministic serialization of the protobuf, with predictable ordering of map keys.

Returns:

A binary string representation of the message if all of the required fields in the message are set (i.e. the message is initialized).

Raises:
def SerializePartialToString(self, **kwargs):
1143  def SerializePartialToString(self, **kwargs):
1144    out = BytesIO()
1145    self._InternalSerialize(out.write, **kwargs)
1146    return out.getvalue()

Serializes the protocol message to a binary string.

This method is similar to SerializeToString but doesn't check if the message is initialized.

Keyword Args:

deterministic (bool): If true, requests deterministic serialization of the protobuf, with predictable ordering of map keys.

Returns:

bytes: A serialized representation of the partial message.

def ListFields(self):
848  def ListFields(self):
849    all_fields = [item for item in self._fields.items() if _IsPresent(item)]
850    all_fields.sort(key = lambda item: item[0].number)
851    return all_fields

Returns a list of (FieldDescriptor, value) tuples for present fields.

A message field is non-empty if HasField() would return true. A singular primitive field is non-empty if HasField() would return true in proto2 or it is non zero in proto3. A repeated field is non-empty if it contains at least one element. The fields are ordered by field number.

Returns:

list[tuple(FieldDescriptor, value)]: field descriptors and values for all fields in the message which are not empty. The values vary by field type.

def HasField(self, field_name):
872  def HasField(self, field_name):
873    try:
874      field = hassable_fields[field_name]
875    except KeyError as exc:
876      raise ValueError('Protocol message %s has no non-repeated field "%s" '
877                       'nor has presence is not available for this field.' % (
878                           message_descriptor.full_name, field_name)) from exc
879
880    if isinstance(field, descriptor_mod.OneofDescriptor):
881      try:
882        return HasField(self, self._oneofs[field].name)
883      except KeyError:
884        return False
885    else:
886      if field.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE:
887        value = self._fields.get(field)
888        return value is not None and value._is_present_in_parent
889      else:
890        return field in self._fields

Checks if a certain field is set for the message.

For a oneof group, checks if any field inside is set. Note that if the field_name is not defined in the message descriptor, ValueError will be raised.

Arguments:
  • field_name (str): The name of the field to check for presence.
Returns:

bool: Whether a value has been set for the named field.

Raises:
  • ValueError: if the field_name is not a member of this message.
def ClearField(self, field_name):
897  def ClearField(self, field_name):
898    try:
899      field = message_descriptor.fields_by_name[field_name]
900    except KeyError:
901      try:
902        field = message_descriptor.oneofs_by_name[field_name]
903        if field in self._oneofs:
904          field = self._oneofs[field]
905        else:
906          return
907      except KeyError:
908        raise ValueError('Protocol message %s has no "%s" field.' %
909                         (message_descriptor.name, field_name))
910
911    if field in self._fields:
912      # To match the C++ implementation, we need to invalidate iterators
913      # for map fields when ClearField() happens.
914      if hasattr(self._fields[field], 'InvalidateIterators'):
915        self._fields[field].InvalidateIterators()
916
917      # Note:  If the field is a sub-message, its listener will still point
918      #   at us.  That's fine, because the worst than can happen is that it
919      #   will call _Modified() and invalidate our byte size.  Big deal.
920      del self._fields[field]
921
922      if self._oneofs.get(field.containing_oneof, None) is field:
923        del self._oneofs[field.containing_oneof]
924
925    # Always call _Modified() -- even if nothing was changed, this is
926    # a mutating method, and thus calling it should cause the field to become
927    # present in the parent message.
928    self._Modified()

Clears the contents of a given field.

Inside a oneof group, clears the field set. If the name neither refers to a defined field or oneof group, ValueError is raised.

Arguments:
  • field_name (str): The name of the field to check for presence.
Raises:
  • ValueError: if the field_name is not a member of this message.
def WhichOneof(self, oneof_name):
1403  def WhichOneof(self, oneof_name):
1404    """Returns the name of the currently set field inside a oneof, or None."""
1405    try:
1406      field = message_descriptor.oneofs_by_name[oneof_name]
1407    except KeyError:
1408      raise ValueError(
1409          'Protocol message has no oneof "%s" field.' % oneof_name)
1410
1411    nested_field = self._oneofs.get(field, None)
1412    if nested_field is not None and self.HasField(nested_field.name):
1413      return nested_field.name
1414    else:
1415      return None

Returns the name of the currently set field inside a oneof, or None.

def DiscardUnknownFields(self):
1435def _DiscardUnknownFields(self):
1436  self._unknown_fields = []
1437  for field, value in self.ListFields():
1438    if field.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE:
1439      if _IsMapField(field):
1440        if _IsMessageMapField(field):
1441          for key in value:
1442            value[key].DiscardUnknownFields()
1443      elif field.label == _FieldDescriptor.LABEL_REPEATED:
1444        for sub_message in value:
1445          sub_message.DiscardUnknownFields()
1446      else:
1447        value.DiscardUnknownFields()

Clears all fields in the UnknownFieldSet.

This operation is recursive for nested message.

def ByteSize(self):
1098  def ByteSize(self):
1099    if not self._cached_byte_size_dirty:
1100      return self._cached_byte_size
1101
1102    size = 0
1103    descriptor = self.DESCRIPTOR
1104    if descriptor._is_map_entry:
1105      # Fields of map entry should always be serialized.
1106      key_field = descriptor.fields_by_name['key']
1107      _MaybeAddEncoder(cls, key_field)
1108      size = key_field._sizer(self.key)
1109      value_field = descriptor.fields_by_name['value']
1110      _MaybeAddEncoder(cls, value_field)
1111      size += value_field._sizer(self.value)
1112    else:
1113      for field_descriptor, field_value in self.ListFields():
1114        _MaybeAddEncoder(cls, field_descriptor)
1115        size += field_descriptor._sizer(field_value)
1116      for tag_bytes, value_bytes in self._unknown_fields:
1117        size += len(tag_bytes) + len(value_bytes)
1118
1119    self._cached_byte_size = size
1120    self._cached_byte_size_dirty = False
1121    self._listener_for_children.dirty = False
1122    return size

Returns the serialized size of this message.

Recursively calls ByteSize() on all contained messages.

Returns:

int: The number of bytes required to serialize this message.

def FromString(s):
826  def FromString(s):
827    message = cls()
828    message.MergeFromString(s)
829    return message
VariableOrder = <google.protobuf.internal.enum_type_wrapper.EnumTypeWrapper object>
IN_ORDER = 0
IN_REVERSE_ORDER = 1
IN_RANDOM_ORDER = 2
Polarity = <google.protobuf.internal.enum_type_wrapper.EnumTypeWrapper object>
POLARITY_TRUE = 0
POLARITY_FALSE = 1
POLARITY_RANDOM = 2
ConflictMinimizationAlgorithm = <google.protobuf.internal.enum_type_wrapper.EnumTypeWrapper object>
NONE = 0
SIMPLE = 1
RECURSIVE = 2
EXPERIMENTAL = 3
BinaryMinizationAlgorithm = <google.protobuf.internal.enum_type_wrapper.EnumTypeWrapper object>
NO_BINARY_MINIMIZATION = 0
BINARY_MINIMIZATION_FIRST = 1
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION = 4
BINARY_MINIMIZATION_WITH_REACHABILITY = 2
EXPERIMENTAL_BINARY_MINIMIZATION = 3
ClauseProtection = <google.protobuf.internal.enum_type_wrapper.EnumTypeWrapper object>
PROTECTION_NONE = 0
PROTECTION_ALWAYS = 1
PROTECTION_LBD = 2
ClauseOrdering = <google.protobuf.internal.enum_type_wrapper.EnumTypeWrapper object>
CLAUSE_ACTIVITY = 0
CLAUSE_LBD = 1
RestartAlgorithm = <google.protobuf.internal.enum_type_wrapper.EnumTypeWrapper object>
NO_RESTART = 0
LUBY_RESTART = 1
DL_MOVING_AVERAGE_RESTART = 2
LBD_MOVING_AVERAGE_RESTART = 3
FIXED_RESTART = 4
MaxSatAssumptionOrder = <google.protobuf.internal.enum_type_wrapper.EnumTypeWrapper object>
DEFAULT_ASSUMPTION_ORDER = 0
ORDER_ASSUMPTION_BY_DEPTH = 1
ORDER_ASSUMPTION_BY_WEIGHT = 2
MaxSatStratificationAlgorithm = <google.protobuf.internal.enum_type_wrapper.EnumTypeWrapper object>
STRATIFICATION_NONE = 0
STRATIFICATION_DESCENT = 1
STRATIFICATION_ASCENT = 2
SearchBranching = <google.protobuf.internal.enum_type_wrapper.EnumTypeWrapper object>
SharedTreeSplitStrategy = <google.protobuf.internal.enum_type_wrapper.EnumTypeWrapper object>
SPLIT_STRATEGY_AUTO = 0
SPLIT_STRATEGY_DISCREPANCY = 1
SPLIT_STRATEGY_OBJECTIVE_LB = 2
SPLIT_STRATEGY_BALANCED_TREE = 3
SPLIT_STRATEGY_FIRST_PROPOSAL = 4
FPRoundingMethod = <google.protobuf.internal.enum_type_wrapper.EnumTypeWrapper object>
NEAREST_INTEGER = 0
LOCK_BASED = 1
ACTIVE_LOCK_BASED = 3
PROPAGATION_ASSISTED = 2
NAME_FIELD_NUMBER = 171
name
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for name.

PREFERRED_VARIABLE_ORDER_FIELD_NUMBER = 1
preferred_variable_order
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for preferred_variable_order.

INITIAL_POLARITY_FIELD_NUMBER = 2
initial_polarity
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for initial_polarity.

USE_PHASE_SAVING_FIELD_NUMBER = 44
use_phase_saving
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_phase_saving.

POLARITY_REPHASE_INCREMENT_FIELD_NUMBER = 168
polarity_rephase_increment
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for polarity_rephase_increment.

RANDOM_POLARITY_RATIO_FIELD_NUMBER = 45
random_polarity_ratio
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for random_polarity_ratio.

RANDOM_BRANCHES_RATIO_FIELD_NUMBER = 32
random_branches_ratio
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for random_branches_ratio.

USE_ERWA_HEURISTIC_FIELD_NUMBER = 75
use_erwa_heuristic
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_erwa_heuristic.

INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER = 76
initial_variables_activity
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for initial_variables_activity.

ALSO_BUMP_VARIABLES_IN_CONFLICT_REASONS_FIELD_NUMBER = 77
also_bump_variables_in_conflict_reasons
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for also_bump_variables_in_conflict_reasons.

MINIMIZATION_ALGORITHM_FIELD_NUMBER = 4
minimization_algorithm
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for minimization_algorithm.

BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER = 34
binary_minimization_algorithm
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for binary_minimization_algorithm.

SUBSUMPTION_DURING_CONFLICT_ANALYSIS_FIELD_NUMBER = 56
subsumption_during_conflict_analysis
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for subsumption_during_conflict_analysis.

CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER = 11
clause_cleanup_period
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for clause_cleanup_period.

CLAUSE_CLEANUP_TARGET_FIELD_NUMBER = 13
clause_cleanup_target
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for clause_cleanup_target.

CLAUSE_CLEANUP_RATIO_FIELD_NUMBER = 190
clause_cleanup_ratio
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for clause_cleanup_ratio.

CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER = 58
clause_cleanup_protection
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for clause_cleanup_protection.

CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER = 59
clause_cleanup_lbd_bound
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for clause_cleanup_lbd_bound.

CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER = 60
clause_cleanup_ordering
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for clause_cleanup_ordering.

PB_CLEANUP_INCREMENT_FIELD_NUMBER = 46
pb_cleanup_increment
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for pb_cleanup_increment.

PB_CLEANUP_RATIO_FIELD_NUMBER = 47
pb_cleanup_ratio
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for pb_cleanup_ratio.

VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER = 15
variable_activity_decay
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for variable_activity_decay.

MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER = 16
max_variable_activity_value
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for max_variable_activity_value.

GLUCOSE_MAX_DECAY_FIELD_NUMBER = 22
glucose_max_decay
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for glucose_max_decay.

GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER = 23
glucose_decay_increment
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for glucose_decay_increment.

GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER = 24
glucose_decay_increment_period
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for glucose_decay_increment_period.

CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER = 17
clause_activity_decay
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for clause_activity_decay.

MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER = 18
max_clause_activity_value
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for max_clause_activity_value.

RESTART_ALGORITHMS_FIELD_NUMBER = 61
restart_algorithms
668  def getter(self):
669    field_value = self._fields.get(field)
670    if field_value is None:
671      # Construct a new object to represent this field.
672      field_value = field._default_constructor(self)
673
674      # Atomically check if another thread has preempted us and, if not, swap
675      # in the new object we just created.  If someone has preempted us, we
676      # take that object and discard ours.
677      # WARNING:  We are relying on setdefault() being atomic.  This is true
678      #   in CPython but we haven't investigated others.  This warning appears
679      #   in several other locations in this file.
680      field_value = self._fields.setdefault(field, field_value)
681    return field_value

Getter for restart_algorithms.

DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER = 70
default_restart_algorithms
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for default_restart_algorithms.

RESTART_PERIOD_FIELD_NUMBER = 30
restart_period
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for restart_period.

RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER = 62
restart_running_window_size
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for restart_running_window_size.

RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER = 63
restart_dl_average_ratio
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for restart_dl_average_ratio.

RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER = 71
restart_lbd_average_ratio
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for restart_lbd_average_ratio.

USE_BLOCKING_RESTART_FIELD_NUMBER = 64
use_blocking_restart
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_blocking_restart.

BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER = 65
blocking_restart_window_size
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for blocking_restart_window_size.

BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER = 66
blocking_restart_multiplier
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for blocking_restart_multiplier.

NUM_CONFLICTS_BEFORE_STRATEGY_CHANGES_FIELD_NUMBER = 68
num_conflicts_before_strategy_changes
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for num_conflicts_before_strategy_changes.

STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER = 69
strategy_change_increase_ratio
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for strategy_change_increase_ratio.

MAX_TIME_IN_SECONDS_FIELD_NUMBER = 36
max_time_in_seconds
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for max_time_in_seconds.

MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 67
max_deterministic_time
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for max_deterministic_time.

MAX_NUM_DETERMINISTIC_BATCHES_FIELD_NUMBER = 291
max_num_deterministic_batches
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for max_num_deterministic_batches.

MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER = 37
max_number_of_conflicts
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for max_number_of_conflicts.

MAX_MEMORY_IN_MB_FIELD_NUMBER = 40
max_memory_in_mb
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for max_memory_in_mb.

ABSOLUTE_GAP_LIMIT_FIELD_NUMBER = 159
absolute_gap_limit
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for absolute_gap_limit.

RELATIVE_GAP_LIMIT_FIELD_NUMBER = 160
relative_gap_limit
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for relative_gap_limit.

RANDOM_SEED_FIELD_NUMBER = 31
random_seed
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for random_seed.

PERMUTE_VARIABLE_RANDOMLY_FIELD_NUMBER = 178
permute_variable_randomly
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for permute_variable_randomly.

PERMUTE_PRESOLVE_CONSTRAINT_ORDER_FIELD_NUMBER = 179
permute_presolve_constraint_order
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for permute_presolve_constraint_order.

USE_ABSL_RANDOM_FIELD_NUMBER = 180
use_absl_random
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_absl_random.

LOG_SEARCH_PROGRESS_FIELD_NUMBER = 41
log_search_progress
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for log_search_progress.

LOG_SUBSOLVER_STATISTICS_FIELD_NUMBER = 189
log_subsolver_statistics
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for log_subsolver_statistics.

LOG_PREFIX_FIELD_NUMBER = 185
log_prefix
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for log_prefix.

LOG_TO_STDOUT_FIELD_NUMBER = 186
log_to_stdout
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for log_to_stdout.

LOG_TO_RESPONSE_FIELD_NUMBER = 187
log_to_response
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for log_to_response.

USE_PB_RESOLUTION_FIELD_NUMBER = 43
use_pb_resolution
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_pb_resolution.

MINIMIZE_REDUCTION_DURING_PB_RESOLUTION_FIELD_NUMBER = 48
minimize_reduction_during_pb_resolution
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for minimize_reduction_during_pb_resolution.

COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER = 49
count_assumption_levels_in_lbd
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for count_assumption_levels_in_lbd.

PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER = 54
presolve_bve_threshold
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for presolve_bve_threshold.

PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER = 55
presolve_bve_clause_weight
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for presolve_bve_clause_weight.

PROBING_DETERMINISTIC_TIME_LIMIT_FIELD_NUMBER = 226
probing_deterministic_time_limit
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for probing_deterministic_time_limit.

PRESOLVE_PROBING_DETERMINISTIC_TIME_LIMIT_FIELD_NUMBER = 57
presolve_probing_deterministic_time_limit
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for presolve_probing_deterministic_time_limit.

PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER = 88
presolve_blocked_clause
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for presolve_blocked_clause.

PRESOLVE_USE_BVA_FIELD_NUMBER = 72
presolve_use_bva
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for presolve_use_bva.

PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER = 73
presolve_bva_threshold
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for presolve_bva_threshold.

MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER = 138
max_presolve_iterations
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for max_presolve_iterations.

CP_MODEL_PRESOLVE_FIELD_NUMBER = 86
cp_model_presolve
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for cp_model_presolve.

CP_MODEL_PROBING_LEVEL_FIELD_NUMBER = 110
cp_model_probing_level
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for cp_model_probing_level.

CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER = 93
cp_model_use_sat_presolve
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for cp_model_use_sat_presolve.

DETECT_TABLE_WITH_COST_FIELD_NUMBER = 216
detect_table_with_cost
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for detect_table_with_cost.

TABLE_COMPRESSION_LEVEL_FIELD_NUMBER = 217
table_compression_level
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for table_compression_level.

EXPAND_ALLDIFF_CONSTRAINTS_FIELD_NUMBER = 170
expand_alldiff_constraints
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for expand_alldiff_constraints.

EXPAND_RESERVOIR_CONSTRAINTS_FIELD_NUMBER = 182
expand_reservoir_constraints
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for expand_reservoir_constraints.

EXPAND_RESERVOIR_USING_CIRCUIT_FIELD_NUMBER = 288
expand_reservoir_using_circuit
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for expand_reservoir_using_circuit.

ENCODE_CUMULATIVE_AS_RESERVOIR_FIELD_NUMBER = 287
encode_cumulative_as_reservoir
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for encode_cumulative_as_reservoir.

MAX_LIN_MAX_SIZE_FOR_EXPANSION_FIELD_NUMBER = 280
max_lin_max_size_for_expansion
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for max_lin_max_size_for_expansion.

DISABLE_CONSTRAINT_EXPANSION_FIELD_NUMBER = 181
disable_constraint_expansion
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for disable_constraint_expansion.

ENCODE_COMPLEX_LINEAR_CONSTRAINT_WITH_INTEGER_FIELD_NUMBER = 223
encode_complex_linear_constraint_with_integer
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for encode_complex_linear_constraint_with_integer.

MERGE_NO_OVERLAP_WORK_LIMIT_FIELD_NUMBER = 145
merge_no_overlap_work_limit
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for merge_no_overlap_work_limit.

MERGE_AT_MOST_ONE_WORK_LIMIT_FIELD_NUMBER = 146
merge_at_most_one_work_limit
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for merge_at_most_one_work_limit.

PRESOLVE_SUBSTITUTION_LEVEL_FIELD_NUMBER = 147
presolve_substitution_level
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for presolve_substitution_level.

PRESOLVE_EXTRACT_INTEGER_ENFORCEMENT_FIELD_NUMBER = 174
presolve_extract_integer_enforcement
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for presolve_extract_integer_enforcement.

PRESOLVE_INCLUSION_WORK_LIMIT_FIELD_NUMBER = 201
presolve_inclusion_work_limit
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for presolve_inclusion_work_limit.

IGNORE_NAMES_FIELD_NUMBER = 202
ignore_names
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for ignore_names.

INFER_ALL_DIFFS_FIELD_NUMBER = 233
infer_all_diffs
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for infer_all_diffs.

FIND_BIG_LINEAR_OVERLAP_FIELD_NUMBER = 234
find_big_linear_overlap
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for find_big_linear_overlap.

USE_SAT_INPROCESSING_FIELD_NUMBER = 163
use_sat_inprocessing
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_sat_inprocessing.

INPROCESSING_DTIME_RATIO_FIELD_NUMBER = 273
inprocessing_dtime_ratio
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for inprocessing_dtime_ratio.

INPROCESSING_PROBING_DTIME_FIELD_NUMBER = 274
inprocessing_probing_dtime
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for inprocessing_probing_dtime.

INPROCESSING_MINIMIZATION_DTIME_FIELD_NUMBER = 275
inprocessing_minimization_dtime
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for inprocessing_minimization_dtime.

NUM_WORKERS_FIELD_NUMBER = 206
num_workers
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for num_workers.

NUM_SEARCH_WORKERS_FIELD_NUMBER = 100
num_search_workers
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for num_search_workers.

NUM_FULL_SUBSOLVERS_FIELD_NUMBER = 294
num_full_subsolvers
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for num_full_subsolvers.

SUBSOLVERS_FIELD_NUMBER = 207
subsolvers
668  def getter(self):
669    field_value = self._fields.get(field)
670    if field_value is None:
671      # Construct a new object to represent this field.
672      field_value = field._default_constructor(self)
673
674      # Atomically check if another thread has preempted us and, if not, swap
675      # in the new object we just created.  If someone has preempted us, we
676      # take that object and discard ours.
677      # WARNING:  We are relying on setdefault() being atomic.  This is true
678      #   in CPython but we haven't investigated others.  This warning appears
679      #   in several other locations in this file.
680      field_value = self._fields.setdefault(field, field_value)
681    return field_value

Getter for subsolvers.

EXTRA_SUBSOLVERS_FIELD_NUMBER = 219
extra_subsolvers
668  def getter(self):
669    field_value = self._fields.get(field)
670    if field_value is None:
671      # Construct a new object to represent this field.
672      field_value = field._default_constructor(self)
673
674      # Atomically check if another thread has preempted us and, if not, swap
675      # in the new object we just created.  If someone has preempted us, we
676      # take that object and discard ours.
677      # WARNING:  We are relying on setdefault() being atomic.  This is true
678      #   in CPython but we haven't investigated others.  This warning appears
679      #   in several other locations in this file.
680      field_value = self._fields.setdefault(field, field_value)
681    return field_value

Getter for extra_subsolvers.

IGNORE_SUBSOLVERS_FIELD_NUMBER = 209
ignore_subsolvers
668  def getter(self):
669    field_value = self._fields.get(field)
670    if field_value is None:
671      # Construct a new object to represent this field.
672      field_value = field._default_constructor(self)
673
674      # Atomically check if another thread has preempted us and, if not, swap
675      # in the new object we just created.  If someone has preempted us, we
676      # take that object and discard ours.
677      # WARNING:  We are relying on setdefault() being atomic.  This is true
678      #   in CPython but we haven't investigated others.  This warning appears
679      #   in several other locations in this file.
680      field_value = self._fields.setdefault(field, field_value)
681    return field_value

Getter for ignore_subsolvers.

FILTER_SUBSOLVERS_FIELD_NUMBER = 293
filter_subsolvers
668  def getter(self):
669    field_value = self._fields.get(field)
670    if field_value is None:
671      # Construct a new object to represent this field.
672      field_value = field._default_constructor(self)
673
674      # Atomically check if another thread has preempted us and, if not, swap
675      # in the new object we just created.  If someone has preempted us, we
676      # take that object and discard ours.
677      # WARNING:  We are relying on setdefault() being atomic.  This is true
678      #   in CPython but we haven't investigated others.  This warning appears
679      #   in several other locations in this file.
680      field_value = self._fields.setdefault(field, field_value)
681    return field_value

Getter for filter_subsolvers.

SUBSOLVER_PARAMS_FIELD_NUMBER = 210
subsolver_params
668  def getter(self):
669    field_value = self._fields.get(field)
670    if field_value is None:
671      # Construct a new object to represent this field.
672      field_value = field._default_constructor(self)
673
674      # Atomically check if another thread has preempted us and, if not, swap
675      # in the new object we just created.  If someone has preempted us, we
676      # take that object and discard ours.
677      # WARNING:  We are relying on setdefault() being atomic.  This is true
678      #   in CPython but we haven't investigated others.  This warning appears
679      #   in several other locations in this file.
680      field_value = self._fields.setdefault(field, field_value)
681    return field_value

Getter for subsolver_params.

INTERLEAVE_SEARCH_FIELD_NUMBER = 136
INTERLEAVE_BATCH_SIZE_FIELD_NUMBER = 134
interleave_batch_size
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for interleave_batch_size.

SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER = 113
share_objective_bounds
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for share_objective_bounds.

SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER = 114
share_level_zero_bounds
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for share_level_zero_bounds.

SHARE_BINARY_CLAUSES_FIELD_NUMBER = 203
share_binary_clauses
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for share_binary_clauses.

SHARE_GLUE_CLAUSES_FIELD_NUMBER = 285
share_glue_clauses
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for share_glue_clauses.

DEBUG_POSTSOLVE_WITH_FULL_SOLVER_FIELD_NUMBER = 162
debug_postsolve_with_full_solver
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for debug_postsolve_with_full_solver.

DEBUG_MAX_NUM_PRESOLVE_OPERATIONS_FIELD_NUMBER = 151
debug_max_num_presolve_operations
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for debug_max_num_presolve_operations.

DEBUG_CRASH_ON_BAD_HINT_FIELD_NUMBER = 195
debug_crash_on_bad_hint
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for debug_crash_on_bad_hint.

USE_OPTIMIZATION_HINTS_FIELD_NUMBER = 35
use_optimization_hints
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_optimization_hints.

CORE_MINIMIZATION_LEVEL_FIELD_NUMBER = 50
core_minimization_level
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for core_minimization_level.

FIND_MULTIPLE_CORES_FIELD_NUMBER = 84
find_multiple_cores
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for find_multiple_cores.

COVER_OPTIMIZATION_FIELD_NUMBER = 89
cover_optimization
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for cover_optimization.

MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER = 51
max_sat_assumption_order
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for max_sat_assumption_order.

MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER = 52
max_sat_reverse_assumption_order
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for max_sat_reverse_assumption_order.

MAX_SAT_STRATIFICATION_FIELD_NUMBER = 53
max_sat_stratification
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for max_sat_stratification.

PROPAGATION_LOOP_DETECTION_FACTOR_FIELD_NUMBER = 221
propagation_loop_detection_factor
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for propagation_loop_detection_factor.

USE_PRECEDENCES_IN_DISJUNCTIVE_CONSTRAINT_FIELD_NUMBER = 74
use_precedences_in_disjunctive_constraint
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_precedences_in_disjunctive_constraint.

MAX_SIZE_TO_CREATE_PRECEDENCE_LITERALS_IN_DISJUNCTIVE_FIELD_NUMBER = 229
max_size_to_create_precedence_literals_in_disjunctive
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for max_size_to_create_precedence_literals_in_disjunctive.

USE_STRONG_PROPAGATION_IN_DISJUNCTIVE_FIELD_NUMBER = 230
use_strong_propagation_in_disjunctive
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_strong_propagation_in_disjunctive.

USE_DYNAMIC_PRECEDENCE_IN_DISJUNCTIVE_FIELD_NUMBER = 263
use_dynamic_precedence_in_disjunctive
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_dynamic_precedence_in_disjunctive.

USE_DYNAMIC_PRECEDENCE_IN_CUMULATIVE_FIELD_NUMBER = 268
use_dynamic_precedence_in_cumulative
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_dynamic_precedence_in_cumulative.

USE_OVERLOAD_CHECKER_IN_CUMULATIVE_FIELD_NUMBER = 78
use_overload_checker_in_cumulative
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_overload_checker_in_cumulative.

USE_CONSERVATIVE_SCALE_OVERLOAD_CHECKER_FIELD_NUMBER = 286
use_conservative_scale_overload_checker
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_conservative_scale_overload_checker.

USE_TIMETABLE_EDGE_FINDING_IN_CUMULATIVE_FIELD_NUMBER = 79
use_timetable_edge_finding_in_cumulative
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_timetable_edge_finding_in_cumulative.

MAX_NUM_INTERVALS_FOR_TIMETABLE_EDGE_FINDING_FIELD_NUMBER = 260
max_num_intervals_for_timetable_edge_finding
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for max_num_intervals_for_timetable_edge_finding.

USE_HARD_PRECEDENCES_IN_CUMULATIVE_FIELD_NUMBER = 215
use_hard_precedences_in_cumulative
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_hard_precedences_in_cumulative.

EXPLOIT_ALL_PRECEDENCES_FIELD_NUMBER = 220
exploit_all_precedences
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for exploit_all_precedences.

USE_DISJUNCTIVE_CONSTRAINT_IN_CUMULATIVE_FIELD_NUMBER = 80
use_disjunctive_constraint_in_cumulative
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_disjunctive_constraint_in_cumulative.

USE_TIMETABLING_IN_NO_OVERLAP_2D_FIELD_NUMBER = 200
use_timetabling_in_no_overlap_2d
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_timetabling_in_no_overlap_2d.

USE_ENERGETIC_REASONING_IN_NO_OVERLAP_2D_FIELD_NUMBER = 213
use_energetic_reasoning_in_no_overlap_2d
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_energetic_reasoning_in_no_overlap_2d.

USE_AREA_ENERGETIC_REASONING_IN_NO_OVERLAP_2D_FIELD_NUMBER = 271
use_area_energetic_reasoning_in_no_overlap_2d
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_area_energetic_reasoning_in_no_overlap_2d.

MAX_PAIRS_PAIRWISE_REASONING_IN_NO_OVERLAP_2D_FIELD_NUMBER = 276
max_pairs_pairwise_reasoning_in_no_overlap_2d
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for max_pairs_pairwise_reasoning_in_no_overlap_2d.

USE_DUAL_SCHEDULING_HEURISTICS_FIELD_NUMBER = 214
use_dual_scheduling_heuristics
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_dual_scheduling_heuristics.

SEARCH_BRANCHING_FIELD_NUMBER = 82
search_branching
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for search_branching.

HINT_CONFLICT_LIMIT_FIELD_NUMBER = 153
hint_conflict_limit
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for hint_conflict_limit.

REPAIR_HINT_FIELD_NUMBER = 167
repair_hint
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for repair_hint.

FIX_VARIABLES_TO_THEIR_HINTED_VALUE_FIELD_NUMBER = 192
fix_variables_to_their_hinted_value
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for fix_variables_to_their_hinted_value.

USE_PROBING_SEARCH_FIELD_NUMBER = 176
USE_EXTENDED_PROBING_FIELD_NUMBER = 269
use_extended_probing
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_extended_probing.

PROBING_NUM_COMBINATIONS_LIMIT_FIELD_NUMBER = 272
probing_num_combinations_limit
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for probing_num_combinations_limit.

USE_SHAVING_IN_PROBING_SEARCH_FIELD_NUMBER = 204
SHAVING_SEARCH_DETERMINISTIC_TIME_FIELD_NUMBER = 205
shaving_search_deterministic_time
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for shaving_search_deterministic_time.

SHAVING_SEARCH_THRESHOLD_FIELD_NUMBER = 290
shaving_search_threshold
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for shaving_search_threshold.

USE_OBJECTIVE_LB_SEARCH_FIELD_NUMBER = 228
USE_OBJECTIVE_SHAVING_SEARCH_FIELD_NUMBER = 253
USE_VARIABLES_SHAVING_SEARCH_FIELD_NUMBER = 289
PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER = 123
pseudo_cost_reliability_threshold
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for pseudo_cost_reliability_threshold.

OPTIMIZE_WITH_CORE_FIELD_NUMBER = 83
optimize_with_core
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for optimize_with_core.

OPTIMIZE_WITH_LB_TREE_SEARCH_FIELD_NUMBER = 188
SAVE_LP_BASIS_IN_LB_TREE_SEARCH_FIELD_NUMBER = 284
BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER = 99
binary_search_num_conflicts
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for binary_search_num_conflicts.

OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER = 85
optimize_with_max_hs
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for optimize_with_max_hs.

USE_FEASIBILITY_JUMP_FIELD_NUMBER = 265
use_feasibility_jump
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_feasibility_jump.

USE_LS_ONLY_FIELD_NUMBER = 240
use_ls_only
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_ls_only.

FEASIBILITY_JUMP_DECAY_FIELD_NUMBER = 242
feasibility_jump_decay
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for feasibility_jump_decay.

FEASIBILITY_JUMP_LINEARIZATION_LEVEL_FIELD_NUMBER = 257
feasibility_jump_linearization_level
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for feasibility_jump_linearization_level.

FEASIBILITY_JUMP_RESTART_FACTOR_FIELD_NUMBER = 258
feasibility_jump_restart_factor
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for feasibility_jump_restart_factor.

FEASIBILITY_JUMP_BATCH_DTIME_FIELD_NUMBER = 292
feasibility_jump_batch_dtime
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for feasibility_jump_batch_dtime.

FEASIBILITY_JUMP_VAR_RANDOMIZATION_PROBABILITY_FIELD_NUMBER = 247
feasibility_jump_var_randomization_probability
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for feasibility_jump_var_randomization_probability.

FEASIBILITY_JUMP_VAR_PERBURBATION_RANGE_RATIO_FIELD_NUMBER = 248
feasibility_jump_var_perburbation_range_ratio
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for feasibility_jump_var_perburbation_range_ratio.

FEASIBILITY_JUMP_ENABLE_RESTARTS_FIELD_NUMBER = 250
feasibility_jump_enable_restarts
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for feasibility_jump_enable_restarts.

FEASIBILITY_JUMP_MAX_EXPANDED_CONSTRAINT_SIZE_FIELD_NUMBER = 264
feasibility_jump_max_expanded_constraint_size
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for feasibility_jump_max_expanded_constraint_size.

NUM_VIOLATION_LS_FIELD_NUMBER = 244
num_violation_ls
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for num_violation_ls.

VIOLATION_LS_PERTURBATION_PERIOD_FIELD_NUMBER = 249
violation_ls_perturbation_period
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for violation_ls_perturbation_period.

VIOLATION_LS_COMPOUND_MOVE_PROBABILITY_FIELD_NUMBER = 259
violation_ls_compound_move_probability
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for violation_ls_compound_move_probability.

SHARED_TREE_NUM_WORKERS_FIELD_NUMBER = 235
shared_tree_num_workers
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for shared_tree_num_workers.

USE_SHARED_TREE_SEARCH_FIELD_NUMBER = 236
SHARED_TREE_WORKER_OBJECTIVE_SPLIT_PROBABILITY_FIELD_NUMBER = 237
shared_tree_worker_objective_split_probability
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for shared_tree_worker_objective_split_probability.

SHARED_TREE_WORKER_MIN_RESTARTS_PER_SUBTREE_FIELD_NUMBER = 282
shared_tree_worker_min_restarts_per_subtree
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for shared_tree_worker_min_restarts_per_subtree.

SHARED_TREE_WORKER_ENABLE_TRAIL_SHARING_FIELD_NUMBER = 295
shared_tree_worker_enable_trail_sharing
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for shared_tree_worker_enable_trail_sharing.

SHARED_TREE_OPEN_LEAVES_PER_WORKER_FIELD_NUMBER = 281
shared_tree_open_leaves_per_worker
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for shared_tree_open_leaves_per_worker.

SHARED_TREE_MAX_NODES_PER_WORKER_FIELD_NUMBER = 238
shared_tree_max_nodes_per_worker
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for shared_tree_max_nodes_per_worker.

SHARED_TREE_SPLIT_STRATEGY_FIELD_NUMBER = 239
shared_tree_split_strategy
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for shared_tree_split_strategy.

ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER = 87
enumerate_all_solutions
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for enumerate_all_solutions.

KEEP_ALL_FEASIBLE_SOLUTIONS_IN_PRESOLVE_FIELD_NUMBER = 173
keep_all_feasible_solutions_in_presolve
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for keep_all_feasible_solutions_in_presolve.

FILL_TIGHTENED_DOMAINS_IN_RESPONSE_FIELD_NUMBER = 132
fill_tightened_domains_in_response
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for fill_tightened_domains_in_response.

FILL_ADDITIONAL_SOLUTIONS_IN_RESPONSE_FIELD_NUMBER = 194
fill_additional_solutions_in_response
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for fill_additional_solutions_in_response.

INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER = 106
instantiate_all_variables
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for instantiate_all_variables.

AUTO_DETECT_GREATER_THAN_AT_LEAST_ONE_OF_FIELD_NUMBER = 95
auto_detect_greater_than_at_least_one_of
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for auto_detect_greater_than_at_least_one_of.

STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER = 98
stop_after_first_solution
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for stop_after_first_solution.

STOP_AFTER_PRESOLVE_FIELD_NUMBER = 149
stop_after_presolve
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for stop_after_presolve.

STOP_AFTER_ROOT_PROPAGATION_FIELD_NUMBER = 252
stop_after_root_propagation
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for stop_after_root_propagation.

USE_LNS_FIELD_NUMBER = 283
use_lns
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_lns.

USE_LNS_ONLY_FIELD_NUMBER = 101
use_lns_only
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_lns_only.

SOLUTION_POOL_SIZE_FIELD_NUMBER = 193
solution_pool_size
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for solution_pool_size.

USE_RINS_LNS_FIELD_NUMBER = 129
use_rins_lns
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_rins_lns.

USE_FEASIBILITY_PUMP_FIELD_NUMBER = 164
use_feasibility_pump
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_feasibility_pump.

USE_LB_RELAX_LNS_FIELD_NUMBER = 255
use_lb_relax_lns
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_lb_relax_lns.

FP_ROUNDING_FIELD_NUMBER = 165
fp_rounding
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for fp_rounding.

DIVERSIFY_LNS_PARAMS_FIELD_NUMBER = 137
diversify_lns_params
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for diversify_lns_params.

RANDOMIZE_SEARCH_FIELD_NUMBER = 103
SEARCH_RANDOM_VARIABLE_POOL_SIZE_FIELD_NUMBER = 104
search_random_variable_pool_size
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for search_random_variable_pool_size.

PUSH_ALL_TASKS_TOWARD_START_FIELD_NUMBER = 262
push_all_tasks_toward_start
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for push_all_tasks_toward_start.

USE_OPTIONAL_VARIABLES_FIELD_NUMBER = 108
use_optional_variables
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_optional_variables.

USE_EXACT_LP_REASON_FIELD_NUMBER = 109
use_exact_lp_reason
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_exact_lp_reason.

USE_COMBINED_NO_OVERLAP_FIELD_NUMBER = 133
use_combined_no_overlap
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_combined_no_overlap.

AT_MOST_ONE_MAX_EXPANSION_SIZE_FIELD_NUMBER = 270
at_most_one_max_expansion_size
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for at_most_one_max_expansion_size.

CATCH_SIGINT_SIGNAL_FIELD_NUMBER = 135
catch_sigint_signal
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for catch_sigint_signal.

USE_IMPLIED_BOUNDS_FIELD_NUMBER = 144
use_implied_bounds
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for use_implied_bounds.

POLISH_LP_SOLUTION_FIELD_NUMBER = 175
polish_lp_solution
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for polish_lp_solution.

LP_PRIMAL_TOLERANCE_FIELD_NUMBER = 266
lp_primal_tolerance
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for lp_primal_tolerance.

LP_DUAL_TOLERANCE_FIELD_NUMBER = 267
lp_dual_tolerance
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for lp_dual_tolerance.

CONVERT_INTERVALS_FIELD_NUMBER = 177
convert_intervals
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for convert_intervals.

SYMMETRY_LEVEL_FIELD_NUMBER = 183
symmetry_level
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for symmetry_level.

NEW_LINEAR_PROPAGATION_FIELD_NUMBER = 224
new_linear_propagation
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for new_linear_propagation.

LINEAR_SPLIT_SIZE_FIELD_NUMBER = 256
linear_split_size
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for linear_split_size.

LINEARIZATION_LEVEL_FIELD_NUMBER = 90
linearization_level
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for linearization_level.

BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER = 107
boolean_encoding_level
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for boolean_encoding_level.

MAX_DOMAIN_SIZE_WHEN_ENCODING_EQ_NEQ_CONSTRAINTS_FIELD_NUMBER = 191
max_domain_size_when_encoding_eq_neq_constraints
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for max_domain_size_when_encoding_eq_neq_constraints.

MAX_NUM_CUTS_FIELD_NUMBER = 91
max_num_cuts
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for max_num_cuts.

CUT_LEVEL_FIELD_NUMBER = 196
cut_level
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for cut_level.

ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER = 92
only_add_cuts_at_level_zero
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for only_add_cuts_at_level_zero.

ADD_OBJECTIVE_CUT_FIELD_NUMBER = 197
add_objective_cut
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for add_objective_cut.

ADD_CG_CUTS_FIELD_NUMBER = 117
add_cg_cuts
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for add_cg_cuts.

ADD_MIR_CUTS_FIELD_NUMBER = 120
add_mir_cuts
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for add_mir_cuts.

ADD_ZERO_HALF_CUTS_FIELD_NUMBER = 169
add_zero_half_cuts
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for add_zero_half_cuts.

ADD_CLIQUE_CUTS_FIELD_NUMBER = 172
add_clique_cuts
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for add_clique_cuts.

ADD_RLT_CUTS_FIELD_NUMBER = 279
add_rlt_cuts
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for add_rlt_cuts.

MAX_ALL_DIFF_CUT_SIZE_FIELD_NUMBER = 148
max_all_diff_cut_size
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for max_all_diff_cut_size.

ADD_LIN_MAX_CUTS_FIELD_NUMBER = 152
add_lin_max_cuts
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for add_lin_max_cuts.

MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER = 119
max_integer_rounding_scaling
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for max_integer_rounding_scaling.

ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER = 112
add_lp_constraints_lazily
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for add_lp_constraints_lazily.

ROOT_LP_ITERATIONS_FIELD_NUMBER = 227
root_lp_iterations
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for root_lp_iterations.

MIN_ORTHOGONALITY_FOR_LP_CONSTRAINTS_FIELD_NUMBER = 115
min_orthogonality_for_lp_constraints
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for min_orthogonality_for_lp_constraints.

MAX_CUT_ROUNDS_AT_LEVEL_ZERO_FIELD_NUMBER = 154
max_cut_rounds_at_level_zero
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for max_cut_rounds_at_level_zero.

MAX_CONSECUTIVE_INACTIVE_COUNT_FIELD_NUMBER = 121
max_consecutive_inactive_count
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for max_consecutive_inactive_count.

CUT_MAX_ACTIVE_COUNT_VALUE_FIELD_NUMBER = 155
cut_max_active_count_value
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for cut_max_active_count_value.

CUT_ACTIVE_COUNT_DECAY_FIELD_NUMBER = 156
cut_active_count_decay
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for cut_active_count_decay.

CUT_CLEANUP_TARGET_FIELD_NUMBER = 157
cut_cleanup_target
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for cut_cleanup_target.

NEW_CONSTRAINTS_BATCH_SIZE_FIELD_NUMBER = 122
new_constraints_batch_size
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for new_constraints_batch_size.

EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER = 94
exploit_integer_lp_solution
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for exploit_integer_lp_solution.

EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER = 116
exploit_all_lp_solution
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for exploit_all_lp_solution.

EXPLOIT_BEST_SOLUTION_FIELD_NUMBER = 130
exploit_best_solution
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for exploit_best_solution.

EXPLOIT_RELAXATION_SOLUTION_FIELD_NUMBER = 161
exploit_relaxation_solution
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for exploit_relaxation_solution.

EXPLOIT_OBJECTIVE_FIELD_NUMBER = 131
exploit_objective
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for exploit_objective.

DETECT_LINEARIZED_PRODUCT_FIELD_NUMBER = 277
detect_linearized_product
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for detect_linearized_product.

MIP_MAX_BOUND_FIELD_NUMBER = 124
mip_max_bound
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for mip_max_bound.

MIP_VAR_SCALING_FIELD_NUMBER = 125
mip_var_scaling
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for mip_var_scaling.

MIP_SCALE_LARGE_DOMAIN_FIELD_NUMBER = 225
mip_scale_large_domain
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for mip_scale_large_domain.

MIP_AUTOMATICALLY_SCALE_VARIABLES_FIELD_NUMBER = 166
mip_automatically_scale_variables
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for mip_automatically_scale_variables.

ONLY_SOLVE_IP_FIELD_NUMBER = 222
only_solve_ip
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for only_solve_ip.

MIP_WANTED_PRECISION_FIELD_NUMBER = 126
mip_wanted_precision
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for mip_wanted_precision.

MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER = 127
mip_max_activity_exponent
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for mip_max_activity_exponent.

MIP_CHECK_PRECISION_FIELD_NUMBER = 128
mip_check_precision
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for mip_check_precision.

MIP_COMPUTE_TRUE_OBJECTIVE_BOUND_FIELD_NUMBER = 198
mip_compute_true_objective_bound
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for mip_compute_true_objective_bound.

MIP_MAX_VALID_MAGNITUDE_FIELD_NUMBER = 199
mip_max_valid_magnitude
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for mip_max_valid_magnitude.

MIP_TREAT_HIGH_MAGNITUDE_BOUNDS_AS_INFINITY_FIELD_NUMBER = 278
mip_treat_high_magnitude_bounds_as_infinity
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for mip_treat_high_magnitude_bounds_as_infinity.

MIP_DROP_TOLERANCE_FIELD_NUMBER = 232
mip_drop_tolerance
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for mip_drop_tolerance.

MIP_PRESOLVE_LEVEL_FIELD_NUMBER = 261
mip_presolve_level
711  def getter(self):
712    # TODO: This may be broken since there may not be
713    # default_value.  Combine with has_default_value somehow.
714    return self._fields.get(field, default_value)

Getter for mip_presolve_level.

def FindInitializationErrors(self):
1302  def FindInitializationErrors(self):
1303    """Finds required fields which are not initialized.
1304
1305    Returns:
1306      A list of strings.  Each string is a path to an uninitialized field from
1307      the top-level message, e.g. "foo.bar[5].baz".
1308    """
1309
1310    errors = []  # simplify things
1311
1312    for field in required_fields:
1313      if not self.HasField(field.name):
1314        errors.append(field.name)
1315
1316    for field, value in self.ListFields():
1317      if field.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE:
1318        if field.is_extension:
1319          name = '(%s)' % field.full_name
1320        else:
1321          name = field.name
1322
1323        if _IsMapField(field):
1324          if _IsMessageMapField(field):
1325            for key in value:
1326              element = value[key]
1327              prefix = '%s[%s].' % (name, key)
1328              sub_errors = element.FindInitializationErrors()
1329              errors += [prefix + error for error in sub_errors]
1330          else:
1331            # ScalarMaps can't have any initialization errors.
1332            pass
1333        elif field.label == _FieldDescriptor.LABEL_REPEATED:
1334          for i in range(len(value)):
1335            element = value[i]
1336            prefix = '%s[%d].' % (name, i)
1337            sub_errors = element.FindInitializationErrors()
1338            errors += [prefix + error for error in sub_errors]
1339        else:
1340          prefix = name + '.'
1341          sub_errors = value.FindInitializationErrors()
1342          errors += [prefix + error for error in sub_errors]
1343
1344    return errors

Finds required fields which are not initialized.

Returns:

A list of strings. Each string is a path to an uninitialized field from the top-level message, e.g. "foo.bar[5].baz".

Inherited Members
google.protobuf.message.Message
CopyFrom
ParseFromString
HasExtension
ClearExtension
UnknownFields