🧩 Constraint Solving POTD:Problem of the Day: Hybrid Constraint Programming & Machine Learning #38606
Closed
Replies: 1 comment
-
|
This discussion has been marked as outdated by Constraint Solving — Problem of the Day. A newer discussion is available at Discussion #39217. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Constraint Solving Problem of the Day: Hybrid CP/ML for Combinatorial Optimization
Problem Statement
Modern constraint solving increasingly benefits from combining Constraint Programming (CP) with Machine Learning (ML). The challenge: given a combinatorial optimization problem, how can we use ML to predict good heuristics, variable orderings, or even solution patterns that accelerate CP solvers?
Concrete Instance
Consider a job-shop scheduling problem with 5 jobs and 5 machines:
Traditional CP approach: Use generic heuristics (e.g., "most-constrained-variable") to search through ~10^15 possibilities.
Hybrid CP/ML approach:
Input/Output Specification
Input:
Output:
Why It Matters
Real-world applications:
Modeling Approaches
Approach 1: ML for Variable Ordering (Ranking-Based Guidance)
Paradigm: Supervised learning + CP with learned heuristics
Idea: Train an ML classifier (e.g., gradient boosted decision tree or neural network) to predict, given a partial assignment state, which unassigned variable is most "critical" to assign next.
Decision variables (CP side):
x_ij ∈ {1..m}: taskiof jobjassigned to machines_ij ≥ 0: start time of taskiof jobjConstraints (standard job-shop):
(i,j)must start after task(i-1,j)completesmax(s_ij + d_ij)minimizedML component:
Trade-offs:
Approach 2: Neural Network as Relaxation Surrogate
Paradigm: Hybrid ML + relaxation + bounding
Idea: Train a neural network to approximate the linear programming (LP) relaxation of the problem. Use NN predictions as fast bounds during branch-and-bound to prune subtrees aggressively.
Decision variables (CP side): same as above
ML component:
Trade-offs:
Key Techniques
1. Feature Engineering for Problem Structure
Extracting the right features from a partial search state is critical:
Strong features lead to models that generalize to unseen problem instances.
2. Importance Sampling & Transfer Learning
Training data is expensive to generate. Techniques to maximize it:
3. Online Learning & Adaptation
Not all training happens offline:
Challenge Corner
Here are two questions to deepen your understanding:
Feature robustness: Suppose you train an ML model on job-shop problems with 5–10 machines. If you deploy it on a problem with 50 machines, why might the model's rankings become unreliable? How would you design features or training data to make the model more scale-robust?
Trustworthiness in safety-critical domains: Imagine using an ML-guided CP solver for hospital staff rostering (where scheduling errors directly affect patient care). How would you validate that the learned heuristics don't systematically miss regulations or fairness constraints? Should you always fall back to a slow but proven approach for final verification?
References
Bengio, Y., Lodi, A., & Prouvost, A. (2021). "Machine Learning for Combinatorial Optimization: A Methodological Survey." European Journal of Operational Research, 296(2), 393–406.
Vesselinova, N., Steinert, R., Perez-Liebana, D., & Lellmann, S. (2021). "Learning to Solve Large-Scale Security-Constrained Unit Commitment Problems." INFORMS Journal on Computing, 33(4), 1263–1280.
Lombardi, M., Milano, M., & Bartolini, A. (2017). "Empirical Decision Model Learning." Artificial Intelligence, 244, 343–367.
Khalil, E., Le Bodic, P., Song, L., Nemhauser, G., & Dilkina, B. (2016). "Learning Combinatorial Optimization Algorithms over Graphs." NeurIPS, 29.
Next time: What emerging techniques would you recommend for scaling this approach to problems with thousands of variables?
Beta Was this translation helpful? Give feedback.
All reactions