30
Aide MATLab sur les algorithmes génétiques 1) Genetic algorithm tool Fitness function is the objective function you want to minimize. You can specify the function as a function handle of the form @objfun, where objfun.m is an M-file that returns a scalar. Number of variables is the number of independent variables for the fitness function. Constraints Linear inequalities of the form A*x <= b are specified by the matrix A and the vector b. Linear equalities of the form Aeq*x = beq are specified by the matrix Aeq and the vector beq. Bounds are lower and upper bounds for the variables: Lower = specifies lower bounds as a vector. Upper = specifies upper bounds as a vector. Nonlinear constraint function defines the nonlinear constraints. You can specify the function as a function handle of the form @nonlcon, where nonlcon.m is an M-file that returns the vectors C and Ceq. The nonlinear 1

Aide MATLab sur les algorithmes génétiques

Embed Size (px)

Citation preview

Page 1: Aide MATLab sur les algorithmes génétiques

Aide MATLab sur les algorithmes génétiques

1) Genetic algorithm tool

Fitness function is the objective function you want to minimize. You can specify the function as a function handle of the form @objfun, where objfun.m is an M-file that returns a scalar.

Number of variables is the number of independent variables for the fitness function.

Constraints

Linear inequalities of the form A*x <= b are specified by the matrix A and the vector b.

Linear equalities of the form Aeq*x = beq are specified by the matrix Aeq and the vector beq.

Bounds are lower and upper bounds for the variables:

Lower = specifies lower bounds as a vector. Upper = specifies upper bounds as a vector.

Nonlinear constraint function defines the nonlinear constraints. You can specify the function as a function handle of the form @nonlcon, where nonlcon.m is an M-file that returns the vectors C and Ceq. The nonlinear equalities are of the form Ceq = 0, and the nonlinear inequalities are of the form C <= 0.

Plot Functions

Plot functions enable you to plot various aspects of the genetic algorithm as it is executing. Each one will draw in a separate axis on the display window. Use the Stop button on the window to interrupt a running process.

Plot interval specifies the number of generations between successive updates of the plot. Best fitness plots the best function value in each generation versus iteration number. Expectation plots the expected number of children versus the raw scores at each generation.

1

Page 2: Aide MATLab sur les algorithmes génétiques

Score diversity plots a histogram of the scores at each generation. Stopping plots stopping criteria levels. Best individual plots the vector entries of the individual with the best fitness function value in each

generation. Genealogy plots the genealogy of individuals. Lines from one generation to the next are color-coded as

follows: o Red lines indicate mutation children. o Blue lines indicate crossover children. o Black lines indicate elite individuals.

Scores plots the scores of the individuals at each generation. Max constraint plots the maximum nonlinear constraint violation. Distance plots the average distance between individuals at each generation. Range plots the minimum, maximum, and mean fitness function values in each generation. Selection plots a histogram of the parents. This shows you which parents are contributing to each generation. Custom enables you to use your own plot function. Enter a function handle of the form @myplotfcn.

Population Options

Population options specify options for the population of the genetic algorithm.

Population type specifies the type of the input to the fitness function. You can set Population type to be Double vector, or Bit string, or Custom. If you select Custom, you must write your own creation, mutation, and crossover functions that work with your population type, and specify these functions in the fields Creation function, Mutation function, and Crossover function, respectively.

Population size specifies how many individuals there are in each generation. If you set Population size to be a vector of length greater than 1, the algorithm creates multiple subpopulations. Each entry of the vector specifies the size of a subpopulation.

Creation function specifies the function that creates the initial population. The default creation function Uniform creates a random initial population with a uniform distribution. Custom enables you to provide your own creation function, which must generate data of the type that you specify in Population type. See in the online documentation to learn how to write a creation function.

Initial population enables you to specify an initial population for the genetic algorithm. If you do not specify an initial population, the algorithm creates one using the Creation function.

Initial scores enables you to specify scores for initial population. If you do not specify Initial scores, the algorithm computes the scores using the fitness function.

Initial range specifies lower and upper bounds for the entries of the vectors in the initial population. You can specify Initial range as a matrix with 2 rows and Initial length columns. The first row contains lower bounds for the entries of the vectors in the initial population, while the second row contains upper bounds. If you specify Initial range as a 2-by-1 matrix, the two scalars are expanded to constant vectors of length Initial length.

Fitness Scaling Options

The scaling function converts raw fitness scores returned by the fitness function to values in a range that is suitable for the selection function.

Scaling function specifies the function that performs the scaling. You can choose from the following functions:

2

Page 3: Aide MATLab sur les algorithmes génétiques

Rank scales the raw scores based on the rank of each individual, rather than its score. The rank of an individual is its position in the sorted scores. The rank of the fittest individual is 1, the next fittest is 2 and so on. Rank fitness scaling removes the effect of the spread of the raw scores.

Proportional makes the expectation proportional to the raw fitness score. This strategy has weaknesses when raw scores are not in a "good" range.

Top scales the individuals with the highest fitness values equally. If you select this option, you can specify Quantity, the number of fittest individuals that produce offspring. Quantity must be an integer between 1 and PopulationSize or a fraction between 0 and 1 specifying a fraction of the population size. Each of these individuals has an equal probability of reproducing. The rest have probability 0 of reproducing. The expectation has the form [ 0 1/n 1/n 0 0 1/n 0 0 1/n ...].

Shift linear - The function scales the raw scores so that the expectation of the fittest individual is equal to a constant, which you can specify as Maximum survival rate, multiplied by the average score.

Custom enables you to write you own scaling function.

Selection Options

The selection function chooses parents for the next generation based on their scaled values from the fitness scaling function.

You can specify the function that performs the selection in the Selection function field. You can choose from the following functions:

Stochastic uniform lays out a line in which each parent corresponds to a section of the line of length proportional to its expectation. The algorithm moves along the line in steps of equal size, one step for each parent. At each step, the algorithm allocates a parent from the section it lands on. The first step is a uniform random number less than the step size.

Remainder assigns parents deterministically from the integer part of each individual's scaled value and then uses roulette selection on the remaining fractional part.

Uniform select parents at random from a uniform distribution using the expectations and number of parents. This results in an undirected search. Uniform selection is not a useful search strategy, but you can use it to test the genetic algorithm.

Roulette simulates a roulette wheel with the area of each segment proportional to its expectation. The algorithm then uses a random number to select one of the sections with a probability equal to its area.

Tournament - The function selects each parent by choosing individuals at random, the number of which you can specify by TournamentSize, and then choosing the best individual out of that set to be a parent.

Custom enables you to write you own selection function.

Reproduction Options

Reproduction options determine how the genetic algorithm creates children at each new generation.

Elite count specifies the number of individuals that are guaranteed to survive to the next generation. Set Elite count to be a positive integer less than or equal to Population Size.

Crossover fraction specifies the fraction of the next generation, other than elite individuals, that are produced by crossover. The remaining individuals, other than elite individuals, in the next generation are produced by mutation. Set Crossover fraction to be a fraction between 0 and 1, either by entering the fraction in the text box or moving the slider.

Mutation Options

Mutation functions make small random changes in the individuals in the population, which provide genetic diversity and enable the GA to search a broader space. You can specify the function that performs the mutation in the Mutation function field. You can choose from the following functions:

3

Page 4: Aide MATLab sur les algorithmes génétiques

Gaussian adds a random number to each vector entry of an individual. This random number is taken from a Gaussian distribution centered on zero. The variance of this distribution can be controlled with two parameters. The Scale parameter determines the variance at the first generation. The Shrink parameter controls how variance shrinks as generations go by. If the Shrink parameter is 0, the variance is constant. If the Shrink parameter is 1, the variance shrinks to 0 linearly as the last generation is reached.

Uniform is a two-step process. First, the algorithm selects a fraction of the vector entries of an individual for mutation, where each entry has a probability of MutationRate of being mutated. In the second step, the algorithm replaces each selected entry by a random number selected uniformly from the range for that entry.

Adaptive feasible randomly generates directions that are adaptive with respect to the last successful or unsuccessful generation. A step length is chosen along each direction so that linear constraints and bounds are satisfied.

Custom enables you to write you own mutation function that satisfies any constraints specified.

Crossover Options

Crossover combines two individuals, or parents, to form a new individual, or child, for the next generation.

You can specify the function that performs the crossover in the Crossover function field. You can choose from the following functions:

Scattered creates a random binary vector. It then selects the genes where the vector is a 1 from the first parent, and the genes where the vector is a 0 from the second parent, and combines the genes to form the child. For example,

p1 = [a b c d e f g h]p2 = [1 2 3 4 5 6 7 8]random crossover vector = [1 1 0 0 1 0 0 0]child = [a b 3 4 e 6 7 8]

Single point chooses a random integer n between 1 and Number of variables, and selects the vector entries numbered less than or equal to n from the first parent, selects genes numbered greater than n from the second parent, and concatenates these entries to form the child. For example,

p1 = [a b c d e f g h]p2 = [1 2 3 4 5 6 7 8]crossover point (at random) = 3child = [a b c 4 5 6 7 8]

Two point selects two random integers m and n between 1 and Number of variables. The algorithm selects genes numbered less than or equal to m from the first parent, selects genes numbered from m+1 to n from the second parent, and selects genes numbered greater than n from the first parent. The algorithm then concatenates these genes to form a single gene. For example,

p1 = [a b c d e f g h]p2 = [1 2 3 4 5 6 7 8]crossover points (at random) = 3,6child = [a b c 4 5 6 g h]

Intermediate creates children by a weighted average of the parents. Intermediate crossover is controlled by a single parameter Ratio:

child1 = parent1 + rand * Ratio * ( parent2 - parent1)

If Ratio is in the range [0,1] then the children produced are within the hypercube defined by the parents locations at opposite vertices.

4

Page 5: Aide MATLab sur les algorithmes génétiques

If Ratio is in a larger range, say 1.1 then children can be generated outside the hypercube. Ratio can be a scalar or a vector of length Number of variables. If Ratio is a scalar, then all of the children will lie on the line between the parents. If Ratio is a vector then children can be any point within the hypercube.

Heuristic creates children that lie on the line containing the two parents, a small distance away from the parent with the better fitness value in the direction away from the parent with the worse fitness value.

Arithmetic creates children that are the weighted arithmetic mean of two parents. Children are feasible with respect to linear constraints and bounds.

Custom enables you to write you own crossover function that satisfies any constraints specified.

Migration Options

Migration is the movement of individuals between subpopulations, which the algorithm creates if you set Population size to be a vector of length greater than 1. Every so often, the best individuals from one subpopulation replace the worst individuals in another subpopulation. You can control how migration occurs by the following three parameters.

Direction - Migration can take place in one direction or two.

If you set Direction to Forward, migration takes place toward the last subpopulation. That is the nth subpopulation migrates into the (n+1)'th subpopulation.

If you set Direction to Both, the nth subpopulation migrates into both the (n-1)th and the (n+1)th subpopulation.

Migration wraps at the ends of the subpopulations. That is, the last subpopulation migrates into the first, and the first may migrate into the last. To prevent wrapping, specify a subpopulation of size zero.

Fraction controls how many individuals move between subpopulations. Fraction is the fraction of the smaller of the two subpopulations that moves. If individuals migrate from a subpopulation of 50 individuals into a population of 100 individuals and Fraction is 0.1, 5 individuals (0.1 * 50) migrate. Individuals that migrate from one subpopulation to another are copied. They are not removed from the source subpopulation.

Interval controls how many generations pass between migrations. If you set Interval to 20, for example, migration between subpopulations takes place every 20 generations.

Algorithm Settings

Algorithm settings define algorithmic specific parameters.

Nonlinear Constraint Algorithm:

Initial Penalty specifies an initial value to be used by the algorithm.Initial Penalty must be greater than or equal to 1.

Penalty Factor increases the penalty parameter when the problem is not solved to required accuracy and constraints are not satisfied. Penalty Factor must be greater than 1.

Hybrid Function Options

Hybrid Function enables you to specify another minimization function that runs after the genetic algorithm terminates. The choices are

None fminsearch (unconstrained only) patternsearch fminunc (unconstrained only)

5

Page 6: Aide MATLab sur les algorithmes génétiques

fmincon

(constrained only)

Stopping Criteria Options

Stopping criteria determine what causes the algorithm to terminate.

Generations specifies the maximum number of iterations the genetic algorithm performs.

Time limit specifies the maximum time in seconds the genetic algorithm runs before stopping.

Fitness limit - If the best fitness value is less than or equal to the value of Fitness limit, the algorithm stops.

Stall generations - If the weighted average change in the fitness function value over Stall Generations is less than Function Tolerance, the algorithm stops.

Stall time limit - If there is no improvement in the best fitness value for an interval of time in seconds specified by Stall time limit, the algorithm stops.

Function tolerance - If the cumulative change in the fitness function value over Stall Generations is less than Function Tolerance, the algorithm stops.

Nonlinear constraint tolerance specifies the termination tolerance for the maximum nonlinear constraint violation.

Output Function Options

History to new window outputs the iterative history of the algorithm to a separate window.

Interval specifies the number of generations between successive outputs.

Custom enables you to write you own output function.

Display to Command Window Options

Level of display specifies the amount of information displayed in the MATLAB Command Window when you run the genetic algorithm. You can choose from the following options:

Off - No output is displayed. Iterative - Information is displayed at each iteration of the algorithm. Diagnose - Information is displayed at each iteration. In addition, the diagnostic lists some problem

information and the options that are changed from the defaults. Final - The reason for stopping is displayed.

Vectorize Option

The vectorize option specifies whether the computation of the fitness function is vectorized. Set Objective function is vectorized to On to indicate that the fitness function is vectorized.When Objective function is vectorized is Off, the algorithm calls the fitness function on one individual at a time as it loops through the population.

Traduction

Fonction est la fonction objectif que vous souhaitez réduire. Vous pouvez spécifier la fonction de faire en fonction de la forme @ objfun, où objfun.m est un M-file qui renvoie un scalaire.

6

Page 7: Aide MATLab sur les algorithmes génétiques

Nombre de variables est le nombre de variables indépendantes de la fonction de remise en forme. Contraintes Inégalités linéaires de la forme A * x <= b sont définis par la matrice A et le vecteur b. Linear égalités de la forme Aeq * x = BEQ sont spécifiées par la matrice et le vecteur Aeq BEQ. Bounds sont limites inférieure et supérieure pour les variables: Basse = spécifie lower bounds comme un vecteur. Upper = spécifie limites supérieures comme un vecteur. Nonlinear contrainte définit la fonction de contraintes non-linéaires. Vous pouvez spécifier la fonction de faire en fonction de la forme @ nonlcon, où nonlcon.m est un M-file qui renvoie les vecteurs C et CEQ. Les inégalités sont non-linéaires de la forme CEQ = 0, et les inégalités sont non-linéaires de la forme C <= 0. Terrain Fonctions Terrain fonctions vous permettent de tracer les différents aspects de l'algorithme génétique car il est exécuté. Chacun fera appel à un axe sur la fenêtre d'affichage. Utilisez le bouton Stop de la fenêtre d'interrompre un processus en cours. Terrain intervalle spécifie le nombre de générations entre les mises à jour successives de l'intrigue. Meilleure aptitude des parcelles de la meilleure valeur en fonction de chaque génération par nombre d'itération. Expectation parcelles le nombre d'enfants par les scores bruts à chaque génération. Score diversité des parcelles d'un histogramme des scores obtenus à chaque génération. Arrêter de parcelles d'arrêter les critères les niveaux. Best parcelles individuelles le vecteur des entrées de l'individu avec la meilleure valeur en fonction de l'aptitude de chaque génération. Généalogie des parcelles de la généalogie des individus. Lignes d'une génération à l'autre sont de couleur comme suit:

Les lignes rouges indiquent mutation enfants. Les lignes bleues indiquent crossover enfants. Lignes noires indiquent les individus d'élite. Partitions parcelles les scores des individus à chaque génération. Max parcelles de la contrainte maximale nonlinear violation de contrainte. Distance des parcelles de la distance moyenne entre les individus à chaque génération. Gamme de parcelles minimum, maximum, moyenne et de valeurs de fonction de remise en forme à chaque génération. Sélection des parcelles d'un histogramme des parents. Cela vous montre que les parents contribuent à chaque génération. Custom vous permet d'utiliser votre propre fonction de la parcelle. Entrez une fonction traiter de la forme @ myplotfcn. Population Options Population options de spécifier les options pour la population de l'algorithme génétique. Population type spécifie le type de l'entrée à la fonction de remise en forme. Vous pouvez définir le type de population à double vecteur, ou la chaîne de bits, ou Custom. Si vous choisissez Personnalisé, vous devez écrire votre propre création, de mutation et de croisement des fonctions qui fonctionnent avec votre type de population, et de préciser ces fonctions dans les domaines de création fonction, la fonction de mutation, et la fonction de coupure, respectivement. La taille de la population précise combien de personnes il ya dans chaque génération. Si vous définissez la population de la taille d'un vecteur de longueur supérieure à 1, l'algorithme crée plusieurs sous-populations. Chaque entrée du vecteur précise de la taille d'une sous-population. Création fonction précise de la fonction qui crée la population initiale. Par défaut, la création d'uniforme crée une fonction aléatoire population initiale avec une distribution uniforme. Custom vous permet de vous fournir votre propre fonction de création, qui doit générer des données du type que vous indiquez dans la population type. Voir dans la documentation en ligne pour apprendre à écrire une fonction de création. Population initiale vous permet de spécifier une population initiale de l'algorithme génétique. Si vous ne spécifiez pas une population initiale, l'algorithme crée un en utilisant la fonction de création. Les premières notes vous permet de spécifier les évaluations initiales de la population. Si vous ne spécifiez pas les évaluations initiales, l'algorithme calcule les scores en utilisant la fonction de remise en forme. Initial gamme précise limites inférieure et supérieure pour les entrées des vecteurs de la population initiale. Vous pouvez spécifier initiale gamme comme une matrice de 2 lignes et les colonnes de longueur initiale. La première ligne contient des limites inférieures pour les entrées des vecteurs de la population initiale, tandis que la seconde

7

Page 8: Aide MATLab sur les algorithmes génétiques

contient limites supérieures. Si vous spécifiez un nombre initial 2-en-1 matrix, les deux scalaires sont étendues à des vecteurs de longueur longueur initiale. Fitness Scaling Options La fonction convertit l'échelle de fitness scores bruts renvoyé par la fonction de remise en forme à des valeurs dans une gamme qui convient à la fonction de sélection. Scaling fonction précise de la fonction qui effectue la plus grande échelle. Vous pouvez choisir parmi les fonctions suivantes: Classement des échelles de notes brutes sur la base du rang de chaque individu, plutôt que de son client. Le rang d'un individu est sa position dans le triés scores. Le rang du plus fort est de 1 personne, la prochaine est fort 2 et ainsi de suite. Classement fitness échelle supprime l'effet de la propagation de la crue scores. Proportional fait proportionnelle à l'attente de la crue de fitness score. Cette stratégie a des faiblesses lors de résultats bruts ne sont pas dans une "bonne" série. Haut de la balance des individus avec la plus grande aptitude des valeurs égales. Si vous sélectionnez cette option, vous pouvez spécifier la quantité, le nombre de personnes qui produisent de forts progéniture. Quantité doit être un entier compris entre 1 et PopulationSize ou d'une fraction entre 0 et 1 indiquant qu'une fraction de la taille de la population. Chacun de ces individus a une probabilité égale de se reproduire. Les autres ont probabilité 0 de se reproduire. L'attente a la forme [0 1 / n 1 / n 0 0 1 / 0 0 1 n / n ...]. Shift linéaire - Les échelles de la fonction de scores bruts de sorte que les attentes de l'individu est fort égal à une constante, qui vous permet de spécifier que le taux de survie maximum, multiplié par la moyenne. Custom vous permet d'écrire votre propre fonction de l'échelle. Options de sélection La fonction de sélection choisit les parents pour la prochaine génération sur la base de leur échelle de valeurs de la fonction de remise en forme d'échelle. Vous pouvez spécifier la fonction qui effectue la sélection dans la fonction de sélection du domaine. Vous pouvez choisir parmi les fonctions suivantes: Stochastic uniforme énonce une ligne dans laquelle chaque parent correspond à une section de la ligne de longueur proportionnelle à son attente. L'algorithme se déplace le long de la ligne en pas de même taille, un pas pour chaque parent. A chaque étape, l'algorithme attribue un parent de la section, il atterrit sur. La première étape est un nombre aléatoire uniforme inférieure à la taille de l'étape. Reste parents ayants déterministe de la partie de chaque échelle de valeur, puis utilise la roulette de sélection sur les autres partie fractionnaire. Uniforme de sélectionner au hasard les parents à partir d'une distribution uniforme en utilisant les attentes et le nombre de parents. Il en résulte une recherche non dirigée. Uniforme de la sélection n'est pas une bonne stratégie de recherche, mais vous pouvez l'utiliser pour tester l'algorithme génétique. Roulette simule une roulette avec la surface de chaque segment proportionnel à ses attentes. L'algorithme utilise ensuite un nombre aléatoire pour sélectionner l'une des sections, avec une probabilité égale à sa région. Tournoi - La fonction sélectionne chaque parent par le choix des individus au hasard, le nombre de laquelle vous pouvez indiquer par TournamentSize, puis choisir la meilleure personne à qui est prêt à être un parent. Custom vous permet d'écrire votre propre fonction de sélection. Reproduction Options Reproduction de déterminer comment les options algorithme génétique crée des enfants, à chaque nouvelle génération. Elite count indique le nombre de personnes qui sont garantis à survivre à la prochaine génération. Set Elite compter pour être un nombre entier positif inférieur ou égal à la taille de la population. Crossover fraction précise de la fraction de la génération suivante, les personnes autres que les élites, qui sont produites par croisement. Le reste des personnes, autres que les individus d'élite, dans la prochaine génération sont fabriqués par mutation. Set Crossover fraction à une fraction entre 0 et 1, soit par l'entrée de la fraction dans la zone de texte ou de déplacer le curseur. Mutation Options Mutation fonctions de faire de petits changements aléatoires dans les individus de la population, qui fournissent la diversité génétique et de permettre à l'AG de la recherche à un plus large espace. Vous pouvez spécifier la fonction qui effectue la mutation dans le domaine de la fonction de mutation. Vous pouvez choisir parmi les fonctions suivantes: Gaussien ajoute un nombre aléatoire à chaque vecteur d'entrée d'un individu. Ce nombre aléatoire est tiré d'une distribution gaussienne centrée sur zéro. La variation de cette répartition peut être contrôlé avec deux paramètres. Le paramètre d'échelle détermine l'écart lors de la première génération. Le paramètre contrôle Shrink écart se rétrécit à la

8

Page 9: Aide MATLab sur les algorithmes génétiques

manière dont les générations passent. Si le paramètre Shrink est 0, la variance est constante. Si le paramètre est Rétractable 1, l'écart rétrécit à 0 linéairement comme la dernière génération est atteint. Uniforme est un processus en deux étapes. Tout d'abord, l'algorithme sélectionne une fraction du vecteur des entrées d'un individu de mutation, où chaque entrée a une probabilité d'MutationRate d'être muté. Dans la deuxième étape, l'algorithme remplace chaque entrée sélectionnée au hasard par un nombre choisi de manière uniforme à partir de la gamme pour cette entrée. Adaptive possible génère aléatoirement directions qui sont adaptées à l'égard de la dernière génération de succès ou de l'échec. Un pas en longueur est choisie le long de chaque direction linéaire de sorte que les contraintes et les limites sont respectées. Custom vous permet de vous écrire propre mutation fonction qui satisfait toutes les contraintes spécifiées. Crossover Options Crossover combine deux individus, ou des parents, pour former un nouvel individu, ou de l'enfant, pour la prochaine génération. Vous pouvez spécifier la fonction qui effectue la liaison dans le domaine de la fonction de coupure. Vous pouvez choisir parmi les fonctions suivantes: Scattered crée un vecteur binaire aléatoire. Il sélectionne ensuite les gènes, où le vecteur est un 1 à partir du premier parent, les gènes et où le vecteur est un 0 à partir du deuxième parent, les gènes et les combine pour former l'enfant. Par exemple, p1 = [ABCDEFGH] p2 = [1 2 3 4 5 6 7 8] vecteur aléatoire croisé = [1 1 0 0 1 0 0 0] = enfant [ab 3 4 e 6 7 8] Seul point choisit un nombre entier aléatoire entre 1 et n Nombre de variables, et sélectionne le vecteur des entrées numérotées inférieur ou égal à n de la première des parents, de choisir les gènes de plus de n numérotées à partir de la deuxième parent, et concatène ces entrées de formulaire de l'enfant . Par exemple, p1 = [ABCDEFGH] p2 = [1 2 3 4 5 6 7 8] croisement (au hasard) = 3 = enfant [abc 4 5 6 7 8] Deux point aléatoire choisit deux entiers m et n entre 1 et le nombre de variables. L'algorithme sélectionne les gènes numérotés inférieur ou égal à m de la première parent, numérotées de gènes choisit m +1 à n de la deuxième parent, numérotées et sélectionne les gènes de plus de n de la première de ses parents. L'algorithme puis concatène ces gènes pour former un seul gène. Par exemple, p1 = [ABCDEFGH] p2 = [1 2 3 4 5 6 7 8] crossover points (au hasard) = 3,6 enfant = [abc gh 4 5 6] Crée par l'intermédiaire des enfants d'une moyenne pondérée des parents. Intermédiaire de liaison est contrôlée par un seul paramètre Ratio: child1 = rand parent1 + Ratio * * (parent2 - parent1) Si le ratio est dans l'intervalle [0,1], puis les enfants sont produites au sein de l'hypercube définis par les parents face à l'endroits des sommets. Si le ratio est à un plus grand nombre, par exemple 1.1 puis les enfants peuvent être générés à l'extérieur de l'hypercube. Ratio peut être un scalaire ou un vecteur de longueur Nombre de variables. Si le ratio est un scalaire, puis tous les enfants se trouvent sur la ligne entre les parents. Si le ratio est un vecteur alors les enfants peuvent être n'importe quel point dans le hypercube. Heuristic crée les enfants qui se trouvent sur la ligne contenant les deux parents, une petite distance de la mère avec la meilleure valeur de remise en forme dans le sens loin de la mère à la pire valeur de remise en forme. Arithmetic crée les enfants qui sont la moyenne arithmétique pondérée des deux parents. Les enfants sont possibles à l'égard des contraintes linéaires et de limites. Custom vous permet d'écrire votre propre fonction de filtre qui satisfait toutes les contraintes spécifiées. Migration Options La migration est la circulation des personnes entre les sous-populations, dont l'algorithme crée si vous définissez la population de la taille d'un vecteur de longueur supérieure à 1. Tout aussi souvent, les meilleures personnes d'un sous-remplacer le pire des individus dans un autre sous-population. Vous pouvez contrôler la façon dont la migration se fait par trois paramètres suivants. Direction - Les migrations peuvent avoir lieu dans un sens ou deux. Si vous définissez Direction de l'avant, la migration a lieu vers la dernière sous-population. C'est la nième sous migre dans le (n +1) 'e sous-population. Si vous définissez à la fois de direction, sous la énième fois dans la migration (n-1) et e (n +1) e sous-population. Migration enveloppe à l'extrémité des sous-populations. C'est sous le dernier migre dans le premier, et le premier mai de migrer dans la dernière. Pour éviter d'emballage, de spécifier un sous-taille zéro. Fraction contrôle le nombre de personnes se déplacent entre sous-populations. Fraction est la fraction de la plus petite des deux sous-ce qui bouge. Si des personnes de migrer à partir d'un sous de 50 individus dans une population de 100 individus et fraction est de 0,1, 5 personnes (0,1 * 50) migrer. Les personnes qui migrent d'un sous à l'autre sont copiés. Ils ne sont pas supprimés de la source sous-population.

9

Page 10: Aide MATLab sur les algorithmes génétiques

Intervalle de contrôle le nombre de générations passent entre migrations. Si vous définissez l'intervalle à 20, par exemple, la migration a lieu entre les sous toutes les 20 générations. Algorithme Paramètres Algorithme de définir les paramètres des algorithmes de paramètres spécifiques. Nonlinear Constraint Algorithme: Amende initiale spécifie une valeur initiale à utiliser par les algorithm.Initial Peine doit être supérieur ou égal à 1. Peine de facteur augmente la peine de paramètre lorsque le problème n'est pas résolu à la précision requise et les contraintes ne sont pas remplies. Peine de facteur doit être supérieur à 1. Hybrid Fonction Options Hybrid Fonction vous permet de spécifier une autre fonction que de minimisation des pistes après l'algorithme génétique se termine. Les choix sont Aucun fminsearch (illimité uniquement) patternsearch fminunc (illimité uniquement) fmincon (limité seulement) Critères d'arrêt Options Arrêter de critères déterminent les causes de l'algorithme de résiliation. Generations spécifie le nombre maximal d'itérations de l'algorithme génétique se produit. Spécifie le délai maximum de temps en secondes, l'algorithme génétique fonctionne avant de s'arrêter. Limite de remise en forme - Si la meilleure forme physique est la valeur inférieure ou égale à la valeur limite de remise en forme, l'algorithme s'arrête. Décrochage générations - Si la moyenne pondérée des changements dans la valeur de la fonction de remise en forme sur des générations de décrochage est inférieure à la fonction de tolérance, l'algorithme s'arrête. Décrochage délai - S'il n'ya pas d'amélioration dans la meilleure forme physique pour un intervalle de temps en secondes spécifié par Stall délai, l'algorithme s'arrête. Fonction de la tolérance - Si la variation cumulée de la valeur de la fonction de l'aptitude des générations de plus de décrochage est inférieure à la fonction de tolérance, l'algorithme s'arrête. Nonlinear contrainte de tolérance précise la fin de tolérance maximale pour la violation de contrainte non-linéaire. Options de sortie de fonction Histoire d'une nouvelle fenêtre affiche le itératif l'histoire de l'algorithme à une fenêtre séparée. Intervalle de spécifier le nombre de générations entre les sorties successives. Custom vous permet d'écrire votre propre fonction de sortie. Affichage de la fenêtre Options de commande Niveau de visualisation précise de la quantité d'informations affichées dans la fenêtre de commande MATLAB, lorsque vous lancez l'algorithme génétique. Vous pouvez choisir parmi les options suivantes: Off - Aucune sortie n'est affichée. Iterative - L'information est affichée à chaque itération de l'algorithme. Diagnose - L'information est affichée à chaque itération. En outre, les listes de diagnostic des problèmes d'information et les options qui sont modifiés à partir de la valeur par défaut. Final - La raison de l'arrêt est affiché. Vectorise Option Le vectorize option spécifie si le calcul de la fonction est vectorisé. Définir l'objectif de la fonction est vectorisé pour indiquer que la fonction est vectorized.When objectif est vectorisé fonction est désactivée, l'algorithme appelle la fonction de remise en forme sur un individu à un moment où il boucle à travers la population.

10

Page 11: Aide MATLab sur les algorithmes génétiques

2) Pattern search tool

Objective function is the function you want to minimize. You must enter an objective function. You can specify the function as a function handle of the form @objfun, where objfun.m is an M-file that returns a scalar function value.

Start point is the initial point for the pattern search. You must enter a start point.

Constraints

Linear inequalities of the form A*x <= b are specified by the matrix A and the vector b.

Linear equalities of the form Aeq*x = beq are specified by the matrix Aeq and the vector beq.

Bounds are lower and upper bounds for the variables:

Lower = specifies lower bounds as a vector. Upper = specifies upper bounds as a vector.

Nonlinear constraint function defines the nonlinear constraints. You can specify the function as a function handle of the form @nonlcon, where nonlcon.m is an M-file that returns the vectors C and Ceq. The nonlinear equalities are of the form Ceq = 0, and the nonlinear inequalities are of the form C <= 0.

Plot Functions

Plot functions plot output from the pattern search at each iteration. The following plots are available: Best function value plots the best objective function value at each multiple of Interval iterations. Mesh size plots the mesh size at each multiple of Interval iterations. Function count plots the number of function evaluations at each multiple of Interval iterations. Best point plots the best point at each multiple of Interval iterations. Max constraint plots the maximum nonlinear constraint violation. Custom enables you to use your own plot function.

11

Page 12: Aide MATLab sur les algorithmes génétiques

Poll Options

Poll options control how the pattern search polls the mesh points. These options depend on which class of algorithms is used - generalized pattern search algorithms, GPS, or mesh adaptive direct search algorithms, MADS.

Poll method specifies which method the poll algorithm uses to create the mesh. The options are

GPS Positive basis 2N GPS Positive basis Np1 MADS Positive basis 2N MADS Positive basis Np1

Complete poll specifies whether all the points in the current mesh are polled at each iteration.

Polling order specifies the order in which the GPS method searches the points in the current mesh. The options are

Consecutive Random Success

Note: the value of this option also specifies the search order when a GPS method is selected as a Search method.

Search Options

Search options specify an optional search that the algorithm can perform at each iteration prior to the polling. If the search returns a point that improves the objective function, the algorithm uses that point at the next iteration and omits the polling.

Search method specifies the method of the search. The options are

None GPS Positive basis 2N GPS Positive basis Np1 MADS Positive basis 2N MADS Positive basis Np1 Genetic Algorithm Latin hypercube Nelder-Mead Custom

Complete search specifies whether all the points must be searched at each iteration.Complete search only applies when you set Search method to GPS Positive basis Np1, GPS Positive basis 2N, MADS Positive basis Np1, MADS Positive basis 2N, or Latin hypercube.

Mesh Options

Mesh options control the mesh that the pattern search uses.

Initial size specifies the size of the initial mesh, which is the length of the vector from the initial point to a mesh point. Initial size should be a positive scalar.

Max size specifies a maximum size for the mesh. When the maximum size is reached, the mesh size no longer increases after a successful iteration. Max size is a positive scalar and is only used when the GPS algorithm is selected as the Poll or Search method. 12

Page 13: Aide MATLab sur les algorithmes génétiques

Accelerator specifies whether the Mesh contraction factor is multiplied by 0.5 after each unsuccessful iteration.

Rotate specifies whether the mesh vectors are multiplied by -1 when the mesh size is less than a small value.

Scale mesh specifies whether the algorithm scales the mesh points by multiplying the pattern vectors by constants.

Expansion factor specifies the factor by which the mesh size is increased after an successful poll. Expansion factor must be a positive scalar and is only used when a GPS method is selected as the Poll or Search method.

Contraction factor specifies the factor by which the mesh size is decreased after an unsuccessful poll. Contraction factor must be a positive scalar and is only used when the GPS method is selected as the Poll or Search method.

Algorithm Settings

Algorithm settings define algorithmic specific parameters.

Nonlinear Constraint Algorithm:

Initial Penalty specifies an initial value to be used by the algorithm.Initial Penalty must be greater than or equal to 1.

Penalty Factor increases the penalty parameter when the problem is not solved to required accuracy and constraints are not satisfied. Penalty Factor must be greater than 1.

Cache Options

Cache options control how the pattern search uses a cache.

Cache specifies whether a cache is used. When you set Cache to On, the algorithm does not evaluate the objective function at any mesh points that are within Tolerance of a point in the cache.

Tolerance specifies how close a mesh point must be to a point in the cache for the algorithm to omit polling it.Tolerance must be a positive scalar.

Size specifies the size of the cache, which must be a positive scalar.

Stopping Criteria Options

Stopping criteria determine what causes the pattern search algorithm to stop.

Mesh tolerance specifies the minimum tolerance for mesh size.

Max iteration specifies the maximum number of iterations the algorithm performs.

Max function evaluations specifies the maximum number of evaluations of the objective function.

Time Limit specifies the maximum time in seconds the pattern search algorithm runs before stopping.

Bind tolerance specifies the minimum tolerance for the distance from the current point to the boundary of the feasible region.

X Tolerance specifies the minimum distance between the current points at two consecutive iterations.

Function tolerance specifies the termination tolerance for the objective function value.

13

Page 14: Aide MATLab sur les algorithmes génétiques

Nonlinear constraint tolerance specifies the termination tolerance for the maximum nonlinear constraint violation.

Output Function Options

Output functions are functions that the pattern search algorithm calls at each iteration. The following options are available:

History to new window returns the history of points computed by the algorithm at each multiple of Interval iterations.

Custom enables you to write your own output function.

Display to Command Window Options

Level of display specifies the amount of information displayed in the MATLAB Command Window while the pattern search is running. You can choose from the following options:

Off - No output is displayed. Iterative - Information is displayed at each iteration of the algorithm. Diagnose - Information is displayed at each iteration. In addition, the diagnostic lists some problem

information and the options that are changed from the defaults. Final - The reason for stopping is displayed.

Vectorize Options

Objective function is vectorized specifies whether the computation of the objective function is vectorized. When Objective function is vectorized is Off, the algorithm calls the objective function on one point at a time as it loops through all of the mesh points.When Objective function is vectorized is On, the pattern search algorithm calls the objective function on all the points in the mesh at once, i.e. - in a single call to the objective function if either Complete Poll or Complete Search is On.

Traduction

Fonction objective est la fonction que vous souhaitez afin de réduire au minimum. Vous devez entrer une fonction objective. Vous pouvez spécifier la fonction de faire en fonction de la forme @ objfun, où objfun.m est un M-file qui renvoie une valeur scalaire fonction. Point de départ est le point de départ pour le modèle de recherche. Vous devez entrer un point de départ. Contraintes Inégalités linéaires de la forme A * x <= b sont définis par la matrice A et le vecteur b. Linear égalités de la forme Aeq * x = BEQ sont spécifiées par la matrice et le vecteur Aeq BEQ. Bounds sont limites inférieure et supérieure pour les variables: Basse = spécifie lower bounds comme un vecteur. Upper = spécifie limites supérieures comme un vecteur. Nonlinear contrainte définit la fonction de contraintes non-linéaires. Vous pouvez spécifier la fonction de faire en fonction de la forme @ nonlcon, où nonlcon.m est un M-file qui renvoie les vecteurs C et CEQ. Les inégalités sont non-linéaires de la forme CEQ = 0, et les inégalités sont non-linéaires de la forme C <= 0. Terrain Fonctions Terrain fonctions plot de sortie du modèle de recherche à chaque itération. Les parcelles suivantes sont disponibles: Meilleure fonction de la valeur des parcelles de la meilleure valeur à la fonction objective de chaque intervalle de plusieurs itérations. Maillage parcelles du maillage à chaque intervalle de multiples itérations. Fonction compter le nombre de parcelles de la fonction des évaluations à chaque multiple de l'intervalle itérations. Best point les meilleures parcelles, à chaque point de l'intervalle de plusieurs itérations. Max parcelles de la contrainte maximale nonlinear violation de contrainte. Custom vous permet d'utiliser votre propre fonction de la parcelle. Poll Options Sondage options contrôlent le mode de recherche le maillage des points de sondages. Ces options dépendent de la 14

Page 15: Aide MATLab sur les algorithmes génétiques

classe d'algorithmes est utilisé - modèle généralisé d'algorithmes de recherche, GPS, ou de maillage adaptatif directe d'algorithmes de recherche, MADS. Sondage méthode précise de la méthode du sondage algorithme utilise pour créer le maillage. Les options sont GPS positifs base 2N GPS positifs base NP1 MADS positifs base 2N MADS positifs base NP1 Complet sondage précise que tous les points de l'actuel maillage sont interrogées à chaque itération. Bureaux de vote afin précise l'ordre dans lequel les coordonnées GPS des points de la méthode de recherche dans le maillage. Les options sont Consécutive Random Success Note: la valeur de cette option spécifie également l'ordre de recherche d'un GPS mode est sélectionné en tant que méthode de recherche. Options de recherche Options de recherche spécifier une option de recherche que l'algorithme peut effectuer à chaque itération avant le scrutin. Si la recherche retourne un point qui permet d'améliorer la fonction objectif, l'algorithme utilise ce point lors de la prochaine itération et omet les bureaux de vote. Méthode de recherche précise la méthode de la recherche. Les options sont Aucun GPS positifs base 2N GPS positifs base NP1 MADS positifs base 2N MADS positifs base NP1 Genetic Algorithm Hypercube latin Nelder-Mead Personnalisé Complet de recherche précise si tous les points doivent être recherchées à chaque iteration.Complete de recherche ne s'applique que lorsque vous définissez la méthode de recherche de base NP1 positifs GPS, GPS Positive base 2N, MADS positifs NP1 base, MADS Positive base 2N, ou le latin hypercube. Mesh Options Mesh options de contrôle du maillage que le modèle de recherche utilise. Taille initiale précise de la taille du maillage initial, qui est la longueur du vecteur du point initial d'un point de maille. Taille initiale doit être un scalaire. Max size spécifie une taille maximale de la maille. Lorsque la taille maximale est atteinte, le maillage n'est plus augmente après le succès de l'itération. Max taille est un scalaire et n'est utilisée que lorsque le GPS est l'algorithme choisi comme méthode de sondage ou de recherche. Accelerator spécifie si le facteur de contraction Mesh est multiplié par 0,5 après chaque itération succombé. Rotation précise si le maillage des vecteurs sont multipliés par -1 lorsque le maillage est inférieur à une petite valeur. Scale maillage précise si les échelles de l'algorithme de maillage de points en multipliant le modèle des vecteurs par des constantes. Facteur d'expansion prévoit le facteur par lequel le maillage est augmentée après un sondage de succès. Facteur d'expansion doit être un scalaire, et est utilisé seulement quand un GPS méthode est choisie comme méthode de sondage ou de recherche. Contraction facteur spécifie le facteur par lequel le maillage est diminué après l'échec d'une enquête. Contraction facteur doit être un scalaire, et n'est utilisée que lorsque le GPS est sélectionné comme méthode de la méthode de sondage ou de recherche. Algorithme Paramètres Algorithme de définir les paramètres des algorithmes de paramètres spécifiques. Nonlinear Constraint Algorithme: Amende initiale spécifie une valeur initiale à utiliser par les algorithm.Initial Peine doit être supérieur ou égal à 1. Peine de facteur augmente la peine de paramètre lorsque le problème n'est pas résolu à la précision requise et les contraintes ne sont pas remplies. Peine de facteur doit être supérieur à 1. Cache Options

15

Page 16: Aide MATLab sur les algorithmes génétiques

Cache options contrôlent le mode de recherche utilise un cache. Cache précise de savoir si un cache est utilisé. Lorsque vous définissez le cache de A, l'algorithme ne permet pas d'évaluer la fonction objectif à une maille de points qui sont à la tolérance d'un point dans la mémoire cache. Tolérance spécifie comment fermer un point de maillage doit être à un point dans le cache pour l'algorithme de supprimer it.Tolerance de vote doit être un scalaire positif. Taille précise de la taille du cache, qui doit être un scalaire. Critères d'arrêt Options Arrêter de critères déterminent les causes de l'algorithme de recherche modèle pour arrêter. Mesh tolérance précise le minimum de tolérance de maillage. Max itération précise le nombre maximal d'itérations de l'algorithme effectue. Max fonction des évaluations précise le nombre maximal d'évaluations de la fonction objectif. Délai limite le temps en secondes le modèle algorithme de recherche fonctionne avant de s'arrêter. Bind tolérance précise le minimum de tolérance pour la distance entre le point courant à la limite du faisable région. X tolérance précise de la distance minimale entre les points au cours de deux itérations. Fonction de la tolérance précise la fin de tolérance pour la fonction objective de valeur. Nonlinear contrainte de tolérance précise la fin de tolérance maximale pour la violation de contrainte non-linéaire. Options de sortie de fonction Fonctions de sortie sont des fonctions que le modèle de recherche algorithme demande à chaque itération. Les options suivantes sont disponibles: Histoire de la nouvelle fenêtre retours de l'histoire de points calculé par l'algorithme à chaque intervalle de plusieurs itérations. Custom vous permet d'écrire votre propre fonction de sortie. Affichage de la fenêtre Options de commande Niveau de visualisation précise de la quantité d'informations affichées dans la fenêtre de commande MATLAB alors que le motif de recherche est en cours d'exécution. Vous pouvez choisir parmi les options suivantes: Off - Aucune sortie n'est affichée. Iterative - L'information est affichée à chaque itération de l'algorithme. Diagnose - L'information est affichée à chaque itération. En outre, les listes de diagnostic des problèmes d'information et les options qui sont modifiés à partir de la valeur par défaut. Final - La raison de l'arrêt est affiché. Vectorise Options Fonction objectif est vectorisé spécifie si le calcul de la fonction objectif est vectorisé. Lorsque l'objectif est vectorisé fonction est désactivée, l'algorithme appelle la fonction objectif sur un point à un moment où il à travers toutes les boucles de la maille est fonction de l'objectif points.When vectorisé est On, le motif de recherche algorithme appelle la fonction objective sur tous les points dans le maillage à la fois, c'est-à-dire - en un seul appel à la fonction objectif si l'un sondage complet ou complet de recherche est activé.

Exemple

Optimization of Stochastic Objective Function

This is a demonstration of how to find a minimum of a stochastic objective function using PATTERNSEARCH function in the Genetic Algorithm and Direct Search Toolbox. We also demonstrate why the Optimization Toolbox functions are not suitable for this kind of problems. A simple 2-dimensional optimization problem is selected for this demo to help visualize the objective function Contents Initialization Run FMINCON on smooth objective function Stochastic objective function Run FMINCON on stochastic objective function Run PATTERNSEARCH

Initialization

format compactX0 = [2.5 -2.5]; % Starting point.

16

Page 17: Aide MATLab sur les algorithmes génétiques

LB = [-5 -5]; % Lower boundUB = [5 5]; % Upper boundrange = [LB(1) UB(1); LB(2) UB(2)];Objfcn = @smoothFcn; % Handle to the objective function.% Plot the smooth objective functionclf;showSmoothFcn(Objfcn,range); hold on;title('Smooth objective function')plot3(X0(1),X0(2),Objfcn(X0)+30,'om','MarkerSize',12, ... 'MarkerFaceColor','r'); hold off;set(gca,'CameraPosition',[-31.0391 -85.2792 -281.4265]);set(gca,'CameraTarget',[0 0 -50])set(gca,'CameraViewAngle',6.7937)fig = gcf;

Run FMINCON on smooth objective function

The objective function is smooth (twice continuously differentiable). We will solve the optimization problem using FMINCON function from the Optimization Toolbox. FMINCON finds a constrained minimum of a function of several variables. This function has a unique minimum at the point x* = (-5.0,-5) where it has a function value f(x*) = -250. % Set options to display iterative results.options = optimset('LargeScale','off','Display','iter', ... 'OutputFcn',@fminuncOutps);[Xop,Fop] = fmincon(Objfcn,X0,[],[],[],[],LB,UB,[],options)figure(fig);hold on;% Plot the final pointplot3(Xop(1),Xop(2),Fop,'dm','MarkerSize',12,'MarkerFaceColor','m');hold off;

max Directional First-order Iter F-count f(x) constraint Step-size derivative optimality Procedure 0 3 -10.625 -2.5 1 6 -250 0 1 -787 82.1

17

Page 18: Aide MATLab sur les algorithmes génétiques

2 9 -250 0 1 0 0 Hessian modified twice Optimization terminated: first-order optimality measure less than options.TolFun and maximum constraint violation is less than options.TolCon.Active inequalities (to within options.TolCon = 1e-006): lower upper ineqlin ineqnonlin 1 2 Xop = -5 -5Fop = -250

Stochastic objective function

The objective function we use now is the same as the previous example but with some random noise added to it. This is done by adding a random component to the function value. % Reset the state of random number generatorsrandn('state',0);peaknoise = 4.5;Objfcn = @(x) smoothFcn(x,peaknoise); % Handle to the objective function.% Plot the objective function (non-smooth)fig = figure;showSmoothFcn(Objfcn,range);title('Stochastic objective function')set(gca,'CameraPosition',[-31.0391 -85.2792 -281.4265]);set(gca,'CameraTarget',[0 0 -50])set(gca,'CameraViewAngle',6.7937)

18

Page 19: Aide MATLab sur les algorithmes génétiques

Run FMINCON on stochastic objective function

The objective function is stochastic and not smooth. FMINCON is a general constrained optimization solver which finds a local minima using first derivative of the objective function. If derivative of the objective function is not provided, FMINCON uses finite difference to approximate first derivative of the objective function. In this example, the objective function have some random noise in it. The derivatives hence could be highly unreliable. FMINCON can potentially stop at a point which is not a minimum. This may happen because the optimal conditions seems to be satisfied at the final point because of noise or it could not make any progress. options = optimset('LargeScale','off','Display','iter');[Xop,Fop] = fmincon(Objfcn,X0,[],[],[],[],LB,UB,[],options)figure(fig);hold on;plot3(X0(1),X0(2),Objfcn(X0)+30,'om','MarkerSize',16,'MarkerFaceColor','r');plot3(Xop(1),Xop(2),Fop,'dm','MarkerSize',12,'MarkerFaceColor','m');

max Directional First-order Iter F-count f(x) constraint Step-size derivative optimality Procedure 0 3 -4.77263 -2.5 1 8 -9.1855 -1.875 0.25 6.8e+008 3.51e+008 2 11 -68.8158 0 1 1.61e+007 1.55e+008 3 20 -69.0338 -0.1563 0.0156 7.01e+007 6.05e+008 4 37 -69.8872 -0.1556 -6.1e-005 -3.09e+008 5.25e+008 5 55 -72.9707 -0.1559 3.05e-005 -3.3e+008 8.6e+008 Hessian modified 6 188 -75.9747 -0.1559 -7.35e-040 -1.82e+005 2.49e+008 Hessian modified 7 202 -59.4713 -0.156 0.000488 -2.52e+004 3.32e+008 Hessian not updated Maximum number of function evaluations exceeded; increase OPTIONS.MaxFunEvals.Xop = 1.2623 -4.8441Fop =

19

Page 20: Aide MATLab sur les algorithmes génétiques

-75.9747

Run PATTERNSEARCH

We will now use PATTERNSEARCH from the Genetic Algorithm and Direct Search Toolbox. Pattern search optimization techniques are a class of direct search methods for optimization. A pattern search algorithm does not require any derivative information of the objective function to find an optimal point. PSoptions = psoptimset('Display','iter','OutputFcn',@psOut);[Xps,Fps] = patternsearch(Objfcn,X0,[],[],[],[],LB,UB,PSoptions)figure(fig);hold on;plot3(Xps(1),Xps(2),Fps,'pr','MarkerSize',18,'MarkerFaceColor','r');hold off

Iter f-count f(x) MeshSize Method 0 1 -4.5036 1 1 3 -38.4084 2 Successful Poll 2 3 -38.4084 1 Refine Mesh 3 5 -38.4084 0.5 Refine Mesh 4 6 -40.8905 1 Successful Poll 5 9 -92.6282 2 Successful Poll 6 10 -92.6282 1 Refine Mesh 7 12 -92.6282 0.5 Refine Mesh 8 15 -132.864 1 Successful Poll 9 17 -132.864 0.5 Refine Mesh 10 19 -132.864 0.25 Refine Mesh 11 22 -193.342 0.5 Successful Poll 12 24 -193.342 0.25 Refine Mesh 13 26 -193.342 0.125 Refine Mesh 14 29 -230.691 0.25 Successful Poll 15 31 -245.208 0.5 Successful Poll 16 33 -245.208 0.25 Refine Mesh

20

Page 21: Aide MATLab sur les algorithmes génétiques

17 35 -247.796 0.5 Successful Poll 18 37 -247.796 0.25 Refine Mesh 19 39 -253.075 0.5 Successful Poll 20 41 -253.075 0.25 Refine Mesh 21 44 -253.075 0.125 Refine Mesh 22 47 -253.075 0.0625 Refine Mesh 23 50 -253.075 0.03125 Refine Mesh 24 53 -253.075 0.01563 Refine Mesh 25 56 -253.075 0.007813 Refine Mesh 26 59 -253.075 0.003906 Refine Mesh 27 62 -253.075 0.001953 Refine Mesh 28 65 -253.075 0.0009766 Refine Mesh 29 68 -253.075 0.0004883 Refine Mesh 30 71 -253.075 0.0002441 Refine Mesh

Iter f-count f(x) MeshSize Method 31 74 -253.075 0.0001221 Refine Mesh 32 77 -253.075 6.104e-005 Refine Mesh 33 80 -253.075 3.052e-005 Refine Mesh 34 83 -253.075 1.526e-005 Refine Mesh 35 86 -253.075 7.629e-006 Refine Mesh 36 89 -253.075 3.815e-006 Refine Mesh 37 92 -253.075 1.907e-006 Refine Mesh 38 95 -253.075 9.537e-007 Refine MeshOptimization terminated: mesh size less than options.TolMesh.Xps = -5.0000 -4.7500Fps = -253.0749

Pattern search algorithm is not affected by random noise in the objective functions. Pattern search requires only function value and not the derivatives, hence noise (of some uniform kind) may not affect it. However, pattern search requires more function evaluation to find the true minimum than derivative based algorithms, a cost for not using the derivatives.

21