Skip to content

Conversation

@c4v4
Copy link
Contributor

@c4v4 c4v4 commented Apr 17, 2025

Hi,

This PR introduces the outer refinement procedure for the CFT heuristic.
The procedure itself is fairly simple, the main potential source of issues is integrating it cleanly into the existing structure.

const DualState& current_dual_state;
const DualState& best_dual_state;

// Avoid copying unused reduced cost during subgradient
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The DualState abstraction has been introduced to keep multipliers, LB, and reduced costs in sync. However, I noticed some overhead, and after profiling, I saw it was due to needless copies of the "best reduced costs" that can simply be computed once at the end instead.

private:
Cost squared_norm_;

// This addition implements a simplified stabilization technique inspired by
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While the subgradient seems faster at converging with this technique, the multipliers it converges to are often of poorer quality. Furthermore, there are strange interactions between this kind of technique and all the other heuristic and arbitrary parameters. For the time being, we revert to the original implementation.

BaseInt exit_test_countdown_;
BaseInt exit_test_period_;
BaseInt last_core_update_countdown_;
BaseInt unfixed_run_extension_;
Copy link
Contributor Author

@c4v4 c4v4 Apr 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Custom parameter to intensify the subgradient search (i.e., spend more iterations refining the current multipliers). I often use it to manually force higher effort on the subgradient, however, it could become an algorithm parameter.

@c4v4 c4v4 marked this pull request as ready for review April 22, 2025 15:34
@Mizux Mizux requested a review from dourouc05 April 29, 2025 20:30
@Mizux Mizux added Solver: Set Cover Solver in set_cover/ Feature Request Missing Feature/Wrapper labels Apr 29, 2025
@Mizux Mizux added this to the v9.13 milestone Apr 29, 2025
@dourouc05 dourouc05 merged commit 219ce59 into google:main May 13, 2025
1 check passed
Mizux added a commit that referenced this pull request Jun 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Feature Request Missing Feature/Wrapper Solver: Set Cover Solver in set_cover/

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants