Системы искусственного интеллекта. Курсовая работа (т). Информационное обеспечение, программирование.

Системы искусственного интеллекта. Курсовая работа (т). Информационное обеспечение, программирование.




👉🏻👉🏻👉🏻 ВСЯ ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻


























































Информационное обеспечение, программирование

Вы можете узнать стоимость помощи в написании студенческой работы.


Помощь в написании работы, которую точно примут!

Похожие работы на - Системы искусственного интеллекта

Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе

Нужна качественная работа без плагиата?

Не нашел материал для своей работы?


Поможем написать качественную работу Без плагиата!

Владимирский
Государственный Университет


Глава 1. Нечеткая логика и
генетические алгоритмы


Глава 1. Нечеткая логика и
генетические алгоритмы




Logic Toolbox - это пакет прикладных программ,
входящих в состав среды MatLab. Он позволяет создавать системы нечеткого
логического вывода и нечеткой классификации в рамках среды MatLab, с
возможностью их интегрирования в Simulink. Базовым понятием Fuzzy Logic Toolbox
является FIS-структура - система нечеткого вывода (Fuzzy Inference System).
FIS-структура содержит все необходимые данные для реализации функционального
отображения “входы-выходы” на основе нечеткого логического вывода согласно
схеме




Обозначения:- входной четкий вектор;


вектор нечетких множеств, соответствующий
входному вектору X;


результат логического вывода в виде вектора
нечетких множеств;- выходной четкий вектор.


Logic Toolbox содержит следующие категории
программных инструментов:


Первая категория программных инструментов пакета
Fuzzy Logic Toolbox содержит функции, которые могут быть вызваны
непосредственно путем набора имени функции в командном окне (command line) или
из собственных пользовательских приложений. Большинство из этих функций
представляют собой матлабовские функции в виде m-файлов. В этом случае
пользователь может посмотреть запрограммированные в этих функциях алгоритмы а
также редактировать и корректировать эти файлы. Ниже приведены названия
примененных функций с кратким описанием их назначения:


·       addmf - добавление
функции принадлежности в FIS


FIS_name=addmf(FIS_name, varType,
varIndex, mfName, mfType, mfParams)


Функцию принадлежности можно добавить только к
существующей в рабочей области MatLab системе нечеткого логического вывода.
Другими словами система нечеткого логического вывода должна быть каким-то
образом загружена в рабочую область или создана с помощью функции newfis.
Функция addmf имеет шесть входных аргументов:


ü FIS_name - идентификатор системы
нечеткого логического вывода в рабочей области MatLab;


ü varType - тип переменной, к которой
добавляется функция принадлежности. Допустимые значения - ‘input’ - входная
переменная и ‘output’ - выходная переменная;


ü varIndex - порядковый номер
переменной, к которой добавляется функция принадлежности;


ü mfName - наименование добавляемой
функции принадлежности (терм). Задается в виде строки символов;


ü mfType - тип (модель) добавляемой
функции принадлежности. Задается в виде строки символов;


ü mfParams - вектор параметров
добавляемой функции принадлежности.


Порядковый номер функции принадлежности в системе
нечеткого логического вывода соответствует порядку добавления с помощью функции
addmf, т.е. первая добавленная функция принадлежности всегда будет иметь
порядковый номер 1. С помощью функции addmf невозможно добавить функцию
принадлежности к несуществующей переменной. В этом случае необходимо вначале
добавить переменную к системе нечеткого логического вывода с помощью функции
addvar.


Пример .
FIS_name=addmf(FIS_name, ‘input’, 1, ‘низкий’,
‘trapmf’, [150, 155, 165, 170])


Строка добавляет в терм-множество первой входной
переменной нечеткой системы FIS_name терм ‘низкий’ с трапециевидной функцией
принадлежности с параметрами [150, 155, 165, 170].


·       addrule - добавление
правила в FIS


FIS_name= addrule (FIS_name,
ruleList)


Правила можно добавить только к существующей в
рабочей области MatLab системе нечеткого логического вывода. Функция addrule
имеет два входных аргумента:


ü FIS_name - идентификатор системы
нечеткого логического вывода в рабочей области MatLab;


ü ruleList - матрица добавляемых
правил.


Матрица правил должна быть задана в формате
indexed. Количество строк матрицы ruleList равно количеству добавляемых правил,
т.е. каждая строка матрицы соответствует одному правилу. Количество столбцов
матрицы равно m+n+2, где m (n) - количество входных (выходных) переменных
системы нечеткого логического вывода.


Первые m столбцов соответствуют входным
переменным, т.е. задают ЕСЛИ-часть правил. Элементы этих столбцов содержат
порядковые номера термов, используемых для лингвистической оценки
соответствующих входных переменных. Значение 0 указывает, что соответствующая
переменная в правиле не задана, т.е. ее значение равно none.


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


Предпоследний столбец матрицы содержит весовые
коэффициенты правил. Значения весовых коэффициентов должны быть в диапазоне [0,
1].


Последний столбец матрицы задает логические
связки между переменными внутри правил. Значение 1 соответствует логической
операции И, а значение 2 - логической операции ИЛИ.


Пример .
FIS_name=addrule(FIS_name, [1 1 1 1 1; 1 2 2 0.5 1])


Строка добавляет в базу знаний системы FIS_name
два правила, которые интерпретируются следующим образом:


Если вход1=MF1 и вход2=MF1, то выход1=MF1 с
весом 1,


Если вход1=MF1 и вход2=MF2, то выход1=MF2 с
весом 0.5,


где MF1 (MF2) - терм с порядковым номером 1 (2).


·       addvar - добавление
переменной в FIS


FIS_name= addvar (FIS_name, varType,
varName, varBound)


Переменную можно добавить только к существующей
в рабочей области MatLab системе нечеткого логического вывода. Функция addrvar
имеет четыре входных аргумента:


ü FIS_name - идентификатор системы
нечеткого логического вывода в рабочей области MatLab;


ü varType - тип добавляемой
переменной. Допустимые значения - ‘input’ - входная переменная и ‘output’ -
выходная переменная;


ü varName - наименование добавляемой
переменной. Задается в виде строки символов;


ü varBound - вектор, задающий диапазон
изменения добавляемой переменной.
Пример.
FIS_name=addrule(FIS_name,
‘input’, ‘Рост’, [155
205])


Строка добавляет в систему нечеткого логического
вывода FIS_name входную переменную ‘Рост’, заданную на интервале [155 205].


·       evalfis - выполнение
нечеткого логического вывода


output = evalfis(input, fis)=
evalfis(input, fis, numPts)


[output, IRR, ORR, ARR] =
evalfis(input, fis)


[output, IRR, ORR, ARR] =
evalfis(input, fis,,numPts)


Выполняет нечеткий логический вывод. Функция
evalfis может иметь три входных аргумента, первые два из которых обязательные:-
матрица значений входных переменных, для которых необходимо выполнить нечеткий
логический вывод. Матрица должна иметь размер M x N, где N - количество входных
переменных; M - количество входных данных. Каждая строчка матрицы представляет
один вектор значений входных переменных;


ü fis - идентификатор системы
нечеткого логического вывода;


ü numPts - необязательный входной
аргумент, задающий количество точек дискретизации функций принадлежности.
Значение по умолчанию равно 101. Это означает, что все нечеткие множества
представляются в виде 101 пары чисел “элемент универсального множества -
степень принадлежности”. При уменьшении точек дискретизации возрастает скорость
выполнения логического вывода и уменьшается точность вычислений, и наоборот.


Функция evalfis может иметь четыре выходных
аргумента:


ü output - матрица значений выходных
переменных, получаемая в результате нечеткого логического вывода для вектора
входных значений input. Матрица имеет размер M x L, где M - количество входных
данных; L - количество выходных переменных в fis;


ü IRR - матрица размером NR x N, где
NR - количество правил в fis; N - количество входных переменных. Матрица
содержит степени принадлежности входных значений термам, входящих в базу
знаний;


ü ORR - матрица размером numPts x
(NR*L), где numPts - количество точек дискретизации; NR - количество правил в
fis; L - количество выходных переменных в fis. Каждый столбец матрицы содержит
функцию принадлежности выходной переменной, получаемую в результате вывода по
одному правилу. Функция принадлежности дискретизируется на numPts точках и
представляется в виде множества степеней принадлежности;


ü ARR - матрица размером numPts x L,
где numPts - количество точек дискретизации; L - количество выходных переменных
в fis. Матрица содержит функции принадлежности выходных переменных, получаемые
в результате нечеткого логического вывода по всей базе знаний. Функции
принадлежности дискретизируются на numPts точках и представляются в виде
множества степеней принадлежности.


Аргументы IRR, ORR и ARR являются
необязательными, они содержат промежуточные результаты нечеткого логического
вывода. В случае задания нескольких входных данных значения аргументов IRR, ORR
и ARR будут рассчитаны только для последнего вектора входных данных. Эти
аргументы используются когда необходимо отследить процесс логического вывода
или когда необходимо реализовать нестандартную процедуру нечеткого вывода.


Пример. Первая
строчка загружает демо-систему нечеткого логического вывода tipper,
предназначенную для определения процента чаевых в ресторане. Вторая строчка
рассчитывает размер чаевых, в случае если service=3 и food=8.


fis = readfis('tipper');= evalfis([3
8], fis)


·       gaussmf - гауссовская
функция принадлежности


Функция gaussmf задает функцию принадлежности в
виде симметричной гауссовской кривой. Эта функция задается формулой ,
параметры которой геометрически интерпретируются следующим образом:


ü b - координата максимума функции
принадлежности;


ü c - коэффициент концентрации функции
принадлежности.


Функция gaussmf применяется для задания гладних
симетричных функций принадлежности. Функция gaussmf имеет два входных аргумента:


ü x - вектор, для координат которого
необходимо рассчитать степени принадлежности;


ü params - вектор параметров функции
принадлежности. Порядок задания параметров - [c b].


Функция gaussmf возвращает выходной аргумент y,
содержащий степени принадлежности координат вектора x.


x = 0: 0.1: 10;= gaussmf(x, [0.5 5]);


y2 = gaussmf(x, [1 5]);= gaussmf(x,
[2 5]);= gaussmf(x, [3 5]);(x, [y1; y2; y3; y4])(' gaussmf, b=5,
c=0.5…3')(‘c=0.5’, ‘c=1’, ‘c=2’, ‘c=3’)


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


Эволюционные вычисления - термин, обычно
используемый для общего описания алгоритмов поиска, оптимизации или обучения,
основанных на некоторых формализованных принципах естественного эволюционного
процесса. Основное преимущество эволюционных вычислений заключается в
возможности решения многомодальных (имеющих несколько локальных экстремумов)
задач с большой размерностью за счет сочетания элементов случайности и
детерминированности точно так, как это происходит в природной среде.
Детерминированность этих методов заключается в моделировании природных
процессов отбора, размножения и наследования, происходящих по строго определенным
правилам. Основным правилом при этом является закон эволюции: "выживает
сильнейший", который обеспечивает улучшение находимого решения. Другим
важным фактором эффективности эволюционных вычислений является моделирование
размножения и наследования.


Генетические алгоритмы, являясь одной из
парадигм эволюционных вычислений, представляют собой алгоритмы поиска,
построенные на принципах, сходных с принципами естественного отбора и генетики.
Они объединяют в себе принцип выживания наиболее перспективных особей - решений
и обмен информацией, в котором присутствует элемент случайности, и который
моделирует природные процессы наследования и мутации. Дополнительным свойством
этих алгоритмов является невмешательство человека в развивающийся процесс
поиска. Человек может влиять на него лишь опосредованно, задавая определенные
параметры.


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


Основное отличие генетических алгоритмов
заключается в представлении любой альтернативы решения в виде строки
фиксированной длины, манипуляции с которой производятся в отсутствие всякой
связи с ее смысловой интерпретацией. То есть в данном случае применяется единое
универсальное представление любой задачи. Парадигму генетических алгоритмов
предложил Джон Холланд, опубликовавший в начале 60-х годов ее основные
положения. А всеобщее признание она получила после выхода в свет в 1975 году
его классического труда "Адаптация в естественных и искусственных
системах".


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


В начале работы алгоритма случайным образом
формируется начальная популяция, состоящая из заданного числа хромосом.


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




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




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




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


Генетические алгоритмы обладают следующими
поистине уникальными достоинствами:


ü Позволяют решать задачу с любым
количеством точек.


ü Разрешают распараллелить задачу.


ü Допускают ограничение решения
задачи, как по времени, так и по заданному значению критерия.


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


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


Работы с инструментарием генетического
алгоритма.


ü ga - Поиск минимума функции при
помощи генетического алгоритма


ü gaoptimget - Получить значения
структуры опций генетического алгоритма


ü gaoptimset - Создать структуры опций
генетического алгоритма


ü gatool - Открыть графический
инструментарий генетического алгоритма


Для выполнения Генетического алгоритма с
принимаемыми по умолчанию опциями следует вызвать команду ga согласно
следующему синтаксису:


Входными аргументами для команды ga будут
следующие величины:


ü @fitnessfun - Указатель функции в
М-файле, по которой производится расчет функции пригодности. Пояснения по
формированию М-файла приведены в разделе Составление М-файлов для подлежащих
оптимизации функций.


ü nvars - число независимых переменных
для функции пригодности.


ü fval - Значение функции пригодности
в точке x.
Дополнительную информацию о характеристиках
Генетического алгоритма можно получить при выполнении команды при следующем
синтаксисе:


[x fval reason output population
scores] = ga(@fitnessfcn, nvars)


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


Установка опций для команды ga из командной
строки


Имеется возможность установить любую опцию из
состава инструментария Генетического алгоритма. Для этих целей структура опций
передается в качестве входных аргументов для команды ga при выполнении


[x fval] = ga(@fitnessfun, nvars,
options)


Структура опций формируется при помощи команды
gaoptimset.options = gaoptimset


Эта команда возвращает структуру опций с
следующими принимаемыми по умолчанию значениями полей:


options = : 'doubleVector': [2x1
double]: 20: 2: 0.8000: 'forward': 20: 0.2000: 100: Inf: -Inf: 50: 20: []: []:
1: @gacreationuniform: @fitscalingrank: @selectionstochunif:
@crossoverscattered: @mutationgaussian: []: 'final': []: []: 'off'


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


Значения каждой из опции сохраняется в поле
опционной структуры, такой как опция.PopulationSize. Если ввести имя из
соответствующего поля, то можно отображать любые из этих значений. Например,
для отображения размера семейства для выбранного Генетического алгоритма
следует ввести команду:.PopulationSize= 20


Для формирования структуры опций со значением
полей, отличных от принимаемых по умолчанию величин, следует установить
соответствующую опцию. Например, с помощью выполнения команды с опцией
PopulationSize, равной 100, можно установить соответствующее значение (100)
вместо принимаемого по умолчанию значения 20:= gaoptimset('PopulationSize',
100)


Эта команда формирует структуру опций совместно
со всеми остальными принимаемыми по умолчанию значениями за исключением
PopulationSize, установленного как равного 100.


Если далее выполнить команду:(@fitnessfun,
nvars, options)


то программа ga выполнит команду генетического
алгоритма с размером семейства, равного 100.


Если в последствии будет необходимо изменить и
другие поля структур, таких как установка PlotFcns как @gaplotbestf, с помощью
которой осуществляется рисование графика наилучших значений функции пригодности
для каждого поколения, то следует выполнить команду gaoptimset со следующим
значением синтаксиса:


options = gaoptimset(options,
'PlotFcns', @plotbestf)


Эта команда сохраняет текущие значения всех
полей опций за исключением PlotFcns, которое переходит в @plotbestf. Отметим,
что если опустить опцию входных аргументов, то gaoptimset переустанавливает
PopulationSize с его принимаемым по умолчанию значением, равным 20.


Так же имеется возможность с помощью только
одной команды установить сразу две опции PopulationSize и PlotFcns:


options =
gaoptimset('PopulationSize',100,'PlotFcns',@plotbestf)


Использование опций и задач из
инструментария Генетического алгоритма


В качестве альтернативы создания структуры опций
с помощью команды gaoptimset, в инструментарии Генетического алгоритма имеется
возможность предварительно устанавливать эти значения опций и затем
экспортировать их в структуру опций рабочего пространства MATLAB, как это
описано в разделе Экспорт опций и задач. В случае экспорта принимаемых по
умолчанию опций в инструментарий Генетического алгоритма окончательная
структура опций будет иметь те же самые установки, как и принимаемая по
умолчанию структура, возвращаемая из команды= gaoptimset


В случае экспорта структуры задач с помощью
команды ga_problem из инструментария Генетического алгоритма, то можно
использовать команду ga со следующим синтаксисом:


Структура задач включает в себя следующие поля:


ü fitnessfcn - функция пригодности.


ü nvars - Количество переименных в
данной задаче.


Реализовать аппроксимацию функции с применением
аппарата нечеткого логического вывода, с оптимизацией параметров функций
принадлежности с помощью генетического алгоритма


Сформировать систему приближающую функцию: y = x 1 2 + x 2 2 + kx 1 x 2


ü на области D ={-2≤ x 1 ≤2;
-2≤ x 2
≤2}, где k
номер
варианта, в соответствии с порядковым номером в журнале старосты.


ü Оценить погрешность вычислений по
норме Гауса




1.     Вид поверхности x 1 ^2+x 2 ^2+4*x 1 *x 2 ;



2.     Создание нечеткой логической системы с
параметрами по умолчанию





Вычисляем ошибку по гауссу и норму по гауссу для
нечеткой логической системы: =newfis('kurs');


%задаем функции принадлежности входных
переменных=addmf(a,'input',1,'g1','gaussmf',[0.4248 -2]);


a=addmf(a,'input',1,'g2','gaussmf',[0.4248
-1]);=addmf(a,'input',1,'g3','gaussmf',[0.4248
0]);=addmf(a,'input',1,'g4','gaussmf',[0.4248
1]);=addmf(a,'input',1,'g5','gaussmf',[0.4248 2]);




%задаем входную переменую=addvar(a,'input','x2',[-2
2]);


%задаем функции принадлежности входных
переменных=addmf(a,'input',2,'g1','gaussmf',[0.4248 -2]);


a=addmf(a,'input',2,'g2','gaussmf',[0.4248
-1]);=addmf(a,'input',2,'g3','gaussmf',[0.4248
0]);=addmf(a,'input',2,'g4','gaussmf',[0.4248 1]);=addmf(a,'input',2,'g5','gaussmf',[0.4248
2]);




%задаем выходную
переменую=addvar(a,'output','y',[-8 24]);


%задаем функции принадлежности выходной
переменной=addmf(a,'output',1,'g1','gaussmf',[3.397 -8]);


a=addmf(a,'output',1,'g2','gaussmf',[3.397
0]);=addmf(a,'output',1,'g3','gaussmf',[3.397
8]);=addmf(a,'output',1,'g4','gaussmf',[3.397
16]);=addmf(a,'output',1,'g5','gaussmf',[3.397 24]);




% изменяем
значения
методов=setfis(a,'AndMethod','prod');=setfis(a,'ImpMethod','prod');


= 0;i=-2:1:2j=-2:1:2= i^2 + j^2 +
4*i*j;= evalfis([i j], a);= sum + (realValue - eVal)^2;




sum = 0;i=-2:1:2j=-2:1:2= i^2 + j^2
+ 4*i*j;= sum + (realValue)^2;


%норма
по
Гауссу=
error / (sqrt(sum));


Создание фитнес функции на основе fuzzy
logic
toolbox :



% Функция для генетического алгоритма


% её параметры - коэффициент концентрации и
координата максимума функции


% возвращаемое значение - ошибка по Гауссу


% создаем
новый
фис
файл=newfis('kurs');


%задаем функции принадлежности входных
переменных


a=addmf(a,'input',1,'g1','gaussmf',[pop(1,1)
pop(1,2)]);


a=addmf(a,'input',1,'g2','gaussmf',[pop(1,3)
pop(1,4)]);=addmf(a,'input',1,'g3','gaussmf',[pop(1,5)
pop(1,6)]);=addmf(a,'input',1,'g4','gaussmf',[pop(1,7)
pop(1,8)]);=addmf(a,'input',1,'g5','gaussmf',[pop(1,9) pop(1,10)]);




%задаем функции принадлежности входных
переменных


a=addmf(a,'input',2,'g1','gaussmf',[pop(1,11)
pop(1,12)]);


a=addmf(a,'input',2,'g2','gaussmf',[pop(1,13)
pop(1,14)]);=addmf(a,'input',2,'g3','gaussmf',[pop(1,15) pop(1,16)]);=addmf(a,'input',2,'g4','gaussmf',[pop(1,17)
pop(1,18)]);=addmf(a,'input',2,'g5','gaussmf',[pop(1,19) pop(1,20)]);




%задаем выходную
переменую=addvar(a,'output','y',[-8 24]);


%задаем функции принадлежности выходной
переменной=addmf(a,'output',1,'g1','gaussmf',[pop(1,21) pop(1,22)]);


a=addmf(a,'output',1,'g2','gaussmf',[pop(1,23)
pop(1,24)]);=addmf(a,'output',1,'g3','gaussmf',[pop(1,25)
pop(1,26)]);=addmf(a,'output',1,'g4','gaussmf',[pop(1,27)
pop(1,28)]);=addmf(a,'output',1,'g5','gaussmf',[pop(1,29) pop(1,30)]);




% изменяем
значения
методов=setfis(a,'AndMethod','prod');=setfis(a,'ImpMethod','prod');


%значеие
из
фисфайла=
evalfis([i j],a);


%сумма
по
Гауссу=
sum + (efis - realValue)^2;


%выходной параметр - ошибка по Гауссу=
sqrt(sum);


.       Применение генетического алгоритма


% интервал принадлежности=
gaoptimset(options,'PopInitRange', [0 -2 0 -2 0 -2 0 -2 0 -2 0 -2 0 -2 0 -2 0
-2 0 -2 0 -8 0 -8 0 -8 0 -8 0 -8; 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 60 24
60 24 60 24 60 24 60 24]);


% начальные значения параметров=
gaoptimset(options,'InitialPopulation', [0.4248 -2 0.4248 -1 0.4248 0 0.4248 1
0.4248 2 0.4248 -2 0.4248 -1 0.4248 0 0.4248 1 0.4248 2 3.397 -8 3.397 0 3.397
8 3.397 16 3.397 24]);


options =
gaoptimset(options,'PlotFcns', { @gaplotbestf });


[x,fval]=ga(@fitnes,30,[],[],[],[],[],[],[],options);




Применение генетического алгоритма:




options =
gaoptimset(options,'PopInitRange', [0 -2 0 -2 0 -2 0 -2 0 -2 0 -2 0 -2 0 -2 0
-2 0 -2 0 -68 0 -68 0 -68 0 -68 0 -68; 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2
50 84 50 84 50 84 50 84 50 84]);= gaoptimset(options,'InitialPopulation',
[0.4248 -2 0.4248 -1 0.4248 0 0.4248 1 0.4248 2 0.4248 -2 0.4248 -1 0.4248 0
0.4248 1 0.4248 2 16.14 -68 16 -29.2 16 8 16.14 46 16.14 84]);=
gaoptimset(options,'PlotFcns', { @gaplotbestf });


[x,fval]=ga(@lr_sii_4,30,[],[],[],[],[],[],[],options);


Генетическим алгоритмом были сформированы
следующие коэффициенты для функций принадлежности:


Поверхность построенная при помощи Fuzzy
Logic ToolBox
и генетического алгоритма


Нейронные сети (NN - Neural Networks) широко
используются для решения разнообразных задач. Среди развивающихся областей
применения NN - обработка аналоговых и цифровых сигналов, синтез и
идентификация электронных цепей и систем. Основы теории и технологии применения
NN широко представлены в пакете MATLAB. В этой связи особо следует отметить
последнюю версию пакета - MATLAB 6.0, где впервые представлен GUI (Graphical
User Interface - графический интерфейс пользователя) для NN - NNTool.


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


Обработка сигналов в технологиях NN выполняется
с помощью либо NN без памяти, либо NN c памятью. И в том и другом случаях
ключевым элементом является NN без памяти. Подобная роль определяется тем
обстоятельством, что при использовании нейронов с определёнными функциями
активации (передаточными характеристиками) NN является универсальным
аппроксиматором. Последнее означает, что в заданном диапазоне изменения входных
переменных NN может с заданной точностью воспроизводить (моделировать)
произвольную непрерывную функцию этих переменных.


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


После того как структура NN выбрана, должны быть
установлены её параметры. Выбор структуры NN и типов нейронов - самостоятельный
и весьма непростой вопрос, который здесь мы обсуждать не будем. Что же касается
значений параметров, то, как правило, они определяются в процессе решения
некоторой оптимизационной задачи. Эта процедура в теории NN называется
обучением.


Графический интерфейс пользователя NNTool
позволяет выбирать структуры NN из обширного перечня и предоставляет множество
алгоритмов обучения для каждого типа сети.


Чтобы запустить NNTool, необходимо выполнить
одноимённую команду в командном окне MATLAB:


после этого появится главное окно NNTool,
именуемое "Окном управления сетями и данными" (Network/Data Manager)


ü Панель "Сети и данные"
(Networks and Data) имеет функциональные клавиши со следующими назначениями:


ü Помощь (Help)- краткое описание
управляющих элементов данного окна;


ü Новые данные (New Data…)- вызов
окна, позволяющего создавать новые наборы данных;


ü Новая сеть (New Network…)- вызов
окна создания новой сети;


ü Импорт (Import…)- импорт данных из
рабочего пространства MATLAB в пространство переменных NNTool;


ü Экспорт (Export…)- экспорт данных из
пространства переменных NNTool в рабочее пространство MATLAB;


ü Вид (View)- графическое отображение
архитектуры выбранной сети;


ü Удалить (Delete)- удаление
выбранного объекта.


На панели "Только сети" (Networks
only) расположены клавиши для работы исключительно с сетями. При выборе
указателем мыши объекта любого другого типа, эти кнопки становятся неактивными.


При работе с NNTool важно помнить, что клавиши
View, Delete, Initialize, Simulate, Train и Adapt (изображены на рис. 1 как
неактивные) действуют применительно к тому объекту, который отмечен в данный
момент выделением. Если та
Похожие работы на - Системы искусственного интеллекта Курсовая работа (т). Информационное обеспечение, программирование.
Доклад: Политический портрет Иосифа Виссарионовича Сталина
Курсовая работа: Анализ использования капитала предприятия. Скачать бесплатно и без регистрации
Сочинение День Защиты Животных
Курсовая работа по теме Установка и настройка FTP сервера
Сочинение На Тему Конфликт Базарова И Кирсанова
Адназначныя и мнагазначныя словы. Амонімы,сінонімы,антонімы, паронімы і іх тыпы.
Реферат Пример Оформления
Доклад по теме Мифы и реалии российской политической власти
Курсовая работа: Механизация и автоматизация обработки информации по учету основных средств на предприятии
Сочинение По Русскому Что Такое Доброта
Управление и манипулирование
Реферат по теме Особенности переходной экономики
Большой Реферат Композитора В А Моцарта
Дипломная работа по теме Проектирование программного наполнения конфигуратора топливораздаточных колонок на языке html
Роль Второстепенных Персонажей В Романе Обломов Сочинение
Эссе На Тему Директор
Бродский Коллекционный Экземпляр Эссе
Реферат На Тему Диалекты Китайского Языка
Эссе Дон
Реферат по теме Мало-Азиатское нагорье
Реферат: To Clone Or Not To Clone Essay
Похожие работы на - Принципы составления инвестиционного портфеля
Доклад: Кто использует телескоп "Hubble"?

Report Page