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
In the current definition of a bisector, a "precision" parameter is given and it is said that when the domain of a variable is less than its corresponding precision, the bisector skips this variable
This has the unpleasant consequence that by skipping variables "under the precision", we lose monotonicity of a search tree with respect to precision. That is, the search tree obtained for a precision eps has no reason to be a subset of the search tree obtain for eps'<eps.
And, in practice, when one tries to run ibexsolve with a very coarse precision, the behaviour may be really bad because the bisector may skip important variables and keep on bisecting useless ones. In a word, a crude precision makes the bisector loses its "reason for being" as it only selects large-domain variables despite of its own heuristic.
As example, it was observed in #398 that the search tree for a crude precision (like 0.01) is much larger than for a thin one (like 1e-8).
Fix: Shall we remove this rule? That is: no precision anymore associated to a bisector. The only way it throws NoBisectableVariable is when it reaches 1 ulp. By the way, the precision of a bisector was redundant with that of the solver.
This discussion was converted from issue #400 on December 15, 2020 23:35.
Heading
Bold
Italic
Quote
Code
Link
Numbered list
Unordered list
Task list
Attach files
Mention
Reference
Menu
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
In the current definition of a bisector, a "precision" parameter is given and it is said that when the domain of a variable is less than its corresponding precision, the bisector skips this variable
This has the unpleasant consequence that by skipping variables "under the precision", we lose monotonicity of a search tree with respect to precision. That is, the search tree obtained for a precision eps has no reason to be a subset of the search tree obtain for eps'<eps.
And, in practice, when one tries to run ibexsolve with a very coarse precision, the behaviour may be really bad because the bisector may skip important variables and keep on bisecting useless ones. In a word, a crude precision makes the bisector loses its "reason for being" as it only selects large-domain variables despite of its own heuristic.
As example, it was observed in #398 that the search tree for a crude precision (like 0.01) is much larger than for a thin one (like 1e-8).
Fix: Shall we remove this rule? That is: no precision anymore associated to a bisector. The only way it throws NoBisectableVariable is when it reaches 1 ulp. By the way, the precision of a bisector was redundant with that of the solver.
Beta Was this translation helpful? Give feedback.
All reactions