April 06, 2005

Apprendre à aimer le plateau

J'ai proposé un sujet de kata il y a trois semaines environ, que nous avons rebaptisé le "Kata Potter". Il y s'agit de calculer un montant total pour un ensemble de livres achetés, en choisissant dans une liste connue de réductions la combinaison qui donnera le coût minimum à payer. Les montants de chaque réduction et leur cadre d'application est déterminé dans le problème de façon à ce qu'un algorithme vorace utilisant comme heuristique la plus forte réduction applicable ne fonctionne pas.

Cet exercice me fascine, car lorsqu'on le présente à des informaticiens, la plupart d'entre eux (y compris les débutants) ont une idée claire de l'algorithme à utiliser, et ne mesurent pas la difficulté à le mettre en oeuvre. La fonction centrale réside en construire la liste des partitions possibles de l'ensemble des livres achetés (pour ensuite ne garder que la partition conduisant au prix total minimum) et induit des manipulations complexes de structures de listes imbriquées. Par ailleurs, l'explosion combinatoire de cet algorithme rend rapidement obligatoire l'utilisation d'heuristiques de limitation d'exploration, ce qui complique encore le partitionnement.

Douce ironie -- cela fait maintenant trois semaines que je cherche à trouver une solution à ce problème, et que mes algorithmes d'optimisation sont faux. Tentant une approche non optimisée, nous avons étudié l'algorithme de partitionnement lors de la dernière séance du dojo, mais n'avons pas réussi à produire une liste correcte de partitions pour un ensemble de 3 éléments. Là où je souhaitais pimenter notre travail par un problème non trivial, je ne peux que constater mon incapacité actuelle à le résoudre.

Christophe a remarqué après la séance -- "nous n'avons pas réussi, mais nous apprenons à aimer le plateau" -- faisant référence au modèle d'apprentissage selon lequel les progrès arrivent par paliers. Au-delà de la poésie de cette expression et de l'optimisme qui nous permettait de regarder notre échec de manière plus positive, je trouve cette attitude pleine de sens.

Constatant que je passe plus de temps que prévu à mon niveau d'apprentissage actuel, je dois me faire de cet état cognitif un allié, un territoire où les découvertes de chaque zone inexplorée sont autant d'opportunités pour mieux comprendre ce qui m'y retient. Quitte à rester quelque part, autant apprendre à aimer cet endroit. Et plutôt que de regarder avec insistance le haut de la marche suivante, inaccessible, mieux vaut avec humilité se réjouir des surprises que nous réserve la marche sur laquelle nous nous trouvons.

Posted by Emmanuel at April 6, 2005 09:44 PM