-
Notifications
You must be signed in to change notification settings - Fork 62
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
Inconsistency #701
Comments
So the Lines 873 to 874 in cb89e07
accepts a vector of rules. Time and iterations limits are added if specified: Lines 1057 to 1072 in cb89e07
The elements in
SDDP.jl/src/plugins/stopping_rules.jl Lines 232 to 246 in cb89e07
You can pass a StoppingChain as one of the rules to stopping_rules .
SDDP.train(model; stopping_rules = [SDDP.StoppingChain(SDDP.IterationLimit(100), SDDP.TimeLimit(100.0))]) Can you like to part of the docs where this could be clarified? |
Right. This applies only if using the stopping chain. I was expecting the same behaviour by only using a vector of stopping rules to automatically convert to a stopping chain. Then a small addition to the documentation in
Stopping rulesIn addition to the limits provided as keyword arguments, a variety of other For_ example: SDDP.train(model, stopping_rules = [SDDP.BoundStalling(10, 1e-4), SDDP.TimeLimit(100.0)])
SDDP.train(model; stopping_rules = [SDDP.StoppingChain(SDDP.IterationLimit(100), SDDP.TimeLimit(100.0))]) See [Stopping rules](@ref api_stopping_rules) for a list of stopping rules |
Here you go: #706 |
Hi Oscar,
I found a small inconsistency in the documentation of the stopping rule. According to the documentation, passing a vector of stopping criteria results in an AND logic for all passed conditions. Reading from the documentation:
However, passing SDDP.IterationLimit() in the vector overwrites the iteration limit in the SDDP.train() function, if empty, and thus results in an OR logic and stops once the iteration limit is reached.
The text was updated successfully, but these errors were encountered: