Les tours de Hanoi - partie 3
On commence à coder l’algorithme génétique pour solutionner les tours de Hanoi.
$ tree
.
├── ga.rb
├── lib
│ ├── hanoi
│ │ ├── board.rb
│ │ ├── game.rb
│ │ └── rules.rb
│ └── hanoi.rb
└── spec
├── board_spec.rb
├── game_spec.rb
├── integration
│ └── game_spec.rb
└── spec_helper.rb
Voilà de quoi commencer, des chromosomes, une population et l’évaluation de chaque chromosome.
Ça fonctionne:
$ ruby ga.rb
0
5
4
2
2
4
5
5
4
4
4
1
5
4
1
0
0
2
0
4
Mais la fonction GA#evaluate
me dérange. D’abord elle est trop longue, mais
rien qui ne puisse s’arranger avec un refactoring. Ce qui me dérange surtout
c’est qu’elle délègue la vraie évaluation à Board
. Or, l’évaluation
dévrait faire partie intégrante de l’algorithme génétique, et pas de la
mécanique du jeu. C’est donc un point à améliorer avant d’aller plus loin.
À demain.
/ / / / / / / / / /