- •Интеллектуальные информационные системы
- •Введение
- •1. Логика предикатов первого порядка
- •1.1. Основы логики предикатов первого порядка
- •1.2. Основы Пролога
- •Примеры использования дизъюнкции в Прологе
- •1.3. Назначение и основные возможности swi-Prolog
- •Некоторые операции и предикаты swi-Prolog
- •1.4. Лабораторная работа № 1 Представление фактов и правил в Прологе
- •1.5. Лабораторная работа № 2. Рекурсия в Прологе
- •1.6. Лабораторная работа № 3. Обработка списков в Прологе
- •Списки и их составные части
- •2. Онтологии
- •2.1. Онтологии и семантическая паутина
- •2.2. Краткие сведения о спецификациях семантической паутины
- •Стандартные пространства имен
- •Классы rdf/rdfs
- •Свойства rdf/rdfs
- •2.3. Лабораторная работа № 4 Построение онтологической модели в Protégé. Создание классов
- •2.4. Лабораторная работа № 5 Построение онтологической модели в Protégé. Создание экземпляров классов
- •2.5. Лабораторная работа № 6 Выполнение sparql-запросов в Protégé
- •Модификаторы
- •3. Эвристические алгоритмы
- •3.1. Методы поиска решений с использованием графов
- •Сравнительная характеристика методов
- •3.2. Лабораторная работа № 7 Решение оптимизационной задачи с использованием эвристического алгоритма
- •Характеристика дополнительных ограничений скорости и мероприятий по их устранению
- •Варианты заданий на выполнение лабораторной работы
- •4. Нечеткие множества
- •4.1. Основы теории нечетких множеств и нечеткой логики
- •4.2. Лабораторная работа № 8. Решение прикладной задачи с использованием нечетких множеств
- •5. Генетические алгоритмы
- •5.1. Эволюционные вычисления
- •5.2. Лабораторная работа № 9. Решение оптимизационной задачи с использованием генетического алгоритма
- •Исходная популяция
- •Популяция после скрещивания
- •Расчет значений целевой функции
- •Популяция после редукции
- •Варианты заданий
- •6. Искусственные нейронные сети
- •6.1. Распознавание образов
- •6.2. Лабораторная работа № 10. Распознавание образов с использованием искусственной нейронной сети
- •Варианты заданий на выполнение лабораторной работы
- •Заключение
- •Библиографический список
- •Оглавление
- •Интеллектуальные информационные системы
- •6 80021, Г. Хабаровск, ул. Серышева, 47
- •Интеллектуальные информационные системы
5.2. Лабораторная работа № 9. Решение оптимизационной задачи с использованием генетического алгоритма
Цель работы: освоение методов эволюционных вычислений на примере генетического алгоритма.
Описание задачи и пример ее решения
А. Описание задачи
Целевая функция задана выражением f(x) = 25 + 10x – 46x2 + x3. Требуется найти максимальное и минимальное значение целевой функции в интервале x [-10, 53].
Б. Решение с помощью математического анализа (точный метод решения оптимизационных задач)
Очевидно, что данную задачу можно решить с помощью методов математического анализа. Последовательность решения выглядит следующим образом.
1. Определение первой производной: f’(x) = 10 – 92x + 3x2.
2. Определение корней квадратного уравнения 10 – 92x + 3x2 = 0: x1 = 30.558, x2 = 0.109.
3. Определение второй производной: f”(x) = –92 + 6x.
4. Определение типа экстремумов:
f”(30.558) = –92 + 6 30.558 = 91.348 > 0 минимум;
f”(0.109) = –92 + 6 0.109 = –91.348 < 0 максимум.
5. Определение значений функции в точках экстремумов:
f(30.558) = 25 + 10 30.558 – 46 30.5582 + 30.5583 = -14089;
f(0.109) = 25 + 10 0.109 – 46 0.1092 + 0.1093 = 25.5.
6. Определение значений функции на границах интервала:
f(-10) = 25 + 10 (-10) – 46 (-10)2 + (-10)3 = -5675;
f(53) = 25 + 10 53 – 46 532 + 533 = 20218.
7. Определение максимального и минимального значений целевой функции:
максимум: ymax = MAX(-14089, 25.5, -5675, 20218) = 20218 при x = 53;
минимум: ymin = MIN(-14089, 25.5, -5675, 20218) = -14089 при x = 0.56.
Результаты расчетов подтверждаются графиком функции рис. 41.
В. Решение с помощью генетического алгоритма (эвристический метод решения оптимизационных задач)
Несмотря на то, что точное решение может быть легко найдено методами математического анализа, ниже приводится решение задачи с помощью генетического алгоритма на примере одной итерации вычисления максимального значения целевой функции.
Вариант решения задачи (особь) можно представить в виде битовой строки, которая будет соответствовать целочисленному значению x в заданном интервале. Таким образом, ген – это отдельный бит строки, хромосома – последовательность из 6 битов, генотип состоит из одной хромосомы (генотип хромосома), фенотип – десятичное представление битовой строки минус 10.
Рис. 41. График функции f(x) = 25 + 10x – 46x2 + x3 в интервале x [-10, 53]
Пусть размер популяции будет 4 особи, число скрещиваний – 2, число мутаций – 1 потомок на поколение. Процесс мутации заключается в инверсии одного из битов строки, выбираемого случайно.
1. Случайным образом генерируются особи исходной популяции (табл. 11).
Таблица 11
Исходная популяция
№ |
Представление особи |
Фенотип, x |
Значение целевой функции, f(x) = a + bx + cx2 + dx3 |
|||
битовое |
десятичное |
|||||
1 |
011011 |
27 |
17 |
-8186 |
||
2 |
100010 |
34 |
24 |
-12407 |
||
3 |
000100 |
4 |
-6 |
-1355 |
||
4 |
111001 |
57 |
47 |
2704 |
||
2. Первая итерация – оператор скрещивания. Для скрещивания случайным образом выбраны две пары особей (1, 2) и (2, 4). В каждой паре разбиение на подстроки происходит независимо от другой пары и случайным образом. Потомки получаются в результате объединения левой подстроки одного родителя с правой подстрокой другого (табл. 12).
Таблица 12
