Skip to content
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

Some problems cannot be solved in rigor mode #411

Closed
bneveu opened this issue Oct 3, 2019 · 11 comments
Closed

Some problems cannot be solved in rigor mode #411

bneveu opened this issue Oct 3, 2019 · 11 comments
Assignees

Comments

@bneveu
Copy link
Contributor

bneveu commented Oct 3, 2019

Le probleme ex5_4_4 donne des résultats différents qui semblent faux avec le mode rigor
(optimum different de celui indique dans la base coconut qui est bien trouvé avec le mode normal):

avec mode rigor
../../../bin/ibexopt ../benchs/coconutbenchmark-library1/ex5_4_4.bch -a 1.e-6 -r 1.e-6 --rigor

************************ setup ************************
file loaded: ../benchs/coconutbenchmark-library1/ex5_4_4.bch
rel-eps-f: 1.00001e-06 (relative precision on objective)
abs-eps-f: 1.00001e-06 (absolute precision on objective)
rigor mode: ON (feasibility of equalities certified)
output COV file: ../benchs/coconutbenchmark-library1/ex5_4_4.cov

warning: inHC4 disabled (unimplemented operator)


running............

optimization successful!

f* in [5423.28825623,5423.29367952]
(best bound)

x* in (<55.14386889727549, 55.1438688972755> ; [21.58174169657606, 21.5817416965761] ; <68.33333333350003, 68.33333333350004> ; [175.715455241478, 175.7154552414847] ; <27.5000000075, 27.50000000750001> ; <52.40239828955597, 52.40239828955598> ; [29.58040975170513, 29.5804097517052] ; [43.0682948946387, 43.06829489463875] ; [23.91341057885732, 23.91341057885742] ; [-3.345115684218666, -3.345115684218618] ; <22.5, 22.5> ; [7.253263707423044, 7.253263707423165] ; [6.353961859687356, 6.353961859687621] ; <18.37201207872208, 18.37201207872209> ; <22.5, 22.5> ; [-34.51805021903474, -34.51805021903445] ; [8.166326540871706, 8.166326540871758] ; [27.32121085665307, 27.32121085665311] ; [-24.81271242659309, -24.81271242659288] ; [-4.884126935788537, -4.884126935788504] ; [57.01805021903445, 57.01805021903473] ; <108.4182583034239, 108.418258303424> ; <154.8561311027245, 154.8561311027246> ; [-15.71545524148465, -15.71545524147809] ; <141.6666666664999, 141.6666666665> ; <127.597601710444, 127.5976017104441> ; <182.4999999924999, 182.4999999925>)
(best feasible point)

relative precision on f*: 9.999989999173588e-07 [passed]
absolute precision on f*: 0.005423288255769876
cpu time used: 0.8507730000000002s
number of cells: 44

sans mode rigor
../../../bin/ibexopt ../benchs/coconutbenchmark-library1/ex5_4_4.bch -a 1.e-6 -r 1.e-6

************************ setup ************************
file loaded: ../benchs/coconutbenchmark-library1/ex5_4_4.bch
rel-eps-f: 1.00001e-06 (relative precision on objective)
abs-eps-f: 1.00001e-06 (absolute precision on objective)
output COV file: ../benchs/coconutbenchmark-library1/ex5_4_4.cov

warning: inHC4 disabled (unimplemented operator)


running............

optimization successful!

f* in [10077.7652318,10077.7753096]
(best bound)

x* = (52.8571428415 ; 30.000000009 ; 10.0000006809 ; 60.000000009 ; 10.000000009 ; 22.8571428819 ; 34.9999999669 ; 34.9999999849 ; 1.59074687085e-08 ; 34.999999978 ; 0 ; 10.0000000422 ; 10.0000000671 ; 9.07287756036e-09 ; 0 ; 10.0000000491 ; 0 ; 34.999999987 ; 0 ; 0 ; 34.999999978 ; 100 ; 157.142857168 ; 100 ; 199.999999329 ; 157.142857128 ; 200)
(best feasible point)

relative precision on f*: 9.99998999975e-07 [passed]
absolute precision on f*: 0.0100777652315
cpu time used: 93.9091890001s
number of cells: 6832

