|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre confirmé
![]() Inscription : octobre 2008 Messages : 245 ![]() |
Bonjour,
Je bloque sur le problème suivant illustré par l'image attachée à ce message. Il faut placer des entiers naturels de 0 à 9 dans les cercles en respectant les règles ci-dessous : 1. Le nombre inscrit dans l'une des sept régions du graphe doit être égal au plus grand écart des entiers naturels inscrits dans deux cercles reliés par un arc dans cette même région. 2. Cet écart doit être atteint une et une seule fois. 3. Le chiffre inscrit dans le cercle en haut à gauche doit être au plus égal à 4. Si vous avez un début de solution, je suis preneur ! Merci d'avance à vous.
__________________
Si vous souhaitez passer la certification Voltaire, vous aurez droit à un tarif préférentiel en saisissant mon code parrain : NTMPH759. |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : septembre 2003 Messages : 4 434 ![]() |
Ca se résoud facilement en Prolog avec une bibliothèque de contraintes.
__________________
"La haine seule fait des choix" - Koan Zen "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne. Faites du Prolog, ça vous changera les idées ! Ma page Prolog Mes codes sources commentés Mon avatar : Intérieur avec jeune femme de Vilhelm Hammershoi |
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Inscription : octobre 2008 Messages : 245 ![]() |
Il me faudrait une autoformation sur Prolog pour pouvoir m'en servir. En l'état actuel, je voudrais simplement résoudre ce problème même par tâtonnement. Je pense qu'il doit y avoir un algorithme qui résout ce problème.
Merci en tout cas de ton « début de solution ».
__________________
Si vous souhaitez passer la certification Voltaire, vous aurez droit à un tarif préférentiel en saisissant mon code parrain : NTMPH759. |
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() F5(){F5} Inscription : avril 2008 Messages : 450 ![]() |
hello,
tu mets une variable pour chaque noeud et apres algo du simplexe |
|
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Inscription : octobre 2008 Messages : 245 ![]() |
Salut,
Merci pour ta proposition qui me semble pertinente. Voici un début de formulation du programme linéaire : Les variables du programmes : x0, x1, ..., x9 = {0, 1, ..., 9} Les contraintes : x0 <= 4 . . . . . (1) Région 1 : (x1, x2) (x1, x6) (x2, x4) (x4, x6) grand écart = 5 max[(x1 - x2) (x1 - x6) (x2 - x4) (x4 - x6)] = 5 . . . . . (2) (x1 - x2) ≠ (x1 - x6) ≠ (x2 - x4) ≠ (x4 - x6) . . . . . (3) Région 2 : (x2, x3) (x2, x5) (x3, x5) grand écart = 3 Les mêmes contraintes que (2) et (3) ... Région 7 : (x7, x8) (x7, x9) (x8, x10) (x9, x10) grand écart = 5 Les mêmes contraintes que (2) et (3) Le problème qui se pose est comment transformer « max » et « ≠ » pour pouvoir lancer le programme. À moins qu'il existe un programme en ligne qui s'occupe de ces transformations ! Je ne sais pas si je suis sur la bonne voie. Il manque également la fonction objectif.
__________________
Si vous souhaitez passer la certification Voltaire, vous aurez droit à un tarif préférentiel en saisissant mon code parrain : NTMPH759. |
|
|
00
|
|
|
#6 | |
![]() ![]() Inscription : septembre 2003 Messages : 4 434 ![]() |
Citation:
__________________
"La haine seule fait des choix" - Koan Zen "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne. Faites du Prolog, ça vous changera les idées ! Ma page Prolog Mes codes sources commentés Mon avatar : Intérieur avec jeune femme de Vilhelm Hammershoi |
|
|
|
00
|
|
|
#7 |
|
Membre chevronné
![]() F5(){F5} Inscription : avril 2008 Messages : 450 ![]() |
J'ai ete un peu hatif dans la lecture de l'enonce.
Je ne suis pas sur que l'on puisse representer le OU dans les contraintes (max(x1-x2,x1-x6..)=5 -> x1-x2=5 OU x1-x6=5 ...) mais peut etre est-ce le cas, je ne sais pas. |
|
|
00
|
|
|
#8 |
|
Membre confirmé
![]() Inscription : octobre 2008 Messages : 245 ![]() |
Effectivement. J'avais écrit à la va-vite la contrainte (3) en voulant traduire la règle « Cet écart doit être atteint une et une seule fois ».
__________________
Si vous souhaitez passer la certification Voltaire, vous aurez droit à un tarif préférentiel en saisissant mon code parrain : NTMPH759. |
|
|
00
|
|
|
#9 |
|
Membre confirmé
![]() Inscription : octobre 2008 Messages : 245 ![]() |
J'ai trouvé deux affectations. Trap D, pourrais-tu me dire s'il existe plus de deux solutions ?
__________________
Si vous souhaitez passer la certification Voltaire, vous aurez droit à un tarif préférentiel en saisissant mon code parrain : NTMPH759. |
|
|
00
|
|
|
#10 | ||
![]() ![]() Inscription : septembre 2003 Messages : 4 434 ![]() |
Je confirme (en allant de gauche à droite et de haut en bas :
[0,5,8,1,7,3,4,2,6,9] et [0,5,8,1,7,2,4,3,6,9] Voici le code en SWI-Prolog Code :
__________________
"La haine seule fait des choix" - Koan Zen "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne. Faites du Prolog, ça vous changera les idées ! Ma page Prolog Mes codes sources commentés Mon avatar : Intérieur avec jeune femme de Vilhelm Hammershoi |
||
|
|
10
|
Copyright © 2000-2013 - www.developpez.com