0 / 0 / 0
Регистрация: 28.05.2014
Сообщений: 4
1

Применение функции ga (Генетический алгоритм)

07.06.2014, 22:22. Показов 3393. Ответов 0
Метки нет (Все метки)

По наследству достался вот такой код выполнения генетического алгоритмы
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
clear all;
 
N = 30;
 
nvars = 2; % число переменных x
 
for i=1:1:nvars
    Xmin(i)= -10;
    Xmax(i)= 10;
end
 %-------------------------------------------------------------------------
% построение графика функции 2-х переменных
if nvars == 2
dx1 = (Xmax(1)-Xmin(1))/49;
dx2 = (Xmax(2)-Xmin(2))/49;
x1 = Xmin(1):dx1:Xmax(1);
x2 = Xmin(2):dx2:Xmax(2);
n1 = length(x1);
n2 = length(x2);
 
for i=1:1:n1
    for j=1:1:n2
        Y(i,j) = (x1(i) + x2(j))*(x1(i)*x2(j));
    end
end
% Y,
 
surfc(x1,x2,Y), grid on;
xlabel('x1');
ylabel('x2');
zlabel('f(x)');
 
end
%------------------------------------------------------------------------
      i11 = 10;
    h   = 10;
    P   = i11:h:100;
for i1=1:1:length(P)
    
PIR   = [Xmin;Xmax];
 options = gaoptimset;
options = gaoptimset(options,'PopInitRange', PIR);
options = gaoptimset(options,'PopInitRange', []);
options = gaoptimset(options,'PopulationSize', P(i1));
options = gaoptimset(options,'EliteCount', 3);
options = gaoptimset(options,'Generations', 400);
options = gaoptimset(options,'TimeLimit', 400);
options = gaoptimset(options,'FitnessLimit', 0.001);
options = gaoptimset(options,'StallTimeLimit', 600);
options = gaoptimset(options,'TolFun', 0.001);
options = gaoptimset(options,'TolCon', 0.001);
options = gaoptimset(options,'CrossoverFcn', {@crossoverheuristic, 1.2});
options = gaoptimset(options,'MutationFcn', @mutationadaptfeasible);
options = gaoptimset(options,'Display', 'iter');
options = gaoptimset(options,'PlotFcns', { @gaplotgenealogy });
options = gaoptimset(options,'PlotInterval', 1);
      
for k=1:1:N
    [X(k,:),FVal(k)]=ga(@ex100,nvars,[],[],[],[],Xmin,Xmax,[],options);
end
F(i1) = mean(FVal),
    for j=1:1:nvars
        X_(i1,j) = mean(X(:,j));   
    end
    X_(i1,:),
 
end
 
figure(3);
plot(P,F), grid on;
При этом файл с функцией
Matlab M
1
2
3
4
5
6
7
8
function y = ex100(x)
n = length(x);
sum = 0;
    for i=1:1:n-1
        sum = sum + (x(i)-2)^2*(1+(cos(3*pi*x(n)))^2)+(x(n-1))*(1+(cos(2*pi*x(n))));
    end
    y = (cos(3*pi*x(1)))^2 + sum;
end
После запуска в командной строке вылетает следующая ошибка

?? Error using ==> gaoptimset
Unrecognized parameter name 'TolFun'.

Error in ==> DZ100 at 50
options = gaoptimset(options,'TolFun', 0.001);

Severe Error querying Opengl.
Click here for more help.
>>


Закоментил строчку с переменной "TolFun" (так как не знаю что это такое в описание функции ga ее вообще нет)
и вновь ошибка
??? Error using ==> ga
Too many input arguments.

Тут уже я бессилен!
Уважаемые знатоки, помогите пожалуйста запустить код!

Добавлено через 23 часа 44 минуты
Вроде получилось запустить код, но коряво убрал у функции ga переменные xmax и xmin и пустые скобки.
Остается теперь каким то образом прорисовать графики мутации, стандартного в опциях plot у ga я так понял нет, нужно самому делать пользовательскую функцию, не пойму как это выполнить

Добавлено через 25 секунд
Вроде получилось запустить код, но коряво убрал у функции ga переменные xmax и xmin и пустые скобки.
Остается теперь каким то образом прорисовать графики мутации, стандартного в опциях plot у ga я так понял нет, нужно самому делать пользовательскую функцию, не пойму как это выполнить
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.06.2014, 22:22
Ответы с готовыми решениями:

Оптимизация функции (Генетический алгоритм)
Задание вот такое: Дана следующая функция: 1. Провести оптимизацию заданной функции в Matlab (с...

Определить минимум функции c ограничениями (генетический алгоритм)
Здравствуйте. Нуждаюсь в вашей помощи в вопросе минимизации функции нескольких переменных, при...

Генетический алгоритм
Добрый день! Помогите пожалуйста с ген алгоритмами. Делаю через GATOOL, создал М-файл с функцией:...

Генетический алгоритм
Помогите пожалуйста не могу понять даже принципа генетического алгоритма. Необходимо разработать...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.06.2014, 22:22
Помогаю со студенческими работами здесь

Генетический алгоритм
Добрый день. Написал генетический алгоритм, но похоже, что работает неправильно. Прошу помощи.

Генетический алгоритм
Нужна помощь по лабе. Требуется реализовать генетический алгоритм, который будет решать систему...

Генетический алгоритм
Здравствуйте, уважаемые форумчане. Попалась мне тема диплома значит "Генетический алгоритм", но...

Генетический алгоритм
Есть две рандомные последовательности каждая из 6 чисел. Как на С# описать такие правила...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru