La Balance du Nabatéen
Le modéle ci-dessous nécessite Java 1.4.1 ou plus (disponible sur Sun's Java site),
Windows 97 ou plus ou Mac OS X 10.2.6 ou plus.
Son mode d'emploi figure sous le modèle. Des explications complémentaires sont données sur le Site de Groupe Béna
Crée avec NetLogo download model file: nabateen.nlogo
Ce modèle simule le fonctionnement d'une balance à deux plateaux équipée de "pesons" avec lesquels il s'agit d'équilibrer la Masse située sur le plateau Gauche, en dépensant le moins "d'énérgie" possible.
Cette Masse (M) peut prendre toutes les valeurs entières comprises entre 1 et 128 kg, au choix de l'utilisateur.
Les valeurs des pesons sont de la forme B^n (Base à la puissance n)
Base étant un entier de 2 à 10, au choix de l'utilisateur.
n variant de 0 à N (entier).
N étant un entier le plus petit possible, afin que le Nombre total de pesons nécessaires pour évaluer n'importe quelle masse entière inférieure ou égale à M soit le plus petit possible.
Il est supposé que la "balance" ne connait pas la valeur de la "Masse" posée sur son plateau de Gauche. Elle doit la trouver en ajoutant ou en retranchant les pesons dont elle dispose.
Détermination des pesons nécessaires :
Pour que le Nombre total de pesons nécessaires pour évaluer n'importe quel masse entière inférieure ou égale à M soit le plus petit possible, on montre par ailleurs qu'il faut disposer de chaque peson en plusieurs exemplaires (Nex) dès lors que la valeur de la Base est supérieure ou égale à 4.
Si Base >= 4
Alors Nex = int(Base / 2)
Mais les Nex exemplaires sont nécessairement utilisés sur les deux plateaux uniquement si Base est impair. Si Base est paire alors on a besoin que de Nex-1 exemplaires sur le plateau de gauche.
Le nombre total de pesons nécessaires est tel que la somme des valeurs des pesons est tout juste égale ou supérieure à la Masse choisie.
Masse-pesons = Somme pour P = 0 à Pmax ( somme pour Nx de 1 à Nex (Base ^ P) )
avec (Masse-pesons - Masse) > 0 et le plus petit posible
Nbr-pesons = Nex * (Pmax + 1)
set Nbr-pesons 0
set Pmax 0
set Masse-pesons 0
while [Masse-pesons < Masse]
[ set N 1
while [ N <= Nex ]
[set Masse-pesons Masse-pesons + (Base ^ Pmax)
set Nbr-pesons Nbr-pesons + 1
set N N + 1]
set Pmax Pmax + 1
]
set Pmax Pmax - 1
Procédure pour équilibrer la balance
La procédure qui demande le moins de manipulation et le moins d'énergie est à priori celle qui suppose que la Masse à trouver est faible, et qui, par conséquent, commence toujours par déplacer les pesons les plus légers. On montre en effet que la somme des masses des pesons de 1 à N est inférieur à la masse du Peson N+1.
L'algorythme est donc le suivant :
On commence par charger le plateau gauche avec le peson le plus leger (Base^0 = 1)
Tant qu'il n'y a pas bascule on continue avec le peson disponible le plus léger.
S'il y a bascule, et tant qu'il n'y a pas à nouveau bascule, on décharge avec le peson disponible le plus léger, en s'arrétant au peson le plus lourd déjà sur la balance.
Si on a atteint ce peson le plus lourd sans bascule, alors c'est le plateau gauche qu'il faut charger ... avec la même mêthode.
Le système compte le nombre de fois qu'un peson est déplacé (chargé ou déchargé), ainsi que l'énergie nécessaire au déplacement :
En supposant que le déplacement est toujours de 1 m, (et que l'accélaration de la pesanteur est de 10 m.s^-2 l'energie en kJ est égale à la Masse déplacée exprimée en kg.
L'utilisateur choisit la Valeur de la Base et celle de la Masse (curseur).
Il appuit sur la touche "Initialiser"
Le système calcul les pesons nécessaires et les dispose sur le sol entre les deux plateaux.
L'utilisateur eut alors appuyer sur la touche "Peser"
L'automate déplace les pesons un par un et affiche les résultats j'usqu'à touver l'équilibre.
Copyright : Groupe Béna - Jean-Nicolas Maisonnier
www.groupebena.org
www.maisonnier.com/jn
V1 8 déc 2007
V2 15 déc 2007