-
Notifications
You must be signed in to change notification settings - Fork 209
Recursive RINS #1482
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Recursive RINS #1482
Changes from all commits
aefe31a
ba99a21
727e20e
37182d3
bd7777b
c46eecd
6596b6e
c78007a
20fae2e
d39e424
3328cda
583a6c4
a37acd4
579dc19
b43caab
234361d
f7cd067
b30df80
ce211f3
8b9bf67
92a0f17
9b48c09
d16e641
869cc34
76135a9
371d15f
7d40c07
d5f020e
0a9f7ca
c749322
aef9515
bec9c50
aae222c
d187756
c656ae4
beb4a3d
7d3170b
4a5df0d
fb3d5a1
4a88ad7
3ddb03c
4af4d98
332a683
662110d
49d01e8
cf664ee
45eceba
3f7c9fc
94319e4
346dcfb
4ed7233
74bc227
da4141f
0098b5f
8e9a9d8
4fe0198
a6d9ee6
619d46d
b58a080
57360b1
657d975
45f83c6
1f4b39a
f2f8f7f
52d5ff6
16e74a8
9bb43f4
9003603
dfed856
f758886
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -252,14 +252,14 @@ endif () | |
|
|
||
| FetchContent_Declare( | ||
| papilo | ||
| GIT_REPOSITORY "https://github.com/scipopt/papilo.git" | ||
| GIT_REPOSITORY "https://github.com/nguidotti/papilo.git" | ||
| # We would want to get the main branch. However, the main branch | ||
| # does not have some of the presolvers and settings that we need | ||
| # Mainly, probing and clique merging. | ||
| # This is the reason we are using the development branch | ||
| # from Oct 12, 2025. Once these changes are merged into the main branch, | ||
| #we can switch to the main branch. | ||
| GIT_TAG "741a2b9c8155b249d6df574d758b4d97d4417520" | ||
| GIT_TAG "0cfea20c5655249174dbd04f0fb7bd6b1f6e9a0c" | ||
|
Comment on lines
253
to
+262
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why do we pin on your repo? Is it because of a required upstream fix? If so, we probably should wait until it is merged before merging the PR instead of depending on a personal repo (or at least, track that with an issue)
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yeah, this is only temporary. I will wait for scipopt/papilo#89 to merged before merging this PR |
||
| GIT_PROGRESS TRUE | ||
| EXCLUDE_FROM_ALL | ||
| SYSTEM | ||
|
|
@@ -293,13 +293,13 @@ set(BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS_SAVED}) | |
| # dejavu - header-only graph automorphism library for MIP symmetry detection | ||
| # https://github.com/markusa4/dejavu (header-only, skip its CMakeLists.txt) | ||
| FetchContent_Declare( | ||
| dejavu | ||
| GIT_REPOSITORY "https://github.com/markusa4/dejavu.git" | ||
| GIT_TAG "v2.1" | ||
| GIT_PROGRESS TRUE | ||
| EXCLUDE_FROM_ALL | ||
| SYSTEM | ||
| SOURCE_SUBDIR _nonexistent | ||
| dejavu | ||
| GIT_REPOSITORY "https://github.com/markusa4/dejavu.git" | ||
| GIT_TAG "v2.1" | ||
| GIT_PROGRESS TRUE | ||
| EXCLUDE_FROM_ALL | ||
| SYSTEM | ||
| SOURCE_SUBDIR _nonexistent | ||
| ) | ||
| FetchContent_MakeAvailable(dejavu) | ||
| message(STATUS "dejavu (graph automorphism): ${dejavu_SOURCE_DIR}") | ||
|
|
@@ -369,7 +369,7 @@ if (NOT SKIP_GRPC_BUILD) | |
|
|
||
| # Proto search paths: manual protos in src/grpc, generated data proto in src/grpc/codegen/generated | ||
| set(PROTO_PATH_MANUAL "${CMAKE_CURRENT_SOURCE_DIR}/src/grpc") | ||
| set(PROTO_PATH_GEN "${CMAKE_CURRENT_SOURCE_DIR}/src/grpc/codegen/generated") | ||
| set(PROTO_PATH_GEN "${CMAKE_CURRENT_SOURCE_DIR}/src/grpc/codegen/generated") | ||
|
|
||
| # Generate C++ code from cuopt_remote_data.proto (auto-generated data definitions) | ||
| set(DATA_PROTO_FILE "${PROTO_PATH_GEN}/cuopt_remote_data.proto") | ||
|
|
@@ -441,8 +441,8 @@ add_subdirectory(src) | |
| # nvcc 13.0.3 ICE (signal 11) compiling sliding_window.cu with 7 GPU architectures; | ||
| # --split-compile breaks the codegen into per-arch sub-jobs to avoid the crash | ||
| set_source_files_properties( | ||
| ${CMAKE_CURRENT_SOURCE_DIR}/src/routing/local_search/sliding_window.cu | ||
| PROPERTIES COMPILE_OPTIONS "--split-compile=0") | ||
| ${CMAKE_CURRENT_SOURCE_DIR}/src/routing/local_search/sliding_window.cu | ||
| PROPERTIES COMPILE_OPTIONS "--split-compile=0") | ||
|
|
||
| if (HOST_LINEINFO) | ||
| set_source_files_properties(${CUOPT_SRC_FILES} DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTIES COMPILE_OPTIONS "-g1") | ||
|
|
@@ -495,8 +495,8 @@ set_target_properties(cuopt | |
| ) | ||
|
|
||
| target_compile_definitions(cuopt | ||
| PUBLIC "CUOPT_LOG_ACTIVE_LEVEL=RAPIDS_LOGGER_LOG_LEVEL_${LIBCUOPT_LOGGING_LEVEL}" | ||
| PUBLIC CUSPARSE_ENABLE_EXPERIMENTAL_API | ||
| PUBLIC "CUOPT_LOG_ACTIVE_LEVEL=RAPIDS_LOGGER_LOG_LEVEL_${LIBCUOPT_LOGGING_LEVEL}" | ||
| PUBLIC CUSPARSE_ENABLE_EXPERIMENTAL_API | ||
| ) | ||
|
|
||
| target_compile_options(cuopt | ||
|
|
@@ -528,8 +528,8 @@ target_include_directories(cuopt PRIVATE | |
| ) | ||
|
|
||
| target_include_directories(cuopt SYSTEM PRIVATE | ||
| "${pslp_SOURCE_DIR}/include" | ||
| "${dejavu_SOURCE_DIR}" | ||
| "${pslp_SOURCE_DIR}/include" | ||
| "${dejavu_SOURCE_DIR}" | ||
| ) | ||
|
|
||
| target_include_directories(cuopt | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,46 @@ | ||
| /* clang-format off */ | ||
| /* | ||
| * SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. | ||
| * SPDX-License-Identifier: Apache-2.0 | ||
| */ | ||
| /* clang-format on */ | ||
|
|
||
| #pragma once | ||
|
|
||
| /** | ||
| * @brief Tuning knobs for the recursive sub-MIP. | ||
| */ | ||
| template <typename i_t, typename f_t> | ||
| struct mip_submip_hyper_params_t { | ||
| // Enable or disable (recursive) RINS: -1 automatic, 0 disabled, 1 enabled | ||
| i_t rins = -1; | ||
|
|
||
| // Base for calculating the target fix rate for the neighbourhood. Actual target value is | ||
| // determined automatically according to the success and infeasible rate. | ||
| f_t base_target_fixrate = 0.6; | ||
|
|
||
| // Minimum fix rate for accepting the neighbourhood. | ||
| f_t min_fixrate = 0.25; | ||
|
|
||
| // Hard cap for the minimum fix rate for solving a sub-MIP. | ||
| f_t min_fixrate_cap = 0.1; | ||
|
|
||
| // MIP gap for the sub-MIP (unless the MIP gap from the B&B is lower) | ||
| f_t target_mip_gap = 0.01; | ||
|
|
||
| // The base node limit for the sub-MIP | ||
| i_t node_limit_base = 200; | ||
|
|
||
| // The current level in the recursion. This is an internal parameter and will set automatically. | ||
| i_t level = 0; | ||
|
|
||
| // Maximum recursion level | ||
| i_t max_level = 10; | ||
|
|
||
| // Limit the number of simplex iterations spent in the submip. Set as a factor of the total | ||
| // number of simplex iteration from the parent B&B. | ||
| f_t iteration_limit_ratio = 0.8; | ||
|
|
||
| // Run CPU FJ over the sub-MIP | ||
| bool enable_cpufj = true; | ||
| }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this intentional?
We should not be getting papilo from developer forks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, this is only temporary. I will wait for scipopt/papilo#89 to merged before merging this PR