bonjour
dans le cadre d'implimentation de l'algorithme de recheche avec tabou sur une fonction de de variables
le fonction est
f(x,y)=((x-1).^2)+10*(x.^2 -y).^2;
l'intervalle de recherche est
-2<x<2 et -2<y<2
pour implimente cette algorithme RT dans Matlab ,nous besoine un soulition initiale que le minimum globale de cette fonction (1,1)
le prncipe de cette algorithme est
Le principe de la recherche Tabou repose sur une méthode de déplacement sur l’espace des solutions, tout en cherchant constamment à améliorer la meilleure solution courante et en conservant en mémoire la liste des précédents déplacements et ainsi guider la recherche en dehors de zones précédemment parcourues.
L’idée de base s’inspire des techniques de recherche utilisées en intelligence artificielle. Elle consiste à garder la trace du cheminement passé du processus de recherche dans une ou plusieurs mémoires et à se servir de cette information afin d’en orienté le déroulement futur.
-Principe de base : poursuivre la recherche de solutions même lorsqu'un optimum local est rencontré et ce :
• En permettant des déplacements qui n'améliorent pas la solution.
• En utilisant le principe de mémoire pour éviter les retours en arrière (mouvements cycliques).
La RT est basée sur :
• L’utilisation de structures de mémoires flexibles (court, moyen, long terme) permettant l’exploration complète du critère d’évaluation et aussi de l’historique de la recherche.
• Un mécanisme de contrôle basé sur l’alternance entre les conditions qui restreignent (restriction Tabou) et qui libèrent (critère d’aspiration) le processus de recherche.
• L’incorporation des stratégies dites d’intensification et de diversification de la recherche :
o La stratégie d’intensification utilisant la mémoire à moyen terme, sert à renforcer la recherche dans la région des meilleures solutions trouvées récemment.
o La stratégie de diversification utilisant la mémoire à long terme, sert à guider la recherche dans de nouvelles régions.
En générale on ne va pas garder tous les déplacements (trop coûteux en mémoire), mais on va seulement empêcher l’accès à certains solutions pendant un certains nombre d’itérations.
notre probleme est
comment developpe cette algoritheme dans matlab
notre tentative sont
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
>> [x,y]= meshgrid (-2:.1:2);
>> f=((x-1).^2)+10*(x.^2 -y).^2;
>> mesh(x,y,f)
>> banana = @(x)100*(x(2)-x(1)^2)^2+(1-x(1))^2
banana =
@(x)100*(x(2)-x(1)^2)^2+(1-x(1))^2
>> [x,fval] = fminsearch(banana,[-2,2])
x =
1.0000 1.0000
>> |
Partager