Après sa génération par le système, la solution du problème est testée. Cette étape est généralement externe au RàPC. Suivant le domaine, on peut faire appel à un logiciel de simulation ou à un expert. N’oublions pas que la durée d’une évaluation peut être très longue, notamment dans le domaine médical pour le test de traitements. Si cette évaluation est concluante, on va retenir cette nouvelle expérience. C’est la phase d’apprentissage que nous étudierons par la suite. Cependant si la solution n’est pas satisfaisante, il faut la réparer ou tout au moins expliquer les raisons de l’échec. C’est la phase de révision.
La phase de révision va donc en premier lieu essayer de déterminer les raisons de l’échec. Pour cela, on peut essayer d’expliquer pourquoi certains buts n’ont pas été atteints. Les informations collectées vont enrichir une mémoire d’échec utilisée lors de la phase d’adaptation. Ainsi lors des prochaines générations de solutions, le système ne répétera pas ses erreurs.
Lorsque le système a déterminé les raisons de l’échec de la solution, il est possible d’essayer de la réparer. Cette étape de réparation peut être vue comme une autre fonction d’adaptation. La seule différence est que dans la réparation, on travaille à partir d’une solution incorrecte mais adaptée au problème au lieu de solutions correctes inadaptées. On va s’appuyer sur les explications de l’échec pour réaliser les modifications.
Dans les systèmes RàPC simples, lorsque l’on a retrouvé un cas similaire, on réutilise directement la solution qu’il propose pour le problème courant. Dans ce type de systèmes, on considère que les similarités sont suffisantes et que l’on peut négliger les différences entre le cas trouvé et le problème.
Cette façon de procéder est quand même peu satisfaisante. Il est rare que l’on trouve un cas identique au problème, il est alors souvent nécessaire d’adapter les solutions préexistantes. L’adaptation consiste donc à construire une nouvelle solution à partir du problème courant et des cas similaires trouvés. Cette phase met l’accent sur les différences entre les cas trouvés et le problème et sur l’information utile à transférer à la nouvelle solution.
Il existe deux types d’adaptation :
L’adaptation transformationnelle consiste à réutiliser directement les solutions des cas passés. Ce type d’adaptation ne prend pas en compte la manière dont les solutions des cas similaires ont été générées. On utilise des lois d’adaptation pour transformer les anciennes solutions. Ces lois sont dépendantes du domaine d’application du système RàPC.
On peut utiliser ce type d’adaptation lorsque l’on dispose pour chaque cas stocké dans la base des étapes du raisonnement menant aux solutions. L’adaptation dérivative consiste à appliquer le même raisonnement au nouveau problème. Lors de la construction de la nouvelle solution, on va privilégier les chemins pris par les anciennes solutions sélectionnés et éviter les chemins infructueux. Cependant le nouveau cas est différent, de nouveaux sous-objectifs seront poursuivis.
Il existe d’autres types d’adaptations possibles. On peut par exemple faire appel à des cas d’adaptation. Cela revient à considérer un système CBR dédié à l’adaptation en général. Il ne serait spécialisé vers aucun domaine en particulier et contiendrait des cas assez abstraits d’adaptation.
Une autre approche est de classifier les cas dans une hiérarchie. Cette approche permet à des cas d’être réutilisés avec un niveau d’abstraction le plus élevé possible, ce qui les rend facilement applicable à une nouvelle situation. Pour adapter les sous parties d’une solution, le système se référera au contexte de la solution générale.