Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Генетичний пошук в пакеті Matlab

Для використання генетичних методів, у середовищі Matlab передбачена функція ga:

 

[x, Fmin] = ga(@fitnessfun, n, options)

 

Функція ga знаходить мінімум Fmin функції fitnessfun, що має n параметрів, а також вектор x, що мінімізує цільову функцію.

Параметри роботи функції ga задаються в змінній options, що представляє собою наступну структуру:

 

options =

PopulationType: 'doubleVector'

PopInitRange: [2x1 double]

PopulationSize: 20

EliteCount: 2

CrossoverFraction: 0.8000

MigrationDirection: 'forward'

MigrationInterval: 20

MigrationFraction: 0.2000

Generations: 100

TimeLimit: Inf

FitnessLimit: -Inf

StallLimitG: 50

StallLimitS: 20

InitialPopulation: []

InitialScores: []

PlotInterval: 1

CreationFcn: @gacreationuniform

FitnessScalingFcn: @fitscalingrank

SelectionFcn: @selectionstochunif

CrossoverFcn: @crossoverscattered

MutationFcn: @mutationgaussian

HybridFcn: []

Display: 'final'

PlotFcns: []

OutputFcns: []

Vectorized: 'off'

 

Для зміни значень параметрів функції ga використовується команда gaoptimset, а для одержання поточних параметрів – функція gaoptimget.

Наприклад, для встановлення розміру популяції в 100 особин необхідно використати наступну команду:

 

options = gaoptimset('PopulationSize', 100)

 

Функція gaoptimset дозволяє також передавати параметри в обрані функції, що реалізують основні генетичні оператори. Наприклад, для використання функції мутації mutationgaussian з параметрами scale = 0.5 (середньоквадратичне відхилення) і shrink = 0.75 (параметр скорочення) можна використати таку команду:

 

scale = 0.5; shrink = 0.75;

options = gaoptimset('MutationFcn',{@mutationgaussian,scale,shrink})

Приклад

Дано наступні обмеження нерівності і нижні межі

Наступний код шукає мінімум функції, Fitness_function , яка описана у файлі Fitness_function.m

 

A = [1 1; -1 2; 2 1];

b = [2; 2; 3];

lb = zeros(2,1);

[x,fval,exitflag] = ga(@Fitness_function,…

2,A,b,[],[],lb)

 

Результат роботи:

 

Optimization terminated: average change in the fitness value less than options.TolFun.

 

x =

0.6670 1.3340

fval =

-8.2258

exitflag =

 

Текст Fitness_function.m:

 

function y = Fitness_function(x)

 

y = 0.5*x(1)^2+x(2)^2-x(1)*x(2)-2*x(1)-6*x(2);

 

Matlab, починаючи з версії 7.0, містить візуальний інтерфейсний модуль для роботи з генетичними методами – Genetic Algorithm Tool (GAT), що входить до складу бібліотеки Genetic Algorithm and Direct Search Toolbox. Запуск GAT відбувається за командою:Gatool або OPTIMTOOL(ga).




Переглядів: 527

<== попередня сторінка | наступна сторінка ==>
Критерії зупинення | Завдання до роботи

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.003 сек.