4.2 Spécificité
Tous les algorithmes évolutionnaires sont des
méthodes générales, c'est-à-dire qu'elles n'ont pas
besoin d'avoir, a priori, des connaissances sur le problème. Cette
faculté de généralisation n'est pas toujours avantageuse.
En effet, toute la puissance des méthodes spécifiques
réside dans le fait qu'elles utilisent des connaissances propres au
problème.
Selon certains, des mécanismes généraux
suffisamment puissant ont eux même la faculté de mener
efficacement la recherche sans disposer d'information spécifiques du
problème (contexte de boite noire). C'est notamment le
point de vue classique sur les algorithmes génétiques.
Malheureusement, de même qu'il ne peut pas exister de stratégie
avantageuse dans un jeu de hasard, il existe également des limitations
théoriques fondamentales qui ruinent les espoirs d'une méthode
aveugle dans le cas le plus général[91]. En fait, le
théorème "No Free Lunch" montre que pour les problèmes de
type boite noire, toutes les méthodes sont équivalentes et font
aussi bien, ou plutôt aussi mal, que l'énumération
aléatoire. Autrement dit, il n'existe pas de méthode surpassant
les autres sur tous les problèmes.
Selon un point de vue opposé, la puissance d'une
méthode générale est d'abord liée à son
aptitude à intégrer des connaissances spécifiques du
problème. La connaissance du problème la plus fondamentale
réside dans le codage du problème et dans le choix de la
population. L'importance du codage est cruciale. En effet, dans plusieurs
problèmes de référence (comme le problème du
voyageur de commerce) où différents codages ont été
proposés, les résultats étaient très variés.
Quoiqu'il n'existe pas de codage universellement efficace, un bon codage doit
permettre de restreindre l'espace de recherche et d'intégrer un maximum
de connaissances du problème.[91]
Une autre voix pour incorporer des connaissances
supplémentaires, afin de tenter d'améliorer l'efficacité,
est de les intégrer dans les opérateurs. Plus les
opérateurs d'une méthode utilisent des connaissances
spécifiques, plus cette méthode dispose de moyens potentiels pour
conduire efficacement la recherche. En contrepartie, l'intégration de
ces connaissances spécifiques (en supposant qu'elles soient
disponibles), nécessite un effort pour spécialiser ou adapter la
méthode. En général, une méthode offrant des
possibilités d'intégrer des connaissances du problème a
plus de chance de produire de bons résultats, mais demande un effort
d'adaptation ou de spécialisation. Au contraire une méthode
très générale qui prétend n'intégrer aucune
connaissance propre ne peut pas être compétitive.[148]
La capacité de spécialisation que peut offrir
une méthode d'adaptation doit se manifester comme une technique
d'adaptation, et non pas comme une configuration prévue dès le
départ pour un type de problème particulier. En effet, plus la
méthode est spécifique, plus son champ d'application se
restreint. Ces deux mesures sont plutôt contradictoires. Si la
méthode est conçue pour un type particulier de problèmes,
sa conception réalisée en conséquence et son
efficacité seront meilleures qu'une méthode plus
générale. Seulement, même si l'on peut appliquer la
méthode à d'autres problèmes qui ne faisaient pas l'objet
de sa conception au départ, les résultats ne seront pas aussi
bons que ceux ayant été obtenus pour des problèmes de sa
spécialité.
Les stratégies d'évolution ont adoptés un
modèle très général. Avec la représentation
réelle des individus, elles peuvent traiter n'importe quel
problème d'optimisation. On ne peut pas dire que le fait qu'elles soient
conçues pour des problèmes d'optimisation est un signe de
spécification, car le domaine d'optimisation est loin d'être une
limitation, sans compter le fait que pratiquement tous les domaines s'y
réfèrent. Il se peut cependant que la représentation
réelle soit un obstacle lors de la résolution de certains
problèmes dont la nature est aussi simple pour que des nombres
réels soient nécessaires.
Une des façons les plus importantes pour l'adaptation
dans les stratégies d'évolution est la fonction
d'auto-adaptation. En fait, nous verrons par la suite que l'apport de cette
fonction ne se résume pas à cette adaptation. En évoluant
les paramètres de variation, la stratégie permet de suivre en
permanence l'évolution de la population et d'adapter la variation en
conséquence; et comme cette population est sensée aller de mieux
en mieux, la qualité des connaissances incorporées devrait
être de plus en plus bonne. Par ailleurs le fait que l'adaptation ne soit
pas constante est un facteur très important. En effet, Dans la plupart
des méthodes, l'utilisation des informations spécifiques se fait
dans une phase d'initialisation en adaptant la représentation de la
population et les fragments de croisement au problème
considéré, et ces paramètres restent constants durant
toute le période d'exécution. Par contre, dans l'auto-adaptation,
ces paramètres évoluent avec l'évolution des individus. Il
se peut que les connaissances incorporées au lancement de l'algorithme
ne soient plus valides après un certains nombre de
génération.
En ce qui concerne la programmation génétique,
il est un peut plus difficile de juger de sa spécificité. Il faut
prendre en considération la différence de ses définitions,
et aussi le niveau de spécification considérée. Si l'on
tient au premier sens, la programmation génétique ne sera rien
qu'une stratégie d'évolution avec une structure de population
arborescente, avec, bien entendu, un ensemble d'opérateur
différent, mais ceci n'a pas d'influence. Le seul effet que peut avoir
cette structure est qu'elle limite le champ d'application aux problèmes
pouvant être modélisés sous forme d'arbres, et même
pour ceux-ci, un travail d'adaptation important peut devenir dans certains cas
nécessaire.
Si l'on considère maintenant la deuxième
définition, on peut voir les choses de deux angles différents.
D'un premier angle, la programmation génétique peut être
vue comme une méthode très spécifique, étant
donné qu'elle ne peut optimiser que des programmes informatiques.
Plusieurs opérateurs de variation relatifs à la programmation
génétique n'ont un intérêt que si la population
considérée est un ensemble de programmes. Dans le cas de
l'encapsulation par exemple, si le groupe de noeuds ne correspond pas à
une
fonction informatique (dans son sens le plus large),
l'opérateur n'aura pas d'intérêt car seules les fonctions
peuvent donner un sens à ce regroupement. Dans les autres cas,
l'encapsulation ne fera que pénaliser la diversité de la
population.
D'un deuxième angle, le fait d'optimiser un programme
qui résoud un problème, est plus général
qu'optimiser la solution du problème lui-même. Cette idée a
un intérêt remarquable de son caractère
généraliste. Si un programme donné est optimal, la
résolution du problème associé n'aura plus besoin
d'optimisation. Il suffit juste d'avoir un bon programme pour ne se soucier
plus de la qualité de la solution.
Comme il n'existe aucun modèle évolutionnaire
directe pour la reconnaissance, on a toujours recours à des
modèles d'optimisation pour l'estimation des ressemblances. Ces
modèles étant toujours précédés d'une phase
d'apprentissage. Le meilleur compromis est d'utiliser une structure
arborescente pour améliorer l'apprentissage, et de laisser les
stratégies d'évolution s'occuper de la reconnaissance. Notons en
fin qu'une fois que l'opération d'apprentissage a bien été
effectuée, et qu'une bonne paramétrisation a été
estimée, l'optimisation des correspondances phonétiques ne sera
qu'un apport supplémentaire.
|