[issue1233] Report unsolvability for bounded search algos if the bound was not used. - #303
[issue1233] Report unsolvability for bounded search algos if the bound was not used.#303SimonDold wants to merge 5 commits into
Conversation
|
I see one disadvantage of this, namely that this functionality is easy to miss when one implements a new search algorithm, which can lead to wrong return codes. Alternatively, |
|
Don't you also have to support the flag in the iterated search? I think currently you could wrongly report UNSOLVABLE. |
|
I agree with your safety concerns. Another option could be to have a function like And use this function for the checks with the bound. We can make the field and replace in the iterated search with The only remaining case for the field But for that we could provide a public or protected function like Sure you could read the number out of the string to prune based on the bound without updating that the bound was used :D but that would be noticed in a code review. |
|
Yes, you are right. This is already a great example for your safety concerns. here we would have to update This points out a mistake in my earlier comment, where i said and change the update of the best status to otherwise it should be |
|
@SimonDold Can you just add the proposed changes to the PR, so that we can see them as a diff? Regarding the proposed method |
grucla
left a comment
There was a problem hiding this comment.
The changes look good to me. I think some renamings / rephrasings would be nice (see comments) but if others prefer the current names I'm fine with merging it as is.
|
After some consideration, I think that the implementation works correctly for the iterated search (medium confidence). I also like the safer design after the revision (and just am confident that no-one will extract the bound from the string). If everyone else is happy, this can be merged from my side. |
|
Ah, hm, we did not run any experiments for this PR, right? I wonder whether having a call for the bound test for every generated state makes a difference for the runtime. |
No description provided.