@bneveu bneveu added the bug label Oct 3, 2019
@bneveu
Copy link
Contributor Author

bneveu commented Oct 3, 2019

meme problème pour ex2_1_9

sans rigor
f* in [-0.375000934483,-0.374999934483]
(best bound)

avec rigor
f* in [-0.443969606108,-0.443968606108]

@gchabert
Copy link
Contributor

gchabert commented Oct 4, 2019

Exact. J'ai fait un fix.

@bneveu
Copy link
Contributor Author

bneveu commented Oct 4, 2019

C'est bon pour ex2_1_9

Par contre, l'instance ex5_4_4 n'est pas résolue en mode rigor en 1000s.
alors qu'elle est résolue en 88s en mode normal.

en mode normal
f* in [10077.7652318,10077.7753096]
(best bound)

x* = (52.8571428415 ; 30.000000009 ; 10.0000006809 ; 60.000000009 ; 10.000000009 ; 22.8571428819 ; 34.9999999669 ; 34.9999999849 ; 1.59074687085e-08 ; 34.999999978 ; 0 ; 10.0000000422 ; 10.0000000671 ; 9.07287756036e-09 ; 0 ; 10.0000000491 ; 0 ; 34.999999987 ; 0 ; 0 ; 34.999999978 ; 100 ; 157.142857168 ; 100 ; 199.999999329 ; 157.142857128 ; 200)
(best feasible point)

relative precision on f*: 9.99998999975e-07 [passed]
absolute precision on f*: 0.0100777652315
cpu time used: 88.6480000001s
number of cells: 6832

en mode rigor
time limit 1000s. reached

f* in [8537.95,inf]
(best bound)

x* = --
(no feasible point found)

relative precision on f*: inf
absolute precision on f*: inf
cpu time used: 999.986s
number of cells: 56524

gchabert pushed a commit that referenced this issue Oct 9, 2019
@gchabert
Copy link
Contributor

gchabert commented Oct 9, 2019

Désolé, j'ai été trop vite dans mon précédent fix.
J'ai fait la bonne correction cette fois et j'ai pris le temps de vérifier sur ex5_4_4 et ex2_1_9.
Je te laisse clore le ticket si tu estimes que c'est ok.

@bneveu
Copy link
Contributor Author

bneveu commented Oct 10, 2019

Il reste un certain nombre d'instances qui sont résolues en mode normal et qui ne
sont pas résolues en mode rigor (pas de pt faisable trouvé avant le temps limite, ou résolution très lente)
Est-ce normal ? (problèmes un peu tordus ?)

ex7_3_5
bearing
harker
immun
ramsey
sambal
hs099


ex7_3_5
mode rigor
file ../benchs/coconutbenchmark-library1/ex7_3_5.bch
time limit 1000s. reached
f* in [1.20672,inf]
(best bound)

x* = --
(no feasible point found)

relative precision on f*: inf
absolute precision on f*: inf
cpu time used: 1000s
number of cells: 179880

mode normal
optimization successful!
�[0m
f* in [1.206716948288519,1.206717047523372]
(best bound)

x* = (2.603183665301215e-05 ; 0.1992480311905892 ; 0.04733378200719545 ; 1.206717047523372 ; 1.306966739082576e-08 ; 9.469927880423538e-06 ; 1.105557971615564e-05 ; 0.004222363881608939 ; 0.0003388809431670702 ; 1.35771418044535e-05 ; 2.767616204350332e-07 ; 4.889380791231822e-09 ; 2.364816644231979e-09)
(best feasible point)

relative precision on f*: 8.223540190129168e-08[passed]
absolute precision on f*: 9.923485322360648e-08[passed]
cpu time used: 1.525652000000001s
number of cells: 594


bearing
mode rigor
file ../benchs/coconutbenchmark-library1/bearing.bch
�[31m time limit 1000s. reached
�[0m
f* in [1.95107,1.95174]
(best bound)

x* in ([5.95578045146274, 5.955780451462772] ; [5.389013006117203, 5.389013006117236] ; [5.365303156569278, 5.365303156569543] ; [2.271054517111424, 2.27105451711151] ; <999.9999999506076, 999.9999999506077> ; [1.627296860706353, 1.627296860706415] ; [0.3244363595713218, 0.3244363595713342] ; [1.325178554340979, 1.325178554341019] ; <49.99999997309549, 49.9999999730955> ; [584.9999999865476, 584.9999999865478] ; [0.9999999999999998, 1.000000000000001] ; [0.0999999999950607, 0.09999999999506079] ; [6.429859605925361, 6.429859605925365])
(best feasible point)

relative precision on f*: 0.000341986
absolute precision on f*: 0.000667236
cpu time used: 999.994s
number of cells: 255976

mode normal

optimization successful!
�[0m
f* in [1.951065986584585,1.951066042378989]
(best bound)

x* = (5.955780221419358 ; 5.389012743816496 ; 5.365303077923706 ; 2.270278193167108 ; 999.9999973344175 ; 1.626740587077293 ; 0.3243254553016966 ; 1.325631591599346 ; 49.99999972651845 ; 584.9999998532607 ; 1.000000009277708 ; 0.1000000001828766 ; 6.429859694483537)
(best feasible point)

relative precision on f*: 2.85968825542858e-08[passed]
absolute precision on f*: 5.57944048740211e-08 [passed]
cpu time used: 17.83749500000001s
number of cells: 3598


harker
file ../benchs/coconutbenchmark-library1/harker.bch
�[31m time limit 3600s. reached
�[0m
f* in [-1102.18,0]
(best bound)

x* in (<-0, 0> ; <-0, 0> ; <-0, 0> ; <-0, 0> ; <-0, 0> ; <-0, 0> ; <-0, 0> ; <-0, 0> ; <-0, 0> ; <-0, 0> ; <-0, 0> ; <-0, 0> ; <-0, 0> ; <-0, 0> ; <-0, 0> ; <-0, 0> ; <-0, 0> ; <-0, 0> ; <-0, 0> ; <-0, 0>)
(best feasible point)

relative precision on f*: inf
absolute precision on f*: 1102.19
cpu time used: 3599.99s
number of cells: 718880

mode normal
optimization successful!
�[0m
f* in [-986.5139411315707,-986.5129546176298]
(best bound)

x* = (2.206459018597973 ; 1.276846671284097 ; 0 ; 0.07908505500594388 ; 0 ; 0 ; 2.206459018597947 ; 0 ; 0 ; 1.276846662284098 ; 3.562390744887987 ; 0 ; 0 ; 0 ; 12.09460340012279 ; 34.37318380354411 ; 31.62725586092997 ; 15.57790909900486 ; 30.81079304965612 ; 31.70634090693592)
(best feasible point)

relative precision on f*: 9.999999997812355e-07[passed]
absolute precision on f*: 0.0009865139409157564
cpu time used: 771.0342990000002s
number of cells: 134262


immun

file ../benchs/coconutbenchmark-library1/immun.bch
mode rigor
time limit 1000s. reached

f* in [0,inf]
(best bound)

x* = --
(no feasible point found)

relative precision on f*: inf
absolute precision on f*: inf
cpu time used: 999.998s
number of cells: 267968

mode normal
optimization successful!
�[0m
f* in [0,6.543890988628091e-12]
(best bound)

x* = (187143.6756636447 ; 259.5829335440893 ; 3311.961144776345 ; 727.9343469880611 ; 0.3509819146996687 ; 1.921286524221774 ; 1.526017281957532 ; 1.519569622128133 ; 4.367690405186354 ; 0 ; 3850904.712329549 ; 4015017.353801283 ; 4122168.926710097 ; 5138989.989217042 ; 5488339.287382468 ; 0 ; 50000 ; 42000 ; 40000.00000255811 ; 40000 ; 45000)
(best feasible point)

relative precision on f*: inf
absolute precision on f*: 6.543890988628091e-7[passed]
cpu time used: 42.04330100000002s
number of cells: 15674


ramsey
mode rigor
file ../benchs/coconutbenchmark-library1/ramsey.bch
time limit 1000s. reached

f* in [-2.48747,inf]
(best bound)

x* = --
(no feasible point found)

relative precision on f*: inf
absolute precision on f*: inf
cpu time used: 999.99s
number of cells: 119254

mode normal
optimization successful!
�[0m
f* in [-2.487470130427048,-2.487467642956918]
(best bound)

x* = (3.050000009000001 ; 3.107500018000001 ; 3.173625027000001 ; 3.249668786000001 ; 3.337119107500002 ; 3.437686975875002 ; 3.553340023156252 ; 3.673267726927134 ; 3.798046478169597 ; 3.927606782191665 ; 0.9500000090000004 ; 0.9691503719077956 ; 0.9884520407263557 ; 1.007864067533522 ; 1.027334744589426 ; 1.04679875627671 ; 1.066173622373317 ; 1.098428599054678 ; 1.131269091096077 ; 1.165413619171887 ; 1.217324300372393 ; 0.05750000000000001 ; 0.06612500000000001 ; 0.07604375000000001 ; 0.08745031250000001 ; 0.1005678593750001 ; 0.1156530382812501 ; 0.1199276947708814 ; 0.1247787422424636 ; 0.1295602950220683 ; 0.11782820446575)
(best feasible point)

relative precision on f*: 9.999999997780426e-07�[32m [passed] �[0m
absolute precision on f*: 2.487470129874936e-06
cpu time used: 4.476839000000001s
number of cells: 312


sambal
file ../benchs/coconutbenchmark-library1/sambal.bch
�[31m time limit 3600s. reached
�[0m
f* in [3.42209,inf]
(best bound)

x* = --
(no feasible point found)

relative precision on f*: inf
absolute precision on f*: inf
cpu time used: 3600s
number of cells: 1476046

mode normal
optimization successful!
�[0m
f* in [3.968217507695338,3.968221475912845]
(best bound)

x* = (14.42927252854096 ; 2.886610617391336 ; 126.8257083881876 ; 84.25293311114314 ; 52.48302000024824 ; 175.9115046450149 ; 15.8680323322893 ; 137.5338383512287 ; 22.98429496906325 ; 22.18571514841799 ; 35.4910556853948 ; 49.56045726439362 ; 228.3945246362631 ; 176.3861656615812 ; 107.2372280892064)
(best feasible point)

relative precision on f*: 9.999999998331512e-07�[32m [passed] �[0m
absolute precision on f*: 3.968217507033245e-06
cpu time used: 171.7019630000001s
number of cells: 40050


hs099
mode rigor

file ../benchs/coconutbenchmark-library2/hs099.nl
�[31m time limit 3000s. reached
�[0m
f* in [-8.32388e+08,-8.31074e+08]
(best bound)

x* in ([0.5433228579679678, 0.5433228579679836] ; [0.5304539517497887, 0.5304539517498332] ; [0.5061396622365615, 0.5061396622365794] ; [0.4779625246269477, 0.477962524626962] ; [0.4567103516890956, 0.456710351689107] ; [0.4090126514702621, 0.4090126514702657] ; [0.3522839504150639, 0.3522839504150655] ; [-1922.137622651235, -1922.137622651025] ; <-7861.335338537401, -7861.3353385374> ; <-18479.15109755424, -18479.15109755423> ; <-20524.26211879834, -20524.26211879833> ; <-18103.52934023338, -18103.52934023337> ; <20142.16873441957, 20142.16873441958> ; [-153.7710098120988, -153.771009812082] ; [-321.3648074588264, -321.3648074587959] ; [-103.3478229018746, -103.3478229018496] ; [21.54338205208803, 21.5433820521079] ; [75.28592909049226, 75.28592909050881] ; [774.6184725684495, 774.6184725684586])
(best feasible point)

relative precision on f*: 0.00157838
absolute precision on f*: 1.31382e+06
cpu time used: 3000s
number of cells: 355294

mode normal

f* in [-831080353.2580142,-831079522.177661]
(best bound)

x* = (0.5431250000000001 ; 0.5291168849771666 ; 0.5086577784705676 ; 0.4789823025284107 ; 0.4511987023998583 ; 0.4098344819207754 ; 0.3524965921530289 ; -1924.78411729973 ; -7887.302565942868 ; -18381.48448254581 ; -20011.76310810528 ; -17555.71358978383 ; 20222.99660627082 ; -153.9827293756986 ; -323.0187465074724 ; -96.74853014800567 ; 31.53738513426664 ; 66.70459560723125 ; 772.8222976472282)
(best feasible point)

relative precision on f*: 9.999999998589991e-07�[32m [passed] �[0m
absolute precision on f*: 831.080353140831
cpu time used: 1905.751875000001s
number of cells: 354826

@gchabert gchabert added optimization and removed bug labels Oct 15, 2019
@gchabert gchabert changed the title false results for ex5_4_4 with rigor mode Some problems cannot be solved in rigor mode Oct 15, 2019
@bneveu
Copy link
Contributor Author

bneveu commented Nov 12, 2019 via email

@bneveu bneveu reopened this Nov 12, 2019
@gchabert
Copy link
Contributor

@bneveu
Copy link
Contributor Author

bneveu commented Nov 13, 2019

Il y a le code du fix 415, mais pas celui du fix411 que tu indiques dans la fermeture du bug hier dans ibex_LoupFinderCertify.cpp
et avec le code actuel que j'ai récupéré avec git pull ,
ex7_3_5 et ramsey ne sont toujours pas résolus en mode rigor (je n'ai pas essayé les autres instances qui posaient problème).

@gchabert
Copy link
Contributor

Bertrand,
Ah oui, je comprends. Github a automatiquement fermé ce bug hier car je mentionne dans le log de la v2.8.6 qu'il est clos, ce qui n'est pas faux dans la mesure où, à l'origine il s'agissait d'un "vrai" bug (perte de solution en mode rigor), qui a bien été résolu. Désormais, il s'agit plus d'une question de performance. Cela dit, tu as bien fait de le réouvrir car, en effet, la question n'a pas été réglée et c'est un peu suspect.

@gchabert
Copy link
Contributor

gchabert commented Jan 3, 2021

J'ai étudié les problèmes non résolus en mode rigoureux.

Tout d'abord de bonnes nouvelles:
Pour ramsey, bearing et hs099: le problème avec le mode rigor n'apparaît plus. Je note au passage que hs099 se résout maintenant en moins de 30s (y compris en mode rigoureux), contre 30 minutes à l'époque.
Mieux, le mode rigoureux est plus rapide (notamment sur bearing, résolu 10 fois plus vite sur ma machine qu'en mode relaxé)!

Pour immun, sambal et harker, il y a des contraintes redondantes (donc des singularités systématiques qui empêche Newton de fonctionner et donc la certification de solution). On peut considérer que les problèmes sont "mal posés". Plus précisément:

  • immun: Il y a x16^2 dans l'objectif donc la contrainte de borne x16=0 est active. La contrainte x10=-x16 implique alors x10=0 qui est aussi une contrainte de borne. On a donc 3 contraintes (-x10-x16=0, x16=0, x10=0) avec l'une redondante.
  • sambal: Il y a 8 contraintes linéaires mais la matrice est de rang 7 (donc une redondante)
  • harker: Il y a 20 contraintes linéaires mais la matrice est de rang 18 (donc deux redondantes)

Pour ex7_3_5: il y a aussi une chute de rang à l'optimum. Je soupçonne également fortement une redondance mais cela ne saute pas aux yeux cette fois en observant le problème. J'ai calculé la jacobienne pour observer numériquement la chute de rang. Cela ne prouve donc pas la redondance (il peut y avoir une "tangentialité" entre deux contraintes par exemple). Quoi qu'il en soit, Newton donc la certification ne peut pas fonctionner dans ce cas de figure.

Conclusion: tout va bien.

gchabert pushed a commit that referenced this issue Jan 3, 2021
@gchabert
Copy link
Contributor

gchabert commented Jan 3, 2021

J'ai rédigé un paragraphe dans la documentation d'ibexopt sur le sujet et donnant la démarche à suivre lorsque ce problème apparaît, en prenant les exemples ci-dessus:
http://www.ibex-lib.org/doc/optim.html#the-problem-is-solved-in-relaxed-but-not-rigor-mode
Je peux enfin clore ce ticket!

@gchabert gchabert closed this as completed Jan 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants