|
2 | 2 | title: "cuOpt MIP C API Reference" |
3 | 3 | --- |
4 | 4 |
|
5 | | -This section contains the cuOpt MIP C API reference. Functions for problem creation, solver settings, solving, and inspecting solutions are shared with convex optimization and documented in [Convex C Api](convex-c-api). |
| 5 | +This section contains the cuOpt MIP C API reference. Functions for problem creation, solver settings, solving, and inspecting solutions are shared with convex optimization and documented in [Convex C API](../convex/convex-c-api). |
6 | 6 |
|
7 | 7 | ## Warm Start and MIP Start |
8 | 8 |
|
9 | | -For LP problems solved with PDLP, see [Convex C Api](convex-c-api) for primal and dual warm start. |
10 | | - |
11 | | -For MIP problems, one or more primal solution hints (MIP starts) may be provided: |
| 9 | +For LP problems solved with PDLP, see [Convex C API](../convex/convex-c-api) for primal and dual warm start. For MIP problems, one or more primal solution hints (MIP starts) may be provided. |
12 | 10 |
|
13 | 11 | <hr /> |
14 | 12 |
|
@@ -100,7 +98,7 @@ Registering a set-solution callback disables presolve. The callback arguments re |
100 | 98 |
|
101 | 99 | ## MIP Parameter Constants |
102 | 100 |
|
103 | | -These constants configure MIP-specific solver behavior. Use them with `cuOptSetParameter`, `cuOptSetIntegerParameter`, or `cuOptSetFloatParameter`. For shared parameters (time limit, logging, presolve, etc.), see parameter-constants in the convex API reference. |
| 101 | +These constants configure MIP-specific solver behavior. Use them with `cuOptSetParameter`, `cuOptSetIntegerParameter`, or `cuOptSetFloatParameter`. For shared parameters (time limit, logging, presolve, etc.), see [Parameter Constants](../convex/convex-c-api#parameter-constants) in the convex API reference. |
104 | 102 |
|
105 | 103 | - `CUOPT_NODE_LIMIT` (`"node_limit"`) |
106 | 104 | - `CUOPT_WORK_LIMIT` (`"work_limit"`) |
@@ -136,9 +134,55 @@ These constants configure MIP-specific solver behavior. Use them with `cuOptSetP |
136 | 134 | - `CUOPT_MIP_STRONG_BRANCHING_SIMPLEX_ITERATION_LIMIT` (`"mip_strong_branching_simplex_iteration_limit"`) |
137 | 135 | - `CUOPT_MIP_SEMICONTINUOUS_BIG_M` (`"mip_semi_continuous_big_m"`) |
138 | 136 |
|
| 137 | +## MIP Scaling Constants |
| 138 | + |
| 139 | +These constants are used to configure `CUOPT_MIP_SCALING` via `cuOptSetIntegerParameter`. |
| 140 | + |
| 141 | +- `CUOPT_MIP_SCALING_OFF` (`0`) |
| 142 | +- `CUOPT_MIP_SCALING_ON` (`1`) |
| 143 | +- `CUOPT_MIP_SCALING_NO_OBJECTIVE` (`2`) |
| 144 | + |
139 | 145 | ## MIP Determinism Mode Constants |
140 | 146 |
|
141 | 147 | These constants are used to configure `CUOPT_MIP_DETERMINISM_MODE` via `cuOptSetIntegerParameter`. |
142 | 148 |
|
143 | 149 | - `CUOPT_MODE_OPPORTUNISTIC` (`0`) |
144 | 150 | - `CUOPT_MODE_DETERMINISTIC` (`1`) |
| 151 | + |
| 152 | +## MIP Hyper Diving Parameters |
| 153 | + |
| 154 | +These constants configure the hyper diving heuristic. Use them with `cuOptSetParameter`, `cuOptSetIntegerParameter`, or `cuOptSetFloatParameter`. |
| 155 | + |
| 156 | +- `CUOPT_MIP_HYPER_DIVING_BACKTRACK_LIMIT` (`"mip_hyper_diving_backtrack_limit"`) |
| 157 | +- `CUOPT_MIP_HYPER_DIVING_COEFFICIENT` (`"mip_hyper_diving_coefficient"`) |
| 158 | +- `CUOPT_MIP_HYPER_DIVING_FARKAS` (`"mip_hyper_diving_farkas"`) |
| 159 | +- `CUOPT_MIP_HYPER_DIVING_GUIDED` (`"mip_hyper_diving_guided"`) |
| 160 | +- `CUOPT_MIP_HYPER_DIVING_ITERATION_LIMIT_FACTOR` (`"mip_hyper_diving_iteration_limit_factor"`) |
| 161 | +- `CUOPT_MIP_HYPER_DIVING_LINE_SEARCH` (`"mip_hyper_diving_line_search"`) |
| 162 | +- `CUOPT_MIP_HYPER_DIVING_MIN_NODE_DEPTH` (`"mip_hyper_diving_min_node_depth"`) |
| 163 | +- `CUOPT_MIP_HYPER_DIVING_NODE_LIMIT` (`"mip_hyper_diving_node_limit"`) |
| 164 | +- `CUOPT_MIP_HYPER_DIVING_PSEUDOCOST` (`"mip_hyper_diving_pseudocost"`) |
| 165 | +- `CUOPT_MIP_HYPER_DIVING_SHOW_TYPE` (`"mip_hyper_diving_show_type"`) |
| 166 | +- `CUOPT_MIP_HYPER_DIVING_VECTOR_LENGTH` (`"mip_hyper_diving_vector_length"`) |
| 167 | + |
| 168 | +## MIP Hyper Heuristic Parameters |
| 169 | + |
| 170 | +These constants configure the hyper heuristic solver. Use them with `cuOptSetParameter`, `cuOptSetIntegerParameter`, or `cuOptSetFloatParameter`. |
| 171 | + |
| 172 | +- `CUOPT_MIP_HYPER_HEURISTIC_CYCLE_DETECTION_LENGTH` (`"mip_hyper_heuristic_cycle_detection_length"`) |
| 173 | +- `CUOPT_MIP_HYPER_HEURISTIC_ENABLED_RECOMBINERS` (`"mip_hyper_heuristic_enabled_recombiners"`) |
| 174 | +- `CUOPT_MIP_HYPER_HEURISTIC_INITIAL_INFEASIBILITY_WEIGHT` (`"mip_hyper_heuristic_initial_infeasibility_weight"`) |
| 175 | +- `CUOPT_MIP_HYPER_HEURISTIC_MAX_ITERS_WITHOUT_IMPROVEMENT` (`"mip_hyper_heuristic_max_iterations_without_improvement"`) |
| 176 | +- `CUOPT_MIP_HYPER_HEURISTIC_NUM_CPUFJ_THREADS` (`"mip_hyper_heuristic_num_cpufj_threads"`) |
| 177 | +- `CUOPT_MIP_HYPER_HEURISTIC_N_OF_MINIMUMS_FOR_EXIT` (`"mip_hyper_heuristic_n_of_minimums_for_exit"`) |
| 178 | +- `CUOPT_MIP_HYPER_HEURISTIC_POPULATION_SIZE` (`"mip_hyper_heuristic_population_size"`) |
| 179 | +- `CUOPT_MIP_HYPER_HEURISTIC_PRESOLVE_MAX_TIME` (`"mip_hyper_heuristic_presolve_max_time"`) |
| 180 | +- `CUOPT_MIP_HYPER_HEURISTIC_PRESOLVE_TIME_RATIO` (`"mip_hyper_heuristic_presolve_time_ratio"`) |
| 181 | +- `CUOPT_MIP_HYPER_HEURISTIC_RELATED_VARS_TIME_LIMIT` (`"mip_hyper_heuristic_related_vars_time_limit"`) |
| 182 | +- `CUOPT_MIP_HYPER_HEURISTIC_RELAXED_LP_TIME_LIMIT` (`"mip_hyper_heuristic_relaxed_lp_time_limit"`) |
| 183 | +- `CUOPT_MIP_HYPER_HEURISTIC_RINS_FIX_RATE` (`"mip_hyper_heuristic_rins_fix_rate"`) |
| 184 | +- `CUOPT_MIP_HYPER_HEURISTIC_RINS_MAX_TIME_LIMIT` (`"mip_hyper_heuristic_rins_max_time_limit"`) |
| 185 | +- `CUOPT_MIP_HYPER_HEURISTIC_RINS_TIME_LIMIT` (`"mip_hyper_heuristic_rins_time_limit"`) |
| 186 | +- `CUOPT_MIP_HYPER_HEURISTIC_ROOT_LP_MAX_TIME` (`"mip_hyper_heuristic_root_lp_max_time"`) |
| 187 | +- `CUOPT_MIP_HYPER_HEURISTIC_ROOT_LP_TIME_RATIO` (`"mip_hyper_heuristic_root_lp_time_ratio"`) |
| 188 | +- `CUOPT_MIP_HYPER_HEURISTIC_STAGNATION_TRIGGER` (`"mip_hyper_heuristic_stagnation_trigger"`) |
0 commit comments