-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Wrong semantic of precision in Smear-based bisectors #398
Comments
D'après les logs, c'est effectivement moi qui ai fait cette modif en 2012. Je pense que c'était pour l'optim, mais je ne sais plus exactement pourquoi. Pour info, avec celui avec les paramètres du defaultsolver (0.01, acidhc4n, xn, smearsumrel) résultats avec compo number of solution boxes: 4 number of cells=3185 ./solver04 exsmear.bch 0.01 acidhc4n compo smearsumrel 1.e-4 100 number of solution boxes: 4 number of cells=3183 resultats avec xnewton ./solver04 exsmear.bch 0.01 acidhc4n xn smearsumrel 1.e-8 100 number of solution boxes: 4 number of cells=5671
|
Je pense que j'avais ajouté cette condition pour prendre en compte les différences d'ordres de grandeur possibles entre variables : cela permettait d'avoir une condition d'arrêt pour la bissection plus robuste (absolue en dessous de 1 et relative au dessus, continue en 1) sans avoir besoin de déclarer des précisions absolues par variable. J'ai vérifié pour l'optim ce qui se passe si on remplace cette double condition par la condition simple Il faudrait aussi vérifier pour tous les exemples du solver. |
Merci Bertrand, je vais faire la modification. |
Juste un commentaire: c'est effectivement important d'avoir la même définition partout de "précision d'une variable" mais il s'avère que les fluctuations que j'observais dans les temps de calculs n'étaient pas lié qu'à ça. Il y a aussi un problème lié à la définition-même de bissecteur, je vais mettre du coup un autre ticket sur le sujet. |
Il y a aussi des fluctuations qui peuvent être dues au coté aléatoire de X-Newton (choix des coins). |
Oui en effet, l'aléatoire fait perdre aussi la monotonie des arbres de recherche mais c'est moins grave, les fluctuations sont minimes (hormis sur les benchs instables comme bearing...) |
(in French)
Les bissecteurs Smear ne respectent pas l'interface des bissecteurs (Bsc) car le paramètre de précision 'prec' n'a pas la bonne sémantique.
Normalement, ce paramètre doit correspondre à une précision absolue: on ne bissecte plus [x] si wid([x])<=prec.
Or, dans les cas des bissecteurs Smear, le test fait en réalité semble être wid([x])/|x| <=prec. Ce n'est pas du tout la même chose.
Cela conduit a des comportements inattendus et gênants du solveur.
En effet, la performance de ibexsolve doit être monotone (contrairement à ibexopt), c.a.d. en diminuant la precision, on augmente le temps de calcul et le nombre de cellules. C'est ce qu'on observe avec RoundRobin, mais pas du tout avec SmearSumRelative (le bissecteur par défaut).
Par exemple, lorsqu'on résout le problème suivant avec une précision de 1e-4, on obtient 4 solutions en environ 15 secondes et plus de 30000 boîtes. Lorqu'on le résout avec une précision de 1e-8, on obtient ces 4 solutions en 2.5 secondes et 5000 boîtes !
The text was updated successfully, but these errors were encountered: