You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Barring some very explicit value propagators like markov and list, the other distribution strategies are only guided by metrics that are not likely to be of any semantic relevance, like min, max, and middle.
What if we had a propagator that examined the propagators that a var affects and then tries to pick a var that leads to either a quick solve or quick reject rather than an arbitrary value? For example, consider gt([3, 100], [0, 3]) (and ignore the fact that it will be eliminated at compile time); if a value distributor would pick 100 as a value it would make the propagator pass, sure. But if it would pick 3 it would make the propagator fail and any further search nodes would eliminate the propagator permanently without having to check the other 96 values first.
The analysis could be costly, perhaps only certain constraints are feasible
Just because you can eliminate propagators this way doesn't mean the whole thing runs faster. If in the example 100 would lead to a solution then picking 100 first would be faster than picking 3 first (and failing).
It would probably be helpful to be able to invalidate as many propagators with a choice. Unfortunately it will be rather expensive to find this most efficient candidate efficiently.
The text was updated successfully, but these errors were encountered:
Barring some very explicit value propagators like markov and list, the other distribution strategies are only guided by metrics that are not likely to be of any semantic relevance, like
min
,max
, andmiddle
.What if we had a propagator that examined the propagators that a var affects and then tries to pick a var that leads to either a quick solve or quick reject rather than an arbitrary value? For example, consider
gt([3, 100], [0, 3])
(and ignore the fact that it will be eliminated at compile time); if a value distributor would pick100
as a value it would make the propagator pass, sure. But if it would pick3
it would make the propagator fail and any further search nodes would eliminate the propagator permanently without having to check the other 96 values first.100
would lead to a solution then picking100
first would be faster than picking3
first (and failing).The text was updated successfully, but these errors were encountered: