• Aucun résultat trouvé

A727. La balance à trois plateaux (2

N/A
N/A
Protected

Academic year: 2022

Partager "A727. La balance à trois plateaux (2"

Copied!
3
0
0

Texte intégral

(1)

A727. La balance à trois plateaux (2 ème épisode)

On a quinze boules d'apparences identiques mais de poids tous différents et on souhaite les classer par ordre décroissant de poids.

Comme dans le problème A726, on dispose d'une balance qui comporte trois plateaux avec trois bras faisant entre eux un angle de 120°.Au cours d'une pesée on place une boule sur chacun des plateaux : le plateau le plus bas porte la boule la plus lourde, le plateau le plus haut porte la boule la plus légère et l'on repère la boule au poids médian dans le plateau qui occupe une position intermédiaire.

Déterminer le nombre minimum de pesées qui permettent de classer les quinze boules.

Solution (numérique) proposée par Claudio Baiocchi : 16 pesées sont nécessaires ; 20 suffisent.

Chaque pesée peut au mieux partager la situation actuelle en six classes également nombreuses. En particulier 15 pesées peuvent régler au plus cas, tandis que les cas possibles au départ sont en nombre de . Par ailleurs, puisque , rien n’empêcherait qu’on puisse s’en sortir avec 16 pesées ; malheureusement la solution qu’on va donner demande 20 pesées.

On procèdera comme on a fait pour le problème A726 relatif au cas de neuf billes seulement ; cas par rapport auquel on n’a que des petites variantes, illustrées ci-après.

Tout d’abord quelques notations. On notera par les lettres minuscules de à les quinze boules une « solution » sera une chaîne de quinze caractères de à , tous différents, l’ordre dans la chaîne correspondant au poids des boules. Dans la suite une écriture du type signifie que, grâce à des pesées déjà effectuées, on sait que la boule

‘c’ est plus légère que la boule ‘a’, et ‘a’ est plus légère que ‘d’, qui à son tour est plus légère que ‘g’. On remarquera que, pendant la recherche d’une stratégie optimale, on peut faire un classement des possibles pesées ; par exemple, si on sait déjà , la pesée du triplet ne donnera aucun renseignement supplémentaire (le seul résultat possible étant ) ; la pesée du triplet en donnera, partageant les possibles solutions en trois

classes (suivant le cas : ou ) ; mieux encore ferait la pesée de , ou celle de car on aura six possibles résultats. Naturellement le partage en six famille des chaînes admissibles est le mieux qu’on puisse obtenir ; mais pour choisir la meilleure pesée on doit aussi regarder au nombre de chaînes admissibles dans chaque famille, et essayer de minimiser le plus grand parmi ces nombres ; il s’agit donc d’un problème de minimax.

C’est la stratégie utilisée par notre programme : à tout état d’avancement de la recherche, le programme connait (à savoir : peut lire dans un fichier) les chaînes résiduelles, et examine les effets de chaque pesée : pour chaque triplet , combien de classes, et surtout combien nombreuses sont les classes, correspondantes respectivement aux résultats . L’utilisateur choisit la pesée qui lui semble la meilleure, et le programme prépare un fichier pour chacune des classes correspondantes, de façon à pouvoir itérer la procédure ; naturellement, à la suite de chaque pesée, on se bornera à contrôler l’évolution des sous-familles les plus

nombreuses.

Pour ce qui concerne le fichier de départ, travailler avec les possibles chaînes dépasse les possibilités de l’ordinateur ; il faut construire un fichier réduit, simulant le résultat de quelques pesées préliminaires. A première vue on a deux possibles stratégies initiales :

 ou bien on travaille sur trois groupes de cinq boules chacun ; on peut choisir comme on veut les noms des boules dans les quintuplets, donc on supposera connaitre au départ les informations et . Trier un quintuplet de boules demande au plus quatre pesées, donc cette stratégie demande 12 pesées et (s’agissant de triages indépendants l’un de l’autre) laisse 756 756 possibilités.

 ou bien on travaille sur cinq groupes de trois boules chacun ; trier ces groupes demande cinq pesées mais laisse 168 168 000 possibilités ; nombre qu’on baissera à 1 401 400 procédant de la façon suivante : on choisit une boule dans chaque triplet et on compare le quintuplet résultant. Le point de départ sera donc

(2)

et, par exemple, (le choix de comparer les boules de poids moyen dans chaque triplet semble le plus promettant)

La réduction à 1 401 400 cas à la suite de 9 pesées semblant plus intéressante que la réduction à 756 756 cas à la suite de 12 pesées, c’est la seconde stratégie qu’on va choisir ; le programme qui construit le fichier correspondant, contenant 1 401 400 chaînes, demande un peu de temps mais c’est très simple à écrire ; plus intéressant est la structure d’un deuxième programme dont les opérations se développent en trois phases :

(A) Dans la première phase le programme demande le nom d’un fichier à lire (en première exécution on donnera le nom du fichier construit par le premier programme).

(B) Pour chacune des 455 familles de triplets il évalue et affiche six quantités, à savoir le nombre de chaînes du fichier dans lesquelles les trois lettres paraissent dans un des six ordres possibles.

(C) Dans la troisième phase le programme demande de choisir un triplet (la pesée à effectuer) et construit six fichiers, un pour chaque résultat de la pesée choisie. C’est utilisant un ou plusieurs de ces fichiers qu’on repartira de la phase (A)

Partant du fichier qui contient les 1 401 400 chaînes satisfaisant et , le minimax est atteint par le triplet ‘fin’ auquel correspond la répartition suivante (en bleu le pire des cas ; en rouge un autre cas qu’il faudrait explorer) :

10ème pesée : 1 420 420  : 315 508 chaînes ; : 360 504 chaînes ; : 228 874 chaînes ; : 179 448 ; et : chacun 158 598 chaînes.

Dans la suite on va explorer l’arbre choisissant à chaque étape le pire des cas (noté en bleu ; en rouge sont notés les ramifications qu’il faudrait aussi suivre) ; on a :

Pesées de 11 à 13 :

Pesées de 14 à 16 :

Pesées de 17 à 19 :

(3)

et donc, dans la branche qu’on vient d’explorer, la 20ème pesée permet de ranger les 15 boules ; il se peut que le principe du minimax ne soit pas optimal, mais en tout cas on a obtenu une solution en 20 coups car l’exploration des branches rouges ne donne pas lieu à surprises.

On peut naturellement se demander si, après , on remplace la comparaison des boules moyennes de chaque triplet par d’autres choix : comparaison des plus lourdes, ou des plus légères. On va voir que, utilisait , on a une meilleure séparation de cas au départ, mais que ça comporte une mauvaise distribution lors des dernières pesées : cinq pesées pour trier les derniers 32 cas !

En fait comme 10ème pesée le programme suggère le triplet , dont le pire des cas correspond à et contient 280 560 chaînes ; ensuite, en acceptant les suggestions et choisissant toujours le pire des cas, on a avec 59 426, avec 12 443, avec 2 850, avec 600, avec 180, avec 72, avec 32. Naturellement rien ne nous assure que l’idée du minimax soit la meilleure stratégie possible, mais alors il faudrait rebrousser chemin et changer de choix quelque part car, après les choix qu’on vient d’effectuer, les 32 cas restant demandent cinq pesées pour être triés. En fait on a 6 couples de boules, et à trier :

abdgjcmeknflhio abdgjcmeknflhoi abdgjcmeknlfhio abdgjcmeknlfhoi abdgjcmkenflhio abdgjcmkenflhoi abdgjcmkenlfhio abdgjcmkenlfhoi

adbgjcmeknflhio adbgjcmeknflhoi adbgjcmeknlfhio adbgjcmeknlfhoi adbgjcmkenflhio adbgjcmkenflhoi adbgjcmkenlfhio adbgjcmkenlfhoi

adgbjcmeknflhio adgbjcmeknflhoi adgbjcmeknlfhio adgbjcmeknlfhoi adgbjcmkenflhio adgbjcmkenflhoi adgbjcmkenlfhio adgbjcmkenlfhoi

adgjbcmeknflhio adgjbcmeknflhoi adgjbcmeknlfhio adgjbcmeknlfhoi adgjbcmkenflhio adgjbcmkenflhoi adgjbcmkenlfhio adgjbcmkenlfhoi

et aussi les pesées naturelles donnent lieu à trois classes, deux de huit éléments et une troisième de 16. Par exemple la pesée du triplet laisse, dans le pire des cas, 16 possibilités qui correspondent à l’ordre dans les couples et : la position des lettres en noir et celle des couples en rouge sont fixées ; mais dans chaque couple l’ordre des boules est libre : a b?d g j c m e?k n f?l h i?o ce qui demande encore quatre pesées.

Références

Documents relatifs

Retrouve et trace la droite qui partage chaque angle en deux parties égales ; utilise du

[r]

Ils le sauvent par la. gauche et font retomber la pierre. Vendredi va voir si Edwige n'a pas été réveillée par les cris de Suzanne et de Toby. Robinson paraît sur la palissade et

[r]

[r]

Puisque la recherche a fait mention des facteurs de protection qui facilitent l'entrée dans l'écrit de manière formelle, il faut en assurer l'accès aux jeunes enfants avant l'entrée

Au cours d'une pesée on place une boule sur chacun des plateaux : le plateau le plus bas porte la boule la plus lourde, le plateau le plus haut porte la boule la plus légère et

Comme exemples de pesées qui divisent effectivement par 6 le nombre de chaînes restantes, on peut commencer en partageant les boules en trois groups de 3 boules chacun ; après