clc() // Nettoyage l'espace de travail
clear // Nettoyage toutes les variables en mémoire
getd // Mise en mémoire de toutes les fonctions se situant dans le répertoire de travail
// ===== PARAMETRES DE L'ALGORITHME ===== //
Bornes=[-10 10 ; -10 10 ; -10 10 ; -10 10] // Bornes de l'espace des phases
n=1000 // Nombre total de sauts à réaliser
// ===== INITIALISATION ===== //
XOptimum=[] // Initialisation de la position de l'optimum trouvé : RIEN
FOptimum=1E100 // Initialisation de la fonction coût associée à l'optimum : VALEUR ARBITRAIRE
DimN=size(Bornes,1) // Détermination de la dimension de l'espace des phases
// ===== CODE DE CALCUL ===== //
for i=1:n // Boucle sur l'ensemble des sauts à effectuer
    X=rand(DimN,1).*(Bornes(:,2)-Bornes(:,1))+Bornes(:,1) // Nouvelle définition d'un saut
    F=RosenbrockFunction(X) // ou F=SphereFunction(X) // Evaluation de la fonction coût à la position actuelle
    if ( F < FOptimum ) // Test de la nouvelle position par rapport à celle de l'optimum
        FOptimum=F // Enregistrement de la valeur de la fonction coût
        XOptimum=X // Enregistrement de la nouvelle position de l'optimum
    end
end
// ===== EDITION DES RESULTATS ===== //
disp('Jeu de paramètres trouvés :')
disp(XOptimum)
disp('Valeur de la fonction coût associée à l optimum : ')
disp(FOptimum)
