par bogie-wogie
23 Fév 2013, 01:25
Comme promis, voici un premier épisode de mon nouveau feuilleton sur les "Trucs et Astuces du Triage de Jeuvret". Pour certains participants assidus j'enfonce ici sans doute une porte ouverte, pour d'autres ce sera peut-être une découverte. A chacun d'y trouver son bonheur...
Préambule
Sauf mention contraire les astuces et raisonnements présentés dans cette série concernent essentiellement le tri de rames dans lesquelles tous les wagons sont différents (ou plus exactement : ont des destinations différentes). Le cas des wagons multiples sera examiné dans l’une des dernières astuces. D’autre part, après bien des hésitations, j’ai tout de même consacré une astuce (la n° 5, à moins que cela change d’ici là) à la notation par « wagons déplacés ». Elle est très compacte, complète, et permet à la fois de mieux expliquer et de mieux comprendre certains raisonnements pour faciliter la recherche de solutions.
Astuce 1 : minimum absolu.
Il est toujours intéressant et utile, en abordant un problème de triage, de connaître la limite qu’on ne pourra pas franchir, c’est-à-dire le nombre minimum absolu de coups nécessaires pour trier une rame donnée. Ce minimum absolu, malgré les apparences, est une valeur facile à calculer. C’est : µ = 2g+1 (avec g positif, non nul).
« g » est le nombre de « glisses » dans la rame, c’est-à-dire le nombre de paires de wagons consécutifs dans lesquelles le deuxième doit venir se placer devant le premier. Un peu abstrait tout ça, alors quelques exemples simples :
Prenons la rame CAEDBF. Les wagons en rouge (A, D et B) devront être déplacés pour venir devant celui qui les précède et répondent au critère. Il y en a g = 3, donc pour cette rame il ne sera pas possible de descendre en dessous de µ = 2x3+1 = 7 coups. Et vous pouvez vérifier que la meilleure solution est effectivement en 7 coups.
Mais c’est un minimum absolu, de principe, et dans certains cas il ne sera pas possible de l’atteindre. Par exemple la rame CBFEAD est aussi caractérisée par g=3 et un minimum absolu de 7, mais sa meilleure solution nécessite 9 coups, pas un de moins. Une autre astuce, plus complexe, permet de le comprendre.
Il en va de même pour la rame CBAEDF qui a un minimum absolu de 7 mais qui se résout en 8 coups, pas un de moins. L’astuce 3 expliquera pourquoi.
Ce minimum absolu ne garantit donc pas le nombre de coups nécessaire pour trier une rame donnée mais dans de nombreux cas il donne tout de même le nombre de coups effectif, et dans bien d’autres cas il permet de déterminer ce nombre de coups effectif quand il est différent. C’est donc un élément fort utile à connaître avant même de commencer à trier une rame.
Le cas le plus simple est celui de la rame BA où g=1 et le minimum vaut 3 (et 3 coups sont effectivement nécessaires pour la trier). Par contre une rame telle que ABC, pour laquelle g=0, ne satisfait pas le critère d’application de notre formule : g ne doit en effet pas être nul. Le minimum absolu pour ABC et toutes les rames de ce type vaut 0 puisqu’il n’y a aucun tri à faire…
Petit exercice pour terminer : combien vaut le minimum absolu pour la rame FEDCBA ? C’est aussi le nombre de coups suffisant pour la trier.
Existe-t-il une formule donnant un minimum µ plus exact (ou plus proche de la solution minimale réelle lorsque la formule présentée ici est trop optimiste) ? C’est probable, mais je n’ai pour l’instant rien trouvé de mieux.
bw
Ce qui est rare est cher,
Une locomotive miniature bon marché est rare,
Donc : une locomotive miniature bon marché est chère.