|
20 | 20 | #define CUOPT_INSTANTIATE_INT64 0 |
21 | 21 |
|
22 | 22 | /* @brief LP/MIP parameter string constants */ |
23 | | -#define CUOPT_ABSOLUTE_DUAL_TOLERANCE "absolute_dual_tolerance" |
24 | | -#define CUOPT_RELATIVE_DUAL_TOLERANCE "relative_dual_tolerance" |
25 | | -#define CUOPT_ABSOLUTE_PRIMAL_TOLERANCE "absolute_primal_tolerance" |
26 | | -#define CUOPT_RELATIVE_PRIMAL_TOLERANCE "relative_primal_tolerance" |
27 | | -#define CUOPT_ABSOLUTE_GAP_TOLERANCE "absolute_gap_tolerance" |
28 | | -#define CUOPT_RELATIVE_GAP_TOLERANCE "relative_gap_tolerance" |
29 | | -#define CUOPT_INFEASIBILITY_DETECTION "infeasibility_detection" |
30 | | -#define CUOPT_STRICT_INFEASIBILITY "strict_infeasibility" |
31 | | -#define CUOPT_PRIMAL_INFEASIBLE_TOLERANCE "primal_infeasible_tolerance" |
32 | | -#define CUOPT_DUAL_INFEASIBLE_TOLERANCE "dual_infeasible_tolerance" |
33 | | -#define CUOPT_ITERATION_LIMIT "iteration_limit" |
34 | | -#define CUOPT_TIME_LIMIT "time_limit" |
35 | | -#define CUOPT_WORK_LIMIT "work_limit" |
36 | | -#define CUOPT_PDLP_SOLVER_MODE "pdlp_solver_mode" |
37 | | -#define CUOPT_METHOD "method" |
38 | | -#define CUOPT_PER_CONSTRAINT_RESIDUAL "per_constraint_residual" |
39 | | -#define CUOPT_SAVE_BEST_PRIMAL_SO_FAR "save_best_primal_so_far" |
40 | | -#define CUOPT_FIRST_PRIMAL_FEASIBLE "first_primal_feasible" |
41 | | -#define CUOPT_LOG_FILE "log_file" |
42 | | -#define CUOPT_LOG_TO_CONSOLE "log_to_console" |
43 | | -#define CUOPT_CROSSOVER "crossover" |
44 | | -#define CUOPT_FOLDING "folding" |
45 | | -#define CUOPT_AUGMENTED "augmented" |
46 | | -#define CUOPT_DUALIZE "dualize" |
47 | | -#define CUOPT_ORDERING "ordering" |
48 | | -#define CUOPT_BARRIER_DUAL_INITIAL_POINT "barrier_dual_initial_point" |
49 | | -#define CUOPT_ELIMINATE_DENSE_COLUMNS "eliminate_dense_columns" |
50 | | -#define CUOPT_CUDSS_DETERMINISTIC "cudss_deterministic" |
51 | | -#define CUOPT_PRESOLVE "presolve" |
52 | | -#define CUOPT_DUAL_POSTSOLVE "dual_postsolve" |
53 | | -#define CUOPT_MIP_DETERMINISM_MODE "mip_determinism_mode" |
54 | | -#define CUOPT_MIP_ABSOLUTE_TOLERANCE "mip_absolute_tolerance" |
55 | | -#define CUOPT_MIP_RELATIVE_TOLERANCE "mip_relative_tolerance" |
56 | | -#define CUOPT_MIP_INTEGRALITY_TOLERANCE "mip_integrality_tolerance" |
57 | | -#define CUOPT_MIP_ABSOLUTE_GAP "mip_absolute_gap" |
58 | | -#define CUOPT_MIP_RELATIVE_GAP "mip_relative_gap" |
59 | | -#define CUOPT_MIP_HEURISTICS_ONLY "mip_heuristics_only" |
60 | | -#define CUOPT_MIP_SCALING "mip_scaling" |
61 | | -#define CUOPT_MIP_PRESOLVE "mip_presolve" |
62 | | -#define CUOPT_MIP_RELIABILITY_BRANCHING "mip_reliability_branching" |
63 | | -#define CUOPT_MIP_CUT_PASSES "mip_cut_passes" |
64 | | -#define CUOPT_MIP_MIXED_INTEGER_ROUNDING_CUTS "mip_mixed_integer_rounding_cuts" |
65 | | -#define CUOPT_MIP_MIXED_INTEGER_GOMORY_CUTS "mip_mixed_integer_gomory_cuts" |
66 | | -#define CUOPT_MIP_KNAPSACK_CUTS "mip_knapsack_cuts" |
67 | | -#define CUOPT_MIP_IMPLIED_BOUND_CUTS "mip_implied_bound_cuts" |
68 | | -#define CUOPT_MIP_CLIQUE_CUTS "mip_clique_cuts" |
69 | | -#define CUOPT_MIP_STRONG_CHVATAL_GOMORY_CUTS "mip_strong_chvatal_gomory_cuts" |
70 | | -#define CUOPT_MIP_REDUCED_COST_STRENGTHENING "mip_reduced_cost_strengthening" |
71 | | -#define CUOPT_MIP_CUT_CHANGE_THRESHOLD "mip_cut_change_threshold" |
72 | | -#define CUOPT_MIP_CUT_MIN_ORTHOGONALITY "mip_cut_min_orthogonality" |
73 | | -#define CUOPT_MIP_BATCH_PDLP_STRONG_BRANCHING "mip_batch_pdlp_strong_branching" |
74 | | -#define CUOPT_SOLUTION_FILE "solution_file" |
75 | | -#define CUOPT_NUM_CPU_THREADS "num_cpu_threads" |
76 | | -#define CUOPT_NUM_GPUS "num_gpus" |
77 | | -#define CUOPT_USER_PROBLEM_FILE "user_problem_file" |
78 | | -#define CUOPT_PRESOLVE_FILE "presolve_file" |
79 | | -#define CUOPT_RANDOM_SEED "random_seed" |
80 | | -#define CUOPT_PDLP_PRECISION "pdlp_precision" |
| 23 | +#define CUOPT_ABSOLUTE_DUAL_TOLERANCE "absolute_dual_tolerance" |
| 24 | +#define CUOPT_RELATIVE_DUAL_TOLERANCE "relative_dual_tolerance" |
| 25 | +#define CUOPT_ABSOLUTE_PRIMAL_TOLERANCE "absolute_primal_tolerance" |
| 26 | +#define CUOPT_RELATIVE_PRIMAL_TOLERANCE "relative_primal_tolerance" |
| 27 | +#define CUOPT_ABSOLUTE_GAP_TOLERANCE "absolute_gap_tolerance" |
| 28 | +#define CUOPT_RELATIVE_GAP_TOLERANCE "relative_gap_tolerance" |
| 29 | +#define CUOPT_INFEASIBILITY_DETECTION "infeasibility_detection" |
| 30 | +#define CUOPT_STRICT_INFEASIBILITY "strict_infeasibility" |
| 31 | +#define CUOPT_PRIMAL_INFEASIBLE_TOLERANCE "primal_infeasible_tolerance" |
| 32 | +#define CUOPT_DUAL_INFEASIBLE_TOLERANCE "dual_infeasible_tolerance" |
| 33 | +#define CUOPT_ITERATION_LIMIT "iteration_limit" |
| 34 | +#define CUOPT_TIME_LIMIT "time_limit" |
| 35 | +#define CUOPT_WORK_LIMIT "work_limit" |
| 36 | +#define CUOPT_PDLP_SOLVER_MODE "pdlp_solver_mode" |
| 37 | +#define CUOPT_METHOD "method" |
| 38 | +#define CUOPT_PER_CONSTRAINT_RESIDUAL "per_constraint_residual" |
| 39 | +#define CUOPT_SAVE_BEST_PRIMAL_SO_FAR "save_best_primal_so_far" |
| 40 | +#define CUOPT_FIRST_PRIMAL_FEASIBLE "first_primal_feasible" |
| 41 | +#define CUOPT_LOG_FILE "log_file" |
| 42 | +#define CUOPT_LOG_TO_CONSOLE "log_to_console" |
| 43 | +#define CUOPT_CROSSOVER "crossover" |
| 44 | +#define CUOPT_FOLDING "folding" |
| 45 | +#define CUOPT_AUGMENTED "augmented" |
| 46 | +#define CUOPT_DUALIZE "dualize" |
| 47 | +#define CUOPT_ORDERING "ordering" |
| 48 | +#define CUOPT_BARRIER_DUAL_INITIAL_POINT "barrier_dual_initial_point" |
| 49 | +#define CUOPT_ELIMINATE_DENSE_COLUMNS "eliminate_dense_columns" |
| 50 | +#define CUOPT_CUDSS_DETERMINISTIC "cudss_deterministic" |
| 51 | +#define CUOPT_PRESOLVE "presolve" |
| 52 | +#define CUOPT_DUAL_POSTSOLVE "dual_postsolve" |
| 53 | +#define CUOPT_MIP_DETERMINISM_MODE "mip_determinism_mode" |
| 54 | +#define CUOPT_MIP_ABSOLUTE_TOLERANCE "mip_absolute_tolerance" |
| 55 | +#define CUOPT_MIP_RELATIVE_TOLERANCE "mip_relative_tolerance" |
| 56 | +#define CUOPT_MIP_INTEGRALITY_TOLERANCE "mip_integrality_tolerance" |
| 57 | +#define CUOPT_MIP_ABSOLUTE_GAP "mip_absolute_gap" |
| 58 | +#define CUOPT_MIP_RELATIVE_GAP "mip_relative_gap" |
| 59 | +#define CUOPT_MIP_HEURISTICS_ONLY "mip_heuristics_only" |
| 60 | +#define CUOPT_MIP_SCALING "mip_scaling" |
| 61 | +#define CUOPT_MIP_PRESOLVE "mip_presolve" |
| 62 | +#define CUOPT_MIP_RELIABILITY_BRANCHING "mip_reliability_branching" |
| 63 | +#define CUOPT_MIP_CUT_PASSES "mip_cut_passes" |
| 64 | +#define CUOPT_MIP_MIXED_INTEGER_ROUNDING_CUTS "mip_mixed_integer_rounding_cuts" |
| 65 | +#define CUOPT_MIP_MIXED_INTEGER_GOMORY_CUTS "mip_mixed_integer_gomory_cuts" |
| 66 | +#define CUOPT_MIP_KNAPSACK_CUTS "mip_knapsack_cuts" |
| 67 | +#define CUOPT_MIP_IMPLIED_BOUND_CUTS "mip_implied_bound_cuts" |
| 68 | +#define CUOPT_MIP_CLIQUE_CUTS "mip_clique_cuts" |
| 69 | +#define CUOPT_MIP_STRONG_CHVATAL_GOMORY_CUTS "mip_strong_chvatal_gomory_cuts" |
| 70 | +#define CUOPT_MIP_REDUCED_COST_STRENGTHENING "mip_reduced_cost_strengthening" |
| 71 | +#define CUOPT_MIP_CUT_CHANGE_THRESHOLD "mip_cut_change_threshold" |
| 72 | +#define CUOPT_MIP_CUT_MIN_ORTHOGONALITY "mip_cut_min_orthogonality" |
| 73 | +#define CUOPT_MIP_BATCH_PDLP_STRONG_BRANCHING "mip_batch_pdlp_strong_branching" |
| 74 | +#define CUOPT_MIP_BATCH_PDLP_RELIABILITY_BRANCHING "mip_batch_pdlp_reliability_branching" |
| 75 | +#define CUOPT_MIP_STRONG_BRANCHING_SIMPLEX_ITERATION_LIMIT \ |
| 76 | + "mip_strong_branching_simplex_iteration_limit" |
| 77 | +#define CUOPT_SOLUTION_FILE "solution_file" |
| 78 | +#define CUOPT_NUM_CPU_THREADS "num_cpu_threads" |
| 79 | +#define CUOPT_NUM_GPUS "num_gpus" |
| 80 | +#define CUOPT_USER_PROBLEM_FILE "user_problem_file" |
| 81 | +#define CUOPT_PRESOLVE_FILE "presolve_file" |
| 82 | +#define CUOPT_RANDOM_SEED "random_seed" |
| 83 | +#define CUOPT_PDLP_PRECISION "pdlp_precision" |
| 84 | + |
| 85 | +#define CUOPT_MIP_HYPER_HEURISTIC_POPULATION_SIZE "mip_hyper_heuristic_population_size" |
| 86 | +#define CUOPT_MIP_HYPER_HEURISTIC_NUM_CPUFJ_THREADS "mip_hyper_heuristic_num_cpufj_threads" |
| 87 | +#define CUOPT_MIP_HYPER_HEURISTIC_PRESOLVE_TIME_RATIO "mip_hyper_heuristic_presolve_time_ratio" |
| 88 | +#define CUOPT_MIP_HYPER_HEURISTIC_PRESOLVE_MAX_TIME "mip_hyper_heuristic_presolve_max_time" |
| 89 | +#define CUOPT_MIP_HYPER_HEURISTIC_ROOT_LP_TIME_RATIO "mip_hyper_heuristic_root_lp_time_ratio" |
| 90 | +#define CUOPT_MIP_HYPER_HEURISTIC_ROOT_LP_MAX_TIME "mip_hyper_heuristic_root_lp_max_time" |
| 91 | +#define CUOPT_MIP_HYPER_HEURISTIC_RINS_TIME_LIMIT "mip_hyper_heuristic_rins_time_limit" |
| 92 | +#define CUOPT_MIP_HYPER_HEURISTIC_RINS_MAX_TIME_LIMIT "mip_hyper_heuristic_rins_max_time_limit" |
| 93 | +#define CUOPT_MIP_HYPER_HEURISTIC_RINS_FIX_RATE "mip_hyper_heuristic_rins_fix_rate" |
| 94 | +#define CUOPT_MIP_HYPER_HEURISTIC_STAGNATION_TRIGGER "mip_hyper_heuristic_stagnation_trigger" |
| 95 | +#define CUOPT_MIP_HYPER_HEURISTIC_MAX_ITERS_WITHOUT_IMPROVEMENT \ |
| 96 | + "mip_hyper_heuristic_max_iterations_without_improvement" |
| 97 | +#define CUOPT_MIP_HYPER_HEURISTIC_INITIAL_INFEASIBILITY_WEIGHT \ |
| 98 | + "mip_hyper_heuristic_initial_infeasibility_weight" |
| 99 | +#define CUOPT_MIP_HYPER_HEURISTIC_N_OF_MINIMUMS_FOR_EXIT \ |
| 100 | + "mip_hyper_heuristic_n_of_minimums_for_exit" |
| 101 | +#define CUOPT_MIP_HYPER_HEURISTIC_ENABLED_RECOMBINERS "mip_hyper_heuristic_enabled_recombiners" |
| 102 | +#define CUOPT_MIP_HYPER_HEURISTIC_CYCLE_DETECTION_LENGTH \ |
| 103 | + "mip_hyper_heuristic_cycle_detection_length" |
| 104 | +#define CUOPT_MIP_HYPER_HEURISTIC_RELAXED_LP_TIME_LIMIT "mip_hyper_heuristic_relaxed_lp_time_limit" |
| 105 | +#define CUOPT_MIP_HYPER_HEURISTIC_RELATED_VARS_TIME_LIMIT \ |
| 106 | + "mip_hyper_heuristic_related_vars_time_limit" |
81 | 107 |
|
82 | 108 | /* @brief MIP determinism mode constants */ |
83 | 109 | #define CUOPT_MODE_OPPORTUNISTIC 0 |
|
129 | 155 | #define CUOPT_METHOD_PDLP 1 |
130 | 156 | #define CUOPT_METHOD_DUAL_SIMPLEX 2 |
131 | 157 | #define CUOPT_METHOD_BARRIER 3 |
| 158 | +#define CUOPT_METHOD_UNSET 4 |
132 | 159 |
|
133 | 160 | /* @brief PDLP precision mode constants */ |
134 | 161 | #define CUOPT_PDLP_DEFAULT_PRECISION -1 |
|
153 | 180 | #define CUOPT_PRESOLVE_PAPILO 1 |
154 | 181 | #define CUOPT_PRESOLVE_PSLP 2 |
155 | 182 |
|
| 183 | +/* @brief MIP scaling mode constants */ |
| 184 | +#define CUOPT_MIP_SCALING_OFF 0 |
| 185 | +#define CUOPT_MIP_SCALING_ON 1 |
| 186 | +#define CUOPT_MIP_SCALING_NO_OBJECTIVE 2 |
| 187 | + |
156 | 188 | #endif // CUOPT_CONSTANTS_H |
0 commit comments