Bonjour.
Je fabrique présentement un robot qui doit trier une pile de feuille de papier numéroté.
Il y a une pile de 500 feuilles devant le robot, chaque feuille étant numéroté de 1 à 500. Ces feuilles ne sont pas dans l'ordre.
Le robot peut lire les chiffres sur les feuilles. Il peut créer jusqu'à environ 3 piles de papier cote à cote près de lui (maximum 5 faute d'espace sur la table), pour se donner des espaces temporaire afin d'effectuer son tri. Le robot ne peut insérer une feuille entre deux autres, il peut uniquement la placer sur le dessus d'une des pile. Un peu sur le principe des tours de Hanoi.
voir: http://javaboy.free.fr/tourdehanoi/index.htm
Au contraire des tours de Hanoi, un chiffre plus grand peut être placer sur un plus petit si besoin durant le tri.
La pile de feuilles finale doit-être trier de 1 à 500.
J'essais de trouver un algorithme de tri efficace pour automatiser mon robot.
Je peux utiliser des listes en mémoires pour m'aider dans mon travail, des variables, etc, la seule restriction est la porter du bras du robot qui peut s'étendre jusqu'à un maximum de 5 piles (moin de piles est encore mieux car moin de long déplacement). Bien entendu le bras du robot doit se promène d'une pile de feuilles à l'autre et c'est surtout à ce niveau que je suis pénalisé. Si le robot prend par exemple 2 ou 3 secondes pour prendre, déplacer et déposer la feuille sur une autre feuille, et qu'il doit effectuer 100 000 déplacements, 4 jours et il aura à peine terminé.
Avez-vous des suggestions sur quel algorythm ou quel facon je devrais procédé pour faire le tri?
Merci beaucoup.
Michel