-
Notifications
You must be signed in to change notification settings - Fork 2
Best bound #4
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?
Best bound #4
Conversation
Vorokhalice
commented
Jun 3, 2025
- I cannot create a new branch in you repo, but it would have been great
- The foss toolchain for aion is now 2023, not 2020
- I am not sure, how good this implementation is. As a config, I have now time limit too, which plays role for the BnB trees (they now run while the pool/bag is not empty and time is less than time limit). For nodes, I also have a field for best bounds. I wanted to do it just for minimisation/maximisation problems like PFSP/Knapsack, however, when ...
improve reading best lb for knapsack
Guillaume-Helbecque
left a comment
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.
Hi @Vorokhalice, thanks for your PR!
I quickly went through your code and have a few questions:
- It seems that
timeStopis not used in the problem-specific procedures, but only in the mainwhile-loop. Therefore, I'm wondering if there is any reason why you included it into theProblem_XYZclasses? If no, I think we should implement it as a global configuration constant (config const timeStop) in the main files, and then use it normally in thesearch_XYZcodes, as for thesaveTimeoractiveSetvariables. - I'm not sure to understand the meaning of
problem.getType(). Is it a procedure that returns the type of the problem (e.g.,maxormin), or something else? - You explained in your PR message that you added
child.boundalso for the non-optimisation problems (N-Queens and UTS), but I don't get why. It seems that your PR message has been cut off.
benchmarks/PFSP/Node_PFSP.chpl
Outdated
| this.limit2 = problem.jobs; | ||
| init this; | ||
| for i in 0..#problem.jobs do this.prmu[i] = i:c_int; | ||
| this.bound = 1e-6; |
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.
Why this value?
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.
If no leaf nodes are explored, we still need a minimal 'best' lower bound. I set it to a non-zero value to avoid division by zero in the optimality gap.
|
|
Hi @Vorokhalice, I did a second pass on your code and updated few things directly in your branch:
I also have a question: is Before merging, I still need to perform some performance testing. In particular, these kinds of operation, |
merging Guillaume's code with Chapel updates