Решение прямой и обратной задач. Изучение генетических алгоритмов с помощью графического интерфейса

Графический интерфейс генетических алгоритмов. Нахождение глобального минимума функции переменной. Поиск аргументов с помощью генетических алгоритмов. Решение прямой, обратной задач. Изучение генетических алгоритмов в режиме командной строки MATLAB.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 29.02.2020
Размер файла 2,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http: //www. allbest. ru/

Реферат

Пояснительная записка содержит 39 листов формата А4, 16 рисунков,

2 таблицы, 4 источника, 2 приложения.

ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ, ПРЯМАЯ ЗАДАЧА, ОБРАТНАЯ ЗАДАЧА, ОПТИМИЗАЦИЯ, МОДЕЛИРОВАНИЕ.

Цель работы - решение прямой и обратной задач аналитически и используя многослойную нейронную сеть. Изучение генетических алгоритмов с помощью графического интерфейса. Нахождение глобального минимума функции одной переменной. Обучить нейронную сеть распознаванию букв русского алфавита.

Задание 1.

Для робота, кинематическая схема которого показана на рис 1, аналитически решить прямую и обратную задачу о положениях.

L1

L2

Координаты схвата

16

0,32

0,31

x

0

0.06

0.12

0.18

0.24

0.30

0.36

0.42

0.48

0.54

0.60

у

0.60

0.54

0.48

0.42

0.36

0.30

0.24

0.18

0.12

0.06

0

Задание 2.1

Изучение генетических алгоритмов с помощью графического интерфейса. Нахождение глобального минимума функции одной переменной.

Функция:

Отрезок [-2,2]

Задание 2.2

Нахождение глобального минимума функции двух аргументов с помощью генетических алгоритмов. Изучение генетических алгоритмов в режиме командной строки Matlab.

Отрезок [-2,2]

Задание 3

Обучить нейронную сеть распознаванию букв русского алфавита (буквы от Н до Т)

Содержание

  • Введение
  • 1. Решение прямой и обратной задачи
  • 2. Решение прямой и обратной задачи
  • 3. Решение прямой и обратной задачи с использованием многослойной нейронной сети
  • 4. Оптимизация с использованием генетических алгоритмов
  • 3. Задача распознавания букв русского алфавита (буквы от Н до Т)
  • Заключение
  • Список использованных источников
  • Приложения

Введение

генетический алгоритм matlab аргумент

Искусственный интеллект сегодня одна из передовых областей исследований ученых. Причем рассматриваются как системы, созданные с его частичным использованием: например распознавание текстов, бытовые роботы, до возможности замены творческого труда человека искусственным. Сегодня в самых различных областях науки и техники требуется выполнение машинами тех задач, которые под силу были только человеку. На помощь тогда приходит искусственный интеллект, который может заменить человека в какой либо рутинной и скучной деятельности. Сегодня системы, как программные, так и аппаратные, созданные на основе искусственного интеллекта находят все большее применение в технике. Это и автомобили с электроникой с использованием ИИ, и новейшие роботы, участвующие в производстве чего-либо, и компьютерные программы, которые включают в себя и игры с ИИ. Цель создания полного ИИ, т.е. такого, которой мог бы выполнять действия по обработке информации наравне с человеком или лучше, - это прежде всего улучшение жизни человека и дальнейшее увеличение степени автоматизации производства.

Производственные системы с искусственным интеллектом являются системами не только качественно нового типа, но и системами, составляющими органичное звено в структуре современных автоматических систем управления производством

1. Решение прямой и обратной задачи

Для робота, кинематическая схема которого показана на рисунке 1, аналитически решить прямую и обратную задачу о положениях.

Рис. 1 Кинематическая схема робота

Прямая задача о положениях заключается в нахождении координат траектории (CD) движения схвата (точка В) по заданным углам поворота звеньев (ц1 и ц2 ), При решении обратной задачи нужно найти (ц1 и ц2 ) по заданным координатам траектории (CD) движения схвата,

Из очевидных геометрических соотношений можно записать для прямой задачи:

(1)

Для решения обратной задачи воспользуемся теоремой косинусов треугольника для OAB

(2)

где ,

Из первого уравнения (2) выразим угол ц2, а из второго - угол AOB

, (3)

, (4)

Тогда угол ц1 будет равен

, (5)

2. Решение прямой и обратной задачи

Вариант задания представлен в таблице 1.

Вариант задания

L1

L2

Координаты схвата

16

0,32

0,31

x

0

0.06

0.12

0.18

0.24

0.30

0.36

0.42

0.48

0.54

0.60

y

0.60

0.54

0.48

0.42

0.36

0.30

0.24

0.18

0.12

0.06

0

Для решения представленной задачи напишем код Matlab. В результате получаем:

Решение прямой задачи

Х= 0.0000 0.0600 0.1200 0.1800 0.2400 0.3000 0.3600 0.4200 0.4800 0.5400 0.6000

Y= 0.6000 0.5400 0.4800 0.4200 0.3600 0.3000 0.2400 0.1800 0.1200 0.0600 0.0000

Решение обратной задачи

ц1= 2.2312 2.2125 2.1482 2.0383 1.8853 1.6979 1.4905 1.2772 1.0673 0.8630 0.6605

ц2= 1.4256 1.6335 1.7967 1.9168 1.9914 2.0168 1.9914 1.9168 1.7967 1.6335

3. Решение прямой и обратной задачи с использованием многослойной нейронной сети

Для решения этой задачи воспользуемся NeuralNetworks пакета Matlab.

По результатам решения задач создадим таблицу с исходными и полученными результатами. Результаты представлены в таблице 2.

Результаты расчетов

Исходные данные

Решение обратной задачи с помощью нейронной сети

Решение прямой задачи с помощью нейронной сети

x

y

f1

f2

x

y

0

1

2,2316

1,426

0,0000

1,0000

0,1

0,9

2,211

1,6323

0,1000

0,9000

0,2

0,8

2,1499

1,7974

0,2000

0,8000

0,3

0,7

2,0389

1,9178

0,3000

0,7000

0,4

0,6

1,8835

1,9911

0,4000

0,6000

0,5

0,5

1,6967

2,0157

0,5000

0,5000

0,6

0,4

1,4917

1,9911

0,6000

0,4000

0,7

0,3

1,2793

1,9178

0,7000

0,3000

0,8

0,2

1,0671

1,7974

0,8000

0,2000

0,9

0,1

0,8603

1,6323

0,9000

0,1000

1

0

0,6618

1,426

1,0000

0,0000

Ошибка сети при решении прямой задачи (x и y):

X-xn ans = 1.0e-04 *

0.0756 -0.3448 0.5135 -0.2647 -0.2340 0.3984 -0.0740 -0.3658 0.4412 -0.2226 0.0404

Y-yn ans = 1.0e-05 *

-0.1141 0.5025 -0.6792 0.0663 0.6194 -0.2857 -0.4052 0.3543 0.0822

-0.1678 0.0477

Ошибка сети при решении обратной задачи (ц1 и ц2):

F1-f1n ans = -0.0004 0.0015 -0.0017 -0.0006 0.0017 0.0012 -0.0012 -0.0020 0.0003 0.0027 -0.0014

F2-f2n ans = -0.0004 0.0012 -0.0007 -0.0010 0.0003 0.0011 0.0003 -0.0010 -0.0007 0.0012 -0.0004

Решение прямой и обратной задачи с использованием многослойной нейронной сети, прошло успешно. Ошибка сети при решении прямой задачи не превышает 0.00007, при решении обратной задачи не превышает 0.003. Можно сделать вывод, что решение прямой и обратной задачи с помощью нейронной сети обладает хорошей точностью в обоих направления.

4. Оптимизация с использованием генетических алгоритмов

Нахождение глобального минимума функции одной переменной.

Теоретические сведения

Генетические алгоритмы основаны на моделировании процессов биологической эволюции и относятся к стохастическим методам.

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

Хромосома - вектор (vector) чисел или строка, состоит из набора генов. Гены (genes) - элементы хромосомы. Скрещивание (crossover) или кроссинговер - обмен фрагментами двух хромосом. Мутация (mutation) - случайное изменение гена. Особь или индивидуум (individual) - вариант решения задачи (приближенное решение), обычно задается одной хромосомой. Популяция (population) - набор особей. Поколение (generation) - итерация эволюционного процесса поиска решения задачи. В ходе каждой итерации особь оценивается с помощью функции пригодности (fitnessfunction).

Вариант задания представлен в таблице 3.

Вариант задания

Функции

Отрезок

16

[-2,2]

Выполнение данного задания осуществляется с помощью графического интнерфейса gatoolпакета Matlab.

Для данного алгоритма установим следующие значения:

количествоособей (Population size) 50;

поколений (Generations):100;

начальный отрезок (initialrange): [-2;2].

При выполнении алгоритма в результате выводятся следующие данные:

Optimizationrunning.

Objectivefunctionvalue: -6.237318401721181

Optimization terminated: maximum number of generations exceeded.

Finalpoint:1.684

Оптимизация выполняется до тех пор, пока не превысит максимальное количество поколений (Generations).

В результате нахождения значения глобального минимума функции одной переменной, оно равняется -6.237318401721181

Задача глобальной оптимизации функции двух переменных .

Функции

Отрезок

16

[-4;4]

Выполнение данного задания осуществляется с помощью графического интнерфейса gatoolпакета Matlab.

Для данного алгоритма установим следующие значения:

количествоособей (Population size) 100;

поколений (Generations):150;

начальный отрезок (initialrange):[-0.1 0.1;1.7 2.2]

При выполнении алгоритма в результате выводятся следующие данные:

Optimization running.

Objective function value: 3.8510013084242615E-5

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

Finalpoint0.0025941419643062822.005637414349972

Оптимизация выполнялась до тех пор, пока не была достигнута точностьTolFun.

В результате нахождения значений глобального минимума двух аргументов функции, они равняются 0.002594141964306282 и 2.005637414349972

Преобразуем графический интерфейс gatool в код Matlab и проводим численные эксперименты: изменение значений разных характеристик.

За основу берутся характеристики и функция, представленные в таблице 1.

Значения заданных характеристик:

ans = -0.0111 2.0144

Значения при изменении 'PopulationSize' до 300:

ans = 0.0001 2.0000

Значения при изменении 'PopInitRange ' до [-2;2]:

ans = 0.0050 1.9815

5. Задача распознавания букв русского алфавита (буквы от Н до Т)

Цель разрабатываемого шаблона, создать нейронную сеть, которая сможет распознавать визуальные образы букв русского алфавита. Программный код, который решает подобную задачу, присутствует в системе Matlab, как демонстрационная программа с названием appcr1. Подробно этот код разобран и пояснен в книге «Нейронные сети» В. С. Медведева, В. Г. Потемкина , а так же описан в работе И. С. Миронова, С. В. Скурлаева

В системе Matlab также присутствует инструмент NNtool, имеющий графический интерфейс пользователя, который существенно облегчает задачу и может быть легко использован даже неопытным пользователем. Подробно этот инструмент описан в работах В. Иванников, А. Ланнэ и П. А. Сахнюка и др.. В работе А. И. Шеремет, В. В. Перепелицы, А. М. Денисовой показан пример разработки нейронной сети для распознавания визуальных образов символов латинского алфавита с помощью NNtool. Зарубежные ученые также применяю искусственные нейронные сети в своих исследованиях. Рассмотрим встроенную функцию Matlab prprob, которая представляет собой матрицу, содержащую набор признаков букв латинского языка. Каждая буква имеет размерность 7 на 5 пикселей.

Создадим подобную матрицу с буквами русского алфавита. Для этого создадим в графическом редакторе шаблон каждого символа такой же размерностью (рис. 1, 2).

Рис. 2 Шаблон буквы А созданный в графическом редакторе

После того, как созданы шаблоны для каждой буквы, необходимо написать функцию, которая будет считывать необходимые признаки символов с графического файла в нужном нам формате.

Для этого выберем в командном меню: FileаNewаFunction M-file. Откроется графический редактор, в который необходимо вставить приведенный ниже код.

Код функции ImgRead:

function y = Imgread(x)

%UNTITLED Summary of this function goes here

% Detailed explanation goes here

img=imread(x);

img1=img(:,:,1)';

img2=reshape (img1,[7, 1]);

for i=1:7

if (img2(i,1)==0)

img2(i,1)=1;

end

end

for i=1:35

if (img2(i,1)==255)

img2(i,1)=0;

end

end

y=img2;

end

Использую данную функцию, создадим матрицу признаков русского алфавита, введя в окно команд следующий код:

images1=Imgread('C:\alphabet\А.png');

Images7=Imgread('C:\alphabet\Я.png');

RA=[images1,images2,images3,images4,images5,images6,images7,];

Заметим, что для того, чтобы код работал, шаблоны должны располагаться в каталоге C:\alphabet\, в качестве имени сам символ, с разрешением png, или внести соответствующие изменения в код.

Теперь есть матрица RA, которая содержит в себе набор признаков русского алфавита, и будет использоваться в роли входных данных при создании нейронной сети.

В качестве матрицы целей создадим единичную матрицу размерностью 33 на 33.

Для этого введем код. Так же объявим переменные, содержащие в себе количество строк и столбцов.

%Создаем переменные для создания нейронной сети в NNtool

P=double(RA);

T=eye(7);

[R,Q] = size(P);

[S2,Q] = size(T);

Для обучения сети нам понадобятся данные с шумом. Создадим эти данные, введя следующий код в окно команд:

%Создаем переменные для обучения на зашумленных данных нейронной сети в

%NNtool

P1=P;

T1=T;

for i=1:100

P1=[P1,P+rand(R,Q)*0.1,P+rand(R,Q)*0.2];

T1=[T1,T,T];

End

Для симуляции сети нам понадобится переменная, содержащая в себе набор признаков одной буквы, например, буквы И.

Введем соответствующую команду, заодно выведем на экран получившийся зашумленный образ (рис.3).

noisy10 = P(:,10) + randn(35,1)*0.2;

plotchar(noisy10); % Зашумленный символ

Рис. 3 Зашумленный образ букв

Теперь вызовем инструмент NNtool, где с помощью графического интерфейса создадим нейронную сеть. Сделать это можно с помощью соответствующей команды nntool (рис.4).

Рис. 4 Окно менеджера данных нейронной сети

С помощью кнопки Import добавляем необходимые нам переменные (рис.5).

Рис. 5 Окно импорта данных

Переменные P,P1 и noisy10 добавить как input data.

Переменные T,T1 добавить как Target data.

После импорта всех переменных окно должно выглядеть как на рис.6.

Рис. 6 Окно менеджера данных нейронной сети после импорта переменных

Нажав кнопку New, приступим к созданию нейронной сети. В окне параметров нейронной сети введем настройки (рис.7).

 

Рис. 7 Окно создания нейронной сети

После выбранных параметров создаем сеть, нажав кнопку Create.

После этого сеть должна появиться в окне менеджера данных нейронной сети в разделе networks (рис.8).

Рис 8 Окно менеджера данных нейронной сети после создания нейронной сети

Нажав дважды на созданную сеть, откроем нейронную сеть. Появится окно с вкладками (рис.9), в которых можно посмотреть структуру нейронной сети, обучить ее, провести симуляцию, изменять веса входных данных.

 

Рис. 9 Структура нейронной сети

Рассмотрим вкладку Train, где будет проводиться обучение нейронной сети.

В начале проведем обучение на идеальных данных.

Введем соответствующие параметры (рис.10).

Рис. 10 Настройка данных, с помощью которых будет происходить обучение

Рис. 11 Параметры обучения нейронной сети

После установки всех параметров запускаем обучение, нажав кнопку Train Network (рис.11). В появившемся окне (рис.12) можем наблюдать процесс обучения нейронной сети.

 

Рис. 12 Процесс обучения

С помощью кнопки Performance можно просмотреть процесс обучения с помощью графика (рис.13).

Рис. 13 График обучения нейронной сети

Теперь необходимо провести обучение на данных с шумом. Для этого изменим параметры во вкладке train (рис.14, 15).

Рис. 14 Параметры обучения на данных с шумом

 

Рис. 15 Параметра обучения на данных с шумом

Окно процесса обучения будет выглядеть как рис.16.

Рис. 16 Процесс обучения сети на данных с шумом

График обучения представлен на рис. 17.

 

Рис. 17 График обучения нейронной сети на данных с шумом

В результате сеть обучена. Теперь необходимо проверить нейронную сеть. Для этого создана переменная noisy10, которая содержит в себе символ «И» с шумом.

Перейдем на вкладку Simulate, в окне созданной сети (рис.18).

Рис. 18 Вкладка Simulate

Выберем в качестве входных данных переменную noisy10, а в качестве выходных данных напишем переменную Ans (рис.19).

Рис. 19 Вкладка Simulate с выбранными параметрами

Для начала процесса симуляции необходимо нажать кнопку Simulate Network.

После этого в окне менеджера данных нейронной сети появится переменная Ans (рис.20).

Рис. 20. Окно менеджера данных нейронной сети после проведенной симуляции

Экспортируем нейронную сеть и переменную Ans. Для этого необходимо нажать кнопку Export и в появившемся окне выбрать необходимые нам переменные и еще раз нажать кнопку Export (рис.21).

 

Рис. 21 Экспорт переменных

После экспорта в окно команд Matlab вводим следующий фрагмент кода:

%Проверяем результат распознания

Ans = compet(Ans);

answer = find(compet(Ans) == 1)

plotchar(P(:,answer)); % Распознанный символ И

Перед нами появится окно (рис.22), отображающее распознанный символ.

Рис. 22 Распознанный символ И

А в окне команд появится строчка:

answer =7

Означающая, что поступивший символ - это символ под номером 7 в нашем алфавите.

Таким образом, созданная нейронная сеть выполняет поставленную задачу.

Заключение

В данной курсовой работе были решены прямые и обратные задачи о положениях аналитически и с использование многослойной нейронной сети прямой передачи. Нейронная сеть оказалась эффективним инструментом для аппроксимации данных, но в то же время ее довольно сложно обучить и при больших объемах данных, т.к. занимает значительное время как для обучения сети для решения задачи(количество нейронов используемых в слоях нейронной сети растет геометрически с ростом количества входных данных).

Список использованных источников

1. Beale M. H., Hagan M. T., Demuth H. B. Neural Network Toolbox. User's Guide. -- Natick: Math Works, Inc., 2014.

2. Яхъяева Г.Э. Нечеткие множества и нейронные сети/ Учебное пособие. - Москва: Бином, 2006.

3. https://www.mathworks.com/help/deeplearning/examples/character-recognition.html

Приложение А

Листинг программы в Matlab 2017

1. Решение прямой и обратной задач

%% Аналитическое решение

clc,

% Решение обратной задачи

% Исходные данные

L1 = 0.32; L2 = 0.31;

x = [ 0 0.06 0.12 0.18 0.24 0.30 0.36 0.42 0.748 0.54 0.60],

y = [0.60 0.54 0.48 0.42 0.36 030 0.24 0.18 0.12 0.06 0 ],

%АНАЛИТИЧЕСКОЕ РЕШЕНИЕ

%Решение обратной задачи

FI2 = pi - acos((L1.^2+L2.^2-x.^2-y.^2)./(2.*L1.*L2));

FI1 = atan(y./x)+acos((L1.^2-L2.^2+x.^2+y.^2)./(2.*L1.*sqrt(x.^2+y.^2)));

disp('Углы в радианах:'),

FI1,FI2,

figure(1),

plot(x,y,'-*'),grid on,hold on, %Зависимость y=f(x)

% Решение прямой задачи

x1 = L1.*cos(FI1)+L2.*cos(FI1-FI2);

y1 = L1.*sin(FI1)+L2.*sin(FI1-FI2);

x1,y1,

plot(x1,y1,'r-*'),

% legend('Исходные данные','Решение прямой задачи'),

Hold off,

figure(2),

plot(FI1,FI2,'-*',1.6,2),grid on,

% Решение обратной задачи с помощью нейронной сети

clear

l1=0.7;l2=0.62;% Длины звеньев

x=0:0.1:1;% Координаты по оси Х

y=1:-0.1:0;% Координаты по оси У

c=sqrt(x.^2+y.^2)% Расстояние между точками ОВ

gm=acos((l1^2+l2^2-c.^2)/(2*l1*l2)); % Угол при вершине В

f2=pi-gm% Угол f2

al=acos((l1^2-l2^2+c.^2)./(2*l1*c));% Угол АОВ

f=atan(y./x);% Угол ВОх

f1=f+al% Угол f1

xr=l1*cos(f1)+l2*cos(f1-f2)% Расчетные значения координат

yr=l1*sin(f1)+l2*sin(f1-f2)

plot(x,y,xr,yr),grid

pause

plot(f1,f2),grid

pause

% Решение прямой задачи с помощью нейронной сети x

P={[f1;f2]}; %Входы нейронной сети в формате ячеек

T={x}; % Выход нейронной сети в формате ячеек

PR=[min(f1) max(f1); min(f2) max(f2)];% Вектор максимальных и минимальных значений входов

S1=2;S2=1;% Число нейронов в первом и во втором слоях

TF1='tansig';TF2='purelin'; % Функции активации первого и второго слоя

nid=newff(PR,[S1 S2],{TF1 TF2}); % Задание нейронной сети

% gensim(npid)

z=train(nid,P,T);% Обучение нейронной сети

xm=sim(z,P); % Формирование выхода обученной сети

xn=cell2mat(xm)% Преобразование в числовой формат

pause

plot(x,y,xn,y),grid

% gensim(npid)

% Решение прямой задачи с помощью нейронной сети y

P={[f1;f2]}; %Входы нейронной сети в формате ячеек

T={y}; % Выход нейронной сети в формате ячеек

PR=[min(f1) max(f1); min(f2) max(f2)];% Вектор максимальных и минимальных значений входов

S1=2;S2=1;% Число нейронов в первом и во втором слоях

TF1='tansig';TF2='purelin'; % Функции активации первого и второго слоя

nid=newff(PR,[S1 S2],{TF1 TF2}); % Задание нейронной сети

% gensim(npid)

z=train(nid,P,T);% Обучение нейронной сети

xm=sim(z,P); % Формирование выхода обученной сети

yn=cell2mat(xm)% Преобразование в числовой формат

pause

plot(x,y,x,yn),grid

% gensim(npid)

% Решение обратной задачи с помощью нейронной сети f1

P={[x;y]}; %Входы нейронной сети в формате ячеек

T={f1}; % Выходы нейронной сети в формате ячеек

PR=[min(x) max(x); min(y) max(y)];% Вектор максимальных и минимальных значений входов

S1=2;S2=1;% Число нейронов в первом и во втором слоях

TF1='tansig';TF2='purelin'; % Функции активации первого и второго слоя

nid=newff(PR,[S1 S2],{TF1 TF2}); % Задание нейронной сети

% gensim(npid)

z=train(nid,P,T);% Обучение нейронной сети

xm=sim(z,P); % Формирование выхода обученной сети

f1n=cell2mat(xm)% Преобразование в числовой формат

pause

plot(f1n,f2),grid

% gensim(npid)

% Решение обратной задачи с помощью нейронной сети f2

P={[x;y]}; %Входы нейронной сети в формате ячеек

T={f2}; % Выходы нейронной сети в формате ячеек

PR=[min(x) max(x); min(y) max(y)];% Вектор максимальных и минимальных значений входов

S1=2;S2=1;% Число нейронов в первом и во втором слоях

TF1='tansig';TF2='purelin'; % Функции активации первого и второго слоя

nid=newff(PR,[S1 S2],{TF1 TF2}); % Задание нейронной сети

% gensim(npid)

z=train(nid,P,T);% Обучение нейронной сети

xm=sim(z,P); % Формирование выхода обученной сети

f2n=cell2mat(xm)% Преобразование в числовой формат pause

plot(f1,f2n),grid

% gensim(npid)

function [x,fval,exitflag,output,population,score] =

ga2(n,PopulationSize_Data)

% This is an auto generated MATLAB file from Optimization Tool.

% Start with the default options

options = gaoptimset;

% Modify options setting

options = gaoptimset(options,'PopInitRange' , [-2;2]);

options = gaoptimset(options,'PopulationSize', 100);

options = gaoptimset(options,'Generations', 150);

options = gaoptimset(options,'TolFun', 1e-20);

options = gaoptimset(options,'Display', 'off');

n=2;

options = gaoptimset(options,'PlotFcns',

{@gaplotscores,@gaplotscorediversity,@gaplotbestf @gaplotbestindiv @gaplotdistance });

[x,fval,exitflag,output,population,score] = ...

ga(@my_fun2,n,[],[],[],[],[],[],[],options);

2 Оптимизаци яфункции двух пременных

function [x,fval,exitflag,output,population,score] = ga2(n,PopulationSize_Data)

% This is an auto generated MATLAB file from Optimization Tool.

% Start with the default options

options = gaoptimset;

% Modify options setting

options = gaoptimset(options,'PopInitRange' , [-2;2]);

options = gaoptimset(options,'PopulationSize', 100);

options = gaoptimset(options,'Generations', 150);

options = gaoptimset(options,'TolFun', 1e-20);

options = gaoptimset(options,'Display', 'off');

n=2;

options = gaoptimset(options,'PlotFcns',

{@gaplotscores,@gaplotscorediversity,@gaplotbestf @gaplotbestindiv @gaplotdistance }); [x,fval,exitflag,output,population,score] = ...

ga(@my_fun2,n,[],[],[],[],[],[],[],options);

Задание 5 Распознование текста

unction y = Imgread(x)

img=imread(x);

img1=img(:,:,1)';

img2=reshape (img1,[7, 1]);

for i=1:7

if (img2(i,1)==0)

img2(i,1)=1;

end

end

for i=1:35

if (img2(i,1)==255)

img2(i,1)=0;

end

end

y=img2;

end

images1=Imgread('C:\alphabet\H.png');

Images7=Imgread('C:\alphabet\T.png');

RA=[images1,images2,images3,images4,images5,images6,images7,];

%Создаем переменные для создания нейронной сети в NNtool

P=double(RA);

T=eye(7);

[R,Q] = size(P);

[S2,Q] = size(T);

%Создаем переменные для обучения на зашумленных данных нейронной сети в

%NNtool

P1=P;

T1=T;

for i=1:100

P1=[P1,P+rand(R,Q)*0.1,P+rand(R,Q)*0.2];

T1=[T1,T,T];

end

[X,T] = prprob;

plotchar(X(:,8))

setdemorandstream(pi);

net1 = feedforwardnet(25);

view(net1)

net1.divideFcn = '';

net1 = train(net1,X,T,nnMATLAB);

numNoise = 30;

Xn = min(max(repmat(X,1,numNoise)+randn(35,26*numNoise)*0.2,0),1);

Tn = repmat(T,1,numNoise);figure

plotchar(Xn(:,1))

net2 = feedforwardnet(25);

net2 = train(net2,Xn,Tn,nnMATLAB);

noiseLevels = 0:.05:1;

numLevels = length(noiseLevels);

percError1 = zeros(1,numLevels);

percError2 = zeros(1,numLevels);

for i = 1:numLevels

Xtest = min(max(repmat(X,1,numNoise)+randn(35,26*numNoise)*noiseLevels(i),0),1);

Y1 = net1(Xtest);

percError1(i) = sum(sum(abs(Tn-compet(Y1))))/(26*numNoise*2);

Y2 = net2(Xtest);

percError2(i) = sum(sum(abs(Tn-compet(Y2))))/(26*numNoise*2);

end

figure

plot(noiseLevels,percError1*100,'--',noiseLevels,percError2*100);

title('Percentage of Recognition Errors');

xlabel('Noise Level');

ylabel('Errors');

legend('Network 1','Network 2','Location','NorthWest')

Приложение В

Моделирование в Matlab 2017

1. Решение прямой и обратной задач

Рисунок 1- а)зависимость y=f(x); б) зависимость ц2=ш(ц1)

Рисунок 2 модель нейронной сетиNeuralNetwork

Рисунок 3 Среднеквадратичная ошибка нейронной сети для Х

Рисунок 4 Зависимость y=f(x) нейронной сети

Рисунок 5 Среднеквадратичная ошибка нейронной сети для Y

Рисунок 6 Зависимость x=f(y) нейронной сети

Рисунок 9 Среднеквадратичная ошибка нейронной сети для F1

Рисунок 11 Среднеквадратичная ошибка нейронной сети для F2

2 Оптимизация с использованием генетических алгоритмов

Рисунок 12 Минимум функции с одной переменной

Рисунок 14 Минимум функции с двумя переменными

Размещено на Allbest.ru

...

Подобные документы

  • Комплексное исследование истории развития, основных понятий, области применения и особенностей генетических алгоритмов. Анализ преимуществ генетических алгоритмов. Построение генетического алгоритма, позволяющего находить максимум целочисленной функции.

    курсовая работа [27,9 K], добавлен 23.07.2011

  • История появления эволюционных алгоритмов. Нейрокомпьютерные исследования в России. Реализация генетических алгоритмов. Расчет эффективности процедур поиска конкурирующей процедуры. Schema и теорема шим. Примеры использования нейросетевых технологий.

    курсовая работа [43,0 K], добавлен 20.10.2008

  • Описание генетических алгоритмов. Применение генетического алгоритма для решения задачи коммивояжера. Постановка задачи безусловной оптимизации. Изучение распространения генетических алгоритмов на модель с несколькими взаимодействующими популяциями.

    дипломная работа [979,1 K], добавлен 30.05.2015

  • Основные особенности эволюционных алгоритмов. Описание алгоритмов селекции, мутации, скрещивания, применяемых для реализации генетических алгоритмов. Вычисление функции приспособленности. Программная реализация. Тестирование и руководство пользователя.

    курсовая работа [1,3 M], добавлен 11.03.2014

  • Трудности использования эволюционных алгоритмов. Построение вычислительных систем, основанных на принципах естественного отбора. Недостатки генетических алгоритмов. Примеры эволюционных алгоритмов. Направления и разделы эволюционного моделирования.

    реферат [187,4 K], добавлен 21.01.2014

  • Основные генетические операторы. Схема функционирования генетического алгоритма. Задачи, решаемые с помощью генетических алгоритмов. Математическая постановка задачи оптимизации. Решение Диофантова уравнения. Программная реализация. Создание пособия.

    курсовая работа [391,4 K], добавлен 20.02.2008

  • Первые работы по симуляции эволюции. Основные понятия генетических алгоритмов. Постановка задачи и функция приспособленности. Инициализация, формирование исходной популяции. Выбор исходной популяции для генетического алгоритма, решение задач оптимизации.

    курсовая работа [714,1 K], добавлен 31.03.2015

  • Использование вычислительных возможностей программ общего назначения при решении базовых геодезических задач. Решение прямой угловой засечки по формулам Юнга и обратной геодезической задачи. Решение с помощью системы для математических расчетов MATLAB.

    курсовая работа [11,4 M], добавлен 31.03.2015

  • Методика решения некоторых геодезических задач с помощью программ MS Excel, MathCad, MatLab и Visual Basic. Расчет неприступного расстояния. Решение прямой угловой засечки по формулам Юнга и Гаусса. Решение обратной засечки по формулам Пранис-Праневича.

    курсовая работа [782,2 K], добавлен 03.11.2014

  • Характеристика методов нечеткого моделирования и изучение системы кластеризации в пакетах прикладных программ. Разработка и реализация алгоритма для оптимизации базы правил нечеткого классификатора с помощью генетического алгоритма аппроксимации функции.

    дипломная работа [1,9 M], добавлен 21.06.2014

  • Понятие и суть нечеткой логики и генетических алгоритмов. Характеристика программных пакетов для работы с системами искусственного интеллекта в среде Matlab R2009b. Реализация аппроксимации функции с применением аппарата нечеткого логического вывода.

    курсовая работа [2,3 M], добавлен 23.06.2012

  • Разработка программ с помощью Turbo Pascal для решения задач, входящих в камеральные работы маркшейдера: решение обратной геодезической задачи и системы линейных уравнений методом Гаусса, определение координат прямой угловой засечки и теодолитного хода.

    курсовая работа [1,5 M], добавлен 05.03.2013

  • Изучение аналитических и численных методов поиска одномерного и многомерного безусловного экстремума. Решение поставленной задачи с помощью Mathcad и Excel. Реализация стандартных алгоритмов безусловной оптимизации средствами языка программирования С++.

    курсовая работа [488,5 K], добавлен 21.10.2012

  • Критерии и основные стратегии планирования процессора. Разработка моделей алгоритмов SPT (Shortest-processing-task-first) и RR (Round-Robin). Сравнительный анализ выбранных алгоритмов при различных условиях и различном количестве обрабатываемых данных.

    курсовая работа [179,3 K], добавлен 21.06.2013

  • Обзор рекурсивных алгоритмов с позиции теории алгоритмов, теории сложности, с точки зрения практического программирования. Имитация работы цикла с помощью рекурсии. Способы изображения древовидных структур. Синтаксический анализ арифметических выражений.

    курсовая работа [432,2 K], добавлен 16.01.2013

  • Исследование особенностей разработки линейных алгоритмов и их реализации в среде Delphi. Составление тестов для проверки программы. Характеристика основных элементов интерфейса, компонентов, значения их свойств. Построение графической схемы алгоритма.

    лабораторная работа [316,6 K], добавлен 08.11.2012

  • Сущность и экономическое обоснование, методы и подходы к прогнозированию валютного курса. Описание технологии интеллектуальных вычислений. Применение генетических алгоритмов для настройки архитектуры нейронных сетей. Основные способы улучшения модели.

    курсовая работа [1,3 M], добавлен 26.03.2016

  • Основные этапы и принципы решения задач на ЭВМ, порядок постановки задачи и построения алгоритма. Сущность теории алгоритмов, ее основные элементы и взаимосвязь, свойства, методика представления в виде схемы, ее обозначения и использующиеся символы.

    лекция [136,3 K], добавлен 11.03.2010

  • Создание схем алгоритмов и составление программы на языке Pascal для вычисления значений заданных функций. Сущность и порядок нахождения значения определенного интеграла. Анализ работы подпрограмм. Разработка тестов для проверки правильности алгоритмов.

    контрольная работа [831,0 K], добавлен 24.11.2013

  • Положения алгоритмов сжатия изображений. Классы приложений и изображений, критерии сравнения алгоритмов. Проблемы алгоритмов архивации с потерями. Конвейер операций, используемый в алгоритме JPEG. Характеристика фрактального и рекурсивного алгоритмов.

    реферат [242,9 K], добавлен 24.04.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.