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

hs118.nl n'est plus résolu #348

Closed
bneveu opened this issue Dec 3, 2018 · 7 comments
Closed

hs118.nl n'est plus résolu #348

bneveu opened this issue Dec 3, 2018 · 7 comments
Assignees
Labels

Comments

@bneveu
Copy link
Contributor

bneveu commented Dec 3, 2018

Jadis, dans la version de mars 2015, le problème convexe ex118.nl (contraintes linéaires et objectif quadratique)
était résolu immédiatement.

best bound in: [664.819785182,664.820450002]
Relative precision obtained on objective function: 9.99999998953e-07 [passed] 1e-06
Absolute precision obtained on objective function: 0.000664820449969 [failed] 1e-06
best feasible point (8.00000000001 ; 49.0000000002 ; 3 ; 1.00000000011 ; 56 ; 0 ; 1.0000000003 ; 62.9999999999 ; 5.99999999991 ; 3.0000000005 ; 69.9999999999 ; 11.9999999999 ; 5.0000000007 ; 76.9999999998 ; 17.9999999998)
cpu time used 0.0220380000001s.
number of cells 1

Maintenant, il ne l'est plus.
Je ne l'avais pas restesté depuis et ne sais pas depuis quand il n'est plus résolu.
Actuellement, il n'arrive plus à trouver de point faisable
uplo= 664.546
uplo= 664.647
uplo= 664.72
uplo= 664.723
uplo= 664.726
uplo= 664.75
uplo= 664.778
uplo= 664.787
uplo= 664.788
uplo= 664.793
uplo= 664.795
uplo= 664.799
uplo= 664.805
uplo= 664.807
uplo= 664.807
uplo= 664.808
uplo= 664.811
uplo= 664.815
uplo= 664.815
uplo= 664.816
uplo= 664.816
uplo= 664.816
uplo= 664.816
uplo= 664.821
uplo= 664.821
uplo= 664.821
uplo= 664.821
uplo= 664.821
uplo= 664.821
uplo= 664.821
uplo= 664.821
uplo= 664.821
uplo= 664.821
uplo= 664.821
uplo= 664.821
uplo= 664.821
uplo= 664.821
uplo= 664.821
uplo= 664.821
uplo= 664.821
uplo= 664.821
uplo= 664.821
uplo= 664.821
uplo= 664.821
uplo= 664.821
unprocessable tiny box: now uplo<=664.820476055 uplo 664.820449936
uplo= 664.820449936
uplo= 664.820449936
uplo= 664.820449936
uplo= 664.820449936
uplo= 664.820449936
uplo= 664.820449936
uplo= 664.820449936
unprocessable tiny box: now uplo<=664.820472698 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820472146 uplo 664.820449936
uplo= 664.820449936
uplo= 664.820449936
unprocessable tiny box: now uplo<=664.820471811 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820471653 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820467384 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820464606 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820463005 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820461313 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820457686 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820456661 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820456123 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820454932 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820454848 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820454826 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820454824 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820454657 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820454484 uplo 664.820449936
unprocessable tiny box: now uplo<=664.82045441 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820454379 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820454321 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820454234 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820454077 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820453911 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820453696 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820453688 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820453508 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820453394 uplo 664.820449936
unprocessable tiny box: now uplo<=664.820453342 uplo 664.820449936

@bneveu bneveu added the bug label Dec 3, 2018
@gchabert gchabert self-assigned this Dec 5, 2018
@bneveu
Copy link
Contributor Author

bneveu commented Dec 12, 2018

dans la version de 2015, l'optimum était trouvé immédiatement par XTaylor par le premier appel
au simplexe
dans la version actuelle, l'appel au Simplexe sur le premier noeud renvoie INFEASIBLE , alors
que les contraintes sont linéaires et l'objectif quadratique : il doit donc y avoir une erreur dans la construction du problème donné au simplexe.

@bneveu
Copy link
Contributor Author

bneveu commented Dec 12, 2018

les contraintes générées ne sont effectivement pas correctes

par exemple soit la contrainte initiale du système
(((-x(1))+x(4))-[-7, 6])=0

les contraintes correspondantes générées dans l'appel au simplexe (obtenues avec write_file) sont
C31 : -1 x0 + 1 x3 <= -6.99999999099999
C32 : 1 x0 - 1 x3 <= -5.999999991
soit -x0 +x3 <=-7 et -x0+x3 >=6 , ce qui est impossible et ne correspond pas à la contrainte initiale
on devrait avoir -x0 +x3 >=-7 et -x0+x3 <=6

@gchabert
Copy link
Contributor

gchabert commented Dec 12, 2018

Merci Bertrand d'avoir investigué! Grâce à tes messages, je sais ce qu'il se passe.
La contrainte f(x)-[a,b]=0 n'est pas automatique transformée comme autrefois en f(x)>=a et f(x)<=b mais reste une égalité. Pour la recherche de loup, cela se traduit effectivement par f(x)>=b et f(x)<=a puisque la restriction linéaire doit être valable quelques soient les incertitudes (constantes intervalles).

En fait, l'écriture f(x)-[a,b]=0 est désormais à proscrire car elle reste très ambigue. Il faut simplement reformuler en f(x) in [a,b].
Je vais essayer de remettre la main sur un échange de mails qui avait eu lieu à ce sujet.

Je te laisse clore le bug si tu estimes que c'est ok

@gchabert
Copy link
Contributor

Voilà un fil github où le sujet avait déjà été évoqué
#319

@bneveu
Copy link
Contributor Author

bneveu commented Dec 12, 2018

pour hs118, la contrainte avec égalité intervalles est générée par l'interface AMPL à la lecture du .nl
et je ne sais pas comment le changer.

@bneveu
Copy link
Contributor Author

bneveu commented Dec 13, 2018

Pour hs118, c'est maintenant OK. J'ai dû modifier le source .mod de l'exemple.
Mais il reste une incompatibilité avec ampl : les contraintes de type a <= exp <=b sont traduites
en .nl avec des ranges et ensuite lues par l'interface ampl en tant que contraintes d'égalité avec
second membre intervalle.
Si on ferme ce bug, il faut en ouvrir un autre sur ce problème.

@gchabert
Copy link
Contributor

C'est fait, cf. #350

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants