Кафедра Систем Искусственного Интеллекта

advertisement
Кафедра Систем Искусственного Интеллекта
ИНТЕЛЛЕКТУАЛЬНЫЕ
ИНФОРМАЦИОННЫЕ
СИСТЕМЫ
Учебное пособие
Руководитель проекта: Лапина А.В.
Содержание
Введение
5
Глава 1. Введение в интеллектуальные информационные системы.
Языки представления знаний
История развития систем искусственного интеллекта
Развитие систем искусственного интеллекта в России
Направления развития систем искусственного интеллекта
Основные определения
Данные и знания
Представление знаний
Модели представления знаний
Продукционная модель представления знаний
Структура продукционной системы
Семантические сети
Классификация семантических сетей
Отношения в семантических сетях
Фреймовая модель представления знаний
Понятие фрейма
Структура фрейма
Фреймовая система
Логическая модель представления знаний
Основные идеи формализации
Модель, основанная на нечетких знаниях
Основы теории нечетких множеств
Нечеткие знания
Основные понятия нечетких множеств
Нечеткие импликации
Операторы импликаций
Модификаторы
Теория приближенных рассуждений
Композиционное правило вывода
Механизмы нечеткого рассуждения
Нечеткое управление
Методы дефаззификации
Дефаззификация методом «Центр тяжести»
Дефаззификация методом «Первый максимум»
Дефаззификация методом «Средний максимум»
Дефаззификация методом «Критерий максимума»
Дефаззификация по высоте
Контрольные вопросы
6
6
8
9
11
11
14
15
16
16
18
19
19
21
21
21
22
25
26
30
30
30
30
35
37
37
39
40
40
41
44
44
44
44
45
45
45
Глава 2. Основы Теории ЭС. Технологии инженерии знаний
Введение в экспертные системы
Особенности экспертных систем
Инженерия знаний
Структура экспертной системы
Этапы разработки ЭС
Коллектив разработчиков ЭС
Технологии инженерии знаний
Коммуникативные методы извлечения знаний
Пассивные методы
Наблюдения
Анализ протоколов «мыслей вслух»
Лекции
Активные методы
Активные групповые методы
«Круглый стол»
«Мозговой штурм»
Ролевые экспертные игры в группе
Активные индивидуальные методы
46
46
47
47
49
50
52
53
55
56
56
57
58
58
58
58
59
59
60
2
Анкетирование
Интервью
Вопросы для интервью
Диалог
Экспертные игры
Игры с экспертом
Игры с тренажерами
Компьютерные экспертные игры
Текстологические методы
Алгоритм извлечения знаний из текста
Сравнительные характеристики методов извлечения знаний
Контрольные вопросы
60
61
61
62
62
62
63
63
63
64
64
68
Глава 3. Основы нейронных сетей
Биологический прототип искусственных нейронных сетей
Основные идеи и области применения нейросетей
Основные компоненты нейронной сети
Характеристики нейронных сетей
Множество простых процессоров
Структура связей
Правило распространения сигналов в сети
Правило комбинирования входящих сигналов
Правило вычисления сигнала активности
Функции активации
Тождественная функция
Пороговая функция
Сигмоидная функция
Правило обучения, корректирующие связи
Контрольные вопросы
69
69
70
70
70
72
73
73
73
74
74
74
75
76
76
79
Глава 4. Эволюционные алгоритмы
Введение в эволюционные алгоритмы
Основоположники теории эволюции
Классификация СИИ
Классификация эволюционных алгоритмов
Основные определения
Преимущества эволюционных алгоритмов
Недостатки эволюционных алгоритмов
Области применения ЭА
Эффективность ЭА
Схема работы эволюционного алгоритма
Обобщенный ЭА
Проектирование эволюционных алгоритмов (EA-Design)
Критерии останова
Пример работы ЭА
Теория строительного блока
Пректирование представления
Бинарный алфавит
Порядковое представление
Представление вещественными числами
Инициализация популяции
Оценивание индивида
Селекция
Пропорциональная селекция
Ранговая селекция
Турнирная селекция
Стратегия замещения
Операторы скрещивания
Рекомбинация для бинарного представления
Одноточечное скрещивание
Равномерное скрещивание
Рекомбинация с помощью масок
Рекомбинация для порядкового представления
80
80
80
83
85
86
87
88
88
90
92
92
94
95
96
99
101
101
102
102
103
104
104
105
106
106
107
107
107
107
108
108
108
3
Рекомбинация для вещественного представления
Плоское скрещивание
Арифметическое скрещивание
BLX-α скрещивание
Линейное скрещивание
Операторы мутации
Мутация для порядкового представления
Мутация для бинарного представления
Мутация для вещественного представления
Преобразование целевой функции в функцию пригодности
Условная оптимизация
Контрольные вопросы
109
109
109
109
109
110
110
111
111
111
112
114
Глава 5. Языки логического программирования
Специальные модели представления знаний
Логико-лингвистические модели
Формальные и семиотические системы
Выводы на знаниях
Представление событий и действий с помощью семантической сети
Базы знаний
Продукционная модель знаний и механизм вывода
Выводы на знаниях, представленных семантическими сетями
Выводы на знаниях, представленных фреймами
Выводы на знаниях, представленных продукциями
Дедуктивный и абдуктивный выводы
Логика и правила вывода
Классическая логика в ИИС
Теория силлогизмов
Виды логического вывода
Законы логики и принципы
Дедуктивные методы вывода
Языки логического программирования
Сравнительный анализ языков программирования и представления знаний
Современные программные средства построения интеллектуальных систем
Введение в язык Пролог
Составные объекты: структуры и списки
Логико-математические модели в Прологе
Экспертные системы и Пролог
Преимущества пролога для ЭС
Контрольные вопросы
Библиографический список
Глоссарий терминов
115
115
118
126
133
134
134
135
136
137
138
140
140
142
143
148
149
151
155
155
162
176
180
186
198
201
201
202
204
4
Введение
В последнее время наблюдается возрастание интереса к
искусственному интеллекту, вызванное повышением требований к
информационным системам. Умнеет программное обеспечение, умнеет
бытовая техника. Мы неуклонно движемся к новой информационной
революции, сравнимой по масштабам с развитием Интернета, имя которой –
искусственный интеллект.
Все уже, наверное, слышали об электромеханических собаках в
Японии, способных узнавать хозяина в лицо, выполнять некоторые
простейшие команды и имеющие некоторую способность к обучению.
Слышали и про холодильники с выходом в Интернет и про внедрение
Microsoft в будущие версии Windows элементов искусственного интеллекта.
В подобном развитии области искусственного интеллекта нет ничего
необычного. Здесь уместно привести гипотезу о встречной эволюции
человека и компьютера: человек сначала учиться видеть, ходить,
разговаривать, а уже потом развивает способности к вычислениям и
логическим выводам. Компьютер же наоборот, рождается как
вычислительная система, базирующаяся на формальной логике, в процессе
развития приобретает способности к распознаванию образов, синтезу речи и
управлению в реальном времени.
В настоящее время различают два основных подхода к моделированию
искусственного интеллекта (AI – artificial intelligence): машинный интеллект,
заключающийся в строгом задании результата функционирования, и
искусственный разум, направленный на моделирование внутренней
структуры системы.
В данном пособие рассматриваются перспективные направления
развития систем искусственного интеллекта. Рассматривается история
развития
систем
искусственного
интеллекта,
основные
понятия
интеллектуальных технологий. Уделяется особое внимание моделям
представления знаний, в том числе и специальным моделям. Дается
подробное описание технологии экспертных систем, а также технологиям
инженерии знаний. Рассматриваются технологии нейросетей, а также дается
показывается применение теории эволюции к решению интеллектуальных
задач. Также в пособие рассмотрены основы специальных языков
представления знаний.
5
Глава 1. Введение в интеллектуальные информационные системы.
Языки представления знаний
История развития систем искусственного интеллекта
Идея создания искусственного подобия человека для решения сложных
задач и моделирования человеческого разума витала в воздухе еще в
древнейшие времена. Так, в древнем Египте была создана «оживающая»
механическая статуя бога Амона. У Гомера в «Иллиаде» бог Гефест ковал
человекоподобные существа-автоматы. В литературе эта идея обыгрывалась
многократно, например, Буратино папы Карло. Впервые идею создания
искусственного подобия человека выразил Р. Луллий (ок.1235-ок.1315),
который еще в XIV в. пытался создать машину для решения различных задач
на основе всеобщей классификации понятий.
В XVIII в. Г.Лейбниц (1646 - 1716) и Р.Декарт (1596 - 1650) независимо
друг от друга развили эту идею, предложив универсальные языки
классификации всех наук. Эти идеи легли в основу теоретических разработок
в области создания искусственного интеллекта.
Рождение искусственного интеллекта как научного направления
произошло только после создания ЭВМ в 40-х годах ХХ века. В то же время
Норберт Винер создал свои основополагающие работы по новой науке –
кибернетике.
Термин искусственный интеллект (artificial intelligence) предложен в
1956 г. на семинаре с аналогичным названием в Стэндфордском
университете (США). Семинар был посвящен разработке логических, а не
вычислительных задач.
Вскоре после признания искусственного интеллекта отдельной
областью науки произошло разделение его на два направления:
нейрокибернетика и кибернетика «черного ящика».
Основная идея нейрокибернетики состоит в том, что единственный
объект, способный мыслить - это человеческий мозг. Поэтому любое
«мыслящее» устройство должно каким - то образом воспроизводить его
структуру.
Таким образом, нейрокибернетика ориентирована на программноаппаратное моделирование структур, подобных структуре мозга.
Физиологами давно установлено, что основой человеческого мозга является
большое количество (до 10 21 ) связанных между собой нервных клеток нейронов. Усилия нейрокибернетиков были сосредоточены на создании
элементов, аналогичных нейронам, и их объединении в функционирующие
системы. Эти системы принято называть нейронными сетями. Первые
6
нейросети были созданы Розенблатом и Мак - Коллаком в 56-65 гг. это были
попытки создать системы, моделирующие человеческий глаз и его
взаимодействие с мозгом. Устройство, созданное ими тогда, получило
название персептрона. Оно умело различать буквы алфавита, но было
чувствительно к их написанию.
В 80-х в Японии был создан первый нейрокомпьютер. Основная
область применения нейрокомпьютеров - распознавание образов.
К этому времени ограничения по памяти и быстродействию били
сняты. Появились транспьютеры - параллельные компьютеры с большим
количеством процессоров. Транспьютерная технология - это только один из
десятка новых подходов к аппаратной реализации нейросетей, которые
модулируют иерархическую структуру мозга человека.
В настоящее время используются три подхода к созданию нейросетей:
• аппаратный - создание специальных компьютеров, плат расширения,
наборов микросхем, реализующих все необходимые алгоритмы;
• программный - создание программ и инструментариев, рассчитанных
на высокопроизводительные компьютеры. Сети создаются в памяти
компьютера, всю работу выполняют его собственные процессоры;
• гибридный - комбинация первых двух. Часть вычислений выполняют
специальные платы расширения (сопроцессоры), часть - программные
средства.
В
основу
кибернетики
"черного
ящика"
лег
принцип,
противоположный нейрокибернетике. Кибернетика «черного ящика»
полагает: не имеет значения как устроено «мыслящее» устройство. Главное,
чтобы на заданные входные воздействия оно реагировало так же, как
человеческий мозг.
Сторонники этого направления мотивировали свой подход тем, что
человек не должен слепо следовать природе в своих научных и
технологических поисках (успех колеса очевиден, но его нет в природе;
самолет не машет крыльями). К тому же не было объяснения, как
протекают интеллектуальные процессы у человека, как устроена память и
как человек познает окружающий мир. Это направление искусственного
интеллекта было ориентировано на поиски алгоритмов решения
интеллектуальных задач на существующих моделях компьютеров.
Оба направления развивались практически независимо, существенно
различаясь как в методологии, так и в технологии. И только в настоящее
время стати заметны тенденции к объединению этих частей вновь в единое
целое.
Таким образом, исследования в области искусственного интеллекта
сконцентрированы на разработке и внедрении компьютерных программ,
способных эмулировать (имитировать, воспроизводить) те области
деятельности человека, которые требуют мышления, определенного
мастерства и накопленного опыта. К ним относятся задачи принятия
решений, распознавания образов и понимания человеческого языка.
7
Основная задача интеллектуальных технологий сегодня - это
обработка знаний. Чаще всего интеллектуальные системы применяются для
решения сложных задач, где основная сложность решения связана с
использованием слабо формализованных знаний специалистов-практиков и
где логическая (или смысловая) обработка информации превалирует над
вычислительной. Например, понимание естественного языка, поддержка
принятия решения в сложных ситуациях, постановка диагноза и
рекомендации по методам лечения, анализ визуальной информации,
управление диспетчерскими пультами и др.
Анализируя тенденции в целом, следует отметить устойчивый рост
продаж инструментальных средств для разработки интеллектуальных систем,
доминирующую роль среди которых играют инструментальные средства для
создания ЭС (более 70% от общего объема).
Начиная с середины 80-х гг. происходит коммерциализация
искусственного интеллекта. Растут ежегодные капиталовложения, создаются
промышленные экспертные системы. Растет интерес к самообучающимся
системам.
Развитие систем искусственного интеллекта в России
Принято считать, что в России искусственный интеллект зародился в
1954 году. В этом году в МГУ начал свою работу семинар «Автоматы и
мышление» под руководством академика Ляпунова А.А., одного из
основателей российской кибернетики. В этом семинаре принимали участие
физиологи, лингвисты, психологи, математики. В 1954-64 гг. создаются
отдельные программы и проводятся исследования в области поиска решения
логических задач. В Ленинграде (Ленинградское отделение математического
института им. Стеклова) создается программа АЛПЕВ ЛОМИ, автоматически
доказывающая теоремы. В 1965-1980 гг. происходит рождение нового
направления – ситуационного управления. Основателем этой научной школы
стал профессор Д.А. Поспелов.
При том, что отношение к новым наукам с СССР всегда было
настороженным, наука с таким «вызывающим» названием было встречена в
штыки. Только в 1974 г. при Комитете по системному анализу при
президиуме АН СССР был создан научный совет по проблеме
«Искусственный интеллект». По инициативе совета было организовано пять
комплексных научных проектов, которые были возглавлены ведущими
специалистами в данной области. «Диалог» - работы по пониманию
естественного языка, руководители - А.П. Ершов, А.С. Нариньяни,
«Ситуация» - ситуационное управление, Д.А. Поспелов, «Банк» - банки
данных, Л.Т. Кузин, «Интеллект робота» - Д.Е. Охоцимский.
В 1980-1990 гг. проводятся активные исследования
в области
представлений знаний, разрабатываются языки представления знаний,
экспертные системы (более 300).
8
В 1988 году создана Ассоциация искусственного интеллекта. Ее
членами являются более 300 ведущих ученых. В научный совет входят
ведущие исследователи в области ИИ – В.П. Гладун, В.И. Городецкий, Г.С.
Осипов, Э.В. Попов, В.Л. Стефанюк, В.Ф. Хорошевский, В.К. Финн, Г.С.
Цейтин, А.С. Эрлих и другие ученые. В рамках Ассоциации проводится
большое количество исследований, организуются школы для молодых
специалистов, семинары, симпозиумы, конференции.
На данный момент отставание в области разработки промышленных
интеллектуальных систем составляет порядка 3-5 лет.
Направления развития систем искусственного интеллекта
Представление знаний и разработка систем, основанных на
знаниях
Это основное направление искусственного интеллекта. Оно связано с
разработкой моделей представления знаний, созданием баз знаний,
образующих ядро экспертных систем (ЭС). В последнее время включает в
себя модели и методы извлечения и структурирования знаний и сливается с
инженерией знаний
Игры и творчество
Традиционно искусственный интеллект включает в себя игровые
интеллектуальные задачи - шахматы, шашки, го. В основе лежит один из
ранних подходов - лабиринтная модель плюс эвристики. Сейчас это скорее
коммерческое направление, так как в научном плане эти идеи считаются
тупиковыми.
Разработка естественно-языковых интерфейсов и машинный
перевод
В 50-х гг. одной из популярных тем исследований искусственного
интеллекта являлась область машинного перевода. Первая программа в этой
области - переводчик с английского языка на русский. Первая идея пословный перевод, оказалась неплодотворной. В настоящее время
используется более сложная модель, включающая анализ и синтез
естественно-языковых сообщений, которая состоит из нескольких блоков.
Для анализа это:
• морфологический анализ - анализ слов в тексте;
• синтаксический анализ - анализ предложений, грамматики и связей
между словами;
• семантический анализ - анализ смысла каждого предложения на
основе некоторой предметно-ориентированной базы знаний;
• прагматический анализ - анализ смысла предложений в окружающем
контексте на основе собственной базы знаний. Синтез включает аналогичные
этапы, но несколько в другом порядке.
9
Распознавание образов
Традиционное направление искусственного интеллекта, берущее
начало у самых его истоков. Каждому объекту ставится в соответствие
матрица признаков, по которой происходит его распознавание. Это
направление близко к машинному обучению, тесно связано с
нейрокибернетикой.
Новые архитектуры компьютеров
Это направление занимается разработкой новых аппаратных решений и
архитектур, направленных на обработку символьных и логических данных.
Создаются Пролог - и Лисп-машины, компьютеры V и VI поколений.
Последние разработки посвящены компьютерам баз данных и параллельным
компьютерам.
Интеллектуальные роботы
Роботы - это электромеханические устройства, предназначенные для
автоматизации человеческого труда.
Идея создания роботов исключительно древняя. Само слово появилось
в 20-х гг. XX в. Его автор - чешский писатель Карел Чапек. Со времени
создания сменилось несколько поколений роботов.
Роботы с жесткой схемой управления. Практически все современные
промышленные роботы принадлежат к первому поколению. Фактически это
программируемые манипуляторы.
Адаптивные роботы с сенсорными устройствами. Есть образцы таких
роботов, но в промышленности они пока не используются.
Самоорганизующиеся, или интеллектуальные, роботы. Это конечная
цель развития робототехники. Основная проблема при создании
интеллектуальных роботов - проблема машинного зрения.
В настоящее время в мире изготавливается более 60 тыс. роботов в год.
Специальное программное обеспечение
В рамках этого направления разрабатываются специальные языки для
решения задач не вычислительного плана. Эти языки ориентированы на
символьную обработку информации - LISP, PROLOG, SMALLTALK, РЕФАЛ
и др. Помимо этого создаются пакеты прикладных программ,
ориентированные на промышленную разработку интеллектуальных систем,
или программные инструментарии искусственного интеллекта, например
КЕЕ, ARTS. Достаточно популярно создание так называемых пустых
экспертных систем, или "оболочек", - EXSYS, Ml и др., в которых можно
наполнять базы знаний, создавая различные системы.
Обучение и самообучение
Активно развивающаяся область искусственного интеллекта. Включает
модели, методы и алгоритмы, ориентированные на автоматическое
накопление знаний на основе анализа и обобщения данных. Включает
10
обучение по примерам (или индуктивное), а также традиционные подходы
распознавания образов.
Основные определения
Искусственный интеллект - это одно из направлений информатики,
цель которого разработка аппаратно-программных средств, позволяющих
пользователю-непрограммисту ставить и решать свои задачи, традиционно
считающиеся интеллектуальными, общаясь с ЭВМ на ограниченном
подмножестве естественного языка.
Искусственный интеллект (ИИ) - это научная дисциплина, возникшая
в 50-х годах на стыке кибернетики, лингвистики, психологии и
программирования.
С самого начала исследования в области ИИ пошли по двум
направлениям:
1)
Первое
(бионическое,
нейрокибернетика)
попытки
смоделировать с помощью искусственных систем психофизиологическую
деятельность человеческого мозга с целью создания искусственного разума.
2)
Второе (прагматическое, кибернетика черного ящика) - создание
аппаратно-программных средств, позволяющих с использованием ЭВМ
воспроизводить не саму мыслительную деятельность, а являющиеся ее
результатами процессы. Здесь достигнуты важные результаты, имеющие
практическую ценность. В дальнейшем речь будет идти об этом
направлении.
Разработка интеллектуальных программ существенно отличается от
обычного программирования и ведется путем построения системы
искусственного интеллекта (СИИ). Если обычная программа может быть
представлена в парадигме:
Программа = Алгоритм + Данные,
то для СИИ характерна другая парадигма:
СИИ = Знания + Стратегия обработки знаний.
Данные и знания
При изучении интеллектуальных систем традиционно возникает вопрос что же такое знания и чем они отличаются от обычных данных, десятилетиями
обрабатываемых ЭВМ. Можно предложить несколько рабочих определений, в
рамках которых это становится очевидным.
Данные - это отдельные факты, характеризующие объекты, процессы
и явления предметной области, а также их свойства.
При обработке на ЭВМ данные трансформируются, условно проходя
следующие этапы:
1. D1 - данные как результат измерений и наблюдений;
2. D2 - данные на материальных носителях информации (таблицы,
протоколы, справочники);
11
3. D3 - модели (структуры) данных в виде диаграмм, графиков, функций;
4. D4 - данные в компьютере на языке описания данных;
5. D5 - базы данных на машинных носителях информации.
Знания основаны на данных, полученных эмпирическим путем. Они
представляют собой результат мыслительной деятельности человека,
направленной на обобщение его опыта, полученного в результате практической
деятельности.
Знания - это закономерности предметной области (принципы, связи,
законы), полученные в результате практической деятельности и
профессионального опыта, позволяющие специалистам ставить и решать
задачи в этой области.
При обработке на ЭВМ знания трансформируются аналогично данным.
1. Z1 - знания в памяти человека как результат мышления;
2. Z2 - материальные носители знаний (учебники, методические
пособия);
3. Z3 - поле знаний - условное описание основных объектов
предметной области, их атрибутов и закономерностей, их связывающих;
4. Z4 - знания, описанные на языках представления знаний
(продукционные языки, семантические сети, фреймы - см. далее);
5. Z5 - база знаний на машинных носителях информации.
Часто используется такое определение знаний.
Знания - это хорошо структурированные данные, или данные о
данных, или метаданные.
В отличие от данных знания обладают следующими свойствами:
• внутренней интерпретируемостью - вместе с информацией в БЗ
представлены информационные структуры, позволяющие не только хранить
знания, но и использовать их;
• структурированностью - выполняется декомпозиция сложных
объектов на более простые и установление связей между ними;
• связанностью - отражаются закономерности относительно фактов,
процессов, явлений и причинно-следственные отношения между ними;
• активностью - знания предполагают целенаправленное использование
информации, способность управлять информационными процессами
по решению определенных задач.
Все эти свойства знаний в конечном итоге должны обеспечить
возможность СИИ моделировать рассуждения человека при решении
прикладных задач. Со знаниями тесно связано понятие процедуры получения
решений задач (стратегии обработки знаний). В системах обработки знаний
такую процедуру называют механизмом вывода, логическим выводом или
машиной вывода. Принципы построения механизма вывода в СИИ
определяются способом представления знаний и видом моделируемых
рассуждений.
Для организации взаимодействия с СИИ в ней должны быть средства
общения с пользователем, т. е. интерфейс. Интерфейс обеспечивает работу с
БЗ и механизмом вывода на языке достаточно высокого уровня,
12
приближенном к профессиональному языку специалистов в той прикладной
области, к которой относится СИИ. Кроме того, в функции интерфейса
входит поддержка диалога пользователя с системой, что дает пользователю
возможность получать объяснения действий системы, участвовать в поиске
решения задачи, пополнять и корректировать базу знаний. Таким образом,
основными частями систем, основанных на знаниях, являются:
1.База знаний.
2.Механизм вывода.
3.Интерфейс с пользователем.
Каждая из этих частей может быть устроена по-разному в различных
системах, отличия эти могут быть в деталях и в принципах. Однако для всех
СИИ характерно моделирование человеческих рассуждений. СИИ создаются
для того, чтобы овеществлять в рамках программно-технической системы
знания и умения, которыми обладают люди, чтобы решать задачи,
относящиеся к области творческой деятельности человека. Знания, на которые
опирается человек, решая ту или иную задачу, существенно разнородны. Это,
прежде всего:
ü понятийные знания (набор понятий и их взаимосвязи);
ü конструктивные знания (знания о структуре и взаимодействии частей
различных объектов);
ü процедурные знания (методы, алгоритмы и программы решения
различных задач);
ü фактографические
знания
(количественные
и
качественные
характеристики объектов, явлений и их элементов).
При решении задачи в конкретной области знания можно разделить на
следующие категории:
ü достоверные или объективные знания;
ü эвристические знания.
Достоверные знания формулируются в виде общих и строгих
суждений (законов, формул, алгоритмов и т. д.).
Эвристические знания основываются на собственном опыте
специалиста в данной предметной области. Именно эти знания играют
решающую роль в экспертных системах.
Знания также можно разделить на декларативные (факты) и
процедурные знания (знания для принятия решений).
Декларативные знания - это факты. Например, Иванов - студент;
земля - круглая. Декларативные знания отвечают на вопрос «знать что?».
Процедурные знания - это знания, которые формируются путем
логических рассуждений и по интуиции. Процедурные знания отвечают на
вопрос «знать как?».
Метазнания – знания о знаниях. Понятие «метазнания» указывает на
знания, касающиеся способов использования знаний и знания, касающиеся
13
свойств знаний. Это понятие необходимо для управления базой знаний и
логическим выводом; для обучения и т. п.
Использование традиционных языков программирования при
решении задач не позволяло отделить знания от прикладной программы.
Однако подобные методы затрудняли понимание, каким образом
используются знания, и какую роль они выполняют.
Особенность систем представления знаний заключается в том, что они
моделируют деятельность человека, осуществляемую часто в неформальном
виде. Модели представления знаний имеют дело с информацией,
получаемой от экспертов, которая часто носит качественный и
противоречивый характер. Для обработки с помощью ЭВМ такая
информация должна быть приведена к однозначному формализованному
виду
В системах, основанных на концепциях искусственного интеллекта
и инженерии знаний, такая проблема отсутствует. Знания в них
представлены в конкретной форме, а имеющаяся база знаний позволяет их
легко определять, модифицировать, пополнять.
Представление знаний
Одной из наиболее важных проблем является проблема
представления знаний. Это объясняется тем, что форма представления
знаний оказывает существенное влияние на характеристики и свойства
системы.
Представление знаний - это соглашение о том, как описывать реальный
мир.
В естественных и технических науках принят следующий традиционный
способ представления знаний. На естественном языке вводятся основные
понятия и отношения между ними. При этом используются ранее
определенные понятия и отношения, смысл которых уже известен. Далее
устанавливается соответствие между характеристиками (чаще всего
количественными) понятий знания и подходящей математической модели.
Основная цель представления знаний - строить математические
модели реального мира и его частей, для которых соответствие между
системой понятий проблемного знания может быть установлено на основе
совпадения имен переменных модели и имен понятий без предварительных
пояснений и установления дополнительных неформальных соответствий.
Представление знаний обычно выполняется в рамках той или иной системы
представления знаний.
Системой представления знаний (СПЗ) называют средства,
позволяющие:
14
ü описывать знания о предметной области с помощью языка
представления знаний;
ü организовывать хранение знаний в системе (накопление, анализ,
обобщение и организация структурированности знаний);
ü вводить новые знания и объединять их с имеющимися;
ü выводить новые знания из имеющихся;
ü находить требуемые знания;
ü устранять устаревшие знания;
ü проверять непротиворечивость накопленных знаний;
ü осуществлять интерфейс между пользователем и знаниями.
Центральное место в СПЗ занимает язык представления знаний (ЯПЗ). В
свою очередь, выразительные возможности ЯПЗ определяются лежащей в
основе ЯПЗ моделью представления знаний (иногда эти понятия
отождествляют).
Модели представления знаний
Модель представления знаний является формализмом, призванным
отобразить статические и динамические свойства предметной области, т.е.
отобразить объекты и отношения предметной области, связи между ними,
иерархию понятий предметной области и изменение отношений между
объектами. Существуют десятки моделей (или языков) представления знаний
для различных предметных областей. Большинство из них может быть сведено
к следующим классам:
ü продукционная модель (модель, основанная на использовании правил);
ü модель семантической сети;
ü фреймовая модель;
ü логическая модель;
ü модель, основанная на нечетких знаниях.
Системы искусственного интеллекта могут быть написаны на любом
языке программирования. Однако для них разработаны специальные
языки: Пролог, Лисп.
Продукционная модель представления знаний
Продукционная модель или модель, основанная на правилах, позволяет
представить знания в виде предложений типа
«Если (условие), то (действие)».
Под «условием» (антецедентом) понимается некоторое предложениеобразец, по которому осуществляется поиск в базе знаний, а под «действием»
(консеквентном) - действия, выполняемые при успешном исходе поиска (они
могут быть промежуточными, выступающими далее как условия и
терминальными или целевыми, завершающими работу системы).
Записываются эти правила обычно в виде ЕСЛИ А 1,А 2..А n ТО В.
15
Пример. Если горючая жидкость разлита, то вызовите пожарных.
Условия А1, А2...Аn обычно называют фактами. С помощью фактов
описывается текущее состояние предметной области. Факты могут быть
истинными, ложными либо, в общем случае, правдоподобными, когда
истинность факта допускается с некоторой степенью уверенности.
Действие В трактуется как добавление нового факта в описание
текущего состояния предметной области.
В упрощенном варианте описание предметной области с помощью
правил (продукций) базируется на следующих основных предположениях об
устройстве предметной области. ПО может быть описана в виде множества
фактов и множества правил.
Факты - это истинные высказывания (в естественном языке - это
повествовательные предложения) об объектах или явлениях предметной
области.
Правила описывают причинно-следственные связи между фактами (в
общем случае и между правилами тоже) - как истинность одних фактов влияет
на истинность других.
Такое представление предметной области является во многих случаях
достаточным, а вот соответствует ли оно действительному положению вещей,
зависит от точки зрения наблюдателя.
Структура продукционной системы
Описание предметной области нетрудно ввести в ЭВМ - для этого
достаточно снабдить его соответствующими средствами для хранения
множества фактов. Например, в виде базы фактов, для хранения правил,
например, в базе правил, и построить интерпретатор базы правил, который по
описанию текущего состояния предметной области в виде предъявленных ему
фактов осуществляет поиск выводимых из фактов заключений. На этой идее и
построены системы продукций. Типичная структура системы, основанной на
правилах, приведена на рис.1.
16
Рис.1 Структура продукционной системы
Продукционная система состоит из трех основных компонентов:
1) Набор правил, используемых как база знаний. Его называют базой
правил.
2) Рабочая память, в которой хранятся предпосылки, касающиеся
конкретных задач предметной области и результаты выводов,
полученных на их основании.
3) Механизм логического вывода, использующий правила в соответствии
с содержимым рабочей памяти.
Когда часть правила ЕСЛИ удовлетворяет фактам, то действие,
указанное в части ТО, выполняется. Механизм логического вывода
сопоставляет факты и части правил ЕСЛИ и выполняет то правило,
условная часть которого согласуется с фактами и заносит в рабочую
память этот образец.
Новые факты, добавленные в рабочую память, в дальнейшем сами
могут быть использованы для сопоставления с частями правил ЕСЛИ.
Каждый раз, набор правил проверяется относительно базы данных и
только одно правило, согласующиеся с данными, выполняется.
Механизм вывода включает в себя два компонента - один из них
реализует вывод, другой управляет этим процессом.
Компонент вывода просматривает имеющиеся правила и факты из
рабочей памяти и добавляет в последнюю новые факты при срабатывании
какого-либо правила.
В продукционных системах используются два основных способа
реализации механизма вывода:
1) Прямой вывод, или вывод от данных,
2) Обратный вывод, или вывод от цели.
В первом случае идут от известных данных (фактов) и на каждом шаге
вывода к этим фактам применяют все возможные правила, которые
порождают новые факты, и так до тех пор, пока не будет порожден факт-цель.
17
Для применения правила используется процесс сопоставления
известных фактов с правилами и, если факты согласуются с посылками в
правиле, то правило применяется.
Во втором случае вывод идет в обратном направлении - от поставленной
цели. Если цель согласуется с заключением правила, то посылку правила
принимают за подцель или гипотезу, и этот процесс повторяется до тех пор,
пока не будет получено совпадение подцели с известными фактами.
Рабочая память представляет собой информационную структуру для
хранения текущего состояния предметной области. Обмен информацией в
продукционной системе осуществляется через рабочую память. Например,
примеру, из одного правила нельзя переслать какие-либо данные
непосредственно в другое правило, минуя рабочую память. Состояние рабочей
памяти целиком определяет подмножество применимых на каждом шаге
вывода правил.
Достоинством применения правил продукций является их
модульность. Это позволяет легко добавлять и удалять знания в базе знаний.
Можно изменять любую из продукций, не затрагивая содержимого других
продукций.
Недостатки продукционных систем проявляются при большом числе
правил и связаны с возникновением непредсказуемых побочных эффектов
при изменении старых и добавлении новых правил. Кроме того, отмечают
также низкую эффективность обработки систем продукций и отсутствие
гибкости в логическом выводе.
Продукционная модель чаще всего применяется в промышленных
экспертных системах. Она привлекает разработчиков своей наглядностью,
высокой модульностью, легкостью внесения дополнений и изменений и
простотой механизма логического вывода.
Имеется большое число программных средств, реализующих
продукционный подход (язык OPS 5; «оболочки» или «пустые» ЭС - EXSYS
Professional, Kappa, ЭКСПЕРТ; ЭКО, инструментальные системы ПИЭС и
СПЭИС и др.), а также промышленных ЭС на его основе (например, ЭС,
созданных средствами G2) и др.
Семантические сети
Термин семантическая означает «смысловая», а сама семантика - это
наука, устанавливающая отношения между символами и объектами, которые
они обозначают, то есть наука, определяющая смысл знаков.
Семантическая сеть - это ориентированный граф, вершины которого понятия, а дуги - отношения между ними.
Семантические сети (СС) являются исторически первым классом
моделей представления знаний. Здесь структура знаний предметной области
формализуется в виде ориентированного графа с размеченными вершинами
18
и дугами. Вершины обозначают сущности и понятия предметной области, а
дуги - отношения между ними. Под сущностью понимают объект
произвольной природы. При этом объектам соответствуют вершины сети, а
отношениям – соединяющие их дуги.
В качестве понятий обычно выступают абстрактные или конкретные
объекты, а отношения - это связи типа: «это» («АКО — A-Kind-Of», «IS-A»),
«имеет частью» («has part»), «принадлежит», «любит». Характерной
особенностью семантических сетей является обязательное наличие трех
типов отношений:
ü класс - элемент класса (цветок - роза);
ü свойство - значение (цвет - желтый);
ü пример элемента класса (роза - чайная).
Классификация семантических сетей
Можно предложить несколько классификаций семантических сетей,
связанных с типами отношений между понятиями.
По количеству типов отношений:
ü Однородные (с единственным типом отношений).
ü Неоднородные (с различными типами отношений).
По типам отношений:
ü Бинарные (в которых отношения связывают два объекта).
ü N-арные (в которых есть специальные отношения, связывающие более
двух понятий).
Отношения в семантических сетях
Наиболее часто в семантических сетях используются следующие
отношения:
ü связи типа «часть - целое» («класс - подкласс», «элемент множество», и т. п.);
ü функциональные
связи
(определяемые
обычно
глаголами
производит», «влияет» и.т.д.);
ü количественные связи (больше, меньше, равно и.т.д.);
ü пространственные связи (далеко от, близко от, за, под, над и.т.д.);
ü временные связи (раньше, позже, в течение и.т.д.);
ü атрибутивные связи (иметь свойство, иметь значение);
ü логические связи (И, ИЛИ, НЕ);
19
ü лингвистические связи.
Отношение «часть-целое» также как и отношение IS-A
устанавливает свойство иерархии наследования сети. Это экономит
память, так как информацию о сходных вершинах не надо повторять
каждой вершине. Вместо этого информация может размещаться в
центральной вершине сети. При расширении семантической сети в ней
возникают другие отношения.
Проблема поиска решения в базе знаний типа семантической сети сводится
к задаче поиска фрагмента сети, соответствующего некоторой подсети,
отражающей поставленный запрос к базе.
На рис 2 изображена семантическая сеть. В качестве вершин тут
выступают понятия «человек», «Петров», «Волга», «автомобиль», «вид
транспорта» и «двигатель».
Рис 2 Пример семантической сети
Данная модель представления знаний была предложена американским
психологом Куиллианом. По современным представлениям ученых данная
модель представления знаний более других соответствует современным
представлениям об организации долговременной памяти человека.
Достоинством семантических сетей как модели представления знаний
является наглядность описания предметной области, гибкость, адаптивность.
Однако свойство наглядности с увеличением размеров и усложнением
связей базы знаний предметной области теряется.
Недостатком этой модели является сложность организации процедуры
поиска вывода на семантической сети. Кроме того, возникают значительные
сложности по обработке различного рода исключений.
В чистом виде семантические сети на практике почти не используются.
При построении СИИ с использованием семантических сетей обычно либо
накладывают ограничения на типы объектов и отношений (примером таких
20
сетей являются функциональные сети), либо расширяют семантическую сеть
специальными средствами для более эффективной организации вычислений.
Для реализации семантических сетей существуют специальные сетевые
языки, например NET, язык реализации систем SIMER+MIR и др. Широко
известны экспертные системы, использующие семантические сети в качестве
языка представления знаний - PROSPECTOR, CASNET, TORUS.
Фреймовая модель представления знаний
Понятие фрейма
В основе теории фреймов лежит восприятие фактов посредством
сопоставления полученной извне информации с конкретными элементами
и значениями, а также с рамками определенными для каждого
концептуального объекта в нашей памяти.
Фрейм был предложен Марвелом Минским в 70-е годы.
Важным моментом теории фреймов является понимание фрейма структуры данных для представления некоторого концептуального
объекта. Каждый фрейм описывает один концептуальный объект, а
конкретное свойство этого объекта и факты, относящиеся к нему,
описываются в слотах - структурных элементах данного фрейма.
Фреймом называется структура для описания стереотипной
ситуации, состоящая из характеристик этой ситуации и их значений.
Характеристики называют слотами.
Пример фрейма приведен на рисунке 3.
Должность
Руководит
ель
отдела
Специально
Менеджер
сть
Ф.И.О.
Дата
рождения
Домашний
адрес
Оклад
Рис 3. Пустой фрейм
21
Различают фреймы - образцы, или прототипы, хранящиеся в базе
знаний, и фреймы - экземпляры, которые создаются для отображения
реальных фактических ситуаций на основе поступающих знаний. Модель
фрейма является достаточно универсальной, поскольку позволяет
отобразить все многообразие знаний о мире через:
ü фреймы - структуры, использующиеся для обозначения объектов и
понятий (заем, залог, вексель);
ü фреймы - роли (менеджер, кассир, клиент);
ü фреймы - сценарии (тревога, авария, рабочий режим устройства).
Структура фрейма
Структура фрейма может быть представлена следующим образом:
Имя фрейма, (имя первого слота: значение 1-го слота),
……………………………………………
(имя n-го слота: значение n-го слота).
Ту же запись можно представить в виде таблицы (табл. 1).
22
Таблица 1
Структура фрейма
Имя
Слота
Значе
ние слота
Демо
Указат
ель
н
наследования
Слот 1
…………
…..
…………
…..
Слот n
Имя фрейма - идентификатор, присваиваемый фрейму.
Фрейм должен иметь имя единственное (уникальное) в данной
фреймовой системе. Каждый фрейм должен состоять из произвольного
числа слотов, причем несколько из них определяются системой для
выполнения специальных функций, остальные определяются
пользователем.
Имя слота - идентификатор, присваиваемый слоту. Слот должен
иметь уникальное имя во фрейме. Имя слота не несет смысловой нагрузки
кроме специфических: IS-A; DDESENDANTS (указатель дочернего
фрейма) и др.., а также системных слотов, используемых при управлении
выводом.
Указатель наследования показывает, какую информацию об
атрибутах слотов во фрейме верхнего уровня наследуют слоты с такими же
именами во фрейме нижнего уровня. Типичные указатели наследования: U
(уникальный), S (такой же), R (установление границ).
Демон - процедура, автоматически запускаемая при появлении
запроса или обновлении информации в структуре.
23
1) IF-ADDED (если добавлено). Он запускается, когда новая информация
поступает в слот.
2) IF-REMOVED (если удалено). Запускается при стирании значения
слота.
3) IF-NEEDED (если нужно). Запускается, если в момент обращения к
слоту его значение не было установлено.
Фреймовая система
Совокупность фреймов, моделирующая какую либо предметную
область, представляет собой иерархическую структуру, в которой фреймы
соединяются с помощью родовидовых связей.
На верхнем уровне иерархии находится фрейм, содержащий
наиболее общую информацию, истинную для всех остальных фреймов.
Пример фреймовой системы приведен на рис. 4.
человек
I
S-A
Млекопит
ающее
У
мыслить
меет
ребенок
I
S-A
В
озраст
Л
юбит
Ч
еловек
0
– 16
С
ладкое
ученик
I
S-A
В
озраст
У
чится
Р
ебенок
6
– 17
В
школе
Рис. 4. Пример фреймовой системы
24
В одной системе различные фреймы могут иметь общие слоты.
Благодаря этому возможно связывание информации полученной с
различных точек зрения. Несколько слотов одного фрейма обычно заранее
определяются значениями по умолчанию.
Свойства фреймов
Рассмотрим основные свойства фреймов:
1) Иерархическая структура.
Фрейм обычно представляется в виде классификационной
иерархической структуры, приведенной на рис. 5.
Рис 5 Иерархическая структура фрейма
Особенность такой структуры заключается в том, что информация о
слотах, которую содержит фрейм верхнего уровня, используется всеми
фреймами нижних уровней.
2) Межфреймовые сети.
Осуществление выводов во фреймовой системе возможно благодаря
соединению в межфреймовые сети фреймов, описывающих объекты с
небольшими различиями, указателями различия (рис. 6).
25
Рис 6 Пример межфреймовой сети
3) Значение по умолчанию.
Фреймы обладают способностью наследовать значения слотов своих
родителей, находящихся на более высоком уровне иерархии. Наследование
свойств может быть частичным, тогда он должен быть указан в своем
собственном фрейме. Значения слотов могут передаваться по умолчанию
фреймам, находящимся ниже в иерархии.
4) Отношения «абстрактное – конкретное» и «целое - часть».
Отношения «абстрактное – конкретное» характерны тем, что на
верхних уровнях иерархии расположены абстрактные объекты, на нижних
конкретные. Это отношения называются отношениями типа “IS-A” или
“KIND OF”. Они имеют частое практическое применение. Отношение
«целое - часть» касается структурированных объектов и показывает, что
объект нижнего уровня является частью объекта верхнего уровня. Это
отношение применяется в САПР.
Во фреймовых системах используется три способа управления
выводом: два с помощью присоединенных процедур – демона и служебной
процедуры (или метода) и один – с помощью механизма наследования.
Основными преимуществами фреймов, как модели представления
знаний являются:
1. Гибкость, т. е. структурное описание сложных объектов.
2. Наглядность, т. е. данные о родовидовых связях хранятся явно.
3. Значение может быть вычислено с помощью процедур или найдено
эвристическими методами.
Примечание
Эвристика (Heuristics) - прием решения задачи, основанный не на
строгих математических моделях и алгоритмах, а на соображениях,
восходящих к "здравому смыслу". Как правило, эвристика отражает
особенности того, как такие задачи решает человек, когда он не
пользуется строго формальными приемами. Если эти человеческие
способы решения удается запрограммировать, то такие программы
называются эвристическими. Эвристики часто используются при
26
программировании игр, имитации творческих процессов и т.п. В
экспертных системах при формализации профессиональных знаний
человека, касающихся способов решения задач в той или иной проблемной
области, широко применяются те эвристики, которыми
руководствуются профессионалы-эксперты
Недостатками фреймовой системы являются:
1. Высокая сложность систем в целом.
2. Трудно внести изменение в иерархию.
3. Затруднена обработка исключений.
Специальные языки представления знаний в сетях фреймов FRL (Frame
Representation Language), KRL (Knowledge Representation Language),
фреймовая «оболочка» Kappa и другие программные средства позволяют
эффективно строить промышленные ЭС. Широко известны такие фрейм ориентированные экспертные системы, как ANALYST, МОДИС, TRISTAN,
ALTERID.
Логическая модель представления знаний
В основе логических систем представления знаний лежит понятие
формальной логической системы. Оно является также одним из
основополагающих понятий формализации.
27
Основные идеи формализации
1. Вводится множество базовых элементов (алфавит) теории.
2. Определяются правила построения правильных объектов (предложений)
из базовых элементов.
3. Часть объектов объявляется изначально заданными и правильными по
определению – аксиомами.
4. Задаются правила построения новых объектов из других правильных
объектов системы (правила вывода).
Данная схема лежит в основе построения многих дедуктивных СИИ. В
соответствии с ней база знаний описывается в виде предложений и аксиом
теории, а механизм вывода реализует правила построения новых
предложений из имеющихся в базе знаний. На вход СИИ поступает описание
задачи на языке этой теории в виде запроса (предложения, теоремы), которое
явно не представлено в БЗ, но если оно верно с позиций заложенных в БЗ
знаний и не противоречит им, то может быть построено из объектов БЗ путем
применения правил вывода.
Процесс работы механизма вывода называют доказательствам
запроса (теоремы). Если запомнить шаги процесса вывода в виде трассы и
представить ее пользователю, то она будет объяснением выработанного СИИ
решения задачи.
Формальные языки, на которых записываются предложения (формулы)
с использованием рассмотренных понятий, получили названия логических
языков. С практической и теоретической точек зрения наиболее важными и
изученными являются язык логики высказываний и язык логики предикатов.
В языке логики высказываний элементарные предложения рассматриваются
как неделимые сущности, в языке логики предикатов, наоборот, делается
расчленение предложения на субъект и предикат.
В процессе математизации рассуждений различают два вида слов:
ü термы - аналоги имен существительных
ü формулы - аналоги повествовательных предложений
Для записи предложений используются стандартные формы
высказываний, что даёт возможность, с одной стороны, стандартизовать
рассуждения, т е. рассматривать только определённые структуры посылок и
заключений, а с другой - ввести в термы переменные - именные формы,
которые обращаются в имена после подстановки вместо переменных
конкретных значений
Формулы с переменными, обращающиеся в высказывания при
подстановке вместо переменных значений, называют высказывателъными
формами или переменными высказываниями. Одна форма порождает
множество истинных или ложных высказываний
Однако не все предложения, содержащие переменные, являются
высказывательными формами. Различают связанные и свободные
переменные. Так, сложные предложения с переменными, содержащие
28
логические связки СУЩЕСТВУЕТ или ВСЕ, обозначают высказывания, а
переменные, к которым они относятся, являются связанными.
Расчленение предложения на субъект и предикат в математической
логике математизируется путем соотнесения предложения, выражающего
свойства предмета, с функцией одной переменной Р(х). При этом сама
функция Р - логическая функция одной переменной, т. е. одноместный
предикат, а аргумент х - субъект.
Если же предложение описывает отношение между несколькими (n)
субъектами, то с ним можно связать n-местную логическую функцию Р(х1
,х2...хn) - n-местный предикат.
Логические связки «И», «ИЛИ», «НЕ» и т. д., с помощью которых
строятся сложные предложения (формулы), соотносятся с операциями
логики следующим образом:
НЕВЕРНО ЧТО - ¬ (знак отрицания);
И - ˆ (знак конъюнкции);
ИЛИ - ˇ (знак дизъюнкции);
ЕСЛИ... ТО → (знак импликации);
ТОГДА, КОГДА— <=> ( знак эквивалентности).
Логические связки «ДЛЯ ВСЯКОГО», «СУЩЕСТВУЕТ» относятся к
переменным в предложении и обозначают:
ДЛЯ ВСЯКОГО - ∀ (знак квантора общности);
СУЩЕСТВУЕТ - ∃ (знак квантора существования).
В различных логических системах используются разнообразные
правила вывода. Приведем два наиболее распространенных из них.
Первое - «правило подстановки» имеет следующую формулировку. В
формулу, которая уже выведена, можно вместо некоторого высказывания
подставить любое другое при соблюдении условия: подстановка должна быть
сделана во всех местах вхождения заменяемого высказывания в данную
формулу.
Второе - «правило заключения» (латинское название Modus Ponens положительный модус) состоит в следующем: Если α и α→β являются
истинными высказываниями посылками, тогда и заключение β также истина.
1.
2.
3.
4.
5.
6.
Рассмотрим следующий пример.
Пусть имеются следующие истинные высказывания.
Если самолет проверен и заправлен, то он готов к вылету.
Если самолет готов к вылету и дано разрешение на взлет, то он либо
взлетел, либо находится на взлётной полосе.
Если самолет взлетел, то он выполняет рейс.
Самолет ЯК-42 проверен и заправлен
Самолет ТУ-134 проверен.
Самолет ИЛ-62 заправлен.
29
7. Самолету ЯК-42 дано разрешение на вылет.
8. Самолет ЯК-42 не находится на взлетной полосе.
Требуется найти, какой из самолетов в момент времени Т выполняет
рейс. Проведем анализ данных высказываний Высказывания 1, 2,3
являются сложными и построены с использованием логических связок →
(импликация), ˆ (И).
Во всех элементарных высказываниях, из которых построены
предложения 1, 2, 3, субъектом является понятие «самолет»; предикатами
выступают
сказуемые,
описывающие
свойства
всех
объектов,
принадлежащих классу «самолет». Высказывания 4-8 являются фактами,
истинными на момент времени Т. Они являются элементарными
высказываниями, описывающими свойства конкретных объектов предметной
области.
Для формального описания задачи введем следующие одноместные
предикаты:
ПРОВЕРЕН(Х) - самолет X проверен;
ЗАПРАВЛЕН(Х) - самолет X заправлен;
ГОТОВ(Х) - самолет X готов к вылету,
ДАНО_РАЗР(Х) - самолету X дано разрешение на вылет;
ВЗЛЕТЕЛ(Х) - самолет X взлетел,
НАХ_ВЗП(Х) - самолет X находится на взлетной полосе;
НЕ_НАХ_ВЗП(Х) - самолет X не находится на взлетной полосе,
ВЫП_РЕЙС(Х) - самолет X выполняет рейс.
Тогда исходное описание на языке логики предикатов будет иметь вид:
1. ∀ Х(ПРОВЕРЕН(Х) ˆ ЗАПРАВЛЕН(Х) →ГОТОВ(Х)).
2. ∀ Х(ГОТОВ(Х) ^
ДАНО_РАЗР(Х)
^
НЕ_НАХ_ВЗП(Х)
→
ВЗЛЕТЕЛ(Х)).
3. ∀ Х(ГОТОВ(Х)
^
ДАНО_РАЗР(Х)
^
НЕ_ВЗЛЕТЕЛ(Х)
→
НАХ_ВЗП(Х)).
4. ∀ Х(ВЗЛЕТЕЛ(Х) → ВЫП_РЕЙС(Х)).
5. ПРОВЕРЕН(ЯК-42).
6. ЗАПРАВЛЕН(ЯК-42).
7. ПРОВЕРЕН(ТУ-134).
8. ЗАПРАВЛЕН(ИЛ-62).
9. ДАНО_РАЗР(ЯК-42).
10.НЕ_НАХ_ВЗП(ЯК-42).
Предложения 1-4, хотя и содержат переменную, являются
высказываниями - переменная X связана квантором общности ∀ . В
30
дальнейшем квантор писать не будем, так как он присутствует во всех
предложениях.
Чтобы найти, какой из самолетов в момент времени Т выполняет рейс,
подготовим запрос вида: М=>ВЫП_PEЙC(Z),
где М — множество предложений 1-10.
Вывод запроса можно представить следующей последовательностью
шагов:
Шаг 1
Применив к предложению 1 подстановку Х=ЯК-42, получим
заключение
ПРОВЕРЕН(ЯК-42) ^ ЗАПРАВЛЕН(ЯК-42) → ГОТОВ(ЯК-42).
Шаг 2
Первая посылка: объединив предложения 5 и 6, получим
ПРОВЕРЕН(ЯК-42) ^ ЗАПРАВЛЕН(ЯК-42).
Вторая посылка: заключение шага 1:
ПРОВЕРЕН(ЯК-42) ^ ЗАПРАВЛЕН(ЯК-42) → ГОТОВ(ЯК-42).
Применив правило Modus Ponens
α ,α → β
β
для α =(ПРОВЕРЕН (ЯК-42) ^ ЗАПРАВЛЕН(ЯК-42)) и β = ГОТОВ(ЯК42), получим следующее заключение: ГОТОВ(ЯК-42).
Шаг 3
Первая посылка: объединив заключение шага 2, предложения 9 и 10,
получим: ГОТОВ(ЯК-42) ^ ДАНО_РАЗР(ЯК-42) ^ НЕ_НАХ_ВЗП(ЯК-42).
Вторая посылка: применив к правилу 2 подстановку Х=ЯК-42, получим
ГОТОВ(ЯК-42)
^
ДАНО_РАЗР(ЯК-42)
^
НЕ_НАХ_ВЗП(ЯК-42)
→ВЗЛЕТЕЛ(ЯК-42)
Применив правило Modus Ponens, получим заключение ВЗЛЕТЕЛ(ЯК42).
Шаг 4.
Первая посылка: заключение шага 3 - ВЗЛЕТЕЛ(ЯК-42).
Вторая посылка: применив к правилу 4 подстановку Х=ЯК-42, получим
ВЗЛЕТЕЛ(ЯК-42) → ВЫП_РЕЙС(ЯК-42).
Применив
правило
Modus
Ponens,
получим
заключение
ВЫП_РЕЙС(ЯК-42). Таким образом, в момент времени Т рейс выполняет
самолет ЯК-42. Остальные подстановки, например Х=ИЛ-62, приводят к
тупиковым ситуациям. Логический вывод выполнялся нами в прямом
направлении, при этом в процессе вывода трижды использовалось правило
заключения.
31
Модель, основанная на нечетких знаниях
Основы теории нечетких множеств
Нечеткие знания
Знания не всегда могут быть описаны точно - часто встречаются так
называемые "нечеткие" знания. При попытке формализовать человеческие
знания исследователи вскоре столкнулись с проблемой, затруднявшей
использование традиционного математического аппарата для их описания.
Существует целый класс описаний, оперирующих качественными
характеристиками объектов: много, мало, сильный, очень сильный и т.п. Эти
характеристики обычно размыты и не могут быть однозначно
интерпретированы, однако содержат важную информацию, например,
"Одним из возможных признаков клещевого энцефалита является высокая
температура".
Кроме того, в задачах, решаемых интеллектуальными системами, часто
приходится пользоваться неточными знаниями, которые не могут быть
интерпретированы как полностью истинные или ложные. Существуют
знания, достоверность которых выражается некоторой промежуточной
цифрой, например 0,7.
Основные понятия нечетких множеств
Для представления размытых (нечетких) знаний в начале 70-х
американский математик Лофти Заде предложил формальный аппарат
нечеткой алгебры и нечеткой логики (L.A.Zadeh, Fuzzy Sets, Information and
Control, 8(1965) 338-353).
В основе теории Л. Заде лежит субъективный факт - субъективные
представления о цели всегда нечетки. Но он делает и следующий шаг полагает, что все оценки субъекта и ограничения, с которыми он работает,
так же, как правило, нечетки, а иногда и вообще лишены в своем начальном
виде количественных характеристик. Л. Заде ввел одно из главных понятий в
нечеткой логике - понятие лингвистической переменной.
Лингвистическая переменная - переменная, значение которой
определяется набором словесных характеристик некоторого свойства.
Например, лингвистическая переменная "скорость" определяется через набор
{очень маленькая; низкая; средняя; высокая; очень высокая}.
32
Значение лингвистической переменной определяются через нечеткие
множества, которые в свою очередь определены на некотором базовом
множестве значений или базовой числовой шкале, имеющей размерность.
Каждое значение лингвистической переменной определяется как нечеткое
множество.
Пусть X - непустое множество. Нечеткое множество A в X
характеризуется его функцией принадлежности (1).
µА: X→Х[0;1]
(1)
и µА интерпретируется как степень принадлежности элемента x
нечеткому множеству A для каждого x∈X. Таким образом, нечеткое
множество B –совокупность пар вида ( x, µ ( x)), где x ∈ B .
Функция принадлежности определяет субъективную степень
уверенности эксперта в том, что данное конкретное значение базовой шкалы
соответствует определяемому нечеткому множеству.
Функция
принадлежности
интерпретируется
как
степень
принадлежности элемента X нечеткому множеству A для любого x∈X.
Если X={x1,…xn} есть конечное множество и A - нечеткое множество в
X, тогда мы используем запись A= µ1/x1+µ2/x2 +…+µn/xn.
Где член µi/xi, i=1,...n означает, что µi есть степень принадлежности xi в
A и знак суммы представляет объединение.
Пример 1. Предположим, что мы хотим определить множество
натуральных чисел «близких к единице». Это может быть выражено
следующим образом: A=0,0/-2+0,3/-1+0,6/0+1/1+0,6/2+0,3/3+0,0/4.)
Графически множество натуральных чисел «близких к единице»
представлено на рис. 7.
1
-2
-1
0
1
2
3
4
Рис. 7. Дискретная функция принадлежности для «х близко к 1»
Пример 2.
Функция принадлежности нечеткого множества действительных чисел
«близких к 1» может быть определена как A(t)=exp(-β(t-1)2), где βположительное действительное число (рис. 8).
33
1
-2
•
-1
1
3
4
Рис. 8. Непрерывная функция принадлежности для «х близко к
1».
•
•
Пример 3. Предположим, что покупатель желает купить дешевый
автомобиль (рис. 9). «Дешевый» может быть представлено как нечеткое
множество на универсуме цен и зависит от кошелька покупателя. Например,
«дешевый автомобиль» приблизительно интерпретируется следующим
образом:
•
Ниже 100000 руб. автомобиль считается дешевым и различие цен
на покупательский взгляд несущественно.
•
Между 100000 и 200000 руб. изменение в цене склоняет к
нерешительному предпочтению в пользу более дешевого автомобиля.
•
Между 200000 и 300000 руб. малые отклонения в цене выглядят
явно предпочтительнее в пользу более дешевого автомобиля.
•
Выше 300000 руб. стоимость слишком высока.
•
Рис. 9. Функция принадлежности “дешевый автомобиль”
•
•
Нечеткое подмножество A классического множества X
называется нормальным, если существует x∈X такой, что A(x)=1.
•
Во многих случаях люди могут охарактеризовать численную
информацию только приблизительно. Например, человек использует такие
выражения, как «около 5000», «близко к нулю», «существенно больше 5000».
Это примеры того, что называют нечеткими числами. Используя теорию
34
нечетких множеств, мы можем представить такие нечеткие числа как
нечеткие подмножества множества действительных чисел.
•
Нечеткое множество A называется триангулярным нечетким
числом с вершиной (или центром) a, шириной слева α > 0 и шириной
справа α > 0, если его функция принадлежности имеет следующий вид:
•
•
1 − (a − t ) , a − α ≤ t ≤ a
α

1 − (t − a )
A(t ) = 
, a <t ≤α +β
.
β

t < a −α, t > a + β
0,

Триангулярное нечеткое число с центром a можно понимать как
1
a-α
a
a+β
нечеткую величину «x приблизительно равен a» (рис. 10).
•
Рис. 10. Триангулярное нечеткое число
•
•
Нечеткое множество A называется трапецеидальным нечетким
числом с интервалом допуска [a,b], левой шириной α и правой шириной β,
если его функция принадлежности имеет вид:
1 − (a − t ) ,
α

1,

A(t ) = 
1 − (t − b) ,
β

0,
a −α ≤t < a
a≤t ≤b
b<t ≤b+ β
t < a − α, t > b + β
.
•
•
Трапецеидальное нечеткое число можно понимать как нечеткую
величину «x приблизительно находится в интервале [a,b] » (рис. 11).
35
1
а-α
а
b
b+β
•
Рис.
11.
Трапецеидальное нечеткое число
•
Пусть A и B –нечеткие подмножества классического множества X. Мы
A
B
говорим, что A есть подмножество B, если A(t) ≤ B(t), ∀ t∈ X (Рис. 12).
Рис. 12. A есть подмножество B
•
•
Пусть A – нечеткое число. Если sup(A)={x0}, то A называется
нечеткой точкой, и мы используем обозначение A =x0.
•
•
Расширим операции над классическими множествами из теории
обычных множеств на нечеткие множества. Все эти операции, которые
являются расширением четких понятий, сводятся к их обычному пониманию,
когда нечеткие подмножества имеют степени принадлежности из {0,1}.
Поэтому, распространяя операции на нечеткие множества, мы используем те
же символы, что и в теории множеств.
•
Пусть A и B – нечеткие подмножества непустого (четкого)
множества X. Пересечение A и B определяется следующим образом (рис.13):
•
(A∩Β)(t)=min{ A(t), Β(t) }= A(t)∧Β(t), ∀ t∈ X.
•
•
Пример 4. Пусть A и B - нечеткие подмножества X={-2,1,0,1,2,3,4}.
•
A=0.6/-2+0.3/-1+0.6/0+1.0/1+0.6/2+0.3/3+0.4/4.
B=0.1/-2+0.3/1+0.9/0+1.0/1+1.0/2+0.3/3+0.2/4.
36
•
Тогда A∩Β имеет
1+0.6/0+1.0/1+0.6/2+0.3/3+0.2/4.
следующий
вид:
A∩Β=0.1/-2+0.3/-
Рис. 13. Пересечение двух триангулярных нечетких чисел.
•
•
Объединение A и B определяется как (рис.14)
•
(A∪Β)(t)=max{ A(t), Β(t) }= A(t)∨ Β(t) ∀ t∈ X.
•
Пример 5. Пусть A и B –нечеткие подмножества X={-2,1,0,1,2,3,4}.
•
A=0.6/-2+0.3/-1+0.6/0+1.0/1+0.6/2+0.3/3+0.4/4.
B=0.1/-2+0.3/1+0.9/0+1.0/1+1.0/2+0.3/3+0.2/4.
•
Тогда A∪Β имеет следующий вид: A∪Β=0.6/-2+0.3/1+0.9/0+1.0/1+1.0/2+0.3/3+0.4/4.
•
Рис. 14. Объединение двух триангулярных нечетких чисел
•
•
Дополнение нечеткого множества A определяется
¬
( A)(t)=1- A(t).
как
Для операций с нечеткими знаниями, выраженными при помощи
лингвистических переменных, существует много различных способов. Эти
способы являются в основном эвристиками. Усиление или ослабление
лингвистических
понятий
достигается
введением
специальных
квантификаторов. Для вывода на нечетких множествах используются
специальные отношения и операции над ними.
37
Нечеткие импликации
Рассмотрим утверждение импликации «если давление высокое, то
объем малый».
Функция принадлежности нечеткого множества A «большое давление»,
показанная на рисунке 15, может быть интерпретирована как
 1, если u ≥ 5

A(u ) =  1 − (5 − u ) / 4, если 1 ≤ u < 5
 0, если u > 1

.
а) 1 входит в нечеткое множество «большое давление» со
принадлежности 0.
б) 2 входит в нечеткое множество «большое давление» со
принадлежности 0,25.
в) 4 входит в нечеткое множество «большое давление» со
принадлежности 0,75.
г) u≥5 входит в нечеткое множество «большое давление» со
принадлежности 1.
степенью
степенью
степенью
степенью
1
1
5
Рис. 15. Функция принадлежности нечеткого множества «большое
давление»
Функция принадлежности нечеткого множества B «малый объем»
показана на рисунке 16 и может быть интерпретирована как
1, если v ≤ 1

B(V ) = 1 − (v − 1) / 4, если 1 < v < 5
0, если v ≥ 5

.
а) 5 входит в нечеткое множество
принадлежности 0.
б) 4 входит в нечеткое множество
принадлежности 0,25.
в) 2 входит в нечеткое множество
принадлежности 0,75.
г) 1 входит в нечеткое множество
принадлежности 1, для всех v≤1.
«большое давление» со степенью
«большое давление» со степенью
«большое давление» со степенью
«большое давление» со степенью
38
1
1
5
Рис. 16. Функция принадлежности нечеткого множества «малый
объем».
Если p - логическое высказывание вида «x есть A», где A - нечеткое
множество, например «большое давление», и g есть пропозиция вида «y есть
B», где B - нечеткое множество, например «малый объем», то мы определяем
нечеткую импликацию A→B как нечеткое отношение.
(A→B)(u,v) зависит только от A(u) и B(v). То есть (A→B)(u,v)=I(A(u),
B(v))=A(u) →B(v).
В этой интерпретации A(u) рассматривается как значение истинности
пропозиции «u -большое давление», и B(v) рассматривается как значение
истинности пропозиции «v-малый объем», то есть
«u -большое давление» →«v-малый объем» ≡ A(u) →B(v).
Более главное расширение оператора материальной импликации может
быть получено в виде:
A(u ) ≤ B(v)
1,
.
A(u ) → B(v) = 
B (v), A(u ) > B(v)
Этот оператор называется импликацией Гёделя.
Другой возможностью является расширение первоначального
определения p → g = ¬( p ∨ g ) . Так как нечеткая импликация может быть
записана в виде A(u)→B(v)=max{1 - A(u), B(v)}. Этот оператор называется
импликацией Клини-Динса.
Часто на практике используют оператор импликации Мамдани, для
того чтобы моделировать причинные отношения между нечеткими
переменными. Этот оператор выбирает наименьшее из значений истинности
предикатов: A→B=min{A(u), B(v)}. Легко видеть, что это расширение
материальной импликации некорректно, потому что 0→0 дает ноль. Однако в
прикладных системах искусственного интеллекта обычно не интересуются
правилами, в которых априорная часть ложная.
39
Операторы импликаций
A(u ) ≤ B(v)
1,
.
 B(v), A(u ) > B(v)
Импликацией Гёделя: A(u ) → B(v) = 
Импликация Клини-Динса: A(u)→B(v)=max{1 - A(u), B(v)}.
Импликация Ларсена: A(u ) → B(v) = A(u ) × B(v) .
Импликация Лукасевича: A(u ) → B(v) = min(1,1 − A(u) + B(v)) .
Импликация Мамдани: A(u ) → B(v ) = min( A(u ), B(v)) .
1,
Импликация Гайнеса A(u ) → B(v) =  B(v)
 A(u ) ,

A(u ) ≤ B(v)
A(u ) > B (v)
.
Модификаторы
Пусть A – нечеткое множество в X. Тогда мы можем определить
нечеткие множества «очень A» и «более или менее A» следующим образом
(очень А)( х) = А( х) 2 , (не очень А)( х) = А( х) .
Использование нечетких множеств дает основу для метода
манипуляции неопределенными и неточными понятиями.
В частности, мы можем применить нечеткие множества для
представления лингвистических переменных.
На рис.17 показано изменение нечеткого множества «высокий человек»
с помощью модификаторов: «очень высокий человек», «не очень высокий
человек».
1
1
160
180
Очень высокий человек
160
180
Не очень высокий человек
Рис. 17. Применение модификаторов
Лингвистические переменные могут рассматриваться или как
переменные, значения которых являются нечеткими числами или как
переменные, значения которых определяется в лингвистических термах.
Таким образом, лингвистические переменные характеризуются
пятеркой (x, T(x),U,G,M) в которой
x- имя переменной;
40
T(x) - множество термов x, те есть множество имен лингвистических
переменных величин x, каждое значение которой есть нечеткое число,
определенное на U;
G- синтаксическое правило для выработки имен величин x;
M- семантическое правило для связывания каждой величины с её
смыслом.
Пример 6.
Лингвистическая переменная «Скорость» может быть определена через
множество термов:
T(скорость)={медленно, умеренно, быстро}, где каждый терм
характеризуется нечетким множеством в множестве U=[0,100].
Можно интерпретировать «медленно» как «скорость менее 40
километров в час»; «умеренно» как «скорость близкая к 55 километров в
час»; и «быстро» как «скорость более 70 километров в час».
Эти термы определяются через нечеткие множества, функции
принадлежности которых показаны на рисунке 18.
медленно
умеренно
быстро
1
40
55
70
км
ч
Рис. 18. Лингвистическая переменная «скорость».
Теория приближенных рассуждений
Теория приближенных рассуждений была создана Лофти Заде в 1979
году. Это теория дает мощный инструмент для реализации логического
вывода при нечеткой и неопределенной информации. Центральной идеей
этой теории является представления логических высказываний в виде
утверждений, приписывающих переменным в качестве значения нечеткие
множества.
Пусть x и y – лингвистические переменные, например «x- высокий» и
«y - маленький». Основная задача приближенного рассуждения - найти
функцию принадлежности следствия С по базе правил (N1,…Nn) и факту A:
41
если
x есть
А1 , то
y
есть C1
также
N 2 если
x есть
А2 , то
y
есть C 2
N1
................................................................................
также
N n если
.
x есть
Аn , то
y
есть C n
_________________________________________
факт x есть А
следствие
y
есть С
В нечеткой логике и приближенном рассуждении наиболее важное
правило вывода нечеткой импликации - это Обобщенный Модус Поненс
(ОМП).
Классическое правило вывода Modus Ponens гласит:
Посылка если p, то q
Факт
p
Следствие
q.
Это правило вывода может быть интерпретировано так: если (p→ q)
истинно и p-истинно, то q- истинно.
Вывод нечеткой импликации основан на композиционном правиле
вывода для приближенного рассуждения, предложенного Заде.
Композиционное правило вывода
Посылка если x есть A, то y есть B
Факт
x есть A′
следствие
y есть B′,
где B′ определяется как композиция факта и оператора нечеткой
импликации:
B′ = A′ o ( A → B), то есть B′(v) = sup min{ A′(u ), ( A → B)(u , V )}, v ∈V
u ∈U
Механизмы нечеткого рассуждения
Пусть необходимо получить вывод по следующей базе правил из
известного факта:
42
если
x есть
А1
и
y есть B1 , то
также
N 2 если
x есть
А2
и
y
N1
есть B2 , то
z
z
есть C1
есть C 2
................................................................................
также
N n если
,
x есть
Аn
и
y
есть Bn , то
z есть Cn
_________________________________________
факт
x есть x0
и
есть
y
y0
следствие z есть С
Здесь
Ni
если
нечеткое
i-ое
x есть
Аi
и
y
помощью
правило
есть Bi , то
из
z
этой
есть Ci
нечеткой
R( x, y, z ) = ( A × B → C )(( x, y ), z ) = [A( x) ∧ B( y )] → C ( z ), для i = 1, n .
базы
правил:
реализуется
с
импликации:
Найдем заключение С по факту x0 и y0 из базы правил R=(N1,…Nn). Для
этого необходимо в первую очередь выполнить интерпретацию:
ü логической связки «И»;
ü пропозициональной связки «также»;
ü оператора импликации «если, то»;
ü оператора композиции « o ».
Во-первых, составим композицию x0 × y0 с каждым Ri, получая
промежуточный результат Ci′ = x0 × y0 o Ri , i = 1, n . Сi′ называется выходом i-го
правила Ci′( z ) = [Ai ( x0 ∧ B( y0 )] → Ci ( z ), ∀ z .
Затем скомбинируем Сi′ покомпонентно в С посредством некоторого
оператора
агрегирования:
C = U Ci′ = x0 × y0 o R1 U ...U x0 × y0 o Rn ,
n
то
есть
i =1
C ( z ) = A1 ( x0 ) × B1 ( y0 ) → C1 ( z ) ∨ ... ∨ An ( x0 ) × Bn ( y0 ) → Cn ( z ) , где
ü
ü
ü
ü
ü
вход системы (x0,y0);
фаззифицированный вход ( x0 , y0 );
сила срабатывания i-го правила Ai ( x0 ∧ B( y0 ) ;
выход отдельного i-го правила Ci′( z ) = [Ai ( x0 ∧ B( y0 )] → Ci ( z ) ;
выход всей системы C = Ci′U ...U C n′ .
Таким образом, выход всей системы полагается равным объединению
выходов отдельных правил.
Нечеткое управление
Контроллеры нечеткой логики - наиболее важное приложение теории
нечетких множеств. Их функционирование немного отличается от работы
обычных контроллеров; для описания системы используются знания
экспертов вместо дифференциальных уравнений. Эти знания могут быть
43
выражены естественным образом с помощью лингвистических переменных,
которые описываются нечеткими множествами.
•
В нечетких логических контроллерах динамическое поведение
нечеткой системы характеризуется множеством лингвистических правил
описания, основанных на знаниях эксперта. Знания эксперта обычно имеют
вид:
•
ЕСЛИ (множество удовлетворенных условий)
•
ТО (множество следствий, которые могут быть выведены).
•
Нечеткие управляющие правила дают удобный способ для
управления в области решаемой задачи.
•
Нашей задачей является нахождение четкого управляющего
воздействия из базы нечетких правил и текущих четких входов.
•
Входы систем, основанных на нечетких правилах, должны быть
заданы нечеткими множествами, и, следовательно, нам необходимо
фаззифицировать четкие входы, то есть представить их в виде нечетких
понятий. Кроме того, выход нечеткой системы всегда является нечетким
множество, и поэтому, чтобы четкое выходное значение, мы должны
дефаззифицировать выход, то есть исключить нечеткость.
•
Нечеткие логические системы управления обычно состоят из
четырех основных частей:
•
Интерфейс фаззификации (введение нечеткости на четких
входных данных), база нечетких правил,
•
машина нечеткого вывода,
•
интерфейс дефаззификации (исключение нечеткости для
обеспечения четкого выхода).
•
Схема нечеткого логического контроллера показана на рис. 19.
Фаззификация – введение нечеткости на четких входных данных.
Оператор фаззификации переводит четкие данные в нечеткие множества.
Выбирается то нечеткое множество, функция принадлежности которому,
данного значения больше.
Выход процедуры вывода до данного момента являлся нечетким
множеством, определяющим распределение управляющего воздействия. Так
как при решении задачи в интерактивном управлении требуется четкое
управляющее воздействие, необходима дефаззификация нечеткого
управляющего воздействия (выхода), выведенного из алгоритма нечеткого
рассуждения.
44
Дефаззификация – это процесс выбора представительного элемента из
нечеткого выхода С, выведенного из алгоритма нечеткого управления.
Четкий x в X
фаззификатор
нечеткое множество в X
машина
нечеткого
вывода
база
нечетких
правил
нечеткое множество в Y
Четкий y в Y
дефаззификатор
Рис. 19. Нечеткий логический контроллер
•
•
•
45
Методы дефаззификации
Дефаззификация методом «Центр тяжести»
•
Дефаззифицированное
значение,
z0 , нечеткого множества С определяется как
его нечеткий центроид (рис.20):
z0
z0 =
•
∫
w
∫
z × C ( z )dz
w
C ( z )dz
.
Рис. 20 Дефаззификация
методом центра тяжести
Дефаззификация методом «Первый максимум»
•
Дефаззифицированное значение
нечеткого множества С – это наименьший
максимизирующий элемент (рис. 21), то есть


z 0 = min  z C ( z ) = max C ( w) .
w


•
z0
•
•
•
Рис. 21 Дефаззификация
методом первого максимума
•
Дефаззификация
максимум»
методом
«Средний
•
Дефаззифицированное значение
нечеткого множества определяется как
z0 =
z0
∫
∫
G
G
zdz
dz
C ( w)} (рис
, где G = {z | max
w
22).
Рис. 22 Дефаззификация
методом «Средний максимум»
46
Дефаззификация методом «Критерий максимума»
Выбор произвольного значения из множества максимизирующих элементов
{
}
С, то есть z0 = ∀z ∈ Z C ( z ) = max C ( w) .
w
Дефаззификация по высоте
•
Элементы множества Z, которые имеют степень принадлежности
ниже, чем определенный уровень α, полностью исключаются, и
дефаззифицированное значение z0 вычисляется применением метода центра
тяжести к тем элементам Z, которые имеют степени принадлежности не
менее, чем α.
•
•
Контрольные вопросы
•
1. Что такое искусственный интеллект, кибернетика черного ящика,
нейрокибернетика?
2. Какие системы называются интеллектуальными? Приведите пример
систем, основанных на знаниях.
3. Что такое знания, чем знания отличаются от данных?
4. Что такое представление знаний? Какие модели представления знаний
Вы знаете?
5. Какие отношения должны быть в семантической сети?
6. Назовите основные достоинства фреймовой модели представления
знаний.
7. Перечислите компоненты продукционной модели представления
знаний, поясните их взаимодействие.
8. Назовите основные идеи формализации.
9. Что такое нечеткая логика? Чем описывается лингвистическая
переменная?
10.Как работает нечеткий логический контроллер?
47
Глава 2. Основы Теории ЭС. Технологии инженерии знаний
Введение в экспертные системы
Наиболее распространенным видом ИС являются экспертные системы.
Экспертные
системы эффективны лишь
в
специфических
«экспертных» областях, где важен эмпирический опыт специалистов.
Разработка экспертных систем необходима если:
ü существует нехватка специалистов, затрачивающих значительное
время для оказания помощи другим;
ü выполнение небольшой задачи требует многочисленного коллектива
специалистов, поскольку ни один из них не обладает достаточным
знанием;
ü снижена производительность, поскольку задача требует полного
анализа сложного набора условий, а обычный специалист не в
состоянии просмотреть (за отведенное время) все эти условия;
ü присутствует большое расхождение между решениями самых хороших
и самых плохих исполнителей;
ü наличие конкурентов, имеющих преимущество в силу того, что они
лучше справляются с поставленной задачей.
Только в США ежегодный доход от продаж инструментальных средств
разработки экспертных систем составлял в начале 90-х годов 300-400
миллионов долларов, а от применения экспертных систем – 80-90 миллионов
долларов. Ежегодно крупные фирмы разрабатывают десятки ЭС для
внутреннего пользования. Эти системы интегрируют опыт специалистов
компании по ключевым и стратегически важным технологиям.
Экспертные системы – это сложные программные комплексы,
аккумулирующие знания специалистов в конкретных предметных областях и
тиражирующие этот эмпирический опыт для консультаций менее
квалифицированных пользователей.
ЭС достаточно молоды – первые системы MYCIN (система решает
задачи постановки диагноза и определения методов лечения инфекционных
заболеваний крови, 1976, Shortliffe) и DENDRAL (задача системы состоит в
том, чтобы на основе химической формулы и масс спектрограммы вывести
возможные структуры молекулы, 1978, Buchanan, Feigenbaum) появились в
США в середине 70-х годов. В настоящее время в мире насчитывается
несколько тысяч промышленных ЭС. Сейчас легче назвать области, где еще
нет ЭС, чем те, где они уже применяются. Уже в 1987 г. опрос пользователей,
проведенный журналом «Intelligent Technologies» (США), показал, что
примерно:
ü 25% пользователей используют ЭС;
ü 25% собираются приобрести ЭС в ближайшие 2-3 года;
ü 50% предпочитают провести исследование об эффективности их
использования.
48
Главное отличие интеллектуальных систем и экспертных систем от
других программных средств – это наличие базы знаний, в которой знания
хранятся в форме, понятной специалистам предметной области, и могут быть
изменены и дополнены также в понятной форме.
Особенности экспертных систем
Перерабатывают большое количество знаний.
Представляют знания в простой унифицированной форме.
Обладают независимым механизмом логических выводов.
Могут объяснить результаты, полученные в процессе обработки
знаний.
Наибольшие трудности в разработке ЭС вызывает не процесс
машинной реализации систем, а домашинный этап анализа знаний и
проектирования базы знаний. Этим занимается специальная наука –
инженерия знаний.
1)
2)
3)
4)
Инженерия знаний
Инженерия знаний - достаточно молодое направление искусственного
интеллекта, появившееся тогда, когда перед разработчиками возникла
проблема трудности «добычи» и формализации знаний. Инженерия знаний
занимается проектированием баз знаний - получением и структурированием
знаний специалистов для последующей разработки баз знаний. Процесс
организации знаний в базу знаний и построения экспертных систем также
называют инженерией знаний.
Поле знаний - это условное неформальное описание основных
понятий и взаимосвязей между понятиями предметной области, выявленных
из системы знаний эксперта, в виде графа, диаграммы, таблицы или текста.
При формировании поля знаний ключевым вопросом является сам
процесс получения знаний, когда происходит перенос компетентности
экспертов на инженеров по знаниям. Для названия этого процесса в
литературе по экспертным системам получило распространения несколько
терминов: приобретение, добыча, извлечение, получение, выявление,
формирование знаний.
Извлечение знаний - процедура взаимодействия эксперта с
источником знаний, в результате которой становятся явным процесс
рассуждений специалистов при принятии решения и структура их
представления о предметной области. Процесс извлечения знаний является
наиболее длительным и трудоемким этапом при разработке экспертных
систем. Обычно эксперт не прибегает к процедурным или количественным
методам; его основные средства - аналогия, интуиция, абстрагирование.
Часто эксперт не может объяснить, как именно им было найдено решений.
На инженера по знаниям возлагается
очень сложная работа по
преобразованию этих описаний в строгую, полную и непротиворечивую
49
систему, которая позволяла бы решать прикладные задачи не хуже, чем это
сделал бы сам эксперт.
Приобретение знаний - процесс наполнения базы знаний экспертом с
использованием специализированных программных средств. Термин
«приобретение» относится к автоматизированным системам прямого
общения с экспертом.
Процесс построения базы знаний, на основе сведений, полученных от
эксперта, состоит из трех этапов:
1) Описание предметной области. На первом шаге инженер по знаниям
очерчивает границы области применения системы и класс решаемых
ею задач: определяется характер решаемых задач, выделяются объекты
предметной области, устанавливаются связи между объектами,
выбираются
модели
представления
знаний
и
выявляются
специфические особенности предметной области.
2) Выбор метода и модели представления знаний. На втором этапе
необходимо выбрать способ организации выделенных объектов
предметной области и определить связи между ними в терминах
модели представления знаний. Способ организации знаний, состав
классов, вид структуры, перечень выделенных объектов в предметной
области зависит от того, под каким углом зрения рассматривают
инженер по знаниям и эксперт данную предметную область.
3) Приобретение знаний. Источниками знаний для экспертных систем
могут быть учебники, справочники, материалы в проблемной области и
т.п. Кроме того, нередко сами разработчики системы уже имеют знания
в соответствующей проблемной области. Хотя классический источник
знаний - эксперт в данной области, знания от которого получает
разработчик системы, выступающий в роли инженера по знаниям.
Процесс приобретения знаний носит скорее циклический, чем
линейный характер и структурирован хуже, чем другая деятельность,
выполняемая при разработке экспертной системы. Э.В. Попов считает,
что процесс приобретения знаний можно разбить на три этапа:
ü обнаружение неполноты базы знаний и выявление новых знаний,
выявляющих эту неполноту;
ü введение в систему новых знаний;
ü объединение новых знаний со старыми (то есть добавление,
устранение и модификация знаний).
Структура экспертной системы
В целом процесс функционирования ЭС можно представить
следующим образом: пользователь, желающий получить необходимую
информацию, через пользовательский интерфейс посылает запрос к ЭС;
решатель, пользуясь базой знаний, генерирует и выдает пользователю
подходящую рекомендацию, объясняя ход своих рассуждений при помощи
подсистемы объяснений (рис. 23).
50
Пользователь - специалист предметной области, для которого
предназначена система. Обычно его квалификация недостаточно высока,
поэтому он нуждается в помощи и поддержке своей деятельности со стороны
ЭС.
Инженер по знаниям - специалист в области искусственного
интеллекта, выступающий промежуточным звеном между экспертом и базой
знаний (когнитолог, аналитик, инженер - интерпретатор).
Интерфейс пользователя - комплекс программ, реализующих диалог
пользователя с ЭС как на стадии ввода информации, так и при получении
результатов.
База знаний - ядро ЭС, совокупность знаний предметной области,
записанная на машинный носитель в форме, понятной эксперту и
пользователю (обычно на языке, приближенном к естественному).
Параллельно такому представлению существует БЗ в машинном
представлении.
Решатель - программа, моделирующая ход рассуждений эксперта на
основании знаний, имеющихся в БЗ (дедуктивная машина, машина вывода,
блок логического вывода).
Подсистема объяснений - программа, позволяющая пользователю
получить ответы на вопросы:
ü Как была получена та или иная рекомендация?
ü Почему система приняла такое решение?
Ответ на вопрос «как?» – это трассировка всего процесса получения
решения с указанием использованных фрагментов БЗ, ответ на вопрос
«почему?» - ссылка на умозаключение, непосредственно предшествующее
полученному решению.
Интеллектуальный редактор БЗ - программа, представляющая
инженеру по знаниям возможность создавать БЗ в диалоговом режиме.
Включает в себя систему вложенных меню, шаблонов языка представления
знаний, подсказок (help) и других сервисных средств, облегчающих работу с
базой.
51
Решатель
Интерфейс
пользователя
Интеллектуальный
редактор
базы знаний
База
знаний
Подсистема
объяснений
пользователь
инженер
по знаниям
эксперт
Рис. 23. Структура экспертной системы
Представленная структура является минимальной, то есть все
указанные блоки должны обязательно присутствовать в ЭС, реальные
прикладные ЭС могут быть гораздо сложнее и дополнительно включать базы
данных, интерфейсы обмена данными с различными пакетами прикладных
программ, электронными библиотеками и т.д.
Этапы разработки ЭС
Перед тем, как начать разработку ЭС необходимо определить
проблемную область и задачу, найти подходящего эксперта, желающего
сотрудничать при решении проблемы, назначить коллектив разработчиков,
определить
предварительный
подход
к
решению
проблемы,
проанализировать расходы и прибыль от разработки и подготовить план
разработки.
После того, как инженер по знаниям убедился, что:
ü данная задача может быть решена с помощью экспертной системы;
ü экспертную систему можно создать предлагаемыми на рынке
средствами;
ü имеется подходящий эксперт;
ü предложенные критерии производительности являются разумными;
ü затраты и срок их окупаемости приемлемы для заказчика,
он составляет план разработки ЭС. План определяет шаги процесса
разработки и необходимые затраты, а также ожидаемые результаты (рис. 24).
52
Идентификация проблемы
Проблема
Получение знаний
Знания
Структурирование
Поле знаний
Формализация
БЗ на ЯПЗ
Реализация прототипа
Программа-прототип
ЭС
Тестирование
Рис. 24. Этапы разработки экспертной системы
На этапе идентификации проблемы уточняется задача, определяются
необходимые ресурсы (время, люди, ЭВМ), источники знаний (книги,
дополнительные эксперты), цели (распространение опыта, автоматизация
рутинных действий), классы решаемых задач.
На стадии извлечения знаний происходит перенос компетентности от
эксперта к инженеру по знаниям с использованием различных методов
(анализ текстов, диалоги, экспертные игры, лекции, дискуссии, интервью,
наблюдение и др.).
При структурировании знаний выявляется структура полученных
знаний о предметной области, то есть определяются: терминология, список
основных понятий и их атрибутов, отношения между понятиями, структура
входной и выходной информации, стратегия принятия решений и т.д.
53
На стадии формализации строится формализованное представление
предметной области на основе выбранного языка представления знаний.
При реализации создается прототип ЭС, включающий базу знаний и
остальные блоки, при помощи программирования на традиционных языках
(C++, Pascal и др.), программирования на специальных языках, применяемых
в задачах искусственного интеллекта (LISP, FRL, SMALLTALK) или с
использованием инструментальных средств разработки ЭС типа СПЭИС.
Тестированием оценивается работа прототипа с целью приведения в
соответствие с реальными запросами пользователя.
При неудовлетворительном функционировании прототипа эксперт и
инженер по знаниям имеют возможность оценить, что именно будет
включено в окончательный вариант системы. После чего происходит
доработка прототипа до конечного варианта ЭС.
Коллектив разработчиков ЭС
Под коллективом разработчиков понимают группу специалистов,
ответственных за создание ЭС (рис. 25). Минимальный коллектив
разработчиков включает четыре человека: эксперт, пользователь, инженер по
знаниям, программист; реально он разрастается до 8-10 человек (так как
возникает необходимость учета мнения нескольких пользователей, помощи
нескольких экспертов, потребность в проблемных и системных
программистах). Роли разработчиков являются постоянными на протяжении
всей разработки. Совмещение ролей нежелательно.
Эксперт
Пользовател
Инженер по
знаниям
Программист
Рис. 25. Коллектив разработчиков ЭС
54
Технологии инженерии знаний
Рассмотрим, какими практическими методами знания могут быть
получены. В неявном виде, мы предполагали, что некоторое
взаимодействие инженера по знаниям (когнитолога) и эксперта в форме
непосредственного живого общения и позволяют получить знания.
Однако, это не единственная форма извлечения знаний, хотя и довольно
распространенная.
Рисунок 26 иллюстрирует предлагаемую классификацию методов
извлечения знаний, в которой используются наиболее часто употребляемые
термины, что позволяет инженерам по знаниям в зависимости от конкретной
задачи и ситуации выбрать подходящий метод. Принцип деления на данной
схеме связан с источником знаний.
Извлечение знаний
Коммуникативные методы
Текстологические методы
Анализ
учебников
Активные
Пассивные
Наблюдение
Групповые
Протокол
«мыслей вслух
Круглый стол
Лекции
«Мозговой
штурм»
Ролевые игры
Индивидуальные
Анкетирование
Анализ
литературы
Анализ
документов
Экспертные
игры
Диалог
Интервью
Рис. 26. Классификация методов извлечения знаний
Коммуникативные методы извлечения знаний охватывают методы и
процедуры контактов инженера по знаниям с непосредственным источником
знаний - экспертом, а текстологические включают методы извлечения знаний
из документов (методик, пособий, руководств) и специальной литературы
(статей, монографий, учебников).
Разделение этих групп методов на верхнем уровне классификации не
означает их противоречивости, обычно инженер по знаниям комбинирует
различные методы, например, сначала изучает литературу, затем беседует с
экспертами, или наоборот.
55
В свою очередь, коммуникативные методы можно также разделить на две
группы: активные и пассивные. Пассивные методы подразумевают, что
ведущая роль в процедуре извлечения как бы передается эксперту, а инженер по
знаниям только протоколирует рассуждения эксперта во время его реальной
работы по принятию решений или записывает то, что эксперт считает нужным
самостоятельно рассказать в форме лекции. В активных методах, напротив,
инициатива полностью в руках инженера по знаниям, который активно
контактирует с экспертом различными способами - в играх, диалогах, беседах за
круглым столом и т. д. Следует еще раз подчеркнуть, что и активные и
пассивные методы могут чередоваться даже в рамках одного сеанса извлечения
знаний. Например, если инженер по знаниям застенчив и не имеет большого
опыта, то вначале он может использовать пассивные методы, а постепенно,
ближе знакомясь с экспертом, захватывать инициативу и переходить «в
наступление».
Пассивные методы на первый взгляд достаточно просты, но на самом деле
требуют от инженера по знаниям умения четко анализировать поток сознания
эксперта и выявлять в нем значимые фрагменты знаний. Отсутствие обратной
связи (пассивность инженера по знаниям) значительно ослабляет
эффективность этих методов, чем и объясняется их обычно вспомогательная
роль при активных методах.
Активные методы можно разделить на две группы в зависимости от
числа экспертов, отдающих свои знания. Если их число больше одного, то
целесообразно помимо серии индивидуальных контактов с каждым применять
и методы групповых обсуждений предметной области. Такие групповые
методы обычно активизируют мышление участников дискуссий и позволяют
выявлять весьма нетривиальные аспекты их знаний. В свою очередь,
индивидуальные методы на сегодняшний день остаются ведущими, поскольку
столь деликатная процедура, как «отъем знаний», не терпит лишних
свидетелей.
На выбор метода влияют три фактора: личностные особенности инженера
по знаниям, личностные особенности эксперта и характеристика предметной
области.
Для характеристики предметных областей можно предложить следующую
классификацию (рис. 27):
ü хорошо документированные;
ü средне документированные;
ü слабо документированные.
Эта классификация связана с соотношением двух видов знаний Z1 и Z2,,
где Z1 - это экспертное «личное» знание, a Z2 - материализованное в книгах
«общее» знание в данной конкретной области. Знания Zпо предметной области
можно представить как объединение Z1 и Z2, то есть Zпо = Z1 U Z2 (рис 7.2)
56
Предметные области
Хорошо
документированные
Z1 Z2
Средне
документированные
Z1 Z2
Слабо
документированные
Z1 Z2
Рис. 27. Классификация предметных областей
Кроме этого, предметные области можно разделить по критерию
структурированности знаний.
Под структурированностью будем понимать степень теоретического
осмысления и выявленности основных закономерностей и принципов,
действующих в данной предметной области.
И хотя ЭС традиционно применяются в слабо структурированных
предметных областях, сейчас наблюдается тенденция расширения сферы
внедрения экспертных систем. По степени структурированности знаний
предметные области могут быть:
ü хорошо структурированными - с четкой аксиоматизацией, широким
применением математического аппарата, устоявшейся терминологией;
ü средне структурированными - с определившейся терминологией,
развивающейся теорией, явными взаимосвязями между явлениями;
ü слабо структурированными - с размытыми определениями, богатой
эмпирикой, скрытыми взаимосвязями, с большим количеством «белых
пятен».
Коммуникативные методы извлечения знаний
В соответствии с классификацией, представленной на рис. 25, рассмотрим
подробнее обе разновидности коммуникативных методов: пассивные и
активные
57
Пассивные методы
Термин «пассивные» введен как противовес к «активным» методам. В
реальности пассивные методы требуют от инженера по знаниям не меньшей
отдачи, чем активные методы.
Пассивные методы извлечения знаний включают такие методы, где
ведущая роль в процедуре извлечения фактически передается эксперту, а
инженер по знаниям только фиксирует рассуждения эксперта во время
работы по принятию решений.
Наблюдения
В процессе наблюдений инженер по знаниям находится непосредственно
рядом с экспертом во время его профессиональной деятельности или имитации
этой деятельности. При подготовке к сеансу извлечения эксперту необходимо
объяснить цель наблюдений и попросить максимально комментировать свои
действия.
Во время сеанса аналитик записывает все действия эксперта, его
реплики и объяснения. Может быть сделана и видеозапись в реальном
масштабе времени. Непременное условие этого метода - невмешательство
аналитика в работу эксперта хотя бы на первых порах. Именно метод
наблюдений является единственно «чистым» методом, исключающим
вмешательство инженера по знаниям и навязывание им каких-то своих структур
представлений. Существуют две основные разновидности проведения
наблюдений:
ü наблюдение за реальным процессом;
ü наблюдение за имитацией процесса.
Обычно используются обе разновидности. Сначала инженеру по
знаниям полезно наблюдать за реальным процессом, чтобы глубже понять
предметную область и отметить все внешние особенности процесса принятия
решения. Это необходимо для проектирования эффективного интерфейса
пользователя. Ведь будущая ЭС должна работать именно в контексте такого
реального производственного процесса.
Наблюдение за имитацией процесса проводят обычно также за рабочим
местом эксперта, но сам процесс деятельности запускается специально для
аналитика. Преимущество этой разновидности в том, что эксперт менее
напряжен, чем в первом варианте, когда он работает на «два фронта» - и ведет
профессиональную деятельность, и демонстрирует ее. Недостаток совпадает с
преимуществом - именно меньшая напряженность эксперта может повлиять на
результат - раз работа ненастоящая, то и решение может отличаться от
настоящего.
Наблюдения за имитацией проводят также и в тех случаях, когда
наблюдения за реальным процессом по каким-либо причинам невозможны
58
(например, профессиональная этика врача - психиатра может не допускать
присутствия постороннего на приеме).
Протоколы наблюдений после сеансов в ходе домашней работы
тщательно расшифровываются, а затем обсуждаются с экспертом.
Таким образом, наблюдения - один из наиболее распространенных
методов извлечения знаний на начальных этапах разработки. Обычно он
применяется не самостоятельно, а в совокупности с другими методами.
Анализ протоколов «мыслей вслух»
Протоколирование «мыслей вслух» отличается от наблюдений тем, что
эксперта просят не просто прокомментировать свои действия и решения, но и
объяснить, как это решение было найдено, то есть продемонстрировать всю
цепочку своих рассуждений. Во время рассуждений эксперта все его слова, весь
«поток сознания» протоколируется инженером по знаниям, при этом полезно
отметить даже паузы и междометия. Иногда этот метод называют «вербальные
отчеты».
Основной трудностью при протоколировании «мыслей вслух» является
принципиальная сложность для любого человека объяснить, как он думает. При
этом существуют экспериментальные психологические доказательства того
факта, что люди не всегда в состоянии достоверно описывать мыслительные
процессы. Кроме того, часть знаний, хранящихся в невербальной форме
(например, различные процедурные знания типа «как завязывать шнурки»),
вообще слабо коррелируют с их словесным описанием. Автор теории фреймов
М. Минский считает, что «только как исключение, а не как правило, человек
может объяснить то, что он знает».
Расшифровка полученных протоколов производится инженером по
знаниям самостоятельно с коррекциями на следующих сеансах извлечения
знаний. Удачно проведенное протоколирование «мыслей вслух» является одним
из наиболее эффективных методов извлечения, поскольку в нем эксперт может
проявить себя максимально ярко, он ничем не скован, никто ему не мешает, он
как бы свободно парит в потоке собственных умозаключений и рассуждений.
Он может здесь блеснуть эрудицией, продемонстрировать глубину своих
познаний. Для большого числа экспертов это самый приятный и лестный
способ извлечения знаний.
Обычно «мысли вслух» дополняются потом одним из активных методов
для реализации обратной связи между интерпретацией инженера по знаниям и
представлениями эксперта
Лекции
Лекция является самым старым способом передачи знаний. Лекторское
искусство издревле очень высоко ценилось во всех областях науки и культуры.
59
Но нас сейчас интересует не столько способность к подготовке и чтению
лекций, сколько способность эту лекцию слушать, конспектировать и
усваивать. Уже говорилось, что чаще всего экспертов не выбирают, и поэтому
учить эксперта чтению лекции инженер по знаниям не сможет. Но если эксперт
имеет опыт преподавателя (например, профессор клиники или опытный
руководитель
производства),
то
можно
воспользоваться
таким
концентрированным фрагментом знаний, как лекция. В лекции эксперту также
предоставлено много степеней свободы для самовыражения; при этом
необходимо сформулировать эксперту тему и задачу лекции. Например, тема
цикла лекций «Постановка диагноза - воспаление легких», тема конкретной
лекции «Рассуждения по анализу рентгенограмм», задача - научить слушателей
по перечисленным экспертом признакам ставить диагноз воспаления легких и
делать прогноз. При такой постановке опытный лектор может заранее
структурировать свои знания и ход рассуждений. От инженера по знаниям в
этой ситуации требуется лишь грамотно законспектировать лекцию и в конце
задать необходимые вопросы.
Активные методы
Активные групповые методы
Основное достоинство групповых методов - это возможность
одновременного
«поглощения»
знаний
от
нескольких
экспертов,
взаимодействие которых вносит в этот процесс элемент принципиальной
новизны от наложения разных взглядов и позиций.
«Круглый стол»
Метод круглого стола (термин заимствован из журналистики)
предусматривает обсуждение какой-либо проблемы из выбранной предметной
области, в котором принимают участие с равными правами несколько
экспертов. Обычно вначале участники высказываются в определенном
порядке, а затем переходят к живой свободной - дискуссии. Число участников
дискуссии колеблется от трех до пяти - семи.
Задача дискуссии - коллективно, с разных точек зрения, под разными
углами исследовать спорные гипотезы предметной области. Обычно
эмпирические области богаты таким дискуссионным материалом. Для остроты
на «круглый стол» приглашают представителей разных научных направлений и
разных поколений, это также уменьшает опасность получения односторонних
однобоких знаний
«Мозговой штурм»
«Мозговой штурм» или «мозговая атака» - один из наиболее
распространенных методов раскрепощения и активизации творческого
60
мышления. Другие методы (метод фокальных объектов, синектика, метод
контрольных вопросов) применяются гораздо реже из-за меньшей
эффективности.
Впервые этот метод был использован в 1939 г. в США А. Осборном как
способ получения новых идей в условиях запрещения критики. Замечено, что
боязнь критики мешает творческому мышлению, поэтому основная идея штурма
- это отделение процедуры генерирования идей в замкнутой группе
специалистов от процесса анализа и оценки высказанных идей.
Как правило, штурм длится недолго (около 40 минут). Участникам (до 10
человек) предлагается высказывать любые идеи (шутливые, фантастические,
ошибочные) на заданную тему (критика запрещена). Обычно высказывается
более 50 идей. Регламент до 2 минут на выступление. Самый интересный
момент штурма - это наступление пика (ажиотажа), когда идеи начинают
«фонтанировать», то есть происходит непроизвольная генерация гипотез
участниками. Этот пик имеет теоретическое обоснование в работах
выдающегося швейцарского психолога и психиатра 3. Фрейда о
бессознательном. При последующем анализе всего лишь 10-15% идей
оказываются разумными, но среди них бывают весьма оригинальные. Оценивает
результаты обычно группа экспертов, не участвовавшая в генерации.
Ведущий «мозгового штурма» - инженер по знаниям - должен свободно
владеть аудиторией, подобрать активную группу экспертов - «генераторов», не
зажимать плохие идеи - они могут служить катализаторами хороших
Основной девиз штурма - «чем больше идей, тем лучше». Фиксация хода
сеанса - традиционная (протокол или магнитофон).
Ролевые экспертные игры в группе
Игрой называют такой вид человеческой деятельности, который отражает
(воссоздает) другие ее виды. При этом для игры характерны одновременно
условность и серьезность.
Групповые игры предусматривают участие в игре нескольких экспертов. К
такой игре обычно заранее составляется сценарий, распределяются роли, к
каждой роли готовится портрет-описание (лучше с девизом) и разрабатывается
система оценивания игроков.
Существует несколько способов проведения ролевых игр. В одних играх
игроки могут придумать себе новые имена и играть под ними. В других все
игроки переходят на «ты». В третьих роли выбирают игроки, в четвертых роли
вытягивают по жребию. Роль - это комплекс образцов поведения. Роль связана с
другими ролями. «Короля играет свита». Поскольку в нашем случае режиссером
и сценаристом игры является инженер по знаниям, то ему и предоставляется
полная свобода в выборе формы проведения игры.
Обычно в игре принимает участие от трех до шести экспертов, если их
больше, то можно разбить всех на несколько конкурирующих игровых бригад.
Элемент состязательности оживляет игру. Например, чей диагноз окажется
61
ближе к истинному, чей план рациональнее использует ресурсы, кто быстрее
определит причину неисправности в техническом блоке.
Создание игровой обстановки потребует немало фантазии и творческой
выдумки от инженера по знаниям. Ролевая игра, как правило, требует
некоторых простейших заготовок (например, табличек «Директор»,
«Бухгалтерия», «Плановый отдел», специально напечатанных инструкций с
правилами игры). Но главное, конечно, чтобы эксперты в игре действительно
«заиграли», раскрепостились и «раскрыли свои карты».
Активные индивидуальные методы
Активные индивидуальные методы извлечения знаний на сегодняшний
день - наиболее распространенные. В той или иной степени к ним прибегают
при разработке практически любой ЭС.
Анкетирование
Анкетирование - наиболее жесткий метод, то есть наиболее
стандартизированный. В этом случае инженер по знаниям заранее составляет
вопросник или анкету, размножает ее и использует для опроса нескольких
экспертов. Это основное преимущество анкетирования. Сама процедура может
проводиться двумя способами:
1) Аналитик вслух задает вопросы и сам заполняет анкету по ответам
эксперта.
2) Эксперт самостоятельно заполняет анкету после предварительного
инструктирования.
Выбор способа зависит от конкретных условий (например, от
оформления анкеты, ее понятности, готовности эксперта).
Вопросник (анкета) заслуживает особого разговора. Существует
несколько общих рекомендаций при составлении анкет. Эти рекомендации не
зависят от предметной области.
Анкета не должна быть монотонной и однообразной, то есть вызывать
скуку или усталость. Это достигается вариациями формы вопросов, сменой
тематики, вставкой вопросов-шуток и игровых вопросов.
Анкета должна быть приспособлена к языку экспертов (включать
общенаучную терминологию; специальную терминологию, принятую в
предметной области; бытовой язык; профессиональный жаргон эксперта,
созданный за время его работы).
Следует учитывать, что вопросы влияют друг на друга и поэтому
последовательность вопросов должна быть строго продумана.
Желательно стремиться к оптимальной избыточности. Известно, что в
анкете всегда много лишних вопросов, часть из них необходима - это так
называемые контрольные вопросы, а другая часть должна быть минимизирована.
Анкета должна иметь «хорошие манеры», то есть ее язык должен быть
ясным, понятным, предельно вежливым.
62
Интервью
Под интервью будем понимать специфическую форму общения инженера
по знаниям и эксперта, в которой инженер по знаниям задает эксперту серию
заранее подготовленных вопросов с целью извлечения знаний о предметной
области. Наибольший опыт в проведении интервью накоплен в журналистике и
социологии.
Интервью очень близко тому способу анкетирования, когда аналитик сам
заполняет анкету, занося туда ответы эксперта. Основное отличие интервью в
том, что оно позволяет аналитику опускать ряд вопросов в зависимости от
ситуации, вставлять новые вопросы в анкету, изменять темп, разнообразить
ситуацию общения. Кроме этого, у аналитика появляется возможность «взять в
плен» эксперта своим обаянием, заинтересовать его самой процедурой и тем
самым увеличить эффективность сеанса извлечения.
Вопросы для интервью
Теперь несколько подробнее о центральном звене активных
индивидуальных методов - о вопросах. Инженеры по знаниям редко сомневаются
в своей способности задавать вопросы. В то время как и в философии и в
математике эта проблема обсуждается с давних лет. Существует даже
специальная ветвь математической логики - логика вопросов.
Все вопросительные предложения можно разбить на два типа
• вопросы с неопределенностью, относящейся ко всему предложению
(«Действительно, введение больших доз антибиотиков может вызвать
анафилактический шок?);
• вопросы с неполной информацией («При каких условиях необходимо
включать кнопку?»), часто начинающиеся со слов «кто», что», «где»,
«когда» и т. д.
Вопрос в интервью - это не просто средство общения, но и способ
передачи мыслей и позиции аналитика.
Любой вопрос имеет смысл только в контексте. Поэтому вопросы
может готовить инженер по знаниям, уже овладевший ключевым набором
знаний предметной области.
Диалог
Диалог - это метод извлечения знаний в форме беседы инженера по
знаниям и эксперта, в которой нет жесткого регламентированного плана и
вопросника.
Это определение не означает, что к диалогу не надо готовиться.
Напротив, внешне свободная и легкая форма этого метода требует очень
высокой профессиональной и психологической подготовки. Подготовка к
свободному диалогу практически может совпадать с подготовкой к
63
журналистскому интервью. Подготовка занимает разное время в зависимости
от степени профессионализма аналитика, но в любом случае она
необходима.
Подготовка к диалогу так же, как и к другим активным методам
извлечения знаний, включает составление плана проведения сеанса извлечения,
в котором необходимо предусмотреть следующие стадии:
1. Начало беседы (знакомство, создание у эксперта «образа» аналитика,
объяснение целей и задач работы).
2. Диалог по извлечению знаний.
3. Заключительная стадия (благодарность эксперту, подведение итогов,
договоренность о последующих встречах).
Экспертные игры
Игры с экспертом
В этом случае с экспертом играет инженер по знаниям, который берет на
себя какую-нибудь роль в моделируемой ситуации. Например, можно
разыгрывать с экспертом игру «Учитель и ученик», в которой инженер по
знаниям берет на себя роль ученика и на глазах у эксперта выполняет его
работу, а эксперт поправляет ошибки «ученика». Эта игра - удобный способ
разговорить застенчивого эксперта.
Игры с тренажерами
Игры с тренажерами в значительной степени ближе не к играм, а к
имитационным упражнениям в ситуации, приближенной к действительности.
Наличие тренажера позволяет воссоздать почти производственную ситуацию и
понаблюдать за экспертом. Тренажеры широко применяют для обучения
(например, летчиков или операторов атомных станций). Очевидно, что
применение тренажеров для извлечения знаний позволит зафиксировать
фрагменты «летучих» знаний, возникающих во время и на месте реальных
ситуаций и выпадающих из памяти при выходе за пределы ситуации.
Компьютерные экспертные игры
Идея использовать компьютеры в деловых играх известна давно. Но
только когда компьютерные игры взяли в плен практически всех
пользователей персональных ЭВМ от мала до велика, стала очевидной особая
притягательность таких игр. Следует отметить, что многие игры могут быть
отнесены сразу к нескольким классам, и в целом, эту классификацию нельзя
считать строгой. Игры иногда полезны для развлечения экспертов перед сеансом
извлечения знаний. Кроме того, очевидно, что экспертные игры, сочетая
элементы перечисленных выше классов, могут успешно применяться для
непосредственного извлечения знаний. Однако разработка и программная
64
реализация такой игры потребуют существенных вложений временных и
денежных ресурсов.
Текстологические методы
Группа текстологических методов объединяет методы извлечения знаний,
основанные на изучении специальных текстов из учебников, монографий,
статей, методик и других носителей профессиональных знаний.
Примечание.
В буквальном смысле текстологические методы не относятся к
текстологии - науке, которая родилась в русле филологии с целью критического
прочтения литературных текстов, изучения и интерпретации источников с
узкоприкладной задачей - подготовки текстов к изданию. Сейчас текстология
расширила свои границы включением аспектов смежных наук - герменевтики
(науки правильного толкования древних текстов - библии, античных рукописей
и др.), семиотики, психолингвистики и др.
Текстологические методы извлечения знаний, безусловно, используя
основные положения текстологии, отличаются принципиально от ее
методологии, во-первых, характером и природой своих источников
(профессиональная специальная литература, а не художественная, живущая
по своим особым законам), а во-вторых, жесткой прагматической
направленностью извлечения конкретных профессиональных знаний.
Выделяют три вида текстологических методов:
ü анализ специальной литературы;
ü анализ учебников;
ü анализ методик.
Перечисленные три метода существенно отличаются, во-первых, по
степени концентрированности специальных знаний, и, во-вторых, по
соотношению специальных и фоновых знаний.
Наиболее простым методом является анализ учебников, в которых
логика изложения обычно соответствует логике предмета и поэтому
макроструктура такого текста будет, наверное, более значима, чем структура
текста какой-нибудь специальной статьи.
Анализ методик затруднен как раз сжатостью изложения и практическим
отсутствием комментариев, то есть фоновых знаний, облегчающих понимание
для неспециалистов. Поэтому можно рекомендовать для практической работы
комбинацию перечисленных методов.
Алгоритм извлечения знаний из текста
1) Составление «базового» списка литературы для ознакомления с предметной
областью и чтение по списку.
2) Выбор текста для извлечения знаний.
65
3) Первое знакомство с текстом (беглое прочтение). Для определения
значения незнакомых слов - консультации со специалистами или
привлечение справочной литературы.
4) Формирование первой гипотезы о макроструктуре текста.
5) Внимательное прочтение текста с выписыванием ключевых слов и
выражений, то есть выделение «смысловых вех» (компрессия текста).
6) Определение
связей
между
ключевыми
словами,
разработка
макроструктуры текста в форме графа или «сжатого» текста (реферата).
7) Формирование поля знаний на основании макроструктуры текста.
Сравнительные характеристики методов извлечения знаний
В таблицах 2, 3 и 4 приведены сравнительные характеристики различных
методов извлечения знаний, а также требования к предметной области,
эксперту и инженеру по знаниям.
66
Таблица 2
Сравнительные характеристики пассивных методов извлечения знаний
Пассивный
Наблюдения
«Мысли вслух»
Лекции
метод
извлечения
Максимальное
Свобода
Свобода
Достоинства
приближение
самовыражения для самовыражения для
аналитика к
эксперта.
эксперта
предметной области
Обнаженность
Структурированное
Отсутствие влияния
структур
изложение.
аналитика и его
рассуждений.
Высокая
субъективной
Отсутствие влияния
концентрация
позиции
аналитика и его Отсутствие влияния
субъективной
аналитика и его
позиции
субъективной
позиции
Недостатки
Требования к
эксперту (типы
и основные
качества)
Требования к
инженеру по
знаниям (типы
и основные
качества)
Характеристика
предметной
области
Отсутствие
обратной связи
Фрагментарность
полученных
комментариев
Отсутствие
«Зашумленность»
обратной связи
деталями
Возможность ухода Слабая обратная
«в сторону» в
связь
рассуждениях
Недостаток
эксперта
хороших лекторов
среди экспертовпрактиков
Собеседник или
Собеседник или
Мыслитель
мыслитель
мыслитель
(лекторские
(способность к
(способность к
способности)
вербализации
вербализации
мыслей +
мыслей +
аналитичность + аналитичность +
открытость +
открытость +
рефлексивность)
рефлексивность)
Мыслитель
Мыслитель или
Мыслитель
(наблюдательность
собеседник
(поленезависимость
+
(контактность + + способность к
поленезависимость) поленезависимость)
обобщению)
Слабо и средне структурированные;
слабо и средне документированные
Слабо
документированные
и слабо
структурированные
67
Таблица 3
Сравнительные характеристики активных индивидуальных методов
извлечения
Анкетирование
Интервью
Диалог
Активный
индивидуальный
метод
извлечения
знаний
Возможность
Наличие обратной
Гибкость
Достоинства стандартизированного связи (возможность Сильная обратная
опроса нескольких
уточнений и
связь изменения
экспертов
разрешения
Возможность
Не требует
противоречий) для
изменения
особенного
эксперта
сценария и формы
напряжения от
сеанса
аналитика во время
процедуры
анкетирования
Требует умения и
Требует
Требует от
опыта составления
значительного
аналитика
анкет
времени на
высочайшего
Отсутствие
подготовку
напряжения
контекста
вопросов интервью
Отсутствие
между экспертом,
формальных
нет обратной связи.
методик
Вопросы анкеты
проведения
могут быть
Трудность
неправильно
протоколирования
поняты экспертом
результатов
Требования к Практик и мыслитель Собеседник или
Собеседник или
эксперту (типы
мыслитель
мыслитель
и основные
качества)
Требования к
Мыслитель
Собеседник
Собеседник
инженеру по
(усидчивость в
(журналистские (наблюдательност
знаниям (типы составлении анкет,
навыки, умение
ь, умение слушать,
и основные
внимательность)
слушать)
обаяние)
качества)
Характеристика Слабо структурированные; слабо и средне документированные
предметной
области
Недостатки
68
Таблица 4
Сравнительные характеристики активных групповых методов извлечения
Активный
«Круглый стол»
«Мозговой штурм»
индивидуальный
метод извлечения
знаний
Достоинства
Позволяет получить более
объективные фрагменты
знаний
Оживляет процедуру
извлечения
Позволяет участникам
обмениваться знаниями
Позволяет выявлять глубинные
пласты знаний (на уровне
бессознательного)
Активизирует экспертов
Позволяет получать новое знание
(гипотезы)
Возможен только для новых
интересных исследовательских
проблем
Не всегда эффективны (довольно
низкий процент продуктивных
идей)
Требования к
Собеседник или мыслитель Мыслитель (креативность, то
эксперту (типы
(искусство полемики)
есть способность к творчеству)
и основные
качества)
Требования к
Собеседник
Собеседник или мыслитель
инженеру по
(дипломатические
(быстрая реакция и чувство
знаниям (типы
способности)
юмора)
и основные
качества)
Характеристика Слабо структурированные и
Слабо структурированные и
предметной
слабо документированные с
слабо документированные с
области
наличием спорных проблем наличием перспективных «белых
пятен»
Недостатки
Требует больших
организационных затрат
Отличается сложностью
проведения
Методы извлечения знаний, рассмотренные выше, являются
непосредственной подготовкой к структурированию знаний. Существует
множество различных методов структурирования знаний.
69
Контрольные вопросы
1. Что такое экспертная система? Как назывались первые ЭС, и для
каких целей служили?
2. В чем особенности экспертных систем?
3. Какова структура экспертной системы? Для чего предназначены
ее части?
4. Назовите основные этапы разработки ЭС. Какой этап наиболее
трудоемкий и почему?
5. Какие специалисты принимают участие в разработке ЭС?
6. Чем занимается инженерия знаний?
7. На какие две категории делятся методы технологии инженерии
знаний?
8. Перечислите основные методы извлечения знаний.
9. Поясните ход метода извлечения знаний «Мозговой штурм».
10.Чем отличается диалог от интервью?
11.В чем состоит проблема составления вопросов для
анкетирования?
12.Возможна ли комбинация различных методов извлечения
знаний?
70
Глава 3. Основы нейронных сетей
Биологический прототип искусственных нейронных сетей
Развитие искусственных нейронных сетей вдохновляется биологией.
То есть, рассматривая сетевые конфигурации и алгоритмы, исследователи
мыслят их в терминах организации мозговой деятельности. Но на этом
аналогия может и закончиться. Наши знания о работе мозга столь
ограничены, что мало бы нашлось руководящих ориентиров для тех, кто стал
бы ему подражать. Поэтому разработчикам сетей приходится выходить за
пределы современных биологических знаний в поисках структур, способных
выполнять полезные функции. Во многих случаях это приводит к
необходимости отказа от биологического правдоподобия, мозг становится
просто метафорой, и создаются сети, невозможные в живой материи или
требующие неправдоподобно больших допущений об анатомии и
функционировании мозга.
Несмотря на то, что связь с биологией слаба и зачастую несущественна,
искусственные нейронные сети продолжают сравниваться с мозгом. Их
функционирование часто напоминает человеческое познание, поэтому
трудно избежать этой аналогии. К сожалению, такие сравнения
неплодотворны и создают неоправданные ожидания, неизбежно ведущие к
разочарованию. Исследовательский энтузиазм, основанный на ложных
надеждах, может испариться, столкнувшись с суровой действительностью,
как это уже однажды было в шестидесятые годы, и многообещающая область
снова придет в упадок, если не будет соблюдаться необходимая
сдержанность.
Несмотря на сделанные предупреждения, полезно все же знать кое-что
о нервной системе млекопитающих, так как она успешно решает задачи, к
выполнению которых лишь стремятся искусственные системы. Нервная
система человека, построенная из элементов, называемых нейронами, имеет
ошеломляющую сложность. Около 10 11 нейронов участвуют в примерно 10 15
передающих связях, имеющих длину метр и более. Каждый нейрон обладает
многими качествами, общими с другими элементами тела, но его уникальной
способностью является прием, обработка и передача электрохимических
сигналов по нервным путям, которые образуют коммуникационную систему
мозга.
На рис. 28 показана структура пары типичных биологических
нейронов. Дендриты идут от тела нервной клетки к другим нейронам, где они
принимают сигналы в точках соединения, называемых синапсами. Принятые
синапсом входные сигналы подводятся к телу нейрона. Здесь они
суммируются, причем одни входы стремятся возбудить нейрон, другие воспрепятствовать его возбуждению. Когда суммарное возбуждение в теле
нейрона превышает некоторый порог, нейрон возбуждается, посылая по
71
аксону сигнал другим нейронам. У этой основной функциональной схемы
много усложнений и исключений, тем не менее, большинство искусственных
нейронных сетей моделируют лишь эти простые свойства.
Рис. 28. Структура биологического нейрона
Основные идеи и области применения нейросетей
Первые нейросети были созданы Розенблатом и Мак - Коллаком в
56-65 гг. XXв. это были попытки создать системы, моделирующие
человеческий глаз и его взаимодействие с мозгом. Устройство, созданное
ими тогда, получило название персептрона. Оно умело различать буквы
алфавита, но было чувствительно к их написанию.
Разработка искусственных нейронных сетей началась еще на заре
столетия, но только в 90-х годах, когда были преодолены некоторые
теоретические барьеры, а вычислительные системы стали достаточно
мощными, нейронные сети получили широкое признание. Слово
«искусственные» используется для того, чтобы подчеркнуть, что речь идет
об искусственном устройстве, а о реальных биологических нейронных
системах, которые имеет человек. В сравнении с человеческим мозгом,
искусственные нейронные сети сегодня представляют собой весьма
упрощенные абстракции.
Искусственные нейронные системы могут быть рассмотрены как
упрощенные математические модели систем, подобных мозгу. Они
функционируют как вычислительные сети параллельного
распространения. Однако, в противоположность обычным компьютерам,
которые запрограммированы для выполнения специфических задач,
72
нейронные сети должны быть обучены, или натренированы. Они могут
выучить новые ассоциации, новые функциональные зависимости и новые
образы. Хотя при решении задач, основанных на точных и быстрых
арифметических операциях, компьютер работает лучше, чем
биологические и искусственные нейронные сети, искусственные
нейронные системы представляют многообещающее новое поколение
сетей, обрабатывающих информацию.
Нейронные сети сегодня - та область знаний, преставление о которой
должны иметь все научные специалисты, работающие в области
компьютерных технологий, равно как и многие инженеры, и научные
работники смежных специальностей.
Список приложений, которые могут быть решены нейронными сетями,
расширился от тестовых задач малых размеров до больших практических
задач. Были произведены составные нейросетевые чипы.
Ожидается, что
искусственные нейронные
системы
будут
использоваться в приложениях, включающих в себя видение, речь, принятие
решения, рассуждение, а также в преобразователях сигналов, таких как
фильтры, детекторы и системы контроля качества.
Основные компоненты нейронной сети
Искусственные нейронные системы, или нейронные сети - это
физические клеточные системы, которые могут приобретать, сохранять и
использовать опытные знания.
Знания существуют в форме стабильных состояний или отображений,
внедренных в сеть, которые могут быть вызваны в ответ на поданные
сигналы.
Нейронная сеть является совокупностью элементов, соединенных
между собой некоторым образом так, чтобы между ними обеспечивалось
взаимодействие.
Основные обрабатывающие элементы нейронной сети называются
искусственными нейронами, или просто нейронами или узлами. Эти узлы
представляют собой простые процессоры, вычислительные возможности
которых обычно ограничиваются некоторым правилом комбинирования
входных сигналов и правилом активации, позволяющим вычистить выходной
сигнал по совокупности входных сигналов. Выходной сигнал элемента
может посылаться другим элементам по взвешенным связям, с каждой из
которых связан весовой коэффициент или вес.
Характеристики нейронных сетей
1) Множество простых процессоров (узлов, нейронов).
73
2)
3)
4)
5)
6)
Структура связей (представляющим синапсы клетки).
Правило распространения сигналов в сети.
Правило комбинирования входящих сигналов.
Правило вычисления сигнала активности.
Правила обучения, корректирующие связи.
Множество простых процессоров
На рис. 29 показана структура искусственной нейронной сети. С
каждым обрабатывающим элементом сети связывается набор входящих
связей, по которым к данному элементу поступают сигналы от других
элементов сети, и набор исходящих связей, по которым сигналы данного
элемента передаются другим элементам.
Элементы, предназначенные для получения сигналов из внешней
среды, называются входными элементами.
выходной сигнал
Y
y1
y2
yn
выходной слой
скрытые слои
входной слой
x1
x2
Х
xk
входной сигнал
Рис. 29. Структура нейронной сети
Элементы для вывода во внешнюю среду результатов вычислений
называются выходными элементами.
Внутренние элементы называет скрытым слоем.
74
Структура связей
Структура связей отражает то, как соединены элементы сети. В
зависимости от модели нейронной сети элементы могут быть
ü связаны со всеми другими элементами сети
ü организованы в некоторой упорядоченной иерархии, где связи
допускаются только между элементами в смежных слоях
ü могут допускаться обратные связи между смежными слоями или
внутри одно слоя, или же допускается посылка сигналов элементами
самим себе.
Каждая связь определяется тремя параметрами:
ü элементом, от которого исходит данная связь;
ü элементом, к которому данная связь направлена;
ü числом (обычно действительным), указывающий весовой коэффициент
(вес связи).
Отрицательное значение веса соответствует подавлению активности
элемента, а положительное значение - усилению его активности. То есть веса
могут быть положительными (возбуждающими) или отрицательными
(тормозящими).
Абсолютное значение весового коэффициента характеризует силу
связи.
Структура связей обычно представляется в виде весовой матрицы W, в
которой каждый элемент wij представляет величину весового коэффициента
для связи, идущей от элемента i к элементу j. Для описания структуры связей
может использоваться не одна, а несколько весовых матиц, если элементы
сгруппированы в слои. Матрица является памятью сети, хранящей
информацию о том, как должна выполняться задача.
Правило распространения сигналов в сети
Правило распространения сигналов сети является правилом
комбинирования входящих сигналов, вычисления исходящего сигнала, а
также посылки сигнала другим элементам. При этом в некоторых моделях
моменты обновления элементов выбираются случайным образом, в других
же моделях обновление некоторых групп элементов допускается только
после обновления определенных групп других элементов.
Правило комбинирования входящих сигналов
Часто входящие сигналы элемента комбинируют путем суммирования
их взвешенных значений (рис. 30).
75
0.7
-0.3
3.1
0.1
i
0.5
0.3
Рис. 30. Метод суммирования сигналов, направленных к i-му элементу.
n
net j = ∑ xi wij
i =1
net j = (0.7 × −0.3) + (0.1 × 3.1) + (0.3 × 0.5) = 0.25
− 0.3
[0.7 0.1 0.3] 3.1 
0.5 
.
или в векторном представлении
net j - результат комбинирования ввода элемента j, xi - выход
элемента i, а n – число задействованных связей.
Используются и другие формы комбинирования входящих сигналов,
такие как рассмотрение квадрата разности между значением силы связи и
значением передаваемого по связи сигнала с последующим суммированием
таких разностей для всех связей данного элемента.
Правило вычисления сигнала активности
Для всех элементов имеется правило вычисления выходного значения,
которое предполагается передать другим элементам или во внешнюю среду,
если речь идет о выходном элементе, представляющем конечный результат
вычислений. Это правило называют функцией активности (функцией
активации), а соответствующее значение называют активностью f (net ) ,
соответствующего элемента.
Функции активации
Тождественная функция
Функция активности для входных элементов может быть
тождественной функцией, то есть значение активности (сигнал, посылаемый
другим элементам) равно комбинированному вводу. Входные элементы
76
предназначены для распределения вводимых в сеть сигналов между
элементами сети, поэтому для выходных элементов обычно требуется, чтобы
исходящий от элемента сигнал, был таким же, как и входящий. То есть
входные элементы предназначены для того, чтобы распределять сигналы,
получаемые из внешней среды (их даже не считают частью нейронной сети).
Пороговая функция
В большинстве моделей нейронных сетей используются нелинейные
функции активации (активности). Пороговая функция ограничивает
активность значениями 0 или 1 в зависимости от значения комбинированного
ввода в сравнении с некоторой пороговой величиной θ (рис 31), то есть:
1, если net j ≥ θ
f (net ) = 
0, если net j < θ
.
f(net)
1
θ
net
Рис. 31. Пороговая функция активации
Часто удобно вычесть пороговое значение (смещение или сдвиг) из
значения комбинированного ввода и рассмотреть пороговую функцию в
форме, показанной на рисунке 31. Значение комбинированного ввода
n
net j = w0 + ∑ xi wij
i =1
1, если net j ≥ 0
f (net ) = 
0, если net j < 0
.
вычисляется по формуле:
f(net)
1
θ
net
Рис. 31. Пороговая функция активации со смешением
Сигмовидная функция
77
Сигмовидная функция активации (рис. 32) является наиболее часто
используемой. Выходные значения такой функции непрерывно заполняют
диапазон от 0 до 1:
f (net ) =
1
1 + exp(−net ) .
Наклон и область выходных значений логической функции могут быть
разными.
f(net)
net
Рис. 32. Сигмовидная функция активации
Правило обучения, корректирующие связи
Одним из главных преимуществ нейронных сетей заключается в том,
что они предполагают наличие правил, с помощью которых сеть может
программироваться автоматически. Типичной формой обучения является
управляемое обучение, когда для каждого набора данных, подаваемого в
процессе обучения на вход сети, соответствующий выходной набор известен.
Обычно в начале обучения весовые коэффициенты устанавливаются
равными случайным малым значениям, так что в первый раз при
предъявлении сети учебного образца маловероятно, что сеть произведет
верный вывод. Расхождение между тем, что даст сеть, и тем, что для данного
учебного набора должно быть получено на самом деле, составляет ошибку,
которая используется для корректировки весов.
В начале обучения весовые коэффициенты устанавливаются равными
малым случайным значениям, например из диапазона [-0.3;0.3]. В процессе
обучения на вход сети подаются образец за образцом, и в результате их
обработки весовые коэффициенты корректируются до тех пор, пока для всех
вводимых образцов ошибки не станут некоторого приемлемого достаточно
малого значения. В завершении процесса сеть тестируется на данных, не
представленных в фазе обучения: в результате можно оценить насколько
хорошо сеть работает с данными, которые в процессе обучения были ей
неизвестны.
Качество работы нейронной сети сильно зависит от предъявляемого в
процессе обучения набора учебных данных. Учебные данные должны быть
78
типичны для задачи, решению которой обучается сеть. Часто необходимо
выполнять и предварительную обработку учебных данных.
Таким образом, задача обучения нейронных сетей является просто
задачей нахождения множества сил (весов) связей, которое позволяет сети
проводить желаемые вычисления. Сеть снабжается множеством примеров
пар вход/выход (тренировочным множеством), и производится изменение ее
связей для того, чтобы аппроксимировать функцию, из которой были взяты
пары вход/выход. Затем сеть проверяется на способность к обобщению.
Процедура обучения с исправлением ошибок состоит в следующем: В
ходе тренировки в сеть подается входной сигнал, он проходит через сеть,
вырабатывая на выходных элементах множество значений. Затем
действительный выход сравнивается с желаемым образцом, и вычисляется
совпадение. Если выход и образец совпадают, то в сети не делается никаких
изменений. Однако если выход отличается от образца, то необходимо
изменить некоторые связи.
Пример 7. Предположим, что мы имеем два булевых входа x1 , x2 ∈ {0,1} и
один булевый выход o ∈ {0, 1} , а тренировочное множество задано
следующими парами (таблица 5) вход/выход (логическое И).
Таблица 5
Тренировочное множество для нейронной сети (логическое И)
№ x 1 x2 o( x1 , x2 ) = x1 ∧ x2
1 1 1
1
2 1 0
0
3 0 1
0
4 0 0
0
Тогда задача обучения состоит в том, чтобы найти веса w1 и w2 , а также
пороговое (или настроечное) значение θ такое, чтобы вычисленный выход
нашей сети (который задан линейной пороговой функцией) равнялся
желаемому выходу по всем примерам. Простым решением является
w1 = w2 =
1
, θ = 0,6 .
2
Действительно, из уравнения
1, если x1 / 2 + x2 / 2 ≥ 0.6
o( x1, x2 ) = 
0, если x1 / 2 + x2 / 2< 0.6
следует, что выходной нейрон срабатывает тогда и только тогда, когда
оба входа включены.
Пример 8. Предположим, что мы имеем два булевых входа x1 , x2 ∈ {0,1} и
один булевый выход o ∈ {0, 1}, а тренировочное множество (табл. 6) задано
следующими парами вход/выход (логическое ИЛИ).
79
Таблица 6
Тренировочное множество для нейронной сети (логическое ИЛИ)
№ x 1 x2 o( x1 , x2 ) = x1 ∨ x2
1 1 1
1
2 1 0
1
3 0 1
1
4 0 0
0
Тогда задача обучения состоит в том, чтобы найти веса w1 и w2 , а также
пороговое (или настроечное) значение θ такое, чтобы вычисленный выход
нашей сети (который задан линейной пороговой функцией) равнялся
желаемому выходу по всем примерам.
Простым решением является w1 = w2 = 1 , θ = 0,8 .
Действительно, из уравнения
.
1, если x1 + x2 ≥08
o( x1, x2 ) = 
.
0, если x1 + x2 < 08
следует, что выходной нейрон срабатывает тогда и только тогда, когда,
как минимум, один вход включен.
Существуют различные правила обучения такие как:
ü перцептронное обучающее правило (введенное Розенблатом,
являющееся типичным алгоритмом обучения с исправлением
ошибок для однослойной сети прямой проводимости с линейной
пороговой функцией активации);
ü дельта - обучающее правило;
ü обучение “победитель получает все”.
Нейронные сети, по существующим в настоящее время
представлениям, способны решать такие задачи, как распознавание образов,
выделение сигнала на фоне шума, исправление ошибок, контроль над
сложной
адаптивной
системой
управления
при
невозможности
формализовать экспертные знания или при отсутствии таковых. Доля
подобных систем на мировом рынке интеллектуальных систем в настоящее
время оценивается около 11%.
80
Контрольные вопросы
1. К какому направлению развития искусственного интеллекта относятся
искусственные нейронные сети (кибернетика «черного ящика» или
нейрокибернетика) и почему?
2. Кем были созданы первые нейросети? Какую задачу решали?
3. Из каких компонентов состоит искусственная нейронная сеть?
4. Что такое вес связи? Тормозящая связь, возбуждающая связь?
5. Как комбинируются входящие сигналы?
6. Что такое функции активации?
7. Какие функции активации Вы знаете?
8. Для чего нужно обучать нейронную сеть?
9. Что такое корректирующие связи?
10.Какие обучающие правила Вы знаете?
81
В 1909 году в Париже было большое торжество: открывали памятник
великому французскому натуралисту Жану Батисту Ламарку в
ознаменование столетия со дня выхода в свет его знаменитого сочинения
"Философия зоологии".
На одном из барельефов этого памятника изображена трогательная
сцена: в кресле в грустной позе сидит слепой старик - это сам Ламарк,
потерявший в старости зрение, а рядом стоит молодая девушка - его дочь,
которая утешает отца и обращается к нему со словами: "Потомство будет
восхищаться вами, мой отец, оно отомстит за вас".
Жан Батист де Моне шевалье де Ламарк родился 1 августа 1744 года во
Франции, в небольшом местечке. Он был одиннадцатым ребенком в
обедневшей аристократической семье. Родители хотели сделать его
священником и определили в иезуитскую школу, но после смерти отца
шестнадцатилетний Ламарк оставил школу и вступил в 1761 году
добровольцем в действующую армию. Там он проявил большую храбрость и
получил звание офицера. После окончания войны Ламарк приехал в Париж,
повреждение шеи заставило его оставить военную службу. Он стал учиться
медицине. Но он больше интересовался естественными науками, в
особенности ботаникой. Получая незначительную пенсию, он для заработка
поступил в один из банкирских домов.
После ряда лет усиленных занятий трудолюбивый и талантливый
молодой ученый написал большое сочинение в трех томах - "Флора
Франции", изданное в 1778 году. Там описано множество растений и дано
руководство к их определению. Эта книга сделала имя Ламарка известным, и
в следующем году его избрали членом Парижской академии наук. В
Академии он с успехом продолжал заниматься ботаникой и приобрел
большой авторитет в этой науке. В 1781 году его назначили главным
ботаником французского короля.
Другим увлечением Ламарка была метеорология. С 1799 по 1810 год он
издал одиннадцать томов, посвященных этой науке. Занимался он физикой и
химией.
В 1793 году, когда Ламарку уже было под пятьдесят, его научная
деятельность в корне изменилась. Королевский ботанический сад, где
работал Ламарк, был преобразован в Музей естественной истории.
Свободных кафедр ботаники в музее не оказалось, и ему предложили
заняться зоологией. Трудно было пожилому человеку оставить прежнюю
работу и перейти на новую, но огромное трудолюбие и гениальные
способности Ламарка все преодолели. Лет через десять он сделался таким же
знатоком в области зоологии, каким был в ботанике.
Прошло немало времени, Ламарк состарился, перешагнул рубеж в
шестьдесят лет. Он знал теперь о животных и растениях почти все, что было
известно науке того времени. Ламарк решил написать такую книгу, в которой
не описывались бы отдельные организмы, а были бы разъяснены законы
развития живой природы. Ламарк задумал показать, как появились животные
82
и растения, как они изменялись и развивались и как достигли современного
состояния. Говоря языком науки, он захотел показать, что животные и
растения не созданы такими, каковы они есть, а развивались в силу
естественных законов природы, т. е. показать эволюцию органического мира.
Это была нелегкая задача. Лишь немногие ученые до Ламарка
высказывали догадки об изменяемости видов, но только Ламарку с его
колоссальным запасом знаний удалось разрешить эту задачу. Поэтому
Ламарк заслуженно считается творцом первой эволюционной теории,
предшественником Дарвина.
Свою книгу Ламарк напечатал в 1809 году и назвал ее "Философия
зоологии", хотя там речь идет не только о животных, но и обо всей живой
природе. Не следует думать, что все интересовавшиеся в то время наукой
обрадовались этой книге и поняли, что Ламарк поставил перед учеными
великую задачу. В история науки часто бывало, что великие идеи оставались
непонятыми современниками и получали признание лишь много лет спустя.
Так случилось и с идеями Ламарка. Одни ученые не обратили на его
книгу никакого внимания, другие посмеялись над ней. Наполеон, которому
Ламарк вздумал преподнести свою книгу, так выбранил его, что тот не мог
удержаться от слез.
Под конец жизни Ламарк ослеп и, всеми забытый, умер 18 декабря
1829 года восьмидесяти пяти лет от роду. С ним оставалась лишь дочь его
Корнелия. Она заботилась о нем до самой смерти и писала под его диктовку.
Слова Корнелии, запечатленные на памятнике Ламарку, оказались
пророческими: потомство действительно оценило труды Ламарка и признало
его великим ученым. Но это случилось не скоро, через много лет после
смерти Ламарка, после того, как появилось в 1859 году замечательное
сочинение Дарвина "Происхождение видов". Дарвин подтвердил
правильность эволюционной теории, доказал ее на многих фактах и заставил
вспомнить о своем забытом предшественнике.
Сущность теории Ламарка заключается в том, что животные и растения
не всегда были такими, какими мы их видим теперь. В давно прошедшие
времена они были устроены иначе и гораздо проще, чем теперь. Жизнь на
Земле возникла естественным путем в виде очень простых организмов. С
течением времени они постепенно изменялись, совершенствовались, пока не
дошли до современного, знакомого нам состояния. Таким образом, все
живые существа происходят от непохожих на них предков, более просто и
примитивно устроенных.
Отчего же органический мир, или, иначе говоря, все животные и
растения, не стоял неподвижно, как часы без завода, а двигался вперед,
развивался, изменялся, как изменяется и теперь? Ламарк дал ответ и на этот
вопрос.
Развитие растений и животных зависит от двух главных причин.
Первая причина, по мнению Ламарка, заключается в том, что весь
органический мир сам по себе стремится непрерывно изменяться и
83
улучшаться, - это его неотъемлемое внутреннее свойство, которое Ламарк
назвал стремлением к прогрессу.
Вторая причина, от которой зависит, согласно учению Ламарка,
эволюция органического мира, - это воздействие на организмы той
обстановки, в которой они живут. Эта обстановка, или жизненная среда,
слагается из воздействия на животных и на растения пищи, света, тепла,
влаги, воздуха, почвы и т. д. Среда эта весьма разнообразна и изменчива,
поэтому она воздействует на организмы различным образом. В общих
словах, среда влияет на органический мир как непосредственно, так и
косвенно.
Ламарк считал, что растения и самые низшие животные изменяются
под воздействием окружающей среды прямо и непосредственно, приобретая
ту или иную форму, те или иные свойства. Например, растение, выросшее на
хорошей почве, получает совсем иной облик, нежели растение того же вида,
выросшее на плохой почве. Растение, выращенное в тени, непохоже на
растение, выращенное на свету, и т. д. Животные же изменяются по-другому.
Под влиянием изменения среды у них образуются различные новые
привычки и навыки. И привычка, вследствие постоянного повторения и
упражнения различных органов, развивает эти органы. Например, у
животного, которое постоянно живет в лесу и вынуждено лазать по деревьям,
разовьются хватательные конечности, а у животного, которое вынуждено
постоянно передвигаться на большие расстояния, разовьются сильные ноги с
копытами и т. д. Это будет уже не прямое, а косвенное влияние среды посредством привычек. Кроме того, Ламарк считал, что признаки, которые
приобретают организмы под влиянием среды, могут передаваться по
наследству.
Таким образом, две причины (с одной стороны - врожденное
стремление к совершенствованию, с другой стороны - влияние среды)
создают, согласно учению Ламарка, все многообразие органического мира.
С точки зрения современной биологии, в теории Ламарка многое
устарело. Например, современная наука отрицает, что в органическом мире
существует какое-то таинственное и необъяснимое стремление к
совершенствованию. Дарвин иначе объяснил относительно целесообразное
строение тела животных и растений и то, как они приспособляются к среде.
Главной причиной эволюции он считал естественный отбор. Влияние же
условий окружающей среды на организмы, которое занимает большое место
в учении Ламарка, признается и современной биологией.
Дарвин под конец своей жизни признал, что он не обратил
достаточного внимания на изменение организмов под влиянием окружающей
их среды. Современная биология придает влиянию среды большое значение.
Однако главная заслуга Ламарка не в объяснении причин эволюции, а в
том, что он первый, за полвека до Дарвина, предложил теорию о
естественном возникновении и развитии органического мира.
84
Идеи Ламарка о влиянии среды на организмы интересны не только для
истории биологии. В наше время они приобрели и практическое значение:
воздействием среды люди стали изменять свойства растений и животных.
Таким образом, Ламарк считал, что прижизненные приобретенные
способности наследуются потомками, например, дети спортсменов сильные, дети ученых обязательно будут умными. Дарвин, наоборот,
говорил, что все, что человек приобрел на протяжении жизни, не наследуется
детьми.
Классификация СИИ
Классификация систем искусственного интеллекта, или как их еще
называют Soft Computing приведена на рис. 33.
Термин "мягкие вычисления" (soft computing) введен Лофти Заде в
1994 году. Это понятие объединяет такие области как: нечеткая логика,
нейронные сети, вероятностные рассуждения, сети доверия и эволюционные
алгоритмы; которые дополняют друг друга и используются в различных
комбинациях или самостоятельно для создания гибридных интеллектуальных
систем. Поэтому создание систем работающих с неопределенностью, надо
понимать как составную часть "мягких" вычислений.
Компьютерный интеллект (soft computing)
Экспертные системы
(Knowledge Based
Expert Systems)
Нейронные сети
(Artificial Neural
Network)
Системы на
нечеткой логике
(Fuzzy logic)
Эволюционные
алгоритмы
(Evolution
algorithms)
Рис. 33. Классификация систем искусственного интеллекта
По существу в 1970 году Заде был создан новый метод вычислительной
математики, который был поддержан аппаратными средствами (нечеткими
процессорами) который в ряде проблемных областей стал более
эффективным, чем классические методы. Первоначально эти области
входили в проблематику искусственного интеллекта. Постепенно круг этих
областей
существенно расширился и сформировалось направление
"вычислительного интеллекта". В это направление в настоящее время входят:
• нечеткая логика и теория множеств;
• нечеткие экспертные системы;
• системы приближенных вычислений;
• теория хаоса;
• фрактальный анализ;
• нелинейные динамические системы;
• гибридные
системы
(нейронечеткие
или
нейрологические,
генетиконейронные, нечеткогенетические или логикогенетические
системы);
85
• системы, управляемые данными (нейронные сети, эволюционное
вычисление).
Первые три части систем искусственного интеллекта мы рассмотрели
ранее, теперь займемся эволюционными алгоритмами.
Природа поражает своей сложностью и богатством всех своих
проявлений. Среди примеров можно назвать сложные социальные системы,
иммунные и нейронные системы, сложные взаимосвязи между видами. Они всего лишь некоторые из чудес, которые стали более очевидны, когда мы
стали глубже исследовать себя самих и мир вокруг нас. Наука - это одна из
сменяющих друг друга систем веры, которыми мы пытаемся объяснить то,
что наблюдаем, этим самым, изменяя себя, чтобы приспособиться к новой
информации, получаемой из внешнего мира. Многое из того, что мы видим и
наблюдаем, можно объяснить единой теорией: теорией эволюции через
наследственность, изменчивость и отбор.
Ученые, занимающиеся компьютерными исследованиями, обратились
к теории эволюции в поисках вдохновения. Возможность того, что
вычислительная система, наделенная простыми механизмами изменчивости и
отбора, могла бы функционировать по аналогии с законами эволюции в
природных системах, была очень привлекательна. Эта надежда стала
причиной появления ряда вычислительных систем, построенных на
принципах естественного отбора.
В 1966г. Л.Дж. Фогель, А.Дж. Оуэнс, М.Дж.Волш предложили и
исследовали эволюцию простых автоматов, предсказывающих символы в
цифровых последовательностях. В 1975г. Д.Х. Холланд предложил схему
генетического алгоритма. Эти работы легли в основу главных направлений
разработки эволюционных алгоритмов.
Простой генетический алгоритм был впервые описан Гольдбергом на
основе работ Холланда.
Эволюционный алгоритм - компьютерная система интеллектуального
принятия решений. В основе эволюционного алгоритма лежит эволюционная
стратегия.
В настоящее время эволюционные алгоритмы применяются для поиска
оптимального решения широкого класса задач, таких как моделирование и
идентификации систем, численная комбинаторная оптимизация, задачи
планирования и управления, автоматическое обучение, техническое
проектирование и др. Эволюционные алгоритмы обладают приемлемой
эффективностью при приемлемых затратах на широком классе задач.
Эволюционные алгоритмы относятся к классу вероятностных
алгоритмов. В их основу положена упрощённая модель популяции живых
существ. В процессе работы алгоритма имитируется развитие популяции в
искусственных условиях. Каждому индивиду соответствует точка в
поисковом пространстве. Из биологии известно, что индивидуальные
наследственные отклонения (скрещивание и мутация) и борьба за
существование (селекция) в длинном ряду поколений приведут к изменению
видов в направлении все большей приспособленности к конкретным
86
условиям существования. Поэтому в течение жизни популяции используются
операции аналогичные природным: селекция, скрещивание, мутация, что
способствует повышению средней приспособленности индивидов на каждом
этапе эволюции. Шансы каждого индивида создать потомство и передать ему
свои признаки тем выше, чем больше его пригодность. Вследствие чего
постепенно создаются все более и более приспособленные индивиды удачные решения.
Компьютерная программа называется интеллектуальной, если она
решает задачу, которую человек может решить, только используя интеллект.
ЭА относятся к направлению ИИ, называемого «кибернетика черного
ящика».
Классификация эволюционных алгоритмов
На рис. 34 приведена классификация эволюционных алгоритмов.
Разделение эволюционных алгоритмов происходит по их функциям, а также
по операторам, входящим в их состав.
Эволюционные алгоритмы
Эволюцио
нные
стратегии
Эволюцио
нное
программ
ирование
Генетичес
кие
алгоритмы
Генетичес
кое
программ
ирование
Классифи
цирующие
системы
Адаптивны
й
случайный
поиск
Рис. 34. Классификация эволюционных алгоритмов
1. Эволюционные стратегии. Были предложены Рехтенбергом и
Швефером. Индивид здесь представляется в виде вещественных чисел.
Основным оператором является мутация. К самим переменным может
быть добавлена дисперсия. Скрещивание является вспомогательным
оператором.
2. Эволюционное программирование. Автор: Р. Оуэн (1968 г.).
Эволюционным образом создается популяция компьютерных
программ, применяются операторы скрещивания и мутации до
получения программы-наследника. Индивид - компьютерная
программа, решающая данную задачу.
3. Генетические алгоритмы. Основоположник: Д. Холланд (1974 г.).
Индивиды представляют собой бинарную строку. Основной оператор
(исторически) – скрещивание. Мутация является вспомогательной.
4. Генетическое программирование. Автор: J. Koza (1984 г.). Индивиды
представляют собой деревья (дерево – граф, каждая вершина которого
имеет единственного продолжателя).
5. Классифицирующие системы.
6. Адаптивный случайный поиск. Растригин.
87
Основные определения
Рекомбинация (скрещивание) - оператор преобразования решения, в
котором задействованы два и более индивидов.
Мутация - оператор изменения индивида, применяемый к одному
индивиду с определенной вероятностью.
Мутанты - индивиды, к которым применена операция мутации.
Генотип - способ представления индивида в хромосоме.
Фенотип - сам индивид в том виде, в котором он существует.
В таблице 7 приведены аналоги природных терминов с терминами
компьютерного мира.
Таблица 7
Аналоги природных терминов с терминами компьютерного мира
Природа
Компьютерный мир
Индивид
Решение задачи
Популяция (группа
Множество решений
индивидов)
Пригодность
Качество решения
Хромосома
Представление решения
Ген
Часть представления решения
Рост (выращивание)
Декодирование представления решения
Скрещивание
Оператор поиска или оператор порождения нового
решения
Мутация
Маловероятное небольшое изменение хромосомы
Селекция
Повторное использование имеющихся решений
Внешняя среда
Решаемая проблема
Рассмотрим цикл эволюции (рис. 35). Исходная популяция проходит
селекцию, то есть из всех индивидов определенным образом отбирается
заранее заданное число родителей. Родители, рекомбинируя и мутируя
превращаются в потомков. Далее происходит отбор индивидов в новое
поколение. В него могут войти как только потомки, так и потомки вместе с
родителями. Далее снова происходит селекция. Цикл повторяется, пока не
будет найдено решение задачи, или выполнено условие останова.
88
Селекция
Родители
Рекомбинация
Мутация
Популяция
Замещение
Потомки
Рис. 35. Цикл эволюции
Преимущества эволюционных алгоритмов
1. Не требуют никакой дополнительной информации о поверхности
ответа (ГА работает с бинарной строкой, что бы она не означала);
2. Разрывы, существующие на поверхности ответа незначительно влияют
на эффективность оптимизации;
3. Устойчивы к попаданию в локальные оптимумы;
4. Хорошо работают при решении задач многоцелевой оптимизации;
5. Могут быть использованы для широкого класса задач;
6. Просты и прозрачны в реализации (низкие затраты на разработку и
применение);
7. Легко включают другие методы;
8. Решения легко поддаются интерпретации (в отличие от нейронных
сетей)
9. Могут быть использованы в задачах с изменяющейся средой.
Недостатки эволюционных алгоритмов
1. Нет гарантии о получении оптимального решения за конечное время.
2. Слабое теоретическое обоснование (слабая сходимость по вероятности)
3. Большое количество настраиваемых параметров, выбор которых может
принципиально повлиять на эффективность алгоритма.
4. Высокие вычислительные затраты (медленная работа, долго ждать
результатов).
5. Конфигурация является непростой (кодирование решения).$
6. Невозможно найти все решения задачи, находится одно из них.
Области применения ЭА
1. Численная комбинаторная оптимизация.
2. Моделирование и идентификация систем.
89
Планирование и управление.
Техническое проектирование.
Извлечение данных, приобретение знаний.
Автоматическое обучение.
Искусственная жизнь.
Эволюционные алгоритмы используются для решения широкого
спектра разнообразных задач.
Одна из таких задач эта разработка новых видов лекарств. Результат
внедрения молекулы будущего лекарства (эту молекулу называют лиганда что-то, что следует соединить с чем-нибудь) в протеин зависит от идеального
совпадения 3-х мерных форм обеих частей. Точно так же, как ключ только
строго определенной формы может открыть заданную дверь, так и лиганда
только определенной формы способна соединить молекулы протеина.
Подбор такой лиганды - является сложным и трудоемким процессом.
На эту должность существует десятки тысяч кандидатов, кроме того, каждый
из них имеет множество связей и он может по-разному располагаться в
пространстве. В общем случае, каждая лиганда может иметь бесконечное
множество различных форм. Конечно, большее количество из них является
непригодными по своим химическим и физическим свойствам. Несмотря на
это, пространство поиска нужной формы огромно.
В работе, опубликованной в Chemical & Biology, исследователи из
Agouron Pharmaceuticals Inc. показали, как можно использовать
эволюционный алгоритм для предсказания поведения лиганды при
внедрении ее в протеазу ВИЧ для создания лекарства против СПИДа.
Эволюционный алгоритм работал с популяцией около 1000 различных
форм лиганды, со случайными операторами поворотов и селекцией, которая
предпочитала лиганды с большим энергетическим соответствием.
Эволюционные алгоритмы использовались при создании других
вычислительных структур, например, автоматов или сетей сортировки. В
машинном обучении они использовались при проектировании нейронных
сетей или управлении роботами. Они также применялись при моделировании
развития в различных предметных областях, включая биологические
(экология, иммунология и популяционная генетика), социальный (такие как
экономика и политические системы) и когнитивные системы.
Областями применения эволюционных алгоритмов являются задачи
управления доставкой товаров и медицинской диагностики. Они даже могут
использоваться при симуляции сражения при обучении военных;
эволюционных алгоритм может служить интерактивным противником,
который адаптирует свою тактику при изменяющейся ситуации. Кроме того,
эти алгоритмы можно использовать при разработке аппаратных средств на
этапе физических устройств и электронных цепей.
Тем не менее, возможно наиболее популярное приложение
эволюционных алгоритмов - оптимизация многопараметрических функций.
Многие реальные задачи могут быть сформулированы как поиск
оптимального значения, где значение - сложная функция, зависящая от
3.
4.
5.
6.
7.
90
некоторых входных параметров. В некоторых случаях, представляет интерес
найти те значения параметров, при которых достигается наилучшее точное
значение функции. В других случаях, точный оптимум не требуется решением может считаться любое значение, которое лучше некоторой
заданное величины. В этом случае, эволюционные алгоритмы - часто
наиболее приемлемый метод для поиска "хороших" значений. Сила
генетического алгоритма заключена в его способности манипулировать
одновременно многими параметрами, эта особенность ЭА использовалось в
сотнях прикладных программ, включая проектирование самолетов,
настройку параметров алгоритмов и поиску устойчивых состояний систем
нелинейных дифференциальных уравнений
В дальнейшем эволюционные алгоритмы будут использоваться при
разработке интеллектуальных машин, которые смогут самообучаться.
Причем главная идея состоит не в том, чтобы компьютер соперничал с
людьми; это уже сделано, например, в играх путем перевода действий
эксперта в программу поведения компьютера. Главная цель состоит в том,
чтобы компьютер мог обучаться без человека-эксперта.
Одним из шагов в этом направлении была разработка алгоритма,
который самообучался игре в шашки, не полагаясь на какие либо советы
эксперта. Алгоритм использовал популяцию нейронных цепей для оценки
позиции, которая встречалась бы в игре. Фактически каждая сеть задавала
стратегию игры, путем предпочтения одной позиции перед другой.
Эволюционный алгоритм применял к нейронным сетям различные методы
эволюционных вычислений, улучшая, таким образом, качество игры на
каждой последующей итерации.
Всего через 10 итераций лучшая сеть легко обыгрывала своих
создателей. После 100 итераций лучшая сеть играла против людей на
игровом сервере Microsoft Network (www.zone.com). И заработала рейтинг
"класса А", что лишь на один уровень ниже звания "эксперт" Американской
Федерации. Конечно, соперникам не говорили, что они играют с
компьютерной программой. Некоторые люди даже отмечали удачные ходы
соперника.
Эффективность ЭА
ЭА обладают приемлемой эффективность затрат на широком классе
проблем (рис. 36).
ЭА присущ внутренний параллелизм. Улучшение индивидов
осуществляется параллельно, что приводит к уменьшению ошибок
(устойчивости) и робастности (применимость к широкому классу задач без
необходимости перенастройки)
Робастность - это устойчивость системы к различным изменениям
окружающей среды. Устойчивость к смене параметров системы (если они
есть), к выбору временного интервала
91
Термин робастный используется строго только в математической
статистике. Имеет некоторые отличия от "устойчивый", хотя и близок по
смыслу. Является синонимом слова "устойчивый". Поскольку нет
сложившегося определения, лучше говорить устойчивый по отношению к
чему-либо.
Эволюционный алгоритм
Случайный поиск
Локальный поиск
Локальный экстремум.
Рис 36. Сравнительная характеристика эффективности различных методов
поиска
Предположим, есть реальная задача, сопряженная с поиском
оптимального решения, как узнать, является ли ЭА хорошим методом для ее
решения? До настоящего времени не существует строгого ответа, однако
многие исследователи разделяют предположения, что если пространство
поиска, которое предстоит исследовать, - большое, и предполагается, что оно
не совершенно гладкое и унимодальное (т.е. содержит один гладкий
экстремум) или не очень понятно, или если функция приспособленности с
шумами, или если задача не требует строго нахождения глобального
оптимума - т.е. если достаточно быстро просто найти приемлемое "хорошее"
решение (что довольно часто имеет место в реальных задачах) - ЭА будет
иметь хорошие шансы стать эффективной процедурой поиска, конкурируя и
превосходя другие методы, которые не используют знания о пространстве
поиска.
Если же пространство поиска небольшое, то решение может быть
найдено методом полного перебора, и можно быть уверенным, что
наилучшее возможное решение найдено, тогда как ЭА мог с большей
вероятностью сойтись к локальному оптимуму, а не к глобально лучшему
решению. Если пространство гладкое и унимодальное любой градиентный
алгоритм, такой как, метод скорейшего спуска будет более эффективен, чем
ЭА. Если о пространстве поиска есть некоторая дополнительная информация
(как, например, пространство для хорошо известной задачи о коммивояжере),
методы поиска, использующие эвристики, определяемые пространством,
часто превосходят любой универсальный метод, каким является ЭА. При
достаточно сложном рельефе функции приспособленности методы поиска с
единственным решением в каждый момент времени, такой как простой метод
спуска, могли "затыкаться" в локальном решении, однако считается, что ЭА,
так как они работают с целой "популяцией" решений, имеют меньше шансов
92
сойтись к локальному оптимуму и робастно функционируют на
многоэкстремальном ландшафте. Эффективность ГА сильно зависит от таких
деталей, как метод кодировки решений, операторы, настройки параметров,
частный критерий успеха.
Схема работы эволюционного алгоритма
В общих чертах работу ЭА можно представить так: он создает
популяцию особей, каждая из которых является решением некоторой задачи,
а затем эти особи эволюционируют по принципу "выживает сильнейший"
(survival of the fittest), то есть остаются лишь самые оптимальные решения.
Работа ЭА представляет собой итерационный процесс, который
продолжается до тех пор, пока не выполнятся заданное число поколений или
какой-либо иной критерий остановки.
Каждую особь описывает хромосома (это данные, описывающие
определенное решение задачи, в подавляющем большинстве они выражены
массивом), хромосома состоит из генов (элементы массива), которые
располагаются в определенных позициях хромосомы. Вообще в большинстве
случаев хромосома представляет собой битовую строку, где каждый бит
является геном, но каждый программист волен выбирать ту форму, которая
ему более удобна для решения конкретной задачи. Итак, вся наследственная
информация, или генотип храниться в хромосомах.
Работа ЭА имитирует естественную эволюцию только в очень
упрощенном варианте и можно выделить несколько этапов работы ЭА.
Обобщенный ЭА
Инициализировать исходную популяцию (Создать популяцию). На этом
этапе мы случайным образом создаем начальную или стартовую
популяцию особей. Алгоритм генерации стартовой популяции в общем
случае зависит от условий конкретной задачи.
2 Оценить популяцию.
3 Повторять, пока не выполнится условие останова.
3.1 Селекция (отобрать часть популяции для воспроизводства) Здесь
алгоритм выбирает особей в следующее поколение. При этом большие
шансы выжить имеют более приспособленные особи-решения.
Существуют несколько алгоритмов для решения проблемы селекции.
Чем более приспособлена особь, тем больше у нее шансов выжить.
3.2 Рекомбинация (выполняется скрещивание генов отобранных родителей).
В этой части ГА случайным образом выбираются две особи, которые
затем по определенным правилам обмениваются генами. Скрещиваются
не все особи в популяции - существует вероятность скрещивания для
пары особей, заданная заранее.
3.3 Мутация (случайным образом осуществляется мутация полученной
популяции). Этот этап ГА с заданной (обычно очень маленькой)
1
93
вероятностью случайным образом изменяет случайный ген особи (для
битовых строк инвертирует значение мутирующего бита).
3.4 Оценивание (оценить пригодность новой популяции).
3.5 Замещение (на основе полученной пригодности выбрать выживших
индивидов).
Замечание 1. Не во всех ЭА присутствуют все эти шаги.
Замечание 2. Порядок шагов может изменяться
Замечание 3. Количество различных ЭА превышает количество
ученых, работающих в этой области значительно.
Теперь взглянем на ЭА в целом (рис. 37). Его работа фактически
заключается в выполнении цикла. Он последовательно выполняет селекцию,
скрещивание, генерирует все новые и новые поколения. В этом процессе
выживают только самые приспособленные особи, то есть самые оптимальные
решения. Причем улучшение породы происходит как бы само собой,
программисту необходимо только организовать цикл. Условием выхода из
цикла может быть, например заданное количество поколений или получение
особи, пригодность (приспосабливаемость) которой больше чем нам
необходимо для решения задачи.
Выбор способа представления решения
Инициализация популяции
Оценка популяции
Условие останова
выполнено
да
Вывод
результата
нет
Селекция
Скрещивание
Мутация
Рис. 37. Блок схема работы эволюционного алгоритма.
Одним из главных источников критических замечаний в адрес
генетического алгоритма со стороны малознакомых с ним людей являются
результаты тестирования ГА на функции вида f=x2. Действительно,
результаты эти малоутешительные. ГА очень медленно движется к решению
и никак не может сойтись в нем. Его обгоняет не то, что метод Ньютона,
94
даже метод пошагового поиска. Однако здесь нет ничего удивительного, это
тот же результат, что и при стрельбе из пушки по воробьям. Тестирование
ГА должно проводиться не на унимодальных, а на многоэкстремальных
задачах высокого уровня сложности.
Ниже в таблице 8 приведен список часто используемых в литературе
тестовых целевых функций задачи минимизации. Часть из них была
специально разработана для тестирования ГА. Первые две функции традиционные, третья - для любителей градиентного спуска. Функции №4№7 имеют более десятка миллионов локальных минимумов. Функция №6
симметричная и довольно гладкая, однако ее главный секрет заключается в
наличии локального минимума, который мало отличается от глобального по
значению целевой функции, но находится вдали от него в пространстве
поиска.
№
Таблица 8
Целевые функции для тестирования генетического алгоритма
Функция
Область
Координаты
поиска
глобального
минимума
1
f ( x) = ∑ xi2
− 5,12 ≤ xi ≤ 5,12
xi = 0, i = 1..3
2
3
f ( x) = 100( x12 − x22 ) 2 + (1 − x1 )2
− 2,048 ≤ xi ≤ 2,048
x1 = 1, x2 = 1
5
− 5,12 ≤ xi ≤ 5,12
xi = −5,12, i = 1..5
− 1,28 ≤ xi ≤ 1,28
xi = 0, i = 1..30
− 5,12 ≤ xi ≤ 5,12
xi = 0, i = 1..20
− 500 ≤ xi ≤ 500
xi = 420,9687, i = 1..10
− 600 ≤ xi ≤ 600
xi = 0, i = 1..10
3
i =1
f ( x) = ∑ int( xi )
i =1
4
30
f ( x) = ∑ ixi4 + Gauss(0,1)
i =1
5
20
f ( x) = nA + ∑ xi2 − A cos(2πxi )
i =1
6
10
f ( x) = ∑ (− xi sin( | xi | ))
i =1
7
10
f ( x) = ∑
i =1
x
2
i
10
4000
− ∏ cos(
i =1
xi
i
) +1
Проектирование эволюционных алгоритмов (EA-Design)
Для того чтобы спроектировать эволюционный алгоритм необходимо
пройти следующие этапы:
1. Выбрать способ представления решения.
2. Решить каким образом инициализировать популяцию.
3. Разработать способ отображения генотипа в фенотип и обратно.
Эволюционные алгоритмы работают на уровне генотипа. Хромосома
является кодом индивида. Процедура превращения генотипа в фенотип
называется декодирование, а фенотипа в генотип – кодирование. По
фенотипу можно вычислить значение целевой функции.
95
4. Разработать способ оценивания индивида.
Пригодность индивида – значение целевой функции в задачах
безусловной оптимизации.
Один из классификационных признаков делит оптимизационные
задачи на два класса: задачи безусловной оптимизации и задачи условной
оптимизации.
Первые из них характеризуются тем, что минимум функции f : R m → R
ищется на всем пространстве: f ( x) → min x ∈ R m . В задачах же второго
класса поиск минимума идет на некотором собственном подмножестве Ω
пространства R m : f ( x) → min x ∈ Ω .
Множество Ω часто выделяется ограничениями типа равенств g 0 ( x) = Θ ,
где g 0 : R m → R k и (или) ограничениями типа неравенств g1 ( x) ≤ Θ , где
g1 : R m → R l .
5. Разработать
подходящие
операторы
мутации
(приемлемые,
отражающие наше представление о маловероятном слабом изменении).
Мутация может привести к появлению недопустимого индивида, что
необходимо исключать. Мутация должна давать допустимые хромосомы.
6. Разработать подходящие операторы рекомбинации (необходимо, чтобы
получаемое потомство имело смысл).
7. Решить, как управлять популяцией (выбор вероятности мутации и
рекомбинации).
8. Решить каким образом отбирать индивидов, которые станут
родителями (оператор селекции).
9. Решить, как отбирать индивидов, которые будут заменены другими.
10.Решить, как останавливать алгоритм.
Критерии останова
Останавливать эволюционный алгоритм можно:
ü по прошествии определенного количества поколений;
ü после выполнения определенного количества оценивания пригодности
индивида;
ü по истечении определенного компьютерного времени;
ü по получению определенного результата (например, 150 поколений без
улучшения).
Возможна любая комбинация критериев останова.
96
Пример работы ЭА
Рис 38. Задача оптимизации. Найти максимум функции на заданном
интервале.
Тогда можно разбить данный интервал на некоторое количество
значений x, равное Nx = 3,2 / 0,.1 = 32. В результате мы имеем следующее: на
интервале от 0 до 3,2 существует 32 значения аргумента x и какое-то из них
соответствует максимуму функции y = f(x) с удовлетворяющей нас
точностью ε = 0,1 .
Теперь осталось выбрать способ представления числа и задать его в
виде строки. Существует ряд способов представления чисел в генетических
алгоритмах: в десятичной системе, в двоичной системе, с плавающей точкой,
с использованием виртуального алфавита символов и т.д. Самым
распространенным является бинарное представление, т.е. в двоичной
системе. Длина строки выбирается исходя из вышеприведенных расчетов. В
нашем примере для представления 32-х значений аргумента x достаточно
иметь строку длины l = log 2 32 = 5 символов. После проведения всех
необходимых преобразований наша популяция будет выглядеть, так как
показано в таблице 10. В этом случае индивид с кодом 00000 будет
соответствовать левой границе интервала (x = 0), а индивид с кодом 11111 .
правой (x = 3,1). Любая другая комбинация нулей и единиц будет
соответствовать значению аргумента внутри заданного интервала и никогда
не нарушит его границы.
97
Таблица 9
x
x1
x2
x3
x4
x5
x6
Фрагмент популяции
Значение
0,1
1,2
2,4
1,6
0,4
2,8
Таблица 10
x
x1
x2
x3
x4
x5
x6
Кодирование индивидов
Значение
Индивид
0,1
00001
1,2
01100
2,4
11000
1,6
10000
0,4
00100
2,8
11100
Итак, с кодированием мы разобрались, следуем далее по блок-схеме
(рис. 37). В третьем блоке производится оценка индивидов популяции.
Действительно, для того, чтобы включить в работу механизм естественного
отбора необходимо, прежде всего, выяснить какие особи в популяции
являются сильными, а какие слабыми. В генетических алгоритмах оценка
производится на основании значений целевой функции (в нашем примере это
функция y = f(x)).
После оценки, всем индивидам присваиваются так называемые
значения пригодности (таблица 11). Так как мы решаем задачу
максимизации, то «сильнее» будет тот индивидуум, у которого значение
пригодности выше. Основное требование к пригодности состоит в том, что
она должна выражаться скалярным числом. Скаляр (от лат. scalaris —
ступенчатый), величина, каждое значение которой может быть выражено
одним (действительным) числом. Примерами скаляров являются длина,
площадь, время, масса, плотность, температура, работа и др. Если же целевая
функция не в состоянии удовлетворить это требование, то на ее основе
вводят функцию пригодности, которая осуществляет все необходимые
преобразования.
98
Таблица 11
x
x1
x2
x3
x4
x5
x6
Назначение пригодности
Значение
Индивид
0,1
00001
1,2
01100
2,4
11000
1,6
10000
0,4
00100
2,8
11100
Пригодность
4
5,5
3
5,2
5,8
3,09
Оператор отбора (селекция). На основании предварительно
вычисленных значений пригодности выбирает из популяции наиболее
«сильные» индивиды, т.е. представляет собой идеализированный вариант
естественного отбора в природе. Существует несколько вариантов
реализации механизма отбора. Мы рассмотрим самый простой из них турнирный отбор. Из популяции случайно выбираются несколько индивидов,
и среди них устраивается турнир (сравниваются значения пригодности).
Победитель турнира, т.е. индивид с наибольшим значением пригодности
переходит к следующему этапу.
Скрещивание или «кроссинговер» - играет роль основного поискового
средства генетического алгоритма. Механизм его работы прост и основан на
механизме природного скрещивания. Пара индивидуумов выстраивается
друг перед другом; внутри каждого из них выбирается точка пересечения, и
они обмениваются частями генетического кода, расположенными до этой
точки или после нее. Существуют, также, модификации скрещивания,
использующие более одной точки пересечения. Смысл скрещивания состоит
в нахождении новых комбинаций генетического кода, обладающих более
высокой пригодностью, чем родители. Допустим из нашей популяции
(таблица 3) для скрещивания были выбраны индивиды с номерами 1 и 2.
Проиллюстрируем этот процесс (рис. 39).
Рис. 39. Одноточечное скрещивание
При расшифровке генетического кода потомков мы получим значения
аргумента функции соответственно: 0.9 и 0.4. Интересный факт: если
посмотреть на график (рис. 38), то можно заметить, что и первый и второй
потомки оказались «сильнее» чем их родители, ведь они расположены ближе
к искомой цели. Таким образом, проводя операцию скрещивания для всех
99
индивидов, прошедших отбор мы получаем новое поколение, которое будет
«сильнее» предыдущего.
Теория строительного блока
Возникает вопрос: так как процесс отбора и скрещивания носит
случайный характер, то почему же тогда популяция из поколения в
поколение становится «сильнее»? Как из случайности образуется
закономерность? Каким образом возникает движущая сила эволюционного
процесса? Ответы на эти вопросы дает теория «строительного блока»,
предложенная в свое время Джоном Холландом одним из основоположников
рассматриваемого здесь направления в науке.
Согласно этой теории лучшее (другими словами самое «сильное»)
решение строится из небольших участков генетического кода (генов или их
совокупностей), обладающих повышенной пригодностью. Такие участки
называются строительными блоками. Индивиды - носители строительных
блоков сильнее других в популяции и образуют подмножества, для которых
можно определить общий шаблон. Шаблон - это строка той же длины, что и
индивид, но использующая расширенный алфавит символов. Он содержит
дополнительный символ «*», называемый символом безразличия. Например,
шаблон вида 1*0* представляет подмножество индивидуумов (1100, 1101,
1000, 1001). Для нашей популяции (таблица 11) средняя пригодность
индивидуумов с номерами 3, 4 и 6 оказывается ниже, чем индивидуумов с
номерами 1, 2, 5. Отсюда вывод: в данной популяции шаблон вида 0****
«сильнее» чем 1****. Значит с уверенностью можно сказать, что ген со
значением 0, стоящий в первой позиции индивида является строительным
блоком решения данной задачи. На графике функции (рис. 36) область,
определяемая шаблоном 0****, то есть множество значений аргумента x от 0
до 1.6 действительно содержит искомое решение. При более детальном
изучении шаблонов Холланд обратил внимание на некоторые
закономерности, выраженные им в теореме о шаблоне. Селективная часть
этой теоремы говорит нам о том, что в популяции из поколения в поколение
будет наблюдаться экспоненциальный рост количества индивидов,
содержащих шаблон Н. В том случае, если средняя пригодность этих
индивидуумов выше средней пригодности популяции, и экспоненциальное
уменьшение количества индивидов представителей Н, в случае если их
средняя пригодность ниже средней по популяции. Формально данное
Оператор мутации работает следующим образом: внутри индивида
выбирается позиция, в которой происходит изменение значения гена на
любое другое, выбираемое случайно из алфавита. На рисунке 40 показано
графическое представление процесса мутации.
И опять возникает вполне резонный вопрос: если ранее рассмотренные
операторы селекции и скрещивания приводят популяцию к оптимальному
решению, то чем объясняется необходимость включения оператора мутации?
100
Рис. 40. Графическая иллюстрация оператора мутации
Повышенная сложность решаемой задачи приводит к тому, что через
несколько поколений все индивиды популяции станут тождественны друг
другу и при этом не будет найдено лучшее решение. Скрещивание
становится просто бессмысленным. Мутация некоторым образом
«зашумляет» данный процесс, как бы перебрасывая популяцию в новые
области пространства решений и не давая генетическому алгоритму
«застревать» в одной точке.
И, наконец, «замещение». Он символизирует процесс замены старой
популяции на новую, созданную операторами селекции, скрещивания и
мутации, завершая, тем самым, формирование нового поколения.
Проектирование представления
Как мы говорили ранее при проектировании представления
необходимо выбрать подходящий способ представление индивида в виде
генотипа, при этом следует учитывать то, какие будут генетические
операторы, и каким образом решение будет кодироваться и декодироваться.
Рассмотрим различные способы представления решения. Существует
дискретное и непрерывное представление. К дискретным способам относятся
бинарное представление, порядковое представление. К непрерывным –
представление вещественными числами.
Бинарный алфавит
При бинарном представлении индивид представляет собой двоичную
строку необходимой длины. Фенотипом при этом может являться целое
число, вещественное число, расписание занятий, определенный набор
параметров и др.
Таблица 12
Пример бинарного представления
1 0 0 1 1 0 0 1
Например, преобразуя генотип из таблицы 12, получаем следующий
результат:
Число,
1 ⋅ 2 7 + 0 ⋅ 2 6 + 0 ⋅ 2 5 + 1 ⋅ 2 4 + 1 ⋅ 2 3 + 0 ⋅ 2 2 + 0 ⋅ 21 + 0 ⋅ 2 0 = 153 .
полученное в результате, может являться значение функции, может быть
давлением на рычаг, и т.д.
101
Если изначально стояла задача составления оптимального расписания,
состоящего из восьми работ, находящихся на разных этапах, тогда
декодирование индивидов может быть таким, как показано в таблице 13.
Допустим, что 1 означает второй этап, а 0 – первый.
Таблица 13
Пример декодирования индивида
номер работы этап
1
II
2
I
3
I
4
II
5
II
6
I
7
I
8
II
Порядковое представление
При порядковом представлении значение имеет порядок расположения
знаков в хромосоме (цифр, букв и пр.). То есть фенотип (решение) зависит от
порядка элементов решения. Такое представление используется в задачах
упорядочивания (табл. 14).
Например, задача построения расписания, задача коммивояжера
(каждый город имеет свой номер от 1 до N, перестановка чисел от 1 до N
является представлением решения).
Таблица 14
Пример порядкового представления
2 5 7 8 3 1 4 6
Основная проблема: при порядковом представлении состоит в том, что
необходимы специальные эволюционные операторы, обеспечивающие
допустимость индивидов-потомков после применения операторов мутации и
скрещивания.
Представление вещественными числами
Идея использовать в виде хромосомы вектор вещественных значений
появилась у исследователей в области ГА при решении задач непрерывной
оптимизации (рис. 41). Двоичное представление хромосом влечет за собой
определенные трудности при выполнении поиска в непрерывных
пространствах, которые связаны с большой размерностью пространства
поиска.
102
Как
известно,
для
кодирования
признака,
принимающего
действительные значения в некотором диапазоне, в битовую строку,
используется специальный прием. Интервал допустимых значений признака
xi разбивают на участки с требуемой точностью. Для преобразования
целочисленного значения гена
из множества
число из интервала пользуются формулой:
в вещественное
,
где N - количество разрядов для кодирования битовой строки. Чаще
всего используются значения N = 8; 16; 32.
При увеличении N пространство поиска расширяется и становится
огромным. В иностранных источниках по RGA (Real-coded genetic algorithm,
представление вещественными числами) часто приводится такой пример.
Пусть для 100 переменных, изменяющихся в интервале [-500; 500], требуется
найти минимум с точностью до шестого знака после запятой. В этом случае
при использовании ГА с двоичным кодированием длина строки составит
3000 элементов, а пространство поиска - около 10 в степени 1000.
Для решения таких задач в непрерывных пространствах возник новый
тип ГА - генетический алгоритм с вещественным кодированием (англ.: Realcoded Genetic Algorithm, RGA). Основная идея RGA заключается в том,
чтобы напрямую представлять гены в виде вещественных чисел, т.е. генотип
объекта становится идентичным его фенотипу. Вектор хромосомы состоит из
вектора вещественных чисел, и точность найденного решения будет
определяться не количеством разрядов для кодирования битовой строки, а
будет ограничена возможностями ЭВМ, на которой реализуется
вещественный ГА.
Применение вещественного кодирования может повысить точность
найденных решений и повысить скорость нахождения глобального
минимума или максимума. Скорость повышается из-за отсутствия процессов
кодирования и декодирования хромосом на каждом шаге алгоритма.
Рис. 41 Пример вещественного представления
Инициализация популяции
Инициализация популяции должна выполняться равномерно в
поисковом пространстве, если это возможно.
Например, в бинарном представлении каждый ген инициализируется
нулем или единицей с вероятностью
1
.
2
103
Если представление целочисленное, что равномерное распределение
заполняет каждый ген с вероятностью
1
.
N
Возможны и другие способы инициализации: рассеять популяцию в
соответствии с предполагаемым результатом или эвристиками, но при этом
необходимо учитывать возможность потери генетического разнообразия и
возможные непоправимые смещения.
Оценивание индивида
Оценивать индивидов необходимо для того, чтобы решить, какой
индивид наиболее хорошо решает данную задачу. Прежде чем оценить
индивид необходимо преобразовать генотип в фенотип, то есть выполнить
операцию декодирования. Далее вычисляется значение функции
пригодности. Функция пригодности показывает насколько данный индивид
«пригоден» для жизни.
Оценивание индивида является наиболее дорогой шаг в реальных
практических задачах. Оценивание индивида требует значительных
вычислительных затрат.
Частично решить эту проблему можно, не оценивая повторно не
изменившихся индивидов, если это возможно – запоминание. Запоминание
может быть оправдано, если затраты на оценивание индивида больше, чем на
запоминание.
Само оценивание может быть подпрограммой, черным ящиком,
экспериментом с реальным объектом.
Если фенотип нарушает условия ограничения задачи, применяется
штрафование функции пригодности и специфические эволюционные методы.
Селекция
Оператор селекции обеспечивает лучшим индивидам большие шансы
стать родителями, чем индивидам не столь хорошим.
Это порождает селективное давление, которое двигает популяцию
вперед, при этом необходимо оставлять шанс стать родителями и менее
пригодным индивидам, так как они могут содержать полезный генетический
материал.
Для организации селекции индивиды с большей пригодностью
выбираются с большей вероятностью, а индивиды с меньшей пригодностью с меньшей, но не нулевой вероятностью.
Большинство схем селекции создают промежуточную популяцию, а
затем из нее выбирают пары для скрещивания.
Операторы селекции строятся таким образом, чтобы с ненулевой
вероятностью любой элемент популяции мог бы быть выбран в качестве
одного из родителей. Более того, допускается ситуация, когда оба родителя
представлены одним и тем же элементом популяции
104
Пропорциональная селекция
Пропорциональную селекцию называют также селекцией колесом
рулетки.
Пусть f i - пригодность i-го индивида. Тогда среднюю пригодность
популяции можно рассчитать по следующей формуле:
вероятность выбора индивида i для репродукции pi =
fi
f ⋅N
=
f =
fi
i =1
N
∑f
i =1
i
, и
.
N
∑f
1
N
i
Например, f 1 = 4 , f 2 = 10 , f 3 = 11 , f 4 = 25 .
p1 =
4
10
11
25
, p 2 = , p3 = , p5 = . f = 12.5 (рис. 42).
50
50
50
50
Графически это можно представить следующим образом:
p4
p1
p2
p3
Рис. 42 Графическая иллюстрация пропорциональной селекции
Достоинства: простота реализации.
Недостатки:
1) Преждевременная сходимость. Может появиться так называемый
«супериндивид», пригодность которого значительно выше, чем
остальных. В промежуточной популяции может быть слишком много
копий такого индивида, его гены быстро распространяются на всю
популяцию и скрещивание может не производить новых индивидов.
2) Стагнация. Ближе к концу работы алгоритма все индивиды могут
получать относительно высокую и примерно равную пригодность, что
приводит к очень слабому селективному давлению.
Обе проблемы могут быть решены приемлемыми методиками
масштабирования пригодности, а также применением «социального»
генетического алгоритма (борьба только с первой проблемой). Социальность:
отобрать у сильного, дать слабому.
3) Пропорциональная селекция ведет себя по-разному при небольшом
изменении функции пригодности.
Ранговая селекция
105
При ранговой селекции индивиды сортируются (ранжируются) по
порядку таким образом, чтобы более пригодные индивиды получали
больший ранг. Каждому индивиду назначается вероятность pi быть
отобранным, взятая из заданного распределения
n
∑p
i =1
i
= 1.
Таблица 15
Пример назначения рангов №1
4 10 11 25 Пригодность индивида
1
2
3
4
Ранги
pi
0.1 0,2 0,3 0,4
Таблица 16
1
1
1
21
4
2
2
21
10
3
11
4
Пример назначения рангов №2
25 1000 Пригодность индивида
5
6
Ранги
3
4
5
21
21
21
6
21
pi
Преждевременная сходимость при ранговой селекции не грозит, так
как пригодность супериндивида в N больше пригодности наихудшего, где N число индивидов.
Достоинства:
1) Преждевременной сходимости нет.
2) Стагнация отсутствует.
3) Нет необходимости вычисления пригодности, так как достаточно
попарного сравнения индивидов, что расширяет круг задач.
Недостатки: значительные накладные расходы на переупорядочивание.
Турнирная селекция
Из N индивидов популяции случайным образом выбирают k ≥ 2
(размерность турнира) индивидов. Индивид с наибольшей пригодностью из
турнира (отобранная группа) отбирается, а остальные отбрасываются.
При турнирной селекции формируется случайное подмножество из
элементов популяции и среди них выбирается один элемент с наибольшим
значением целевой функции. Турнирная селекция имеет определенные
преимущества перед пропорциональной, так как не теряет своей
избирательности, когда в ходе эволюции все элементы популяции становятся
примерно равными по значению целевой функции.
Достоинства:
1. Преждевременной сходимости нет
2. Стагнации нет
3. Нет переупорядочивания
4. Не требуется явное вычисление функции пригодности
Недостатки:
Турнирная селекция теряет глобальную информацию.
106
Стратегия замещения
На селективное давление влияет также способ, которым решается,
какой из индивидов популяции должен быть «убит», то есть отброшен, чтобы
дать место новым индивидам.
Селекция может быть применена с учетом прожитых индивидом
поколений.
Если никогда не отбрасывать наилучшего индивида, такая стратегия
будет называться - элитизм. Можно всегда возвращать наилучшего индивида
в популяцию, или хранить его в отдельной ячейке, не забывая и не используя
в процессе эволюции. Если не будет найдено лучшего решения, то элитный
индивид будет извлечен из ячейки и принят за решение задачи.
Операторы скрещивания
Оператор скрещивания (crossover) осуществляет обмен частями
хромосом между двумя (может быть и больше) хромосомами в популяции.
Важно, чтобы при выполнении оператора скрещивания генерировались
допустимые индивиды. Потомок должен наследовать хоть что-то от каждого
из родителей.
Рекомбинация для бинарного представления
Одноточечное скрещивание
Хромосомы 2х родителей разрываются в выбранном (случайным
образом) месте и правые части хромосом обмениваются (рис. 43, рис 44.).
11111000
11111 111
00000 000
00000111
Рис. 43. Одноточечное скрещивание
В данном примере возможно 8 различных точек разрыва, то есть
каждая точка разрыва может быть выбрана с вероятностью 18 .
Обобщением этого подхода является n – точечное скрещивание.
Хромосомы разрываются в n случайным образом выбранных местах, после
чего каким-то образом обмениваются частями (рекомбинируются).
Если выбрать m родителей, и n точек разрыва, то получится m n
различных хромосом.
Далее выбирается один из полученных потомков случайным образом с
вероятностью 1 m n для каждого потомка.
Вероятность рекомбинации ( PC ) - вероятность того, что к
отобранному набору родителей будет применен оператор скрещивания.
Рекомендуется выбирать вероятность скрещивания 0.6 ≤ pc ≤ 0.9 .
107
1111 11 111 111100111
0000 00 000 000011000
Рис. 44. Двухточечное скрещивание
Равномерное скрещивание
При равномерном скрещивании предполагается, что каждый ген
потомка выбирается случайным образом из соответствующих генов
родителей.
При равномерном скрещивании родителей может быть больше двух,
даже вся популяция может принимать участие в производстве потомков. Это
называется gene-pool recombination – рекомбинация полным набором ген.
Рекомбинация с помощью масок
Представим маску полоской бумаги длиной с хромосому с окошками в
определенных местах. Прикладываем маску к родителю. Те гены, которые
видны, переходят на соответствующие места потомка, остальные гены
берутся от второго родителя.
Рекомбинация для порядкового представления
При порядковом представлении скрещивание происходит следующим
образом: выбирается произвольная часть первого родителя и копируется для
первого потомка. Далее копируются оставшиеся гены второго родителя,
соблюдая следующие правила:
1) Начать прямо с точки отсечения скопированной части.
2) Использовать порядок генов второго родителя, если дошли до конца,
то начать сначала (рис. 45).
1325
4187
4768
6325
13254876
Рис. 45. Рекомбинация для порядкового представления
Рекомбинация для вещественного представления
Для RGA стандартные операторы скрещивания и мутации не подходят,
т.к. алгоритм работает только с вещественными числами. По этой причине
были разработаны и исследованы специальные операторы.
Рассмотрим их подробно. Пусть C1 = (c11 , c12 ,..., c1n ) и C2 = (c12 , c22 ,..., cn2 ) - две
хромосомы, выбранные оператором селекции для проведения скрещивания.
108
Плоское скрещивание
При плоском скрещивании (англ.: flat crossover) создается потомок
H = (h1 ,..., hi ,..., hn ) , где hi , i = 1, n - случайное число их интервала [c1i , ci2 ] .
Арифметическое скрещивание
При арифметическом скрещивании (англ.: arithmetical crossover)
создаются
два
потомка
H = (h11 ,..., hn1 ) и
H = (h12 ,..., hn2 ) :
hi1 = η ci1 + (1 − η ) ci2 , hi2 = η ci2 + (1 − η ) ci1 , i = 1, n , η ∈ [0,1] = const .
BLX-α скрещивание
где
При BLX-α скрещивании генерируется один потомок H = (h1 ,..., hi ,..., hn ) ,
- случайное число из интервала
hi
[cmin − ∆ ⋅ α , cmax + ∆ ⋅ α ] ,
cmax = max(ci1 , ci2 ), cmin = min(ci1 , ci2 ), ∆ = cmax − cmin , i = 1, n.
Линейное скрещивание
При линейном скрещивании (англ.: linear crossover) создаются три
потомка,
рассчитываемые
по
формулам:
hi1 =
3c1 − ci2
ci1 + ci2
− c1 + 3ci2
.
, hi2 = i
, hi1 = i
2
2
2
На
этапе
селекции в
линейном
скрещивании выбираются две особи с наибольшей пригодностью.
В большинстве случаев генетический алгоритм с вещественным
кодированием справляется с задачей отыскания оптимума лучше и быстрее,
чем с двоичным кодированием. Самым эффективным оператором
скрещивания признан BLX-α скрещивание с α=0,5. Особенность данного
оператора в том, что при скрещивании генов c1i , ci2 (ci1 < ci2 ) значения потомка
могут лежать в некоторой области, выходящей за границы значений этих
генов на величину ∆ ⋅ α , т.е. hi ∈ [ci1 − ∆α , ci2 + ∆α ]. В других операторах
скрещивания, например, в плоском или арифметическом будут
генерироваться только допустимые индивиды, hi ∈ [c1i , ci2 ]
Cтандартный генетический алгоритм вещественного кодирования,
более простой в реализации, существенно уступает стандартному алгоритму
бинарного кодирования.
Операторы мутации
Мутация - оператор изменения индивида, применяемый к одному
индивиду с определенной вероятностью. Оператор мутации (mutation
109
operator) необходим для "выбивания" популяции из локального экстремума и
способствует защите от преждевременной сходимости.
Так же как и скрещивание, мутация проводится не только по одной
случайной точке.
Вероятность мутации значительно меньше вероятности скрещивания и
редко превышает 1%. Среди рекомендаций по выбору вероятности мутации
нередко можно встретить варианты 1/L или 1/N, где L - длина хромосомы, N размер популяции.
Существуют алгоритмы, не использующих других операторов кроме
мутации.
Правила использования оператора мутации:
1. Мутация должна порождать только допустимые хромосомы.
2. Величина мутации должна быть управляемой величиной.
3. Хотя бы один оператор мутации должен разрешать достижение любой
части пространства поиска.
Мутация для порядкового представления
Для порядкового представления оператор мутации может представлять
собой обмен случайным образом выбранных генов (рис 46).
234156
254136
Рис. 46 мутация для порядкового представления
110
Мутация для бинарного представления
Мутация для бинарного представления представляет собой инверсию
выбранного бита хромосомы. Можно выбирать некоторое количество точек в
хромосоме для инверсии, причем их число также может быть случайным.
Также можно инвертировать сразу некоторую группу подряд идущих точек
(рис 47).
10101010
10111010
Рис. 47. Мутация для бинарного представления
Мутация для вещественного представления
В качестве оператора мутации наибольшее распространение получили:
случайная и неравномерная мутация Михалевича. При случайной мутации
ген, подлежащий изменению, принимает случайное значение из интервала
своего изменения. В неравномерной мутации значение гена после оператора
мутации
рассчитывается
по
формуле:
ci + δ (t , bi − ci ) при χ = 0
ci = 
, δ (t , y ) =
ci − δ (t , ci − α i ) при χ = 1

t 

 1−


 ε max 
y1 − r


b


,


где
C = (c1 , c2 ,..., cn )
-
хромосома, выбранная для мутации, χ – целое случайное число,
принимающее значении 0 или 1, r ∈ [0,1] - случайное вещественное число, ε max
- максимальное число эпох алгоритма, b – параметр, задаваемый
исследователем.
Преобразование целевой функции в функцию пригодности
В качестве функции пригодности можно использовать саму целевую
функцию, если f ( x) ≥ 0 ∀x , и необходимо максимизировать целевую
функцию.
В некоторых задачах могут встречаться отрицательные значения
целевой функции, что накладывает трудности на использование оператора
селекции. Тогда пригодность индивида может быть рассчитана по
следующей формуле:
 f ( x) + C min ,
fitness ( x) = 
0, else
f ( x) + C min > 0
, где
fitness (x) - пригодность индивида x,
Cmin - абсолютное значение одной из следующих величин:
ü Минимальное значение f(x), если оно известно;
ü Минимальное значение в текущем или последних k поколениях.
111
При возникновении преждевременной сходимости или стагнации при
пропорциональной селекции применяют масштабирование пригодности:
a ⋅ f ( x) + b, a ⋅ f ( x) + b > 0
fitness ( x) = 
0, else
,
где a и b выбираются такими, чтобы выполнялись условия:
ü Каждый средний член популяции выбирается таким образом, чтобы он
имел одну копию в новой популяции
ü Лучший индивид получает заданное число своих копий в новой
популяции.
Условная оптимизация
Один из классификационных признаков делит оптимизационные
задачи на два класса: задачи безусловной оптимизации и задачи условной
оптимизации.
m
Первые из них характеризуются тем, что минимум функции f : R → R
ищется на всем пространстве: f ( x) → min x ∈ R
В задачах же второго класса поиск минимума идет на некотором
m
собственном подмножестве Ω пространства R : f ( x) → min x ∈ Ω .
m
Множество Ω часто выделяется ограничениями типа равенств g 0 ( x) = Θ ,
m
k
где g 0 : R → R и (или) ограничениями типа неравенств g1 ( x) ≤ Θ , где
g1 : R m → R l .
Недостатком эволюционных алгоритмов при решении задач условной
оптимизации является то, что эволюционные алгоритмы не имеют
возможности учета ограничений на переменные.
Методы решения проблемы получения недопустимых индивидов:
1) «Смертельный штраф».
Недопустимые индивиды просто отбрасываются.
Достоинства:
ü просто и быстро
Недостатки:
ü потеря информации,
ü неразличимы индивиды существенно и незначительно нарушающие
ограничения,
ü если допустимая область относительно мала, основное время может
тратится на генерирование и отбрасывание недопустимых индивидов.
2) «Перевоспитание» (лечение)
Происходит лечение недопустимых индивидов. Для любого
недопустимого индивида находится ближайший допустимый, эти индивиды
соединяются отрезком. Вдоль полученного отрезка недопустимый индивид
движется к границе допустимой области. В данном методе не требуется
112
вычисление целевой функции, вычисляются только функции нарушенных
ограничений.
Достоинства:
ü информация не теряется;
ü достаточно найти одного допустимого индивида, и все недопустимые
станут допустимыми.
Недостатки:
ü возможны большие затраты на лечение.
3) Недопущение. Предотвращение.
Исходная популяция должна состоять только из допустимых
индивидов. Подход основан на проектировании специальных генетических
операторов. Для каждого типа задач эта проблема решается индивидуально.
4) Метод поведенческой памяти.
Ограничения подключаются по одному, после определенного
количества поколений эволюции. Определенное количество шагов проходит
при наличии только одного ограничения. После того, как большая часть
членов популяции выстроится вдоль линии этого ограничения,
активизируется второе ограничение. Дальнейшая эволюция происходит с
учетом двух ограничений (рис. 48).
I
II
I
II
III
Рис 48 Эволюция методом поведенческой памяти.
Также существуют методы с применением штрафных функций и
множителей Лагранжа.
ЭА применяются не только для задач условной оптимизации, но также
и для задач многокритериальной оптимизации.
Таким
образом,
Ученые,
занимающиеся
компьютерными
исследованиями, обратились к теории эволюции в поисках вдохновения.
Возможность того, что вычислительная система, наделенная простыми
механизмами изменчивости и отбора, могла бы функционировать по
аналогии с законами эволюции в природных системах, была очень
привлекательна. Эта надежда стала причиной появления ряда
вычислительных систем, построенных на принципах естественного отбора.
Ученые, занимающиеся компьютерными исследованиями, обратились
к теории эволюции в поисках вдохновения. Возможность того, что
вычислительная система, наделенная простыми механизмами изменчивости и
отбора, могла бы функционировать по аналогии с законами эволюции в
113
природных системах, была очень привлекательна. Эта надежда стала
причиной появления ряда вычислительных систем, построенных на
принципах естественного отбора.
Эволюционные алгоритмы относится к классу вероятностных
алгоритмов. В их основу положена упрощённая модель популяции живых
существ. В процессе работы алгоритма имитируется развитие популяции в
искусственных условиях. Каждому индивиду соответствует точка в
поисковом пространстве. Из биологии известно, что индивидуальные
наследственные отклонения (скрещивание и мутация) и борьба за
существование (селекция) в длинном ряду поколений приведут к изменению
видов в направлении все большей приспособленности к конкретным
условиям существования. Поэтому в течение жизни популяции используются
операции аналогичные природным: селекция, скрещивание, мутация, что
способствует повышению средней приспособленности индивидов на каждом
этапе эволюции. Шансы каждого индивида создать потомство и передать ему
свои признаки тем выше, чем больше его пригодность. Вследствие чего
постепенно создаются все более и более приспособленные индивиды удачные решения.
Контрольные вопросы
1. Какие классы интеллектуальных систем Вы знаете?
2. Назовите основоположников теории эволюции.
3. Что такое эволюционный алгоритм?
4. В чем достоинства эволюционных алгоритмов, недостатки?
5. Как работает эволюционный алгоритм и когда останавливается?
6. Что такое строительный блок?
7. Кто такие родители? Потомки?
8. Для чего нужна селекция?
9. Чего позволяет добиться оператор мутации?
10.Каким образом достигается получение наилучшего решения в
эволюционных алгоритмах?
114
Глава 5. Языки логического программирования
Специальные модели представления знаний.
Все модели и системы представления знаний (МПЗ и СПЗ) можно
разделить на следующие классы: декларативные, процедуральные,
специальные. В каждом классе моделей можно выделить свои подклассы: в
декларативных СПЗ - продукционные, редукционные и предикатные модели;
в процедуральных - язык PLANNER и ему подобные языки; в специальных –
логико-лингвинистические модели, модели реляционной алгебры и алгебры
нечетких множеств, функциональные семантические сети и т.д.
В декларативных представлениях описание состояний представляет
собой множество утверждений, в значительной степени независимых от того,
где их использовать. В предикатных системах появляется аспект
выводимости (импликативности), т.к. в них используется система
доказательства теорем, и они носят, на первый взгляд, черты
процедуральных систем. Но т.к. процесс доказательства состоит в
применении заданных заранее правил вывода к заданным заранее начальным
аксиомам, а затем этих и других правил вывода к аксиомам и выведенным на
первом шаге теоремам и т. д., вплоть до получения целевой формулы, то
предикатные системы чаще относят к декларативным представлениям.
При декларативном представлении имеет место четкое разделение
процедуры поиска решения, приводящей к полному перебору (называемой
механизмом генерации), и процедуры оптимизации этого поиска с целью
сокращения перебора (называемой механизмом управления). Механизм
генерации не зависит от ПО и носит универсальный характер. При этом, как
правило, приходится на каждом шаге иметь дело с полными описаниями
состояний, что снижает эффективность поиска. Механизм управления
определяет эвристическую эффективность поиска вывода. Он, как правило,
определяется знаниями о конкретной ПО и определяет семантику
декларативной СП Знаний. Описания состояний и операторов системы носят
синтаксический характер. Поэтому можно утверждать, что синтаксические
знания в декларативных представлениях отделены от семантических.
Все ранее рассмотренные свойства характеризуют декларативные
представления как обладающие принципиально большой общностью,
универсальностью по отношению к любым ПО. Но для придания
эффективности поиска механизм управления требует конкретных
семантических знаний о ПО, что автоматически сужает общность такого
представления. Если вводить семантические знания в описания состояний и
операторов (так, как это делается в других представлениях), то теряется
общность и универсальность представления. Здесь наблюдается известное
противоречие между общностью и эффективностью представления знаний.
При процедуральном представлении знаний задаются процедуры
преобразований знаний для данной ПО. При этом текущее состояние
системы представляется в виде набора специализированных процедур,
115
обрабатывающих локальный участок БД, которая специально организована,
как говорят, в императивном виде, т.е. в приспособленном для
использования системой процедур и доказательства теорем (термин
императивный используется в лингвистике для обозначения сослагательного
наклонения, в котором, как правило, используется частица «бы», например,
«я выучил бы язык PLANNER, если бы у меня было время»).
Процедуральные представления знаний, как правило, реализуются с помощью специальных языков типа PLANNER, QА-4 и т.п., в которых имеется
набор механизмов, обеспечивающих автоматический и целенаправленный
поиск решения. В этих языках обычно стараются оптимальным образом
разрешить
проблему
сочетания
универсальности
механизмов
и
управляемости ими со стороны пользователя. В процедуральных
представлениях знаний семантическая информация о конкретной ПО
вводится в выражения БДанных в виде их свойств, что позволяет
использовать на данной стадии поиска решения только те данные, которые
необходимы действующей (активизированной) в данный момент процедуре и
в ней описаны. Одним из характерных свойств процедурального
представления знаний, которое внешне его сразу отличает от декларативного,
является представление информации, в частности, описаний состояний в
пространстве состояний в виде процедур, программ. Так, вместо хранения
информации о всех возможных состояниях «игры в 8» можно хранить
программу, которая сгенерирует из начального состояния все возможные.
Такое хранение информации существенно экономит память ЭВМ. Однако,
процедуральные представления знаний, обеспечивая в целом более быстрый
поиск решения по сравнению с декларативными, обладают меньшими
средствами для накопления, усвоения, пополнения знаний, что при наличии в
них механизма недетерминированного поиска (выбора) делает их менее
приспособленными к решению задач в сложных и не полностью известных
ПО.
Декларативные
представления
знаний,
обладая
большой
универсальностью и общностью, в этих случаях являются боле
предпочтительными.
Разделение синтаксических и семантических знаний в моделях
представления знаний, четко обозначенное в декларативном и менее в
процедуральном
представлениях,
имеет
свои
положительные
и
отрицательные стороны.
Для соединения этих двух типов знаний, в результате которого в итоге
повышается эффективность системы, было разработано большое количество
разных вариантов моделей представления знаний в виде семантических
сетей. Практически исключая разделение синтаксических (структурных) и
семантических (привязанных к данной ПО) знаний, это представление
позволяет достаточно легко пополнять, обновлять, усваивать знания в
относительно однородной структуре. В этом представлении описание
внешнего мира осуществляется на языке, близком естественному. Благодаря
общей системе унификации отношений между объектами существенно
упрощается процедура вывода решения, при которой автоматически
116
определяются участки семантической сети, необходимые для интерпретации,
понимания запроса и вывода решения. Однако, для представления простых
логических отношений типа логических связок, кванторов общности и
существования
семантические
сети
уступают
декларативному
представлению знаний, а в части отображения динамических и параллельных
процессов - процедуральному.
Поэтому стали использовать удачные приёмы, как из декларативных,
так и процедуральных представлений знаний, что нашло своё воплощение в
сетях фреймов (frame - каркас, рамка). Характерной особенностью этого
представления знаний является введение в систему представления знаний
модульной структуры в виде фреймов, которые представляют собой
синтаксически-семантические
блоки
(единицы) в
общем случае
процедурально-декларативного типа. Поэтому фреймы представляют собой
локальные семантические сети и являются единицами, атомами информации.
В общем случае фреймы содержит информационные и процедуральные
элементы, обеспечивающие преобразование информации внутри и связь его с
другими фреймами. Но самое главное, как в процедуральной, так и в
информационной части (хотя деление достаточно условное, ибо информация
может храниться в виде программ) имеются незаполненные участки, пустоты
или, как их называют, слоты (в переводе с английского - щели). Слоты могут
заполняться в процессе активации, функционирования фрейма в
соответствии с определёнными условиями или предписаниями, которыми
они сопровождаются. Это придаёт свойство адаптивности, настраиваемости
как на модульном, атомарном уровне слотов, так и на уровне всей сети
фреймов. Наряду с положительными сторонами сети фреймов вносят в
систему представления знаний дополнительные трудности, в частности,
связанные с зацикливанием фреймов.
Модели представления знаний, использующие реляционную алгебру,
ведут своё начало от реляционного банка данных. В основе моделей,
использующих реляционную алгебру, лежит представление информации в
виде сети единиц (атомов) информации, в качестве которых фигурируют
отношения (таблицы) или домены (столбцы). Здесь широко используется
приёмы декларативного представления знаний, в частности, логические
связки и кванторы, а также аспекты процедурального представления знаний,
в частности, представление информации в виде процедур, программ. В
последних модификациях реляционного банка данных стали использоваться
однородные структуры типа семантических сетей с фреймоподобными
элементами.
Характерной чертой представления знаний с использованием алгебры
нечётких множеств является его направленность на реализацию свойств
нечётности принятия решений. В своих наиболее совершенных вариантах это
представление знаний использует все черты ранее рассмотренных моделей.
Логико-лингвистические модели
117
Если смотреть на естественный язык с позиции использования его как
основы для построения языка представления знаний, то, прежде всего, в нем
надо выделить несколько классов элементов (слов и словосочетаний),
играющих вполне определенную функциональную роль в представлении
знаний. Наиболее важными из этих классов являются понятия, имена и
отношения.
Для естественного языка характерно наличие слов и словосочетаний,
определяющих понятия-классы. Понятие-класс есть совокупность объектов,
обладающих вполне определенными свойствами. Примерами понятийклассов могут служить: «интеграл», «плановый отдел», «стул»,
«инструмент», «ремонтная бригада» и т.п.
Имена служат для идентификации тех или иных элементов, входящих в
понятие-класс. Эти элементы сами могут являться понятиями-классами более
низкого уровня иерархии. Например, понятие-класс «вычислительный
центр» в качестве идентифицированных элементов может содержать
понятия-классы «лаборатория» с тем или иным номером (этот номер играет
роль имени) или с указанием фамилии заведующих лабораториями (в этом
случае роль имен лабораторий будут выполнять эти фамилии). Сами
лаборатории в качестве своих идентифицированных элементов могут
содержать отделы или сектора, снабженные теми или иными номерами или
именами другой природы и т.д.
Понятия-процессы (в отличии от понятий-классов) описывают группу
односложных процессов. Примерами понятий-процессов служат слова и
словосочетания: «погрузка», «включение», «авария», «превышение
допустимой нагрузки». Близки к ним понятия-состояния, примерами
которых служат: «нормальный режим», «линия включена» и т.п. Для
идентификации понятий-процессов и понятий-состояний также могут
использоваться имена, например, «линия № 12 включена». Отношения
служат для установления связей на множестве понятий или
идентифицированных понятий. Уже сама идентификация реализуется с
помощью специальных отношения, смысл которого можно передать
словами: «иметь имя» или «называться». Имеется гипотеза о конечности
множества отношений для естественных языков: число различных, не
сводимых друг к другу отношений не превышает 200. Остальные отношения,
фиксируемые в текстах, написанных на естественном языке, сводятся к
комбинации этих базовых отношений. В табл. 17 приведены примеры
базовых отношений. Обозначения приведены для тех, которые будут
использоваться в примерах.
118
Таблица 17
Тип отношения
Временные
Пространственные
Динамические
Классификационн
ые
Идентифицирующ
ие
Прагматические
Каузативные
Наименование
отношения
Быть одновременно
Быть раньше
Быть в ε-окрестности
Находиться
Быть сзади
Двигаться к
Быть элементом класса
Обладать
Иметь имя
Обозначение
отношения
Служить для
Быть препятствием для
Обладать состояние
Участвовать в процессе
Быть целью
Быть причиной
Действие-объект
r9
r10
r11
r12
r13
r14
r15
r1
r2
r3
r4
r5
r6
r7
r8
ρ
Замечание. В таблице 17 рассматриваются не языковые отношения, а
отношения реального (физического) мира. То или иное отношение этого
мира в языке может выражаться различными словами или словосочетаниями.
Например, во фразах: «Деталь перемещается по конвейеру к бункеру»,
«Робот едет к складу № 4», «Автомобиль приближается к перекрестку»
между парами понятий «деталь» и «бункер», «робот» и «склад № 4»,
«автомобиль» и «перекресток» реализуется одно и то же отношение, которое
можно передать словами «двигаться к» и использовать для его обозначения r6
из табл. 17.
С помощью понятий, имен и отношений можно уже описывать
ситуации, относящиеся к объекту (например, объекту управления) или среде,
в которой они действуют. Для этого сначала введем синтаксис для логиколингвинистического языка представления знаний (Л-л-ЯПЗ), использующего
лишь три рассмотренных функциональных класса: понятия V, имена I и
отношения R. Класс понятий Т можно рассматривать как объединение трех
подклассов: понятия-классы (В), понятия-процессы (D) и понятия-состояния
(G). Итак, множество Т задается следующим образом:
Т = V ∪ I ∪R,
где V = B ∪D ∪ G, B = {b1, b2,..., bn}, D = {d1, d2,..., dm}, G = {g1, g2,..., gk},
I = {i1, i2,..., il}, R = {( , ), ρ, r1,..., rq}.
Правила построения ППФ в данной системе.
1. Любой элемент, кроме элементов множества R, является ППФ.
119
2. Если а - любой элемент из В и β - любой элемент из I, то тройка (аρβ) есть
ППФ (ρ - «иметь имя», «называться» и т.п.).
3. Если δ и γ -любые элементы из V, то тройка (δrγ), где r - любой элемент из
R, кроме (,) и ρ, есть ППФ.
4. Если ε и χ суть ППФ, то тройка (ε rχ)есть ППФ.
5. Других ППФ нет.
Рассмотрим несколько примеров.
Пример 1. Дано текстовое описание ситуации: «К причалу № 1
подходит судно «Свирь», пришедшее с грузом леса. Портальный кран № 8
занят на разгрузке судна «Беломорск» на причале № 2. Этой же операцией
занят портальный кран № 5. Портальный кран № 6 свободен, но не может
быть перемещен на причал № 1 из-за крана № 5».
Построим описание ситуации в порту, используя введенный фрагмент
логико-лингвинистического ЯПЗ. Введем список понятий, список имен и
список отношений, необходимые для данного примера.
Список понятий: b1 – причал, b2 – судно, b3 – груз, b4 – портальный кран, d1 –
разгрузка (процесс), d 2 – передвижка, g 1 – разгрузка (состояние), g2 –
свободен, g3 – занят.
Список имен: i1 – «Свирь», i2 – лес, i3 – «Беломорск», i4 − № 1, i5 − № 2, i6 − №
5, i7 − № 6, i8 − № 8.
Отношения берутся из табл. 17.
Первой фразе текстового описания соответствует следующая формальная
запись: (((b 2ρi1) r6 (b1ρi4) r1 (b2r8 (b3 ρi2))). Отношение «быть временно» r1
играет в этой записи роль союза «и» в естественном языке или операции
конъюнкции в логике высказываний. Второй фразе текста соответствует
запись: (((((b4ρi8)r9d1) r1 ((b2ρi3)r4(b1ρi5))) r1 (((b4ρi8) r4 (b1ρi5)) r1 (b2r11g1))).
Запишем теперь с помощью ЯПЗ третью фразу исходного текста:
((((b 4ρi6) r4 (b 1ρi5)) r1 ((b2ρi3) r4 (b 1ρi5))) r1 (b4r9d1)).
Для последней фразы текста формальная запись имеет вид:
(((b4ρi7)r11g2) r1 ((b4ρi6) r10 (d2r15(b 4ρi7))).
Для упрощения записей полезно наряду с отношениями рассматривать также
операции, используемые в исчислении высказываний: отрицание,
конъюнкцию, дизъюнкцию. В частности, использование конъюнкции (в
записи знак конъюнкции & будет обычно опускаться, подобно знаку
умножения в алгебре) позволяет существенно уменьшить в записях число
необходимых скобок, т.к. наиболее существенное их число возникает от
необходимости использовать в качестве связки отношение r1. При
использовании конъюнкции вторая фраза текста примера запишется в
следующем виде: ((b4ρi8)r9d1) ((b 2ρi3) r4 (b 1ρi5)) & ((b4ρi8) r4 (b1ρi5)) (b2r11g1).
Эта запись значительно проще и нагляднее записи, использующей для связки
скобок отношение r1.
Пример 2. Дана запись на Л-л-ЯПЗ:
((b2i4)r3(b1ρi8))((b3ρi2)r12d1&((b2ρi4)r11g1).
Требуется восстановить текст по этой записи. Начнем расшифровывать
тройки по порядку. Две тройки, входящие в ((b2i4)r3(b1ρi8)), соединенные
120
отношением r3, имеющим значение «быть в ε-окрестности», дают первую
фразу: «Судно № 1 находится около причала № 8». Следующая скобка
соответствует фразе: «Идет разгрузка леса». Расшифровка этой записи «в
лоб» даст фразу: «Груз по имени лес участвует в процессе разгрузка». Но
смысл этой фразы тождественен смыслу ранее приведенной фразы, которая
по-русски звучит естественнее. Наконец, третья скобка определяет третью
фразу текста: «Судно № 1 находится в состоянии разгрузка». Текст из этих
трех фраз может быть заменен одной фразой, смысл которой: «Судно № 1
находится под разгрузкой леса у причала № 8».
Пример 3. Даны две записи на Л-л-ЯПЗ: первая ((b4ρi5)r12d2)
((b4ρi5)r4(b1ρi5)), вторая ((b4ρi5)r6(b1ρi5)). Требуется установить, эквивалентны
ли они по смыслу. В эти две записи входят различные отношения: r12 и r4 - в
первую и r6 - во вторую. Поэтому без привлечения семантики этих
отношений чисто формальным способом установить эквивалентность этих
ППФ невозможно - так можно было бы установить лишь их эквивалентность
на синтаксическом уровне. Поэтому перейдем от записи на ЯПЗ к словесным
текстам. Для первой записи получим следующий текст: «Портальный кран №
2 находится на причале № 2 и передвигается». Для второй записи:
«Портальный кран № 2 движется к причалу № 2». Из этого следует, что
приведенные выше записи на ЯПЗ по смыслу не являются эквивалентными.
Заметим, что в первой записи номер причала на № 2, а отношение r4 на
отношение r3. Тогда первой записи будет соответствовать текст:
«Портальный кран № 2 находится около причала № 1 и передвигается».
Смысл этой фразы нельзя считать идентичным смыслу второй фразы. Но эти
две фразы обладают свойством совместимости. Их представления в виде
записей на ЯПЗ можно соединить отношением r1 или знаком конъюнкции.
Исходные же записи таким образом соединить нельзя. Если же в первой
записи заменить отношение r4 отношением r13, то обе эти записи станут
эквивалентными по смыслу.
Последний пример показывает, что проблемы семантики для ЯПЗ не
менее трудны, чем для ЕЯ. К числу этих трудностей можно отнести то, что
не все ППФ, порождаемые по сформулированным правилам 1) – 5), будут
признаваться семантически правильными. В частности, при использовании
термов из примера 1 и приведенных синтаксических правил можно породить
ППФ вида (b3ρg1) или (b 2r7g2). Но приписать этим ППФ какой-либо смысл
вряд ли возможно. Первая тройка соответствует фразе: «Груз называется
разгрузка», а вторая - фразе: «Судно есть элемент свободен».
Это показывает, что при создании ЯПЗ требуется предусмотреть
специальные ограничения на синтез ППФ. Указанные трудности произошли
потому, что некоторые отношения не могут произвольно вводиться между
понятиями произвольной природы. Если бы отношения можно было разбить
на непрекрывающиеся классы и для каждого такого класса определить
подмножества, между которыми данные отношения всегда возможны с точки
зрения семантики, то проблема не возникала бы. В общем случае это сделать,
по-видимому, невозможно. Например, тройка (b 1r10b2) или тройка (b3r10b 4)
121
вполне семантически допустимы, а тройка (b4r10b1) вряд ли может считаться
осмысленной. Выходом из этого положения является задание допустимых
отношений между понятиями в рамках некоторой конкретной
модели знаний.
В настоящее время нет решения проблемы поиска универсальной
эффективной процедуры для построения семантических правил.
Столь же сложной является и проблема установления семантической
эквивалентности двух выражений на ЯПЗ, т.е. установления их эквивалентности по смыслу. Подобная задача была проиллюстрирована в примере 3.
Эта проблема известна в структурной лингвистике как проблема построения
языка семантических представлений (СЕМП).
К ЯПЗ типа СЕМП предъявляются следующие требования.
1. Если фраза на естественном языке, по мнению пользующихся им,
имеет смысл, то в СЕМП этой фразе должно соответствовать, по крайней
мере, одно представление. Если фраза естественного язык, по мнению
пользующихся им, смысла не имеет, то в СЕМП для нее не должно найтись
ни одного представления.
2. Если две фразы естественного языка, по мнению пользующихся им,
имеют совпадающий смысл, то в СЕМП им должно соответствовать либо
одно общее представление, либо различные представления, но такие, что с
помощью системы формальных преобразований фраз в СЕМП они
переводятся одно в другое. Аналогичное требование выдвигается и к
нескольким различным представлениям в СЕМП одной и той же фразы
естественного языка.
Таким образом, построение СЕМП включает в себя эффективную
процедуру перевода фраз естественного языка в СЕМП и эффективную
процедуру установление эквивалентности записей в СЕМП. В общем виде
проблема построения СЕМП вряд ли разрешима. Однако уже сейчас имеются
фрагменты построенного СЕМП, ориентированные на использование в
реально действующих информационных и управляющих системах,
базирующихся на естественном (в частности, русском) языке.
В примере 3 была затронута еще одна проблема, связанная с
семантикой
ЯПЗ:
описание
некоторой
ситуации
может
быть
противоречивым. Фразы этого описания на ЯПЗ не будут совместимыми в
рамках одного текста. Проблема установления совместимости двух записей
не менее трудна, чем проблема построения СЕМП. По существу, она
сводится к построению СЕМП 2-го уровня. Вместо семантических правил
соединения слов в фразе она исследует семантические правила соединения
фраз в тексте. Приведенный ниже пример еще раз поясняет эту мысль.
Кроме понятий, имен и отношений в естественном языке имеются и
другие функциональные классы слов и словосочетаний. Укажем еще на три
таких
класса,
которые
называют
соответственно
императивы,
квантификаторы и модификаторы. Примерами императивов являются слова и
словосочетания: «включить», «проверить давление» и т.п.
122
Императивы - это словесное выражение тех приказов, которые
поступают от системы управления на объект управления или используются в
самой системе управления при планировании будущих действий и
экстраполяции их последствий. Множество императивов для реальной
системы управления всегда конечно (по крайне мере, для текущего состояния
системы управления). Это множество обозначим здесь как Р = {р1, р2,..., рh}.
Для установления связей между императивами и элементами других
функциональных классов используются ранее введенные отношения, а также
несколько специально
введенных
отношений. Примером такого
специального отношения может служить отношение r16, смысл которого
можно выразить как «выполнить действие».
Пример 4. Обозначим через р1 императив «передвинуть». Тогда запись:
((b1ρi5)p1(b1ρi4)) имеет следующий смысл: «Портальный кран № 2
передвинуть на причал № 1».
Квантификаторы служат для введения количественных и качественных
мер для понятий, отношений и императивов.
Примерами квантификаторов могут служить слова и словосочетания:
«всегда», «для всех», «некоторые», «существуют такие, что», «очень редко»,
«быстро», «сильно» и т.д.
Множество качественных квантификаторов будем обозначать как
‫ﻼ{ = ﻼ‬1, ‫ﻼ‬2, . . ., ‫ﻼ‬d,. . .}.
В реальных моделях это множество является конечным. Использование
перевернутых букв в обозначениях квантификаторов восходит к традиции
математической логики, в которой два квантификатора (там они именуются
кванторами) «для всех» и «существует» обозначаются ∀ и ∃ . Не будем
выписывать синтаксические правила ЯПЗ для квантификаторов, а
рассмотрим два примера, из которых суть этих правил будет понятна.
Пример 5. Пусть ‫ﻼ‬1 означает «очень часто», а ‫ﻼ‬2 – «редко». Рассмотрим
запись: ‫ﻼ‬1((b1ρi4)r11g3) & ‫ﻼ‬2((b 4ρi6)r12d2). Эта запись имеет следующий смысл:
«Причал № 1 очень часто свободен, а портальный кран № 5 редко
передвигается».
Пример 6. Имеется текст «Судно «Свирь» быстро приближается к
причалу, где уже стоят суда». Запишем сначала ту часть текста, которая
стоит слева от слова «где»: ((b2ρi1)‫ﻼ‬3r6b1); здесь ‫ﻼ‬3 соответствует
квантификатору «быстро». Оставшаяся часть текста представим следующим
образом: (‫ﻼ‬4b2r3b1), где ‫ﻼ‬4 – квантификатор «существуют такие..., что».
Окончательно имеем: (((b 2ρi1)‫ﻼ‬3r6b1)r1(‫ﻼ‬4b2r3b1)).
В этих примерах проиллюстрирована возможность ставить
квантификатор перед ППФ (пример 5) или непосредственно перед понятием
или отношением (пример 6).
Сами по себе качественные квантификаторы не имеют единственного
(фиксированного) смысла: их смысл целиком определяется смыслом
связанного с ним выражения. Например, во фразе: «В лесу много волков» и
«В лесу много муравьев» квантификатор «много» имеет совершенно
различные количественные характеристики. В первом случае речь может
123
идти о десятках животных, а во втором – их количество наверняка
определяется десятками тысяч. Проблема шкалирования квантификаторов
далека от своего решения.
В отличие от качественных квантификаторов количественные
квантификаторы обладают весьма прозрачной семантикой. Следующий
пример показывает их использование.
Пример 7. Имеется текст: «У причала находятся три судна. На причале
имеется груз - лес в количестве 1000 тонн». Запишем этот текст на ЯПЗ:
(((b 2r17(d3ρi9))r3b 1)r1(((b 3ρi2)r17(d3ρi10))r4b1)).
В этой записи использованы следующие новые обозначения: r17 - отношение
«объект-мера»; d3 - понятие-процесс, смысл которого можно передать
словами: «измерение, в результате которого получен ответ»; i9 и i10 соответственно «три штуки» и «тысяча тонн». В этой записи квантификаторы
не использовались. Однако это произошло за счет того, что количественные
характеристики были включены в сами имена. Это на практике весьма
неудобно, т.к. потребует введения огромного числа различных имен. Проще
разрешить приписывание количественных квантификаторов прямо
соответствующим именам, которые будут иметь смысл: i*9 - «штука» и i*10 «тонна». В этом случае запись исходного текста обретет вид:
(((b2r17(d3ρ3i*9))r3b1)r1(((b3ρi2)r17(d3ρ1000i*10)r4b1)).
Модификаторы (в отличие от квантификаторов) приписывают
понятиям, отношениям и императивам некоторые характеристики, которые
в них ранее не фиксировались. Примерами модификаторов в естественном
языке являются слова и словосочетания: «сухой», «прошедший капитальный
ремонт», «аварийный» и т.д. Для обозначения модификаторов будем
использовать элементы множества N = {n1, n2,..., nl,...}.
Пример 8. Запишем на ЯПЗ текст: «Судно «Беломорск», прошедшее
капитальный ремонт, не находится около причала № 8. Причал № 8 имеет
аварийное состояние». Для модификаторов используем следующие
обозначения: n1 - «прошедший капитальный ремонт», n2 - «аварийный».
Теперь можно осуществить запись на ЯПЗ:
((n 1(b 2ρi3)) ř3(n2ρi8))).
В этой записи ř3 означает отрицательное отношение r3. Смысл его - «не
находится в ε-окрестности».
Кроме построенных шести функциональных классов в естественном
языке имеются и другие классы. Как правило, при построении ЯПЗ
используются еще лишь два функциональных класса: модальности и оценки.
К модальностям, прежде всего, относятся такие слова и словосочетания, как
«необходимо», «возможно», «следует учесть, что». К оценкам относятся
качественные и количественные заключения о выгодности тех или иных
действий (например, в соответствии с некоторым качественным или
количественным критерием управления). Обозначим модальности буквами
m 1, а оценки – буквами oi.
Пример 9. Имеется текст: «Портальный кран необходимо передвинуть
к причалу». Используя обозначение для императива, введенное в примере 6,
124
и обозначение m 1 для модальности «необходимо», получим следующую
запись: (b 4(m 1p1)b1).
Пример 10. Запишем с помощью ЯПЗ текст: «Передвижка судна к
причалу № 1 полезна» (обозначение о1 использовано для оценки «полезно»):
((b1ρi4)r13(b 2r12(o1d2))).
К модальностям часто относят и различные вероятностные оценки, как
качественные («вероятно», «с большой вероятностью» и т.п.), так и
количественные («с вероятностью 0,5», «с вероятностью от 0,6 до 0,65»).
Практически часто бывает полезно в перечисленных функциональных
классах выделять специфические подклассы, играющие значительную роль
для описания ситуаций и процессов в данной системе (например, системе
управления) и (управляемом) объекте. Примером такого часто выделяемого
специфического класса служит класс временных оценок. Членами класса
являются словосочетания, имеющие значение качественных или
количественных оценок времени. Примерами их могут служить такие слова и
словосочетания, как «недавно», «вскоре», «пять минут назад», «в прошлую
смену» и т.п. В других задачах управления оказывается полезным выделять
еще и класс пространственных понятий и оценок и т.д.
Те элементы ЯПЗ, которые были построены выше в той или иной мере
входят в различные реальные ЯПЗ и, в первую очередь, в язык представления
знаний в системах ситуационного управления.
Языки, в основе которых лежат записи, в которых в явном виде
участвуют отношения, принято называть языками реляционного типа или
просто реляционными языками. Другую группу ЯПЗ представляют
предикатные языки, используемые для создания логико-математических
моделей.
ФОРМАЛЬНЫЕ И СЕМИОТИЧЕСКИЕ СИСТЕМЫ
Под формальной системой понимают совокупность четырех множеств:
базовых элементов Т, синтаксических правил Р, аксиом А и правил вывода
(семантических правил) П: Ф=<Т, Р, А, П>. Поясним смысл введенных
множеств. Множество базовых элементов Т (конечное или счетное) состоит
из элементов, которые не могут быть расщеплены на более мелкие элементы.
Из них будут строиться остальные производные элементы формальной
системы. Примерами множества Т могут служить: алфавит графем
некоторого языка, набор десятичных цифр, набор деталей детского
конструктора. В качестве производных элементов в этих примерах
выступают соответственно: слова и фразы языка, записи чисел в десятичной
системе, различные конструкции, собранные из исходных деталей
конструктора. Правила Р определяют, как образуются из элементов
множества Т производные элементы. Число синтаксических правил конечно.
Те производные элементы, которые строятся из Т с помощью правил Р,
называются правильно построенными формулами (ППФ) или правильно
построенными совокупностями или словами (ППС). К правилам Р
125
предъявляется одно важное требование: они должны быть такими, чтобы существовала эффективная процедура (процедура распознавания), с помощью
которой относительно произвольной совокупности базовых элементов можно
было бы сказать, является она правильно построенной или нет.
Пример 11. На рис. 49, а показано множество Т, состоящее из
единственного элемента - квадратика. Множество правил Р имеет
следующий вид: 1. Квадратик есть ППС. 2. Если Ω - ППС и ω - любой
квадратик, выделенный в Ω, то к ω можно присоединить еще один
квадратик
находящийся выше или справа от ω (выделенный в Ω
квадратик заштрихован). 3. Других ППС нет.
С помощью правил Р образуется множество ППС. На рис. 49, в показана
одна из правильно построенных совокупностей данной системы. Однако не
любые совокупности допустимы правилами Р. Например, изображение
«животного», которое показано на рис. 49, г, не может получиться с
помощью квадратиков в результате применения правил Р. Покажем это.
Выделим в этом изображении тот квадратик, который
заштрихован. Если построение начинается с него
(сам он есть ППС согласно первому правилу
(п.1)), то дальнейшее присоединение к нему
невозможно. Если же Ω есть все остальное, кроме
этого квадратика (допуская даже неверное
в)
предположение, что все остальное можно
построить в дайной системе правил), то
заштрихованный квадратик согласно (п. 2) нельзя
присоединить к Ω.
Пример 12. Пусть множество Т состоит из
Рис. 49.
б)
всех
малых
букв
латинского
алфавита,
снабженных
индексами
или
без
них
(подмножество Т1), а также из специальных знаков ┐, &, ∨, ⊃, ∼, (,)
(подмножество Т2). Синтаксические правила имеют следующий вид:
1) Если а - любой элемент из Т1, то (а) есть ППФ.
2) Если β есть ППФ, то (┐β) также ППФ.
3) Если γ и δ являются ППФ, то (γ & δ), (γ ∨ δ), (γ ⊃ δ) и (γ ∼ δ) также
являются ППФ.
4) Других ППФ нет (вместо ⊃ часто употребляют →, а вместо ∼ пишут
↔ или ≡).
Задание: показать, что в соответствии с такими синтаксическими правилами
формула (((а) ∨ (b)) ⊃ h) является правильно построенной, а формула &) а
таковой не является.
Из множества производных элементов формальной системы, которые
построены в соответствии с синтаксическими правилами, выделяется
подмножество, элементы которого называются аксиомами. Подчеркнем, что
в формальных системах ничего не говорится об истинности или ложности
126
ППС. Поэтому читатели, у которых со словом «аксиома» связаны ассоциации
подобного типа, не должны считать, что аксиомы в формальной системе чемто отличаются от иных элементов из множества ППС.
Последний компонент формальной системы - правила вывода П. Они
служат для того, чтобы с их помощью из множества аксиом можно было
получать (выводить) другие ППС («теоремы»), которые не входят в начале
процесса в множество А. Правила имеют следующую общую форму записи:
К |=>Q. Здесь К соответствует некоторой совокупности ППС, которые либо
принадлежат А, либо уже были получены из А с помощью правил вывода.
Тогда Q есть совокупность ППС, которые выводятся на данном шаге
процесса вывода. Те ППС, которые получаются из А с помощью правил
вывода, образуют множество выводимых совокупностей
(MBС)
(множество выводимых формул (МВФ)).
Пример 13. Для системы, которая рассматривалась в примере 1, в
качестве системы аксиом зададим две совокупности, изображенные на рис.
49, а. Правило вывода (единственное) имеет вид: «Если ППС α и β выведены,
то выводима ППС, получаемая из них следующим образом: любые
квадратики, один из которых входит в α, а второй - в β, совмещаются между
собой передвижением этих ППС по плоскости без поворота. Полученная
ППС выводима.
Пример 14. Вернемся к примеру 12. Введем следующую систему
аксиом:
1) ((а∨ а) ⊃ а);
3) ((а∨ b) ⊃ (b∨ а));
2) (а ⊃ (а∨ а));
4) (( а⊃ b) ⊃ ((с ∨ а) ⊃ (с∨b)))
Введем два правила вывода. Первое из них - правило подстановки
формулируется следующим образом: «Еcли Q - выведенная формула, то,
подставляя вместо каждого вхождения некоторого элемента в Q
произвольную формулу, входящую в множество ППФ, вновь получим
выводимую формулу».
Пример 15. Использование правила подстановки. Пусть выведена
формула ((а&(┐b))∨(b)). Тогда, подставив вместо b вторую аксиому (п. 2) из
системы, получим формулу
((а & (┐(a ⊃ (а∨ а)))) ∨ (а⊃ (а ∨ а))),
которая согласно правилу подстановки также будет выводимой.
В качестве второго правила вывода возьмем правило заключения или
«модус поненс». Это правило формулируется следующим образом:
«Если Q и Q ⊃ L - выводимые формулы, то формула L также
выводима». Пусть, например, в формальной системе уже выведены формулы
(а) и ((а) ⊃ (b∨ h)). Тогда согласно правилу заключения в этой системе
будет выводима и формула (b∨ h).
Для установления связей между формальными системами и системами
семиотическими важное значение имеет процедура интерпретации
формальной системы. Например, элементы множества Т могут представлять
собой совокупность элементарных информационных сигналов, поступающих
127
в систему управления от датчиков, расположенных на объекте управления.
Роль производных элементов могут при этом играть определенные
временные последовательности элементарных сигналов или совокупности
подобных сигналов, приходящих от различных датчиков подсистем объекта
управления. Синтаксические правила в этом случае играют роль
формирующих процедур, целью которых является подача необходимой
совокупности элементарных сигналов в блок принятия решении по
управлению. Аксиомы могут отражать, например, некоторые утверждения о
соотношении
значений
сигналов,
верные
для
всего
периода
функционирования объекта управления. Наконец, правила вывода
интерпретируются в виде процедур получения производных утверждений о
состоянии объекта на основании поступающей от него информации.
Кроме
внешней
интерпретации,
связанной
со
спецификой
формализуемого объекта или протекающего в нем процесса, для формальных
систем существует еще и внутренняя интерпретация, не зависящая от
конкретного приложения системы.
Из рассмотренных примеров вытекают следующие свойства
формальных систем дедуктивного типа:
1. Эти системы представляют собой автономные генераторы
выводимых формул. При заданных аксиомах и правилах вывода они
автономно и нецеленаправленно генерируют множество выводимых
совокупностей (формул).
2. Особенностью ФСистем дедуктивного типа является независимость
генерации МВС от порядка получения выведенных совокупностей. В каком
бы порядке они ни получались, выводимые формулы не могут оказатся
невыводимыми.
3. В ходе вывода аксиомы и правила вывода остаются неизменными.
4. На выбор аксиом в ходе вывода оказывают влияние синтаксические
правила, т.к. аксиомы являются ППФормулами.
5. Интерпретация формальной системы является неизменной при
фиксированных правилах В.
Указанные
свойства
ФСистем
дедуктивного
типа
(вывод
осуществляется последовательно от аксиом к формулам, непосредственно
выводимым из них с помощью правил вывода, затем выводятся формулы,
вывод которых использует уже выведенные из аксиом формулы и т. д.)
соответствуют возможностям F-систем - систем без адаптатора (адаптатор –
подсистема, способствующая приспособлению системы к изменяющимся
условиям). Для систем управления более сложного типа выполняются не все
эти свойства. Например, для F-А-систем - систем с адаптатором - в процессе
функционирования может меняться вид правил вывода. Так вместо
формальной
детерминированной
системы
может
рассматриваться
вероятностная ФСистема, в которой правила вывода имеют вид:
р1а1; р 2а 2;…; рmаm ⇒ qβ.
Смысл таких правил вывода: при наличии вероятностей р1, р 2,..., рт того, что
128
формулы а 1, а2,..., ат уже выведены, формула β выводится с вероятностью q.
Работа адаптатора при подобных правилах вывода может заключаться,
например, в изменении значения q в ходе функционирования системы
управления.
Можно рассмотреть и систему детерминированного типа, в которой
адаптатор в процессе приспособления системы управления меняет правила
вывода, выбирая новые правила из заданного заранее списка. Правила
вывода при этом могут интерпретироваться как правила выбора тех или иных
управляющих воздействий на объект управления.
В семиотических системах интерпретатор при формировании модели
знаний, подобно адаптатору, может менять правила вывода системы F; кроме
того, он производит на некоторых шагах работы семиотической системы
смену системы аксиом. Роль аксиом в таких системах играют определенные
факты или закономерности, присущие объекту управления и среде,
устанавливаемые интерпретатором. Таким образом, в семиотических
системах не выполняются основные свойства формальных дедуктивных
систем (свойства 1-3). Кроме того, возможно изменение, как синтаксических
правил, так и правил интерпретации. Название «семиотические системы»
использовано для систем (в том числе, систем управления), в которых
присутствуют модель знаний и интерпретатор, не случайно. Этим названием
подчеркивается близость таких систем к семиотическим (знаковым
системам), изучаемым в семиотике.
Под знаком понимаются элементы, обладающие одновременно тремя
свойствами: синтаксисом, семантикой и прагматикой. На множестве знаков
заданы некоторые отношения между ними. Таким образом, семиотическая
система есть пара M=<Z, R>; здесь Z - множество знаков; R - множество
отношений между ними.
Естественный язык представляет собой сложно организованную
семиотическую систему. В этой системе много уровней и сложных связей.
Поскольку неоднократно будут использоваться языковые конструкции для
описания ситуаций и принятия решений (например, по управлению)
рассмотрим естественный язык с точки зрения семиотики на весьма
приблизительном уровне.
Рассмотрим несколько высказываний. 1. «Клапан № 2 открыт». 2.
«Рабочий Иванов отсутствует». 3. «Автомобиль МКЩ 06-33 сломан».
Несмотря на то, что эти фразы различны, в них чувствуется нечто общее. Эта
общность заключена в структуре фразы. Можно условно задать эту
структуру в виде
N-I-G, где N - множество всех существительных
единственного числа, именительного падежа, I - множеcтво идентификаторов (имен), G - множество глаголов совершенного вида, страдательного
залога, третьего лица, прошедшего времени. Зададим множество
Т=Т1 ∪Т2∪Т3. Подмножества содержат слова русского языка, относящиеся к
множествам N, I и G соответственно. В качестве синтаксического правила
для порождения правильных (синтаксически) предложений используем
предложенную структуру фразы N-I-G. Если порождать ППС в этой
129
формальной системе, то при наличии в Т1, T2, и Тз соответствующих слов
будут порождены и те три фразы, которые были приведены выше.
Для многих естественных языков удалось описать формальную
систему, лежащую в основе механизма порождения синтаксически
правильных фраз. В качестве базовых элементов при этом не обязательно
задавать все мыслимые в грамматике словоформы: стол, стола, столом, иду,
идешь и т. п. Введя морфологический уровень, можно хранить в качестве
базовых элементов лишь основы слов, а флексии присоединить к ним при
порождении синтаксически правильных фраз автоматически.
Семантический уровень естественного языка формализуется
значительно сложнее. Связано это с тем, что семантически правильная фраза
отличается от семантически неправильной фразы тем, что ей можно
приписать некоторый смысл, другими словами, интерпретировать в
некоторой модели знаний. Для каждого интерпретируемого элемента
(словоформы или основы слова) необходимо задать множество значений Г.
Для естественного языка характерно, что его элементы многозначны. Поэтому правила интерпретации устроены так, что значения, приписанные
словам в фразе, определяются лишь на основе анализа всей фразы. При
генерировании семантически правильных фраз значения входящих в эти
фразы слов нельзя выбирать произвольно, как в обычных формальных
системах. Выбор тех или иных значений определяется уже выбранными
ранее значениями. Существует несколько различных подходов к построению
правил для интерпретации семантики естественных языков. В настоящее
время ни один из естественных языков не удалось с необходимой полнотой
описать на семантическом уровне из-за огромной семантической омонимии.
Еще более сложна формализация прагматического уровня
естественного языка. Однако при использовании систем управления,
базирующихся на информации, представленной в виде текстов на
естественном языке, эта проблема значительно облегчается, т.к. прагматика
текстов в таких системах достаточно прозрачна.
Выводы. Для сложных систем (например, систем управления
сложными объектами), для которых априорная информация об их структуре
и функционировании обладает значительной неполнотой, необходимо
строить системы семиотического типа. А это значит, что одной из центральных проблем построения таких систем (например, систем управления
сложными объектами) является построение модели знаний системы об
объекте (управления) и интепретатора, работающего с этой моделью.
Построение модели знаний в свою очередь опирается на наличие специального ЯПЗ, без которого эта модель не может функционировать. Этот язык по
своим изобразительным возможностям должен быть достаточно богат, чтобы
адекватно отображать в модели знаний сведения о структуре объекта и
среды, а также о протекающих в них процессах. Такое требование сближает
ЯПЗ с естественным языком. Все сказанное подтверждает тезис о том, что
сложные системы должны строиться как логико-лингвистические. В логиколингвистических моделях логические средства обработки используются для
130
преобразования данных, представленных в лингвистической форме, близкой
форме естественного языка.
131
Выводы на знаниях.
Система представления знаний (СПЗ) состоит из базы знаний с
механизмом вывода и базы данных: СПЗ = <БЗ, МлВ, БД>. База знаний
содержит кванты декларативных знаний и процедурных знаний
(образующихся в результате использования алгоритмов и программ) об
объектах, предметах, явлениях, процессах вообще, безотносительно к их
конкретности. Эти кванты знаний реализуются в виде МПЗ (например,
специальных помеченных графов - разнообразных семантических сетей и
фреймов). База данных содержит конкретные данные и характеристики
квантов знаний, относящихся к той или иной конкретной ситуации в
предметной области.
Семантические отношения предметной области можно разделить на
следующие классы:
• лингвистические,
• логические,
• теоретико-множественные,
• квантификационные.
Лингвистические отношения бывают глагольные (время, вид, род,
число, залог, наклонение) и атрибутивные (модификация, размер, форма).
Логические отношения: конъюнкция, дизъюнкция, отрицание,
импликация и т.д.
Теоретико-множественные отношения - это отношение подмножества и надмножества, отношение множества и элемента, отношение части и
целого. Эти отношения обладают свойством транзитивности.
Квантификационные отношения делятся на логические кванторы
общности и существования, нелогические (численные) кванторы ("много",
"более одного", "несколько") и числовые характеристики.
Основными отношениями являются:
• класс, к которому принадлежит данное понятие,
• свойства, выделяющие понятие из всех понятий данного класса,
• примеры данного понятия.
Существуют две основные связи при установлении структуры понятий:
• связь "есть-нек" (от слов "есть некоторый") направлена от частного понятия
к более общему и показывает принадлежность элемента к классу,
• связь "есть-часть" показывает, что объект содержит в своем составе
разнородные компоненты (объекты), не подобные данному объекту.
Представление событийидействийс помощ
ьюсемантическойсети.
132
Сначала выделяют простые отношения, которые характеризуют основные компонентысобытия. Впервую
очередь из события выделяется действие, которое обычно описывается глаголом. Далее необходимо определить
объекты, которые действуют, объекты, над которыми эти действия производятся, и т. д. Все эти связи предметов, событий и качеств с глаголомназываются падежами.
Обычно рассматривают следующие падежи:
• агент - предмет, являющийся инициатором действия;
• объект - предмет, подвергающийся действию;
• источник - размещение предмета перед действием;
• приемник - размещение предмета после действия;
• время - указание на то, когда происходит событие;
• место - указание на то, где происходит событие;
• цель - указание на цель действия.
Базы знаний.
В современных системах управления вопрос о принятии решений ИИ
Системой требует фиксации знаний об управляемом объекте и реализации
моделей принятия решений, характерных для человека-специалиста
(инженера, технолога, экономиста, бухгалтера). Система понятий для
представления знаний существенно отличается от понятий для
представления данных.
Запросы, которые формулируются пользователями ИИ Системы,
реализуются одним из двух возможных способов:
• сообщения, являющиеся ответом на запрос, хранятся в явном виде в БД, и
процесс получения ответа представляет собой выделение подмножества
значений из файлов БД, удовлетворяющих запросу;
• ответ не существует в явном виде в БД, а формируется в ходе вывода на
основании имеющихся данных.
Последний случай принципиально отличается от технологии
использования баз данных и рассматривается в рамках представления
знаний, т.е. информации, необходимой для вывода новых фактов.
База знаний содержит:
• сведения, которые отражают существующие в предметной области
закономерности и позволяют выводить новые факты, справедливые в данном
состоянии предметной области, но отсутствующие в БЗ (или в БД), а также
прогнозировать потенциально возможные состояния предметной области;
• сведения о структуре самой ИС и ее БЗ (и БД) (метаинформация,
метазнания);
• сведения, обеспечивающие понимание входного языка, т.е. перевод
входных запросов во внутренний язык.
133
Принято говорить не о "знаниях вообще", а о знаниях, представленных
с помощью модели знаний. Принципиальными различиями обладают три
модели представления знаний - продукционная модель, модель фреймов и
модель семантических сетей.
Продукционная модель знаний и механизм вывода
Продукционная модель, ПМ, состоит из трех основных компонентов:
• набора Р правил-продукций, представляющего собой в продукционной
системе базу знаний;
• рабочей памяти, РП, в которой хранятся исходные факты и результаты
выводов, полученных из этих фактов;
• механизма (логического) вывода, МлВ, использующего правила в
соответствии с содержимым рабочей памяти и формирующего новые факты:
ПМ =<Р, РП, МлВ>.
Каждое правило А → В содержит части: условную - А и заключительную - В.
В условной части правила находится один или несколько фактов (условий),
соединенных логической операцией "И". В заключительной части правила
находятся факты, которые необходимо дополнительно сформировать в РПамяти, если условная часть правила является истинной.
Пример 1. Предположим, что в рабочей памяти хранятся следующие
факты:
• доля выборки записей равна 0,09;
• ЭВМ - PC XT.
Правила-продукции БЗнаний имеют вид:
1. Если метод доступа индексный, то СУБД- dBASE 3.
2. Если метод доступа последовательный, то СУБД - dBASE 3.
3. Если доля выборки записей <0,1, то метод доступа - индексный.
4. Если СУБД - dBASE 3 и ЭВМ - PC XT, то специалист-программист Иванов.
Механизм вывода сопоставляет факты из условной части каждого
правила с фактами, хранящимися в рабочей памяти. В примере 1
сопоставление условия правила 3 с фактами из рабочей памяти приводит к
добавлению нового факта "Метод доступа - индексный" и исключению
правила 3 из списка применяемых правил. С учетом нового факта становится
справедливой условная часть правила 1, и в рабочей памяти появляется факт
"СУБД - dBASE 3". Далее становится применимым правило 4, что приводит к
фиксации в рабочей памяти факта "Программист - Иванов”. В этот момент
дальнейшее применение правил невозможно, и процесс вывода
останавливается (пример показывает, что применимость каждого правила из
базы знаний в процессе вывода вовсе не обязательна).
Новые факты, полученные механизмом вывода:
• метод доступа - индексный,
134
• СУБД-dBASE З.
• программист - Иванов.
В примере 1 для получения вывода правила применялись к фактам,
записанным в рабочей памяти, и в результате применения правил
добавлялись новые факты. Такой способ действий называется прямым
выводом. Возможен также обратный вывод целей. В качестве цели выступает
подтверждение истинности факта, отсутствующего в рабочей памяти. При
обратном выводе исследуется возможность применения правил,
подтверждающих цель, необходимые для этого дополнительные факты
становятся новыми целями и процесс повторяется.
Предположим, что в примере 1 запрос цели имеет вид:
? "программист - Иванов".
Эта цель подтверждается правилом 4. Необходимые для правила 4 факты:
"ЭВМ - PC XT" и "СУБД - dBASE 3". Первый из них присутствует в рабочей
памяти, а второй становится новой целью. Для этой цели требуется
подтверждение правила 1 или правила 2. Факт-условие правила 2 не
содержится в РПамяти и не является заключением существующих правил.
Поэтому данная ветвь обратного вывода обрывается. Для применения
правила 1 необходим факт "Метод доступа - индексный", он является заключением правила 3, а условие правила 3 соблюдается (в РПамяти хранится
факт "Доля выборки записей равна 0.09"). В итоге первоначальная цель
"программист - Иванов" признается истинной.
В случае обратного вывода условием останова работы системы
является окончание списка правил, которые относятся к доказываемым
целям. При прямом выводе останов происходит по окончании списка
применимых правил. Отметим, что на каждом шаге вывода количество
одновременно применимых правил может быть любым (в отличие от
примеров, приведенных выше). Последовательность выбора подходящих
правил не влияет на однозначность получаемого ответа; однако может
существенно увеличить требуемое число шагов вывода. В реальных базах
знаний с большим числом правил это может существенно снизить
быстродействие системы. В системах с обратным выводом есть возможность
исключить из рассмотрения правила, не имеющие отношения к выводу
требуемых целей, и тем самым несколько ослабить указанный отрицательный эффект. По этой причине системы с обратным выводом целей получили
большее распространение.
Выводы на знаниях, представленных семантическими сетями.
Одним из средств вывода при работе со знаниями, представленными
семантическими сетями, является сравнение с примером (Query by Example).
Процедура, определяющая цель и содержание запроса к БЗ, представленной
семантической сетью, описывается также семантической сетью, построенной
аналогично этой БЗ - в терминах тех же объектов и отношений. Поиск ответа
на запрос (вопрос), представленный также семантической сетью, проводится
135
сравнением примера (т.е. запроса) с фрагментами семантической сети (БЗ).
Суть понимания запроса (т.е. его распознавания) состоит в возбуждении этим
запросом-сетью всех узлов семантической сети, непосредственно связанных
с понятиями и отношениями, используемыми в запросе. Такое возбуждение
должно вызвать более слабое возбуждение смежных с ними узлов, и т.д. При
обнаружении совпадения (достаточно широко трактуемого) запроса (как
семантические сети) с хотя бы одним фрагментом семантической сети (БЗ)
считается, что найден один из возможных ответов на запрос. Необходимость
поиска еще и других ответов определяется в самом запросе.
Выводы на знаниях, представленных фреймами.
Фреймовые системы относят к процедуральной форме представления
знаний, поскольку управление выводом во фреймовых системах реализуется
путем подключения составляемых пользователем «присоединенных»
процедур. Процедуры связываются со слотами и классифицируются на
«демонов» и «слуг». Демон активизируется автоматически, когда в слотхозяин подставляется некое значение или проводится сравнение значений.
Слуга активизируется только по явному запросу. С использованием именно
присоединенных процедур можно запрограммировать процедуру вывода на
фреймовой сети.
Механизм управления выводом в сети фреймов организуется следующим образом. Сначала запускается одна из присоединенных процедур
некоторого фрейма, называемого образцом. Образец - это фрейм-прототип,
у которого заполнены только слоты, описывающие связи данного фрейма с
другими. Затем посредством пересылки сообщений последовательно
запускаются присоединенные процедуры других фреймов. Так продолжается
до тех пор, пока не будет достигнута требуемая цель. Таким образом и
осуществляется вывод.
Во фреймовых языках основной операцией (вывода) является поиск по
образцу. Образец представляет собой фрейм, в котором заполнены не все
структурные единицы, а только те, по которым среди фреймов, хранящихся в
памяти ЭВМ, отыскиваются нужные фреймы. Образец может, например,
содержать имя фрейма, а также имя некоторого слота во фрейме с указанием
значения слота. Такой образец проверяет наличие в памяти ЭВМ фрейма с
данным именем и данным значением слота, указанного в образце. В образце
может быть указано имя некоторого слота и его значение. Тогда процедура
поиска по образцу должна обеспечить выборку из памяти ЭВМ всех
фреймов, в которых содержится слот с таким именем и таким значением
слота, как у образца. Наконец, может быть задана некоторая логическая
функция от имени фрейма, каких-то имен слотов и значений слотов.
Другими процедурами, характерными для фреймовых языков,
являются процедуры пополнения слотов данными, а также процедуры
введения в систему новых фреймов-прототипов (т.е. новых значений) и
введения новых связей между ними. Фреймовая модель особенно
136
эффективна, когда в зависимости от ситуации желательно применять
различные способы вывода. С другой стороны, здесь затрудняется оценка его
завершенности и существует реальная опасность зацикливания (зависания).
Фреймы громоздки, модификация родо-видовых отношений и вывод весьма
трудоемки. Фреймовую модель без механизма присоединенных процедур
(соответственно и без механизма пересылки сообщений) часто используют
как базу данных системы продукций.
Выводы на знаниях, представленных продукциями.
При логическом (в широком смысле) подходе утверждения
представляются в виде формул некоторой логики - классической, модальной,
многозначной, нечеткой и т.п. Логический подход позволяет применить
развитый аппарат вывода новых утверждений (фактов) на основе имеющихся в БЗ. Здесь гарантируется правильность вывода, а в случае его
невозможности - установление причины затруднения. Последнее свойство
используется при поддержании непротиворечивости баз данных (сравнение:
в случае семантических сетей обеспечить это свойство трудно). Результат
вывода интерпретируется на естественном языке пользователя. Чаще всего
используются продукционные системы с конечным набором правил вывода
вида
если А1, А2,..., АN то В
(если выполняются все условия от A1 до AN, то следует В или нужно
выполнить действие B). Антецедент (посылка) правила А (или А1, А2,..., АN)
представляет собой образец ситуации, когда правило можно (нужно)
применять. Условия А1, А2,..., АN называют еще и фактами. С помощью
фактов описывается состояние (начальное или текущее) предметной области.
Факты бывают всегда истинными, всегда ложными (такие факты тоже
зачастую нужны) либо правдоподобными, в последнем случае истинность
факта допускается с некоторой степенью уверенности. Итоговое условие
можно рассматривать как образец ситуации, в которой следует выполнять
указанное действие. Действие В одновременно трактуется как добавление
нового истинного факта в описание текущего состояния процесса вывода.
Правила описывают связи (например, причинно-следственные) между
фактами (при необходимости - и между правилами). Имея такое описание,
его не трудно ввести в ЭВМ. Для этого достаточно организовать базу фактов
и базу правил и построить интерпретатор базы правил, который по описанию
текущего состояния ПО (предъявленным ему фактам) выводил бы
заключения из этих фактов. На этой общей идее и построены продукционные
системы. В них используются два основных вида вывода: прямой и обратный
(вывод от данных и вывод от цели соответственно). В первом случае идут от
известных фактов и на каждом шаге вывода применяют все допустимые (с
истинными посылками) правила, которые порождают новые факты - до тех
пор, пока не будет порожден факт-цель.
137
Во втором случае вывод идет в обратном направлении. Если цель
согласуется с заключением правила, то посылку правила принимают за
подцель или гипотезу, и этот процесс повторяется до тех пор, пока не будет
получено совпадение подцели с известными фактами. Чисто прямая цепочка
ведет к неуправляемому режиму задания вопросов в диалоге. Обратная
будет, как правило, приводить к настойчивому продвижению, но требует
предварительного определения цели. Наиболее удачные системы используют
комбинированные варианты.
При работе с нечеткими (неточными, неполными) знаниями и данными
ИИСистема должна быть способной делать предположения (выдвигать
гипотезы-цели), а при получении информации, противоречащей
предположениям - по необходимости отказываться от сделанных
предположений (целей) и следующих из них умозаключений (немонотонный
вывод).
При неудаче вывода на очередном шаге выполняется откат,
реализуемый, например, с помощью магазина (стека). Однако возвращаться
надо не на один шаг назад, а в точку, где было сделано ошибочное
предположение.
Преимущества продукционных систем:
•модульность - каждое правило описывает небольшой, относительно
независимый фрагмент знаний,
•инкрементность - возможность добавления новых правил
относительно независимо от других правил,
•удобство модификации БЗ как следствие модульности и
инкрементности,
•прозрачность системы прослеживания логики и объяснения вывода.
Глава 5
5.3. Дедуктивный и абдуктивный выводы.
5.3.1. Логика и правила вывода.
Сначала кратко скажем о логике классической и логиках
неклассических).
Логика классическая (бинарная, дедуктивная) - это, прежде всего,
теория силлогизмов, алгебра логики (алгебра высказываний и предикатов),
исчисление высказываний и предикатов и т.д. Математическая логика - это,
прежде всего, классическая логика. Ее отличие от классической формальной
логики заключено в основном в том, что она столь формализована, что может
свести получение вывода к вычислительной процедуре сугубо
синтаксического характера - к действиям лишь над символами. Классическая
логика - это, прежде всего, логика дедуктивного вывода - логика вывода “от
общего к его частному”.
Логики неклассические (математические): логика интуициониская,
многозначная (и бесконечнозначная вплоть до топологической), модальные
логики, абдуктивные (недедуктивные), индуктивная, вероятностная,
138
нечеткая,
паранепротиворечивая,
немонотонная,
прагматическая,
псевдофизическая, логика (рассуждений по) аналогии, логика событий
(действий), логика вопросов и ответов, логика времени или темпоральная
(временная) логика, логика пространства, логика причин и следствий,
логика оценок, логика норм и т.д. и т.п. Использование неклассических
логик обусловлено тем, что модели, основанные на классической логике не
всегда соответствуют особенностям той или иной проблемной области,
например той, где возможны противоречивые ситуации. Тогда
использование, например, паранепротиворечивых, многозначных и
немонотонных логик позволяет избежать выводимости из противоречия
всего, что угодно (как это имеет место в классической логике, если
допустить в ней хоть одно-единственное противоречие). Говоря несколько
упрощенно, монотонная логика (ее основным примером является
дедуктивная логика) – это логика, в которой каждый полученный вывод не
может быть отменен последующими выводами и никакими ситуациями, а в
немонотонных логиках такое допускается.
Логические ЯПЗ - это, прежде всего, те модели, которые выражены на
языке классической формальной логики. Начнем с примера.
Равенство 2-х сторон треугольника влечет равенство хотя бы 2-х его углов “общее”,
поэтому (следовательно, в частности и т.п.)
равенство 3-х сторон треугольника влечет равенство 3-х его углов - “
частное”;
На языке (почти формальном) это же можно записать так:
равно(сторона1, сторона2) → ∃α - угол и ∃β - угол (такие, что выполняется)
равно(α,β).
Можно записать еще формальней: R(s1, s2) → ∃α∃β R(α,β), здесь R - 2-х
местный предикат, выражающий в данном случае отношение равенства: s1=
s2, α=β. Как видим, осмысленное (для нас, как для интепретаторов такого
рода выражений) высказывание “равенство 2-х сторон треугольника влечет
равенство хотя бы 2-х его углов” c помощью такого ЯПЗ как язык
символической (математической) логики переведено здесь в чисто
синтаксическую форму “R(s1, s2) → ∃α∃β R(α,β)”. А с последней можно
работать теперь также по чисто синтаксическим правилам, вовсе не
обращаясь ни к какому смыслу, например, по такому правилу (где ≡
означает “равносильно”):
R(s1, s2) → ∃α∃β R(α,β) ≡ R(s1, s2) → ∃(α, β) R(α,β) .
Классическая логика - это, прежде всего, логика дедуктивного вывода вывода “от общего к частному”. “Общее” то, что есть у каждого предмета (у
всех предметов) рассматриваемого класса предметов (в примере выше - это
класс всех треугольников – “мир треугольников”; ниже - это класс всех тел
как их понимают в физике). Поэтому, если “общее” истинно, то истинно и
“частное”:
все тела притягиваются друг к другу - большая посылка - “общее”,
139
планета Земля и звезда Солнце – тела - малая посылка - “частное”,
поэтому (следовательно)
Земля и Солнце притягиваются друг к другу - “заключение,
вывод”.
Другие (не классические) логики - это, прежде всего, логики не дедуктивного
(абдуктивного) вывода - логики вывода “не от общего к его частному”, но
цель их создания все та же: как правдоподобное приблизить по степени
истинности к достоверному = безусловно истинному - истинному везде и
всегда или же в фиксированных рамках рассматриваемого класса предметов,
или, как говорят, “в модели”.
Приведем примеры выводов различной степени правдоподобия.
Все известные тела при нагревании расширяются (увеличиваются в объеме),
вода - тело,
поэтому (следовательно)
вода при нагревании расширяется - “заключение, вывод”.
Этот вывод истинен (неоспоримый факт, по крайней мере, в рамках его
обычного рас-смотрения в физике).
Тела при охлаждении сжимаются (уменьшаются в объеме),
вода – тело, следовательно,
вода при охлаждении сжимается - “заключение, вывод”.
Этот вывод - оспоримый вывод (не факт в том смысле, что он не истинен,
ложен).
Тела под давлением сжимаются (уменьшаются в объеме),
вода - тело, следовательно, вода под давлением сжимается.
Но истина в том, что вода практически несжимаема.
Всякое тело можно нагреть до любой температуры. Значит, и охладить его
можно до любой температуры (?)
Все птицы имеют крылья. Птицы летают, махая крыльями.
Пингвины и страусы имеют крылья и машут ими.
Значит, пингвины и страусы летают (?)
Все знают, что такое “куча песка”, так что одна песчинка - это, конечно
же, - не куча песка. Все также знают, что если удалить одну песчинку из
кучи, то куча останется кучей (песка). Все знают, что если удалить вторую
песчинку из кучи, то куча также останется кучей (песка). Давайте удалять
песчинку за песчинкой. Через какое-то время останется одна песчинка. Когда
же исчезла куча песка?
Правила вывода: modus ponendo ponens - правило заключения, точнее,
отделения заключения от посылки, и правило подстановки (в формулу
вместо одной ее подформулы другой формулы), и другие (уже выводимые)
140
правила, например, правило силлогизма, modus tollendo tollens - правило
вывода (доказательства) от противного (обратного).
Модус поненс (МП) - modus ponens утверждает, что
если истинно А и истинно А→B, то истинно B.
Пример. Пусть удалось доказать, что “в ромбе диагонали
перпендикулярны” - А, и из А вывести B - “в квадрате диагонали
перпендикулярны”; тогда, имея сначала А и А → B как связанные в этой
импликации, где В зависит от А, получаем согласно МП утверждение B как
утверждение, теперь отдельно, самостоятельно существующее, так что
утверждение В - “в квадрате диагонали перпендикулярны” можно теперь
использовать как таковое, а не только исключительно в связке А → B.
Modus tollendo tollens утверждает, что А→B истинно (ложно) ⇔
истинно (ложно) B→А.
Пример. Пусть нужно доказать, что “любые отрезки любых прямых имеют
равномощные множества точек (отрезок – часть прямой между ее двумя
различными точками)”. Пусть С - “мощность множества точек некоторого
отрезка [c,d] равна M” и D - “мощность множества точек некоторого отрезка
[u,v] равна N”. Нужно доказать: M=N. Докажем от противного: но пусть M ≠
N, тогда имеем либо M > N, либо M < N (и третьего не дано). Очевидно, что
если длина отрезка [c,d] строго больше длины отрезка [u,v], то точек в
отрезке [c,d] не меньше, чем в отрезке [u,v], а точнее, с учетом M ≠ N, строго
больше, т.е. M > N. Расположим (только для наглядности) отрезок [u,v]
параллельно отрезку [c,d] и над (под) ним. Соединим двумя прямыми концы
этих отрезков. Эти прямые, конечно же, пересекутся в некоторой точке t,
образуя пару треугольников, один из которых либо входит в другой, либо
нет, в зависимости от того, какие концы отрезков были соединены. Возьмем
любую точку отрезка [c,d] и проведем через нее и точку t прямую до
пересечения с отрезком [u,v]. Очевидно, что для каждой точки x отрезка [c,d]
обязательно найдется хотя бы одна (а на самом деле, единственная) точка y
отрезка [u,v], полученная указанным способом: как точка пересечения с
отрезком [u,v] прямой, проведенной через x и t. Значит, точек в отрезке [c,d]
не больше, чем в отрезке [u,v]: M ≤ N, и доказательство закончено, т.к.
пришли к противоречию с предположением, что M > N. Заметим, что верно и
обратное: для каждой точки y отрезка [u,v] обязательно
найдется
единственная точка x отрезка [c,d], полученная тем же способом (так что M ≥
N). Если это ясно, то ясно, что получено взаимнооднозначное соответствие
между множествами точек этих отрезков, т.е. получено, что M=N, то
доказательство опять-таки закончено, т.к. пришли к противоречию с
предположением, что M ≠ N.
Правило подстановки: в каждую истинную (доказанную, выведенную)
формулу, в частности, в аксиому, вместо любой ее подформулы можно
подставить другую формулу во все места вхождения подформулы, причем
так полученная формула является тоже истинной (доказанной, выведенной).
141
Пример. Пусть формула (x ∨ y) → (x ∧ z) истинна. Тогда, если вместо
подформулы x в каждое место ее вхождения в формулу (x ∨ y) → (x ∧ z)
подставить, к примеру, формулу v → w, то получим также истинную
формулу (((x ∨ y) → (x ∧ z)) ∨ y) → (((x ∨ y) → (x ∧ z)) ∧ z).
Итоговый пример (в упрощенной форме). Предметная область:
планиметрия. Знания: теорема Пифагора и т.п. Проблемная область: решение
задач планиметрии, таких как следующие вычислительные задачи:
1) «Найти второй катет, если первый катет равен 5, а гипотенуза равна 7».
2) «Найти гипотенузу, если первый катет равен 5, а второй катет равен 7».
Тогда, используя сначала слова-символы на понятном нам языке,
теорему Пифагора, точнее, формулу, можно представить так:
РАВНЫ[Сумма(Квадрат(Первый_катет),Квадрат(Второй_катет)),Квадрат(Гипотенуза)],
а формализовав эту формулу, получаем МПЗ на данном логическом ЯПЗ в
следующей форме=модели: Р1[Р2(Р3(х), Р3(у)), Р3(z)]. Здесь предикат Р3
интерпретируется как быть квадратом, предикат Р2 - как быть суммой,
а предикат Р1 - как быть равным, аргументы х и у - как первый и второй
катет этого прямоугольного треугольника, а z - как его гипотенуза. Решение
любой задачи в таком контексте сводится к поиску логического вывода
целевой формулы в данной формальной логической системе. Например, надо
решить задачу: «Найти второй катет, если первый катет равен 5, а гипотенуза
равна 7». Эту задачу можно переформулировать как задачу вывода
истинности утверждения
∃ x[Равны(Сумма((Квадрат(5), Квадрат(x)), Квадрат(7)]
и как задачу нахождения х, при котором формула истинна;
целевая же формула, как итоговая - выходная, может иметь вид
Равны[Сумма(Квадрат(5), Квадрат(корень из 24=49-25)), Квадрат(7)]
или попросту х2=24.
Классическая логика в ИИС.
ИИС потому и называются интеллектуальными, что в них
используются такие формы моделей (представления моделей знаний и/или
данных, фактов), которыми (в соответствующей форме) пользуются сами
люди в своей интеллектуальной деятельности. Чтобы ни понималось под
«интеллектуальной деятельностью», в этой деятельности (и ее понимании)
всегда присутствует реализующая себя способность человека рассуждать.
Т.к. нас интересуют, прежде всего, правильные (истинные) рассуждения, есть
прямой смысл обратиться к их моделям, а потому и к науке «Логика»:
именно она изучает (и строит) эти модели, а тем самым, изучает модели и
неправильных рассуждений, оберегая (ИИС и нас) от ошибок. Поэтому,
прежде чем говорить о представлении логических моделей в ИИС, следует
прочно усвоить (хотя бы простейшие) положения, которые излагаются в
«Логике», начав с элементов классической традиционной логики. Основным
ядром классической логики является теория силлогизмов, основы которой
142
заложены Аристотелем (точнее, школой перипатетиков («прогуливающихся
по дорожке»), которую и возглавлял Стагирит).
Теория силлогизмов
Традиционная логика имеет дело, прежде всего, с понятиями.
Понятия делятся на общие и единичные (например, четное число и шесть).
Общее понятие по содержанию определяется указанием совокупности
свойств (указанных признаками), характеризующих подпадающие под
него предметы, т.е. каждый предмет обладает каждым указанным
свойством (четное число есть целое число, которое делится на 2 без
остатка, т.е. остаток=0, здесь два признака-свойства, если же “целое
число≠0”, то это третий признак). Итак,
Содержание - множество свойств, свойства выражены признаками,
посему содержание - множество признаков. Класс предметов, обладающих
этой характеристической совокупностью свойств, образует объем понятия
(например, множество четных чисел). Единичное понятие - это просто имя
определенного предмета (например, шесть), а его объем – множество с
единственным элементом - «одиночка» (если, конечно, понятие это
непустое, небессодержательное).
Свойства предметов в логике (символической, формальной, математической) представлены одноместными предикатами и обозначаются буквами
F, G, H, R,… . Высказывательную форму «предмет х обладает свойством F»
записывают в виде F(x).
Например, если F - свойство «быть четным числом», а x - любое натуральное
число, то F(x) - высказывательная форма, при этом высказывания предикаты F(8) и F(20) истинны, а высказывание F(7) ложно.
Замечание. Начнем с примеров понятий: четное число, четное число
вида 2n, четыре. Ясно, что четное число - это общее понятие, а четыре единичное. Ясно и то, что четное число вида 2n есть часть множества всех
четных чисел. Так приходим к тому, что можно говорить и о частных
понятиях. Однако можно (но не всегда нужно) обойтись и без понятия
частного, потому что оно всегда либо общее по отношению к другому еще
более частному (“четное число вида 2 n ” - общее по отношению к “четное
число вида 22n”), либо является единичным (в вырожденном случае,
например, четыре, 4=22). Такого рода замечания следует иметь в виду, когда
пойдет речь об интенсионале и экстенсионале и их относительности.
Совокупность свойств F1,…, Fn можно заменить свойством F - «обладать всеми свойствами Fk, k = 1, 2,…, n» (формально: F= F1&…&Fn).
Поэтому с точки зрения содержания «общее понятие» традиционной логики
есть одноместный предикат, а потому ниже будем иметь дело лишь с
одноместными предикатами и называть их просто предикатами.
Взяв любой предикат F, можно образовать класс
143
M = {x| F(x)}
(1)
всех предметов, обладающих свойством F. Этот класс и характеризует объем
понятия, т.е. при условии (1) для любого х имеет место эквивалентность:
F(x) ó x ∈ M. Точнее, выражение ∀x (F(x) ó x ∈ M) означает
«для всякого х имеет место х ∈ М тогда и только тогда, когда F(x)»,
т.е. тогда и только тогда, когда предикат F(x) истинен.
При подходе к понятиям с точки зрения их объема предполагают, что
заранее фиксирован некоторый непустой класс D предметов (но иногда и
вовсе не редко удобно не исключать случай и пустого класса как не
исключается класс, содержащий всего лишь один элемент). Произвольно
взятый из D предмет обозначают через x, так что x - это переменная, которая
“пробегает” D. Тогда класс D называется областью изменения переменной х:
вместо х можно подставлять любой предмет из класса D.
Например, в качестве D может выступать класс всех натуральных чисел,
класс всех действительных чисел или класс всех множеств.
Выражение «для всякого х» следует понимать как «для всякого
предмета х из класса D».
Заметим, что M и D названы классами, а не множествами: не всякое
свойство определяет множество объектов, хотя можно считать, что всякое
свойство (записанное в некотором логико-математическом языке) определяет
класс. Множества суть частные виды классов.
Например, класс всех натуральных чисел и класс всех действительных
чисел суть множества, а класс всех множеств - именно и только класс, но не
множество.
Итак, область изменения переменной может быть классом= множеством, а может быть именно классом, но не множеством.
Считается, что в теории силлогизмов могут фигурировать произвольные
классы. Хотя и будем использовать термин “класс” в указанном общем
смысле, однако далее фактически хватит частного случая, когда класс есть
множество.
Пусть по содержанию классам S и P соответствуют предикаты F и G:
∀x (F(x) ó x∈S), ∀x (G(x) ó x ∈ P),
а переменная х пробегает класс D - некоторый непустой фиксированный
класс предметов.
Аристотель рассматривал четыре типа суждений (высказываний):
A(S, P) - общеутвердительное: «все S суть P»;
E(S, P) - общеотрицательное: «ни одно S не есть P»;
I(S, P) - частноутвердительное: «некоторые S суть P»;
O(S, P) - частноотрицательное: «некоторые S не суть P».
В обозначениях математической логики и теории классов (и/или
множеств) получаем такие формы записи указанных выше типов суждений:
144
A(S, P)
S ⊆ P или S \ P = ∅
∀x (F(x) ⇒ G(x))
E(S, P)
S∩P=∅
∀ x (F(x) ⇒ G(x)) или
∀x  (F(x) ∧ G(x))
I(S, P)
S∩P≠∅
∃ x (F(x) ∧ G(x))
O(S, P)
S \ P ≠ ∅ или  (S ⊆ P)
∃x (F(x) ∧ G(x))
Здесь S ∩ P - пересечение классов S и P: ∀x (x∈S∩P ⇔ x∈S ∧ x∈P),
S \ P - разность классов S и P: ∀x (x∈ S \ P ⇔ x∈S ∧ x∈P),
S ⊆ P – включение: ∀x (x∈S ⇒ x∈P),
 (S ⊆P) означает: «неверно, что S ⊆ P»,
∅ - пустой класс (=пустое множество): ∀x (x∈∅).
С помощью этих обозначений можно формулировать общие
логические законы, т.е. высказывания, справедливые при любом выборе
соответствующих классов. Так, для любых трех классов (в частности,
множеств) S, M и P справедлив вывод
(M ⊆ P) ∧ (S ⊆ M) ⇒ (S ⊆ P).
В традиционных обозначениях это высказывание имеет вид
A(M, P)
A(S, M)
A(S, P) .
Какие аналогичные правила вывода еще существуют? Имеются в виду
правила вывода, позволяющие выводить суждения одного из видов А(S,P),
E(S,P), I(S,P) или О(S,P) из двух суждений типов A, E, I или О, из которых
первое связывает понятие Р с третьим понятием М, а второе - понятие S с тем
же третьим понятием М.
Ясно, что возможны точно четыре схемы такого рода правил (в
традиционной терминологии – четыре фигуры силлогизма):
⋅ (M, P)
⋅ (P, M)
⋅ (S, M)
⋅ (S, P)
I
⋅ (M, P)
⋅ (S, M)
⋅ (S, P)
II
III
⋅ (P, M)
⋅ (M, S)
⋅ (S, P)
IV
⋅ (S, P)
⋅ (M, S)
В каждой из этих схем (фигур) вместо точек можно 43=64 способами
расставить буквы А, Е, I, и О. Получается 256 возможных правил вывода (в
традиционной терминологии – возможных модусов силлогизма). Однако не
все эти правила состоятельны в следующем смысле: модусы силлогизма,
следуя которым, из истинных посылок всегда получают лишь истинные
следствия, называются правильными (т.е. состоятельными).
145
В аристотелевой логике таких правильных модусов всего девятнадцать.
Им даны следующие названия:
1-я фигура
2-я фигура
3-я фигура
4-я фигура
bArbArA
cEsArE
dAtIsI
cAlEmEs
cElArEnt
cAmEstrEs
fErIsO
frEsIsOn
dArII
fEstInO
dIsAmIs
dImAtIs
fErIO
bArOcO
bOcAdO
* bAmAlIp
*dArAptI
*fEsApO
* fElAptOn
Гласные буквы в этих названиях указывают на выбор букв А, Е, I или О.
Например, модус fElAptOn имеет вид
Е (М, Р)
А(М, S)
O (S, P),
т.е. (M ∩ P = ∅) ∧ (M ⊆ S) ⇒  (S ⊆ P).
Эта формула превращается в ошибочное высказывание при P = M = S = ∅,
но при не пустых множествах Р, М и S эта импликация верна.
Аристотель и его последователи вплоть до двадцатого века не
признавали понятий с пустым объемом. Со своей точки зрения они были
правы, признавая наличие именно девятнадцати правильных модусов. Но для
математиков, программистов и т.д., в том числе и значительной части
современных логиков такая позиция крайне не удобна. Например, в течение
тысячелетий не удавалось (и не удалось) установить, пуст или нет объем
понятия «нечетное совершенное число» (совершенным называется
натуральное число, у которого сумма отличных от него делителей равна
самому числу); так что же теперь - не использовать это понятие? Не лучше ли
(и не проще ли) избавиться от таких проблем раз и навсегда, для чего и надо
всего лишь считать допустимым работу с «пустыми» понятиями: суть дела
не меняется, ошибки по этой причине не возникают, а излишних проблем
нет. Аналогичная история была и с нулем - ему же «ничего» не
соответствует, т.к. число - это модель количества «чего-то наличного»,
получается, что тогда 0 - не число - как же так? Кому это удобно, тот и пусть
обходится без 0-ля, а мы уж как-нибудь разберемся с ним: у нас не может
быть тех проблем, которые тут же возникают у ревнителей наличности).
При допущении понятий с пустым объемом правильных модусов
остается пятнадцать (выпадают модусы, отмеченные звездочкой).
Если Вы - человек с “математическим складом” ума, то Вы, конечно
же, поняли, что
S ⊆ P - включение (бинарное рефлексивное, антисимметричное и
транзитивное отношение - частный случай отношения порядка) и
S ∩ P - пересечение множеств: ∀x (x∈S∩P ⇔ x∈S ∧ x∈P),
фактически определяет структуру порядка на множестве всех подмножеств
некоторого множества М (любого) с операцией пересечение ∩, которая
оказалась согласованной с ⊆ : если S ⊆ P, то S∩Q ⊆ P∩Q для любых S, P, Q ⊆
146
М. Вы, конечно же, поняли, что так возникшую алгебру, а именно,
полурешетку, можно дополнить (и в этом смысле расширить), введя на
указанной структуре-полурешетке <М, {⊆, ∩}> также операции:
S ∪ P - объединение множеств S и P: ∀x (x∈S∩P ⇔ x∈S ∨ x∈P) и
S \ P - разность множеств S и P: ∀x (x∈S \ P ⇔ x∈S ∧ x∈P).
Последняя операция позволяет построить для каждого множества S ⊆ М его
дополнение D = М \ S в М. Так возникшая формальная система, а именно,
булева решетка <М, {⊆, ∩, ∪, \}>, оказывается вполне пригодной, чтобы
все (без исключения) утверждения теории силлогизмов получать
средствами (т.е. операциями над элементами) именно этой формальной
системы.
Тем самым, эта часть логики (а на самом деле, практически вся логика)
со всем стоящим за ней содержательным смыслом фактически сведена к
синтаксису, т.е. к формальным (синтаксическим) операциям над элементами
указанной структуры - булевой решетки. Поэтому-то в математической
логике провести те или иные рассуждения и означает проделать
соответствующие вычисления над символами. Как известно такую же
структуру - булеву решетку имеет и множество всех отношений на
множестве. Это не случайно (подробнее см. Кутьин А.М. Соответствия и
отношения: теория и применение в базах данных и экспертных системах.
Учебное пособие. Красноярск, изд. КГТУ. 2004. 134 с.)
Другие части классической логики:
алгебра высказываний и алгебра предикатов,
исчисление высказываний и исчисление предикатов.
Алгебра высказываний (как и алгебра предикатов, исчисление
высказы-ваний и исчисление предикатов) строятся из элементарных
высказываний, обозначаемых x, y, z,… или как a, b, c,…, или A, B, C,…,
следующим образом: если x, y, z - высказывания (если A, B, C высказывания), то
высказываниями являются все выражения вида,
полученные с помощью логических связок (логических операций ∧ (&), ∨,
→, ¬, ↔ и т.д.):
¬x (не х, отрицание x, часто вместо ¬x пишут x),
x ∧y (x&y, x и y),
z ∨ x (z или x),
y → z (y влечет z, из y следует z, y имплицирует z, вместо → часто пишут ⊃),
y ↔ z (y тогда и только тогда, когда z, y эквивалентно z, y равносильно z,
y влечет z и y следует из z, вместо ↔ часто пишут ∼ или ≡).
Если x, y, z - правильно построенные формулы - ППФ (правильно построенные слова - ППС), то ¬x, x ∧y, y → z, y ↔ z также ППФ (ППС).
Задание. Построить такие же составные высказывания из A, B, C,
заменив ¬ на  , → на ⊃, ∧ на &, ↔ на ∼ .
Аксиомы алгебры высказываний выражены таблицами истинности.
147
а
b
а
b
а&b
а∨b
а⊃b
а∼b
Л
Л
И
И
Л
И
Л
И
И
И
Л
Л
И
Л
И
Л
Л
Л
Л
И
Л
И
И
И
И
И
Л
И
И
Л
Л
И
Используя эти таблицы, можно найти значение истинности любой ППФ.
Пример1. Найдем значение истинности для ППФ ((a⊃b) & (a\/c)) & c при
условии, что а интерпретируется как Л, b - как И, а с - как И. Получаем:
((Л ⊃И) & (Л VИ)) & И.
И
И
И
И
Следовательно, ППФ ((a⊃b) & (a\/c)) & c имеет значение И.
Исчисление высказываний, ИВ. Правила построения ППФ те же, что и
в АВ - алгебре высказываний.
Аксиомы ИВ: следующие формулы объявляются аксиомами ИВ (т.е.
дока-зуемыми, выводимыми, правильными формулами):
I – первая группа аксиом:
1) x → (y → x),
2) (x → (y → z)) → ((x → y) → (x → z)).
II – вторая группа:
1) x& y → y,
2) x& y → x,
3) ( x→ y) → ((x → z) → (x → y& z)).
III – третья группа:
1) x → x ∨ y,
2) y → x ∨ y,
3) (x → z) → ((y → z) → (x ∨ y → z)).
IV – четвертая группа:
1) (x → y) → ( y → x) ,
2) x → x ,
3) x → x.
Алгебра предикатов и исчисление предикатов строятся по правилам,
аналогичным правилам АВ и ИВ, к которым добавлены правила о кванторах.
148
Примеры предикатов с кванторами и без них приведены были выше:
равно(сторона1, сторона2), ∃α∃β равно(α,β), R(s1, s2) → ∃α∃β R(α,β) и т.д.
5.3.2. Виды логического вывода. Существуют три основных вида логического
вывода:
• дедукция основана на применении общих правил к частным случаям,
• абдукция – рассуждение недедуктивного вида, ее важный случай:
• индукция – рассуждение от частного к общему.
Системы логического вывода
Методы вывода
Назначение
ИИС
Модель знаний
Экспертная
система
Логическая
Система
управления
Продукционная
База данных
и знаний
САПР,
АСНИ,
... .
Вид вывода
Реализация
Программная
Дедуктивный
Фреймовая
Абдуктивный
Програмноаппаратная
Индуктивный
Аппаратная
Семантические
сети
Рис. 1. К характеристике систем логического вывода
Один из основателей семиотики Пирс называет индукцию и дедукцию
в качестве основных способов логического вывода. Он дает описание связей
между этими принципами, используя следующий широко известный
силлогизм:
1. Правило (главная посылка) ∀x HUMAN(x) ⇒ MORTAL (x).
2. Факт (второстепенная посылка) HUMAN (SOCRAT).
3. Цель (вывод) MORTAL (SOCRAT).
149
Методы логического вывода
Форма представления
данных
Законы логики
Modus
ponens
Секвенции
Принцип
ponendo
Дизъюнкты
Modus tollendo
tollens
Клозы Хорна
Modus ponendo
tollens
Эрбрана
Резолюции
Деление дизъюнктов
Modus tollendo
ponens
Направленност
ь
Тактика
Прямой
Стратегии
Синтаксические
Сначала «вглубь»
Обратный
Семантические
Двунаправленный
Сначала «вширь»
Эвристические
Рис. 2. Характеристика методов логического вывода
Дедукцией называется логический вывод, заключающийся в выведении цели 3 из
посылок 1 и 2. Индукцией называется логический вывод, при котором предполагается,
что между двумя известными фактами – второстепенной посылкой 2 и выводом 3 –
существует посылка 1. Т.к. правило 1 – аксиома или общий принцип, то индукция – это
вывод общего принципа между двумя отдельными фактами. Обычно неясно, верен ли
этот общий принцип, что требует дополнительных подтверждений.
Рассмотрим представления знаний в логике высказываний.
150
Пропозициональный словарь логикивысказываний состоит из
бесконечного (счетного) множества высказываний, обозначаемых строчными
буквами (иногда с индексами), и пяти связок: отрицания (-), конъюнкции
(∧или &), дизъюнкции (∨), импликации (→) и эквивалентности (↔). Словарь
дает возможность строить сложные или составные высказывания из
исходных (простых, элементарных), соединяя последние связками. Правила
построения описывают те выражения, которые являются объектами языка.
Такие высказывания называют формулами. Интерпретировать формулу –
значит приписать ей одно из двух значений истинности: истина И (1) или
ложь Л (0). Семантика произвольной формулы исчисления высказываний
полностью определяется ее таблицей истинности. Формула семантически
выполнима или просто выполнима, если она допускает некоторую модель,
т.е. ее можно интерпретировать со значением И. Формула общезначима, если
она истина независимо от истинных значений, приписанных составляющим
ее высказываниям. Общезначимые формулы исчисления высказываний часто
называют тавтологиями.
Любая формула может быть преобразована в эквивалентную ей,
имеющую вид «нормальной», или «канонической» формы. В этом
отношении особый интерес представляют понятия «дизъюнкт» и
«конъюнктивная нормальная форма». Дизъюнктом называется дизъюнкция
конечного числа литералов. Дизъюнкт общезначим тогда и только тогда,
когда он содержит пару противоположных литералов. Единственным
невыполнимым дизъюнктом является пустой дизъюнкт, обозначаемый Л или
0. Конъюнктивной нормальной формой (КНФ) называется конъюнкция
конечного числа дизъюнктов.
Часто бывает, что какой-либо метод логического вывода, неэффективный в
наибольшей общности, оказывается эффективен в некоторых частных
случаях. Например, метод резолюции, рассматриваемый далее, оказывается
наиболее эффективным, когда задача представлена в виде хорновских
дизъюнктов, т.е. таких, которые не содержат более одного позитивного
литерала.
Дизъюнкт Хорна B1&B2&...&BN → A также называется хорновским
клозом или хорновским правилом. Если антецедент (тело) дизъюнкта
отсутствует, то формула принимает вид →А и называется фактом. Если
отсутствует сукцедент (голова), то формула B1&B2&...&BN→ называется
целью (запросом).
Характеристика методов логического вывода представлена на рис. 2.
Законы логики и принципы.
Фундаментальная проблема любой аксиоматической системы,
называемая проблемой дедукции, формулируется так: определить, является
ли формула А логическим следствием множества формул В1, В2,..., Вk.
Наибольшее распространение получили следующие два закона логики.
151
Modus ponendo ponens:
B→ C, B .
C
Modus tollendo tollens:
_
B → C, C
_
B
Из большого числа различных принципов, лежащих в основе алгоритмов
логического вывода рассмотрим наиболее известные.
Тривиальный алгоритм требует просмотра некоторого полного
семантического
дерева,
соответствующего
конечному
множеству
высказываний, встречающихся в формуле А. Этот алгоритм крайне не
эффективен: если формула А содержит n различных высказываний, то нужно
рассматривать 2n интерпретацией.
Алгоритм Куайна и алгоритм редукции – довольно незначительное
усовершенствование тривиального алгоритма. Доказано, что
алгоритм Куайна для проверки выполнимости и общезначимости
формулы упрощается в применении к конъюнктивной нормальной форме.
Тогда проблема общезначимости становится тривиальной: речь идет о
проверке тавтологичности каждого дизъюнкта.
Важные результаты в этом направлении были получены Эрбраном. Его
подход основан на том, что
множество дизъюнктов S невыполнимо тогда и только тогда, когда оно
принимает значение Л во всех интерпретациях на любых областях.
Однако в силу невозможности рассмотрения всех интерпретаций,
необходимо найти такую специальную область интерпретации, установив на
которой факт невыполнимости множества дизъюнктов, можно было бы
сделать вывод о невыполнимости его на других областях.
Такая область получила название универсума Эрбрана.
Несколько другой подход предложил Робинсон, разработав достаточно
удобный метод для выявления невыполнимости множества дизъюнктов,
представленных в виде КНФ. Действительно, по определению множество
дизъюнктов невыполнимо тогда и только тогда, когда пустой дизъюнкт Л
является логическим следствием из него.
Таким образом, невыполнимость множества S можно проверить,
порождая логические следствия из S до тех пор, пока не получим пустой
дизъюнкт.
Для порождения логических следствий используется правило
резолюции:
_
A ∨ X, B∨ X}→ A ∨ B, _
_
где А, В - дизъюнкты, Х - высказывание. Литералы Х и Х называются
контрарной парой; полученный в результате применения данного правила
152
дизъюнкт A ∨ B называется резольвентой. Если S - невыполнимое множество,
то при помощи резолюции можно получить пустой дизъюнкт (т.е. Л - ложь).
Именно на основе принципа резолюций построен один из наиболее
распространенных языков логического программирования - Пролог.
Направленность и тактика. В зависимости от направления
возможны три вывода. Правосторонний или обратный вывод, когда вывод
ведется от заключения к исходным посылкам (иногда
для указания
использования обратного вывода пользуются термином «модель
трансформации целей»). Левосторонний вывод или прямой вывод, когда
вывод осуществляется от исходных посылок к заключению («модель
трансформации знаний»). Двунаправленный вывод, т.е. доказательство
ведется как от исходных посылок, так и от заключения.
Независимо от направлений вывода выделяют
две тактики управления ходом вывода. Дерево состояний,
начинающиеся от заданной цели или начального состояния, может быть
просмотрено сначала «вглубь» или сначала «вширь». При поиске «вглубь»
дерево просматривается от заданного состояния на всю глубину до
исчерпания последовательности «преемственных» состояний на этом пути,
т.е. движение осуществляется вдоль самой левой ветви до тех пор, пока не
будет найдено решение или достигнут коней ветви. В последнем случае
необходимо «отступить» в предыдущую точку ветвления (процедура back
tracking) и просмотреть все остальные ветви. Недостатком просмотра сначала
«вглубь» является необходимость сохранения информации о всех
пройденных вершинах, так как постоянно существует вероятность возврата в
любую из них. При поиске сначала «вширь» происходит порождение всех
возможных на данном уровне альтернатив, а затем альтернатив на
следующем уровне и т. д. При этом порождение альтернатив текущего
уровня может выполняться параллельно, что важно для методов
параллельного логического вывода.
Стратегии. В настоящее время существует множество различных
стратегий, направленных на повышение эффективности процедур поиска
нужных дизъюнктов. Эти стратегии делят на синтаксические, семантические
и эвристические. Необходимо отметить, что на практике часто встречаются
комбинации различных видов стратегий вывода. Наиболее известны
следующие стратегии. Так называемый «чистый Пролог» использует
стратегию линейного вывода. При такой стратегии i-е предложение вывода
имеет в качестве одного из своих «родителей» (i-1)-е предложение вывода,
что сильно сужает число рассматриваемых дизъюнктов и приводит к
довольно обозримым (по сравнению с интуитивным выбором)
доказательствам.
Другая эффективная стратегия получила название семантической
резолюции. При использовании семантической резолюции число излишних
дизъюнктов уменьшается за счет интерпретации и упорядочения
предикатных букв. Исходное множество делят на два подмножества и
153
запрещают образование контрактных пар (L и неL) внутри одного подмножества. Для разбиения на подмножества используется интерпретация,
когда в первое подмножество включаются те дизъюнкты, которые при
данной интерпретации принимают значение И, а во второе - дизъюнкты,
принимающие значение Л. Также способствует ограничению количества
генерируемых резольвент упорядочение литералов (например, по алфавиту).
Тогда в качестве родительских дизъюнктов будут выбираться те, у которых
контрарные литералы являются наибольшими (крайними слева).
Под исключением тавтологий понимается: любые предложения,
содержащие литерал или его отрицание, можно отбросить, так как любое
невыполнимое множество, содержащие тавтологию, остается невыполнимым
и после исключения последней.
Исключение подслучаев предполагает следующие: если дизъюнкт {Li}
является подслучаем дизъюнкта {Mj}, то предложение {Li} можно
исключить, не нарушая свойства невыполнимости оставшегося множества.
Присоединение процедур понятно из следующего рассуждения. Иногда
можно оценить значение истинности некоторых литералов. Такое
означивание легко провести для константных частных случаев. Если литерал
предложения получает значение истинности, то все содержащие его
предложения можно отбросить. Если же литерал при означивании получает
значение «ложь», то из всех предложений можно исключить данное
вхождение литерала.
5.3.3. ДЕДУКТИВНЫЕ МЕТОДЫ ВЫВОДА
Логические модели являются формой представления знаний о проблемных
областях с небольшим пространством поиска решений и определенными фактами
и знаниями. Они удобны также для формального описания мышления человека,
так как часто его рассуждения при решении задач носят дедуктивный характер.
Для построения подобных рассуждений система ИИ должна быть способна
выводить новые факты исходя из известных ей. Новые логические конструкции и
формы создаются исходя из применения правил вывода к имеющимся логическим
формулам.
Логика предикатов первого порядка является расширением логики
высказываний, т.к. основным объектом здесь является предикат, истинность и
ложность которого зависит от значений его переменных.
Высказывание есть утвердительное предложение, которое либо истинно
(И), либо ложно (Л). Истинностным значением высказывания называется И или
Л, приписываемые ему.
В логике высказываний символы Р, Q, R и т.д., используемые для
обозначения высказываний, называются атомарными формулами. Из
высказываний с помощью логических операторов ¬ (не), ∧ (и), ∨ (или), →
(если..., то...), ↔ (тогда и только тогда, равнозначность) строятся составные
высказывания.
154
Выражение, которое представляет высказывание или составное
высказывание, называется правильно построенной формулой (ППФ) (коротко формулой), точнее, если Р и Q - ППФ, то ¬ Р, Р ∧ Q, Р ∨ Q, Р → Q и Р ↔ Q - ППФ.
Пусть G - данная пропозициональная формула (пропозиция - высказывание) и А1,
А2,…, Ап - ее атомарные формулы. Интерпретацией формулы G является такое
приписывание истинностных значений атомарным формулам А1,…, Ап , при
котором каждому Аi приписано либо И, либо Л (но не оба вместе).
Формула истинна при некоторой интерпретации, тогда и только тогда,
когда G получает значение И в этой интерпретации; в противном случае говорят,
что G ложна при этой интерпретации. Если формула истинна при всех
возможных интерпретациях, то говорят, что она является общезначимой
формулой (тавтологией). Обозначим ее ¢. Если формула ложна при всех своих
интерпретациях, то говорят, что она является противоречивой (противоречием).
Противоречивая формула невыполнима. Обозначим ее £.
Говорят, что две формулы Р и G эквивалентны или что Р эквивалентна Q
(P=Q), когда истинные значения Р и Q совпадают при каждой интерпретации Р
и Q. Существует множество эквивалентных формул, называемых законами,
которые используются при преобразованиях формул из одной формы в другую,
особенно - в «нормальную форму».
Литера - это атомарная формула или ее отрицание.
Формула Р находится в конъюнктивной нормальной форме (КНФ), тогда и
только тогда, когда Р имеет вид
P ⇔ P1 ∧ K ∧ Pn , n ≥ 1 ,
где каждая из P1, P2,…, Pп есть дизъюнкция литер. Здесь знак ⇔ означает «равно
по определению».
Формула Р находится в дизъюнктивной нормальной форме (ДНФ), тогда и
только тогда, когда Р имеет вид
P ⇔ P1 ∨ K ∨ Pn , n ≥ 1 ,
где каждая из P1, P2,…, Pп есть конъюнкция литер.
Всякая формула может быть преобразована в нормальную форму путем
использования законов эквивалентных преобразований. Приведем некоторые из
них:
P ↔ Q = (P → Q ) ∧ (Q → P ) ,
(1)
P → Q = ¬P ∨ Q ,
(2)
P ∨ (Q ∧ H) = (P ∨ Q) ∧ (P ∨ H) ,
(3а)
P ∧ (Q ∧ H) = (P ∧ Q) ∨ (P ∧ H) -
(3б)
дистрибутивные законы,
¬( ¬P) = P - закон двойного отрицания,
¬(P ∨ Q) = ¬P ∧ ¬Q ; ¬(P ∧ Q) = ¬P ∨ ¬Q - законы де Моргана,
P ∨ ¬P = ¢ - закон исключенного третьего,
(4)
(5a); (56)
(6)
155
P ∧ ¬P = £ - закон противоречия,
P ∨ £ = P; P ∧ ¢ = P
P∨¢ = ¢ ; P∧£
(7)
(8а); (8б)
(9а); (9б)
Рассмотрим основные правила вывода в логике высказываний.
При логическом выводе в рамках данной формальной системы стоит
задача образования из некоторой совокупности исходных ППФ новых
формул, которые являются тавтологиями. Эта задача решается с помощью
Правил вывода и законов.
Правило подстановки. Пусть Р - ППФ, содержащая атомарную
формулу X. Тогда, если Р - тавтология, то, заменяя в ней X всюду, где она
входит, произвольной ППФ В, получают также тавтологию.
Modus ponens (правило заключения, или правило дедуктивного вывода).
Положительная форма условно категорического силлогизма:
Q (здесь символ означает «выводимость»).
Modus tollens. Отрицательная форма условно категорического силлогизма:
P → Q,¬Q ¬P .
Modus tollendo ponens. Форма разделительно категорического силлогизма,
Отрицающе-утверждающий модус:
P ∨ Q,¬P
Q.
Modus ponendo tollens. Форма разделительно категорического силлогизма,
Утверждающе-отрицающий модус:
P ∨ Q, P ¬Q .
Правило силлогизма (правило цепного умозаключения):
P → Q,Q → R
P→R.
Правило контрапозиции:
P → Q ¬Q → ¬P .
Формула является выводимой, если она может быть получена из
конечной совокупности исходных формул путем конечного числа шагов
применения правил вывода. Для сокращения многократного применения
основных правил вывода используются специальные правила.
Пусть даны формулы P1, P2,…, Pп и формула Q. Говорят, что Q есть
логическое следствие формул Р1, Рn тогда и только тогда, когда для всякой
интерпретации I, в которой P1 ∧ P2 ∧ K ∧ Pn истинна, Q также истинна. Здесь P1,
P2,…, Pп называются аксиомами (постулатами или посылками) Q.
В дедуктивных системах поиска, по существу, необходимо доказывать,
что некоторая формула логически следует из других формул. Утверждение,
что формула логически следует из других формул, называют теоремой.
Проблема поиска решений сводится к проблеме доказательства теоремы, т.е.
построения рассуждения, устанавливающего, что формула логически следует
из других формул. При автоматизации логического рассуждения в рамках
какой-либо системы ИИ встает проблема описания задачи или проблемной
области средствами некоторой прикладной системы математической логики
и реализации процедур поиска решений в процессе логического вывода.
P → Q, P
156
В логике высказываний доказаны две теоремы (все известные теоремы
будут приводиться без доказательств), на которых основывается более
краткий и простой способ вывода.
Теорема дедукции. Пусть даны формулы P1,..., Pn и формула Q. Тогда Q
есть логическое следствие P1,..., Рn тогда и только тогда, когда формула
( P1 ∧ K ∧ Pn ) → Q общезначима.
Теорема о противоречивости. Пусть даны формулы P1,..., Pn и формула
Q. Тогда Q есть логическое следствие P1,..., Pn тогда и только тогда, когда
P1 ∧ P2 ∧ K ∧ Pn ∧ ¬Q противоречива.
Эти две теоремы имеют важное значение, т.к. позволяют прийти к
следующему выводу: доказательство того, что отдельная формула есть
логическое следствие конечного множества формул, эквивалентно
доказательству того, что некоторая связанная с ними формула общезначима
или противоречива.
Применение рассмотренных понятий и правил вывода покажем на
примере. Пусть в предметной области “Мир робота” справедливы
утверждения: если скорость движения конвейера непостоянна, то точность
захвата роботом заготовки и установки ее под пресс уменьшается; если
точность установки заготовки под пресс уменьшается, то увеличивается
процент изготовления бракованных изделий. Предположим, что скорость
движения конвейера непостоянна, из чего можно заключить, что увеличился
процент изготовления брака. Чтобы установить (доказать) это заключение,
обозначим утверждения:
1) F1: если скорость движения конвейера непостоянна (S), то точность захвата
роботом заготовки и установки ее под пресс уменьшается (Р);
2) F2: если точность установки роботом заготовки под пресс уменьшается (Р),
то увеличивается процент бракованных изделий (U);
3) F3: скорость движения конвейера непостоянна (S);
4) F4: увеличивается процент бракованных изделий (U)
Эти утверждения выразим в символической форме:
F1 : S → P , F 2 : P → U ; F3 : S ; F4 : U .
Покажем, что F4 истинно (т.е. увеличивается процент брака), как только
F1 ∧ F2 ∧ F3 истинно. Преобразуем формулу ((S → P) ∧ (P → U) ∧ S) в нормальную
форму:
((S → P) ∧ (P → U ) ∧ S) = ((¬S ∨ P) ∧ (¬P ∨ U) ∧ S)
по (2)
= (S ∧ (¬S ∨ P) ∧ (¬P ∨ U))
по коммутативному закону
= (((S ∧ ¬S) ∨ (S ∧ P)) ∧ (¬P ∨ U))
по (3б)
= ((£ ∨ (S ∧ P)) ∧ (¬P ∨ U))
по (7)
= (S ∧ P) ∧ (¬P ∨ U )
по (8а)
= (S ∧ P ∧ ¬P) ∨ (S ∧ P ∧ U )
по (3б)
= (S ∧ £ ) ∨ (S ∧ P ∧ U )
по (7)
= £ ) ∨ (S ∧ P ∧ U )
по (9б)
157
по (8а)
Следовательно, если ((S → P) ∧ (P → U) ∧ S) истинна, то (S ∧ P ∧ U ) истина.
Так как (S ∧ P ∧ U ) истинна, только если S, Р и U все истинны, заключаем, что
U истинна. Здесь U есть логическое следствие формул F1, F2 и F3.
При использовании для вывода теоремы дедукции или теоремы о
противоречивости сначала задачу описывают формулами, а затем
доказывают, что эти формулы общезначимы или противоречивы.
В логике предикатов первого порядка вводятся еще три логически
понятия: термы, предикаты и кванторы. Понятие атомарной формулы в
логике предикатов шире аналогичного понятия в логике высказывании, т.к.
там атомарная формула рассматривается как единое целое, ее структура и
состав не анализируется. Поэтому реализация многих рассуждений в логике
высказываний невозможна.
= (S ∧ P ∧ U )
Языки логического программирования
Сравнительный анализ языков программирования и
представления знаний
Язык LISP. Одним из популярных языков программирования в
системах ИИ является язык LISP. Этот язык был создан в 60-х годах ХХ века.
На сегодняшний день существует около 20 диалектов этого языка. Наиболее
известными являются INTERLISP, FRANZLISP, QLISP, COMMONLISP. На
языке LISP написаны многие экспертные системы (MYCIN, INTERNIST,
KEE и др.), системы естественно-языкового общения (MARGIE, SHRDLU,
ДИЛОС и др.), интеллектуальные операционные системы (FLEX).
Язык LISP имеет простой синтаксис, поскольку возможны только две
его конструкции: атом и список.
Атом - элементарная конструкция языка LISP, характеризуемая своим
именем и значением. В некоторых LISP-системах с атомом связывается
также определенный список свойств. Примерами атомов могут служить; А,
В, А1, ВРЕМЯ ВЫЛЕТА, ВЫПУСК, АИ-93 и т.д.
Список - конструкция LISP, состоящая из множества атомов и подсписков. В LISP принята скобочная нотация описания списков. Примеры списков (А1, Л2,.., ЛК), (А,В) (ВРЕМЯ ВЫЛЕТА, 15_40) (ВЫПУСК АИ-93).
Существенной особенностью языка LISP является то, что здесь
«данные» и «программы» внешне ничем не отличаются друг от друга. Это
дает возможность писать на LISP программы, манипулирующие не только
данным, но и «программами». Именно данное свойство позволяет LISP стать
изящным средством программирования систем ИИ. Понятия «данные» и
«программа» в LISP не используются. Их заменяют такие понятия, как
выражение и функция.
158
LISP - функциональный язык. Все процедуры обработки информации
оформляются в виде функций. Благодаря стандартному набору системных
функций, LISP может быть «расширен» за счет пользовательских функций.
Системные функции делятся на арифметические, списковые, ввода-вывода,
предикаты и др.
LISP - это рекурсивный язык, т.е. обеспечивает возможность
определения функций с помощью самых себя.
Рекурсивность LISP удобна при решении очень популярной в
ИИнтеллекте задачи «поиска по дереву», которая является довольно
обобщенной и охватывает широкий класс конкретных задач, начиная
шахматными и кончая задачами принятия решений или управления
сложными объектами. В каждом конкретном случае вершины дуги будут
иметь свою семантику. Например, при решении шахматной задачи вершинам
могут соответствовать возможные позиции, а дугам те или иные ходы,
приводящие к этим позициям. Последовательность ходов, обязательно
приводящие к «выигранной» позиции, и будет решением данной задачи.
Древовидная структура очень часто имеет также и сценарий диалога
человека с ЭВМ. В этом случае с вершинами соотносятся состояния (шаги)
диалога, а с дугами - возможные переходы из одного состояния в другое.
Фрейм-ориентированный язык FRL. Одним из известных языков
представления знаний является язык FRL, относящийся к классу фреймориентированных языков. Основная единица знания в таких языках - фрейм,
представляющий собой информаци-онную модель некоторой стереотипной
ситуации. «Стереотипная ситуация» является обобщением таких понятий,
как действия, события, свойства.
Фрейм в FRL - совокупность поименованных, ассоциативных
списков, содержащая до пяти уровней подструктур. Подструктурами
фреймов могут быть слоты, аспекты, данные, комментарии и сообщения.
Основной структурой во фрейме являются слоты, отражающие взаимосвязи
между понятиями предметной области. Слот характеризуется своим именем
и значением. Имена слотов назначаются проектировщиками БЗ. Однако FRL
имеет также и зарезервированные имена слотов: АКО, INSTANSE, CLAS
SIFICATON. В качестве значения слотов могут выступать числа, символы,
имена других фреймов, имена процедур.
Фреймы в FRL строятся с помощью процедуры fassert.
В FRL имеется семь зарезервированных аспектов: VALUE,
DEFAULT, IF-ADDED, IF-NEEDED, IF-REMOVED, IF-INSTANTIAD,
REQUIRE. Данные аспекта VALUE интерпретируются как значение слота, а
из аспекта DEFAULT - как значение по умолчанию. Остальные 5 аспектов
связывают с фреймом процедурные знания. Процедуры из аспекта IFADDED активи-зируются в том случае, если в слот добавлено новое данных;
из аспекта IF-REMOVED - если из слота удаляется то или иное данное.
Процедуры из аспекта IF-NEEDED запускаются при создании экземпляров
159
фрейма. Аспект REQUIRE содержит процедуры, которые ограничивают
значение слота.
Важным свойством FRL является наличие в нем встроенного
механизма «наследования свойств». Суть этого механизма заключается в
следующем. Все понятия предметной области в БЗ организовываются в виде
иерархической классификационной системы, где каждое понятие связывается
с помощью специальных отложений с более конкретными. Для реализации
этих отложений существуют слоты АКО и INSTANSE.
Процедуры обработки FRL подразделяются на независимые и
присоединенные. Независимо от типа эти процедуры пишутся обычно на
языке реализации самого FRL. На сегодняшний день большинство FRLсистем написаны на LISP.
Язык PROLOG. В последнее время к разработке ЭС все чаще стал
привлекаться язык Пролог. Свое наименование Пролог получил от
сокращения «программирование логики». Математической основой Пролога
являются исчисления предикатов преимущественно первого порядка, метод
резолюции Робинсона и теория рекурсивных функций.
Основной конструкцией языка является импликация:
А←В1,В2,…, Вn, называется правилом, где А1,В1,В2,…Вn - предикаты.
«А истинно, если истинно В1, и истинно В2, и…и истинно Вn».
Например:
РЕЖИМ_УСТАНОВКИ(«РЕЖИМ_1)ТИП _НЕФТИ)
(«ЗАПАДНО-СИБИРСКАЯ»)
КОЛ_НЕФТИ (Х),
БОЛЬШЕ (Х,0)
Смысл этого правила: «если тип нефти – западно-сибирская и
количество нефти больше нуля, то технологическая установка работает на
первом режиме».
Из приведенной импликации следует два вырожденных случая:
1) А←? - такая конструкция называется фактом и имеет смысл: «А
истинно всегда». Например: Входит установка 26 входит в цех №2
2) ← В1,В2,…,Вn, - данная конструкция носит название «вопрос» и
означает: «истинно ли В1∧В2∧… ∧Вn.? (знак ∧ - конъюнкция)». Например:
←РЕЖИМ_УСТАНОВКИ («РЕЖИМ_2»), т.е. следует проверить работает ли
установка во втором режиме?
Предикаты пролога имеют вид:
<ИМЯ предиката >(<аргумент 1>,…<аргумент К>
Имя предиката можно рассматривать как именование отношения на
мно-жестве аргументов. Аргументов являются либо константа либо
переменная. Переменные используются для построения более сложных
зависимостей. Например:
ВХОДИТ(Х, «ЗАВОД НП31»)←ВХОДИТ (Х, «ЦЕХ_№-2»)
- если некоторый объект (Х) входит в цех №2, то он входит в НПЗ1;
ВХОДИТ (Х,У) ←ВХОДИТ(Х,Z),ВХОДИТ (Z,Y).
160
Здесь Х входит в Y, если Х входит в Z, а Z входит в Y.
При использовании переменных в «вопросе» можно получить их
значения в качестве результата. Например: ←РЕЖИМ_УСТАНОВКИ (Х).
Если режим установки известен и определен, то в качестве ответа получим
логическое «да» или «истинно», а в качестве побочного эффекта получим
значение переменной Х, т.е .действующий режим работы установки,
например Х=»РЕЖИМ_2».
Неотъемлемым элементом пролога является рекурсия. В частности,
приведенное выше определение предиката ВХОДИТ является рекурсивным,
т.е. имя предиката, состоящего в левой части, совпадает с именем хотя бы
одного из предикатов, стоящих в правой части. С помощью рекурсии можно
реализовать также циклические процессы вычислений.
Существующие системы программирования Пролога имеют большой
набор «встроенных» предикатов, которые обеспечивают выполнение
арифметических операций, строковую обработку, функции ввода–вывода и
целый ряд специфических функций. За счет наличия встроенных предикатов
Пролог можно отнести к универсальным языкам программирования и даже к
языкам системного программирования.
Синтаксис языка определен формой записи пролог-конструкций:
фактов, правил, вопросов, предикатов, атомов, переменных. Особенностью
языка пролог является наличие реляционной БДанных, причем доступ и
работа с реляционными отношениями погружены в сам Пролог. Для
пользователя эти отношения существуют лишь в виде предикатов. Так, на
Прологе эффективно реализуются задачи подсистемы «Кадры», выдающие
всевозмож-ную информацию о кадровой структуре подразделений и о
предприятии в целом. Отмеченное свойство делает пролог очень удобным
средством для описания организации-онных и технологических структур.
Удобно использовать Пролог и для описания технологической системы
производства со множеством взаимосвязей отдельных узлов по
материальным, энергетическим, информационным потокам. В настоящее
время создано большое число различных по эффективности и мощности
Пролог-систем, каждая из которых предлагает свой синтаксис языка и свой
набор встроенных предикатов.
Продукционный язык OPS. Язык OPS относится к числу
продукционных. Являясь универсальным языком программирования, он в
первую очередь предназначен для разработки систем ИИ, и, в частности
экспертных систем. Идеология языка OPS нашла отражение в целом ряде
практических реализаций, достаточно сильно отличающихся друг от друга.
Одной из первых и наиболее известной является реализация OPS-5,
выполненная на одной из версий Лиспа. Поэтому синтаксис OPS-5
максимально приближен к синтаксису Лиспа. На языке OPS-5 создан ряд
промышленно эксплуатируемых экспертных систем для DEC с объемом без
знаний от 1000 до 5000 правил. Одной их последних, но уже достаточно
широко известной реализацией является OPS-83. Особенности этой
161
реализации - наличие некоторых конструкций, характерных для
процедурных языков программирования, а также сильная типизация данных.
Говоря об общих отличительных чертах языка OPS необходимо
отметить наличие:
• программного управления стратегией вывода решений
• развитой структуры данных и принципиальной эффективности
реализации.
Язык OPS имеет типичную для продукционных систем архитектуру,
включающую в себя базу правил, рабочую память и механизм вывода. База
правил состоит из неупорядоченной совокупности правил, рабочая память из дискретных объектов, называемых элементами рабочей памяти. Элемент
рабочей памяти может быть добавлен в рабочую память, удален из нее или
модифицирован. Механизм вывода является стандартным для системы
продукции циклом управления. На первой фазе цикла выбираются все
правила, левые части которого сопоставлялись с содержимым рабочей
памяти. На второй фазе правило выполняется. Встроенный в OPS механизм
вывода непосредственно поддерживает только прямой вывод, однако в языке
имеются средства для организации обратного и смешанного выводов.
В языке OPS допускается использование внешних процедур,
реализованных на других языках программирование. Эффективность в языке
OPS достигается, во-первых, за счет использования специального алгоритма
быстрого сопоставления, а во-вторых за счет компилирующей схемы,
применяемой взамен более традиционной для продукционных языков и
интерпретирующей. Применение алгоритма быстрого сопоставления накладывает ряд ограничений, но опыт эксплуатации языка OPS показал достаточно высокую адекватность средств языка для разработки экспертных систем.
Программа на языке OPS состоит из декларативной и
продукционной частей. Вообще говоря, язык OPS очень прост: в нем всего
три вида операторов: оператор описания типов данных TYPE, оператор
описания классов CLASS и оператор описания правил RULE. Декларативная
часть программы содержит описание типов данных и классов элементов
рабочей памяти. Элемент рабочей памяти является единственно возможным
предоставлением данных в OPS программе. Он представляет собой
фиксированную структуру, состоящую из совокупности пар «атрибутзначение» вида:
Класс
Атрибут-1
Значение
Атрибут-2
Значение
Например, элемент памяти «Установка 1 предприятия» имеет вид:
ОБЪЕКТ
Имя
Установка 1
Входит в
162
Цех1
Состоит из
(колонна1, колонна2, колонна3)
Получает сырье от
Резервуар 5
Тип сырья
Нефть
Вырабатывает
Керосин
Поставляет продукцию
(установка 3, установка4)
Элементарным объектом данных имеющим значение является
атрибут. Атрибуты локализованы в пределах одного класса, некоторые
атрибуты могут не иметь значение. Каждый элемент рабочей памяти
относится к определенному классу. Допустимые классы элементов рабочей
памяти должны быть предварительно описаны в разделе определения
классов. Определение классов задает его структуру, типы допустимых
значений, входящих в класс, и, если это необходимо, начальные значения
атрибутов.
Отметим, что все используемые типы данных (кроме встроенных)
должны быть явно описаны в операторах TYPE или CLASS; особенно удобно
удобными при программировании экспертных систем являются
произвольные типы данных, кот. позволяют следить за правильностью
вводимых пользователем данных и допустимых значений в процессе
логического вывода.
Перейдем к рассмотрению продукционной части OPS-программы раздела правил. Он записывается после декларативной части и представляет
собой совокупность правил. Правило OPS состоит из-за головка и тела
правило. Заголовок правила начинается со слово RULE, за которым следует
имя правила и описание переменных( если они используются). Тело правила
состоит из левой части, задающей условие применимости правила, и правой
части, содержащей последовательность выполняемых действий. Левая часть
начинается словами IF, разделителем между левой и правой частями служит
слово THEN. Ниже приведен пример правила OPS:
RULE ОСТАНОВКА УСТАНОВКИ 1
IF
ОБЪЕКТ
ИМЯ
УСТАНОВКА 1
СОСТОЯНИЕ
ОСТАНОВИЛАСЬ
AND
ОБЪЕКТ
ИМЯ
УСТАНОВКА 2
СОСТОЯНИЕ
РАБОТАЕТ
AND
ОБЪЕКТ
163
ИМЯ
УСТАНОВКА 3
СОСТОЯНИЕ
РАБОТАЕТ
THEN
WRITE ∆установка 1 остановилась
WRITE ∆распределить ее сырье между установкой два и установки 3∆
Левая часть правила состоит из одного или более условных элементов.
Каждый условный элемент задает образец, который сопоставляется
содержащимися в рабочей памяти элементов. Левая часть считается
сопоставленной, если одновременно сопоста-вились все входящие в нее
условные элементы. Разделителем между условными элементами служит
слово AND или ANDNUT. В левой части могут быть использованы
следующие элементарные предикатные операторы: «не равно»,
«больше»,«меньше», «не больше», «не меньше», « входит», « не входит в
список», « имеет/не имеет значение» и др. Правая часть правила состоит из
последовательности императивных утверждений, называемых действиями.
Действия, имеющиеся в OPS, разделяются на две группы: элементарные,
обеспечивающие вывод решения, и вспомогательные, обеспечивающие ввод
и др. серверные возможности. К элементарным действиям относится:
MARE - создание нового элемента рабочей памяти;
REMOVE - удаление элемента из рабочей памяти;
MODIFY- изменение значений атрибутов, уже находящихся в рабочей
памяти.
К вспомогательным действиям относятся:
HALT - явное прекращение программы;
WRITE - выдача сообщения на терминал;
PRINT - печать сообщения на печатающем устройстве;
DISPLAY - вывод на экран терминала инф. из библиотеки на
магнитном диске;
BIND - вызов функций или модулей на других языках
программирование;
SET - динамическое изменение стратегии вывода решений или
подробностей объяснений решения.
Рассмотрим современные разработки средств построения
интеллектуальных систем.
Современные программные средства построения
интеллектуальных систем
Объектно-ориентированный язык VISUAL BASIC. VISUAL BASIC язык, поддерживающий событийно-управляемое программирова-ние:
визуальное проектирование и элементы объектно-ориентированного
программиро-вания. Выпустив 1991г. первую версию VB, MICROSOFT
достаточно скромно оценивало возможности этой системы, ориентируя ее,
прежде всего, на категорию начинающих и непрофессиональных
программистов. Основной задачей тогда было выпустить на рынок простой и
164
удобный инструмент разработки в тогда еще новой среде WINDOWS,
программирование в которой представляло проблему и для опытных
специалистов. В 1992г. была выпущена вторая, а 1993-94гг. - 3-я. Эта версия
позволила продукту войти в число серьезных инструментальных средств
программирования и значительно расширить свой рынок. В 1996-97гг. была
выпущена пятая версия. VB5 был намного усовершенствован, он
обеспечивал заметно более высокую производительность и предлагал
долгожданный компилятор, преобразующий программу во внутренний
машинный код. В 1998г. появился VISUAL BASIC 6. В течение нескольких
лет идут постоянные дебаты о том, может ли VISUAL BASIC считаться
языком объектно-ориен-тированного программирования (ООП). С одной
стороны элементы ООП в нем были всегда, и их число росло от версии к
версии. С другой - многих нужных возможностей ООП в VISUAL BASIC не
было. Появление VISUAL BASIC.NET должно положить конец всем этим
дискуссиям, т.к. в нем будут реализованы все необходимые атрибуты ООП.
Напомним, что модель ООП подразумевает наличие трех обязательных
механизмов: инкапсуляции, полиморфизма, и наследования. Первые 2 были
реализованы в предыдущих версиях и получили развитие в новой, а
последний появится в ней впервые. Дадим описание некоторых элементов
языка на концептуальном уровне.
WEB SERVICES - некая принципиально новая платформнонезависимая технология, связанная с использование стандарта ХМL и
протокола SOAP, которая широко интегрирована в средства разработки.
Ключевая идея состоит в создании компонентов уровня бизнес-логики,
которая взаимодействует с внешними объектами с помощью стандартных
web-протоколов, т.е. поддерживать Object-oriented/.
Для того, чтобы называться объектно-ориентированным языком, язык
должен удовлетворять 3 критериям, выраженными такими ключевыми
словами как:
• инкапсуляция,
• наследование,
• полиморфизм.
Инкапсуляция (encapsulation). Идея заключается в том, что вы можете
создавать скрытый набор процедур (методов и свойств), которые формируют
программный интерфейс. Другой код может обращаться к этим методам и
свойствам, не вдаваясь в подробности внутренней реализации.
Наследование (inheritance). Это одно из ключевых понятий объектноориентиро-ванного программирования - возможность использования (в том
числе расширения) поведение чужого объекта. Упрощенно говоря, можно
создать объект Продукт, а затем на его основе объекты Программный
Продукт и Технический Продукт. Оба новых объекта будут наследовать
свойства и методы объекта Продукт и при этом вы сможете изменить
поведение наследующего объекта. VISUAL BASIC-разработчики могут
использовать ключевое слово INHERITS для подключения процедур уже
существующего класса.
165
Полиморфизм (polymorphism). Возможность иметь несколько объектов
разного типа, но с одинаковыми методами. Это позволяет писать код,
вызывающий тот метод, который нужен в зависимости от используемого в
данный момент объекта.
Другие свойства языков этого типа.
Многопоточность (free-threaded). Это комплексная концепция
поддержки выполнения более чем одного потока задания в одно и то же
время. Например, пользователь может продолжать работать с приложением
после того, как он задал операцию фоновой печати документа. Подобный
режим крайне необходим для создания масштабируемых серверных
компонентов и может быть полезен для реализации пользовательского
интерфейса
Overloading. В русском языке нет соответствующего термина в данном
контексте: использование одного и того же идентификатора для
обозначения разных процедур. Выбор нужной процедуры выполняется в
зависимости от числа и типа параметров. Это особенно полезно для создания
одного свойства, поддерживающего разные типы аргументов.
Structure Exception Handling (cтруктурная обработка особых ситуаций).
Это новая структура для обработки ошибок, уже реализованная во многих
языках. Она должна заменить старую и весьма негибкую (точнее,
ненаглядную) конструкцию ON ERROR GOTO . Новый блок содержит
ключевые слова TRY ,CATCH ,FINALLY;
Type Safety (контроль типов данных) - запрет неявного преобразования
типов с помощью нового оператора OPTION STRICT. Кому-то из
программистов это не понравится, так как данный режим заставляет
задуматься о типах переменных и использовать специальные функции
присвоении переменной значения др. переменной другого типа. Но это
совершенно необходимо, если вы хотите писать надежные программы и
снизить затраты на отладку приложений;
User Interface Inheritance (наследование пользовательского
интерфейса). VB7 будет включать наследование форм, т.е. создание новых
форм на основе некоторых шаблонов. В отличии от существующего сегодня
механизма подключения новых форм на основе шаблонов, в данном случае
будет автоматически поддерживаться механизм наследования: изменения в
родительском шаблоне ( например, корпоративном логотипе) будут
отражаться 1 в дочерних формах.
Возможности языка VISUAL BASIC для создания ЭС. В основу
программного пакета было положено передовое архитектурное решение,
позволяющее не писать, а проектиро-вать программы, подобно инженерудизайнеру. В нем был одним из первых реализован популярный ныне стиль
визуального программирования. И ключевым словом названия языка
является VISUAL-экранные формы, множество встроенных компонентов
избавляют от сложностей. После этапа визуального проектирования
программист просто пишет программный код для обработки связанных с
объектом событий.
166
Рассмотрим основные принципы, положенные в основу VISUAL BASIC
и позволяющие максимально облегчить труд разработчика, сделать работу с
написанием приложением максимально комфортным.
Объект - одно из основных понятий VISUAL BASIC и объектноориентированного программирования. Объектом называется некая сущность,
которая во-первых четко проявляет свое поведение, а во-вторых является
представителем некоторого класса подобных объектов.
Классом объектов в объектно-ориентированных языках называется
общее описание таких объектов, для которых характерно наличие множества
общих свойств и действий.
СОБЫТИЕ - действие или ситуация связанная с объектом, например:
щелчок мыши или нажатие клавиши. Событие могут инициироваться в
программном коде приложения или непосредственно в системной среде.
СВОЙСТВА - определяют представление, поведение и другие черты
объекта. Цвет фона формы, строка соединения, размер элементов и т.п.
Свойства: caption - имя, enabled - доступ, height - высота.
МЕТОДЫ - программные процедуры, которые выполняют некоторую
обработку, связанную с объектом, определенные действия над объектом.
Объектно-ориентированная модель аналогична во многом фреймовой
модели, реализуя обмен сообщениями между объектами, в большей степени
ориентирована на решение динамических задач и отражение поведенческой
модели. Отличия от фреймовой модели заключаются в четком понятии
«класс» объектов и «экземпляр» объекта, а также в способе активации
процедур объектами.
Перечислим и дадим краткую характеристику тем средствам VB,
которые помогают в разработке профессиональных коммерческих
приложений вообще и экспертных систем в частности.
Пакет Microsoft VISUAL BASIC представляет собой идеальную
платформу для создания интерфейсов с локальными базами данных и базами
данных типа клиент/сервер. VISUAL BASIC позволяет создавать различные
приложения для работы с БД - от простейших локальных баз данных до
многоуровневой архитектуры клиент/сервер, а также приложений для работы
в intranet и internet с использованием таких передовых технологий, как
DHTML, XML, ASP. Также очень важны вопросы проектирования
реляционных БД и использования языка SQL. Язык структурированных
запросов является стандартным средством для работы с БД и может
использоваться как для интерактивной работы с БД, так и включаться в
языки программирования. Применительно к VISUAL BASIC SQL позволяет:
•
создавать, модифицировать или удалять таблицы в БД ACCESS;
•
вставлять, удалять или модифицировать записи таблиц;
•
получать сводную инф. о данных в таблице;
•
осуществлять поиск данных в одной или более таблицах по запросу.
Экспертная система, как никакая другая, должна предоставлять
пользователю максимально дружелюбный интерфейс, поскольку она в
167
большинстве случаев является диалоговой и требует от пользователя мах
взаимодействия. Это справедливо еще в большой степени для так
называемых оболочек экспертных систем, правильность настройки и
заполнения которых является ключевым фактором в построении адекватного
реагирующей экспертной системы. В данной ситуации многое зависит от
логики представления информации и управляющих элементов в программе,
наличия пользовательского меню и развитой справочной системы.
VISUAL BASIC представляет разработчику все средства для создания «
графического интерфейса пользователя»:
• возможность построения многодокументального интерфейса
• создание пользовательского меню;
• управления ACTIVE-X и многое др.
Приведем некоторые подробности реализации механизма вывода с
помощью деревьев.
В ЭС принято представлять процесс логического вывода в виде схемы,
которая показывается деревом вывода. В системах, БЗ которых насчитывает
сотни правил, весьма желательным является использование какой-либо
стратегии управления выводом, позволяющей минимизировать время поиска
решения и тем самым повысить эффективность вывода. К числу таких
стратегий относятся: поиск в глубину, поиск в ширину, разбиение на
подзадачи.
Методы слепого перебора, полного перебора или поиска в глубину
являются исчерпывающимися процедурами поиска путей к целевой вершине.
В принципе эти методы обеспечивают решение задачи поиска пути, их эти
методы не возможно использовать, поскольку при переборе придется
раскрыть слишком много вершин прежде чем нужный путь будет найден.
Для многих задач можно сформулировать правила, позволяющие уменьшить
объем перебора. Все эти правила используемые для ускорения поиска,
зависят от специфической информации о задаче, представляемой виде графа.
Будем называть такую информацию эвристической (помогающей найти
решение) и называть использующие процедуры поиска эвристическими
методоми поиска.
Нам необходимо мера, которая позволяла бы оценивать
«перспективность» вершин. Такие меры называют оценочными функциями.
Оценочная функция должна обеспечивать возможность ранжирования
вершин-кандидатов на раскрытие с тем, чтоб выделить ту вершину, которая с
наибольшей вероятностью находится на лучшем пути к цели.
VISUAL BASIC позволяет разработчику создавать деревья и
осуществлять поиск по ним по любому из вышеперечисленных алгоритмов.
Рассмотрим некоторые общие способы реализации деревьев на языке
VISUAL BASIC. Один из способов - создать отдельный класс для каждого
типа узлов дерева. Для построения дерева 3 можно определять структуры
данных для узлов, которые имеют ноль, 1, 2 или 3 дочерних узла. Этот
подход был бы довольно неудобным. Кроме того, что нужно было бы
управлять 4-мя различными классами, в классах потребовались бы какие-то
168
флаги, которые бы указывали тип дочерних узлов. Алгоритмы, которые
оперировали бы этими деревьями, должны были уметь работать со всеми
различными типами деревьев.
В качестве простого решения можно определить один тип узлов,
который содержит остаточное число указателей на потомков для
представления всех нужных узлов. Назовем это методом полных узлов, так
как некоторые узлы могут быть большего размера чем необходимо на самом
деле. Для построения дерева порядком три с использование метода полных
узлов требуется определить класс, который содержит указатели на 3
дочерних узла. Если порядки узлов в дереве сильно различаются, то метод
полных узлов приводит к напрасному расходованию большого количества
памяти. Некоторые программы добавляют и удаляют узлы, изменяя рядок
узлов в процессе выполнения. В этом случае метод полных узлов не будет
работать. Такие динамически изменяющиеся деревья можно представить,
поместив дочерние узлы в списки. Есть несколько подходов, которые можно
использовать для создания списков дочерних узлов.
Наиболее очевидный подход заключается в создании в классе узла
открытого массива дочерних узлов, как показано в следующем коде. Тогда
для оперирования дочерними узлами можно использовать методы работы со
списками на основе массивов.
Второй подход состоит в том, чтобы сохранять ссылки на дочерние
узлы в связных списках. Каждый узел содержит ссылку на первого потомка.
Он также содержит ссылку на следующего потомка на том же уровне дерева.
Эти связи образуют связный список узлов одного уровня, по этому этот
метод наз. Представлением виде связного списка узлов одного уровня.
Третий подход заключается в том, чтобы определять в классе узла
открытую коллекцию, которая будет содержать дочерние злы.
Представление нумерацией связей позволяет компактно представить
деревья, графы и сети при помощи массива. Для представления дерева
нумерацией связей, в массиве FirstLink записывается индекс для первых
ветвей, выходящих из каждого узла. В другой массив, ToNode заносятся
узлы, к которым ведет ветвь. Сигнальная метка в конце массива FirstLink
указывает на точку сразу после последнего элемента массива ToNode. Это
позволяет определить, какие ветви выходят из каждого узла. Используя
представление нумерацией связей, можно быстро найти связи, выходящие из
определенного узла. С другой стороны, очень сложно изменять структуру
данных, представленных в таком виде.
Последовательное обращение ко всем узлам называется обходом дерева.
Обход в глубину начинается с прохода вглубь дерева до тех пор, пока
алгоритм не достигнет листьев. При возврате из рекурсивного вызова
подпрограммы, алгоритм перемещается по дереву в обратном направлении,
просматривая пути, которые он пропустил при движении вниз. Другой метод
перебора узлов дерева - это обход в ширину. Этот метод обращается ко всем
узлам на заданном уровне дерева, перед тем, как перейти к более глубоким
уровням. Алгоритмы, которые проводят полный поиск по дереву, часто
169
используют обход в ширину. Детали реализации обхода зависят от того, как
записано дерево. Для обхода дерева на основе коллекций дочерних узлов,
программа должна использовать несколько другой алгоритм, чем для обхода
дерева, записанного при помощи нумерации связей. Особенно просто
обходить полные деревья, записанные в массиве. Алгоритм обхода в ширину,
который требует дополнительных усилий в других представлениях деревьев,
для представлений на основе массива тривиален, так как узлы записаны в
таком же порядке.
Язык логического программирования Visual Prolog. В октябре 1981 г.
была широко распространена информация о японском проекте создания
ЭВМ пятого поколения. Многих специалистов удивило, что в основу методологии разработки программных средств было положено логическое
программирование. Целью проекта декларировалось создание систем
обработки информации, базирующихся на знаниях. Тогда же появляется
множество коммерческих реализаций Пролога практически для всех типов
компьютеров. К наиболее известным можно отнести CProlog, Quintus Prolog,
Silogic Knowledge Workbench, Prolog-2, Arity Prolog, Prolog-86, Turbo Prolog
и др. Наибольшую популярность в нашей стране получила система программирования Turbo Prolog - коммерческая реализация языка для для IBMсовместимых ПК. Его первая версия была разработана датской компанией
Prolog Development Center(PDC) в содружестве с фирмой Borland International
в 1986 г. Система создавалась с серьезными отступлениями от
неофициального стандарта языка, самым существенным из которых было
введение строгой типизации данных, но это позволило значительно ускорить
трансляцию и выполнение программ. Новый компилятор сразу же был по
достоинству оценен программистами-практиками, хотя и вызвал критику в
академических кругах.
В 1988 г. вышла значительно более мощная версия Turbo Prolog 2.0,
включающая усовершенствованную интегрированную среду разработки
программ, быстрый компилятор и средства низкоуровневого программирования. Кроме того, она предоставляла возможность работы с собственными внешними БД, dВазе 111 и Reflex, интегрированным пакетом Lotus 1-23, графическим пакетом Paint Brush и другими приложениями. Фирма
Вог1аnd распространяла эту версию до 1990 г., а затем компания РDС
приобрела монопольное право на использование исходных текстов компилятора и дальнейшее продвижение системы программирования на рынок
под названием РDС Prolog В июне 1992 г. появилась версия 3.31 —
эффективный универсальный инструмент профессиональных программистов,
который вскоре стал одним из наиболее широко используемых. РDС Prolog
3.31 работал в среде МS DOS, 0S/2, UNIX, ХЕN1Х, PharLap DOS Ехtеndег,
МS Windows. Эта версия была хорошо совместима с традиционными
языками программирования, в первую очередь с Си. В ней были расширены
возможности создания приложений с интерфейсом GUI (Graphical User
Inteface), принятым в МS Windows и OS/2. Хотя версия РDС Prolog 3.31 уже
170
включала средства для написания программ, работающих под управлением
графических операционных систем, процесс разработки подобных
приложений все еще носил рутинный характер. Для того чтобы сделать более
простыми, удобными и быстрыми процессы написания, тестирования и
модификации приложений на языке РDС Prolog, специалисты Рго1оg
Development Center создали систему программирования под названием Visual
Рго1оg 4.0, выпущенную 7 января 1996 г.
При разработке приложений в среде Visual Рго1оg используется подход, получивший название «визуальное программирование», при котором
внешний вид и поведение программ определяются с помощью специальных
графических средств проектирования без традиционного программирования
на алгоритмическом языке. В результате получили систему программирования, отличающуюся исключительной логичностью, простотой и
эффективностью.
В Visual Рго1оg входят различные элементы: прежде всего, интерактивная среда визуальной разработки (VDE - Visual Develop Еnvironment),
которая включает текстовый и различные графические редакторы,
инструментальные средства генерации кода, конструирующие управляющую
логику (Ехреrts), а также являющийся расширением языка интерфейс
визуального программирования (VPI — Visual Ргоgramming Interfase),
Пролог-компилятор, набор различных подключаемых файлов и библиотек,
редактор связей, файлы, содержащие примеры и помощь.
Visual Рго1оg поддерживается различными ОС, в том числе МS-DOS
PharLap-Extended DOS, всеми версиями Windows, 16- и 32-битовыми целевыми платформами 0S/2, а также некоторыми другими системами,
требующими графического пользовательского интерфейса.
В зависимости от выбранного интерфейса разработчику обеспечивается
доступ к множеству генераторов кода (Соdе Ехрегrt), всевозможным ресурсным редакторам и особым дополнительным YР1-предикатам, определениям и библиотекам. Ресурсные редакторы применяются для создания,
компоновки и редактирования окон, диалогов, меню, панелей инструментов,
строк помощи, строковых таблиц, ярлыков, курсоров, битовых карт и
оперативной помощи. Генераторы кода на основе подобных структур
создают необходимый первичный Рго1оg-код. В результате появляется
первичный код («скелет»), готовый для компиляции, редактирования связей
и выполнения.
По желанию программиста генераторы кода могут отобразить любую
часть первичного текста программы в окне редактора для просмотра и
дополнения в соответствие с логикой приложения, а также для преобразования «скелета» в полноценное,приложение. Этот процесс реализуется с
помощью различных функций: редактирования, выбора, поиска,
перемещения и вставки.
Прикладной программный интерфейс высокого уровня облегчает проектирование Пролог-приложений с утонченным видовым пользовательским
решением, использующим графические возможности современных ОС и
171
аппаратных средств отображения информации. Ресурсы и инструментальные
средства, требующиеся для таких приложений (окна, меню, диалоги, органы
управления, перья, кисти, курсоры мыши, графические курсоры, рисунки и
т.п.), представляются в виде несложных Пролог-структур.
С помощью VPI можно создать мобильный исходный текст, а затем
перекомпилировать его для работы как в 16-битовом режиме под управлением МS DOS или Windows, так и в 32-бнтоном режиме под управлением
Windows NT, 0S/2 РМ и других ОС. В декабре 1997 г. фирма PDС
выпустила Visual Рго1оg 5.0, а с января 1999 г. приступила к
распространению версии 5.1.
Пролог - это язык, который до сих пор находится в развитии. Область его
применения постоянно расширяется, в него вносятся новые дополнительные
функциональные возможности, призванные удовлетворить возрастающие
потребности пользователей,
Visual Рго1оg является Рго1оg-системой со 100% оболочкой, выполненной в идеологии Visual, упрощающей разработку программ для систем
Windows З.х, Windows 95/98/2000, Windows NT. Среда разработки
приложений системы Visual Рго1оg включает удобный текстовый редактор,
различные редакторы ресурсов, средства разработки гипертекстовых Неlpсистем, оптимизирующий компилятор. Visual Рго1оg автоматизирует труд
программиста по построению сложных процедур. С его помощью
проектирование пользовательского интерфейса и связанных с ним окон,
диалогов, меню, кнопок, строк состояния и т.п. производится в графической
среде. С созданными объектами сразу же могут работать различные Кодовые
Эксперты, генерирующие программные коды на языке Пролог. Мощность
языка Пролог и визуальной среды разработки программ делает простой и
интуитивно понятной разработку экспертных систем, основанных на
знаниях, систем поддержки принятия решений, планирующих программ,
развитых систем управления базами данных и др., а также обеспечивает
повышение скорости разработки приложений.
Интегрированная инструментальная среда GURU. В инструментальной среде построения ЭС GURU, разработанной фирмой Мiсrо Data Ваsе
Sistems, Inс., методы экспертных систем сочетаются с такими средствами
обработки данных, как составление электронных ведомостей, управление
базой данных и деловой графикой, и таким образом формируется уникальная
среда для поддержки принятия решений и разработки прикладных
интеллектуальных систем. Система GURU легка в употреблении для
новичков и в то же время является достаточно эффективной и гибкой
системой для профессионалов-разработчиков. В обычных
«интегрированных» программных продуктах или несколько отдельных
программ помещены в операционную среду, или несколько второстепенных
компонентов вкладываются в главный компонент (как, например, программа
обработки электронных ведомостей или текстовый редактор). Трудности, с
которыми сталкиваются при таких стилях «интеграции», хорошо известны.
172
Первая заключается в том, что пользователь вынужден переходить назад и
вперед по отдельным программам и передавать данные между ними. Метод
вложений заставляет пользователя выполнить всю обработку в пределах
главного компонента, и в результате получаются относительно слабые
вторичные компоненты.
Метод интеграции, используемый в системе GURU, совершенно отличается от вышеупомянутых. Он основывается на принципе синергизма.
Под «синергизмом» здесь понимается следующее. В системе GURU все
средства всегда доступны. Многочисленные компоненты можно соединять
по желанию в пределах одной операции, а это характеризует систему как
гибкую и удобную в использовании. Например:
• в посылке любого правила ЭС можно делать прямые ссылки на поля базы
данных, на ячейки электронных ведомостей, на статические переменные, на
программные переменные и массивы;
• вывод любого правила ЭС может включать в себя операции управления
базой данных, запросы на языке SQL (языке структурированных запросов),
операции обработки электронных ведомостей, генерацию статистических
данных, дистанционную передачу данных, выполнение процедур, генерацию
деловой графики;
• поскольку ЭС обосновывает задачу, она может брать консультации у
других ЭС, выполнять процедурные модели, просматривать базы данных,
составлять электронные ведомости или проводить статистический анализ;
• любую ячейку электронной ведомости можно определить в терминах
поиска в базе данных или в терминах всей программы, или в терминах
консультации с ЭС.
Взаимодействовать с системой можно любым из четырех различных
способов с помощью меню: на ограниченном естественном языке, в режиме
команд или через специально разработанные интерфейсы. Каждый тип
интерфейса системы GURU предназначен для удовлетворения потребностей
и вкусов различных классов пользователей. Всеми четырьмя интерфейсами
можно пользоваться во время одного и того же сеанса взаимодействия с
системой GURU.
Как и в большинстве оболочек, в GURU используется продукционная
модель представления знаний в виде совокупности «If-then» правил с обратной стратегией вывода. В качестве основной стратегии имеется возможность моделирования нечетких и неточных рассуждений. Кроме посылок
и заключения в правила можно включать команды, которые будут
выполняться перед проверкой условия, а также пояснительный текст для
генерации объяснений. Правила также включают необязательные параметры
цены и приоритета, позволяющие управлять процессом выбора из
совокупности готовых к выполнению правил. С каждым правилом можно
также связать число, определяющее, сколько раз это правило может выполняться в процессе консультации.
Правила, относящиеся к решению некоторой общей задачи, образуют
базу знаний, или набор правил. В этот набор кроме собственно правил
173
включаются две специальные процедуры: инициализация и завершение,
которые должны выполняться до и после выполнения правил. В набор
правил также включаются описания переменных, участвующих в правилах,
содержащие спецификации типа, точности и т.п.
По умолчанию в GURU принята стратегия обратного вывода, но можно
использовать прямой вывод, а также комбинировать его с обратным в рамках
одного набора правил. Как стратегиями вывода, так и целевыми
переменными можно управлять динамически в процессе консультации.
GURU обеспечивает мощные средства управления обработкой факторов уверенности, отражающих степень неточности и нечеткости, выраженных в правилах эвристических знаний. Для предоставления такой нечеткости в GURU с каждым значением переменной может быть связан
числовой коэффициент от 0 до 100. Система предоставляет разработчику
выбор более чем из 30 различных формул, позволяющих управлять обработкой факторов уверенности во время вывода.
Полезными являются такие дополнительные средства управления логическим выводом, как установка степени «точности» вывода значения для
некоторой переменной, изменение принятого по умолчанию порядка
просмотра правил.
Эффективность машины логического вывода во многом зависит от
того, как она осуществляет поиск в наборе правил, когда ищет правила,
которые можно выполнять. В отличие от традиционного программного
обеспечения, использующего принципы искусственного интеллекта, система
GURU предоставляет расширенные средства управления настройкой, в
частности поддерживает до 50 различных стратегий поиска. Эффективность
также зависит от количества и состава правил в наборе правил. Поскольку
система GURU предоставляет разнообразные возможности создания наборов
правил, то можно значительно сократить количество правил, необходимых
для охвата всех знаний и опыта в конкретной проблемной области. Это
приводит к ускорению процесса получения логических выводов, а также к
упрощению управления этими правилами.Интегрированная система GURU
пытается превратить потенциальные преимущества ЭС в реальность,
облегчить пользователю процесс создания ЭС, сделать его прямым,
эффективным и естественным.
Интегрированная инструментальная среда G2 для создания
интеллектуальных систем реального времени. В 1986 г. фирма Gensym
вышла на рынок с инструментальным средством G2, версия 1.0. В настоящее
время функционирует уже версия 5.2. Основное предназначение
программных продуктов фирмы Gensym (США) - помочь предприятиям
сохранять и использовать знания и опыт наиболее квалифицированных
сотрудников в интеллектуальных системах реального времени, повышающих
качество продукции, надежность и безопасность производства и снижающих
производственные издержки.
Классы задач, для которых предназначена G2 и подобные ей системы:
174
мониторинг в реальном масштабе времени;
системы управления верхнего уровня;
системы обнаружения неисправностей;
диагностика;
составление расписаний;
планирование;
оптимизация;
системы-советчики оператора;
системы проектирования.
Инструментальный комплекс G2 является эволюционным шагом в
развитии традиционных экспертных систем от статических предметных
областей к динамическим.
Основные принципы, которые заложены в G2:
• проблемно/предметная ориентацня;
• независимость от вычислительной платформы;
• универсальные возможности, независимые от решаемой задачи;
• обеспечение технологической основы для прикладных систем;
• комфортная среда разработки;
• распределенная архитектура клиент-сервер;
• высокая производительность.
Основным достоинством оболочки экспертных систем G2 является
возможность применять ее как интегрирующий компонент, позволяющий за
счет открытости интерфейсов и поддержки широкого спектра вычислительных платформ объединить уже существующие средства автоматизации в единую комплексную систему управления, охватывающую все
аспекты производственной деятельности - от формирования портфеля
заказов до управления технологическим процессом и отгрузки готовой
продукции.
На основе базового средства G2 фирма Gensym разработала комплекс
проблемно/предметно-ориентированных расширений для быстрой реализации сложных динамических систем на основе специализированных
графических языков, включающих параметризуемые операторные блоки для
представления элементов технологического процесса и типовых задач
обработки информации. Набор инструментальных сред, сгруппированный по
проблемной ориентации, охватывает все стадии производственного процесса
и выглядит следующим образом:
• интеллектуальное управление производством - G2 Diagnostic Assistant
(GDA), Statistical Process Control (SPC),
• оперативное планирование - G2 Scheduling Toolkit (GST), Dynamic
Scheduling Packadge (DSP),
• разработка и моделирование производственных процессов - G2, ReThink,
• управление операциями и корпоративными сетями - Fault Expert.
G2 - динамическая система и полном смысле этого слова. Это объектно-ориентированная интегрированная среда для разработки и сопро-
•
•
•
•
•
•
•
•
•
175
вождения приложений реального времени, использующих базы знаний. G2
функционирует на большинстве существующих платформ: Solaris 1 and 2,
Unix, OpenVMS, Windows NT/2000 Professional XP. База знаний G2
сохраняется в обычном АSСII-файле, который однозначно интерпретируется
на любой из поддерживаемых платформ. Перенос приложения не требует его
перекомпиляции и заключается в простом переписывание файлов.
Функциональные возможности и внешний вид приложения не претерпевают
при этом никаких изменений.
G2 - среда для разработки и развертывания интеллектуальных динамических систем управления. Прикладные программы, написанные в средеG2, могут существенно повысить эффективность выполнения операций,
благодаря следующим факторам:
• непрерывному контролю над потенциальными проблемами прежде, чем
они проявят неблагоприятное воздействие;
• принятие комплексных оперативных решений на основе информации,
полученной посредством рассуждений и анализа данных, содержащихся в
интеллектуальной модели процесса;
• диагностирование основных случаев возникновения проблем, критичных
ко времени выполнения и выработки последовательности правильных
действий;
• поддержание оптимальных рабочих условий;
• координирование действий и информации в выполнении сложных
оперативных процессах.
Использование мощности объектно-ориентированного
программирования.
Объекты в G2 - это интуитивный способ представления материальных
и абстрактных сущностей в прикладных программах. Мощность объектноориентированного подхода к разработке программ, позволяет быстро и легко:
• встроить модули и объекты из других прикладных программ;
• графически определить объекты, их свойства и действия;
• создать новые образцы объектов, имитируя существующие объекты.
Объекты или класс объектов, определенные один раз, могут использоваться многократно. Любой объект или группа объектов могут иметь несколько экземпляров. Каждый экземпляр наследует все свойства и поведение
первоначального объекта. Объекты, правила и процедуры можно
группировать в библиотеки, которые будут общими для всех прикладных
программ. Для моделирования широкого разнообразия действий типа
производственных процессов, сетевых топологий, информационных
маршрутизация, или логических потоков объекты можно объединять
графически на экране дисплея.
Представление знаний, правила, процедуры и модели. В G2 можно эффективно создавать и применять общие знания, создавая универсальные
правила, процедуры, формулы и зависимости, которые являются применимыми для полных классов объектов. В результате сокращается время на
разработку и увеличивается эффективность приложении.
176
Для представления знаний используется структурный естественный
язык, что позволяет облегчить чтение, редактирование и поддержку баз
знаний. Это облегчает использование и редактирование приложений
пользователем непрограммистом. Для создания и редактирования' баз знаний
используется Редактор Баз Знаний.
Для представления знаний эксперта о проблемной области используются правила. Правила могут быть как общими, т.е. относящимися ко всему
классу, так и специфическими, относящимися к конкретным экземплярам
класса. Правила возбуждаются автоматически в следующих случаях:
• появились новые данные (вывод от фактов к цели);
• требуется найти данные (вывод от цели к фактам) для автоматического
вызова других правил, процедур или формул;
• требуется определить значения переменных;
• каждые л секунд для оценивания правила в указанном интервале времени.
Подобно правилам, процедуры выполняются в реальном времени.
Процедуры, правила и модели выполняются одновременно согласно их
приоритетам. Процедуры могут использоваться для эффективного представления поведения объектов. Для процедур можно определить состояния
ожидания и выполнять обработку информации параллельно. В результате это
позволяет формировать мощные прикладные системы реального времени
проще и быстрее, чем с помощью традиционных инструментальных средств
программирования.
Работа в реальном времени. Работа в реальном времени, операционные
решения и реакции зачастую должны быть выполнены мгновенно.
Прикладные программы в С2 могут одновременно выполнять рассуждения
относительно многократно выполняемых действий в реальном масштабе
времени, перерабатывая тысячи правил, выполняя процедуры и модели
согласно их приоритетам. Для хранения хронологий данных и событий и для
рассуждения относительно поведения через какое-то время используются
переменные типа время.
С2-графика может моделировать знание, представляя объекты, связи и
зависимости между объектами. Графическая связность объектов позволяет
расширить прикладную программу, используя графическое объединение
аналогов. Графика включает встроенные диаграммы (графики), таблицы и
рисунки и т.д. G2 также работает с утилитами графического интерфейса
Windows. Эти утилиты используют все преимущества объектноориентированных возможностей G2.
Динамическое моделирование и моделирование для анализа « ЧТОЕСЛИ». G2 позволяет динамически моделировать системы и процессы,
используя оъбекты, правила, процедуры и формулы. Во время разработки
модели используются вместо оъюектов реального мира, что позволяет
непрерывно проверять прикладные программы в течении их разработки.
Модели могут сипользоваться на этапе эксплуатации как часть прикладной
программы G2 для сравнения фактических и модельных знаний. Модели
177
можно также использовать для проведения анализа и ответа на вопросы
«ЧТО-ЕСЛИ», определения, непример, лучших рабочих условий или лучших
проектов, предсказания важных параметров действий в реальном времени,
например, качество изделия или затрат. G2 объединяет в себе как
универсальные технологии построения современных информационных
систем (стандарты открытых систем, архитектура клиент/сервер, оъбектноориентированное выполнение в реальном времени многих независимых
процессов), так и специализированные методы (рассуждения, основанные на
правилах, рассуждения, основанные на динамических моделях, или
имитационное моделирование, процедурные рассуждения, активная
оъбектная
графика,
структурированный
естественный
язык
для
представления базы знаний), а также интегрирует технологии систем,
основанных на знаниях с технологией традиционного программирования (с
пакетами программ, с СУБД, с контроллерами и концентраторами данных и
т.д.). Все это позволяет с помощью данной оболочки создавать практически
любые большие приложения значительно быстрее, чем с использованием
традиционных методов программирования, и снизить трудозатраты на
сопровождение готовых приложений и их перенос на другие платформы.
178
Введение в язык Пролог.
Пролог - язык программирования на основе логики. В качестве
содержательной составляющей изложения выберем предметную область
“Мир геометрических фигур”, а в ней – подобласть “Треугольник”
I. Идентификация.
Проблема: (пусть) отсутствует Пролог-программа для вычисления
характеристик треугольника по его данным на основе знаний о его свойствах.
Цель: написать Пролог-программу для вычисления характеристик
треугольника по его данным на основе знаний о его свойствах, изучая
основные понятия данного языка логического программирования по ходу
решения данной вычислительной задачи - это подпроблема и подцель.
Задача: разработать все Модели ПЗ, позволяющие достигнуть цели, а
тем самым ликвидировать проблему и подпроблему.
II. Концептуализация.
Содержательная модель вычислительной задачи.
Точка в двумерном пространстве определяется двумя координатами;
отрезок определяется двумя точками (концевыми), а треугольник можно задать
тремя точками общего положения. Тем самым провели редукцию
однозначного определения 3-х данных объектов вплоть до элементарных - до
“координаты” точки.
Концептуальная модель. Из содержательной модели получаем список
нижеследующих объектов и их имен. Концепты (сущности, понятия, связи:
соответствия и отношения) выделены курсивом.
Точка в двумерном пространстве однозначно определяется двумя
координатами, координаты = пара чисел, отрезок однозначно определя-ется
двумя точками – концами отрезка, сторона есть отрезок,
Отношения и свойства: “инцидентность” – симметричное отношение,
“принадлежит” – транзитивное отношение, “лежит на”, “проходит через”,
“является частью” и т.д.
Характеристики треугольника: длина (l, функция, ее значение есть
число ≥ 0), угол (функция, радианы, градусы), (полу)периметр (p, P, функция,
число ≥ 0), площадь (S, функция, число ≥ 0).
III. Формализация.
Логико-математическая модель.
Построим все нужные МПЗ в привязке к Проблеме, Цели и Задаче.
Обозначения приведены на рис. 52.
179
Рис. 50. Треугольник – рассматриваемый геометрический объект и его подобъекты.
Сетевые модели построим, используя граф-дерево, а потому
одновременно получая иерархические и семантические сети, в которых
использованы отношения. Тем самым, получим соответствующие предикаты
– базовые понятия Пролога: “Точка”, Точка(X,Y), “имеет координаты”,
“Треугольник”, “инцидентность” – симметричное отношение, “принадлежит”
– транзитивное отношение, “лежит на”, “проходит через”, “является частью”
и т.д.:
P1= точка (см. рис. 1)
1
seg = сторона
1
точка
1
1
точка
2
3
Т=треугольник
точка
4
2
точка
6
4
точка
7
1
Рис. 51. Представление объектов в виде деревьев
Итак, cинтаксически все объекты данных в Прологе представляют
собой термы. Например, P1, треугольник, point(1,1), дата(1, май, 1983) суть
термы. Будем использовать русский алфавит (лишь для собственного
понимания), а при переходе на язык собственно Пролог-программы будем
использовать латинский алфавит, например, point(1,1) вместо точка(1,1), seg
180
вместо сторона и т.д. Здесь слова: точка, point, сторона, seg, составленные из
букв соответствующих алфавитов, являются именами. Итак, имя – это
цепочка (строка) букв и/или цифр, начинающиеся с буквы (строчной).
Например, треугольник – triangle.
Константы - это символы, числа и атомы. Значением константы
является ее имя. Например, константа 2 соответствует только числу 2.
Числа бывают целыми и вещественными. Синтаксис целых чисел
прост, как это видно из следующих примеров: 1, 1313, –97. При обычном
программировании на Прологе вещественные числа используются редко.
Причина этого кроется в том, что Пролог - это язык, предназначенный в
первую очередь для обработки символьной, а не числовой информации.
Переменные обозначаются последовательностью буквой и цифр,
начинающейся с заглавной буквы. Например, X (но не прописная x). Особый
вид переменной - анонимная переменная, начинающаяся знаком
подчеркивания _ и используемая в качестве аргумента предиката, когда
конкретное значение переменной несущественно. Например, Точка(_,Y).
Понятно, что, например, терм Точка(X,Y) – 2-местный предикат,
выражающий отношение определимости точки ее координатами X,Y (как
видим, здесь X,Y - переменные).
Атом - константа (“атом - неделимый, цельный и т.п.”, именно так атом
и воспринимается Пролог-программой). Атом получается так: пусть имеется
атомарная формула (литерал), скажем, Q(X, f(Y)), если означить X = 1 и Y =
a, то получим выражeние Q(1, f(a)) без переменных - это и есть пример атома.
Например, точка(-2,5) - атом, полученный из точка(X,Y).
Теперь ясно, что
атомы имеют тип идентификатор (symbol) или строка (string). Как
видим, атом имеет вид ω(t1,t2 ...tn), где ω − n-арный предикатный символ или
имя отношения; t1,t2...tn − термы.
Переменные и константы - примеры простых объектов. Итак,
Простые объекты - это и есть переменные и константы.
Далее, точка(1,1) и point(1,1) - это факты. Факт - означенный предикат,
например, предикат точка(X,Y) после подстановки (после означивания,
конкретизации) X=1 и Y=1 становится фактом точка(1,1). Итак,
факты - это предикаты с аргументами-константами, обозначающие
отношения между объектами или свойства объектов, именованные этими
константами. Факты в Пролог-программе считаются всегда и безусловно
истинными; поэтому именно факты и служат основой доказательства,
происходящего при выполнении Пролог-программы.
Пример 1. Факты, описывающие телефонные номера:
телефон(иванов,т561532).
телефон(петров,т642645).
Это означает: телефон Иванова - 56-15-32 и т.п. Перед цифрами номера идет
буква "т". Она делает номер телефона литерной константой, т.к. числа
561532, 642645 слишком велики, чтобы быть числовыми константами.
Т.к. факты - это означенные предикаты, естественно назвать раздел
181
Пролог-программы, в котором они находятся, разделом предикатов Predicates. Выражения, использованные в базе данных, приведенной в
примере 1, являются примерами спецификации фактов (fact). Как видим, раз
факты-данные образуют БД и лежат в разделе Predicates, то и БД (ее тогда
называют еще и БФ) находится в разделе Predicates. А раз предикаты –
логические модели знаний, то их совокупность называют иногда и БЗнаний.
Предикат точка(X,Y) является примером предиката с именемфунктором “точка”, а имя используется здесь, как видим, для объединения
объектов – здесь простых объектов: переменных X,Y. Итак,
функтор - это имя, используемое для объединения аргументов при
образовании некоторого составного объекта Пролога, в данном примере
составного объекта точка(X,Y).
Каждый функтор определяется двумя параметрами:
- именем, синтаксис которого совпадает с синтаксисом атомов;
- арностью, т.е. числом аргументов.
Составные объекты: структуры и списки
Список (list) представляет собой объединение элементов, разделенных
запятыми и заключенных в квадратные скобки. Примеры списков:
[P1,P3,P2], [1,3,5,7], [красный, зеленый].
Список – это такая структура данных, которая либо состоит из двух
частей: головы – первого элемента и хвоста – всего остального, либо пуста.
Например, [ ] - пустой список, а P1 – это голова в списке [P1,P3,P2], где P3,P2
– хвост. Хвост также является списком.
Структура (str) - предикат - это конструкция, состоящая из имени
структуры и заключенных в круглые скобки аргументов, разделенных
запятыми. Примеры структур: точки(P1,P3,P2), str(A,B,C), цвет(красный,
желтый), носит(сергей, галстук).
Элементами структур могут быть числа, атомы, переменные, другие
структуры и списки. Количество элементов структуры не может меняться
при выполнении программы.
Списки отличаются от структур еще и тем, что количество элементов
может меняться при выполнении программы. На практике часто бывает
удобным трактовать хвост списка как самостоятельный объект. Например,
пусть есть список L = [a,b,c]. Тогда его Хвост = [b,c], а чтобы выразить это же
при помощи квадратных скобок, в Прологе предусмотрено ещё одно
расширение нотации для представления списка, а именно вертикальная
черта, отделяющая голову от хвоста: L=[a|Хвост]. Вертикальная черта
позволяет перечислить любое количество элементов списка, затем поставить
символ | , а после этого - список остальных элементов. Так, список [a,b,c]
можно представить следующими способами: [a,b,c] = [a|[b,c]] = [a,b|[c]] =
[a,b,c|[ ]].
Вернемся к вычислительной задаче. Вводя и используя соответствующие функторы, в дополнение к построенным объектам создадим следующие объекты:
182
P3 = point(4,2), P4 = point(6,4), P5 = point(7,1) и
St1 = seg1(P3, P4)=seg1(point(4,2), point(6,4)), Тр=треугольник, Tr = triangle.
Представление этих объектов в виде деревьев приведено на рис. 2.
Логические модели. Переменные: X, Y, Z,… . Предикаты: Точка(X,Y),
seg1(Z,T),…. Факты: seg1(P3, P4),…. Правила-продукции: если P3= point(4,2)
и P4 = point(6,4), то seg1(P3, P4) = seg1(point(4,2), point(6,4)).
В Прологе правила (rule, продукции) записывают в виде импликации :- .
А раз правила (rule, продукции) - логические и/или продукционные модели
знаний, то они входят в БЗнаний, но в свои особые разделы:
Clauses /* раздел клауз: (правила, условия, предложения, утверждения */
Goal /*цель, раздел целей*/
Фреймы (фреймовые модели) (определимся с тем, что хотим
моделировать. Пусть это будет модель состава объекта-треугольника). Тогда
получаем последовательно следующие компоненты модели.
Объект: треугольник (одновременно пусть это имя фрейма), слоты и их
имена: вершина, сторона, длина, периметр, площадь, высота, угол,
син_угла,… .
Имя фрейма Треугольник
Слот1 вершины число вершин 3
Слот2 стороны
число сторон 3
Слот3 углы
число углов 3
и т.д.
Если же считать, например, син_угла именем другого фрейма, то, указав
связь между фреймом “треугольник” и фреймом “ син_угла” получим сеть
фреймов из 2-х этих фреймов.
Вычислительная модель (ВМ) любой вычислительной задачи имеет
следующую форму:
ЗНАЯ М ВЫЧИСЛИТЬ Y1, Y2,…, YN ПО X1, X2,…, XM.
Здесь М, Y1, Y2,…, YN, X1, X2,…, XM - величины, которые имеют смысл,
определяемый их вхождением в задачу; обычно это переменные.
Идентификаторы ЗНАЯ, ВЫЧИСЛИТЬ и ПО имеют фиксированный смысл
и служат для разделения величин (переменных). Переменные X1, X2,…, XM
являются входными для задачи, значения их задаются в постановке задачи.
Переменные Y1, Y2,…, YN – выходные, значения их требуется вычислить. М –
величина (переменная), которая выражает условие задачи. Данные,
являющиеся значением М, выражают знания в виде вычислительных
моделей, включающих в свой состав переменные и отношения между ними.
Функциональная семантическая сеть (ФСС).
Вычислительную
модель можно представлять графически с помощью языка спецификации
(например, графического языка), с помощью формул некоторого логикоматематического языка и т.д.
183
Рис. 52. Семантическая сеть в форме двудольного графа
Графическое представление вычислительной модели - здесь это
семантическая сеть специального вида, узлам которой соответствуют
переменные и отношения, см. рис. 54. Переменные в ней обозначены
кружками, отношения обозначены прямоугольниками, внутри которых
помещается описание реализации отношения (в данной примере - это
формулы).
На рис. 3 представлена вычислительная модель данной задачи именно в
форме функциональной семантической сети.
184
Теперь, используя знания и данные, представленные в этой ФССети,
можно найти, например, площадь треугольника S по известным данным,
например, стороне с и прилегающим к ней углам α и β. Тогда имеем
ЗНАЯ зависимость между S и стороной с прилегающими к ней углами
ВЫЧИСЛИТЬ S ПО с, α, β (здесь Y1=S, X1= с, X2=α, X3=β, а.указанная
зависимость М есть формула S = hс*с /2, для использования которой нужно
сначала найти hс по данным с, α, β. Расчет других характеристик
треугольника столь же очевиден. Для реализации вычислений на ЭВМ
вычислительная модель доопределяется указанием типов данных: целое,
вещественное, символьное и т. д.
IV. Aлгоритмизация.
Алгоритм для вычислительной задачи очевиден. Программная
реализация алгоритма вычислительной задачи на процедуральных языках
столь же проста. Пролог-программа представлена будет далее.
V. Интерфейс.
Фрагмент диалога для вычислительной задачи:
(запрос) найти площадь треугольника, если даны 2 стороны и угол между ними.
(вопрос) ?- чему равна площадь треугольника, если заданы 2 стороны и угол
между ними.
(ответ) площадь треугольника равна … (число).
Вопрос (к Пролог-программе) - отправная точка логического вывода:
на любой вопрос (запрос) Пролог-программа будет пытаться дать ответ
«да» либо «нет» в зависимости от того, согласуется или нет предложение,
стоящее в вопросе, с фактами и правилами базы знаний. Вопрос, не
содержащий переменных, является общим – он обращен ко всей БЗ: «имеет
ли место факт…?», «верно ли, что…?», т.е. «следует ли, что…?»; как
видим, - это продукция (точнее, ее часть), которую для понимания пишем
сначала в семантически понятном виде, а затем приведем
соответствующую форму записи на Прологе.
Например, к базе знаний примера 1 можно поставить вопрос
?-телефон(иванов,Т123456).
и ответ будет «Нет»,
так как константа т123456 не согласуется ни с одним фактом из БФ примера
1. А на вопрос
? - point(4,2).
к базе знаний вычислительной задачи на экране появится ответ «да», т.к.
point(4,2) в запросе согласуется с point(4,2) - одним из фактов БФактов:
point(6,4).
point(7,1).
point(4,2).
seg1(P3, P4).
seg1( point(4,2), point(6,4)).
185
(это согласование и есть сравнение или сопоставление с образцом; как
видим, образцы лежат в БЗ).
Вопрос, в котором имеются переменные, является частным: «для каких
значений переменных факт ... имеет место?». В процессе сопоставлений при
выполнении Пролог-программы переменные получат значения тех констант
(т.е. конкретизируются), для которых сопоставление запроса успешно, т.е.
успешно сопоставление факта в запросе с фактом-образцом из БФ⊂ БЗ, а
ответ будет выведен на экран. Так, в ответ на вопрос
? - телефон(иванов, X).
к базе знаний примера 1 на экране появится ответ «да». А на вопрос
? - point(4,Y).
к базе знаний вычислительной задачи на экране также появится ответ «да».
Возможны также запросы:
(запрос) треугольник прямоугольный.
(вопрос) ?- треугольник прямоугольный.
Однако, (пока) получим ответ “нет”, т.к. (пока) эти предложения просто не с
чем сопоставлять, но и программ пока не закончена!
Пролог-программа также может осуществить запрос (вопрос) (к
пользователю), если он предусмотрен программистом в программе.
Например, если точка не имеет заданных координат (нет таких данных в БД),
то следует предусмотреть такой запрос (вопрос):
zapros:- makewindow ( “Введите координаты точки” ).
Т.к. это продукция (правило), то разместить указанное предложение Пролога
следует в разделе Правил - в разделе Clauses. Конечно, тогда следует
предусмотреть
выполнение
этого
запроса,
т.е.
предусмотреть
соответствующую цель в разделе Goal - разделе Целей, которая выглядит в
данном случае очень просто:
Goal
zapros.
В Прологе все предложения программы - факты, правила, вопрос заканчиваются точкой (см. приведенные выше и ниже примеры).
Математические модели вычислительной задачи).
Формулы: периметр P = a+b+c, полупериметр p=P/2, S= ha*a /2, α+β+γ=π,
S2=p(p-a)(p-b)(p-c) и т.д.
Математические (арифметические) выражения в Прологе
Пусть надо найти S= ha*a /2 в Пролог-программе. Здесь 2 возможности:
- просто написать S= ha*a /2,
- использовать определяемый программистом предикат, плщд(X,Y,Z) - 3-х
местный предикат, в котором X,Y являются переменными-сомножителями,
которые равны данным, исходным или вычисленным, например, X= ha,Y=a,
Z является результатом, Z = X*Y/2, используя системный оператор is и
получая в итоге продукцию
плщд(X,Y,Z):- Z is X*Y/2.
Ее “латинский=прологовский” вариант
area(X,Y,Z):- Z is X*Y/2.
186
Итак, имеем пока следующий фрагмент Пролог-программы triangle.pro и ее
структуры
triangle.pro /* Имя программы */
Predicates
point(4,2).
point(6,4).
point(7,1).
seg1(P3, P4).
seg1( point(4,2), point(6,4)).
…
Clauses
/* раздел описания предикатов */
/* раздел клауз */
area(X,Y,Z):- Z is X*Y/2. /* здесь X= ha - высота на Y=a – основание или */
/* X= hс и Y=с, или же X= hb и Y=b */
…
zapros:- makewindow ( “Введите координаты точки” ).
Goal
zapros.
/* раздел описания целей*/
Пока в программе triangle.pro отсутствуют следующие разделы:
Constans /* раздел констант, не обязательный */
Domens /*Спецификация: характеризация типов переменных и т.д.*/
/* (например) name = symbol /*имя: тип переменной symbol */.
А разделы
Clauses /* раздел правил, условия, предложения, правила, утверждения */
Goal /*Цель, раздел внутренних целей*/
представлены пока лишь указанными выше фрагментами.
Т.к. пока программа triangle.pro не закончена, приведем для
целостного понимания темы простую и понятную по своему смыслу
программу вычисления факториала.
Factrl.pro
/*Комментарий: Factrl.pro – это имя программы*/
/*Факториал (n!=1·2···n= n(n-1)!, например 4! = 1·2·3·4 = 24, по определению 0! = 1)*/
predicates
/* … */
factr(integer, integer)
/* … */
clauses
/* … */
factr(0,1):- !.
/* … */
factr(N,R):- M=N-1,
/* … */
factr(M,P),
/* … */
R= P*N.
/* … */
Goal
/* … */
factr(3,Z),
/* … */
187
write(“Факториал3=”,Z),nl.
/* … */
Задание. Привести свои комментарии.
Логико-математические модели в Прологе
Фразы (клаузы или клозы) Хорна содержат в общем случае
импликацию и конъюнкцию предикатов В1, В2,…, Вn → А, или в других
обозначениях:
А ← В1, В2,…, Вn (читается: А если В1 и В2 и…и Вn).
А:- В1, В2,…, Вn, здесь роль конъюнкции выполняет запятая “ , ”
(а роль дизъюнкции выполняет точка с запятой “ ; ”).
Фраза Хорна является формой записи правила, и в дальнейшем будет
называться правилом. Предикат А называется заголовком или головой
правила, а предикаты В1, В2,…, Вn - его подцелями (тело правила). Очевидно,
что отдельный предикат является частным случаем фразы Хорна: А –
правило без тела. Другой частный случай фразы Хорна – правило без головы
:- В,
или
:- В1, В2,…, Вn.
Такая фраза Хорна называется вопросом. Будем записывать выражение
«:- В» в виде «? – В», а выражение «- В1, В2,…, Вn» записывать в виде
«? - В1, В2,…, Вn».
Поясним логический смысл этой формулы (вопроса). Напомним, что
импликация А:- В (В → А) может быть выражена через отрицание и
дизъюнкцию: ~В∨А (задание: проверить это с помощью таблицы
истинности). Значит, если отбросить А, останется только ~В, т.е. отрицание
В. Далее, формула ← В1, В2,…, Вn означает отрицание конъюнкции
~(В1∧В2∧…∧Вn), что по закону де Моргана ~(Х ∧ У) = (~Х) ∨ (~У) равно
дизъюнкции отрицаний (~В1) ∨ (~В2) ∨…∨ (~В n).
Пример. Рассмотрим предметную область: сдача экзамена по
некоторой дисциплине. Введем знания о предметной области:
Студент успешно сдал экзамен, если студент освоил учебный материал.
Студент освоил учебный материал, если студент посещал занятия и студент
занимался самостоятельно. Студент посещал занятия. Студент занимался
самостоятельно.
Введем обозначения:
А – студент успешно сдает экзамен,
В – студент посещал занятия,
С – студент освоил учебный материал,
D – студент занимался самостоятельно,
Форма логической записи (логическая модель):
А: - С
С: - В,D;
В;
D.
188
В приведенном примере можно выполнить логический вывод. Так, из
истинности фактов В и D и правила С:- В, D следует истинность С, и из
правила А:- С - истинность предиката А, т.е. студент успешно сдал экзамен.
Кроме того, правила А:- С и С:- В, D можно было бы переписать в виде А:- В,
D.
В подобных случаях используют правила вывода, называемые
методом резолюций. Рассмотрим простую форму резолюции. Допустим,
имеются «родительские» предложения
отрицание: ~А импликация (правило): А:- В.
В результате одного шага резолютивного вывода получаем новое
предложение: В, которое называется резольвентой. В этом случае резолюция
соответствует обычному пропозиционному правилу вывода:
допуская, что
неА
и допуская, что А, если В
выводим
неВ.
Еще более простой случай:
отрицание:
~А
факт:
А.
Как видим, здесь резольвента – противоречие: ~А&А.
Логическая программа – это множество выражений, связанных
квантором всеобщности, записанных в форме импликаций вида
a ← b1 ∧ b2 ∧ b3 ∧ K ∧ bn
исчисления предикатов первого порядка. Здесь a и bi – положительные
литералы, которые иногда называют атомарными целями. При этом
а – это заголовок выражения, а конъюнкция bi-тых – его тело (цели).
Такие предложения называются хорновскими выражениями (Horn
clause) или клаузами. Они могут быть записаны в трех формах:
1. ← b1 ∧ b2 ∧ b3 ∧ K ∧ bn – это так называемое беззагловочное
выраже-ние или проверяемые цели.
2. a1 ←
a2 ←
…
an ←
называются фактами (fact).
3. выражение a ← b1 ∧ K ∧ bn называется отношением правила (или
кратко, правилом).
Множество фраз Хорна применительно к некоторой проблемной
области образует ее формальную теорию (в логическом смысле).
Атомы можно создавать тремя способами:
1) из цепочки букв, цифр и символа подчеркивания _ , начиная такую
цепочку (строку) со строчной буквы: анна, nil, x25, x_25, x_25AB, x_, x_y,
альфа_бета_процедура, мисс_Джонс, (во всех примерах нет ни одной
189
переменной, т.к. любая переменная начинается с заглавной буквы).
Например, точка(1,1) и point(1,1) – это атомы.
2)
из специальных символов (пользуясь атомами такой формы,
следует соблюдать осторожность, поскольку часть цепочек специальных
символов имеют в Прологе заранее определенный смысл, примером служит
атом :- ),
3) из цепочки символов, заключенной в одинарные кавычки. Это
удобно, если нужно, например, иметь атом, начинающийся с прописной
буквы. Заключая его в кавычки, мы делаем его отличным от переменной:
'Том', 'Южная_Африка', 'Джонс'
Примеры специальных атомов Пролога:
:- ( обозначает импликацию),
? (вопрос, означающий отрицание),
! (предикат отсечения, рассматривается далее).
Структурные объекты (или просто структуры) - это объекты,
которые состоят из нескольких компонентов. Например, дату можно
рассматривать как структуру, состоящую из трех компонент: день, месяц,
год. Эти компоненты, в свою очередь, могут быть структурами. Хотя они и
составлены из нескольких компонент, структуры в программе ведут себя как
единые объекты. Для того чтобы объединить компоненты в структуру,
требуется выбрать функтор. Так для “день, месяц, год” подойдет функтор
дата. Тогда дату 1-е мая 1983 г. можно записать так: дата(1, май, 1983). Все
компоненты в данном примере являются константами (две компоненты целые числа и одна - атом).
Например, угол(p1,стрн1,стрн2) и ugl(p1,seg1,seg2) – структуры,
состоящие из компонент: p1 (семантика p1: вершина угла) и стрн1, стрн2,
seg1, seg2 (их семантика: стороны треугольника, образующие этот угол), как
видим, все три компонента - атомы.
Компоненты могут быть также переменными или структурами.
Так произвольный день в мае можно представить структурой: дата (День,
май, 1983); заметим, что День является переменной и ей можно приписать
значение на более позднем этапе вычислений. Такой метод структурирования
данных прост и эффективен. Это является одной из причин того, почему
Пролог естественно использовать для решения задач обработки символьной
информации.
Списки. Для повышения наглядности программ в Прологе предусматриваются специальные средства для списковой нотации, позволяющие
представлять списки в виде
[Элемент1, Элемент2,...]
или
[Голова | Хвост]
или
[Элемент1, Элемент2,...| Остальные]
Например, [P1, P3, P2] – список точек–вершин треугольника.
190
Список рассматривается в Прологе как специальный частный случай
двоичного дерева.
Список - это упорядоченный набор объектов - элементов списка,
следующих друг за другом. Элементы списка в языке Пролог должны
принадлежать одному и тому же доменному типу. Объектами списка могут
быть: целые числа, действительные числа, символы, символьные строки,
структуры.
Совокупность элементов списка заключается в квадратные скобки, а
элементы друг от друга отделяются запятыми. Примерами списков являются:
[10,24,1,8,385,0,8]
[0.4, 67.43, 986.01, 914.5]
["ПЕТРОВ П.Р.", "ИВАНОВ Б.О.", "СИДОРОВТ.К."]
Список
может
содержать
произвольное
число
элементов
(ограничением является объем доступной оперативной памяти). Список, не
содержащий элементов, называется пустым списком и обозначается [].
Обработка списков в Прологе базируется на разбиении списка на голову первый элемент в списке и хвост - остальную часть списка.
Наглядным представлением процесса разбиения списка на голову и
хвост является графическое представление в виде бинарного (двоичного)
дерева. Для списка [1,2,3,4] таким деревом будет дерево, приведенное на рис.
55.
Рис. 53. Представление списка [1,2,3,4] в виде дерева.
Пролог-система распознает тип объекта по его синтаксической форме
в тексте программы: синтаксис Пролога предписывает различные формы
записи для различных типов объектов данных: так переменные начинаются с
прописной буквы, тогда как атомы - со строчной и т.д. Поэтому чтобы
Пролог-система распознала тип объекта, ей не требуется сообщать больше
никакой дополнительной информации (такой, например, как объявление типа
данных). На рис. 56 приведена классификация объектов данных Пролога.
191
Объекты данных
Простые объекты
Константы
Атомы
Числа
Структуры
Переменные
Символы
Рис. 54. Классификация объектов данных Пролога.
Для использования списков в Пролог-программе необходимо:
1) В разделе domains описать домен списка. Домен списка задается в
формате:
<ИМЯ ДОМЕНА>=<ТИП ЭЛЕМЕНТА>*
Например, домен списка, элементами которого являются целые числа,
описывается следующим образом:
domains
list_num=integer*
или
list_num=elem*
elem=integer
2) Описать работающий со списком предикат в разделе predicates, например:
predicates
num(list_num)
3) Ввести или создать в программе собственно список, т.е. задать список в
разделах goal или clauses.
Пример задания списков в Пролог-программе в разделе clauses, их
представления в разделе predicates и описания в разделе domains:
domains
list1=symbol*
list2=num*
list3=symbol*
num=integer
predicates
name(list1)
score(list2)
point(list3)
clauses
point([P1,P3,P2])
192
name(["ПЕТРОВ П.Р.", "ИВАНОВ Б.О.","СИДОРОВ Т.К."]).
score([1,3,5,7,9]).
Допустим нас (пользователей) заинтересовали вопросы: какие
вершины образуют (некоторый) треугольник, кем (из ст-тов) написана
данная программа и какие варианты заданий они при этом выполняли.
Конечно, эти факты должны быть в Пролог-программе и они в данном
фрагменте есть. Ниже приведены примеры внешних запросов к этой
программе и получаемые при этом результаты:
Запрос
Результат
point(Y)
Y = [P1,P3,P2]
name(Х)
Х= ["Петров П. Р.", "Иванов Б. О.", "Сидоров Т. К."].
score([A,B,_,_, C])
А=1, В=3, С=9
При использовании в Пролог-программе списков с произвольным
числом элементов используется метод разделения списка на голову и хвост.
Этот метод обеспечивает рекурсивную обработку списка. Операция
разделения списка на голову и хвост в языке Пролог обозначается
вертикальной чертой (|) и записывается в виде:
[Head | Tail]
Здесь: Head - переменная для обозначения головы списка; Tail - переменная
для обозначения хвоста списка.
Рассмотрим программу распечатки содержимого списка, элементы
которого могут быть целыми числами или символьными строками:
domains
Iist1=integer
Iist2=symbol
predicates
print_list(list1)
print_list(list2)
clauses
print_list([]).
print_list([Head | Tail]): - write( Head),
nl,
printJist(Tail).
goal
print_list([1,2,3,4]).
В данной программе предикат списка print_list() описан для двух типов
доменов, поэтому с его помощью могут обрабатываться списки, элементами
которых являются как целые числа, так и символьные строки. В программе
реализован рекурсивный метод обработки.
193
Первое правило программы print_list([]) описывает тот факт, что
пустой список не нужно печатать, оно же является условием выхода из
рекурсии, используемым во втором правиле - печать списка завершается
тогда, когда список пуст.
Опишем работу программы. Первоначально аргумент целевого
внутреннего запроса print_list([1,2,3,4]) сопоставляется с первым вариантом
правила; сопоставление терпит неуспех, так как [1,2,3,4]#[]. Затем
выбирается второй вариант правила, здесь сопоставление завершается
успехом и выполняется операция | - разделения целевого списка на голову и
хвост. Результатом ее является означение Head=1 и Tail=[2,3,4]. Далее
начинают последовательно выполняться предикаты тела правила.
Первым в теле стоит стандартный предикат write(Head), который
выводит на экран значение переменной Head, в данном случае 1, затем
выполняется стандартный предикат nl - перевод строки и формируется
рекурсивный вызов print_list([2,3,4]). Снова обращение к первому варианту
правила и снова неуспех - [2,3,4]#[], и снова успешное сопоставление со
вторым вариантом и т. д. В конечном итоге переменная Head становится
равной 4, a Tail=[], и теперь после рекурсивного вызова print_list([])
сопоставление для первого варианта правила завершится успехом - []=[], этот
вариант правила не имеет рекурсии - он является фактом и интерпретируется
Прологом как цель достигнута и целевой запрос считается
удовлетворенным.
Рассмотрим Пролог-программу подсчета суммы произведений
элементов двух векторов X и Y, представленных списками X=[x1, ,х2,...х n] и
Y=[y1, ,у2,...уn]:
domains
vector=integer*
predicates
prod(vector,vector,integer)
clauses
prod([],[],0).
prod([X|Xs],[Y|Ys],S):-prod(Xs,Ys,Sp),
S=X*Y+Sp.
goal
prod([1,2,3],[7,8,9],Res),write("Res=",Res).
Предикат prod(...) является трехместным: первый аргумент – список X,
второй - список У и третий - сумма произведений списков. В разделе clauses
описаны два варианта правила для этого предиката.
Первый вариант - утверждение о том, что сумма произведений
элементов пустых списков равна 0. Второй вариант правила реализован с
использованием хвостовой рекурсии. Выражение S=Х*У+Sр означает, что
текущая сумма равна сумме произведений текущих элементов вектора и
194
частичной суммы, полученной на предыдущих шагах вычислений.
Схематично действия при выполнении программы представлены в
табл. 2. Рекурсивное правило описывает отсроченные вычисления - после
рекурсивного вызова остается не выполненным хвост правила, копии
которого помещаются в стек до тех пор, пока не произойдет сопоставление с
первым вариантом правила. И после того, как это произойдет, частичная
сумма Sp" получит значение 0 и все накопленные в стеке хвостовые
вычисления будут выполнены в обратном порядке.
Правило в логике имеет вид: A1...Am→ A0, однако в Прологе принята
«обратная» запись правила. Правило в Прологе имеет вид:
A0 ←A1,..., Am или вид A0 :- A1,..., Am , m ≥ 0,
где А0, А1,..., Аm - атомы. Атом А0 называется заголовком, а А1,...,Аm - телом
правила. Тело может быть пустым (при m = 0) - такие правила называют
фактами. Атом имеет вид ω(t1,t2 ...tn), где ω - n-арный предикатный символ
или имя отношения; t1,t2...tn - термы.
Терм - это либо имя переменной, либо константа, либо составной терм
вида f(t1,t2...tn), где f - n-арный функциональный символ. Функции,
задаваемые логической программой, представляются в виде отношений: nместная функция y=f(x1,x2...xn) представляется в виде (n+1)-местного
отношения вида F(x1,x 2...xn, y).
Запрос (цель) имеет вид:
← C1,C2, ...,Cr или вид :- C1,C2,...,Cr ,
где С1,С2,...,Сr - атомы, r - натуральное число: 0, 1,… .
Каждое правило допускает логическую и процедурную интерпретации
(семантики).
Логическая интерпретация правила A0←A1...Am − «истинность А0,
следует из истинности А1 и истинности А2, и..., и истинности Аm» или «А0
истинно, если истинны А1 и A2, и..., и Аm». Таким образом, правила
рассматриваются как формулы языка логики предикатов вида:
∀x1∀x 2...∀x n(A1∧A2 ∧...∧Am →A0).
Здесь ∀ − квантор общности, ∧ − логическая связка И, → - логическая связка
ЕСЛИ-ТО. В Прологе, в силу традиции, данные формулы записываются в
обратную сторону и используются другие обозначения для логических
связок: ∧ обозначается «,» (запятой) или словом and; ∨ обозначается
«;»(точкой с запятой) или словом or; → - импликация (следование)
обозначается в языке программирования Пролог как «:-» (двоеточие и минус)
или слово if. Все переменные в предложениях связаны квантором общности,
поэтому обычно знак квантора ∀ опускается (однако он всегда неявно
предполагается, имеется в неявном виде, по умолчанию).
Формула A0 ←A1...Am, т.е. формула A1∧A2 ∧...∧Am →A0 с использованием
связок → и ∧, может быть преобразована в эквивалентную, но имеющую
только связки ¬ (HE) и ∨ (ИЛИ), формулу вида:
A0∨¬A1 ∨¬ A2∨...∨¬Am (m≥0).
Такие формулы и называются хорновскими дизъюнктами, а стиль
195
программирования − хорновским.
Процедурная интерпретация правил Пролога вида:
А0:-А1,А2... Аm или A0 if A1 and A2 and... and Am
следующая: «для достижения цели А0 необходимо последовательно достичь
(всех под)целей А1, А2,..., Am».
Соответственно, для фактов (получаемых формально из правил в том
частном случае, когда m = 0) имеет место логическое прочтение: «А0
истинно», а соответствующая ей процедурная интерпретация факта такова:
«цель А0 достигнута».
Логическая семантика запроса G: ← С1,С2,...,Сr (с переменными х1,
x2,..., х i) к логической программе ℜ понимается как требование-цель:
вычислить все значения переменных x1, x2,..., xi, при которых утверждение
С1∧С2 ∧...∧Сr логически следует из утверждений программы ℜ или,
записывая это, как принято в логике, необходимо показать, что
ℜ ⇒ G,
т. е. запрос G логически следует (выводим) из логической программы ℜ. При
этом оказывается, что доказательство выводимости G из ℜ аналогично тому,
чтобы показать
ℜ,¬G ⇒ ,
т. е. присоединение отрицания запроса G к программе ℜ приводит к
противоречию (это «изображено» пустым местом в ℜ,¬G ⇒ ). Однако
последнее (сведение к противоречию методом от противного) выполнить в
классе формул, с помощью которых записывается Пролог-программа,
существенно проще, чем прямое доказательство, потому что имеется
эффективный метод доказательства − метод резолюций, одна из версий
которого и применяется в Прологе.
Метод резолюций, получив на вход логическую программу с
присоединенным к ней запросом в виде множества хорновских дизъюнктов,
пытается построить вывод пустого дизъюнкта, обозначаемого символом [ ]
(соответствует ∅ множеству). Если это ему удается, тогда цель допускается,
в противном случае отвергается. Реализуется метод резолюций с помощью
двух правил: правила резолюции и правила склейки, которые во время работы
вызывают процедуру унификации − сопоставления.
Унификация − процесс, на вход которого поступает два терма и для
них находится унификатор.
Унификатором двух термов называется подстановка, которая делает
термы одинаковыми. Если унификатор существует, то термы называются
унифицируемыми и для них отыскивается наиболее общий унификатор, если
нет − процедура унификации сообщает об отказе.
Пусть имеются два терма t1=ОТЕЦ(Х,Y) и t2= ОТЕЦ(«ПЕТР»,
«ПАВЕЛ»). Унификатором этих двух термов будет подстановка
Θ=(Х=«ПЕТР», Y=«ПАВЕЛ»), т.е. если в терм t1 вместо переменных X и Y
подставить значения из соответствующих мест терма t2, термы станут
одинаковыми, а значением их будет пример ОТЕЦ(«ПЕТР», «ПАВЕЛ»).
196
Пусть теперь t1=ОТЕЦ(Х,«ИВАН») и t2=ОТЕЦ(«ПЕТР»,«ПАВЕЛ»). В
этом случае унификация невозможна, так как с помощью подстановки термы
нельзя сделать одинаковыми − на втором месте в обоих термах стоят разные
константные выражения.
Если бы термы были, например, вида t1=ОТЕЦ(Х,«ИВАН») и
t2=ОТЕЦ(«ПЕТР»,Z), тогда Θ=(Х=«ПЕТР»,Z=«ИВАН»), и пример для этих
термов ОТЕЦ(«ПЕТР», «ИВАН»).
Правило резолюции позволяет из дизъюнктов
D 1= ¬A1(t)∨A2∨...∨An ,
D2 = A1(s)∨B1∨…∨B m
получить новый дизъюнкт D = Θ(A2∨...∨An∨В1∨...∨Bm). Здесь Θ − наиболее
общий унификатор термов t и s, обеспечивает их равенство и означает, что
все подстановки унификатора выполнены для всех атомов, входящих в дизъюнкты D1 и D2. Дизъюнкты D 1 и D 2 называют родителями дизъюнкта D. В
дизъюнкте D отсутствует пара: ¬A1(Θt) ∨ А1(Θs), при этом (Θt) = (Θs) и пара
является тавтологией (тождественно-истинной) и может быть удалена из
дальнейших вычислений, что и выполняет правило резолюции.
Правило склейки позволяет из дизъюнкта A(t) ∨ A(s) ∨ В1∨...∨ Вn
получить дизъюнкт Θ(A(t) ∨ B1 ∨...∨ B n), т.е. осуществляется «склеивание»
одинаковых атомов (A(t) и A(s)), полученных после унифицирующей
подстановки Θt = Θs.
Для обработки списков в языке PROLOG используются унификации и
рекурсии. Рекурсия - это естественный способ обработки списочных
структур. Первый элемент списка может отделяться от его хвоста оператором
|. Хвост списка – это список после удаления первого элемента. Например, для
списка [tom, dick, harry, fred] первым элементом является tom, а хвостом –
список [dick, harry, fred]. С помощью оператора | и процедуры унификации
можно разделить список на компоненты.
- Если список [tom, dick, harry, fred] соответствует шаблону [X|Y], то
X=tom и Y=[dick, harry, fred].
- Если список [tom, dick, harry, fred] соответствует шаблону [X, Y| Z],
то X=tom, Y=dick и Z=[harry, fred].
- Если список [tom, dick, harry, fred] соответствует шаблону [X, Y, Z|
W], то X=tom, Y=dick, Z=harry и W=[fred].
- Если список [tom, dick, harry, fred] соответствует шаблону [W, X, Y,
Z | V], то W=tom, X=dick, Y=harry, Z=fred, V=[].
Помимо разбиения списка на отдельные элементы унификацию можно
использовать для построения списочной структуры. Например, если X=tom,
Y=[dick] и L унифицируется с [X|Y], то переменная L будет связана со
списком [tom, dick]. Термы, отделенные друг от друга запятыми и
расположенные до вертикальной черты, являются элементами списка, а
находящаяся после вертикальной черты структура всегда является списком, а
точнее, его хвостом.
197
Рассмотрим пример рекурсивной обработки списка: проверку
принадлежности элемента списку с помощью предиката member. Определим
предикат, позволяющий выявить наличие элемента в списке. Предикат
member должен зависеть от двух аргументов: элемента и списка. Он
принимает значение «истина», если данный элемент содержится в списке.
Например,
?- member (a, [a, b, c, d, e]).
Yes
?- member (a, [1, 2, 3, 4]).
No
?- member (X, [a, b, c]).
X=a
;
X=b
;
X=c
;
no
Чтобы определить предикат member рекурсивно, сначала проверим, является
ли X первым элементом списка.
member (X, [X|T]).
Этот предикат проверяет, идентично ли значение Х первому элементу
списка. Если нет, то естественно проверить, содержится ли Х в оставшейся
части (Т) списка. Это определяется следующим образом.
member (X, [Y|T]) :- member (X, T).
Таким образом, проверка наличия элемента в списке на языке PROLOG
выполняется с помощью двух строк.
member (X, [Х|T]).
member (X, [Y|T]) :- member (X, T).
Этот пример иллюстрирует значение встроенного в PROLOG порядка
поиска, при котором условие останова помещается перед рекурсивным
вызовом, а значит, проверяется перед следующим шагом работы алгоритма.
При обратном порядке следования предикатов условие останова может
никогда не проверяться.
Выполним трассировку предиката member (c, [a, b, c]) с нумерацией.
1: member (X, [X|T]).
2: member (X, [Y|T]) :- member (X, T).
?- member (c, [a, b, c]).
call 1. fail, since c≠a
call 2. X=c, Y=a, T=[b, c], member (c, [b, c])?
call 1. fail, since c≠b
call 2. X=c, Y=b, T=[c], member (c, [c])?
198
call 1. success, c=c
yes (to second call 2.)
yes (to first call 2.)
yes
199
Экспертные системы и Пролог
Язык программирования Пролог разработан в 1971г. в контексте
решения задачи понимания естественно-языковой фразы. Различные
реализации языка Пролог фактически являются производными от версии
языка на Фортране (Roussel, 1975), опирающейся на переносимый
интерпретатор (Battani, 1973). Пролог – язык логического программирования,
единицей которого является не команда, а теорема - утверждение логики
предикатов первого порядка. Теорема выражена n-арными предикатами с
переменными или параметрами, относящиеся к сфере действия квантора
всеобщности. Переменные могут быть замещены
любым правильно
построенным выражением языка. Запись Р(х1, х2,..., хn), где xi - переменные,
Р - n-арный предикат, интерпретируется так: Р(х1, х2,..., хn) истинно. Сами
предикаты в языке Пролог не могут быть включены в сферу действия
кванторов (если предикаты находятся под знаками действия кванторов, то
речь идет об исчислении предикатов высших порядков, т. е. 2-го и т. д.).
Пролог - интерпретатор формул логики предикатов 1-го порядка. Его
действие распространяется на предикаты, приведенные к НДФ - нормальной
дизъюнктивной форме. Любое предложение как дизъюнкция предикатов
записывается в виде
(h1∨h2∨…∨ hi) ∨ (С1 ∨ С2 ∨...∨ Cj),
что, интерпретируется (в силу законов де Моргана и равносильных
формул: А→В ≡ Ā ∪В) в виде
h1 ∧ h2 ∧... ∧hi ⊃ C1 ∧ C2 ∧...∧ Cj (здесь ⊃ - импликация).
Характерной особенностью языка Пролог является то, что он имеет дело
только с хорновскими предложениями, т.е. с предложениями, которые имеют
самое большее один "положительный" литерал (справа), другими словами,
только одно заключение C1. Язык запрещает иметь дело с дизъюнктивными
заключениями типа C1 ∨ С2. Под литералом понимается любой терм hi или Ci
из предложения, представленного в нормальной форме.
Все интерпретаторы для языка Пролог являются иллюстрацией
доказательства теорем с использованием принципа резолюции. Этот
принцип, предложенный еще Эрбраном (Herbrandt, 1931), был заново
воссоздан и запрограммирован Робинсоном в 1965 г. (Robinson, 1965). Он
является обобщением метода доказательства от противного: принцип
резолюции состоит в том, что доказывается противоречивость предложения
p ∧  q и, тем самым, доказывается справедливость импликации p→q. Этот
метод априори является полным и позволяет доказывать все теоремы данной
формальной системы, но связан с большим объемом комбинаторных
вычислений и недостаточно естествен для человека редко рассуждающего от
противного. Тем не менее, интерпретирующие программы оказываются
эффективнее его... .
Любое предложение языка Пролог можно интерпретировать двумя
200
способами:
1) процедурным образом через интерпретатор и
2) чисто логически или декларативно как простое утверждение теоремы в
рабочем пространстве.
Программирование на языке Пролог представляет интерес по трем
причинам:
1) предложения непосредственно выражают утверждения (теоремы);
2) интерпретатор содержит запрограммированный алгоритм унификации;
3) дерево поиска, рождаемое множеством попарных унификаций,
обрабатывается в системе автоматически,
4) резолюция может направляться стратегией, которая фиксирует приоритет
определенных предложений, являющихся кандидатами для унификации.
Предложения отбрасываются в порядке их появления, а внутри каждого
предложения литералы отбрасываются справа налево. Эта стратегия является
полной.
Система Пролог предоставляет возможность, пользуясь простым
формализмом, описывать и решать задачи. Пользователю для формулировки
своей задачи остается только найти подходящие предикаты.
PЕACE - экспертная программа па языке Пролог. PEACE представляет
собой пример экспертной программы, написанной на языке Пролог и
предназначенной для анализа и синтеза электрических цепей (разработчик
Динкбас, Тулуза, 1979г.).
Для цепи с заданными величинами сопротивлений, индуктивностей
и емкостей и не содержащей источников тока, проблема нахождения
результирующего импеданса между точками А и D цепи сводится к
доказательству теоремы
 impedance (A, D, *X).
Результат, получаемый методом от противного, будет содержаться в
окончательном значении переменной *Х.
Сама цепь представляется с помощью предикатов "равно", "ветвь",
"кратный узел", позволяющих записать следующие условия:
«ветвь (А, В, L'1)» вместе с «равно (L'1 , L1 , ω)» и «равно C'1, 1/C1ω»
или «кратность узла (В, 5) ».
Преобразования электрических цепей описываются на Прологе с
помощью предикатов. Например, одно из правило имеет вид
«Последовательные (Z , Z2) ← ветвь (х, t, Z1) ∧ ветвь (t, у, Z2)
∧ различные (t, у) ∧ простой узел (t) ∧ вычеркнуть (ветвь (х, t, Z1 ))
∧ вычеркнуть (ветвь (t, у, Z2)) плюс (Zr, Z2, Z)
∧ присоединить (ветвь (х, у, Z))»
201
Внутренняя стратегия PEACE для преобразования цепи состоит в
последовательном применении преобразований в указанном выше порядке.
Этот порядок соответствует минимальному числу остающихся неясными
узлов в сети. Узнавание допустимых преобразований в любой момент
происходит с помощью алгоритма унификации и осуществляется языком
Пролог. Таким образом, каждое преобразование позволяет определенным
образом модифицировать базу данных. Доказывается, что этот процесс
неизбежно сходится к цепи, содержащей две точки. Решение было получено
чисто алгоритмическим способом. В этой системе любая форма знаний
(факты из БД, процедуры, резолюции, схемы контроля) представлена единым
способом с помощью конъюнкции предложений.
Преимущества Пролога для ЭС
В первую очередь преимуществом экспертных систем, написанных на
Прологе, является единообразие представления элементов: факты, правила
выводов, сложные процедуры, управляющие структуры выражаются в
единой форме соединительных правил. Из единства механизма вычислений
при реализации принципа решения следует простота программирования и
семантическая простота программ. Экспериментально показано, что
эффективность Пролога превышает эффективность Лиспа. Поэтому
экспертная система MYCIN была полностью перепрограммирована на
Прологе, в результате чего ее эффективность существенно возросла. Кроме
того, Пролог предоставляет возможность доступа к дереву доказательства,
средствам ввода-вывода, составляющим правилам и механизму возврата
назад при движении но дереву доказательств. Но главный интерес к Прологу,
без сомнения, вызывает возможность составления программы, управляющей
выполнением правил (т.е. непосредственно процессами получения выводов)
и работающей на метауровне. Это важно при работе с базой знаний большого
объема. Пролог позволяет также использовать правила как аргументы для
предикатов более высокого уровня и, таким образом, использовать
возможности логики второго порядка.
202
Библиографический список
1 Андрейчиков, А.В. Интеллектуальные информационные системы:
Учебник / Андрейчикова О.Н. // М.: Финансы и статистика, 2004. – 424
с.
2 Афонин, В. Л. Интеллектуальные робототехнические системы. /
Макушкин В. А. // Серия: Основы информационных технологий.
Издательство: Интернет-университет информационных технологий,
2005. - 208 с.
3 Братко, Иван. Язык PROLOG (Пролог): алгоритмы искусственного
интеллекта. / Братко, Иван // 3-е издание. М.: Вильямс, 2000. - 640 c.
4 Гаврилова, Т.А. Базы знаний интеллектуальных систем. / Хорошевский
В.Ф. // СПб.: Питер, 2001 – 384с.
5 Гарднер, Говард. Структура разума: теория множественного
интеллекта. / Гарднер, Говард // М.: Вильямс, 2003. - 512 с.
6 Гладков, Л.А. Генетические алгоритмы. / Курейчик, В.В., Курейчик,
В.М. // М.: Физматлит, 2006. – 320.
7 Джарратано , Джозеф. Экспертные системы: принципы разработки и
программирование. / Райли, Гарри // 4-е издание. М.: Вильямс, 2005. 1152 с.
8 Джексон, Питер. Введение в экспертные системы. / Джексон, Питер//
Пер. с англ.: Уч. Пос. М.: Вильямс, 2001. – 624 с.
9 Калан, Роберт. Основные концепции нейронных сетей. / Калан, Роберт
// Пер. с англ. М.: Вильямс, 2001. - 345 с.
10 Клоксин, Меллиш. Программирование на языке Пролог. / Клоксин,
Меллиш // М: Мир, 1987. - 124c.
11 Круглов, В.В. Нечеткая логика и искусственные нейронные сети // Дли,
М.И., Голунов, Р.Ю. // М.: Издательство физико-математической
литературы 2000. – 224 с.
12 Кушнир Г.А. Системы искусственного интеллекта: Лекция. / Кушнир
Г.А // М.: Издательско-книготорговый центр «Маркетинг»; М.: МУПК,
2001. - 35с.
13 Люггер, Джордж Ф. Искусственный интеллект: стратегии и методы
решения сложных проблем. / Люггер, Джордж Ф. // М.: Вильямс, 2003.
- 864 с.
14 Оссовский, Станислав. Нейронные сети для обработки информации /
Оссовский, Станислав // Пер. с польского И.Д.Руденко. М.: Финансы и
статистика, 2004. - 344 с.
15 Попов Э.В. Статические и динамические экспертные системы: Учеб.
пос. / Фоминых И.Б., Кисель Е.Б., Шапот М.Д. // М.: Финансы и
статистика, 1996. - 320 с.
16 Рассел, Стюарт. Искусственный интеллект: современный подход
(AIMA) / Норвиг, Питер // 2-е издание. - М.: Вильямс, 2005. - 1424 c.
203
17 Рутковская, Д. Нейронные сети, генетические алгоритмы и нечеткие
системы. / Пилиньский, М., Рутковский, Л. // М.: Горячая Линия –
Телеком. 2004. – 452 с.
18 Стерлинг Л. Искусство программирования на языке Пролог. / Шапиро
Э.// М: Мир 1990. – 230 c.
19 Стобо Дж. Язык программирования Пролог. / Стобо Дж. // М: Радио и
связь. 1993. – 82 c.
20 Хайкин, Саймон. Нейронные сети: полный курс. / Хайкин, Саймон // 2е издание. М.: Вильямс, 2006. - 1104 с.
21 Хювёнен Э. «Мир Лиспа» в 2-х томах. / Сеппянен Й.// М: Мир 1990. –
220 c.
204
Download