Salut, a tous,
Jai une fonction objectif dont je voudrais optimiser a partir d'un algorithm meta-heuristic tel que (AG, PSO....). Le problème est que je narrive pas a formuler la fonction objectif dans Matlab.
Quelqu'un est il disposer a m'aider ?
Salut, a tous,
Jai une fonction objectif dont je voudrais optimiser a partir d'un algorithm meta-heuristic tel que (AG, PSO....). Le problème est que je narrive pas a formuler la fonction objectif dans Matlab.
Quelqu'un est il disposer a m'aider ?
Bonjour,
La fonction objectif est la grandeur que l'algo d'optimisation doit minimiser.
Comme pour n'importe quel algorithme déterministe, la fonction doit prendre un vecteur de paramètres et renvoyer un scalaire correspondant au coût de la solution correspondant à ce vecteur.
Cette fonction peut être une fonction Matlab "classique", codée dans un fichier annexe (e.g. maFonctionCout.m), ou anonyme (e.g. @(x)x.^2).
Certains optimiseurs intègrent par ailleurs l'option "UseVectorized" : dans ce cas, la fonction coût doit accepter une matrice comme argument d'entrée et renvoyer un vecteur de cout, dont chaque élément correspondant à une ligne de la matrice d'entrée. e.g. pour le PSO : https://fr.mathworks.com/help/gads/p...html#buez8bd-1
je rajouterais que l'utilisation de fonction anonyme est presque indispensable lors de l'appel de la fonction objectif, afin de pouvoir écrire une fonction objectif avec plus d'argument que ce que l'algo d'optimisation demande
exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function main a = 42; xmin = fminsearch(@(x) myfun(x,a),2) function y = myfun(x,a) y = a*x^2; end end
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager