Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »ПРОГРАММИРОВАНИЕ

Системы искусственного интеллекта

Тип: курсовая работа
Категория: ПРОГРАММИРОВАНИЕ
Скачать
Купить
Понятие и суть нечеткой логики и генетических алгоритмов. Характеристика программных пакетов для работы с системами искусственного интеллекта в среде Matlab R2009b. Реализация аппроксимации функции с применением аппарата нечеткого логического вывода.
Краткое сожержание материала:

Размещено на

Размещено на

Министерство образования и науки РФ

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

Имени А. Г. и Н. Г. Столетовых

Кафедра ФиПМ

Курсовая работа

«Системы искусственного интеллекта»

Выполнил:

ст. гр. АИС - 108

Болонкин А.А.

Проверил:

Абрахин С. И.

Владимир 2011

Содержание

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

1.1 Нечеткая логика

1.2 Генетические алгоритмы

1.3 Задание

1.4 Реализация

Глава 2. Нейронные сети

2.1 Нейронные сети

2.2 Задание

2.3 Реализация

Вывод

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

1.1 Нечеткая логика

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

Обозначения:

X - входной четкий вектор;

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

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

Y - выходной четкий вектор.

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

Функции Fuzzy 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 - вектор, задающий диапазон изменения добавляемой переменной.

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

Пример. FIS_name=addrule(FIS_name, `input', `Рост', [155 205])

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

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

output = evalfis(input, fis)

output = evalfis(input, fis, numPts)

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

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

Описание:

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

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

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

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

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

ь output - матрица значений выходных переменных, получаемая в результате нечет...

Другие файлы:

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

Системы искусственного интеллекта
История развития искусственного интеллекта. Экспертные системы: их типы, назначение и особенности, знания и их представление. Структура идеальной и ин...

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

Реальность и прогнозы искусственного интеллекта
Реальность и прогнозы искусственного интеллекта: Сб. статей; Пер. с англ./Под ред. и с предисл. В. Л. Стефанюка.—М.: Мир, 1987.—247 с, ил.— (В мире на...

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