/
Author: Ручкин В.Н. Фулин В.А.
Tags: компьютерные технологии искусственный интеллект автоматизация информационные технологии машинное обучение
ISBN: 978-5-9775-0460-7
Year: 2009
Text
В. Н. Ручкин, В. А. Фулин
Универсальный
искусственный ивтеллект
в экспертные системы
^bhv
®
В. Н. Ручкин
В. А. Фулин
Универсальный
искусственный интеллект
н экспертные системы
Санкт-Петербург
«БХВ-Петербург»
2009
УДК 681.3.06
ББК 32.973.26-018.2
Р92
Ручкин, В. Н.
Р92 Универсальный искусственный интеллект и экспертные системы /
В. Н. Ручкин, В. А. Фулин. — СПб.: БХВ-Петербург, 2009. — 240 с: ил.
ISBN 978-5-9775-0460-7
Рассматривается история развития искусственного интеллекта, методы
поиска решений в пространстве состояний, модели представления знаний, теории
высказываний и предикатов. Приводятся данные и рекомендации по
использованию интегрированной среды программирования баз знаний, принципы
построения нейросетевой экспертной системы. Дается классификация экспертных
систем и примеры их использования. Приводится методика представления нечетких
знаний, материалы по использованию квантовых компьютеров для создания
современных систем искусственного интеллекта.
Для студентов, аспирантов и преподавателей вузов
Оригинал-макет подготовлен Александром Зыковым
Лицензия ИД № 02429 от 24.07.00. Подписано в печать 29.04.09.
Формат 70x100Vie. Печать офсетная. Усл. печ. л. 19,35.
Тираж 1000 экз. Заказ No 1029
"БХВ-Петербург", 190005, Санкт-Петербург, Измайловский пр., 29.
Санитарно-эпидемиологическое заключение на продукцию
№ 77.99.60.953.Д.003650.04.08 от 14.04.2008 г. выдано Федеральной службой
по надзору в сфере защиты прав потребителей и благополучия человека.
Отпечатано с готовых диапозитивов
в ГУП "Типография "Наука"
199034, Санкт-Петербург, 9 линия, 12
ISBN 978-5-9775-0460-7
О Ручкин В Н , Фулин В А. 2009
О Оформление, издательство "БХВ-Петербург". 2009
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ 9
1. ИСТОРИЧЕСКИЕ ТЕНДЕНЦИИ РАЗВИТИЯ ИСКУССТВЕННОГО
ИНТЕЛЛЕКТА П
1.1. Предыстория искусственного интеллекта 11
1.2. от логики к кибернетике 12
1.3. Нейрокибернетика 12
1.4. Кибернетика «черного ящика» и искусственный интеллект 13
1.5. Основные этапы развития систем искусственного интеллекта 13
2. УНИВЕРСАЛЬНЫЙ ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ-
ТЕНДЕНЦИИ РАЗВИТИЯ 19
2.1. Универсальный искусственный интеллект 19
2.2. Общие направления развития искусственного интеллекта 20
2.3. Искусственный интеллект в России 22
3. МЕТОДЫ ПОИСКА РЕШЕНИЙ 24
3.1. Основные понятия системы искусственного интеллекта 24
3.2. Классификация задач, решаемых человеком 25
3.3. Модель предметной области 28
3.3.1. Процедура решения задачи 29
3.3.2. Примеры решения задач 30
3.3.3. Выводы 33
3.4. Методы поиска решений в пространстве состояний 33
3.4.1. Путь решения задачи 33
3.4.2. Метод полного перебора в ширину 35
3.4.3. Метод полного перебора в глубину 36
3.5. Эвристические методы поиска в пространстве состояний 37
3.6. Поиск решения методом разбиения задач на подзадачи 39
3.6.1. Представление задачи в виде И/ИЛИ графа 40
3.6.2. Механизм сведения задачи к подзадачам 41
3.6.3. Пример решения задачи 43
3.7. Достоинства и недостатки методов поиска решений
в пространстве состояний 44
4. МОДЕЛИ ПРЕДСТАВЛЕНИЯ ЗНАНИЙ 47
4.1. Знания как объект исследования и преобразования в системах ИИ 47
4 Оглавление
4.1.1. Внутренняя интерпретация 48
4.1.2. Наличие внутренней структуры связей 49
4.1.3. Наличие внешней структуры связей 49
4.1.4. Шкалирование 50
4.1.5. Погружение в пространство с «семантической метрикой» 51
4.1.6. Наличие активности 51
4.2. классификация моделей представления знаний 52
4.3. Неформальные модели представления знаний 52
4.4. Логическая модель представления знаний 54
4.5. Продукционная модель представления знаний 55
4.6. Представление знаний фреймами 56
4.7. Представление знаний семантическими сетями 57
4.8. Формальные модели представления знаний 59
5. ТЕОРИЯ ВЫСКАЗЫВАНИЙ 61
5.1. Определение высказываний 61
5.2. Алфавит исчисления высказываний 61
5.3. Синтаксис исчисления высказываний 63
5.4. Преобразование формул 64
5.5. Множество базовых аксиом 65
5.6. Правила вывода 66
5.7. Нормальные формы 68
5.8. Свойства ИВ как аксиоматической системы 70
5.9. Проблема логического вывода 71
5.10. Алгоритмическая проблема разрешения в ИВ 73
5.11. Теорема дедукции 74
5.12. Принцип дедукции 75
5.13. Принцип резолюций 77
5.14. Свойства метода резолюций 78
5.15. Пример решения задачи средствами ИВ 81
6. ТЕОРИЯ ПРЕДИКАТОВ 84
6.1. Понятие о предикатах 84
6.2. Исчисление предикатов как аксиоматическая система 86
6.3. Примеры предикатов 88
6.4. Преобразование формул 89
6.5. Стандартизация переменных 91
6.6. исключение квантора существования 91
6.7. предваренная форма 92
Оглавление 5
6.8. исключение кванторов общности 93
6.9. Приведение матрицы к КНФ 93
6.10. Обобщающий пример 94
6.11. Подстановки и унификация 95
6.12. вывод в исчислении предикатов 96
6.13. Примеры применения метода резолюций 99
6.14. Стратегии резолюции 102
6.15. Пример решения задачи средствами ИП 105
7. ИНТЕГРИРОВАННАЯ СРЕДА ПРОГРАММИРОВАНИЯ
БАЗ ЗНАНИЙ VISUAL PROLOG 109
7.1. Описание предметной области с помощью программы
на языке Пролог 111
7.2. Факты 112
7.3. Вопросы или целевые утверждения 113
7.4. Переменные 114
7.5. Правила 115
7.6. Конъюнкция целевых утверждений 116
7.7. Пополнение базы знаний 117
7.8. Структура программы на языке Visual Prolog 118
7.9. Реляционный язык Пролог 120
8. НЕЙРОННЫЕ СЕТИ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА 123
8.1. Вычислительные системы искусственного интеллекта 123
8.2. Основы теории нейрона 124
8.3. Нейроподобные сети 126
8.4. Обучение нейроподобных сетей 128
9. МОДЕЛИРОВАНИЕ СИИ НА НЕЙРОМИКРОПРОЦЕССОРАХ 129
9.1. Особенности нейромикропроцессора Neuromatrix Л1879ВМ1 129
9.2. Описание векторного сопроцессора 131
9.3. Режим взвешенного суммирования 132
9.4. Выполнение операций на векторном АЛУ 134
9.5. Порядок выполнения преобразований над данными 134
9.6. Система команд нейропроцессора 135
9.7. Машинные команды нейропроцессора 135
10. ПРОГРАММИРОВАНИЕ СИИ НА НЕЙРОМИКРОПРОЦЕССОРАХ 138
10.1. Скалярные команды '. 138
10.2. Векторные команды 139
6 ОшшмФни*
10.3. Специальные векторные команды группы VN 140
10.4. Формат скалярных и векторных команд 141
10.5. Структура программы для нейропроцессора 143
10.6. Ввод данных 144
10.7. Запуск программы 144
10.8. Структура ассемблера NM 640Х 145
, 10.9. NM Calculator - программное обеспечение нейропроцессора 147
10.10. Возможные области применения нейропроцессоров 149
11. СИНГУЛЯРНОСТЬ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА 151
11.1. Определения и обоснования 151
11.2. Понятие сингулярность 151
11.3. Симптомы сингулярности 152
11.3.1. Искусственный интеллект 152
11.3.2. Увеличение биологических возможностей человека 154
11.3.3. Человеко-компьютерные системы 155
11.4. Пути к сингулярности и от нее 156
11.5. Последствия сингулярности 157
11.6. Сценарии без сингулярности 160
11.7. Сингулярность без искусственного интеллекта 161
12. КЛАССИФИКАЦИЯ ЭКСПЕРТНЫХ СИСТЕМ 165
12.1. Основные понятия знания и свойства 165
12.2. Основные элементы экспертной системы 166
12.3. Машина ввода 168
12.4. Интерфейс 168
12.5. структура экспертной системы 169
12.6. Классификация экспертных систем 170
13. ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ ЭКСПЕРТНЫХ СИСТЕМ 172
13.1.Экспертные системы медицины и химии 172
13.1.1. Экспертная система ABEL 172
13.1.2. Экспертные системы MYCIN и DENDRAL 172
13.1.3. Экспертная система: PTRANS 174
13.2. Экспертные системы компьютерных систем 175
13.2.1. Экспертная система: DART 175
13.2.2. Экспертная система: ЮТ 175
13.2.3. Экспертная система: XCON 175
13.2.4. Экспертная система: TIMM/TUNER 175
13.2.5. Экспертная система: YES/MVS 176
Оглавление 7
13.3. Экспертные системы электроники 176
13.3.1. Экспертная система: BDS 176
13.3.2. Экспертная система: TALIB 176
13.3.3. Экспертная система: АСЕ 177
14. РОБОТОТЕХНИКА 178
14.1. направления развития робототехники 178
14.2. робот - человек 179
14.3. космические роботы 179
14.4. робототехника в медицине 180
14.5. тенденции развития робототехники 182
15. ПРЕДСТАВЛЕНИЕ НЕЧЕТКИХ ЗНАНИЙ 184
15.1. Общие понятия 184
15.2. нечеткие множества 185
15.3. Операции над нечеткими множествами 189
15.4. Обычные отношения и операции над ними 193
15.5. Нечеткие отношения 196
15.6. Лингвистическая переменная 199
15.7. Нечеткий вывод 201
16. ПОСТРОЕНИЕ НЕЙРОСЕТЕВОЙ ЭКСПЕРТНОЙ СИСТЕМЫ 203
16.1. Понятие нейросетевых экспертных систем 203
16.2. Искусственный нейрон 204
16.3. Базовая искусственная модель 205
16.4. Применение нейронных сетей 206
16.5. Сбор данных для нейронной сети 208
16.6. Пре/постпроцессирование 209
16.7. Многослойный персептрон (MLP) 211
16.8. Обучение многослойного персептрона 211
16.9. Алгоритм обратного распространения 212
16.10. Переобучение и обобщение 213
16.11. Отбор данных 215
16.12. Обучение многослойного персептрона 217
16.13. Другие алгоритмы обучения MLP 220
16.14. Радиальная базисная функция 221
16.15. Вероятностная нейронная сеть 224
16.16. Обобщенно-регрессионная нейронная сеть 227
16.17. Линейная сеть 227
8
Ошнтлшние
16.18. сеть кохонена 228
16.19 Таблица статистик классификации 230
16.20. Отбор переменных и понижение размерности 230
17. ИСПОЛЬЗОВАНИЕ КВАНТОВЫХ КОМПЬЮТЕРОВ
ДЛЯ СОЗДАНИЯ ЭКСПЕРТНЫХ СИСТЕМ НОВОГО ПОКОЛЕНИЯ 233
17.1. История развития квантовых компьютеров 233
17.2. Физический смысл квантовых вычислений 234
17.3. Отечественные разработки 235
ЛИТЕРАТУРА 237
ВВЕДЕНИЕ
Область искусственного интеллекта (Artificial Intelligence, AI, ИИ) прямо
нацелена на создание «думающей машины» т. е. компьютерной системы с
человекоподобным интеллектом. При этом она должна обладать следующими характеристиками:
личностные качества, желание, внимание, креативность, и др. Такая цель
труднодостижима и поэтому разработки систем искусственного интеллекта (СИИ)
сконцентрировались в основном на производстве системы узкоспециализированный
искусственного интеллекта (УИИ), т. е. программного обеспечения, которое проявляет
интеллект относительно определенных вопросов касающихся узких областей знаний.
Наибольшие успехи программного обеспечения, использующего ИИ, достигнуты
в шахматных программах, программах диагностики заболеваний, распознавания речи
и т. д. Например, система Deep Blue - победила чемпиона мира по шахматам, Mycin -
может диагностировать небольшой набор заболеваний, причем часто так же точно,
как и доктора. Кроме того созданы программы, которые переводят речь в текстовый
документ (ViaVoice), анализируют хромосомные данные, автоматически приводят
в движение колеса. Банки применяют СИИ в страховой деятельности (актуарная
математика) при игре на бирже и управлении собственностью и т. д.
Некоторые исследователи считают, что УИИ, в конечном счете, приведет к
универсальному искусственному интеллекту. По мнению основателя корпорации Google
Сергея Брина, его поисковая система является УИИ и дальнейшая работа над
алгоритмами поиска информации приведет к появлению все более интеллектуальных
систем.
Многолетние исследования в сфере ИИ не принесли заметного успеха даже при
моделировании относительно простых живых существ. Тому есть свои причины:
живые организмы состоят из множества разнотипных клеток и органов,
демонстрирующих гибкое функционирование, и смоделировать подобные структуры на всех
уровнях, включая макро, пока не удается. Кроме того, классические AI-модели, как
правило, линейны, а «мыслящую» систему желательно составлять из иерархически
организованных элементов, каждый из которых в свою очередь будет представлять
сложный модуль с собственным интеллектом.
Поиск обходных путей, конечно, ведется постоянно. Вместо термина AI выбран
AGI (Artificial General Intelligence), и первая международная AGI-конференция
прошла в 2008 г. В качестве стратегической цели AGI-проектов названо создание
программ с интеллектом человека и даже выше. Однако за такой формальной
технической целью скрывается грандиозная социальная концепция, имя которой -
сингулярность. Это понятие предложил Джон фон Нейман, подразумевая под сингулярностью
момент развития, после которого невозможно сформулировать более-менее
достоверный прогноз будущих событий. Сегодня под технической сингулярностью (или
просто сингулярностью) понимают ситуацию, когда компьютеры сравняются с
человеком по интеллекту, объединят через Сеть свои ресурсы в единый суперразум и
поведут себя совершенно непредсказуемым образом. Предполагается, что последние
годы перед достижением точки «непрогнозируемости» будут характеризоваться
стремительно ускоряющимся темпом развития технологий.
10
BmdtHue
Для создания современных интеллектуальных систем необходимо знать модели
представления знаний, их особенности, достоинства и недостатки. Перечисленные
модели необходимы для разработки баз знаний (БЗ), их описания, представления
и формализации для ввода в ЭВМ. С целью математической записи БЗ и ввода ее
в ЭВМ необходима теория предикатов
Для разработки механизмов логического вывода необходимо проанализировать
и выбрать методы поиска решений, а также рассмотреть теорию высказываний и
различные подходы использования аксиоматической системы с целью обобщения и
абстрагирования, теорем и принципов дедукции резолюций. В результате
использования перечисленных понятий получается более гибкая, интеллектуальная система.
В учебном пособии рассматриваются примеры использования интегрированной
среды программирования баз знаний на языках Prolog и Visual Prolog для решения
задач ИИ. Даются рекомендации для построения баз знаний.
Уделяется внимание нейронным сетям как одному из перспективных
направлений СИИ, в том числе и универсальным СИИ (УСИИ). Приводятся примеры
моделирования СИИ на базе современных отечественных нейромикропроцессорах
семейства NM 640Х.
В работе приводится понятие экспертной системы (ЭС), классификация ЭС
и примеры использования и разработки ЭС в различных направлениях народного
хозяйства: медицине, вычислительной техники, геологии, химии, биологии и др.
Для построения более интеллектуальных систем нового поколения
рассматривается представление нечетких знаний, описывается основная теория и приводятся
примеры разработки ЭС.
Современные подходы к созданию перспективных СИИ и УСИИ связаны с
использованием квантовых компьютеров, разрабатываемых как в России, так и за
рубежом.
1. ИСТОРИЧЕСКИЕ ТЕНДЕНЦИИ РАЗВИТИЯ
ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
«Искусственный интеллект», который, по прогнозам время от времени пишущих
на футурологические темы журналистов, должен появиться в этом столетии, на
самом деле уже существует несколько десятков лет. Он представляет собою не
таинственный рукотворный мозг, упрятанный в стальную голову робота или занимающий
несколько этажей строго засекреченного здания, а науку, сложную, разветвленную,
имеющую свою достаточно долгую историю разочарований и достижений.
Искусственный интеллект - направление информатики, целью которого является
разработка аппаратно-программных средств, позволяющих пользователю - не программисту
ставить и решать свои традиционно считающиеся интеллектуальными задачи,
общаясь с ЭВМ на ограниченном подмножестве естественного языка.
1.1. Предыстория искусственного интеллекта
Идея создания искусственного подобия человека для решения сложных задач
и моделирования человеческого разума витала в воздухе еще в древнейшие времена.
В Древнем Египте была создана «оживающая» механическая статуя бога Амона.
У Гомера в «Илиаде» бог Гефест ковал человекоподобные существа-автоматы. В
литературе эта идея обыгрывалась многократно: от Галатеи Пигмалиона до Буратино
папы Карло. Однако родоначальником ИИ считается средневековый испанский
философ, математик и поэт Раймонд Луллий, который еще в XIII в. попытался создать
механическую машину для решения различных задач на основе разработанной им
всеобщей классификации понятий.
Позже Лейбниц и Декарт независимо друг от друга продолжили эту идею,
предложив универсальные языки классификации всех наук. Эти работы можно считать
первыми теоретическими работами в области ИИ.
Окончательное рождение ИИ как научного направления произошло только после
создания ЭВМ в 40-х гг. XX в. В это же время Норберт Винер создал свои
основополагающие работы по новой науке - кибернетике.
Термин «искусственный интеллект» - (ИИ, AI - artificial intelligence) был
предложен в 1956 г. на семинаре с аналогичным названием в Дартсмутском колледже
(США). Семинар был посвящен разработке методов решения логических, а не
вычислительных задач. В английском языке данное словосочетание не имеет той слегка
фантастической антропоморфной окраски, которую оно приобрело в довольно
неудачном русском переводе. Слово intelligence означает «умение рассуждать
разумно», а вовсе не «интеллект», для которого есть английский аналог: intellect.
Исследования в области ИИ, первоначально были сосредоточены в нескольких
университетских центрах США (Массачусетском технологическом институте,
Технологическом институте Карнеги в Питтсбурге, Станфордском университете) и России
(МГУ, МВТУ, МИФИ). В настоящее время ведутся исследования во многих других
университетах и корпорациях США, России и других стран. В общем,
исследователей ИИ, работающих над созданием мыслящих машин, можно разделить на две
группы. Одних интересует чистая наука и для них компьютер - лишь инструмент,
12
У. Исторические тенденции развития искусственного интеллекта
обеспечивающий возможность экспериментальной проверки теорий процессов
мышления. Интересы другой группы лежат в области техники: они стремятся расширить сферу
применения компьютеров и облегчить пользование ими. Многие представители второй
группы мало заботятся о выяснении механизма мышления - они полагают, что для их
работы это едва ли более полезно, чем изучение полета птиц и самолетостроения.
1.2. от логики к кибернетике
Человек всегда старался понять, как он мыслит, по каким законам и правилам
строятся его рассуждения, в чем гарантия истинности его умозаключений. Логика -
древнейшая из наук. Законы, открытые еще Аристотелем (IV в. до н. э.), верны
и поныне и лежат в основе современной формальной логики. В XX в. логика как
наука приобретает второе дыхание - она становится наукой... технической: по законам
формальной логики строятся электрические схемы элементов и узлов ЭВМ, позволяя
им решать не только математические, но и чисто логические задачи. Все это в какой-то
мере моделировало интеллектуальную деятельность человека. Но хотелось большего.
Искусственный интеллект появился на базе вычислительной техники,
математической логики, программирования, психологии, лингвистики, нейрофизиологии и др.
С появлением и совершенствованием вычислительной техники появилась
возможность решать не только задачи вычислительного характера, но и различные
логические задачи, играть в шахматы с компьютером, создавать различные игровые
программы, музыкальные мелодии, распознавать образы и управлять различными
объектами, переводить с одного языка на другой и доказывать теоремы.
Вскоре после признания ИИ отдельной областью науки произошло разделение
его на 2 направления: нейрокибернетика и «кибернетика черного ящика». Эти
направления развиваются практически независимо, существенно различаясь как в
методологии, так и в технологии. И только в настоящее время стали заметны тенденции
к объединению этих частей вновь в единое целое.
1.3. Нейрокибернетика
Основную идею этого направления можно сформулировать следующим образом:
единственный объект, способный мыслить, - это человеческий мозг. Поэтому любое
мыслящее устройство должно каким-то образом воспроизводить его структуру.
Таким образом, нейрокибернетика ориентирована на программно-аппаратное
моделирование структур, подобных структуре мозга. Усилия нейрокибернетики были
сосредоточены на создании элементов, аналогичных нейронам, и их объединении в
функционирующие системы, т. е. в нейронные сети. Первые нейросети были созданы
в 1956-65 гг. Это были не очень удачные попытки создать системы, моделирующие
человеческий глаз и его взаимодействие с мозгом. Постепенно в 1970-80 гг.
количество работ по этому направлению ИИ стало снижаться. Слишком неутешительны
были первые результаты. Авторы объясняли неудачи малой памятью и низким
быстродействием существующих в то время компьютеров.
Однако в Японии в рамках проекта «ЭВМ V поколения» был создан первый
нейрокомпьютер, или компьютер VI поколения. К этому времени ограничения по памяти
и быстродействию были практически сняты. Появились транспьютеры -
параллельные компьютеры с большим количеством процессоров.
1.5. Основные этапы развития систем искусственного интеллекта
13
Транспьютерная технология - это только один из десятка новых подходов к
аппаратной реализации нейросетей, которые моделируют иерархическую структуру
мозга человека.
Сегодня можно выделить 3 подхода к созданию нейросетей: аппаратный
(создание специальных компьютеров, нейрочипов, плат расширения, наборов микросхем);
программный (создание программ и инструментариев, рассчитанных на
высокопроизводительные компьютеры; сети создаются в памяти компьютера, всю работу
выполняют его собственные процессоры); гибридный (комбинации первых двух).
1.4. Кибернетика «черного ящика»
и искусственный интеллект
В основу этого подхода положен принцип, противоположный нейрокибернетике.
Не имеет значения, как устроено «мыслящее» устройство. Главное, чтобы на
заданные входные воздействия оно реагировало так же, как человеческий мозг.
Сторонники этого направления мотивировали свой подход тем, что человек
не должен слепо следовать природе в своих научных и технологических поисках.
Вспомним, что колеса в природе нет. К тому же пограничные науки о человеке не
смогли внести существенного теоретического вклада, объясняющего хотя бы
приблизительно, как протекают интеллектуальные процессы у человека, как устроена
память и как человек познает окружающий мир.
Это направление ИИ было ориентировано на поиски алгоритмов решения
интеллектуальных задач на существующих моделях компьютеров. Существенный вклад
в становление новой науки внесли ее пионеры: Маккарти, Минский, Ньюэлл,
Саймон, Шоу, Хант и др.
Искусственный интеллект становится одной из наиболее перспективных и
престижных областей информатики.
1.5. Основные этапы развития систем
искусственного интеллекта
История развития СИИ начинается с середины 50-х гг. и связана с уровнем
развития вычислительной техники. Условно можно выделить 7 этапов развития ИИ,
каждый из которых связывается с определенным уровнем развития ИИ и парадигмой,
реализуемой в конкретной системе.
Парадигма - новая идея математического описания работы СИИ.
Эти этапы наглядно представлены в табл. 1.1.
Таблица 1.1. Основные этапы развития СИИ
Годы
Парадигма
Исполнитель
Системы
50-е
Нейрон и нейронные
сети
Маккалох, Винер,
Розенблат, Липунов А. А.
Perceptron, автоматы
и мышление
14
/. Исторические тенденции развития искусственного интеллекта
Окончание табл. 1.1
Годы
Парадигма
Исполнитель
Системы
60-е
Эвристический
поиск
Ньюэлл, Саймон, К.
Шеннон, Тьюринг,
Глушков В. М., Берг А. И.
GPS, кибернетика
70-е
Представление
знаний
Шортлив, Минский,
Поспелов Д. А.
Mycin-мед. Экспертная
система, ситуационное
управление
80-е
Обучающие
машины, САПР
Шпат, Холланд
CAD (Computer-aided design),
EURISCO
90-е
Автоматизированные
обрабатывающие
центры
ЧПУ (числовое программное
управление)
2000
Робототехника
Различные роботы
Японии,САО,САЕ,САЫ,
CAQ
2008
Сингулярность
AGI (Artificial General
Intelligence)
Проследим вкратце эволюцию развития «интеллекта» ЭВМ (машинного
интеллекта). В ней можно выделить несколько принципиально различных этапов развития.
Этап 1 (50-е годы). Он связан с появлением первых машин последовательного
действия, с очень небольшими, по сегодняшним меркам, ресурсными возможностями
по памяти, быстродействию и классам решаемых задач. Это были задачи сугубо
вычислительного характера, для которых были известны схемы решений и которые
можно описать на некотором формальном языке. К этому же классу относятся и задачи
на адаптацию.
Таким образом, первый этап эволюции «интеллекта» ЭВМ соответствовал
формированию вычислительного «интеллекта», который носил чисто алгоритмический
характер и достаточно просто поддавался формализации и программированию.
Поэтому при разработке систем автоматизации различных видов деятельности человека
необходимо было: выделить задачи расчетного характера, увязать их в определенную
систему, построить формальные математические модели, подобрать методы
решения, запрограммировать, проверить на адекватность и соответствие результатам
деятельности человека и затем использовать в практической работе. Можно сказать, что
такого рода автоматизация носила фрагментарный (точечный) характер и,
естественно, быстро перестала удовлетворять реальным потребностям. Недостатком такого
рода алгоритмов было то, что в них в едином алгоритмическом процессе
переплетались данные входные и промежуточные с операторами их обработки (действиями).
И отделить данные от процессов их преобразования (знаний о процессах обработки)
было невозможно. Это создавало огромные потребности в программистах и
необходимость постоянного «дотягивания» программ до постоянно меняющихся
алгоритмов. И даже с появлением алгоритмических языков, которые повышали
производительность труда программистов не менее чем на порядок, ситуация принципиально
не изменилась.
7.5. Основные этапы развития систем искусственного интеллекта
15
Этап 2 (60-е годы). По мере развития возможностей ЭВМ и их насыщения
усложнялись задачи и осознавались новые рутинные виды деятельности, которые
хотелось передать машине. В частности, был осознан новый класс задач, решаемых
человеком постоянно. Это были задачи поиска и сортировки информации, работа с БД.
В «интеллект» машины добавились механизмы поиска, сортировки, простейшие
операции по обобщению информации, не зависящие от смысла обрабатываемых данных.
Это стало новой точкой отсчета в развитии и понимании задач автоматизации
деятельности человека. Можно сказать, что с этого момента и началась эпоха массовой
автоматизации систем управления, проектирования, управления технологическими
процессами и т. п., продолжавшаяся до конца 80-х годов.
Практически параллельно в мире (США, Англия) развивалось научное
направление, идеи которого принципиально отличались от принятых. Задачи этого класса
характеризуются отсутствием априори известных схем решения, даже при условии
привлечения дополнительных знаний о предметной области. Поэтому для решения
таких задач используются сложные иерархические построения и программы,
имитирующие механизмы мышления человека. Этот класс задач было принято считать
интеллектуальным, а методы их решения стали развиваться в рамках научного
направления, получившего название эвристического программирования. Его сторонники
(Саймон А., Шоу Дж., Гелентер Г. и др.) считали, что интеллектуальной можно
называть только ту программу, которая обладает механизмом логического вывода и
которая на его основе способна самостоятельно синтезировать алгоритмы решения задач.
При этом под решением задач понимался такой алгоритм, выполнение которого
переводит объект управления (процесс, среду и т. п.) из начального состояния в целевое.
Этот алгоритм необходимо было каждый раз синтезировать автоматически
на основе описания пространства состояний задачи. При этом в качестве прототипа
модели механизма мышления использовалась теория логического вывода, хорошо
разработанная в метаматематике.
На этом пути были достигнуты фундаментальные для теории ИИ результаты:
апробирован и исследован механизм логического вывода и разработаны программы
автоматического доказательства теорем в логике, арифметике, планиметрии; получены
новые методы и алгоритмы, ускоряющие процесс логического вывода и сделавшие
возможным его эффективную реализацию на ЭВМ и др. Именно в рамках
эвристического программирования были разработаны: теория построения пространства
состояний; методы поиска решений в нем (лабиринтная гипотеза); наработаны
универсальные эвристики разбиения задачи на подзадачи и сокращения пространства
поиска решений.
Это стало основой новых методов, языков программирования и моделей
постановки и решения оптимизационных задач в математическом программировании
(методы скорейшего спуска, ветвей и границ и др.), в распознавании образов.
Другим важнейшим результатом этого этапа развития ИИ стало понимание
возможности разделения данных и механизмов их обработки в рамках формальных
моделей представления знаний. Развитие этого направления стимулировалось наличием
социального заказа в США, Японии и Европе на создание интеллектуальных роботов
для исследования космического пространства и новых планет, для работы в
недоступных или опасных для человека средах. Построить искусственный разум робота
16
У. Исторические тенденции развития искусственного интеллекта
для таких целей невозможно было на основе вычислительного и поискового
интеллектов. Нужен был принципиально новый подход, который развивался бы в рамках
эвристического программирования и моделирования нейронных сетей (персептро-
нов). Исследования проводились на задачах: на кубиках (планирование поведения
роботов при сборке простейших конструкций), на построение пространства
состояний и поиск в нем решений для игр (крестики - нолики, шашки, шахматы и т. п.).
В рамках этих исследований появились понятия: модель предметной области,
пространство состояний и поиска решений, модель представления знаний, стратегии
вывода и др., которые и составили в дальнейшем предмет нового научного
направления под общим названием «искусственный интеллект». Таким образом, третий этап
развития обогатил «интеллект» машины логикой (логическим выводом) как одним
из основных механизмов мышления человека.
Этап 3 (70-е годы). В конце 70-х годов в мире даже наметился некоторый
«кризис жанра», поскольку огромные вложения не приводили к сколько-нибудь
убедительным практическим результатам. Это продолжалось до тех пор, пока учеными не
была осознана важность знаний (по объему и содержанию) для синтеза интересных
алгоритмов решения задач. При этом имелись в виду знания, с которыми математика
не умела работать, т. е. опытные знания, не носящие строгого формального характера
и описываемые обычно в декларативной форме. Это знания специалистов в
различных областях деятельности, врачей, химиков, исследователей и т. п. Такие знания
получили название экспертных знаний, и соответственно системы, работающие на
основе экспертных знаний, стали называться системами-консультантами или
экспертными системами (не путать с экспертными оценками - это совсем другое).
В рамках экспертных систем как важнейшего типа систем ИИ произошло
соединение неформально описываемых знаний с механизмами логического вывода и
другими методами, разработанными в рамках эвристического программирования.
Это дало потрясающий эффект в виде экспертных систем для самых различных
направлений деятельности, к которым ранее никакие математические формализации
не подходили: медицина, химия, геология, управление и т. д. Именно в рамках
экспертных систем были разработаны неформальные модели представления знаний,
модели вывода в различных представлениях, псевдофизические логики, логика
рассуждений или логика правдоподобного вывода и т. п.
Этап 4 (80-е годы). Четвертый этап развития ИИ стал прорывным. С появлением
экспертных систем в мире начался принципиально новый этап развития
интеллектуальных технологий - эра интеллектуальных систем - консультантов, которые
предлагали варианты решений, обосновывали их, способны были к обучению и,
следовательно, к развитию, общались с человеком на привычном для него, хотя и
ограниченном, естественном языке. Знания стали товаром. Носителей систем знаний называли
экспертами. Человечество получило возможность сохранять и накапливать базы
знаний отдельных специалистов (или групп специалистов) в определенной области.
Знания стало возможным собирать, тиражировать, проектировать, сделать
доступными для всех заинтересованных в нем людей. Появилась новая профессия -
«инженер по знаниям» или «инженер - когнитолог».
1.5. Основные этапы развития систем искусственного интеллекта
17
Этап 5 (90-е годы). Усложнение систем связи и решаемых задач потребовало
качественно нового уровня «интеллектуальности» обеспечивающих программных
систем, таких систем, как защита от несанкционированного доступа, информационная
безопасность ресурсов, защита от нападений, смысловой анализ и поиск информации
в сетях и т. п. И новой парадигмой создания перспективных систем защиты всех
видов стали интеллектуальные системы. Именно они позволяют создавать гибкие
среды, в рамках которых обеспечивается решение всех необходимых задач. Это новое
направление получило название мультиагентных систем. Каждый агент имеет свою
систему целеполагания и мотивации, свою область действий и ответственности, а
взаимодействие между ними обеспечивается метаинтеллектом. В рамках такого ос-
.мысления традиционные методы, алгоритмы и программы становятся
элементарными «кирпичиками», из которых строятся затем алгоритмы и решения возникающих
задач. Таким образом, моделируется некоторое виртуальное сообщество
интеллектуальных агентов-систем, которые автономны, активны, вступают в различные
«социальные» отношения - кооперации и сотрудничества (дружбы), конкуренции,
соревнования, вражды и т. п. Этот «социальный» аспект решения задач -
фундаментальная особенность концептуальной новизны передовых информационных технологий,
искусственных (виртуальных) организаций, виртуального общества.
Уже сегодня мультиагентные системы находят широчайшее применение для:
распределенного решения сложных задач, совмещенного проектирования изделий,
построения виртуальных предприятий, моделирования больших производственных
систем и электронной торговли, электронной разработки сложных компьютерных
систем, управления системами знаний и информации и т. п. Мы являемся
свидетелями триумфального шествия по миру интеллектуальных информационных технологий
(ИИТ), основанных на идеях экспертных систем и мультиагентности. Именно они
делают цивилизованные страны практически недосягаемыми для других, пока еще
только развивающихся, стран. Именно ИИТ сегодня в мире являются источником
глобальной власти и материального благополучия.
Этап 6 (2000-е годы). Область применения роботов достаточно широка и
простирается от автономных газонокосилок и пылесосов до современных образцов
военной и космической техники. Модели оборудованы навигационной системой и
всевозможными периферийными датчиками. Роботы-пьшесосы перемещаются по
квартире по случайным траекториям, собирая мусор и объезжая статические предметы, и
удирают от движущихся объектов (людей и животных). Современным роботом
является «интеллектуальный дом», который осуществляет не только управление
доступом к жилищу по дактилоскопическим и биометрическим данным, но и удаленное
управление бытовой техникой, составляющей специализированную вычислительную
сеть. Кроме того, такой «интеллектуальный дом» решает задачи многоуровневой
защиты от несанкционированного доступа с возможностью имитации элемента
присутствия.
Известны беспилотные самолеты, луноходы и другие автономные средства
космического назначения.
18
/. Исторические тенденции развития искусственного интеллекта
Промежуточную роль занимают различного рода манипуляторы и
обрабатывающие центры, например роботизированные производства на автомобильных гигантах
Ford, GM, ВАЗ и др.
Этап 7 (год 2008). В 1993 году на симпозиуме VISION-21, который проводился
Центром космических исследований NASA им. Льюиса и Аэрокосмическим
институтом Огайо, была представлена статья «Грядущая технологическая сингулярность: как
выжить в пост-человеческую эру» (The Coming Technological Singularity: How
to Survive in the Post-Human Era). Автором доклада был математик и писатель Вернор
Виндж (Vernor Vinge). В 2003 г. автор дополнил эту статью некоторыми
комментариями. Статья была написана более десяти лет назад, но актуальна до сих пор.
Те комментарии, которые внес автор спустя десять лет после первоначального
написания, лишь дополняют первоначальную статью.
2. УНИВЕРСАЛЬНЫЙ ИСКУССТВЕННЫЙ
ИНТЕЛЛЕКТ-ТЕНДЕНЦИИ РАЗВИТИЯ
2.1. Универсальный искусственный интеллект
Около 50 лет назад область ИИ была прямо нацелена на создание «думающей
машины» - компьютерной системы с подобным человеку интеллектом. Весь
комплект, упакованный всеми позывами, такими как личностные качества, желание,
внимание, креативность и т. д.
Но эта цель трудно достигаема, и поэтому поиски ИИ сконцентрировались в
основном на производстве системы «узко профильного искусственного интеллекта»,
т. е. софта, который проявляет интеллект относительно определенных вопросов,
касающихся узких доменов.
Эта работа «узко профильного искусственного интеллекта» часто бывает
довольно успешной. Она производится в случаях, например, игры в шахматы, где
программа может выиграть у человека, или программ, которые могут ставить диагнозы
болезней лучше, чем доктор. Созданы программы, которые переводят речь в текстовой
документ, анализируют хромосомные данные, автоматически приводят в движение
колеса, прогнозируют биржевой курс. Этот список можно продолжать и продолжать.
Фактически, основное направление софта, такое как Google и математика, использует
алгоритмы ИИ, так как в общем случае перечисленные выше алгоритмы имеют
сходство с тем, чему обучают в университетском курсе по технологии программирования.
Существует выражение, что когда одна цель достигнута средствами
компьютерного программирования, то это классифицируется как не искусственный интеллект,
и с еще большой долей сарказма убеждаемся, что есть в этом выражении правда.
Но самая суть в том, что УИИ учит нас, каким образом все эти различные
достижения в создании специализированных инструментов ИИ в реальности являются
составляющими для создания «думающей машины». Все эти достижения узко
специализированного искусственного интеллекта используются сами по себе и еще
не так далеко внедрились в процесс создания «думающей машины».
Некоторые исследователи верят в то, что УИИ, в конечном счете, приведет нас
к универсальному искусственному интеллекту. Вот что, наверное, имел в виду
основатель Google Сергей Брин, когда назвал Google компанией ИИ. Его идеи
следующие, грубо говоря: Google - УИИ, работая над поиском информации и всем тем, что
относится к теме, приведет к более умным машинам которые, в конце концов,
достигнут по настоящему схожего с человеческим по уровню осознания и понимания
интеллекта.
С другой стороны, некоторые исследователи, верят в то, что
узкоспециализированный искусственный интеллект и универсальный искусственный интеллект
являются абсолютно разными в своем значении. В перспективе, если универсальный
интеллект является целью, то необходимо его переориентировать в главную цель этой
области - переход от узкоспециализированных проблем к решению более сложных
вопросов человеческого интеллекта и уровням человеческого интеллекта. Согласно
этому мнению, некоторые исследователи ИИ стали использовать термин универсаль-
20
2. Универсальный искусственный интеллект тенденции развития
ный искусственный интеллект или УИИ, чтобы отличить работу, нацеленную на
разработку универсального искусственного интеллекта, от узко профильных проблем.
Некоторая часть работы, сделанная уже по узко специализированному
искусственному интеллекту, может сыграть важную роль в разработке универсального
искусственного интеллекта, но в его перспективе для максимального применения
необходимо искусственный интеллект использовать немного по-другому.
2.2. Общие направления развития
искусственного интеллекта
Искусственный интеллект возник еще со времен легенды о Пигмалионе как
поэтическое восхищение человечества перед искусственными разумными существами
(пример: «Говорящая голова» - «Руслан и Людмила»). Основное развитие
искусственный интеллект получил в 50-е гг. XX в. с появлением ЭВМ, так как появился
инструментарий для реализации СИИ.
В 1945 г. была создана первая ЭВМ «ЭНИАК» учеными и студентами
Гарвардского университета. В СССР первая ЭВМ - малая электронно-счетная машина
(МЭСМ) была разработана учеными и дипломниками МЭИ под руководством
С.А. Лебедева в 1947 г. Разработка этой машины послужила основой создания ИТМ
и ВТ, который сейчас носит имя С.А. Лебедева. Учеными были созданы мощные
вычислительные комплексы БЭСМ 2,4 Эльбрус 1, Эльбрус 2. В настоящее время
разработан микропроцессор ELBRUS Е2К (Е2000) как представитель микропроцессоров
восьмого поколения.
Часть работ Эльбруса - микропроцессор Pentium с суперскалярной структурой,
которая была заложена Лебедевым в 1972 г. и реализована в 1990 г. Параллельно
созданию универсальных ЭВМ ученые занимаются созданием компьютеров,
действующих по принципу человеческого разума и способных заменить человека. Такие
вновь создаваемые системы стали называться системами искусственного интеллекта.
Согласно прогнозам западных и отечественных ученых современное развитие
вычислительной техники с элементами ИИ ведет к новой информационной
революции, сравнимой по масштабам с Internet. Системы искусственного интеллекта
являются «горячей» точкой в современных исследованиях, так как они предназначены
для создания суперкомпьютеров, являющихся стратегическим потенциалом любого
государства.
В настоящее время данные о суперкомпьютерах (WWW.Top 500) публикуются
каждые полгода. В 2004 г. пальма первенства принадлежала «Симулятору Земли»,
разработанному японской фирмой NEC и содержащему около 300 микропроцессоров
(«Симулятор Земли» анализирует климатические условия Земли).
Системы искусственного интеллекта являются актуальной задачей исследований,
так как в этой области сконцентрировано наибольшее количество ученых разных
направлений: медики, биологи, информатики и другие. В процессе разработки новые
методы научных междисциплинных исследований.
Кроме того, в процессе создания СИИ обнаруживаются проблемы, выходящие
далеко за пределы традиционных направлений информатики, физики, биологии и пр.
2.2. Общие направления развития искусственного интеллекта
21
Создание машин, имитирующих работу человеческого мозга, требует новых
подходов к методам исследования, проектирования, разработки и создания современных
вычислительных систем.
В настоящее время существует 3 концепции создания ИИ:
1. Часть ученых полагает, что интеллект - это умение решать сложные задачи.
2. Другие считают, что интеллект - способность систем к обучению.
3. Третьи уверены, что интеллект - это возможность взаимодействовать с внешним
миром путем общения - восприятия и осознания воспринятого.
Однако обобщением всех трех концепций является мнение одного из
основоположников вычислительной техники Алана Тьюринга, который полагает, что
компьютер или СИИ можно считать разумными, если они способны заставить нас поверить,
что мы имеем дело не с машиной, а с человеком.
Примерами таких систем являются шахматные программы Blue 2, Blue 3, с
которыми сразился чемпион мира Гарри Каспаров.
В настоящее время существует 3 подхода к моделированию СИИ:
1. Машинный интеллект заключается в строгом задании результатов
функционирования.
2. Создание СИИ направленно на моделирование внутренней структуры системы.
3. Комбинированный подход как сочетание двух вышеперечисленных.
Разделение на указанные подходы связано с 2 основными точками зрения на
вопрос: как строить СИИ?
1. Важнее всего получить результат, т. е. главным является совпадение поведения
искусственно созданного интеллекта с реально существующим, при этом не
учитывается внутренний механизм формирования поведения, т. е. СИИ представляет
собой «черный ящик».
2. Изучение механизмов естественного мышления и анализ данных о способах
разумного поведения могут создать основу для построения СИИ, т. е.
моделирование воспроизведения техническими средствами принципов и конкретных
особенностей функционирования является главным.
Таким образом, СИИ строятся по следующему алгоритму:
1) анализируются способы разумного поведения, которые записываются
математически;
2) реализуются реальными техническими средствами;
3) воплощаются в виде реальных систем.
Выделяют 2 основных направления:
Согласно первому направлению рассматривают продукты интеллектуальной
деятельности человека и стремятся воспроизвести их средствами вычислительной
техники. При этом моделирование систем достигается за счет использования законов
формальной логики, теории четких и нечетких множеств, графов, семантических
сетей и других моделей. Основные результаты машинного интеллекта заключаются
в создании экспертных систем и систем разбора естественного языка.
Согласно второму направлению рассматриваются данные на уровнях
физиологических, нейропсихических и психических механизмов для реализации этих
механизмов в виде СИИ. В этом случае ученые стараются их воспроизвести с помощью
22
2. Универсальный искусственный интеллект тенденции развития
технических устройств, аппаратной или программной реализации. В дальнейшем
рассмотрение СИИ будет базироваться на математической интерпретации работы
нервной системы во главе с мозгом человека и реализации СИИ в виде нейроподоб-
ных сетей на базе нейрокомпьютера. Это является одним из перспективных
направлений.
2.3. Искусственный интеллект в России
В 1954 г. в МГУ начал работу семинар «Автоматы и мышление» под
руководством академика А.А. Ляпунова (1911-1973), одного из основателей российской
кибернетики. В этом семинаре принимали участие физиологи, лингвисты, психологи,
математики. Принято считать, что именно в это время родился искусственный
интеллект в России. Как и за рубежом, выделились 2 основных направления - нейрокибер-
нетики и кибернетики «черного ящика».
В 1954-64 гг. создаются отдельные программы и проводятся исследования в
области поиска решения логических задач. В ЛОМИ - Ленинградском отделении
Математического института им. Стеклова - создается программа АЛПЕВ ЛОМИ,
автоматически доказывающая теоремы. Она основана на оригинальном обратном выводе
Маслова, аналогичном методу резолюций Робинсона. Среди наиболее значимых
результатов, полученных отечественными учеными в 60-е гг., следует отметить
алгоритм «Кора» М.М. Бонгарда, моделирующий деятельность человеческого мозга при
распознавании образов. Большой вклад в становление российской школы
искусственного интеллекта внесли выдающиеся ученые М.Л. Цетлин, В.Н. Пушкин,
М.А. Гаврилов, чьи ученики и явились пионерами этой науки в России.
В 1965-80 гг. происходит рождение нового направления - ситуационного
(соответствует представлению знаний - в западной терминологии). Основателем этой
научной школы стал проф. Д. А. Поспелов. Были разработаны специальные модели
представления ситуаций - представления знаний.
При том, что отношение к новым наукам в советской России всегда было
настороженное, наука с «вызывающим» названием тоже не избежала этой участи и была
встречена в Академии наук в штыки. К счастью, даже среди членов Академии наук
СССР нашлись люди, не испугавшиеся столь необычного словосочетания в качестве
названия нового научного направления.
Только в 1974 г. при Комитете по системному анализу при Президиуме АН СССР
был создан научный Совет по проблеме «Искусственный интеллект», его возглавил
Г.С. Поспелов.
По инициативе Совета было организовано 5 комплексных научных проектов,
которые были возглавлены ведущими специалистами в данной области: «Диалог»
(работы по пониманию естественного языка), «Ситуация» (ситуационное управление),
«Банк» (банки данных), «Конструктор» (поисковое конструирование), «Интеллект
робота».
В 1980-90 гг. проводятся активные исследования в области представления
знаний, разрабатываются языки представления знаний, экспертные системы. В МГУ
создается язык РЕФАЛ.
В 1988 г. создается АИИ - Ассоциация искусственного интеллекта, президентом
единогласно избирается Д.А. Поспелов, выдающийся ученый, чей вклад в развитие
ИИ в России трудно переоценить. В рамках Ассоциации проводится большое коли-
2.3. Искусственный интеллект в России
23
чество исследований, организуются школы для молодых специалистов, семинары,
симпозиумы, раз в 2 года собираются объединенные конференции, издается научный
журнал.
Уровень теоретических исследований по искусственному интеллекту в России
ничуть не ниже мирового. К сожалению, начиная с 80-х гг. на прикладных работах
начинает сказываться постепенное отставание в технологии. На данный момент
отставание в области разработки промышленных интеллектуальных систем составляет
порядка 3-5 лет.
Однако обнаружилось, что как научные, так и технические поиски столкнулись
с несоизмеримо более серьезными трудностями, чем представлялось первым
энтузиастам. На первых порах многие пионеры ИИ верили, что через какой-нибудь
десяток лет машины обретут высочайшие человеческие таланты. Предполагалось, что,
преодолев период «электронного детства» и обучившись в библиотеках всего мира,
хитроумные компьютеры, благодаря быстродействию, точности и безотказной
памяти, постепенно превзойдут своих создателей-людей. Сейчас мало кто говорит
об этом, а если и говорит, то отнюдь не считает, что подобные чудеса не за горами.
На протяжении всей своей короткой истории исследователи в области ИИ всегда
находились на переднем крае информатики. Многие ныне обычные разработки, в том
числе усовершенствованные системы программирования, текстовые редакторы
и программы распознавания образов, в значительной мере рассматриваются в
работах по ИИ. Короче говоря, теории, новые идеи, и разработки ИИ неизменно
привлекают внимание тех, кто стремится расширить области применения и возможности
компьютеров, сделать их более «дружелюбными», т. е. более похожими на разумных
помощников и активных советчиков.
По мере распространения компьютерных технологий, работа с информацией
и компьютерными агентами станет занимать все большую часть человеческой жизни.
ИИ-агенты будут помнить за человека, помогать ему в поиске и обработке
информации. Подобное «усиление разума» (intelligence amplification) - один из путей к
сверхразуму. Развитие носимых и вживляемых компьютеров приведет к тому, что
большинство людей станет окружено «экзокорой», сонмом компьютеров, по сути
выполняющих часть мыслительной работы и хранящих часть памяти своего хозяина.
Дополненная реальность будет стирать границы между внутренним миром
(воображением, памятью) и миром реальным. Человек будет воспринимать реальность уже
насыщенной дополнительной информацией - имена незнакомых людей, аргументы
собеседника, сведенные в единую систему, справочная информация, любопытные
идеи, подсказанные ИИ-агентами. Дальнейшая миниатюризация микрочипов сделает
возможной прямой интерфейс между мозгом и компьютером, обеспечивая
примитивное считывание и запись мыслей. Появление совершенных нанотехнологий и
создание субклеточных нанороботов сделает возможным считывание и запись
информации на уровне отдельного нейрона. Это даст человеку полный контроль над
собственным мозгом.
3. МЕТОДЫ ПОИСКА РЕШЕНИЙ
3.1. Основные понятия системы
искусственного интеллекта
Разработка интеллектуальных программ существенно отличается от обычного
программирования и ведется путем построения СИИ. Если обычная программа
может быть представлена в парадигме:
Программа = Алгоритм + Данные,
то для СИИ характерна другая парадигма:
СИИ = Знания + Стратегия обработки знаний.
Основным отличительным признаком СИИ является работа со знаниями. Если
для, обычных программ представление данных алгоритма определяется на уровне
описания языка программирования, то для СИИ представление знаний выливается
в проблему, связанную со многими вопросами: что такое знания, какие знания
хранить в системе в виде базы знаний (БЗ), в каком виде и сколько, как их использовать,
пополнять и т. д.
В отличие от данных знания обладают следующими свойствами:
• внутренней интерпретируемостью - вместе с информацией в БЗ представлены
информационные структуры, позволяющие не только хранить знания, но и
использовать их;
• структурированностью - выполняются декомпозиция сложных объектов на
более простые и установление связей между ними;
• связанностью - отражаются закономерности относительно фактов, процессов,
явлений и причинно-следственные отношения между ними;
• активностью - знания предполагают целенаправленное использование
информации, способность управлять информационными процессами по решению
определенных задач.
Все эти свойства знаний в конечном итоге должны обеспечить возможность СИИ
моделировать рассуждения человека при решении прикладных задач. Со знаниями
тесно связано понятие процедуры получения решений задач (стратегии обработки
знаний). В системах обработки знаний такую процедуру называют механизмом
вывода, логическим выводом или машиной вывода. Принципы построения механизма
вывода в СИИ определяются способом представления знаний и видом моделируемых
рассуждений.
Для организации взаимодействия с СИИ в ней должны быть средства общения
с пользователем, т. е. интерфейс. Интерфейс обеспечивает работу с БЗ и механизмом
вывода на языке достаточно высокого уровня, приближенном к профессиональному
языку специалистов в той прикладной области, к которой относится СИИ. Кроме
того, в функции интерфейса входит поддержка диалога пользователя с системой, что
дает пользователю возможность получать объяснения действий системы, участвовать
в поиске решения задачи, пополнять и корректировать базу знаний. Таким образом,
основными частями систем, основанных на знаниях, являются:
3.2. Классификация задач, решаемых человеком
25
1. База знаний.
2. Механизм вывода.
3. Интерфейс с пользователем.
Каждая из этих частей может быть устроена по-разному в различных системах,
отличия эти могут быть в деталях и в принципах. Однако для всех СИИ характерно
моделирование человеческих рассуждений. СИИ создаются для того, чтобы
овеществлять в рамках программно-технической системы знания и умения, которыми
обладают люди, чтобы решать задачи, относящиеся к области творческой деятельности
человека. Знания, на которые опирается человек, решая ту или иную задачу,
существенно разнородны.
Это прежде всего:
• понятийные знания (набор понятий и их взаимосвязи);
• конструктивные знания (знания о структуре и взаимодействии частей различных
объектов);
• процедурные знания (методы, алгоритмы и программы решения различных задач);
• фактографические знания (количественные и качественные характеристики
объектов, явлений и их элементов).
Особенность систем представления знаний заключается в том, что они
моделируют деятельность человека, осуществляемую часто в неформальном виде. Модели
представления знаний имеют дело с информацией, получаемой от экспертов, которая
часто носит качественный и противоречивый характер. Для обработки с помощью
ЭВМ такая информация должна быть приведена к однозначному формализованному
виду. Методологией формализованного представления знаний является логика.
3.2. классификация задач, решаемых человеком
Наша жизнь постоянно вынуждает нас принимать самые разные решения, от
простых (куда пойти, как пройти, когда^зачем и т. п.) до сложнейших. Как следует из
введения, развитие теории и практики СИИ сопровождалось постановкой все более
сложных «интеллектуальных» задач. При этом все задачи, решаемые человеком в его
практической и научной деятельности, можно подразделить на 3 основных класса.
1. Задачи, для которых были известны схемы решений и которые можно описать
на некотором формальном языке. Примером таких задач служат все задачи,
связанные с вычислениями (арифметика, алгебраические, дифференциальные,
интегральные уравнения и системы и т. п.). Для таких задач всегда существует алгоритм
решения, который обязательно приведет к искомому результату. Сюда же можно отнести
задачи, для которых нет готовых схем решений, но они могут быть найдены или
построены, если привлекаются дополнительные знания о данной предметной области
(т. е. выделенной узкой сфере деятельности). К этому же классу относятся и задачи
на адаптацию.
Именно для задач первого класса более всего были приспособлены первые ЭВМ
фоннеймановской архитектуры. Общая схема их решения в самом простом виде
выглядит так (рис. 3.1).
26
3. Методы поиска решений
АЛГОРИТМ
Рис. 3.1. Схема решения задач на ЭВМ фоннеймановской архитектуры
На входе алгоритма - значения заданных переменных хь на выходе - значение
выходных переменных yj. Все вычисления в алгоритме основаны на 4-х
арифметических действиях, как бы сложны они не были. Вычислительный характер действий
и четкий алгоритм на много лет вперед определили путь развития ЭВМ и всех систем
автоматизации. Были созданы соответствующие языки - АЛГОЛ, ФОРТРАН и др.
Только после долгих колебаний и исследований задачи этого класса все-таки
перестали относить к классу интеллектуальных.
2. Еще один класс задач, имеющих массовый характер, составляют задачи,
методология решения которых определила целую эпоху в эволюции ЭВМ. Это задачи
информационного поиска. Схема поиска решений здесь выглядит так (рис. 3.2).
А1
СИСТЕМА ПОИСКА
ИНФОРМАЦИИ
- - - >-
В БАЗЕ ДАННЫХ
Ап
Рис. 3.2. Схема решения задач информационного поиска
На входе системы - запросы абонентов А\, А2,.. An. Решением задачи является
некоторая часть базы данных (БД), соотносительная (релевантная) запросам -
В\,В2,...,Вт. При этом информация, выдаваемая в качестве результата, не
подвергается каким-либо изменениям. Она проходит лишь операции сортировки и некоторые
другие теоретико-множественные операции над символьной информацией (т. е.
информацией, представленной как в цифровой, так и в буквенной формах).
Переход к символьным задачам позволил впервые понять возможности
разделения информации и механизмов ее обработки, т. е. отделить сами БД от алгоритмов их
анализа и получения результатов. Это стало возможным благодаря заданию
синтаксических схем организации записей в БД и ориентации алгоритмов только на
синтаксическую обработку. Второй важной победой этого направления стало создание
достаточно универсальных систем управления БД с широчайшей сферой практического
применения.
3. Задачи этого класса характеризуются отсутствием априори известных схем
решения, даже при условии привлечения дополнительных знаний о предметной
области. Поэтому для решения таких задач используются сложные иерархические
построения и программы, имитирующие механизмы мышления человека. К этому
классу относятся, например, задачи планирования поведения объекта в сложных средах,
задачи принятия решений в нестандартных (нештатных) ситуациях, задачи
проектирования и конструирования, игры и т. п. Этот класс задач принято считать
интеллектуальными и именно для их решения разрабатывалась теория СИИ.
3.2. Классификация задач, решаемых человеком
27
Основные понятия и определения. Любая наука отличается от других
предметом своего исследования. В зависимости от предмета формулируются цели и задачи,
а также методы и средства их решения. Если говорить о такой науке, как
искусственный интеллект, то в самом ее названии выделен объект исследования - интеллект, и
основная ее задача - создание некоторого подобия «живого» интеллекта
искусственными средствами. Искусственные средства известны были сразу - ЭВМ, включая
всякие периферийные устройства, с помощью которых могут создаваться
искусственные аналоги всего того, что может относиться к классу интеллектуального.
Остается понять, что относить к классу интеллектуального, т. е. какие мыслительные
процессы, выполняемые человеком, можно считать интеллектуальными, а какие нет.
Выше мы уже видели, что после долгих размышлений и колебаний к классу
интеллектуальных, в конце концов, отнесли все задачи, алгоритм решения которых заранее
неизвестен. Это и задачи распознавания образов, и машинный перевод с одного
языка на другой, и принятие решений в зависимости от меняющихся ситуаций и многие
другие. Все это стимулировало новые научные исследования, цель.ю которых было
определить особенности интеллектуальной деятельности человека. Было показано,
что в основе интеллектуального поведения человека лежит целый ряд метапроцедур,
действие которых инвариантно относительно конкретно решаемых задач и областей
деятельности.
В первую очередь, это метапроцедуры целенаправленного поиска, подобные
целенаправленному поиску в лабиринте возможностей, ассоциативный поиск и
ассоциативное рассуждение и др.
Поиск в лабиринте возможностей (лабиринтная гипотеза мышления) привел
к появлению целого научного направления - эвристического программирования.
Если лабиринт неизвестен, а должен порождаться, исходя из условий, конкретно
формирующихся в данной предметной области, то необходимо определить такие
метапроцедуры, которые позволили бы решить задачу. Так возникло новое научное
направление - ситуационное моделирование (Поспелов Д.А., Клыков Ю.М., Загадс-
кая Л.С., Болотова Л.С.). Это направление выделило еЩе ряд метапроцедур:
классификация ситуаций по признакам и по структурам, процедуры порождения новых
классов понятий, отношений и ситуаций и т. п.
Следующим важным шагом в развитии ИИ было осознание необходимости
внутреннего представления проблемной ситуации, что привело к выделению
метапроцедур, оперирующих с совокупностью знаний из той предметной области, к которой
принадлежит задача. Это так называемая модельная гипотеза. Основные
метапроцедуры здесь: представление знаний, их пополнение и модификация, рассуждения, поиск
релевантной (соответствующей) информации в совокупности имеющихся знаний и др.
Все перечисленные метапроцедуры в совокупности со знаниями о предметной
области составили в конце концов ядро искусственного интеллекта. Теперь мы
можем определить основные понятия, с которыми будем оперировать дальше.
Предметная область (ПО) - выделенная узкая сфера деятельности человека,
относящаяся к данной задаче.
Модель предметной области (МПО) - совокупность (система) знаний,
необходимых для автоматического синтеза алгоритма решения задачи в данной области.
Искусственный интеллект (ИИ) (artificial intelligence - AI) - совокупность
метапроцедур - представления знаний, рассуждений, поиска релевантной информации
28
3. Методы поиска решений
в среде имеющихся знаний, их пополнение, корректировка и т. п., - имитирующих
деятельность человека.
Система искусственного интеллекта (СИИ) - аппаратный и информационно-
программный комплекс, действие которого аналогично действию механизмов
мышления человека и неотличимо от решений, которые принимались бы человеком-
экспертом, т. е. профессионалом в данной предметной области.
Из этих определений следует, что любую систему ИИ отличают следующие
особенности:
• наличие модели предметной области;
• наличие моделей механизмов мышления, т. е. метапроцедур, работающих в
системе знаний, представленных моделью предметной области (в частности,
процедур логического вывода);
• наличие естественно-языкового интерфейса, обеспечивающего взаимодействие
пользователя с СИИ.
Очень часто под СИИ понимаются системы, основанные на знаниях. Раскрытию
понятия знания мы отведем особое место.
3.3. Модель предметной области
Задача, предъявленная для решения, уже по своему заданию определяет круг
объектов, действий, законов, справочных данных и т. п., необходимых для ее
решения. Если задача из области медицины, то для ее решения, очевидно, бессмысленно
закладывать (или запрашивать) данные о скорости расширения Галактики или о
запасах угля в Подмосковном бассейне. Все, что нам нужно знать для решения задачи,
как раз и составляет некую предметную область (ПО), которую мы формализуем
в виде модели предметной области (МПО) следующим образом:
МПО: (X,C,tf,G), (3.1)
где X = (хь jc2, jc„) - множество имен объектов (предметов, сущностей и т. п.
внешнего мира), с которыми мы имеем дело при решении задачи; С = (сь с2, ст) -
множество имен свойств (состояний) объектов, причем возможно, что с\ = (сц, с\2, с и),
ci - fob с22> —, с2г) и т. д. Эти свойства могут меняться под действием некоторых
операторов; R = (rl, г2, ...,г„) - множество имен отношений, в которые могут
вступать объекты моделируемой ПО; G = (#1, #2, gk) - множество имен операций
(действий), которые допустимы с этими объектами через изменение их свойств и
отношений между ними.
Допустим, мы описываем предметную область задачи о сборе яблок. Тогда
множество Х-объекты: ЯБЛОКО, ЛЕСТНИЦА, КОРЗИНА, ЯЩИК;
• множество С - свойства (состояния) объектов:
♦ для ЯБЛОКА - сорвано, уложено, отброшено;
♦ для ЛЕСТНИЦЫ - лежит, стоит;
♦ для КОРЗИНЫ - полна, пуста;
♦ для ЯЩИКА - брошен, уложен;
3.3. Модель предметной области
29
• множество R - отношения:
♦ ЯБЛОКО - НА ветке, В корзине;
♦ ЛЕСТНИЦА - У дерева, ПОД деревом;
♦ КОРЗИНА-НА лестнице, У ящика;
♦ ЯЩИК - У дороги;
• множество G - действия (операторы):
♦ gl - поставить (ЛЕСТНИЦУ),
♦ g2 - повесить (КОРЗИНУ),
♦ #3 - сорвать (ЯБЛОКО),
♦ #4 - положить (ЯБЛОКО в корзину),
♦ #5 - наполнить (КОРЗИНУ),
♦ gЬ-ynoжmъ(ЯЩИK),
♦ gl- перенести (ЯЩИК к дороге) и т. п.
Выделенные множества X, С, R, G позволяют представлять предметную область
в виде некоторого языкового эквивалента, степень адекватности которого реальному
миру зависит от множества факторов: сложности задач, числа задач, сложности
самой ПО (число объектов, свойств, отношений, их семантика и т. д.).
Говорят, что множества X, С, R, G задают концептуальную модель предметной
области. Они определяют ее статическую структуру. Для перехода к модели
предметной области необходимо задать пространство состояний.
Говоря о модели ПО, мы отдаем себе отчет в том, что состояние ПО вообще-то
непостоянно, оно может меняться со временем, и поэтому правильнее было бы
говорить о состоянии предметной области в данный момент времени.
Определим состояние ПО следующим образом:
Выражение (3.2) описывает ситуацию, сложившуюся в ПО в данный момент
времени. В зависимости от этой ситуации на момент t е (Шач, tKon) человек (или
робот) выбирает из множества G возможных операций именно те действия, которые
необходимы для решения задачи. Если теперь обозначить через F отображение Sno(t)
на множество G, то правомерно написать:
Другими словами, сама предметная область выступает здесь в качестве
пассивного элемента действия (объекта преобразования), а человек или система, его
заменяющая, - в качестве преобразователя (субъекта действия). Таким образом,
отображается связь между языковым описанием ПО, ее состоянием (декларативная
компонента), с одной стороны, и именами действий, выражающих процедурное знание
(процедурная компонента), - с другой. Состояние предметной области проектируется
на множество действий.
3.3.1. Процедура решения задачи
Исходя из сказанного определим теперь понятия «задача», «решение»,
«алгоритм».
Sno(t): (X(t),C(t),R(t)).
(3.2)
F: ((X(t), C(t), R(t) ) —> G).
(3.3)
30
3. Методы поиска решений
Обозначим начальное состояние ПО через Sh. Задача заключается в том, чтобы
перевести предметную область из состояния Sh в некоторое заданное, определяемое
как целевое (Su). Очевидно, сделать это возможно, лишь применяя допустимые
в данной предметной области действия из множества G = (gl, gl, gk). Какие
выбрать операции gi и в какой последовательности - неизвестно. В этом как раз и
состоит решение задачи. Схема решения, таким образом, выражается формулой:
Z=(Sw —£->Su). (3.4)
Допустим, оператором gl, взятым из множества G, мы перевели состояние Sh
в S\, но оно не совпало с % т. е. 5i= gi(Sw), Si Ф Su. Для перевода S\ в состояние S2
применим оператор g2 е G: S2 = g2(Si) и, если S2 снова не совпадет с Su, обратимся
к оператору g3, чтобы получить состояние 53 и оценить его, сравнивая с Su. И т. д.,
пока не найдется такой gj, что Sj = gj(Sj.i) и Sj = Su. Описанный путь поиска решения
можно отобразить следующей цепочкой:
S„_Il-> 5,—*г-> 52—... —b±^>Sj=Su. (3.5)
То же самое можно написать по-другому:
S4 = gj(gj-i Cto (*2<*i cs*0))...)».
Последовательность (gb g2, g3, g/) как раз и будет представлять из себя
алгоритм решения задачи.
Отметим, что перевод Sh -»St/ возможен не единственным способом. В этом
случае можно ставить задачу об оптимизации решения. Рассмотрим примеры
построения модели предметной области и решения задачи.
3.3.2. Примеры решения задач
Пример 1. Рассмотрим широко известную задачу об обезьяне и бананах [7].
В комнате, где находится обезьяна, имеются ящик и связка бананов, причем бананы
подвешены к потолку настолько высоко, что обезьяна не может дотянуться до них
с пола. Какую последовательность действий должна совершить обезьяна, чтобы
достать эти бананы? (Предполагается, что она должна догадаться подтащить ящик к
бананам, взобраться на него и дотянуться до них.)
Построим модель данной предметной области.
• Х- имена предметов и объектов МПО:
♦ ОБЕЗЬЯНА (далее О),
♦ ЯЩИК (Я),
♦ БАНАНЫ (Б);
• С - координаты О, Я, Б в комнате - по горизонтали и вертикали. Значение
координат - произвольное множество точек комнаты: а, Ь, с,... (допустим, что это
множество конечно).
• R - имена отношений между объектами: РЯДОМ(0, Я), т. е. обезьяна находится
у ящика; НА(0, Я) - обезьяна на ящике, наконец, В(0, Б) - бананы в руках обезь-
3.3. Модель предметной области
31
яны. Очевидно, что возможны отрицания этих отношений: НЕ-РЯДОМ(0, Я),
НЕ-В(0, Б), НЕ-НА(0, Я) или иначе: РЯДОМ (О, Я), 1з(0,Б), Ш(0,Я).
• G - имена действий, которые может выполнить обезьяна:
♦ ПОДОЙТИ (О, Я) = gl .обезьяне подойти к ящику;
♦ ПЕРЕДВИНУТЬ (О, Я) = g2- обезьяне передвинуть ящик;
♦ ВЗОБРА ТЬСЯ (О, Я) = g3 . обезьяне взобраться на ящик;
♦ СХВАТИТЬ (О, E) = g4- обезьяне схватить бананы.
♦ ПЕРЕЙТИ (О, d) = g5 - обезьяне перейти в точку с двумерной координатой
d(e,f,m...).
Все действия имеют в качестве аргументов объекты МПО, а субъект здесь
единственный - обезьяна. Оператор g5 отображает возможные перемещения обезьяны
по комнате без ящика. Пока он нам не пригодится, но в дальнейшем будет полезен.
Теперь нам необходимо построить отображение F: (5(0 —> G), т. е. множества
состояний на множество действий. С этой целью дадим описание начального и
целевого состояний в МПО. Допустим, что в Sh двумерная координата О (обезьяны) точка
а, координата Я - точка Ь, координата Б - точка с, расположенная непосредственно
под бананами. Тогда начальное состояние будет удобно описать в виде
Sh = (а,Ь,с,НА(0,Я),В(0,Б)), (3.6)
все объекты в начальных позициях, обезьяна НЕ-НА ЯЩИКЕ, бананы НЕ-В руках
у обезьяны. Каждое из отношений НАиВ может принимать лишь 2 значения ДА ("1")
и НЕТ("0"): или обезьяна НА ящике ("1"), или НЕТ("0"); или В руках у нее бананы
("1"), или НЕТ("0"). Теперь мы можем упростить запись состояний [ср. с (3-6)):
Sh = (а, Ь, с, 0,0), (3.7)
Su = (с, с, с, 1, 1). (3.8)
(Все объекты в одной точке, обезьяна на ящике и схватила банан.)
Задача, таким образом, сводится к тому, как с помощью вышеперечисленных
операторов gb g2, £з» #4 из ситуации (3.7) перейти в ситуацию (3.8).
Применяем к Sh оператор gx - ПОДОЙТИ, имеем:
Sh = (а, Ъ, с, 0,0) —Ь-> (Ь, Ь, с, 0, 0) = Sx.
(Обезьяна ПОДОШЛА к ящику, и их координаты совпали.)
Применяем g2 - ПЕРЕДВИНУТЬ:
51 = (b, Ь, с, 0, 0) g- ) (с, с, с, 0, 0) = S2.
£з- ВЗОБРАТЬСЯ:
52 = (с, с, с, 0,0) *3 ) (с, с, с, 1, 0) = 53.
g4-СХВАТИТЬ:
53 = (с, с, с, 1,0) ) (с, с, с, 1, 1) =
Весь процесс можно отобразить формулой
S4 = gA (£з (82 (gi (a, b, с, 0, 0)))). (3.9)
32
3. Методы поиска решений
Правила для описания ситуаций могут быть обобщены для случая, когда
координаты нахождения обезьяны и ящика являются переменными. Обозначим их как jc, у
соответственно. Координаты бананов тоже можно сделать переменными, но пока,
для упрощения ситуации, не будем этого делать. Тогда каждое правило будет
описывать класс состояний, к которым применим тот или иной оператор. Эти правила
будут выглядеть следующим образом:
Подсчитаем число состояний (мощность N) пространства состояний,
описываемого каждым правилом.
• для (3.10): W,= 20x20x 1 х 1 х 1=400,
• для (3.11): N2= 20 х 1 х 1 х 1 х 1 = 20,
• для (3.12): ЛГ3= 1x1x1x1x1 = 1,
• для (3.13): jV4= 1x1x1x1x1 = 1.
Здесь х, у определены на множестве точек комнаты п = 20, х - знак декартова
произведения. А все пространство состояний имеет мощность, равную сумме
мощностей подпространств, т. е. 422 состояния.
Данную модель можно сколько угодно усложнять: может меняться
местоположение бананов, ящиков может быть несколько, в комнате могут находиться другие
предметы и т. п., но смысл преобразований при этом не изменится.
Пример 2. О наполнении ведра водой.
В начальный момент времени пустое ведро стоит рядом с раковиной, кран
закрыт. В целевой ситуации необходимо, чтобы ведро было полно и стояло на полу
у раковины, а кран был бы закрыт. Все операции выполняет робот. Требуется
построить план его действий.
Множество Х:[РОБОТ(Р), ВЕДРО(В), КРАН(К), ПОЛ(П), РАКОВИНА(РК)].
Множество С:
• состояние РОБОТА - (У КРАНА);
• состояние ВЕДРА - (ПУСТО, ПОЛНО);
• состояние КРАНА - (ОТКРЫТ, ЗАКРЫТ).
Множество R: НА(В,П) - ведро на полу, В(В,РК) - ведро в раковине.
Поскольку робот все время находится в одной точке, его также можно исключить
из рассмотрения. Тогда
Sh = < В(ПУСТО\ КРАН(ЗАКРЫТ), НА(В.П) >.
Su = < В(ПОЛНО\ КРАН(ЗАКРЫТ), НА(В,П) >.
Рассмотрим состояния и действия.
1. (В (ПУСТО), К (ЗАКРЫТ), НА (BJT))->gl-$(B (ПУСТО), К (ЗАКРЫТ), ~HA(BJJ));
2. (В (ПУСТО), К (ЗАКРЫТ), НА (BJT)) J>g2->(B (ПУСТО), К (ОТКРЫТ), НА (BJJ));
(х,у,с, 0,0) (у,у,с,0,0)
(у,у,с, 0,0) ->g2— (с,с,с,0,0)
(с,с,С 0,0) ->#з-> (с,с,с, 1,0)
(с,с,с, 1,0) —>gA—► (с, с, с, 1,1)
(ЗЛО)
(3.11)
(3.12)
(3.13)
3.4. Методы поиска решений в пространстве состояний
33
3. (В (ПУСТО), К (ОТКРЫТ), НА (ВЛ)) -» g3-> (В (ПОЛНО), К (ОТКРЫТ), НА (ВЛ))\
4. (В (ПОЛНО), К (ОТКРЫТ), НА (BJTj) -»£5-»(Я (ПОЛНО), К (ЗАКРЫТ), НА (ВД))\
5. (В (ПОЛНО), К (ЗАКРЫТ), Ш (BJ7)) ->g4-> (В (ПОЛНО), К (ЗАКРЫТ), НА (BJ7)).
Последняя ситуация является, как видим, целевой.
Примечание 1. Из определения Мпо следует, что отображение F описывает условия применения
операторов из множества.
Примечание 2. Из примеров хорошо видно, как важно правильно (удачно) выбрать способ описания
Эни От этого зависят наглядность представления и даже скорость поиска решения.
3.3.3. Выводы
В пункте «Модель предметной области» были определены понятие «состояние
МПО» и отображение F между множеством состояний и теми действиями, которые
переводят предметную область из одного состояния в другое. Очевидно, что при
этом необходимо указывать только те действия (операторы), которые могут изменить
состояние МПО путем изменения его описания. Например, в задаче об обезьяне и
бананах действие («залезть») может быть применено только к состоянию с описанием
g3 (с,с,с,0,0), а в итоге будет получено новое состояние - (с,с,с, 1,0) как результат
выполнения этого действия. Так же, по действиям, могут быть найдены и остальные
состояния (прототипы состояний). Применение операторов к описанию начального
состояния, а затем и ко всем промежуточным состояниям порождает все множество
возможных состояний предметной области, называемое пространством состояний.
В связи с этим возникает ряд новых вопросов: как строить это пространство,
чтобы не потерять ни одного состояния, как ориентироваться в этом пространстве для
поиска целевых состояний и т. п. Эти вопросы как раз и рассматриваются в
следующем разделе.
3.4. МЕТОДЫ ПОИСКА РЕШЕНИЙ В ПРОСТРАНСТВЕ СОСТОЯНИЙ
3.4.1. Путь решения задачи
Из предыдущих примеров мы видели, что применение операторов к начальному
и другим, промежуточным, состояниям меняет эти состояния, порождая новые,
которых вообще-то может быть много и которые образуют то, что называется
пространством состояний. Среди этих состояний, если модель построена корректно, рано или
поздно появится одно, которое будет соответствовать целевому, и процесс поиска
решения на этом будет закончен. Процесс этот может быть длинным и сложным,
поэтому возникает необходимость в некотором едином методе представления
множества состояний и поиска решений. Таким методом является метод, удобной
графической моделью которого стал граф.
Если отождествить состояние Sh с корнем или начальной вершиной
графа-дерева, то, применяя к Sh какой-либо оператор gl 3 G, мы порождаем новое состояние
5|, образуя тем самым следующую вершину графа (рис. 3.3).
2 3ак 1029
34
3. Методы поиска решений
Путь решения задачи: Su = g8(g6(g3(gl(SH)))).
Рис. 3.3. Граф решения задачи
Эта новая вершина может быть промежуточной или целевой. Если вершина
промежуточная, то процесс порождения новых вершин (с помощью операторов gi) будет
продолжен, пока не найдется целевая. Процесс применения оператора gi к некоторой
вершине называется раскрытием вершины. От каждой порожденной вершины к
породившей ее расставляются указатели, которые позволяют найти путь назад, к
начальной вершине, после того, как обнаружена целевая. Общая процедура построения
дерева в пространстве состояний при этом выглядит следующим образом.
1. К корню дерева (Sh) применяются операторы gi из множества G (их может быть
несколько). Полученные при этом вершины образуют первый уровень новых
вершин.
2. Каждая из вновь полученных вершин проверяется, не является ли она целевой.
Если нет, то процесс продолжается по отношению к каждой из них. Образуется
второй уровень вершин. Если к какой-либо вершине никакой оператор из G
не применим, то эта вершина становится терминальной (конечной). Как видим,
на каждом шаге проводятся две операции: порождение новой вершины и
проверка, не является ли новая вершина целевой, т. е. совпадающей с целевым
состоянием.
3. Когда целевая вершина найдена, в обратном направлении (от цели к началу)
просматриваются указатели дуг и выделяется путь решения. Практически
этот путь удобнее отображать посредством операторов, связанных с этими
дугами (см. рис. 3.3).
В общем случае количество вершин может быть большим. Их последовательное
раскрытие, анализ и пометка пути осложняют задачу. Возникает проблема перебора
вершин: в каком порядке они будут порождаться и анализироваться. Здесь возможны
следующие варианты:
1) если вершины раскрываются в том же порядке, в котором они порождаются, то
такой перебор называется полным перебором в ширину (breadth - first process);
2) на каждом шаге первой раскрывается вершина, которая была построена
последней, такой процесс называется полным перебором в глубину (depth - first
process).
В этих процессах расположение целевой вершины не влияет на порядок
раскрытия, поэтому их часто называют процессами слепого перебора;
3.4. Методы поиска решений в пространстве состояний
35
3) если есть некоторая дополнительная (эвристическая) информация о предметной
области, которая позволяет делать суждения о характере графа пространства
состояний и расположения цели, то такой метод построения графа называется
эвристическим («эвристический» означает «служащий открытию»). Эвристическая
информация, опирающаяся, как правило, на предыдущий опыт, позволяет
выполнять поиск в наиболее перспективных направлениях.
Говоря о графе, будем рассматривать только один наиболее простой его тип -
граф типа «дерево». Как известно, деревом называется граф, каждая вершина
которого имеет только одну вершину, непосредственно предшествующую ей
(родительскую), за исключением вершины-корня, которая предшествующих вершин не имеет.
3.4.2. Метод полного перебора в ширину
Как уже было сказано, в этом методе вершины раскрываются в том порядке,
в котором они строятся. Основной алгоритм состоит в выполнении следующих
действий.
1. Раскрывается начальная вершина Sh. Она раскрывается до тех пор, пока ее можно
раскрыть, применяя один и тот же оператор (или разные, смотря по условию).
При этом образуются вершины первого уровня: Si, S2, 53...Они раскрываются
в свою очередь, и образуются вершины второго уровня и т.д. (рис. 3.4 может
служить примером этого метода: Si и 52 - вершины первого уровня, S3 и S4 -
вершины второго уровня, S5 и S6 - третьего и т. д.).
5н(а,Ь,с,0,0)
Рис. 3.4. Элемент дерева полного перебора в ширину для примера
с обезьяной и бананами
2. Расставляются указатели, ведущие от новых вершин к корню. Это могут быть
условные имена, буквы, цифры, имена операторов и т. п. Но могут быть и реальные
величины, например расстояния, стоимость, вес и т. д.
3. Проверяется, нет ли среди полученных вершин целевой. Если есть, то
формируется решение на основе соответствующего оператора. Если целевых вершин нет,
то рассматривается первая порожденная вершина и к ней применяется тот же
алгоритм, после чего, переходят ко второй и т. д., пока среди получаемых вершин
не окажется целевой.
Метод полного перебора в ширину гарантирует нахождение целевой вершины
как раз потому, что перебор - полный. Путей достижения цели, вообще говоря,
может быть много. В этом случае у нас имеется возможность выбрать наикратчайший
36
3. Методы поиска решений
(или самый дешевый, или самый легкий - критериев много) путь. Но может быть
случай, когда граф поиска окажется бесконечным и тогда этот алгоритм никогда не
кончит работу.
Таким образом, метод полного перебора гарантирует поиск оптимального
решения, если дерево пространства состояний не бесконечно.
Синонимами названия метода являются: метод грубой силы, метод проб и ошибок.
На рис. 3.4 показан элемент дерева полного перебора в ширину для примера
с обезьяной и бананами (для полноты изложения здесь применяется дополнительный
оператор g5, отображающий перемещение обезьяны по комнате из точки в точку).
Корень дерева совпадает с 5и(аДс,0,0,). Точки d,f, к, л, т - координаты
возможной миграции обезьяны по комнате. Таких точек, конечно, множество, но мы
выбрали лишь несколько для примера. Они не приводят к решению, но теоретически
вполне допустимы. Жирной линией показан путь до целевой вершины St/(c,c,c, 1,1),
которому соответствует последовательность операторов #4, #3, gl, gl. Алгоритм решения
отобразится формулой
Su = g4(g3(gl(gl(a,b,c,0,0)))).
3.4.3. Метод полного перебора в глубину
В отличие от метода перебора в ширину этот метод предлагает раскрывать
прежде всего те вершины, которые были построены последними. Первой раскрываемой
вершиной, а следовательно, и последней является корневая, но процесс всегда будет
идти по самой левой ветви вершин. Чтобы как-то ограничить перебор, вводится
понятие глубины вершины в дереве перебора. Полагаем, что глубина корня дерева
равна нулю, а глубина любой последующей вершины равна единице плюс глубина
вершины, непосредственно ей предшествующей.
Отсюда следует, что наибольшую глубину всегда будет иметь та вершина,
которая должна быть в этот момент раскрыта. Если образующийся путь оказывается
бесполезным, т. е. при заданной глубине раскрытия целевой вершины не получилось,
необходимо вернуться в вершину, предшествующую раскрытой, и попытаться еще
раз применить к ней операцию раскрытия. И так до тех пор, пока не будет получена
целевая вершина.
Возврат осуществляется с помощью указателей. Как только в процессе
порождения вершин достигается заданная граничная глубина, раскрывается вершина
наибольшей глубины, не превышающая этой границы. Общая схема перебора в глубину
показана на рис. 3.5.
Алгоритм перебора в глубину состоит в следующем.
1. Раскрывается начальная вершина, соответствующая начальному состоянию Sh.
2. Раскрывается первая вершина, получаемая в результате раскрытия Sh. Ставится
указатель.
3. Если она раскрывается, то следующей будет раскрываться вновь порожденная
вершина. Если вершина не раскрывается, то процесс возвращается в
предыдущую вершину.
4. По получении целевой вершины процесс раскрытия заканчивается и по
указателям строится путь, ведущий к корню. Соответствующие дугам операторы
образуют решение задачи.
3.5. Эвристические методы поиска в пространстве состояний
37
Рис. 3.5. Дерево полного перебора в глубину
5. Если для заданной глубины раскрытия целевая вершина не находится, то весь
процесс повторяется снова, а.в качестве новой вершины рассматривается самая
левая из полученных на предыдущем этапе.
Так же, как и метод поиска «в ширину», этот метод относится к методам грубой
силы. Он обеспечивает перебор всех состояний, если, конечно, прежде не встретит
целевое.
3.5. Эвристические методы поиска
в пространстве состояний
Методы полного перебора гарантируют решение задачи, если оно существует,
а при наличии нескольких решений гарантируют оптимальное. Однако на практике
эти методы используются для решения лишь небольших по размерности графов
состояний задач. Для реальных случаев чаще всего используется дополнительная
информация, основанная на предыдущем опыте или полученная на основании
теоретических выводов.
Такая информация называется эвристической, а организованная в правила -
эвристическими правилами или эвристиками. Эвристическая информация носит
сугубо специальный характер и может применяться только в рамках данной задачи,
в лучшем случае - в рамках задач данного класса.
Другими словами, эвристическая информация превращает грубый перебор в
упорядоченный. В качестве примера рассмотрим известную задачу о коммивояжере.
Коммивояжер должен построить свой маршрут так, чтобы побывать в каждом
из п городов в точности по разу и возвратиться в исходный город. Желательно также,
чтобы этот маршрут был минимальным по протяженности. Пусть п = 5. Города
обозначим через А, В, С, D, Е. Длина пути от города до города задана на рис. 3.6.
Пусть начальным пунктом отправления будет город А, поэтому Sh = А. Целевое
состояние - тоже А. Оператор перехода - единственный - g{. Граф пространства
состояний этой задачи при использовании метода поиска в ширину выглядит
следующим образом (рис. 3.7).
38
3. Методы поиска решений
В
D
Рис. 3.6. Задача о коммивояжере
А
Рис. 3.7. Граф полного перебора в ширину для задачи о коммивояжере
Граф полного перебора, включающий все возможные пути коммивояжера, будет
содержать 24 варианта. (На рис. 3.7 показаны лишь некоторые из них.) Очевидно,
среди этих путей будет и самый короткий (он выделен), и самый длинный.
Расстояния в километрах обозначены на каждом из отрезков. Из рисунка видно, что длина
оптимального пути - 34 км (А, В, Е, D, С, А) и этот путь единственный, если не
считать того, что он может быть пройден в обратном порядке (А, С, D, Е, Ву А). (Кстати,
если исключить «обратные» пути, вариантов будет всего 12.)
Теперь построим решение методом поиска в глубину с использованием,
например, такой эвристики: на каждом шаге первой раскрывается вершина, имеющая
самую короткую длину из всех возможных. Тогда граф поиска решений будет таким,
как показано на рис. 3.8.
3.6. Поиск решения методом разбиения задач на подзадачи
39
а
Рис 3.8. Граф поиска решения задачи в глубину
Путь получился самый оптимальный, но так бывает не всегда. В общем случае
эвристические методы не гарантируют нахождение оптимальных, но очень к ним
близких решений. Зато получается большая экономия в затратах на поиск решения,
что является очень важным фактором.
Существует много методов применения эвристических оценочных функций.
Процедура перебора на заданную глубину часто называется также
программированием с обратным слежением {back - track programming).
Возможно также использование комбинированных стратегий поиска методами
и в ширину, и в глубину: перебор этапами, ограничение числа дочерних вершин,
двунаправленный перебор от Sh к St/ и обратно, методы ветвей и границ и
динамическое программирование, применяемые в исследовании операций.
3.6. ПОИСК РЕШЕНИЯ МЕТОДОМ РАЗБИЕНИЯ
ЗАДАЧ НА ПОДЗАДАЧИ
Идея метода состоит в следующем. Если путь решения задачи неясен (или
неизвестен), то нужно постараться найти какую-то точку опоры, от которой (или до нее)
путь известен. Эта точка может быть в любом месте - в начале, в середине, в конце,
но она должна быть. Этой точке, очевидно, будет соответствовать некоторое
состояние Si на пути от Sh до Su. Если эта точка Si определена, то к ней уже можно
применить какое-либо действие и этим изменить состояние предметной области, т. е.
приблизиться к возможному решению. Для нового состояния также ищется точка опоры
на оставшемся пути, к ней снова применяется какое-то (или то же самое) действие
и т. д., пока не будет решена вся задача.
Чтобы детально описать этот метод, необходимо вернуться к определению
понятия задачи. Для этой цели воспользуемся понятием пространства состояний. В более
общем, чем прежде, виде задачу (Z) можно представить следующим образом:
Z= (S,G,F), (3.14)
где S - множество начальных состояний, G - множество операторов, переводящих
предметную область из одного состояния в другое, F - множество целевых состояний.
При таком обозначении промежуточные состояния Si удобнее обозначать через
fi, поскольку они теперь представляют собой как бы промежуточные цели.
Конечной целью сведения задачи к подзадачам является получение таких
элементарных задач, решения которых очевидны. Элементарными считаются задачи,
которые могут быть решены за один шаг, т. е. за одно применение какого-либо
оператора из множества G.
40
3. Методы поиска решений
3.6.1. Представление задачи в виде И/ИЛИ графа
Между полученными при разбиении подзадачами могут быть отношения
согласованности (одновременности) их решения (отношение И) или отношение
альтернативности (отношение ИЛИ). Рассмотрим это подробнее.
Допустим, что исходная задача Z может быть разбита на подзадачи А, В, С, D, Е.
Пусть при этом подзадачи А и В, а также С и D находятся в отношениях И, т. е.
должны решаться согласованно (одновременно), а множества (А И В), (С И D) и
подзадача Е находятся в отношении ИЛИ, т. е. имеют альтернативный характер
отношений. Тогда все сказанное легко отобразить на графе (рис. 3.9).
Z
Рис. 3.9. Граф отношений подзадач для задачи Z
Отношения типа И будем отмечать двойной дугой, связывающей ребра графа.
Для единообразия представления можно ввести дополнительные (фиктивные)
вершины, которые группировали бы подзадачи типа И и ИЛИ под своей собственной
родительской вершиной (рис. 3.10).
Z
Рис. 3.10. И/ИЛИ граф задачи Z
Таким образом, исходная задача Z представляется подзадачами М, N и Е,
имеющими альтернативный ИЛИ - характер, а подзадачи М и N, в свою очередь, -
подзадачами (АУВ) и (C,D) с отношениями типа И. Альтернативные вершины М, N, Е
называются поэтому Я/7#-вершинами, а вершины А, 5, С, D - И - вершинами и
помечаются двойной дугой.
Структура типа изображенной на рис. 3.10 называется И/ИЛИ графом. При этом,
как видим, если вершина И/ИЛИ графа имеет непосредственно следующие за ней
вершины, то все они являются либо #/7//-вершинами, либо //-вершинами. Если
у вершины имеется только одна следующая за ней вершина, то ее можно считать как
Я, так и Я/7Я-вершиной. Если вершин типа И вообще нет, то получается обычный
граф, тот самый, который получался в методе полного перебора при поиске в
пространстве состояний.
Структура типа И/ИЛИ графа является удобной для представления дерева
подзадач. При этом начальная вершина графа соответствует начальному состоянию Sh ис-
3.6. Поиск решения методом разбиения задач на подзадачи
41
ходной задачи, а вершины, которые соответствуют описаниям элементарных
подзадач, называются заключительными.
Основная цель поиска на ШИЛИ графе - показать разрешимость вершины Si.
Вершина является разрешимой, если выполняется одно из следующих условий:
1) вершина Si является заключительной;
2) следующие за Si вершины являются вершинами типа ИЛИ и при этом хотя бы
одна из них разрешима;
3) следующие за Si вершины являются вершинами типа И и при этом каждая из них
разрешима.
Решающим графом называется подграф, состоящий из разрешимых вершин
с корнем в начальной вершине.
В случае если у вершины И/ИЛИ графа, не являющейся заключительной, нет
следующих за ней вершин, такая вершина называется неразрешимой.
Порождение новых вершин (а эта операция еще называется операцией редукции
задачи) выполняется путем применения обобщенного оператора G (т. е. каких-либо
операторов из множества G) сведения задачи к подзадачам. Применение оператора G к
описанию задачи порождает всю структуру И/ИЛИ графа (или иначе графа редукции).
3.6.2. Механизм сведения задачи к подзадачам
Напомним, что наша цель - построить некоторый алгоритм, который, будучи
примененным чисто механически, обязательно даст результат, т. е. требуемую
структуру - И/ИЛИ граф с выделенным решающим подграфом. Такой алгоритм
представляет собой один из механизмов планирования решения задачи.
Как следует из предыдущего, если исходная задача Z задается своим начальным
описанием
Z= <S, G,F>,
то свести ее к совокупности более простых задач в пространстве состояний можно,
если нам удастся выделить основные промежуточные состояния fl,f2,fi...Jh.
Каждому из этих состояний в соответствие можно поставить свое описание в виде троек
(S, G,/l>. (fl*Gfi), <А G,/3>,...,<>, G, F).
Решение этих подзадач эквивалентно решению исходной задачи. На этой идее
построен основной механизм сведения задачи к подзадачам.
1. Выделяем по крайней мере один оператор gi е G, который обязательно будет
участвовать в решающей цепочке операторов. Все операторы такого типа
называются ключевыми (т. е. операторы, обязательно участвующие в решающей цепочке).
2. Для каждого из ключевых операторов (если их несколько) определяются
промежуточные состояния, к которым они могут быть применены в условиях задачи Z.
Для оператора gi это будет состояние fi. (Таких состояний, вообще говоря, может
быть несколько, и тогда они образуют подмножество целевых состояний Fgi € F.)
Теперь уже можно выделить подзадачу поиска пути от начала до состояния fi (или
до Fgi). Другими словами, применение оператора gi привело к первой подзадаче
с описанием
(S,G,fi) (или (S,G,Fgi)).
42
3. Методы поиска решений
3. Как только такое описание найдено, может быть сформулирована 2-я
подзадача, соответствующая элементарной. В самом деле, поскольку состояние fi
соответствует оператору gi, то ничто не мешает нам применить его к fin получить, таким
образом, новое состояние gi(fi), определенно приближающее нас к конечной цели, правда,
только на один шаг.
4. От вновь полученного состояния gi(fi) до конечной цели F еще может быть
неблизкий путь. Определить его - третья подзадача.
Таким образом, применение выбранного оператора gi к задаче с описанием Z =
= (S, G, F) позволяет выделить сразу 3 подзадачи:
(S, G,fi), (fi,gi,gHfi) >, (gi(fi),G,F),
одна из которых элементарная. Сказанное удобно проиллюстрировать на линейном
графике (рис. 3.11). Все решение изображается отрезком, который разбивается
точкой fi, соответствующей оператору gi, на подзадачи
g 8' g
1-я п/з 2-я п/з 3-я п/з
Рис. 3.11. Разбиение задачи на подзадачи (п/з)
Такому разбиению будет соответствовать следующий И/ИЛИ граф (рис. 3.12).
<s,g,f>
/3 <fi,gi,gi(fi)> 3-я п/з
2-я п/з
Рис. 3.12. И/ИЛИ граф разбиения на подзадачи для состояния fi
Элементарная подзадача типа 2 решается всегда для любой выбранной точки /
пространства состояния, поэтому ее можно не указывать. Точка fi - одна из
возможных промежуточных целей: fi е Fgi. Выбрав ее, мы применяем к ней оператор gi.
Обобщая сказанное, приходим к окончательному виду ШИЛИ графа разбиения на
подзадачи для одной точки (рис. 3.13).
5. Каждая из полученных при разбиении подзадач, если она, конечно, не
элементарная, может быть снова разбита на подзадачи аналогичным методом, возможно,
с помощью другого оператора.
Примечание. Возможны случаи, когда множество операторов G содержит всего один оператор д.
Естественно, он является ключевым. Разбиение в этом случае начинается с удачного
выбора промежуточного состояния f и далее по тому же алгоритму.
3.6. Поиск решения методом разбиения задач на подзадачи
43
<S,G,Fgi>
<s,g,Fgi> <gi(fi),g,F>
Рис. 3.13. Обобщенный И/ИЛ И граф для одной точки (fi)
Итак, для разбиения задачи на подзадачи и построения соответствующего И/ИЛИ
графа нужны ключевые операторы (обычно более одного). Один из способов
нахождения операторов, могущих быть ключевыми, состоит в вычислении различий между
состояниями по пути от Sh е S к Su е F. Каждому возможному различию ставится
в соответствие оператор (или их множество), который это различие может устранить.
Цепочка операторов, последовательно устраняющих различия между Sh и Sty,
называется решением задачи.
3.6.3. Пример решения задачи
Проиллюстрируем метод разбиения задачи на подзадачи и поиска решений
на И/ИЛИ графе на примере с обезьяной и бананами (см. п. 1.5).
Допустим, что исходное описание задачи задается следующим образом:
Sh= (аДсДО)е S,
Su= (с,с,с, 1,1)е F ,
G=(gl,glg3, g4).
При этом отметим, что оператор g\ устраняет различие между состояниями
(вДсДО) и (ЬДсДО),
gl -между (ЬДсДО) и (с,с,с,0,0),
#3 - между (с,с,сД0) и (с,с,с, 1,0),
#4- между (с,с,с, 1,0) и (с,с,с, 1,1).
Попытаемся далее выделить подзадачи, применяя, например, оператор g3
(применение операторов может быть произвольным, поскольку речь идет о механической
процедуре). Ему будут соответствовать подзадачи с описаниями:
1) ((аДсДО), G, (с,с,с,0,0)), так как оператору #3 соответствует состояние
Fs3=(c,c,c,0,0)
2) ((с,с,с,0,0),#3, (с,с,с, 1,0)). Здесь (с,с,с,1,0)=#3(с,с,сД0), т. е. результат применения
ключевого оператора #3 к состоянию (с,с,с, 1,0);
3) остается еще подзадача: ((с,с,с,1,0), G, (с,с,с,1,1)).
Мы видим, что подзадача 1 не является заключительной (т. е. допускает
дальнейшее разбиение), а подзадача 3 является элементарной, т. е. заключительной, если
применить оператор #4.
Подзадача 2 также является заключительной.
44
3. Методы поиска решений
Разбиваем на подзадачи 1-ю подзадачу. Одно из различий между начальным
и целевым состояниями может быть устранено применением, например, оператора gl
(возможно и #1). Получим новые подзадачи с описаниями:
1.1. ((л Ас ДО), G,(6Ac,0,0))
1.2. ((W>,c,0,0),g2, (c,c,c,0,0)).
Здесь мы видим, что подзадача 1.2 является элементарной, а различие в
подзадаче 1.1 может быть устранено, если применить оператор g{ е G, и тогда она будет
тоже элементарной.
Целиком граф И/ИЛИ приведен на рис. 3.14.
((с,с,с,1,0), G, (с,с,с,1,1))
Рис. 3.14. И/ИЛИ граф для задачи с обезьяной и бананами (ключевой оператор - g3)
Точно так же можно было бы осуществить разбиение исходной задачи на
подзадачи, применяя вначале любой другой оператор: #4, gl или gl. На рис. 3.15 показан
граф для ключевого оператора g4.
((c,c,c,l,0),g4.(c.c,cj,l))
Рис. 3.15. И/ИЛИ граф для оператора g4
3.7. ДОСТОИНСТВА И НЕДОСТАТКИ МЕТОДОВ ПОИСКА
РЕШЕНИЙ В ПРОСТРАНСТВЕ СОСТОЯНИЙ
Приведем примеры задач, для решения которых могут применяться методы
поиска в пространстве состояний.
1. Комбинаторные задачи. Классический пример - задача о коммивояжере
(п. 2.4). Состояния задаются списком городов, операторы соответствуют действию:
направиться в город А, направиться в город В, направиться в город N. Критерий
достижения цели: любое описание, начинающееся и оканчивающееся городом А
и перечисляющее все другие города, есть описание состояния, удовлетворяющего
поставленной цели. Данная задача допускает поиск оптимального решения,
поскольку дугам могут быть приписаны стоимости (длина пути) перехода из одного города
в другой. Данная задача хорошо представима в графической форме (карте расстоя-
3.7. Достоинства и недостатки методов поиска решений в пространстве состояний 45
ний), что и делает ее удобной для применения методов поиска в пространстве
состояний. Считается, что метод поиска в пространстве состояний применим при числе
городов до 50. К данному классу задач хорошо сводятся практически любые одно-
критериальные задачи лабиринтного типа.
2. Задачи синтаксического анализа. При работе с языками (естественными или
искусственными) задаются грамматика построения правильных выражений (строк
символов - слов, предложений, выражений) в данном языке и, следовательно, способ
определения принадлежности произвольной строки символов к этому языку. Тогда
множество состояний задачи синтаксического анализа может быть задано как
множество строк (слов). Начальное и целевое состояния определяются какими-то
фиксированными словами в алфавите этого языка. Операторы могут быть заданы в виде
правил переписывания типа: ц В ж —> и 0 ж, где подстрока В может быть заменена
подстрокой 0. Эти правила могут выражать, например, синтаксис рассматриваемого
языка. Критерий цели для этой задачи может быть задан строкой, число символов
которой совпадает с числом символов целевого слова. Пример задачи такого типа: как
слово «море» преобразовать в слово «рыба» путем замены на каждом шаге одной
буквы. Очевидно, что при большом числе правил переписывания граф пространства
состояний становится слишком большим.
3. Задачи распределения. Здесь известно: объем продукции каждого типа;
величина поставок, которые должны быть осуществлены в заданные пункты. Необходимо
найти такое распределение поставок, при котором, например, затраты на перевозки,
были бы минимальны. Состояния описываются списком величин избыточной
продукции, которая имеется в заданных пунктах. Операторы соответствуют передаче
избытка продукции из одного пункта в другой. В качестве критерия может быть взято
целевое состояние, при котором будут удовлетворены все заявки на поставку
требуемой продукции. Типичная задача линейного программирования.
4. Задачи управления типа: требуется перевести объект управления с начальными
значениями установленных параметров процесса в состояние, при котором эти
параметры будут иметь заданные значения. Задача об обезьяне и бананах является
типичной задачей этого класса.
Возникает вопрос, когда же следует применять описанные здесь методы поиска
в пространстве состояний? Для каких классов задач эти методы применимы и могут
дать эффективные решения?
Во-первых, это должны быть задачи, для которых такое представление
возможно и является естественным. Это означает, что для выбранной задачи необходимо
найти способ описания любых потенциально возможных состояний предметной
области, определить множество операторов (ключевых операторов для метода
разбиения задачи на подзадачи), с помощью которых эта предметная область может
переходить из одного состояния в другое, определить критерий достижения цели.
Во-вторых, для этих задач не существуют или неизвестны методы, которые были
бы более эффективны. Таким образом, мы допускаем, что одна и та же задача может
решаться и другими методами, но по каким-то своим особенностям или
соображениям эти методы представляются нам лучшими.
Если найден удачный способ представления задачи, важно также, чтобы
пространство состояний было не слишком большим. Существует множество примеров
задач, кажущихся трудными, но таких, что при правильной их трактовке
46
3. Методы поиска решений
соответствующие пространства состояний оказываются очень узкими. Подчас
пространство состояний «сжимается в точку» после того, как обнаруживается, что
некоторые операторы могут быть выброшены за ненадобностью, а другие - объединены в
более мощные бператоры. И даже если такие простые преобразования
неосуществимы, может оказаться, что полная переформулировка задачи, изменяющая само
понятие состояния, приведет к меньшему пространству. Таким образом, проблема поиска
хорошего представления имеет важнейшее значение. Поиск его всегда опирается
на специфику задачи, использует ее кардинальным образом. Это означает, что способ
представления всегда носит уникальный характер, по сути, является особым
искусством и, следовательно, вряд ли существуют какие-то единые правила поиска хороших
представлений.
Во всех рассмотренных нами классах задач, для решения которых обычно
применяются методы поиска в пространстве состояний, число свойств объектов
предметной области и отношений между ними, служащих затем основой для
распознавания ситуаций, всегда небольшое. Например, в задаче об обезьяне и бананах - это
координаты (обезьяны, ящика, бананов) и 2 отношения - «Находиться НА»,
«Находиться У». В задаче коммивояжера использовались: свойство «Иметь имя», а
в качестве отношения - расстояние между каждыми двумя городами. В задаче
распределения это: имена пунктов нахождения продукции и поставок, объемы
имеющихся и требуемых поставок. Очевидно, что при увеличении числа свойств,
отношений и их значений размерность пространства состояний будет быстро возрастать
таким образом, что применение переборных методов станет практически
нереализуемым.
В этой связи в искусственном интеллекте развивались и другие, более
универсальные, модели представления знаний (МПЗ) о задаче. Общие требования к МПЗ
можно сформулировать следующим образом.
1. Необходимы способы представления знаний о задаче, безразличные к
содержанию (смыслу) самих знаний. Это позволит применять эти способы для
представления знаний в любых предметных областях для решения задач.
2. Эти способы должны иметь механизм логического анализа, позволяющий
моделировать человеческую логику выработки решений на выбранных моделях
представления знаний.
3. Эти способы должны решать задачи, которые известными формальными
моделями и методами не решаются в связи с их нестрогостью и нечеткостью.
Первое требование означает, что проблема смысла (содержания) знаний
заменяется проблемой синтаксического их представления. Второе требование предполагает
возможность разделения самих знаний и механизмов их логического анализа. Третье
требование предполагает возможность формализации опытного (экспертного)
знания, накапливаемого специалистами различных предметных областей и имеющего
качественный (а не количественный) характер. Именно с таким знанием не могут
работать все известные формальные математические модели. Мы, таким образом,
приходим к необходимости разработки и применения неформальных моделей знаний.
4. МОДЕЛИ ПРЕДСТАВЛЕНИЯ ЗНАНИЙ
4.1. Знания как объект исследования
и преобразования в системах ии
В определении модели предметной области мы использовали понятие «знание»,
никак не определив его и не указав, чем отличается «знание» от каких-либо других
понятий, таких как информация, данные, сообщение, суждение и т. п. Посмотрим,
что об этом говорит «Философский словарь» (под ред. Фролова И.Т. М. 1986 г.).
«Знание - идеальное выражение в знаковой форме объективных свойств и связей
мира, природного и человеческого. При этом знания могут быть донаучными
(житейскими или опытными) и научными, которые, в свою очередь, делятся на
эмпирические и теоретические».
В нашем понимании знания определяются более конкретно.
Знанием является информация, которая отражает объективные свойства
и связи некоторых объектов, явлений, процессов, сущностей и отношений между
ними как в субъективном, так и в научном (объективном) выражении.
Нас будут интересовать также системы знаний о предметной области (объектах,
связях между ними, структуре и закономерностях поведения, взаимодействии со
средой и т. п.), обеспечивающих решение целевых задач. Под системой знаний
понимается совокупность знаний, образующих целостное описание некоторой проблемы
с доступной и достаточной степенью точности [2]. Целостность означает, что между
отдельными сведениями, входящими в знание, существуют связи и, следовательно,
одни сведения могут быть выводимы из других. Это также означает, что система
знаний есть информационная система (информационная модель), отвечающая
требованиям полноты и непротиворечивости. В случае если между отдельными сведениями
явные связи не установлены, то они превращаются в единичные факты - некоторые
суждения, относительно которых можно судить об их истинности или ложности.
Такие суждения можно назвать данными. Таким образом, данные есть вырожденный
случай знания. Например, если между деталями автомобиля не указаны связи, то мы
получим просто Базу Данных о деталях автомобиля. Связность между элементами
удобно отображать с помощью ориентированных графов. И тогда результирующий
связный граф можно рассматривать как модель знания о чем-то. Очевидно, что
невозможно построить модель всего знания и мы можем говорить лишь о предметно-
или проблемно-ориентированном фрагменте знания для целевого применения. Такие
фрагменты мы будем называть моделями предметных областей.
В ЭВМ знания, так же как и данные, отображаются в знаковой форме - в виде
формул, текста, файлов, информационных массивов и т. п. Поэтому можно сказать,
что знания - это особым образом организованные данные.
Но это было бы слишком узкое понимание. А между тем в СИИ знания являются
основным объектом формирования, обработки и исследования. База знаний, наравне
с базой данных, - необходимая составляющая программного комплекса ИИ. Маши-
48
4. Модели представления знаний
ны, реализующие алгоритмы ИИ, называют машинами, основанными на знаниях,
а подраздел теории ИИ, связанный с построением экспертных систем, - инженерией
знаний. Так чем же отличаются знания от данных?
Обычно под данными понимают информацию, определенным образом
подготовленную и представляющую собой объект, отличный от команд. Сюда относится все,
что обрабатывается программой (операнды, файлы и т. п.) по заданному алгоритму.
Этот алгоритм может быть очень сложным, существуют даже специальные системы
управления базами данных (СУБД). Но эти системы не могут делать одного, с точки
зрения ИИ, - самого главного. Они не могут моделировать рассуждения, т. е., иначе
говоря, осуществить логический вывод. Потребовалось достаточно большое время,
прежде чем данные, постепенно эволюционируя, превратились в знания. При этом
они приобрели как минимум 6 обязательных свойств:
1) внутреннюю интерпретацию,
2) внутреннюю структуру связей,
3) внешнюю структуру связей,
4) шкалирование,
5) погружение в пространство с «семантической метрикой»,
6) наличие активности.
В приведенном списке легко угадывается стремление как можно полнее
отобразить не только интересующие нас объекты исследования, но и самые разнообразные
связи и отношения между ними. Уже в тех элементарных примерах, которые были
рассмотрены выше, мы выявляли эти отношения. Так, в задаче о наполнении ведра,
например, мы имели дело не только с объектами - ведром, раковиной, краном, но
и отражали отношения между ними (РЯДОМ, В, НА), их состояния (ПУСТО, ПОЛНО,
ОТКРЫТ, ЗАКРЫТ). Будучи описанной на соответствующем языке, эта задачка уже
представляла бы некоторое подобие базы знаний. То же можно сказать о любой
модели предметной области вообще.
Рассмотрим указанные свойства базы знаний подробнее.
4.1.1. Внутренняя интерпретация
Это понятие легко пояснить на следующем примере, который представляет
собой, в сущности, обычную таблицу (рис. 4.1).
Тип прибора
Характеристики
Проводимость
Макс, ток, А
Макс, напряжение, В
КТ837А
р-п-р
7,5
80
КТ817Г
п-р-п
3
25
КП308В
п-тип
0,02
25
КП304А
р-тип
0,03
20
Рис. 4.1. Пример внутренней интерпретации данных
Каждую строчку данной таблицы, так же, как и столбец, будем трактовать как
отдельную информационную единицу (ИЕ), расположенную в памяти машины. Тип
транзистора, указанный в начале строки, является именем ИЕ-строки, имя ИЕ-
столбца указано сверху.
4.1. Знания как объект исследования и преобразования в системах ИИ
49
(( Имя т-го слота, Значение /n-го слота)).
Информационная единица для первой строки с именем КТ837А будет выглядеть
так: (КТ837А (Проводимость, р-п-р) (Макс, ток, 7.5 А ) < Макс, напряжение, 80 В )),
для столбца с именем Проводимость соответственно: (Проводимость ( КТ837А, р-п-р)
(КТ817Г, п-р-п> (КП308В, п-тип) (КП304А, р-тип )). Круглые скобки, таким
образом, выделяют содержание ИЕ, а угловые скобки - определенные самостоятельные
части, называемые слотами. В общем виде полная запись ИЕ будет выглядеть так:
(Имя ИЕ (Имя первого слота, Значение первого слота) (Имя второго слота,
Значение второго слота)...).
В памяти машины вся эта таблица хранится, в свою очередь, как отдельная
информационная единица. База данных, структурированная таким образом, еще не база
знаний, но уже может ответить на некоторые вопросы, например выдать
информацию о характеристике транзистора или подобрать транзисторы по их проводимости.
Другими словами, она уже может отвечать на вопросы, касающиеся содержимого ее
памяти.
4.1.2. Наличие внутренней структуры связей
Представим теперь, что в качестве слотов у нас выступают другие
информационные единицы. В этом случае слоты будут как бы вкладываться друг в друга, как
в «матрешке». Такая структура получила название фрейма (рис. 4.2).
F
S,'
s2'
r2'
S 1
rj
S,2
г,2
sk2
rk2
Рис. 4.2. Структура фрейма: F-имя фрейма, S\ - имя первого слота,
Si2 - имя второго слота, который, в свою очередь,
содержит к слотов второго уровня вложенности
Пользуясь предыдущим примером, нетрудно представить себе фрейм, скажем,
с четырьмя уровнями вложений. Первый уровень - «видовое» название
«Транзисторы». Второй могли бы составить 2 слота - «Биполярные» и «Униполярные». Третий
уровень вложения - слоты с именами «КТ837А», «КТ817Г», «КП308В», «КП304А»,
а в качестве четвертого уровня - слоты, отражающие характеристики транзисторов
согласно рис. 4.1.
Между слотами различных уровней могут быть самые разные отношения.
Вложенным может быть не только слот, но и фрейм, имеющий уже свои многоуровневые
вложения. Наконец, вложенной может быть команда или даже целая программа. Все
это придает фреймовым структурам большую гибкость и многосвязность.
4.1.3. Наличие внешней структуры связей
При работе с фреймами могут возникнуть такие ситуации, когда отдельные
факты и явления, входящие в структуру одного фрейма, вступают в ситуационную связь
с фактами и явлениями, описанными в структуре другого фрейма. Для отображения
таких связей используются отдельные слоты. В них указываются имена фреймов,
с которыми есть связь, и имена отношений, осуществляющих их. Так возникает сеть
с именами фреймов в вершинах. С помощью дуг, над которыми написаны имена со-
50
4. Модели представления знаний
ответствующих отношений, вершины соединяются между собой, образуя так
называемую семантическую сеть. Попробуем ее построить.
Как там у Пушкина?
Вот едет могучий Олег со двора,
С ним Игорь и старые гости,
И видят: на холме, у брега Днепра,
Лежат благородные кости;
Их моют дожди, засыпает их пыль,
И ветер волнует над ними ковыль.
На рисунке 4.3 обозначены следующие понятия (если хотите, фреймы): СтГ -
старые гости, Дв - двор, Кос - кости (благородные), Пл - пыль, Дж - дождь, Кв -
ковыль, Вт - ветер, Хл - холм, Бг - берег Днепра.
Рис. 4.3. Пример семантической сети
Множество G описывает систему отношений: gl - быть вместе (двойная дужка
объединяет обе части этого соотношения), gl - выезжать со, #3 - видеть, #4 - быть
на, #5 - быть у, #6 - засыпать, gl - мыть, #8 - волновать, g9 - быть над.
«Семантический» значит «с учетом смысла слов». Указанная сеть так и
построена. При серьезных задачах она принимает весьма «запутанный» вид, связи ее
усложняются. Построенные нами ранее графы решения различных задач (см. гл. 3) вполне
могли бы послужить основой для построения элементарных семантических сетей.
Обратим внимание на тип отношений G между понятиями (фреймами) одной
сети. Они могут быть самыми разными. Если, например, они отражают причинно-
следственные связи, то такие сети называются сценариями. Если эти отношения
отражают связи по включению (типа «принадлежать к классу», «состоять из»), то это
будут иерархические сети. Отношения могут быть еще и такими, которые связывают
аргументы и значения функции. Такие сети называются вычислительными моделями.
АЛЛ. Шкалирование
Разумной деятельности человека свойственно стремление к упорядоченности.
Мы пытаемся как-то систематизировать, «разложить по полочкам» те явления,
события, факты, а точнее - информационные единицы, с которыми имеем дело. Для этой
цели мы используем разного рода шкалы. Это могут быть строгие метрические
шкалы, такие как шкала упорядочения людей по возрасту, шкала воинских званий или,
к примеру, шкала весовых категорий в боксе (наилегчайший вес, легчайший,
полулегкий и т. д.). Но это могут быть и «размытые шкалы», такие естественные в нашем
языке. Вот как мы оцениваем частоту появления какого-то события: Никогда,
Чрезвычайно редко, Очень редко, Редко, Редко, но не очень, Не часто - не редко, Часто,
4.1. Знания как объект исследования и преобразования в системах ИИ
51
но не слишком, Часто, Очень часто, Почти всегда, Всегда. А еще есть так
называемые «оппозиционные шкалы» типа Хороший - Плохой, Острый - Тупой, Сильный -
Слабый и т. п. Сюда же относится и знакомое всем нам Мы - Они.
Отображая отношения и связи реального мира, база знаний должна уметь
отобразить и это свойство человеческого мышления.
4.1.5. Погружение в пространство с «семантической метрикой»
В нашем сознании это пространство образуют понятия, факты, явления, близкие
по своему смыслу (семантике). Честно говоря, «метрика» эта не слишком строгая
и даже в чем-то противоречивая.
Возьмем понятие учитель. В какое пространство (чаще говорят - кластер) мы
его поместим? Это может быть «Интеллигенция»,или «Работники умственного
труда», или «Образованные люди», или просто «Служащие». Конечно, все зависит
От конкретной типовой ситуации, но мы все-таки отметим этот факт: точки каждого
кластера образуют совокупности понятий, семантически близких между собой.
Таково свойство нашего мышления. Типовая ситуация - ядро, вокруг которого
группируется информация.
Но есть и другой принцип образования кластеров. Выбор того или иного понятия
из множества ему близких подчиняется у человека еще и частоте появления.
На просьбу назвать поэта почти каждый ответит: Пушкин; на просьбу назвать
фрукт - чаще всего: яблоко.
Таким образом, имеются, по крайней мере, две системы оценки близости
информационных единиц. Одна опирается на их ситуативную близость, а другая - на
частоту появления тех или иных понятий в типовых ситуациях.
Разработана довольно стройная теория моделирования образования
ситуационных кластеров. Мы не будем сейчас вдаваться в подробности. Отметим лишь то, что
метод погружения в пространство с семантической метрикой, будучи, хотя и
приближенно, реализованным в базе знаний, существенно повышает ее
«интеллектуальный уровень».
4.1.6. Наличие активности
Как работает «обычная» ЭВМ? Очень просто - по заданной программе она
обрабатывает те или иные данные. В программе сосредоточено процедурное знание. Оно
хранит информацию о том, как надо действовать, чтобы получить желаемый
результат. Данные представляют собой декларативные знания. Они хранят информацию
о том, над чем надо выполнять эти действия. Программа, таким образом, играет роль
активатора данных.
Иное дело у человека. Очень часто в процессе мышления декларативные знания
у него являются активатором процедурных. Реализовать подобную возможность
в базе знаний, как говорится, и в чистом виде пока не удается. Используются
смешанные представления, в которых декларативные и процедурные знания
понимаются единообразно и могут активизировать друг друга.
В качестве примера рассмотрим фрейм, содержащий "несколько слотов. Допустим
теперь, что в качестве одного из слотов выступает имя какой-либо процедуры,
подлежащей исполнению. Но, как мы видели на примере семантической сети, обращение
к тому или иному слоту (или фрейму) определяется множеством разнообразных
отношений как между слотами одного фрейма, так и между другими фреймами. Все это
52
4. Модели представления знаний
как раз и формирует условия, необходимые для выполнения указанной процедуры.
Иными словами, декларативные знания становятся активаторами процедур.
Возможность активизации процедур посредством данных отметим как
важнейшее свойство базы знаний. В сущности, это означает отход от фундаментального
принципа работы классической ЭВМ фоннеймановского типа - работы по жестко
заданному алгоритму. С этого момента мы переходим к принципиально новым
системам обработки информации - системам искусственного интеллекта.
4.2. Классификация моделей представления знаний
Как организовать базу знаний с тем, чтобы она соответствовала требованиям
СИИ, мы приблизительно познакомились. Очевидно, что методы представления
знаний в базе должны соответствовать изложенным требованиям.
Существуют 3 типа моделей представления знаний (МПЗ):
1. Формальные модели представления знаний.
2. Неформальные (семантические, реляционные) МПЗ.
3. Интегрированные МПЗ.
К формальным МПЗ относятся модели, построенные на основе исчисления
высказываний и исчисления предикатов.
К неформальным (реляционным, семантическим) относятся:
• продукционные модели,
• семантические сети,
• фреймовые МПЗ.
Интегрированные МПЗ совмещают в себе модели различных типов.
4.3. Неформальные модели представления знаний
Все методы представления знаний, которые мы рассматривали выше, относятся
к неформальным моделям. В отличие от формальных моделей, в основе которых
лежит строгая математическая теория, неформальные модели такой теории не
придерживаются. Каждая неформальная модель годится только для конкретной предметной
области и поэтому не обладает той универсальностью, которая присуща моделям
формальным. Логический вывод - основная операция в СИИ - в формальных
системах строг и корректен, поскольку подчинен жестким аксиоматическим правилам.
Вывод в неформальных системах во многом определяется самим исследователем,
который и отвечает за его корректность.
Каждому из методов ПЗ соответствует свой язык представления знаний (ЯПЗ).
Их 4 типа: логические, сетевые, фреймовые, продукционные. Следует сказать, что все
они, в конечном итоге, приходят к использованию языков формальной логики, что
подчеркивает важность логических ЯПЗ в решении интеллектуальных задач.
Применить на практике формальные модели таких типов удается не всегда. А
если и удается, то они оказываются слишком громоздкими, сложными и
неэффективными. Более того, они оказываются неадекватными выбранной предметной области
при внесении любых изменений. В качестве основных недостатков формальных
моделей укажем следующие.
4.3. Неформальные модели представления знаний
53
1. Закрытость (замкнутость). Это означает, что однажды построенная
формальная модель становится «вещью в себе». Она обладает всем необходимым
(знаниями и механизмами) для функционирования и далее ей нет дела до
адекватности реальной среде. Если при этом моделируемый мир изменяется, то в модели
это никак не отражается. Для того чтобы привести ее в соответствие с
изменениями, необходимо ее полностью «перетряхивать» (пересматривать), т. е.
необходимо изменять все составные элементы модели - алфавит символов и понятий,
синтаксис, аксиоматику. А это очень трудно и для больших моделей практически
невозможно. В этой связи формальные модели следует применять для простых
сред, характеризующихся высокой статичностью и небольшим составом
исходных понятий и связей между ними. Это могут быть небольшие технические
устройства, отдельные экспериментальные среды и решения. Тем не менее, эти
модели удобны, особенно на стадиях исследования и постановки.
2. Основным элементом описания в исчислении предикатов (ИП) 1-го порядка
(ИППП) является глагол, и описание всегда строится вокруг него. Однако это
сделать достаточно трудно, так как «семантическое поле» каждого глагола
открыто и велико. Всегда можно образовать еще несколько. Например, глагол
«двигаться». Его поле - это десятки глаголов: летать, ползать, ехать и т. п.
Поэтому необходима большая работа по выявлению внутренней
непротиворечивости описаний семантически близких глаголов.
3. Исчисление высказываний и ИППП представляют собой языки декларационного
типа, т. е. в них все описывается в форме универсальных предложений. Не
поддаются описанию модальности. Например, кванторы типа: возможно, один
из тех, многие из этих, немногие и т. п. То есть невозможно описывать знания,
содержащие элементы неполноты, неопределенности, неточности и т. п. Очень
важные знания, отражающие ход временных процессов, также не описываются
в ИППП. То есть ИППП не может претендовать на универсальную логику,
достаточную для описания любых аспектов знаний. И в этой связи возникла
необходимость в разработке специальных логик - нечеткая, модальная, временная,
пространственная и т. п. Логики этих типов получили название псевдофизических.
4. Следствием декларативности формальных моделей является невозможность
представления процедурных составляющих знаний. Для этой цели необходимы
другие средства, не содержащиеся в языке ИППП.
5. Формальные модели не обладают достаточной для понимания наглядностью
и прозрачностью. То есть человек не может наблюдать и легко понимать сам
процесс работы машины вывода, так как способ доказательства теоремы
(единственный механизм вывода) не является естественной формой человеческого
рассуждения.
Все эти и другие причины потребовали исследования и разработки способов
представления знаний, необходимых для использования в практически важных
сферах деятельности и характеризующихся многоуровневостью, неопределенностью
и неполнотой, открытостью, немонотонностью. Под немонотонностью понимается
возможность немонотонных (скачкообразных) суждений о событиях, меняющихся во
времени, что характерно для сложных внешних сред и особенно для систем
управления и принятия решений.
54
4. Модели представления знаний
4.4. Логическая модель представления знаний
Логическая модель используется для представления знаний в системе логики
предикатов первого порядка и выведения заключений с помощью силлогизма.
Основное преимущество использования логики предикатов для представления знаний
заключается в том, что обладающий хорошо понятными математическими
свойствами мощный механизм вывода может быть непосредственно запрограммирован.
С помощью этих программ из известных ранее знаний могут быть получены новые
знания. Приведенные ниже примеры являются логическими моделями представления
фактов с помощью предикатов и носят название атомарной формулы.
ЛЮБОВЬ (Виктор, Ирина): Виктор любит Ирину
СТОЛИЦА (Москва): Москва - столица
Следующие примеры являются правильно построенными логическими
формулами, включающими кванторы существования (3) и общности (V).
• 3 : некий дельфин наделен умственными способностями
• V : все слоны имеют серую окраску
Отличительными чертами логических моделей, в частности приведенных выше
моделей представления знаний, являются единственность теоретического
обоснования и возможность реализации системы формально точных определений и выводов.
По этим причинам немало исследователей в области ИИ выбрали для себя предметом
изучения именно логические модели. Однако для логических моделей характерен ряд
сомнительных моментов, а поскольку большинство исследователей в области ИИ -
люди с неформальным мышлением, то большая часть достижений в области систем
с базами знаний до недавнего времени принадлежала так называемой группе
исследователей нелогического направления. В отличие от исследователей логического
направления, которые выбирают предметом своих исследований сравнительно простые
задачи, для решения которых используются теоретические подходы, исследователи
нелогического направления выбирают сложные задачи и пытаются сконцентрировать
все внимание на развитии способностей. Кроме того, в отличие от первой категории
исследователей, которые почти не занимаются теоретическими исследованиями,
вторая категория придает им большое значение. Другими словами, так называемая
«человеческая логика» - это интеллектуальная модель с нечеткой структурой - в этом ее
отличие от строгой логики. Более точно следует сказать, что исследователи
логического направления ищут пути логического решения (в малой модели) задач,
поставленных исследователями нелогического направления, и постепенно расширяют
рамки логики. Примерами тому являются модальная логика, многозначная логика и т. п.
В 80-х гг. было пересмотрено отношение к преимуществам и значимости логических
методов, и они в различных формах стали применяться в нелогических моделях
представления знаний. Это обусловлено, с одной стороны, необходимостью в точном
представлении знаний, а с другой - ставшими очевидными пределами традиционных
систем знаний, чрезмерно тяготеющих к эвристике.
4.5. Продукционная модель представления знаний
55
4.5. Продукционная модель представления знаний
В модели правил знания представлены совокупностью правил вида «ЕСЛИ -
ТО». Системы с базами знаний, основанные на этой модели, называются
продукционными системами. Эти системы бывают двух диаметрально противоположных
типов - с прямыми и обратными выводами. Типичным представителем первого типа
является система MYCIN, используемая для решения задач диагностического
характера, а типичным представителем систем второго типа - OPS, используемая для
решения проектирования задач. В системе продукций с обратными выводами с
помощью правил строится дерево И/ИЛИ, связывающее в единое целое факты и
заключения; оценка этого дерева на основании фактов, имеющихся в базе данных, и есть
логический вывод. Логические выводы бывают прямыми, обратными и
двунаправленными. При прямом выводе отправной точкой служат предоставленные данные,
процесс оценки приостанавливается в узлах с отрицанием, причем в качестве
заключения (если не все дерево пройдено) используется гипотеза, соответствующая самому
верхнему уровню дерева (корню). Однако для такого вывода характерно большое
количество данных, а также оценок дерева, не имеющих прямого отношения к
заключению, что излишне. Преимущество обратных выводов в том, что оцениваются
только те части дерева, которые имеют отношение к заключению, однако если отрицание
или утверждение невозможны, то порождение дерева лишено смысла. В
двунаправленных выводах сначала оценивается небольшой объем полученных данных и
выбирается гипотеза (по примеру прямых выводов), а затем запрашиваются данные,
необходимые для принятия решения о пригодности данной гипотезы. На основе этих
выводов можно реализовать более мощную и гибкую систему. Системы продукций
с прямыми выводами среди систем, основанных на использовании знаний, имеют
наиболее давнюю историю, поэтому они являются в некотором смысле
основополагающими. Эти системы включают 3 компонента: базу правил, состоящую из набора
продукций (правил вывода), базу данных, содержащую множество фактов, и
интерпретатор для получения логического вывода на основании этих знаний. База правил
и база данных образуют базу знаний, а интерпретатор соответствует механизму
логического вывода. Вывод выполняется в виде цикла «понимание - выполнение»,
причем в каждом цикле выполняемая часть выбранного правила обновляет базу
данных. В результате содержимое базы данных преобразуется от первоначального к
целевому, т. е. целевая система синтезируется в базе данных. Иначе говоря, для
системы продукций характерен простой цикл выбора и выполнения (или оценки) правил,
однако из-за необходимости периодического сопоставления с образцом в базе правил
(отождествлением) с увеличением числа последних (правил) существенно
замедляется скорость вывода. Следовательно, такие системы не годятся для решения
крупномасштабных задач. Упорядочим слабые и сильные стороны хорошо известных
систем продукций.
Сильные стороны:
• простота создания и понимания отдельных правил;
• простота пополнения, модификации и аннулирования;
• простота механизма логического вывода.
56
4. Модели представления знаний
Слабые стороны:
• неясность взаимных отношений правил;
• сложность оценки целостного образа знаний;
• крайне низкая эффективность обработки;
• отличие от человеческой структуры знаний;
• отсутствие гибкости в логическом выводе.
Таким образом, если объектом является небольшая задача, выявляются только
сильные стороны системы продукций. В случаях увеличения объема знаний,
необходимости решения сложных задач, выполнения гибких выводов или повышения
скорости вывода требуется структурирование базы данных. Первое, что приходит в
голову в таких случаях, - это группировка знаний и структурирование базы данных.
Другими словами, путем предварительной группировки соответствующих правил
в некотором состоянии процесса вывода можно ограничить диапазон выбора правил.
В тех случаях, когда объекты, для которых используются правила, также имеют
иерархическую структуру, эффективным является структурирование базы данных. Этот
подход был реализован в системах EMICIN и MECS-AI, разработанных на базе
системы MYCIN с применением универсального языка представления знаний.
Расширенным вариантом модели правил является модель доски объявлений
(blackboard), которая была предложена в системе распознавания разговорной речи
HEARSAY-II как модель представления знаний.
4.6. Представление знаний фреймами
Фреймовая модель, или модель представления знаний, основанная на фреймовой
теории М. Минского, представляет собой систематизированную модель памяти
человека и его сознания.
Теория фреймов - это парадигма для представления знаний с целью
использования этих знаний компьютером. Впервые была представлена Минским в 1975 г. как
попытка построить фреймовую сеть или парадигму с целью достижения большего
эффекта понимания. С одной стороны, он пытался сконструировать базу данных,
содержащую энциклопедические знания, но с другой - хотел создать наиболее
описывающую базу, содержащую информацию в структурированной и упорядоченной
форме. Эта структура позволила бы компьютеру вводить информацию в более
гибкой форме, имея доступ к тому разделу, который требуется в данный момент.
Минский разработал такую схему, в которой информация содержится в специальных
ячейках, называемых фреймами, объединенными в сеть, называемую системой
фреймов. Новый фрейм активизируется с наступлением новой ситуации.
Отличительной его чертой является то, что он одновременно содержит большой объем
знаний и в то же время является достаточно гибким для того, чтобы быть
использованным как отдельный элемент базы данных. Термин «фрейм» был наиболее популярен
в середине семидесятых годов, когда существовало много его толкований, отличных
от интерпретации Минского. Итак, как было сказано выше, фреймы - это фрагменты
знания, предназначенные для представления стандартных ситуаций. Термин «фрейм»
(Frame - рамка) был предложен Минским. Фреймы имеют вид структурированных
компонентов ситуаций, называемых слотами. Слот может указывать на другой
4.7. Представление знаний семантическими сетями
57
фрейм, устанавливая, таким образом, связь между двумя фреймами. Могут
устанавливаться общие связи типа связи по общению. С каждым фреймом ассоциируется
разнообразная информация (в том числе и процедуры), например ожидаемые
процедуры ситуации, способы получения информации о слотах, значения принимаемые по
умолчанию, правила вывода.
Каждый фрейм как структура хранит знания о предметной области (фрейм-
прототип), а при заполнении слотов знаниями превращается в конкретный фрейм
события или явления.
Фреймы можно разделить на две группы: фреймы-описания; ролевые фреймы.
Рассмотрим пример.
Фрейм - описание:
[Программное обеспечение^ <программа 1С бухгалтерия, версия 7.7>,
<программа 1С торговля, версия 7.7>,
<правовая программа «Консультант +» проф.>].
Ролевой фрейм:
[<заявка на продажу>, <что, установка и покупка программы
1С торговля, версия 7.7>, <откуда, фирма ВМИ>, <куда, фирма «Лукойл»>,
<кто, курьер Иванова>, <когда, 27 октября 1998г.>].
Во фрейме-описании в качестве имен слотов задан вид программного
обеспечения, а значение слота характеризует массу и производителя конкретного вида
продукции. В ролевом фрейме в качестве имен слотов выступают вопросительные слова,
ответы на которые являются значениями слотов. Для данного примера представлены
уже описания конкретных фреймов, которые могут называться, либо фреймами -
примерами, либо фреймами^экземплярами. Если в приведенном примере убрать
значения слотов, оставив только имена, то получим так называемый фрейм-прототип.
Достоинства фрейма-представления во многом основываются на включении
в него предположений и ожиданий. Это достигается за счет присвоения по
умолчанию слотам фрейма стандартных ситуаций. В процессе поиска решений эти значения
могут быть заменены более достоверными. Некоторые переменные выделены таким
образом, что об их значениях система должна спросить пользователя. Часть
переменных определяется посредством встроенных процедур, называемых внутренними.
По мере присвоения переменным определенных значений осуществляется вызов
других процедур. Этот тип представления комбинирует декларативные и процедурные
знания. Фреймовые модели обеспечивают требования структурированности и
связанности. Это достигается за счет свойств наследования и вложенности, которыми
обладают фреймы, т. е. в качестве слотов может выступать система имен слотов
более низкого уровня, а также слоты могут быть использованы как вызовы каких-либо
процедур для выполнения. Для многих предметных областей фреймовые модели
являются основным способом формализации знаний.
4.7. Представление знаний семантическими сетями
Рдним из способов представления знаний является семантическая сеть.
Изначально семантическая сеть была задумана как модель представления структуры
долговременной памяти в психологии, но впоследствии стала одним из основных спосо-
58
4. Модели представления знаний
бов представления знаний в инженерии знаний. Моррис дал точное определение
семантическим и прагматическим отношениям в семиотике и определил их как
проблемы различных функциональных уровней. Другими словами, семантика означает
определенные (общие) отношения между символами и объектами, представленными
этими символами, а прагматика - выразительные (охватывающие) отношения между
символами и создателями (или пользователями) этих символов: Первоначально
в психологии изучались объекты, именуемые семантическими с точки зрения
известных ассоциативных свойств, накапливаемых в системе обучения и поведения
человека. Однако с развитием психологии познания стали изучаться семантические
структуры, включающие некоторые объекты. Затем были изучены принципы действия
человеческой памяти (способы хранения информации и знаний), в частности
предположительные (гипотетические) структурные модели памяти, и созданы
моделирующие программы, понимающие смысл слов. Одной из структурных моделей
долговременной памяти является предложенная Куиллианом модель понимания смысла
слов, получившая название TLC-модели (Teachable Language Comprehender:
доступный механизм понимания языка). В данной модели для описания структуры
долговременной памяти была использована сетевая структура как способ представления
семантических отношений между концептами (словами). Данная модель имитирует
естественное понимание и использования языка человеком. Поэтому основной ее
идеей было описание значений класса, к которому принадлежит объект, его
прототипа и установление связи со словами, отображающими свойства объекта. В качестве
примера на схеме 2 показана весьма простая семантическая сеть для представления
концептуального объекта «чайник». В этой сети определены операторы отношений,
называемые классом, свойством и примером, для которых описаны значения.
В модели Куиллиана концептуальные объекты представлены ассоциативными
сетями, состоящими из вершин, показывающих концепты, и дуг, показывающих
отношения между концептами. Например, в сети, показанной на схеме 2, с отношением
«класс» ассоциируется значение «емкость», со свойством - «металлический»,
«фарфоровый», «наличие носика», с примером - «металлический чайник». Подобная
ассоциативная структура называется плоскостью, описываемые концепты объекта
называются вершинами типа, а связанные с ними соответствующие отдельные слова -
вершинами лексем. В любой плоскости существуют одна вершина типа и
необходимое для определения концептов, описывающих его, число вершин лексем. Вершины
лексем определяют всевозможные сущности, имеющие место в реальном мире,
например классы, свойства, примеры, время, место, средство, объекты и т. п.
Преимущество лексем по сравнению с типами заключается в экономии пространства памяти
ЭВМ. Это означает и факт предотвращения дублирования определения концептов.
Итак, исходя из приведенных выше соображений, можно сделать вывод, что в TLC-
модели используется представление знаний в форме «элемент» и «свойства».
Другими словами, можно попытаться структурировать знания, заменив вершину типа
на элемент, а вершину лексемы на свойство. Благодаря этому данные, основанные
на фактах, в долговременной памяти можно представить с помощью структур трех
типов: элементы, свойства и указатели. Элемент представлен заключением,
называемым фактом, например объектом, событием, понятием и т. п; обычно за элемент
принимаются отдельное слово, имя существительное, предложение или контекст.
Свойство - это структура, описывающая элемент, оно соответствует таким частям
4.8. Формальные модели представления знаний
59
речи, как имя прилагательное, наречие, глагол и т. д. указатели связывают элементы
и свойства.
Важность модели семантической сети Куиллиана с точки зрения
многочисленных приложений определяется следующими моментами. В отличие от традиционных
методов семантической обработки с анализом структуры предложения были
предложены новые парадигмы в качестве модели представления структуры долговременной
памяти, в которой придается значение объему языковой активности.
Были предложены способ описания структуры отношений между фактами и
понятиями с помощью средства, называемого семантической сетью, отличающейся
несложным представлением понятий, а также способ семантической обработки в мире
понятий на основе смысловой связи (смыслового обмена) между прототипами.
Была создана реальная система TLC, осуществлено моделирование человеческой
памяти и разработана технологическая сторона концепции понимания смысла.
4.8. Формальные модели представления знаний
Система ИИ в определенном смысле моделирует интеллектуальную деятельность
человека и, в частности, логику его рассуждений. В грубо упрощенной форме наши
логические построения при этом сводятся к следующей схеме: из одной или
нескольких посылок (которые считаются истинными) следует сделать «логически верное»
заключение (вывод, следствие). Очевидно, для этого необходимо, чтобы и посылки,
и заключение были представлены на понятном языке, адекватно отражающем
предметную область, в которой проводится вывод. В обычной жизни это наш
естественный язык общения, в математике, например, это язык определенных формул и т. п.
Наличие же языка предполагает, во-первых, наличие алфавита (словаря),
отображающего в символьной форме весь набор базовых понятий (элементов), с которыми
придется иметь дело, и, во-вторых, набор синтаксических правил, на основе которых,
пользуясь алфавитом, можно построить определенные выражения.
Логические выражения, построенные в данном языке, могут быть истинными или
ложными. Некоторые из этих выражений, являющихся всегда истинными,
объявляются аксиомами (или постулатами). Они составляют ту базовую систему посылок,
исходя из которой и пользуясь определенными правилами вывода, можно получить
заключения в виде новых выражений, также являющихся истинными. Если
перечисленные условия выполняются, то говорят, что система удовлетворяет требованиям
формальной теории. Ее так и называют формальной системой (ФС). Система,
построенная на основе формальной теории, называется также аксиоматической
системой. Формальная теория должна, таким образом, удовлетворять следующему
определению:
• всякая формальная теория F = (A,V,W,#), определяющая некоторую
аксиоматическую систему, характеризуется:
• наличием алфавита (словаря), А,
• множеством синтаксических правил, V,
• множеством аксиом, лежащих в основе теории, W,
• множеством правил вывода, R.
60
4. Модели представления знаний
Исчисление высказываний и исчисление предикатов являются классическими
примерами аксиоматических систем. Эти ФС хорошо исследованы и имеют
прекрасно разработанные модели логического вывода - главной метапроцедуры в
интеллектуальных системах. Поэтому все, что может и гарантирует каждая из этих систем,
гарантируется и для прикладных ФС как моделей конкретных предметных областей.
В частности, это гарантии непротиворечивости вывода, алгоритмической
разрешимости (для исчисления высказываний) и полуразрешимости (для исчисления
предикатов 1-го порядка).
ФС имеют и недостатки, которые заставляют искать иные формы представления.
Главный недостаток - это «закрытость» ФС. Модификация и расширение здесь
всегда связаны с перестройкой всей ФС, что для практических систем сложно и
трудоемко. В них очень сложно учитывать происходящие изменения. Поэтому ФС как
модели представления знаний используются в тех предметных областях, которые
хорошо локализуются и мало зависят от внешних факторов.
Выбор модели представления знаний при построении СИИ является ответстве-
нейшим этапом. Эта работа выполняется специалистом по профессии «инженер
по знаниям» - специальность, появившаяся в результате развития СИИ и экспертных
систем.
5. ТЕОРИЯ ВЫСКАЗЫВАНИЙ
5.1. Определение высказываний
Под высказыванием обычно понимают некоторое сообщение, предложение,
выражение, утверждение и т. п. Но такое широкое толкование нам не подходит, его
надо конкретизировать. Если, услышав сообщение «идет дождь», вы просто приняли
его к сведению и перед выходом из дома взяли зонт, то с точки зрения ИВ это
сообщение не является высказыванием. Если же после указанных слов вы подошли к
окну, чтобы удостовериться в их истинности, то такое сообщение уже можно
определить именно как высказывание. Итак, всякое высказывание предполагает оценку его
истинности (ложности).
Простые, односложные высказывания обозначаются строчными латинскими
буквами a, Ь, т, I, г, q... Это высказывания типа «светает», «дом белый», «сегодня
холодно», «Петя любит Машу». Если установлено, что высказывание г истинное,
то пишут г = И (или г = 1), если г ложное, то г = Л (г = 0).
Каждое высказывание может быть либо истинным, либо ложным, третьего
не дано - таков закон «исключенного третьего».
Простые высказывания называют еще элементарными или атомарными.
Дадим такое определение.
Аксиоматическая система, предназначенная для моделирования и изучения
логики высказываний, называется исчислением высказываний.
Начнем теперь определять формальную теорию, лежащую в основе исчислениг
высказываний.
5.2. Алфавит исчисления высказываний
Алфавит А часто называют словарем. Этот словарь, во-первых, содержит сами
высказывания а, Ь, т, п,... Во-вторых, он содержит еще так называемые логические
связки. Они хорошо известны читателю по курсам дискретной математики,
логических основ ЭВМ, программирования и др. Мы все-таки перечислим их, тем более что
в ИИ они используются в расширенном составе и в разных обозначениях (табл. 5.1).
Таблица 5 1. Логические связки
Название
Обозначение
Тип
Отрицание
—
-1, not, НЕ
Унарный
Конъюнкция
л,
&, and, И
Бинарный
Дизъюнкция
V ,
+, or, ИЛИ
Бинарный
Импликация
->
Бинарный
Эквивалентность
=
Бинарный
Тип отрицания унарный, потому что оно может быть приложено к одному
высказыванию, даже если это высказывание - сложное выражение. Остальные - бинарные,
так как они могут соединять как минимум 2 высказывания. Действия связок
определяются таблицей истинности (табл. 5.2).
62
5. Теория высказываний
Таблица 5.2. Таблица истинности для логических связок
X
У
xv у
хлу
х —> у
* v у
и
и
И
И
И
И
И
и
Л
И
л
л
л
Л
л
и
И
л
И
л
И
Л
Л
л
л
И
и
и
В данном пособии мы будем употреблять следующие обозначения:
• отрицания: X;
• конъюнкции: X л Y, или XY , или X • Y ;
• дизъюнкции: X v Y или X + Y ;
• импликации: X —>К ;
• эквивалентности: X = F.
С помощью связок из простых высказываний можно строить более сложные
высказывания, употребляя при этом еще и различные скобки:
(*-»р)->[(рл$)-»г];
j[(avb)Am]->b}—>а .
Не будем останавливаться на хорошо всем известных толкованиях связок
конъюнкции (И) и дизъюнкции (ИЛИ). Заметим только, что за исключением импликации
все остальные связки подчиняются перестановочному закону, т. е. не меняют своего
значения, если х и у поменять местами.
Особый разговор об импликации. Условно она моделирует утверждение типа
«если jc..., то у...». Условность здесь заключается в том, что не всегда поведение ее
очевидно. Например, выражение: «если х - ЛОЖЬ, то у - ИСТИНА» оказывается
ИСТИННЫМ. Тем не менее, эта связка широко применяется, поскольку отражает
одно из основных логических понятий.
Импликация неперестановочна. Пусть мы имеем такое высказывание: «если два
слагаемых нечетные (г), то их сумма - четная (q)». Оно представляется импликацией
г —> q, которая, очевидно, истинна: (г —> q) = И. Попробуем поменять местами г и q:
q—> г. Новая импликация означает: «если сумма двух слагаемых четная (q), то оба
слагаемых нечетные (г)», что верно только отчасти. Импликация отображает
причинно-следственные связи и предостерегает нас от широко распространенной
логической ошибки, когда причину и следствие меняют местами. Первую часть импликации
называют посылкой или антецедентом, вторую - заключением или консеквентом.
Обратимся к приведенной выше таблице истинности и отметим следующее:
• если посылка импликации истинна, то значение истинности импликации
совпадает со значением заключения;
• если посылка ложна, импликация всегда истинна;
• импликация ложна только при одном значении посылки (И) и заключения (Л)\
• если посылка истинна и вся импликация истинна, то и заключение истинно
(правило заключения или modus ponens).
5.3. Синтаксис исчисления высказываний
63
Кстати говоря, импликацию, так же как и эквивалентность, можно исключить:
(х-*У) = (х + У)\ (г = р) = (г -> Р){р -> г) = ( Г +р)(/7 +г).
Первое равенство следует из сравнения соответствующих колонок табл. 5.2,
второе предлагаем доказать самостоятельно.
5.3. Синтаксис исчисления высказываний
Речь идет о правилах V построения сложных высказываний. Как уже говорилось,
такие высказывания строятся (не считая скобок) с помощью логических связок -
и только. Естественно назвать такие сложные высказывания формулами. Но в ИВ
в целях общности рассуждений формулами называют также и атомарные
высказывания типа г, р и т. п. Если речь идет вообще о формулах, то их обозначают через
прописные латинские буквы: А, В, N, Р...
Из сказанного можно сформулировать следующие синтаксические правила:
1. Всякое высказывание есть формула.
2. Формулы, построенные с помощью логических связок и скобок, называются
правильно построенными формулами (ППФ).
Второе правило вводится единственно для того, чтобы подчеркнуть
необходимость построения новых формул только с помощью известных пяти связок. Стараясь
подчеркнуть универсальность этих связок, их «формулообразующйе» свойства, эти
связки часто называют пропозициональными.
Два указанных правила определяют синтаксис языка исчисления высказываний.
В любых языках синтаксис дает возможность распознавать фразы среди различных
наборов слов. В нашем случае он определяет формулы, которые здесь являются
аналогами фраз.
Но нас интересует еще и семантика языка, т. е. определение значений, которые
принимают формулы. Поскольку каждое элементарное высказывание может
принимать 2 значения: либо Я, либо Л, то формулы, построенные на их основе и
являющиеся ппф, очевидно, также будут иметь только 2 значения: Я или Л: значение
сложной формулы есть функция значений ее составляющих.
Рассмотрим, например, ппф импликации р —> q. При значениях р = Я и q = Л эта
формула принимает значение Л, при всех других - значение Я. Приписать р и q
какие-то определенные значения Я (Л) означает задать интерпретацию формулы.
Скажем, дизъюнкция а + b принимает значение Л только при интерпретации а = Л
иЬ = Л.
Если некоторая формула принимает значение Я при любой интерпретации
входящих в нее атомарных высказываний (формул), то она называется общезначимой,
универсально-истинной, тождественной или тавтологией. Примеры тавтологий:
(а + а) ->а; (а + fc)-> (Ь + а); (а+ а).
Если формула принимает значение истины хотя бы при одной интерпретации,
она называется выполнимой. Дизъюнкция и конъюнкция - выполнимые формулы.
Все элементарные высказывания выполнимы по определению.
64
5. Теория высказываний
Есть, однако, формулы, которые ложны при всех интерпретациях, например
конъюнкция х л х. Такие формулы называются невыполнимыми или
противоречивыми. Отрицание общезначимой формулы - невыполнимая формула.
5.4. ПРЕОБРАЗОВАНИЕ ФОРМУЛ
Успешное решение проблем логического вывода требует представления формул
в определенном виде, для чего их необходимо преобразовывать, естественно,
сохраняя истинность. Правила преобразования логических формул широко известны под
названием булевой алгебры. Здесь мы просто перечислим их, иногда опуская знак
конъюнкции, как это принято при обозначении умножения в алгебре, а дизъюнкцию
обозначая через «+».
Для дизъюнкции имеем равенства:
Л + Л = Л, х + Л = х,
Л+И=И, х + И=И,
И + Л= И, х + х = х,
И+И=И, х+х=И.
Для конъюнкции соответственно:
ЛлЛ = Л, хлЛ = Л,
Л лЯ = Д х л # =
И лЛ = Л, х ах-х,
ИлИ=И, х лх =Л.
Основные законы алгебры Буля
1. Переместительный:
х + у = у + jc,
ху = ух.
2. Сочетательный:
(х + у) + z = х + (у + г),
xiyz) = (xy)z.
3. Распределительный:
а) раскрытие дизъюнкции по конъюнкции:
(х + у) z = xz + yz,
б) раскрытие конъюнкции по дизъюнкции:
(ху) + z = (х + z)(y + z).
4. Правило де Моргана:
(х+у) = х*у,
ху = jc+ у.
5. Исключение отрицания:
5.5. Множество базовых аксиом
65
6. Исключение импликации:
х —> у = х + у ,
(х -> у) = ху .
7. Исключение эквивалентности:
х = у = (х-> у)(у ->х) = (х + у)(х + у).
8. Контрапозитивный закон:
х —> у = у —> jc.
9. Формулы склеивания:
лгу + ху = х;
(х+у)(х + у) = х.
10. Формулы поглощения:
х + ху = х; х(х + у) = х ;
х + ух = х + у; х(х + у) = ху .
В дальнейшем нам особенно часто придется пользоваться распределительным
законом, а именно - раскрытием конъюнкции по дизъюнкции. Чаще всего этот
случай встречается в задачах приведения исходной формулы к конъюнктивной
нормальной форме. Рассмотрим маленький пример. (Для удобства чтения конъюнкцию
иногда будем писать через точку.)
Известно, что эквивалентность выражается формулой
ху + х-у .
Приведем ее к виду соотношения 7. Раскрываем первую конъюнкцию ху по
дизъюнкции: (дг+х-уХу+х-у) и затем применяем этот закон внутри скобок:
[(х + х)(х + у)][(у + х)(у + у)]. Первая и последняя дизъюнкции - тождества, т. е.
равны Я, в общей конъюнкции их можно отбросить (ибо глЯ=г). Окончательно:
ху + х'у=(х + у)(х + у).
5.5. Множество базовых аксиом
Как уже говорилось выше, в качестве базовых аксиом выбираются всегда
общезначимые формулы. Их можно выбрать по-разному. Десять подобных формул мы
только что рассматривали в виде законов алгебры Буля.
В рамках исчисления высказываний в дополнение к этим законам предлагаются
разные варианты систем аксиом.
Остановимся на следующей системе:
(А1) А-КЯ->Л);
(А2) (А -К В ->С ))->(( А ->В )-К А ->С));
(A3) (А -> В )->(( А -> В )-> А ).
ЗЗак 1029
66
5. Теория высказываний
Общезначимость (тождественность) всех этих постулатов легко можно проверить
простой подстановкой различных значений А, В и С. Но это займет много места.
Поэтому покажем общезначимость только первого постулата. Что же касается других,
то в качестве примера они будут доказаны иными методами несколько позже.
Итак, первый постулат. Подставим в (А1) В = Я, А = Л. Тогда, согласно таблице
истинности, импликация (В —> А) = Л. Так как А ложно, получающаяся при этом
вторая импликация типаЛ—>Л истинна.
Теперь введем интерпретацию В = Л и А = Л, тогда импликация в скобках (В —>
—> А)-И, а основная импликация принимает вид Л -» Я, что дает опять-таки Я.
Примем А = Я и Я = Я. Легко показать, что окончательная импликация здесь
приходит к виду Я —> Я, т. е. равна Я.
Наконец, положим А = Я, Z? = Л. По таблице истинности (5 —» Л) здесь равна Я,
а конечная ситуация Я —» Я снова дает Я.
Но тождественность постулатов не единственное условие, которому система IV
должна удовлетворять. Необходимо, чтобы постулаты были независимы. Это значит,
что ни один из них нельзя вывести из двух оставшихся. Кроме того, система W
должна быть еще и полной. Полнота системы означает, что любая ппф, выводимая из этой
системы, общезначима, и наоборот, любая общезначимая формула, полученная
в рамках ИВ, - выводима из данной системы аксиом. Желательно при этом, чтобы
система была минимальна, т. е. не содержала «лишних» аксиом, хотя очевидно, что
присоединение к системе W любой общезначимой (и, следовательно, выводимой)
формулы полноту системы не нарушает.
5.6. Правила вывода
Напомним, что множество R содержит такие правила, которые позволяют на
основании принятых постулатов определять истинность любых других выражений
(ппф). Другими словами, они позволяют из тождественно истинных формул
выводить другие тождественно истинные формулы. Эта процедура так и называется:
вывод (или иначе - доказательство). Полученные в результате общезначимые
формулы называются тавтологиями или теоремами.
Если формула В выводима из формулы А, то пишут А\-> В. Формулы же,
принятые за аксиомы, обозначаются без антецедента: ь-» А (говорят: А выводится из
пустого множества).
Основное множество R содержит 2 правила:
1. Подстановка.
2. Заключение.
Правило подстановки. Обратимся вновь к первому постулату (А1). Он
общезначим при всех интерпретациях. Заменим теперь формулу А на формулу D. У этой
формулы, так же как и у А, только 2 возможных значения: Я или Л. Перепишем
теперь постулат: D —> (В —> D) - и что изменилось? При любых значениях D постулат
все равно общезначим.
5.6. Правила вывода
67
Отметим теперь, что А - прописная буква, т. е. под ней понимается любая другая,
в том числе и сложная, ппф. Пусть теперь А заменяется на формулу (а + Ь) —> г. При
различных интерпретациях а, Ь и г эта формула может принимать всего лишь 2
значения И или Л. Поэтому, подставив указанную ппф вместо А: ((а + Ь) —> г) —> [В —>
—> ((а + Ь) —> г)], мы, как и прежде, не нарушаем ее тождественности. Такие же
рассуждения можно привести и относительно В.
Отсюда правило подстановки.
В любую общезначимую формулу X, содержащую формулу Y, можно вместо Y
подставить любое другое высказывание (формулу) Z при условии, что это сделано
во всех местах вхождения Y. Истинность X при этом не меняется.
Оговорка насчет всех мест вхождения очень существенна. Посмотрите: D мы
вводим вместо А в обоих случаях. Недопустимо заменять только одно А, а также
одно А заменить на D, а другое на С. В общезначимой формуле а + а заменим одно а
на г: а + г . Полученная формула уже необщезначима! Но вполне допустимо заменять
разные буквы на одни и те же: постулат (А1), представленный в виде С —> (С —» Q,
все равно общезначим.
Правило заключения. Это правило часто называют по-латыни modus ponens (MP).
Правило заключения нам уже известно. Оно рассматривалось в рассказе об
импликации как следствие ее свойств. Напомним суть: если импликация р —> q истинна и
р истинна, то и q тоже истинна.
Иначе говоря, если импликация истинна и антецедент истинен, то и консеквент
тоже истинен.
Пусть, например, имеется аксиома ь-> (А —> (В —> А)), она всегда истинна. Если
окажется, что при этом А = И,то по правилу MP консеквент (В —> А) будет также
истинен.
Разберем теперь пример: пользуясь правилами вывода, показать, что формула
А-* А выводима из аксиом (А1) - (A3) и, следовательно, есть тавтология.
Возьмем постулат (AI): А -> (В —> А) и сделаем в нем подстановку: вместо В
подставим (А -» А),получим:
(\)А-*((А-+А)->А).
Возьмем теперь (А2). Подставив (А ~> А) вместо В и А вместо С, получим
(2) (А -> ((А -> А) -+А)) -> ((А -> (А -+А)) -> (А -> А)).
Антецедент формулы (2) совпадает с аксиомой (1) и потому истинен. Применяя
modus ponens к (1) и (2), получаем тавтологию:
(Ъ)(А-*(А-*А))-+(А-*А).
Снова берем постулат (А1) и заменяем В на А:
(4) А^>(А-*А).
Антецедент формулы (3) совпадает с (4) и, следовательно, истинен. Применяя
MP, получаем тавтологию:
(5) А-+А.
68
5. Теория высказываний
5.7. Нормальные формы
Нормальные формы играют важную роль, поскольку позволяют
стандартизировать и упрощать процесс логического вывода и анализа формул.
Формула исчисления высказываний имеет нормальную форму, если она не
содержит связок импликации (—>) и эквивалентности ( =) и знаки отрицания стоят
в ней только при переменных.
Освободиться от импликации и эквивалентности мы можем, применяя
соотношения алгебры Буля 6 и 7, перенос и исключение отрицания - по правилу де Моргана
и равенству 5.
Все эти преобразования относятся к равносильным. Две формулы являются рае-
носильными, если их таблицы истинности совпадают.
Ниже предлагаются некоторые полезные равносильные соотношения, следующие
из прямого применения закона раскрытия конъюнкции по дизъюнкции. Их легко
доказать самостоятельно. (Поскольку они следуют из законов Буля, мы продолжим их
нумерацию из п. 5.4).
11. ah + cd = (а + с)(а +d) (b + c)(b + d).
12. abc + r=(a + r)(b + r)(c + r).
13. (a + b)(x + y) + m = (a + 6 + m)(x + у + m).
14. abc + p + q + r = abc + (p + q + r) = (a + p + q + r)(b + p + q +г)(с + p + +q + r).
Разберем теперь некоторые примеры. На них мы хотим показать, как переход
к нормальной форме упрощает доказательство.
Пример 1. Привести выражение ab = (a—>b) к нормальной форме и'доказать
его тождество.
ab = (a^> b)\ ab = (a + b)\ ab = ab\ ab = ab.
Далее применяем соотношение 7:
ab = ab = ((аТ) + ab)(ab + (ab)) = И.
Пример 2. Привести к нормальной форме и доказать истинность постулата (A3)
системы аксиом ИВ
(А -> #)->(М->£)-> А).
Освобождаемся от импликации:
(А + В) + ((А->В) + А) = вА + (А + в) + А
Далее:
В А + АВ + А=А(В+~В) + А = И.
В дальнейшем, с целью упрощения, будем называть литерой любое
элементарное высказывание (или его отрицание).
Дизъюнктом будем называть дизъюнкцию некоторого числа литер:
(Л v /2 v /3 v...v 1п) или (Л + /2+ /з+...+ In)-
Любое логическое выражение (ппф) может быть представлено либо в
дизъюнктивной, либо в конъюнктивной нормальной форме. Дизъюнктивной нормальной
5.7. Нормальные формы
69
формой (ДНФ) называется дизъюнкция конечного числа конъюнкций.
Конъюнктивной нормальной формой (КНФ) называется конъюнкция конечного числа
дизъюнктов. Особый интерес к дизъюнктам объясняется их «наглядностью». В самом деле,
достаточно лишь одному из «слагаемых» дизъюнкта принять значение И (" 1"), как
весь дизъюнкт принимает значение И (" 1"). Это очень удобно, когда решается вопрос
о тождественности той или иной формулы. Переход от нормальной формы
выражения к его конъюнктивной нормальной форме в основном осуществляется путем
применения распределительного (дистрибутивного) закона. Приведенные выше
равносильные соотношения 11-14 иллюстрируют примеры его применения.
Пусть задана формула (p(s + г + q)) —> (р —> (s —> г)).
Приводим ее к нормальной форме.
1. Исключаем импликации:
(p(5 + r + tf)) + (p + 0s + r)).
2. Переносим и снимаем отрицания (желательно, чтобы отрицание относилось
не более чем к одной литере):
(p + (s + r + q)) + (p + T + r); (р + СГ-r q)) + (p + T + r).
Некоторые скобки можно опустить:
(1-7-<7)+(p + p+J+r).
Упрощая, получаем нормальную форму:
(s-7'C[)+(p+Y+r).
3. Применяем распределительный закон: раскрываем конъюнкцию по дизъюнкции
(ср. равносильность 14):
(T + (p + J+r))(r +(p + J+r))(^ + (p + 7+r)).
Исключая внутренние скобки и пользуясь условием г + г = 1, замечаем, что
второй дизъюнкт равен 1 и, следовательно, исключается из общей конъюнкции.
Окончательно получаем КНФ: (г + р + T)(q + p + T + r).
Роль КНФ для оценки значений формул трудно переоценить. Часто возникает
вопрос: нельзя ли установить какую-либо связь между структурой формулы и ее
семантикой? То есть связь между ее логической формой и логическим содержанием?
Оказывается, такая связь существует, и можно указать простой метод, позволяющий
по виду формулы, приведенной к определенному виду, судить о том, тождественна
она или нет. Метод как раз и заключается в приведении исходной формулы к
нормальной конъюнктивной форме и последующем ее анализе.
Пусть имеется некоторое выражение F, представленное КНФ,
F = {a+b + r)(a + T + b + s + r)(b + r + s+I). Сразу видно, что второй и третий
дизъюнкты равны 1, поскольку имеют по две одинаковые переменные, одна из которых -
отрицание другой. Эти дизъюнкты можно опустить. Но сама формула F = (а + Ъ + г) -
необщезначима и не противоречива, т. е. выполнима.
70
5. Теория высказываний
Пусть теперь формула F имеет другой вид:
F = (a + b + p)r(b+ р)(Ь + р + г)Т.
В ее составе 2 однолитерных дизъюнкта (г и г), причем один из них является
отрицанием другого. Такие литеры называются контрарными. Конъюнкция
контрарных литер равна 0, и поэтому мы имеем невыполнимую функцию
F = 0(77).
Общий вывод. Для того чтобы некоторая КНФ-формула была общезначима,
необходимо и достаточно, чтобы каждый из ее дизъюнктов содержал хотя бы
одну пару контрарных литер. Для того чтобы некая КНФ была невыполнима,
необходимо, чтобы она содержала хотя бы одну пару однолитерных контрарных
дизъюнктов.
5.8. Свойства ИВ как аксиоматической системы
То, что ИВ является аксиоматической системой, следует из всего
вышесказанного, так сказать, по построению. Здесь мы хотим лишь подчеркнуть некоторые
свойства, присущие ИВ как всякой системе подобного рода.
В основе аксиоматической системы лежит формальная теория. Что это означает,
мы видели выше. Это означает, в частности, что в системе определено некоторое
множество W базовых аксиом, из которых через процедуру вывода по правилам R
можно вывести некоторую формулу В9 обязательно общезначимую, ибо множество W
общезначимо по определению, а правила вывода не меняют истинности. Поскольку В
общезначимо, то, очевидно, ее отрицание В = Л, т. е. невыполнимо и невыводимо из W.
Этот факт говорит о непротиворечивости системы.
Система непротиворечива, если в ней невыводимы никакие две формулы, одна
из которых является отрицанием другой.
Ранее мы определили понятие полноты системы аксиом, согласно которому
любая общезначимая ппф может быть выведена из этой системы и, следовательно,
ее присоединение к этой системе полноту последней не нарушает. Покажем теперь,
что полнота и непротиворечивость связаны между собой.
Нарушение полноты приводит к нарушению непротиворечивости системы.
Дизъюнкция А + В, например, не является общезначимой ппф и потому невыво-
дима из принятой ранее системы аксиом (А1) - (A3). Предположим, однако, что она
выводима и, следовательно, может быть добавлена к системе в виде четвертого
постулата. Далее рассуждаем следующим образом.
Представим дизъюнкцию А + В в виде импликации:
(1)Л->В,
и так как она теперь считается общезначимой, проводим ряд подстановок и получаем
«тавтологии»:
(2)Л-> В (заменив В на В),
(3)А —(заменив в (1) А на А).
5.9. Проблема логического вывода
71
Правило modus ponens может быть теперь применено к постулату (A3), так как
его посылка ( А —> В) теперь общезначима согласно тождеству (2). Отсюда
справедливо тождество:
(4)( А-> Д)->А.
Применив MP к тождествам (1) и (4), имеем
(5)А = Я.
Заменим в (4) А на А :
(6)(А->Я)->Д .
Применяя теперь MP к (6) с учетом (3), получаем неопровержимо:
(7) А = Я.
Сравнивая (7) и (5), отмечаем явное противоречие.
Отсюда определение. Система полна, если присоединение к аксиомам какой-
либо невыводимой формулы делает ее противоречивой.
5.9. Проблема логического вывода
Ранее мы говорили о выводе общезначимых формул (тавтологий, тождеств)
из базовой системы аксиом. Рассмотрим вопрос вывода шире. Пусть имеется
множество необщезначимых формул Еъ Еъ Еъ...Еп, обладающих тем свойством, что при
некоторых интерпретациях они одновременно принимают значение Я Формула В
выводима из множества fEJ, если она может быть выведена из него путем применения
правила заключения. (Правило подстановки применяется только для общезначимых
формул.) Технически процесс вывода будет заключаться в получении ряда
последовательных формул В\, Въ By.., каждая из которых выводится из всех {Е} плюс те Вп,
что уже получены прежде. Процесс длится до тех пор, пока одна из очередных Вк
не совпадет с В, т. е. когда Вк = В.
Правило заключения не меняет истинности, и потому справедливо утверждение,
что если В выводима из {Е}, то она должна принимать значения Я при тех же
интерпретациях, что и все EL (Вообще-то формулы Ei могут принимать самые разные
значения. Речь идет о значениях истинности, общих для всех них и В в том числе.)
Пишут:
(Ех, Еъ ... Еп)\-> В или короче {Е}\->В.
Говорят также, что В есть логическое следствие из посылок {Е}. Вывод из
системы аксиом теперь можно рассматривать как частный случай, когда выполняется
условие \->{А}\-*В.
Пример. Знакомое нам правило заключения можно переписать следующим
образом: (р, р —> q) н» q, т. е. q - логическое следствие посылокрир —>q. Справедливость
этого легко проверяется по таблице истинности: высказывание q принимает значение
Я, как только ри(р —>q) одновременно принимают значение Я.
Проблема вывода сводится, таким образом, к проблеме дедукции, которая
формулируется следующим образом: требуется определить, является ли формула В
логическим следствием множества формул {Е}.
Чтобы подчеркнуть, что Ei не являются аксиомами, их иногда обозначают через
Hi и называют гипотезами, а формулу В - заключением:
72
5. Теория высказываний
(Н\, Нъ ... ,Нп)\-> В. (5.1)
Если гипотезы рассматривать как посылки в рассуждении, то из определения
логического следствия следует, что заключение истинно только тогда, когда все
посылки истинны. Заметим также, что если для множества (Е) не существует такой
интерпретации, при которой все Ei принимают значения Я, то множество {Е} считается
невыполнимым и обозначается
(Е\, Еъ ... ,Еп)у+Лили(Яь Нъ ... ,Нп)н>Л. (5.2)
Сразу же отметим одно важное свойство, следующее из определения логического
следствия. Если {Е} ь-> В, то В принимает значение Я как только все Ei также
принимают значение истинности. Исключается, таким образом, случай, когда В=Л при всех
ЕЫИ (обозначим: (Е}=И). Остальные варианты вполне допустимы. Сведем их
в табл. 5.3, добавив столбец с импликацией, которая нам сейчас пригодится.
Таблица 5.3. Таблица истинности для логического следствия
IE}
В
{Е)->В
И
и
И
Л
и
И
Л
л
И
И
л
Исключ.
Из табл. 5.3 следует очевидный и важный вывод: если В - логическое следствие
из множества (Е),то импликация {Е}->В - тождественно истинна.
Условие одновременной истинности всех Ei соответствует требованию
конъюнкции. Следовательно, можно написать
(Ех лЕ2лЕ3 ...л £п)-> В I—> Я или иначе (Нх л Н2 л Я3...л Ял)-> В ь-> Я. (5.3)
Вопрос, таким образом, сводится к определению тождественности выражения (5.3).
Пример. Известное нам правило заключения может быть записано следующим
образом:
а)(р,р-><?) »-> я-
Если q - логическое следствие из р и р—> q, то выражение
b) (р л (р-> <7))-> q
должно быть тождеством.
Покажем это. Приведем ППФ Ь) к конъюнктивной нормальной форме
(дизъюнкцию будем обозначать +).
Освободимся от импликаций и преобразуем:
[р{р+я))+я\ р+(ря + я)>
c) (р + я) + (ря)-
К выражению с) применим распределительный закон раскрытия конъюнкции по
дизъюнкции:
d) (p+p + q)(p + q + q)b->H
5.10. Алгоритмическая проблема разрешения в ИВ
73
Полученная конъюнктивная форма очевидно, тождественна, поскольку каждый
из двух ее дизъюнктов равен И (ибо р + р =//, q + q =И). Что и требовалось доказать.
• В данном примере мы вновь встретились с задачей определения тождественности
формулы. В более общей формулировке она будет встречаться нам и в дальнейшем:
требуется определить, к какому из трех классов принадлежит данная формула,
является ли она: а) тождественной, б) невыполнимой или в) выполнимой. В этом состоит
проблема разрешения.
5.10. Алгоритмическая проблема разрешения в ИВ
Задача, состоящая в отыскании процедуры, позволяющей для любой формулы
выяснить, к какому из трех вышеназванных классов она принадлежит, называется
еще семантической проблемой разрешения. В соответствии с этим процедура,
позволяющая конечным числом простых действий решить проблему разрешения,
называется разрешающей процедурой. Самое естественное решение здесь - обратиться
к таблице истинности. Таблица даст исчерпывающий ответ о поведении формулы
при всех возможных интерпретациях. Но этот прием малоэффективен, поскольку
практически он применим лишь для малого числа аргументов (литер). Если формула
из двух литер имеет 4 варианта интерпретаций (т. е. 4 строки), то формула из четырех
п
литер - уже 16, из пяти - соответственно 32 и т. д. по степени 2 строк таблицы
истинности. Кстати, этот прием мы применили, когда доказывали тождественность
первого постулата ИВ (А1).
Заметим, однако, что для того, чтобы получить разрешающую процедуру,
достаточно найти способ, позволяющий отличить тождественные формулы от всех
остальных. Применяем эту процедуру к некоторой формуле А, и если окажется, что А
общезначима, то проблема решена. Если же выясняется, что А не общезначима,
то применяем эту процедуру для формулы А . Если А окажется тождественной,
то, очевидно, А - противоречива. Если А , так же как и А, не тождественная, то это
уже значит, что формула А просто выполнима.
Существует несколько методов оценки тождественности формулы:
1) оценка с помощью таблицы истинности,
2) оценка через преобразование, упрощение и приведение к нормальным формам,
3) оценка путем логического вывода из системы аксиом,
4) оценка методом редукции,
5) оценка методом опровержения.
Некоторые из этих методов мы уже «прошли», с другими предстоит
познакомиться. Так, например, мы проводили оценку тождественности постулата (А1) с
помощью таблицы истинности. В ряде случаев для определения тождеств удобен так
называемый алгоритм редукции. Алгоритм основан на доказательстве путем
приведения к абсурду. Метод особенно хорош, когда формула содержит много
импликаций. Рассмотрим его на примере второго постулата (А2) исчисления высказываний.
Предположим невероятное, что (А2)<ложен, и докажем абсурдность этого
предположения.
Итак, пусть
74
5. Теория высказываний
(1)[(А->(В->0)-4((А->11)->(Л->0)]=Л.
По свойству импликация ложна, если антецедент истинен, а консеквент - ложен, т. е.
(2) (А -> (В -> О = Я,
(3) ((А-*Д)->(А->С)) = Л.
Тогда из равенства 3) следует:
(4) (А -> В) = Я,
(5)(А-»0=Л.
Ложность (А —> С) означает, что А = И, С-Л.
Применив modus ponens к (А -» 5), получим: если Л = Я, то и В = Я. Подставим
теперь полученные значения А, Б и С в (2), получим
(6) (А С)) = (И-+(И-*Л)) = Л,
что противоречит ранее полученному значению (2). Мы пришли к абсурду и тем
самым показали, что исходный постулат общезначим.
К сожалению, алгоритм редукции не всегда удобен в применении и не может
быть рекомендован как универсальный метод определения тождественности.
5.11. Теорема дедукции
Проблема разрешимости тесно связана с проблемой вывода. Методов много, но,
тем не менее, процесс этот остается достаточно утомительным даже для простых
примеров. Проблема вывода существенно упрощается, если применить теорему
дедукции. Пусть имеется множество гипотез {Н} нНп- одна из них.
Теорема утверждает, что необходимым и достаточным условием выводимости В
из гипотез {И} является выводимость импликации (Нп —> В), т. е. из утверждения
(Hi, Нъ Нп)н> В следует:
(ЯьЯ2,...,Яя.,)н>(Ял-»Я). (5.4)
Пусть это условие выполняется и (Нп -» В) выводимо. Обозначим эту формулу
через Л/1. Тогда по условию теоремы должна быть выводимой формула (НпЛ —> Ml).
Обозначим ее через М2, и теперь будет выводима формула (Яп-2-* М2) и т. д.
Формулировка теоремы, следовательно, сводится к следующему: Если В
выводима из гипотез {Н}, то истинно выражение
(Я1->(Я2->(Я3->... (Нп->В)))...). (5.5)
Необходимость утверждения доказывается следующим образом. Допустим, В
истинна, тогда импликация (Нп—> В) также истинна при любой Нп. Но это, в свою
очередь, означает, что истинна и следующая импликация (НпЛ -» (Нп —> В)) и т. д.
вплоть до заключительной импликации (Н{ -> (Я2—>)). Что и требовалось доказать.
Выражение типа (5.5) с «вложенными» импликациями называется л-кратной
импликацией. Доказав необходимость (5.5), мы вывели такое логическое утверждение.
Если в п-кратной импликации заключение В истинно, то по всей вероятности ее
посылки Hi тоже истинны.
5.12. Принцип дедукции
75
Докажем, что это так и есть, т. е. докажем теперь достаточность. Она
доказывается простым применением правила заключения. В самом деле, положим, что
выражение (5.5) истинно.
Если Н{ принимает значение И, то по modus ponens истинно и все выражение
(Н2—> (#3 —> ..)••)• Но при той же интерпретации истинна и Я2, откуда следует, что
истинно и выражение (Я3-> (Я4 ->...)..). И т. д. В конце цепочки рассуждений
приходим к выводу, что истинна импликация Нп—> В [выполнение условия (5.4) теоремы].
Но Нп тоже гипотеза и тоже истинна.
Отсюда В = Я.
Рассмотрим примеры.
А. Доказать свойство транзитивности импликации:
из условия (А —» В) и (В —> С) следует (А —> С).
Вопрос сводится к доказательству логического следствия:
(А -> В, В -> Оь+ (А -> С). (5.6)
Доказательство здесь неочевидно, но согласно теореме дедукции нам достаточно
доказать условие:
(А -> В, В -> С, A) h-> С.
Итак, имеем гипотезы:
a. Hi: А -> В,
b. Н2: В -> С,
c. Н3: А.
Применяя MP к а и с, получаем
d. В и далее
e. С (modus ponens к b и d).
Что и требовалось.
Б. Доказать выражение (5.6), пользуясь условием (5.5).
Гипотезы у нас уже обозначены. Подставляем их в (5.5):
((А ->£)-> ((В -> 0-> (А -> О))- (5.7)
Импликация А —> С является логическим следствием, если она принимает
значение Я тогда, когда все Hi = Я. Пусть формула (5.7) истинна. Если теперь положим,
что (А В) = #i истинна, то по MP ((Я -> Q -> (Л -> О) = Я
Но (Б —> О = Я2 тоже истинна, и тогда (А С) = Я и потому является
логическим следствием по условию (5.6).
5.12. Принцип дедукции
Вернемся к выражению (5.1) (Яь Нъ Нп)\->В и предположим, что оно
выполняется, т. е. В - выводимо из {Н}. Если это так, то присоединение В к множеству {Н}
не влияет на полноту множества {Н, В} и не приводит его к противоречию. Иное дело
В, которая при этих условиях невыводима. Ее присоединение к /Я/, очевидно,
приведет к противоречивости, т. е. можно написать:
76
5. Теория высказываний
(НиНъ...,Нп,В) н> Л. (5.8)
При этих условиях тождественность импликации (5.3), естественно, нарушается,
она становится невыполнимой. Возьмем отрицание импликации (5.3). Теперь должно
выполняться условие
((Я, лЯ2 лНу..л Я„) -> Я) н> Л . (5.9)
Доказав невыполнимость (5.8) или (5.9), мы косвенно докажем выполнимость
условия (5.1). Такой метод доказательства «от противного» называется
доказательством по методу опровержения.
Метод опровержения очень удобен. В самом деле, вместо того, чтобы
кропотливо доказывать общезначимость какой-либо формулы F, достаточно доказать
невыполнимость ее отрицания F ,что в ряде случаев значительно проще. (В 60-х гг. XX в.
был открыт и разработан так называемый принцип резолюций, весьма подходящий
для доказательств подобного рода.)
Метод опровержения реализует принцип дедукции, который формулируется
следующим образом.
Формула В является логическим следствием множества {Н} тогда и только
тогда, когда множество {Н, В } невыполнимо, т. е. (Н\, Я2, ... Нп) ь-> В, если (Н\, Н2,
Нп,В)^Л.
Докажем условие (5.9).
Исключим импликацию:
((»lAff2A...Aff>I)ve)
и по правилу де Моргана получим:
(Я, лЯ2л...лЯ„)лЯ,
что эквивалентно выражению
Я,лЯ2л... л Я/1 л В. (5.10)
Дело, таким образом, сводится к доказательству невыполнимости
(Я,лЯ2л... лЯлл В)ь->Л. (5.11)
Формула (5.10) в своем виде уже является элементом КНФ, даже если все Hi -
элементарные высказывания. Если же Hi - сложные выражения, то они приводимы
к виду КНФ и их подстановка в (5.10) не меняет ее нормальной формы. Поэтому
в дальнейшем мы вправе считать каждое из Hi дизъюнктом, состоящим из одного
или многих «слагаемых».
Условие (5.11) требует, чтобы формула (5.10) была невыполнима, т. е.
тождественно равна 0. Это возможно, если среди ее «сомножителей» найдется хотя бы один
пустой дизъюнкт. Такой дизъюнкт не может появиться в явном виде. Но он может
быть определен на множестве /Я, В } путем определенных эквивалентных
преобразований.
Из всего вышесказанного следует, что, согласно принципу дедукции, вопрос
о выводимости (невыводимости) некоторой формулы В сводится, в конечном счете,
5.13. Принцип резолюций
77
к анализу невыполнимости множества дизъюнктов. Но множество дизъюнктов
невыполнимо тогда и только тогда, когда пустой дизъюнкт Л является логическим
следствием из него. Таким образом, невыполнимость множества {Н, В } можно проверить,
порождая логические следствия из него до тех пор, пока не получится пустой
дизъюнкт. Метод, позволяющий получить логические следствия из множества
дизъюнктов, основан на применении принципа резолюций.
5.13. Принцип резолюций
В сущности, в основе принципа лежит несложная схема рассуждений. Пусть А, В
и С - формулы и имеются 2 дизъюнкта:
1) (А + О;
2) (В+ С),
которые мы будем считать истинными. Положим теперь, что С = И.
Подставив это значение в первое выражение, получим дизъюнкт вида А +И,
который истинен при любом А. Подставив С = И во второе выражение, получим
дизъюнкт В + Л, из которого однозначно следует, что В = И, поскольку принято, что весь
дизъюнкт истинен.
Положим теперь С = 77. Второй дизъюнкт истинен при любом В, но первый
принимает вид А + Д откуда следует, что А = И.
Все это означает, что, независимо от интерпретации формулы С, либо А, либо В
истинны. Это можно отразить в виде нового дизъюнкта (А + В), исключив
контрарные формулы Си С.
Другими словами, выполняется правило
(А + С,В + С)ь>(Л + Д). (5.12)
Правило особенно эффективно, если А и В дизъюнкты, а С - высказывание. Это
правило называется правилом резолюции, а вновь полученный дизъюнкт -
резольвентой. Он формируется как «сумма» оставшихся формул, за исключением
контрарных, т. е. разных по знаку.
Для дизъюнктов (р + q + 7) и (т + г), например, резольвента будет иметь вид
(р+ q + т). Для дизъюнктов (р + г) и (г) - соответственно (р), а вот в случае (р)
и (р ) обе литеры «уничтожаются». Это пример получения пустого дизъюнкта. Еще
один пример. Имеются 2 дизъюнкта (х + у) и (х + у ). Получаемые здесь резольвенты
(х + х) или (у + у) равны 1, информации не несут, их следует отбрасывать.
В логическом плане каждый полученный дизъюнкт-резольвента равносилен
обоим дизъюнктам-родителям, участвовавшим в резолюции, (они так и называются -
родители). Он становится очередной гипотезой и участвует в резолюции на равных
с другими. Это касается и пустого дизъюнкта, но будучи поставлен в ряд гипотез Hi,
он делает формулу типа (5.10) равной 0, что и является ее доказательством.
Пример. Доказать невыполнимость множества дизъюнктов:
H = (p + q,p + r, q+7,p).
78
5. Теория высказываний
Пронумеруем гипотезы:
l.p + q.
2.р + г.
3. q+7.
4. р.
Далее применяется правило резолюции. Полученные резольвенты
присоединяются к исходному множеству, с ними снова можно проводить резолюции. Ниже
следует список резольвент, в скобках указываются номера резольвент, участвовавших
в резолюции:
5.*(М).
6. г (2,4).
l.q (3,6).
8.77(5,7).
Надо отметить, что выбранный путь порождения резольвент может быть
не единственным. Например, в нашем случае результат можно было бы получить
чуть быстрее, если пойти по следующему пути:
9. р+ 7 (1,3).
10. р (2,5).
11.77(4,6).
Как видно из примера, метод резолюций легко представим в виде несложного
регулярного алгоритма. Это предопределяет успешное применение ЭВМ в решении
задач вывода, хотя здесь и возможны неожиданные трудности. Дело в том, что машина
ищет резолюцию слепо, методом перебора. При таком поиске путь к результату
может быть весьма долгим. Возможны случаи простого зацикливания машины.
Простейший пример: имеется 2 дизъюнкта р и р +q. При машинной реализации
резольвента q может порождаться неограниченное число раз. Предусматривая подобные
случаи, применяют специальные стратегии поиска резольвент и соответствующее
программирование. Некоторые такие стратегии мы рассмотрим в следующем разделе.
В заключение отметим такое важное обстоятельство.
Множество резольвент (вместе с родительскими дизъюнктами) образует
не что иное как математическую модель некоторой предметной области. Каждая
новая резольвента добавляет новое состояние в пространство состояний Мпо,
а поиск решения в пространстве состояний представлен операцией логического
вывода.
5.14. Свойства метода резолюций
Несмотря на известные недостатки, заключающиеся главным образом в
возможности неограниченного порождения резольвент и в отсутствии гарантий быстрого
поиска решения, метод резолюций является одним из самых мощных инструментов
в решении задач логического вывода. Он обладает двумя существенными
достоинствами: он логичен, так как резольвенты являются логическими следствиями предло-
5.14. Свойства метода резолюций
79
жений-родителей, и он обладает полнотой, так как при использовании в процессе
вывода результат получается за счет применения только одного и того же правила.
Представляет интерес свойство завершаемости метода резолюций: если множество
(Н). невыполнимо, то пустой дизъюнкт может быть найден посредством резолюций.
Это и понятно: пустой дизъюнкт есть резольвента множества {Н} и, будучи
невыполнимым, не может быть следствием выполнимого множества.
По этому поводу даже есть лемма.
Если множество {Н} невыполнимо и содержит резольвенты своих элементов,
то оно обязательно содержит пустой дизъюнкт.
Метод резолюций применяется не только в рамках исчисления высказываний
и исчисления предикатов (см. последующие главы), к нему нередко сводится
процедура вывода в некоторых других моделях представления знаний (продукционные ПЗ,
семантические сети, фреймы). Широко известный язык программирования ПРОЛОГ
специально создан для реализации процедур, основанных на методе резолюций. Что
же касается указанных недостатков, то в значительной степени они уменьшаются или
даже исключаются путем применения специальной стратегии целенаправленного
поиска резольвент. Дальше мы коснемся этого подробнее.
Основное назначение метода резолюций - порождение логических следствий из
системы гипотез [И] (причем эта система должна быть представлена в
конъюнктивной нормальной форме). Это может быть порождение с целью общего обзора
следствий, или же это будет поиск пустого дизъюнкта при реализации принципа дедукции -
меняется только цель. Резольвента есть логическое следствие своих родителей.
Обратного утверждать нельзя!
Рассмотрим показательный пример. Обратимся все к тому же свойству
транзитивности импликации: если (а —> Ь) и (Ь —> с), то (а —> с). Иначе: [(а—> b)(b —>
—>с)]н» (я —>с). Гипотезы в нашем примере: Н{: (а —> Ь) и Н2: (Ь —> с), формула В:
(а —> с). Согласно принципу дедукции, условие выполняется, если показано, что
(Hi, Нъ В)\-+Л. Переходя к КНФ, получаем выражение [(а+Ь)(Ь+с)(а+с)]\-*Л.
Задача, таким образом, сводится к знакомой формулировке: доказать
невыполнимость множества дизъюнктов: (а + b),(b + с), я, с (т.к (а+с)=алс - это 2
однолитерных дизъюнкта а и с).
Дизъюнкты: Резольвенты:
1)*+*. 5)6(1,3),
6) с (2,5),
ЦЬ+С> Л (4,6).
3) я,
4) с
Транзитивность доказана, и «по логике» это легко понять: если из а следует Ь,
а из b следует с, то очевидно, что из а следует с. Интересно, будет ли логическим
следствием из указанных дизъюнктов какой-либо другой из них? Например, b + с.
То есть требуется доказать:
[(а —> Ь)(а —> с)] ь-» (Ь -> с).
80
5. Теория высказываний
Переходя к КНФ, имеем дизъюнкты: (а + b), (а + с), (Ь + с) или иначе (а + 6),
(а + с), с .
Итак, дизъюнкты: Резольвенты:
5) д. (2,4)
2) а + с, Других резольвент нет.
3) Ь, Импликация (Ь—>с) не является
4) с. логическим следствием.
' Оно и правда: из того, что Ъ и с следуют из а вовсе не следует, что с следует из Ь.
Из примера выводим. Если резольвента Bi есть логическое следствие из {Н},
то совсем не-обязательно, чтобы хотя бы для одной гипотезы Нк выполнялось условие
(НиН2 HnyBi) \->Нк.
Разберем еще несколько примеров.
Пример 1. Пусть даны посылки р и р —» q. Определить все возможные следствия
из этой пары. Систематический обзор логических следствий удобно осуществлять
путем обращения к совершенной конъюнктивной нормальной форме (СКНФ).
Напомним, что особенность СКНФ заключается в том, что все ее конъюнктивные члены
содержат все переменные данной формулы и, следовательно, имеют одинаковое
число литер. Если какой-либо член СКНФ содержит меньшее число переменных, то
недостающие переменные вводятся прибавлением формулы типа ала, которая равна
0 и на дизъюнкцию не влияет. Затем эту конъюнкцию раскрывают по дизъюнкции.
Все это мы сейчас проделаем на примере.
Как и прежде, образуем конъюнкцию р(р -» q) и приведем ее к СКНФ.
Освобождаемся от импликации: р(р + q). В дизъюнкте р не хватает члена q. Прибавляем
конъюнкцию q л q:
(Р + (Я a q))( р + q).
Раскрывая эту конъюнкцию, получаем СКНФ:
(Р + Я) а (р + q ) л ( р + q).
Полученная СКНФ дает нам не только 3 конъюнктивных члена: (р + q), (р + q )
И(Р + я)> каждый из которых является логическим следствием, но и возможность
получать другие следствия в виде конъюнкции любой пары из них:
( Р + Я) а (р + Я ). (Р + Я) а ( р + <?), (р + Я) а (р + Я )•
Но и это еще не все следствия. Применяя метод резолюций, получаем
дополнительно дизъюнкты: р и я (Проверить самостоятельно.)
Пример 2. Институт заключает договор, в котором предположительно могут
участвовать 3 кафедры A, MnR. Однако участие этих кафедр обусловливается рядом
обстоятельств. А именно:
а) если М не участвует в договоре, то не участвует и А\
б) если же Мучаствует, то участвуют и А, и R.
5.15. Пример решения задачи средствами ИВ
81
Но вот вопрос: обязана ли R участвовать в договоре, если в нем уже участвует А1
Опишем задачу в терминах исчисления высказываний. Обозначим: а - в договоре
участвует А, т - в договоре участвует Л/, и г - в договоре участвует R. Тогда условию
а соответствует формула т —> а , условию б - т —> (а л г). Необходимо решить,
следует ли из этих условий а —> г?
Требуется вывести логическое следствие:
((w -> а ), (/и —> (а л г)) к» (а -> г).
Исключаем импликации и делаем небольшие преобразования:
[(т+ а ), (т + аг)] н» (а + г),
[(aw+ а ), ((w + а)(т + г))] н> (а + г),
[(w+ а ),(m + w + г)] ь-> (а + г).
Согласно принципу дедукции, требуется доказать условие:
[(т + а ),(т + а), (т + г), (а + г) ] н-> Л.
Применяя метод резолюции, анализируем:
Дизъюнкты: Резолюции:
l)m + e, б)/11,(1,4)
2) т + а, 7) г, (3,6)
3)т + г, »^(5.7)
^ д Кафедра R обязана участвовать
^ - в договоре, если участвуете.
5.15. Пример решения задачи средствами ИВ
Обратимся к известной уже нам задаче про обезьяну и бананы. На основе фактов
БД и правил БЗ построим формальную модель предметной области на языке
исчисления высказываний и проиллюстрируем на ней механизм логического вывода.
Сначала для этого необходимо определить алфавит, т. е. набор символов,
обозначающих высказывания, которые мы определим, например, следующим образом:
• А- «Обезьяна находится в точке о»,
• В- «Ящик находится в т. Ь»,
• С- «Бананы находятся в т. с»,
• D - «Обезьяна находится на Ящике»,
• Е- «Обезьяна держит Бананы»,
• F - «Обезьяна, Ящик, Бананы находятся в разных точках»,
• G - «Обезьяна находится рядом с Ящиком».
Используя логические связки: -i, л, v, —>, =, мы можем строить более сложные
умозаключения. Например:
82
5. Теория высказываний
1) (AaBaQ->F.
(Если все предметы находятся на своих исходных позициях, т.е, в точках а, Ьу с
соответственно, то справедливо сказать: «Обезьяна, Ящик, Бананы находятся
в разных точках»).
2) F—> G.
(Если «Обезьяна, Ящик, Бананы находятся в разных точках», то «Обезьяна
находится не рядом с Ящиком»).
3) F-> D.
(Если «Обезьяна, Ящик, Бананы находятся в разных точках», то «Обезьяна не
находится на Ящике»).
4) F—> Е.
(Если «Обезьяна, Ящик, Бананы находятся в разных точках», то «Обезьяна
не держит Бананы»).
Высказывания 2, 3, 4 можно объединить в одно с помощью логической связки
«И»:
5) F-K G л Ъ л Е).
6) F->(DaE).
(Если «Обезьяна, Ящик и Бананы находятся не в разных точках», (т. е. в одной),
то «Обезьяна стоит на Ящике» И «Обезьяна держит Бананы»).
7) D-> Е.
(Если «Обезьяна не на Ящике», то «Обезьяна не держит Бананы»).
Таким образом, фрагмент предметной области на языке исчисления
высказываний (ИВ) представляет собой следующий набор формул (БЗ):
{AaBaQ-*F\_
F->(_Ga Da Е); (5.13)
F->(D/\E);
D-> E.
Для простоты введем обозначение S = АлВлС.
Теперь, используя механизм логического вывода ИВ, мы можем доказать
выводимость любой другой формулы, структура которой соответствует синтаксису ИВ
(в рамках данной модели). Докажем, например, что формула
( SaD)->E (5.14)
выводима. Ее смысл: если «Обезьяна, Ящик и Бананы не в исходных точках» И
«Обезьяна на Ящике», то «Бананы в руках у Обезьяны».
Логический вывод можно сделать несколькими способами.
1. Можно, например, использовать таблицу истинности, которая дает
исчерпывающую картину значений переменных. При этом формулы (5.13) и (5.14) образуют
выражение логического вывода в виде:
((AaBaQ->F)a(F->( Ga Da Е))а( F->(DaE))a( D-> Ё))Ь»(( SaD)-*E). (5.15)
Далее следует вычислить значения выражений слева и справа от знака н». Если
окажется, что формула справа принимает значение И как только все формулы (5.13),
образующие левую часть, одновременно примут значение Я, то логическая
выводимость (5.14) из (5.13) доказана.
5.75. Пример решения задачи средствами ИВ
83
Учтем, однако, следующее. Формула (5.15) имеет 7 переменных. Это значит, что
таблица будет содержать 27, т. е. 128 строк! Есть ведь и другие методы.
2. Можно попытаться использовать метод вывода, основанный на системе
аксиом исчисления высказываний. Но это тоже очень трудоемкий процесс.
3. Лучше всего попробовать метод опровержения, основанный на принципе
дедукции и реализуемый посредством резолюций. Согласно этому методу следует
доказать противоречивость системы
2)_F-K Ga Da Е)\
3) F^DaF); (5 16)
4) D—» E\ K '
5) (SaD)->F,
где под номером 5 как раз и стоит отрицание формулы (5.14). Далее применяем
метод резолюций. Для начала все 5 предложений следует представить в виде
конъюнкции элементарных дизъюнктов (КНФ). Для простоты дизъюнкцию будем
обозначать«+». _
Для первого предложения имеем: Г. S+F.
Для второго: 2'. F+( Ga Da Ё).
Для третьего: 3'. F+(Da£).
Для четвертого: 4'. D+ Е.
Для пятого приведем цепочку преобразований:
5'. (5aD)->F = (SaD) + F = (S + D) + F = SaDaE.
Пользуясь правилом раскрытия конъюнкции по дизъюнкции, имеем для 2':
( F+ G)a( F+ D)a( F+ Е)\
Для 3': (F+D)a(F+F).
Конъюнкция 5' распадается на 3 одночленных дизъюнкта: 5, D, Е.
Теперь у нас имеется система элементарных дизъюнктов, на основе которой
проводим вывод методом резолюции.
1. 5+F. Резольвенты:
2. F+ G. 10. F(6,9).
3. F+ D. 11. D(3, 10).
4. F+ Е. 12. «Л» (8, 11).
5. F+D. Мы получили «пустой» (ложный)
6. F+F. дизъюнкт. Это значит, что выводимость
7. S. формулы (2) из системы (1) доказана,
8. D. т. е. утверждение (2) истинно.
9. Е.
Отметим, что приведенная резолюция не единственно возможная. Можно и по-
другому. Например:
10'. F (3, 8).
11\ £(6,10').
12'. «Л» (9,1 Г) и т. п.
6. ТЕОРИЯ ПРЕДИКАТОВ
Исчисление высказываний является грубой моделью представления знаний.
Основной ее недостаток в том, что высказывание здесь рассматривается как единое
целое, без анализа его внутренней структуры. Это ограничивает возможности ИВ при
моделировании сложных силлогических построений. Элементарный пример, часто
приводящийся в таких случаях. Имеется классический силлогизм:
Все люди смертны/
Сократ - человек/
Следовательно, Сократ смертен.
С точки зрения логики вывод здесь безупречен, но он уже выходит за рамки ИВ.
В самом деле, с помощью пропозициональных связок и букв его можно записать
в виде следующей формулы:
(алЬ)->с.
Но эта формула необщезначима! А это значит, что логика высказываний не
позволяет корректно выразить приведенный силлогизм. Позже мы вернемся к этому
примеру и разрешим его, но уже в рамках более гибкой формальной логики, в рамках
исчисления предикатов.
6.1. ПОНЯТИЕ О ПРЕДИКАТАХ
Если высказывание отражает какой-либо факт и далее оперирует с ним как с
единой формулой, не разделяя его, скажем, на субъекты и объекты, то предикатная
форма, напротив, отображает данный факт уже как взаимодействие, отношение или
свойство некоторых сущностей. Это отношение принято выделять прописными
буквами перед скобками, в которых указываются те или иные сущности, находящиеся
в данном отношении.
Рассмотрим несколько предложений.
Лена и Таня сестры
грибы в лесу,
капля долбит камень,
снег белый,
мальчик послал книгу брату.
В правилах исчисления предикатов эти предложения можно записать следующим
образом:
а') СЕСТРЫ (Лена, Таня),
б') В (лес, грибы),
в') ДОЛБИТЬ (капля, камень),
г') БЕЛЫЙ (снег),
д') ПОСЫЛАТЬ (мальчик, брат, книга).
6.1. Понятие о предикатах
85
В первом предложении выделено отношение родства, во втором - предлогом В -
пространственные отношения. В предложении в' выделено действие между
субъектом и объектом, в предложении г' - свойство (в данном случае - цвет), в
предложении д'- также действие. Но рассмотрим эти примеры подробнее.
То, что стоит перед скобками и выделено прописью, называется предикатным
символом (предикатной константой). То, что стоит в скобках, называется термами.
Каждый терм занимает свое место. Предикатные символы могут быть предлогами,
существительными, глаголами, прилагательными и т. п.. Терм, как правило,
существительное или то, что его заменяет. Все это вместе образует предикатную формулу
(или короче - предикат).
Термов может быть несколько. По их количеству предикаты разделяются на
одноместные (г*), двуместные (а\ б\ в*), трехместные (д*) и т. д. Предикатная формула
еще называется атомом. Но и термы бывают разными. В примере а' оба терма
обозначены вполне конкретно - Лена, Таня. В этом случае они называются индивидные
константы. Во втором предикате оба терма заданы в самом общем виде: какие-то
грибы в каком-то лесу. Их можно просто обозначить через буквы х и у - они так и
называются - индивидные (предметные) переменные. Сами же предикатные символы,
которые, как мы видели, много чего отображают, также обозначаются буквами -
прописными, латинского алфавита: Р, R, М... Иногда к ним добавляются индексы:
Р\, Ръ Рп, иногда указывают число мест: Рк\ Рк2.... Говоря о терме, мы не
упомянули еще один его вид: терм может быть выражен через функцию.
Разберем все сказанное на примерах.
1. ПИСАТЬ (Лермонтов, «Демон»). «Лермонтов написал «Демона»» - все ясно:
ПИСАТЬ - предикатная константа, двуместный предикат, оба терма -
индивидные константы. Обозначим через X множество стихотворений Лермонтова. Тогда
предикат вида ПИСАТЬ (Лермонтов, х) означает: «Лермонтов написал какое-то
стихотворение». А вот предикат ПИСАТЬ (у, х\ где под у понимается какой-то
человек, означает: «кто-то написал что-то», х и у здесь - индивидные переменные.
2. Обозначим через g некоторую функциональную константу, например, «быть
вареным». Если картофель обозначить через s, то предикат НА {стол, g(s)) теперь
истолкуется как «на столе вареная картошка». Пусть / - функциональная
константа «быть отцом», aw- функциональная константа «быть матерью». В этом
случае предикат Р {/(Лена), т(Лена)) следует истолковать просто как РОДИТЕЛИ.
[Тот же результат, впрочем, даст и более общая формула: P(f(x), т(х)), где х -
один и тот же ребенок].
Из рассмотренного можно сделать некоторые выводы. Во-первых, термы нельзя
менять местами. Иначе получится, что на картошке стоит вареный стол, а Демон
написал «Лермонтова». И во-вторых: не следует путать предикатный и
функциональный символы. Предикат МАТЬ (х,у) означает: у есть мать х. Либо это правда, либо это
неправда, поэтому область значений предиката [1,0] или [И,Л]. Функция м(х)
означает «быть матерью», равенство м(х) = у - «матерью х является у». Область
определения х, вообще говоря, - все человечество, область значений у - все женщины
определенного возраста.
86
6. Теория предикатов
6.2. Исчисление предикатов
как аксиоматическая система
ИП - аксиоматическая система, построенная согласно формальной теории F =
= (А, V, W, R).
Словарь ИП (А) содержит:
• индивидные константы а, Ь, е.;
• предметные переменные х, у, г,...;
• функциональные константы f, g,h...\
• высказывания р, q, г, s,....;
• предикатные константы Р, Q, /?,.. .
Исчисление предикатов, в определенном смысле, продолжение и расширение
исчисления высказываний, поэтому в словарь включены все те же пропозициональные
связки л, v, НЕ, —>, =. Но перечень логических знаков в ИП расширяется еще
двумя, называемыми кванторами: V и 3. Квантор V читается как «все», «для всех»,
«всякий», «каков бы ни был» и т. п. Поэтому он называется квантором всеобщности
(общности). Квантор 3 читается как «некоторый», «хотя бы один», «существует»
и т. п. Поэтому он называется квантором существования. Так, например, выражение
V хР(х) читается: «для любого х выполняется условие Р(л;)». Выражение 3 уР(у) -
«сущеструет хотя бы один у, при котором выполняется Р(у) (т. е. Р(у) = И)».
Множество синтаксических правил V ИВ применимо и в ИП. Правильно
построенные формулы в рамках исчисления высказываний остаются ппф и в исчислении
предикатов. Добавляются правила:
• атом есть формула
и
• если Р(х) - формула их- переменная, то V хР(х) и 3 хР(х) - формулы.
Каждому квантору соответствует только одна переменная, в наших примерах х
или у. Эта переменная называется квалифицированной, она пишется сразу за
квантором. Область действия квантора - формула, к которой применяется эта
квалификация. Каждое вхождение квантифицированной переменной в область действия кван-
тификации является связанным, любая другая переменная в данной области, не
являющаяся связанной, называется свободной.
Рассмотрим формулу Vjc(/?(jc,y)—>3y(M[x,y,z)/\Q{x,y)fj. Здесь все
вхождения переменной х связанные, так как попадают в область действия квантора Vjc ,
которая включает в себя все предикаты: R,M и Q (следите за скобками). А вот первое
вхождение переменной у (в предикате R) - свободное. В дальнейшем у попадает
в область квантификации Зу и является связанным (в предикатах М и Q).
Переменная z - свободная.
Каждую предикатную формулу можно интерпретировать, т. е. оценить ее как И
или Л. При этом можно оценить «перекрытие» кванторов на одну и ту же
переменную: \/хЭхР(х) интерпретируется как 3jcP(jc), а Зх\/хР(х) интерпретируется как
\/хР(х).
6.2. Исчисление предикатов как аксиоматическая система
87
Это и понятно: вместо того, чтобы Говорить: «из всех х существует хотя бы один
jc, при котором Р истинен», достаточно сказать просто: «существует хотя бы один х
и т. д.». И наоборот, чтобы не говорить странное словосочетание «существует хотя
бы один х такой, что для всех х Р истинен», достаточно сказать «для всех х ...».
(Для запоминания: из двух кванторов «прав» самый правый).
Будем понимать под А предикат А(х,у) и отметим важные соотношения:
VjcVyA = Vy VxA,
3x3yA = 3y3xA, (6.1)
т. е. одноименные кванторы можно менять местами. Иное дело разноименные
кванторы. Здесь выполняется только такое условие:
Зх\/уА —> УуЗхА. (6.2)
Последняя импликация поясняется следующим примером. Пусть имеем для
целых чисел истинное утверждение: Vy3x(x + y = 0) (для любого у найдется такой х,
что выполняется равенство х+у=0). Переставим кванторы: 3xVy(x+ у = 0).
Получим выражение: существует такой х, при котором выполняется условие (х+у=0) для
всех у, что некорректно.
Система базовых аксиом W в ИП может быть принята такой же, как и в ИВ.
Однако к ней необходимо добавить аксиомы, учитывающие появление кванторов:
(А4) Vx/>(x)->P(y),
(А5) />(у)->ЭхР(х).
А4 говорит, что если Р(х) истинен для всех х, то он истинен и для некоторого у
из этого же универсума (если все яблоки в данном ящике красные, то одно-то
красное уж найдется всегда).
А5 говорит, что если найдется у, при котором Р(у) истинен, то верно, что
найдется хотя бы один х, для которого предикат Р(х) тоже истинен (даже если х совпадает
с у). (Если среди яблок в данном ящике нашлось одно сладкое, то уже существует
по крайней мере одно сладкое).
Правила вывода R здесь остаются прежними: правило подстановки и правило
заключения, но они дополняются еще одним правилом, учитывающим свойства
кванторов. Это правило называется правилом специализации. Суть его в следующем:
если ппф VxP(x) истинна и Ь - некоторая константа, то формула Р(Ь) также истинна,
т.е. справедливо VxP(t) = P(b). Пусть, например, имеются формулы
Vx (Р (b) -» Q (х)) и Р(Ь). Если они истинны, то, применяя специализацию, имеем
ряд теорем:
v*(i>(ft)-> е(б)).
т. е. Р (Ь ) —» Q (Ь ), (специализациях где Q(b) (modus ponens с P(b)).
88
6. Теория предикатов
6.3. Примеры предикатов
Разберем несколько примеров построения предикатов.
1. «А вы, друзья, как ни садитесь, все ж в музыканты не годитесь». Обозначим
через х - способ рассаживания музыкантов, у - качество исполнения, Р(х,у) -
предикат, связывающий способ рассаживания и качество исполнения. Окончательная
формула: \/хР(х,у).
2. «Кто не работает, тот не ест»:
Vjc(P(jc)->£(*))•
Здесь х - человек, Р - предикатная константа РАБОТАТЬ, Е - предикатная
константа ЕСТЬ.
3. «Болтун - находка для шпиона»: \/хЗуР(х,у), где «роли исполняют»: х -
болтун, у - шпион, Р - НАХОДКА.
4. Приведенный в начале главы пример силлогизма о Сократе можно переписать
так: для всех х, если х - человек, то х - смертен; Сократ человек; (следовательно)
Сократ смертен. Обозначим через М «быть смертным», через И «быть человеком». Мы
приходим к следующей формуле:
Vjc((// (х)-> М {х))лН (Сократ))-> М(Сократ)).
(Сократ здесь - индивидная константа).
5. «В каждом городе найдется краевед, который покажет достопримечательности».
\/x(G(x)-*3y(s(x,y)AP(z,y))).
(Если х - город (G), то найдется такой краевед (у), ЖИВУЩИЙ - В (S), который
ПОКАЖЕТ (Р) достопримечательности z.)
Здесь к месту отметить некоторые особенности при переводе с живого языка
на язык предикатов. Имеется русская фраза: «Каждый студент учится». В логической
интерпретации это можно отобразить такой формулой:
6. Vjc(S (х) -> L(x)), где S - СТУДЕНТ, L - УЧИТСЯ.
Но вот есть другая фраза: «Некоторые студенты спортсмены». Ее логический
эквивалент:
1.3x(S(x)aP(x)) (Р-СПОРТСМЕН).
Фразы 6 и 7 очень похожи, но замена прилагательного «каждый» на «некоторые»
потребовала не только замены квантора V на 3, но и замены связки —> на л.
И еще. Формулы ИП часто можно писать по-разному на один и тот же словесный
текст, пользуясь разной степенью «детализации». Например, короткую фразу из
примера 3 можно записать более подробно:
8.Vjc((M(jc)A^(jc))-^3yP(;c,y)), где М - ЧЕЛОВЕК, В - БОЛТУН, Р -
НАХОДКА, у - шпион.
6.4. Преобразование формул
89
А теперь вам предлагается несколько упражнений.
1. Попробуйте представить в виде предикатных формул следующие фразы.
- Кто весел, тот смеется.
- Кто-то привык за победу бороться.
- И никто ему по-дружески не спел.
- Всяк сверчок знай свой шесток.
- И никто не узнает, где могилка моя.
- А девушке в семнадцать лет какая шапка не пристанет!
- Все цветы мне надоели, кроме розы.
- Есть многое на свете, друг Гораций,
что и не снилось нашим мудрецам.
- Немногие вернулись с поля,
не будь на то Господня воля,
не отдали б Москвы.
2. Пусть L означает ЛЮБИТЬ, ц - цветы, к - конфеты, х - девушка. Переведите
на русский язык выражения:
\/хЦх,ц),
ЗхЦх,к)<
ЗхЬ(ХуК),
Зх(Цх,ц) а Цх,к)),
Эх(1(х,к)->1(х,ц))-
6.4. Преобразование формул
Так же, как и в исчислении высказываний, формулы ИП могут быть
общезначимыми, выполнимыми (нейтральными) или невыполнимыми (универсально
ложными). Вообще говоря, это можно проверить, построив таблицу истинности. Но как это
сделать, если предикаты содержат переменные, значения которых в общем случае
могут меняться неограниченно? Особенную сложность придает наличие кванторов.
Доказать общезначимость при таких условиях совсем не просто. Более того, было
показано, что вообще невозможно найти универсальный метод установления факта
общезначимости квантифицированных выражений, так что даже говорят о
неразрешимости исчисления предикатов. Но все это - в общем случае. Практически
выполнимость многих формул устанавливать удается, если обозначена область D, в
которой связанная переменная х принимает свои значения. Если при этом известны
истинностные значения формул А(х) и В(х\ то легко определяются значения и для
формул A,Aa#,Av£,A—»#идр.
Формула \/хА(х) получает значение И, если А получает значение И для каждого
х из D.
Формула ЗхА(х) истинна, если А истинна хотя бы при одном значении х из D.
Пусть, например, х принимает значения в области D = (1,2,3) и известно, что
А(1) = Л, А(2) = И, А(Ъ) = Л. Формула \/хА(х) означает: для всех х А(х) истинна. Это
90
6. Теория предикатов
условие у нас не выполняется, поэтому УхА(х)=Л. Формула ЗхА(х) означает:
существует л:, при котором А(х) истинна. Очевидно, что здесь ЗхА (*) = И.
Были найдены процедуры, позволяющие устанавливать общезначимость
некоторых ппф, в этом смысле стали говорить, что исчисление предикатов является
полуразрешимым. Что же касается свободных переменных, то в большинстве случаев их
достаточно конкретизировать, т. е. заменить на некоторые постоянные.
При преобразовании формул ИП используются те же приемы: снятие и
ограничение отрицания, исключение импликации и эквивалентности, применение законов
алгебры логики и правил равносильности и т. п. При действиях со связками
необходимо учитывать особенности квалификаций.
Пусть имеется формула А, не содержащая переменную х. Очевидно, в этом
случае она не подпадает под действие квантора по х, т. е. VxA = А и ЗхА = А . Пусть
теперь имеется формула В, содержащая свободную переменную х: В = В(х). Тогда
справедливы следующие равносильности:
Vjc£(*)vA= Vjc(B(jc)vA),
VxB(x)aA = Vx(B(x)aA),
3xB(x)vA = 3* (B(x) v A), J}
3xB(x)aA = 3x(B(x)aA).
Если же формулы А и В обе содержат свободную переменную х, то справедливы
равенства:
\/хА(х) а Ух В(х) = V* (А(х) а В(х)),
3jc А(х) v Зх В(х) = Зх (А(х) v В(х)). ( '
(Квантор V можно распределять по л (//), квантор 3 можно распределять по v
(ИЛИ).)
Дело осложняется, если требуется распределить квантор V по ИЛИ, а квантор 3
по И. В этом случае равносильности, подобные (6.4), не выполняются. Тогда исходят
из следующих соображений.
Любая связанная переменная в ппф может принимать какие угодно
наименования, так что можно написать, например: \/хА(х) = \/zA(z) (то же и для 3). Это
действие называется переименованием переменных. Всегда стараются сделать так, чтобы
каждому квантору соответствовала только одна переменная. Это значительно
облегчает работу с кванторами. В дальнейшем мы будем широко этим пользоваться. Вот
и в данном случае:
VxAWv VjcB(jc)=VjcA(jc)v VzB(z)=Vх\/z(A(x)vB(z))>
3xA(x) a 3xB(x) = 3jcA(jc)л 3zB(z)= 3x3z(A(x)лB(z)Y (6.5)
(При выносе кванторов за скобки теперь уже использовались соотношения (6.3),
так как B(z\ например, не зависит от х и т. п.).
Этот же прием можно использовать и в равенствах (6.4), т. е. справедливо:
V хА(х) а V хВ(х) = V х V z(A(x) a B(z)) и т. п.
Здесь и в дальнейшем будем обозначать для удобства:
ЧхР(х)*>УхР(х) и ЗхР^с)^>ЗхР(х)-
6.6. Исключение квантора существования
91
Из общего смысла квантификаций нетрудно понять следующие равенства
преобразования отрицаний:
VjcP(jc)=ЗхР(х); ЭхР(х) = VjcP(jc) . (6.6)
откуда легко получаются правила замены одного квантора другим:
VxP(x)=3xP(x) i 3xP(x)=VxP(x) • (6-7)
В процессе преобразований нам потребуются новые термины. Назовем
литералом атом или его отрицание; дизъюнктом - дизъюнкцию литералов (в ИП это чаще
называют предложением), матрицей - формулу, не содержащую квантификаций.
Если мы имеем матрицу, то дальнейшая работа с ней, в сущности, сводится
к преобразованиям, аналогичным тем, которые мы проделывали с формулами
исчисления высказываний. Да и цели-то бывают, в общем-то, те же: преобразование
и представление в канонических (нормальных) формах, доказательство
общезначимости (или невыполнимости), определение логического следствия (чаще всего по
методу резолюций). Но для этого нужно научиться получать матрицу, т. е. научиться
корректно переходить от формул с квантификациями к формулам, уже не
содержащим никаких кванторов. Но сперва еще раз о переименованиях связанных
переменных, только более подробно.
6.5. Стандартизация переменных
Связные переменные находятся под действием квантора, и поэтому
переименовывать их можно только одновременно с квантифицированной переменной, стоящей
после квантора. Совершенно безразлично, как обозвать квантифицированную
переменную. Если у нас есть формула V jcP(jc), то ее можно переобозначить, например,
V zP(z). Значение истинности ппф при этом не изменится. Такой прием называется
переименованием. Им пользуются для разделения переменных с тем, чтобы каждый
квантор имел свою, свойственную только ему, переменную. Выше мы уже
пользовались этим приемом при выводе соотношений (6.5). Если в формуле
\/ х(Р(х)—> 3x(R(x,z))) провести переименование, то можно получить, например,
выражение Vx(P(jc) -> 3y(R(y,z))) (z просто свободная переменная). Такой прием
разделения переменных носит еще название стандартизации.
6.6. Исключение квантора существования
Если А не содержит jc, то очевидно: V хА = А и ЗхА = А. «Очевидно» - потому
что кванторы здесь ничего не определяют и не дают. Это элементарный пример
исключения кванторов.
Рассмотрим теперь формулу ЗхР(х) (существует хотя бы один х, при котором
Р(х) = И). Пусть этот х будет равен с, тогда указанная формула запишется просто
Р(с). Константа с любая, однако она не должна совпадать с другими символами,
применяемыми в других формулах. Это - второй пример исключения квантора
существования. Он касается случая, когда сам квантор 3 не находится в области действия
какого-либо квантора общности.
92
6. Теория предикатов
Рассмотрим теперь формулу V jc 3 уР(х,у) (для всех х существует по крайней мере
один у такой, что выполняется предикат Р(х,у)). Ясно, что у, удовлетворяющий этому
условию, как-то зависит от х. Эту зависимость можно отобразить с помощью
некоторой функции, например, g(x). Эта функция теперь заменяет у, а квантор
существования можно просто убрать:
V хР(хф)).
Функция типа g(x\ отображающая каждое значение х в «тот самый у»,
называется функцией Сколема или сколемовской.
Особенности:
1) если квантор 3 стоит перед квантором общности V , то он не находится в
области его действия и поэтому заменяется, как в прежнем примере, некоторой
константой:
3xVyP(x,y) = \/уР(а,у).
2) если квантор 3 находится в области действия нескольких кванторов общности,
то соответствующая ему переменная заменяется сколемовской функцией от
соответствующего числа переменных (мест):
V х V у V г 3 wP(x,y,r,w) = V л: V у V rP(x,y,r,g(x,y4r)) -
«собственная» переменная квантора существования w заменяется сколемовской
функцией g, зависящей от всех квалифицированных переменных, в сфере
действия которых она находится.
3) Следующий пример говорит сам за себя:
ЗхЗуР(х,у) = Р(а,Ь).
Еще один пример:
V х[Р(х,у) а 3y{M(yfz) v R(y,z,q))]= V х[(Р(х,у) a (M(g(x\z) v R(g(xUq))].
Сколемовская функция g(x) заменяет у во всех местах его вхождения в области
действия квантора 3.
Рассмотрим и осмыслим теперь такой обобщающий пример:
Дано:
3 z v хЗ н v у У г 3 w 3 j v v3 qM(ZyXyu,y,r,w,s,v,q).
После сколемизации:
'V х V у V г V vM(ayxJ[x)iy4r,g(x,y,r),h(xiyyr)iv,p(x,y,riv)).
6.7. Предваренная форма
Полученная только что, после сколемизации, формула имеет вполне
определенный вид. Она состоит из цепочки кванторов, называемой префиксом и бескванторной
формулы, называемой матрицей. Представить какую-либо формулу в виде префикса
и матрицы - это значит представить ее в предваренной форме. Особенность
предваренной формы в том, что все кванторы оказываются вынесенными влево за пределы
общей формулы, а часть, оставшаяся без кванторов, может быть подвергнута всем
возможным преобразованиям, в частности быть представленной в конъюнктивной
нормальной форме, такой необходимой нам для реализации принципа резолюции.
6.9. Приведение матрицы к КНФ
93
Для любой логической формулы существует логически эквивалентная ей
предваренная форма.
Это правило вытекает из тех преобразований, которые необходимо для этого
проделать, - они известны и всегда выполнимы:
• исключить связки эквивалентности и импликации;
• переименовать (если необходимо) связанные переменные таким образом, чтобы
каждый квантор имел свою переменную;
• удалить те квантификаторы, область действия которых не содержит
квалифицированной переменной, как ненужные;
• ограничить область действия отрицания;
• провести сколемизацию;
• переместить все кванторы общности в начало формулы, образовав префикс
и матрицу.
К моменту последней операции перемещения кванторов связанные переменные
уже разделены, каждый квантор общности имеет свою переменную, независимые
переменные заменены постоянными (конкретизация). Будучи перемещенным в начало
формулы, он и все равно распространяют влияние лишь на «свои» переменные.
Широко используются приведенные ранее равносильности (6.1)—(6.7). Может
пригодиться еще и правило раскрытия импликации:
3 х(А(х) -> В(х)) = V хА(х) -> 3 хВ(х). (6.8)
6.8. Исключение кванторов общности
Получение предваренной формы - важный этап в деле преобразования исходной
формулы ИП. Дальнейшая работа будет проводиться с матрицей, все переменные
которой относятся к тому или иному квантору общности. Роль цепочки кванторов
(префикса) в данном случае - в простом напоминании об этом факте. К тому же
порядок кванторов общности роли не играет. Если все это принять во внимание, то
префикс вообще можно убрать и предположить по соглашению, что все переменные
относятся к своим кванторам общности. Остается одна матрица.
6.9. Приведение матрицы к КНФ
Если теперь рассматривать матрицу как логическое выражение, связывающее
посредством пропозициональных связок некоторое количество литералов, то процесс
приведения любой матрицы к конъюнктивной нормальной форме будет мало чем
отличаться от такого же процесса в рамках исчисления высказываний. Процесс этот
всегда возможен, и конечный итог известен: матрица будет представлена в виде
конъюнкции дизъюнктов (каузальная форма). Дизъюнкт, напомним, в исчислении
предикатов называется предложением. Знаки конъюнкции можно опустить, и все
множество полученных предложений представить в виде столбца, рассматривая
каждое из них как некую исходную гипотезу (как это мы делали с дизъюнктами в
процессе логического вывода в ИВ).
94
6. Теория предикатов
6.10. Обобщающий пример
Привести заданное выражение к системе предложений.
V х{ V у[Р Осу) -> 3 xQ(x, h(y))) -> V х 3 yR(a,y,x)}.
Освобождаемся от импликаций.
\/х{ Vy[P(x,y)v 3xQ(x,h(y))]v Vx3yR(a,y,x)}.
Переносим и снимаем отрицания [согласно (6.6) и др. правилам]:
V*{ 3y[P(x,y)v3xQ(xMy))]vVx3yR(a,yiX)}>
V*{ Зу [P^^aIcQU^^vV^/?^,};^)}-
Окончательно:
Vx{ Зу [P(jc,y)A3jceU,A(y))]Wx3y/?(a,y,x)}.
Проводим стандартизацию: каждый квантор должен иметь свою переменную.
С этой целью переименуем в средней формуле (для Q) х на и, в последней формуле -
х на z, у на и>:
Vjc{3y [PU,y)AVMQ(w,A(>'))]vVz3H'/?(a,w,z) }.
Исключаем кванторы существования. Заметим, что квантор Зу находится в
сфере действия V х и распространяется на квадратные скобки, а квантор 3 w - в сфере
действия V х и V z, соответственно вводим функции Сколема.
V*{ [/>(*, Д*))лVuQ(uMf(x)))]v VzR(a,g(x,z),z)}.
Выносим кванторы общности влево, за скобки, образуем предваренную форму:
V хV и V z { [Р(х, f(x))лQ(uMfW))]vR(a,g(x,z),г) }.
Опускаем кванторы общности, полученную матрицу приводим к КНФ:
[/>(*, f(x)) л Q(u, h(f(x)))] v Я(я, £(*, г), z) =
= (раскрывая конъюнкцию по дизъюнкции) =
= (P(x,№ v R(a,g(x,z),z)) л (Q (и,Л(Д*))) v R(a,g(x;Z),z))
Окончательно получаем систему предложений:
l)P(x,j{x))vR(a,g(x,z),z)),
2) Q(u,h(j{x)))v R{a,g{x,z),z)).
Хорошо, что мы научились приводить выражение в предваренной форме к
системе предложений. Но для того, чтобы идти дальше и проводить с ними процесс
резолюции, нам необходимо уметь находить контрарные литералы, что при участии
многоместных предикатов с различными переменными становится делом весьма
непростым. Пусть, например, имеются предложения:
DQ_(u)vP(A),
2) Q(w)vP(w),
6.11. Подстановки и унификация
95
з) ewvp (х)
4)Q(y)vP (у).
Судя по предикатным символам, здесь вполне возможна резолюция. Но
различные переменные не дают нам делать это непосредственно. Необходимо делать
подстановки.
6.11. Подстановки и унификация
Пусть имеется формула P(x,y,z). Ввести подстановку s - значит определить
множество пар типа s = {t{/x, t^y, t^/z},позволяющих заменить х на t\, у на гъ z на f3
во всех местах их вхождений. Полученная формула равносильна прежней: P(x,y,z) =
= P(fh tb h).
Подстановки открывают широкие возможности при преобразовании формул.
Простейший пример. Дана формула
P(xJ(y),z)*P{atb,r).
Введем подстановку sx = [a/x,b/fiy),r/z} для первого предиката и получим:
Р(а,Ь,г)лР(а,Ь,г) = P(a,b,r\ т.е. произошла «склейка» - распространенный прием
в процессах вывода.
Проводя подстановки, надо следовать следующим правилам:
• подстановки применяются только для свободных переменных, в том числе и для
функциональных, во всех местах их вхождений в данную формулу (предложение);
• переменную можно заменить константой, но нельзя константу заменить
переменной;
• переменная не может быть заменена на терм, содержащий ту же самую переменную;
• подстановки могут касаться только некоторых термов предиката, остальные
термы остаются без изменения;
• одна функция не может подставляться вместо другой, но может заменять
переменную-аргумент;
• нельзя вместо свободной переменной ввести уже связанную, другими словами,
вводимое подстановкой вхождение переменной не должно попадать в область
действия квантора, связывающего данную переменную.
К последнему правилу приведем простой пример. Формула Зу(х<у) отображает
вполне корректное математическое условие (для любого х всегда найдется такой у,
что х < у). Некорректная подстановка у/х приводит к ложному суждению: Зу (у < у).
Если к формуле Е применена подстановка $ь то пишут Esx. Так, если к предикату
Р(*Яу)>В) применена подстановка s\ = {z/x,w/y}, то можно написать P(xj(y),B)s\ =
= P(zAw),B).
Если к полученной формуле применить еще подстановку s2={C/z, D/flw)}, то
получится Р(дС,Ду),В)5!52 = P(C,D,B).
Если все термы предиката не содержат переменных, то мы имеем «основной
частный случай» («основной пример»).
Последовательное применение подстановок называется их композицией.
96
6. Теория предикатов
Некоторая подстановка s называется унифицированной (унификатором), если ее
применение к ряду формул ЕЬЕЪ ... делает их равными: E\s = E2s = E3s ... Например,
подстановка s = {А/х,В/у} унифицирует формулы P(x,fiy),B) и P(x,fiB)fB) и дает
P(A,fiB),B).
Примечание. Обратите внимание, что предикатные символы при этом должны быть одинаковыми.
Освоить технику унификации совершенно необходимо. В процессе резолюции,
например, контрарные литералы должны быть идентичны, что как раз и достигается
их унификацией. Разберем поэтому несколько показательных примеров.
Пример 1. Унифицировать множество литералов:
{Р(а,х), Р(у,ЛЬ))}.
Поиск возможных подстановок начинаем с установления различий в термах
обоих литералов, начиная с левых позиций. Первое рассогласование: (а,у). Так как
переменной здесь является у, то вводим подстановку s\ = (а/у). Получаем пару литералов
[Р(а,х), Р(а,ЯЬ))}.
Очередное рассогласование: (xj(b)). Теперь уже вводим подстановку s2 = (J[b)/x):
{P(a,J[b)), P(a,J(b))}. Унификация состоялась. Общая подстановка имеет вид su =
= SiS2 = (a/y,f(b)/x).
Подстановка su, определенная таким образом, называется наиболее общим
унификатором - ноу.
Пример 2. Определить ноу для пары литералов
P(x,J{x),z)hP(A,u,u).
Начинаем с левых позиций. Рассогласование: (х,А), подстановка si = (А/х),
литералы: P(A,f(A),z) и Р(А,и,и). Рассогласование: (ДА),м), s2 = (J(A)/u), литералы:
P(AMU) и P(A,j{A),flA)). Рассогласование: (гДА)), s3 = (ДА)Д).
Окончательно:
Р(А,М№))"Р(А,ЛА)ЛА)).
Наиболее общий унификатор su = s\s2s3 = (A/x,fiA)/u,J{A)/z).
6.12. ВЫВОД В ИСЧИСЛЕНИИ ПРЕДИКАТОВ
Так же, как и в исчислении высказываний, проблема вывода в ИП сводится
к проблеме дедукции, т. е. к решению вопроса: является ли формула В логическим
следствием множества формул {£}. Напомним, что ппф В является логическим
следствием множества {Е}, если она принимает значение И всякий раз, как только все Ei
одновременно принимают значение И. Вопрос решался через доказательство
теоремы дедукции, которая справедлива и в ИП, с учетом, впрочем, ряда оговорок и
условий, касающихся действий со связанными и свободными переменными. Так же, как
и в ИВ, встает проблема определения общезначимости той или иной формулы. И
решается она примерно так же, т. е. как минимум 5 способами, каждый из которых
применим в ИП:
1) оценка с помощью таблицы истинности,
2) оценка через преобразование, упрощение и приведение к нормальным формам,
3) оценка путем логического вывода из системы аксиом,
4) оценка методом редукции,
6.12. Вывод в исчислении предикатов
97
5) оценка методом опровержения.
Однако самым эффективным средством порождения и/или доказательства
следствий здесь по-прежнему является метод резолюций.
В ИП резолюция применяется к предложениям, представляющим из себя
дизъюнкцию литералов, каждый из которых, в общем случае, содержит различные
переменные. Очевидно, что родительские предложения должны содержать контрарные
литералы, идентичные по форме. Идентичность литералов достигается при этом
применением соответствующих подстановок и унификации.
Пусть, например, у нас имеется 2 родительских предложения L и М, содержащие
соответственно литералы / и т, которые допускают общую подстановку-унификатор
s такую, что (l)s = (m)s (без учета инверсии). Теперь возможна резолюция, которая
«уничтожит» оба этих литерала, но при этом надо помнить, что подстановка
возможна только для предложения в целом. Поэтому результат резолюции можно записать
в виде нового предложения, объединяющего (U) оставшиеся литералы:
(L-t)s U(A/-w)5. (6.9)
Родительских предложений может быть несколько, также как и пар контрарных
литералов. Резольвенту (6.9) перепишем теперь в общем виде:
а-{/,})5и(М-{т,})*. (6.10)
Рассмотрим следующий пример. Имеется 2 предложения:
L:P[xJ(A)}vP[x,fly)]vQ(y),
М: P[zAA)]vQ(z).
Для резолюции выбираем литералы: l=P [xJ(A)] и т= Р [zflA)].
Подстановка s = z/x для них является унификатором (применяя ее к [). Но при
этом все предложение L примет вид:
La:P[z№)]vP[zjiy)]vQ(y).
Результат резолюции La и М согласно (6.9):
^fc/WlvQOOv Q (z).
Совершенно иной результат получится, если выбрать множество {/,}= (Р [xj(A)],
Введем унификатор s = (z/x, А/у). Исходные предложения принимают вид:
Lb:P[z,AA)]vP[z,AA)]vQ(A),
М: ~Р [zM)]v Q (z).
Два первых литерала предложения Lb склеиваются в один, и в результате
получится резольвента Q (A) v Q (z).
Здесь возможны и другие резолюции, в частности, по Q.
Примечание. Термы в многоместном предикате не могут меняться местами, поэтому литералы Р
(хДу)) и Р (f(y),x) не идентичны. Это следует учитывать в процессе резолюции.
4 3ак 1029
98
б. Теория предикатов
Так же, как и в исчислении высказываний, метод резолюций - основной
инструмент доказательства логического следствия по методу опровержения. Принцип
дедукции, который при этом реализуется, все тот же: если ппф В является логическим
следствием системы {£}, то справедливо {Е, В)иДт.е. множество {Е,В } имеет
своим следствием пустой дизъюнкт. Надо только помнить, что все формулы здесь -
ппф в смысле исчисления предикатов со всеми вытекающими отсюда действиями и
ограничениями.
Пусть заданы две гипотезы:
1. V х[Р(х) v 3xQ(x) v R(x)]y
2. VyQ(y).
Требуется доказать, что выражение
3. Б zP(z) —> V zR(z) является логическим следствием этих двух. Следуя
принципу дедукции, находим отрицание выражения 3:
(3zP(z)->VzR(z)).
Исключая импликацию и приводя в порядок отрицания, получаем:
&:P(z) WzR(z))=(3zP(z)WzR(z)) =
= 3zP(z)a4zR(z) = VzP^a 3*ад
(после переименования и сколемизации - к предваренной форме),
Vz Р(Г) a 3uR(i?) = Vz 7(7) л Jl(b).
Или окончательно:
Гипотеза 1 преобразуется просто (вводится функция Сколема):
5. V jc[P(jc) v 3 wQ(w) v R(x)]= V х[Р(х) v Q(g(x)) v /?(*)],
а для гипотезы 2 используем равенство:
6. Ъ0(у) = ^у0{у) = 0{4
Кванторы общности в предваренных формах выражений 4 и 5 теперь можно
опустить. Мы приходим к системе предложений
b)P(x)vQ(g(x))vR(x),
б) Q(a),
в) P(z),
r)R(b).
(Знак л в матрице выражения 4 опускается, и она распадается на 2 предложения
в) и г)).
Теперь можно проводить резолюции. У каждой резольвенты будем указывать
унификатор, позволяющий ее получить.
6.13. Примеры применения метода резолюций
99
a)Q(g(z))vR(z),s = z/x (а, в)
t)Q{g{B)),s = Blz (г,д),
ж)Л,5 = А/8(В) (б,е).
Логическое следствие доказано.
6.13. Примеры применения метода резолюций
Пример 1. Ранее нами был рассмотрен силлогизм о Сократе и получена
соответствующая предикатная формула:
V *((//(*) -» М(х)) а ЩСократ)) -»М{Сократ).
(Здесь Н - быть человеком, М - быть смертным). Требуется доказать, что эта
формула общезначима. Докажем это методом опровержения: формула общезначима,
если ее отрицание невыполнимо. Берем отрицание исходной формулы (Сократ
обозначим С):
(У*((Я (х) -> М (х)) а Н (С)) -> М (С)).
Исключаем импликации, работаем с отрицаниями.
(Vjc((77(jc) v М (*)) л Н{С)) v М(С)),
(Зх((Н(х) v М (х)) а Н(С)) v М (С)),
(3x((77(jc) v Л/ (jc)) v А/ (О) vAf(C)),
(Зх((Н(х) а М(х)) v Н (С)) v Л/(С)),
Vx((//(ж) л M(jc)) v «(О) л Л/(С),
Ух((Н(х) а М(х)) а Н (С)) л М(С),
Ух((7Нх)уМ(х))аН(С))лМ(С).
Мы получили предваренную форму в конъюнкции с М (С).
Опуская квантор общности и ненужные скобки, получаем выражение, уже
представленное в КНФ:
(77 (х) v М (х)) а Н (С) л ¥ (С).
Таким образом, получается следующая система предложений:
1) H(x)vM{x),
2) Я(С).
3) М(С).
Применяя подстановку s=C/x, проводим резолюцию.
4)М(0, (1,2)
5) Л. (3,4)
Общезначимость исходного силлогизма доказана.
100
6. Теория предикатов
Пример 2. Посылка: каждый предприниматель, который занимается бизнесом,
получает прибыль. Заключение: если прибыли нет, никто заниматься бизнесом не
будет. Введем обозначение предикатных констант: S(x,y) -х ЗАНИМАЕТСЯ ДЕЛОМ у,
В - БИЗНЕС, Р - ПРИБЫЛЬ-, R(x,y) - х ПОЛУЧАЕТ у. Посылка запишется в
следующем виде
V х( 3 y(S(x,y) л В(у)) -> 3 у(Р(у) л R(x,y)))
(если у каждого предпринимателя дс есть дело у И это дело - бизнес В, то это дело
приносит прибыль Р, И он ее получает (/?)), а заключение - в виде
ЪР(х) -> VjcVy (S (х, у) -> В (у))
(если никто не получает прибыль, то каким бы делом он ни занимался, это будет
не бизнес).
Представим посылку в виде системы предложений. Исключаем импликацию
и делаем преобразования.
Vx(3y(S(x,y)AB(y))v3y(P(y)AR(x,y))),
Vx(yy(s(x,y)AB(y))v3y(P(y)AR(x,y))),
\/x(Vy(S(x,y)vB{y))v3y(P(y)AR(x,y))).
После сколемизации - к предваренной форме:
Vx(yy(S (х, y)vB(y))v3w(P(w)AR(x, w))),
Vx(Vy(s(x,y)vB(y))v(p(f(x))AR(x,f(x))j)
[заметим, что квантор 3 w (после переименования) зависит только от V дс]. Матрицу
приводим к КНФ:
(S(x,y)v B(y))v(P(f{x))AR(xj(.x))
и, раскрывая конъюнкцию, окончательно получаем предложения посылки
1)JW)v fi(>)v/>(/(*)),
2)S(x,y)v B(y)vR(xj{x)).
Теперь займемся заключением. Надо найти его отрицание.
(ЗхР(х) -> 4xVy(S(x, у) В(у))),
(5cP(jc) v VWy(S(x, у) у В(У))).
(3xP{x)v\/xVy(S(x,y)v~B(y)))
»
ЗхР(х) a VjcVy(5(jc, у) v В(у))
Vx~P(x)A3x3y(S(x,y)vB(y))
VzP(z)A3x3y(S(x,y)AB(y)),
(переименование и сколемизация)
VzP(z)a(S(a,b)AB(b)).
6.13. Примеры применения метода резолюций
101
Матрица: P(z) л S(a,b) л B(b).
Предложения от заключения:
3) P(z),
4) S(a,b),
5) B(b).
Резолюции для всех предложений 1-5:
6) S(;t,y)v 5(у)(1,3)(рШ
7) Bib) (4.6) (5=я/х, bly\
8) Л (5,7).
Наконец, рассмотрим еще один пример, который пригодится нам в дальнейшем.
Пример 3. Имеются следующие утверждения:
Кто работает с интегралами, тот математик.
1. Vjc[#(jc)->A/(jc)].
Дети не математики
2. \/х[Д(х)-> Mix)].
Некоторые дети обладают математическими способностями.
3. Зх[Д(х)лС(х)].
Требуется доказать следующее заключение. Некоторые из тех, кто имеет
способности к математике, не работают с интегралами:
4- Зх[С(х)лИ{х)У
Первое и второе утверждения приводятся к предложениям
#(jc)vA/(jc).
2'. Д{х)уМ{хУ
. В третьем проведем сколемизацию, оно распадается на 2 однолитерных
предложения:
З'.Дя);
4'. da).
От четвертого надо взять отрицание.
Зх[С(*)лЯ(х)].
V4C(jc)a#(jc)]>
V4C(jc)v #(*)]•
Получаем последнее предложение
5- C(jc)v//(*)•
С предложениями Г-4' и 5 проводим резолюцию (соответствующие подстановки
подразумеваются).
6. И id) (4\5).
I.Mia) (б,Г).
8. Д (в) (7,2').
9. Л (8,3').
102
6. Теория предикатов
6.14. Стратегии резолюции
Речь идет о применении метода резолюций при реализации опровержения. Если
резолюции нужны нам только лишь для порождения возможно большего количества
следствий, то это вопрос не слишком острый. Ибо именно порождение большого
количества резольвент является свойством и особенностью применения резолюций. Но
тут возникает вопрос о выборе эффективной стратегии поиска результата, вопрос,
пока еще не нашедший однозначного решения.
Метод полного перебора - самый простой по идее и по алгоритму. Еще он
называется методом поиска в ширину. Знакомое название. А удивляться нечему:
множество резольвент - это ведь математическая модель, отображающая множество
состояний предметной области. Поиск в пространстве состояний в определенном
смысле аналогичен поиску решения на множестве резольвент.
Начинается он с поиска резольвент между предложениями базового множества.
(Базовым будем называть множество предложений посылок вкупе с предложениями,
полученными при отрицании заключения.) Это будут резольвенты первого уровня.
По мере их вычисления они подсоединяются к концу списка предложений. Далее
вычисляются резольвенты 2-го уровня как результаты резолюций базового множества
дизъюнктов и дизъюнктов 1-го уровня или их потомков и т. д. Метод можно
проследить на простом примере. Пусть S - заданное множество (4 дизъюнкта).
S: Резольвенты:
1-й уровень
2-й уровень
PvQ
Q
(1,2)
PvQ
(1,7)
PvQ
P
(1.3)
PvQ
(1,8)
PvQ
Qv Q
(1.4)
PvQ
(1,9)
PvQ
Pv P
(1.4)
PvQ
(1,10)
ev e
(2,3)
Q
(1,11)
PvP
(2,3)
P
(1,12)
p
(2,4)
Q
(3,4)
ИТ. д.
Этот бесхитростный перебор не сулит быстрого успеха, но зато гарантирует
нахождение пустого дизъюнкта (если он, конечно, имеется). Такая стратегия
называется полной. По указанной стратегии дизъюнкт ЛГ будет 39-м!
Из примера следуют важные выводы. Так, оказалось, что было порождено много
ненужных и потому лишних дизъюнктов. Многие из них повторяются: 5 и 17, 6 и 18,
13-16. Некоторые являются тавтологиями: 7-10. При поиске по методу
опровержения мы ищем невыполнимый дизъюнкт и эту невыполнимость нам нельзя потерять.
Тавтологии же всегда выполнимы, к делу не относятся и могут быть вычеркнуты,
иначе они сами начнут порождать лишние резольвенты. Если из списка
порождаемых дизъюнктов исключать повторяющиеся, а также тавтологии, то число
резольвент значительно уменьшится и метод полного перебора окажется не таким уж
громоздким. Его можно еще более оптимизировать, если применить так называемый
принцип подсуммирования (поглощения).
Пусть у нас имеются 2 дизъюнкта С и D такие, что С=А, D = A v В. С, как видим,
является составной частью D. Говорят, что С подсуммирует D. Если теперь окажет-
6.14. Стратегии резолюции
103
ся, что D невыполним (=Л), то по свойству дизъюнкции С = А=Л. Замена D на С
сохраняет невыполнимость, и D можно просто отбросить: С поглощает D.
Примеры подсуммирования:
С: D:
Av R подсуммирует Av Bv R,
Р(х) подсуммирует Р(у) v Q(z),
Р(х) v Q(E) подсуммирует Р(ДА)) v Q(B)v R(z),
Р(х) v Q(J[x\a) подсуммирует P(q(y)) v Q(J[g(y)\a) v /?(*).
Обратите внимание, что подсуммирование возможно после введения
соответствующих подстановок. Только после этого допустимо поглощение и правые
дизъюнкты отбрасываются в пользу левых.
Вычеркивая ненужные дизъюнкты и применяя подсуммирование, мы в
определенном смысле видоизменяем сам метод полного перебора. Мы применяем теперь
стратегию упрощения. Обладая полнотой исходного метода, такая стратегия
существенно сокращает список резольвент. Алгоритм перебора остается прежним, но
каждая возникающая резольвента анализируется и при необходимости отбрасывается.
Так, рассмотренный выше пример разрешится следующим образом:
Резолюции:
5.6(1.2).
6.PJ1.3).
7. Р (2,4).
8.(2(3,4).
9. Л (5,8) - начало второго уровня.
Дерево опровержения. Выбранную стратегию опровержения удобно отображать
в виде графа с корневой вершиной с пометкой Л. Такой граф не только обладает
наглядностью, но и предостерегает от ошибочных или просто повторных шагов. Выше
мы рассматривали пример с математиками (пп. 6.13). Построим соответствующее
ему дерево опровержения. Для каждого базового предложения отведем свою
вершину. Если две вершины образуют родительскую пару, то ребра, исходящие их них,
будут сходиться к вершине, помеченной их резольвентой-потомком.
Приведенный пример удобен тем, что он иллюстрирует сразу несколько стратегий.
Стратегия опорного множества. Согласно этой стратегии процесс
опровержения строится так, что по крайней мере один из родителей в каждой резольвенте
выбирается из предложений, полученных при отрицании заключения (целевая ппф) или
их потомков (опорное множество). Эта стратегия обладает полнотой, т. е. можно
показать, что если опровержение существует, оно может быть найдено по алгоритму
стратегии опорного множества. Его применение приводит к более медленному росту
числа резольвент, особенно в ширину, при большей интенсивности проникновения
в глубину (увеличивая количество уровней). Такое движение как раз способствует
поиску пустого дизъюнкта. Дерево опровержения на рис. 6.1 могло бы быть
порождено стратегией опорного множества.
104
6. Теория предикатов
5. ОДу И(х) 4- С(а)
/
6.И(а)
2. Д(х)у М(х)
л
Рис. 6. J Дерево опровержений
Стратегия предпочтения одночленам. Можно сказать, что эта стратегия есть
модификация предыдущей. Стратегия эта заключается в том, что на каждом шаге
резолюции мы пытаемся в качестве одной из родительских вершин выбирать одноли-
терное предложение. В такой стратегии заключается определенный смысл: когда
в резолюции используется одночлен, резольвента содержит меньшее по сравнению
с другим родителем число литералов. Процесс целенаправленно движется в сторону
увеличения однолитерных резольвент, что способствует получению пустого
дизъюнкта. Рис. 6.1 может служить примером указанной стратегии.
Стратегия, линейная по входу. Особенность линейной стратегии в том, что в
каждой резолюции одно из родительских предложений принадлежит базовому
множеству. Такое начало нам уже знакомо по стратегии полного перебора. Но там,
повинуясь другой идее, алгоритм постепенно уходит в сторону. Если же следовать
стратегии, линейной по входу, то можно было бы заметить, что она приводит к заметному
снижению порождаемых дизъюнктов. Отметим, что граф опровержения на рис. 6.1
соответствует стратегии, линейной по входу. (Обратите внимание, что в данном
случае на каждом шаге резолюции здесь участвует резольвента, полученная на
предыдущем шаге. Такое дерево называется дерево-лоза.) Заметим, однако, что известны
случаи, когда эта стратегия не приводила к желаемому результату, хотя
опровержение заведомо существовало. Это означает, что стратегия, линейная по входу, не
является полной, что следует учитывать при ее использовании. Так, мы сейчас
рассмотрим простой пример, когда строгое следование лозе не приводит к желаемому и
такому близкому результату, но небольшое изменение в алгоритме дает прекрасный
результат.
Пример. Имеется система предложений:
R(x)v P(jc),
*(y)v Р(у\
R(z)vP(z\
R(h)vP(A).
6.15. Пример решения задачи средствами ИП
105
Соответствующее дерево-лоза приводится на рис. 6.2. Необходимые подстановки
здесь очевидны.
R(x)vP(xj R(y)v Pfy)
Рис. 6.2. Опровержение, линейное по входу, с коррекцией алгоритма
Среди базовых предложений не нашлось однолитерного для образования пустого
дизъюнкта. Резолюция с одним из потомков спасла положение.
6.15. Пример решения задачи средствами ИП
Рассмотрим пример с обезьяной и бананами. Считаем, что модель предметной
области уже построена. Отобразим ее в терминах ИП. Алфавит А ИП, как известно,
кроме символов -i, л, v, —>, ~, V, 3, содержит также:
• индивидные константы,
• предметные переменные,
• функциональные константы,
• высказывания,
• предикатные константы.
Очевидно, что роль индивидных констант здесь будут играть элементы
множества X МПО, т. е. множество имен объектов. У нас это: Обезьяна (О), Ящик (Я), Бананы
(Б). Роль предметных переменных - элементы множества С (множество имен свойств
объектов). В нашем примере это координаты Обезьяны, Ящика и Бананов -
соответственно х, у, с. Область определения для них - множество D точек комнаты. В
качестве функциональных переменных, как правило, выступают операторы (действия).
В нашем случае - множество G = {g\ - подойти, g2 - перенести, #3 - взобраться, g4 -
схватить}. Областью определения функций является множество состояний
предметной области, которое возникает в результате выполнения этих действий. Это
состояния, являющиеся предусловиями и постусловиями применения действий. Обозначим
это множество состояний через S = {sh sb sn}.
106
6. Теория предикатов
Множество R - множество имен отношений. Например:
• НА(0,Я) - Обезьяна НА Ящике;
• У(0,Я) - Обезьяна У Ящика;
• Ъ(0,Б) - Бананы НЕ-В руках Обезьяны и т. п. - готовая предикатная форма
записи.
Координаты объектов введем через одноместные предикаты:
• 0(х) - Обезьяна находится в т. х;
• Я(у) - Ящик находится в т. у;
• Б(с) - Бананы висят в т. с. Здесь (x,y,ceD).
Трехместный предикат делает семантику более гибкой:
• B(Ot Д jc) - Обезьяна и Ящик находятся в т. х;
• У(0,Б,с) - Бананы у Обезьяны в т. с.
Из сказанного видно, что роль термов у нас играют индивидные константы
(0,Я,Б) и предметные переменные (х,у,с). Но этого недостаточно, так как они
описывают лишь отдельные состояния предметной области. Переход из одного состояния
в другое осуществляется под действием операторов gh прилагаемых в данной точке х
к конкретному состоянию s: gi(x,s). Это тоже терм. Следовательно, допустимы такие
выражения (для х,у,с eD; seS):
• В(0, Д у, g\(x,s)) - «Обезьяна и Ящик находятся вт.ув результате применения
оператора подойти к Ящику к состоянию s в т. х»;
• НА(0, Я, у, g2(y,s)) - «Обезьяна сидит на Ящике в т. у в результате применения
оператора взобраться на Ящик к состоянию s».
Используя таким образом язык исчисления предикатов, запишем нашу модель
предметной области в виде следующих аксиом.
1. VxV$[(РЯДОМ (OM,x,s))->B(Orf,y,gi(x,s))] - «для всех х и s: если в состоянии s
Обезьяна и Ящик не находятся рядом в т. х, то Обезьяна может оказаться в т. у, где
находится Ящик, путем применения к ситуации s оператора g\ (подойти к Ящику)
из точки х в точку д;».
2. Vy\/s[(B(Orf,c,g2(y,s)) —> HA(Orf,c,gi(c,s))] - «для всех у*и s: если Обезьяна
и Ящик под действием оператора g2 (перенести Ящик) оказались в точке с, то
Обезьяна обязательно заберется на Ящик под действием g3 (взобраться на Ящик)».
3. (У (0,Б,с,8н))->НА(0,Я,с,8н) - «если в точке с у Обезьяны нет Бананов, то она
НЕ-НА Ящике».
4. РЯДОМ (0,Я,Ь,8н) - « в начальном состоянии Обезьяна и Ящик не находятся
рядом».
5. \/yVs(B(Orf,c,g2(y,s)) - «для всех у и s: Обезьяна и Ящик находятся в точке с
в результате применения оператора g2 (перенести Ящик)» к состоянию s.
(В выражениях 3-4 кванторы V отсутствуют, так как это конкретные
высказывания, характеризующие начальное состояние Sh.)
6.15. Пример решения задачи средствами ИП
107
Поставим теперь вопрос: существует ли такое состояние seS в некоторой точке
xeD, при котором Бананы находятся у Обезьяны? Формально вопрос запишется так:
6. 3 s(y(OfE,x,s)), т. е. мы как бы говорим: «Да, существует такое состояние s».
Требуется, таким образом, доказать, что это утверждение истинно. С точки зрения
формальной логики это случится, если выражение п. 6 окажется логическим
следствием 5 предыдущих посылок:
2. 3. 4. 5)ь->6 .
Как и прежде, будем использовать метод опровержения и, как следствие, метод
резолюций. Для начала приведем выражения, имеющие кванторы, к предваренной
нормальной форме, затем возьмем отрицание от формулы п. 6. В последнем случае
получим цепочку преобразований:
Добавим полученное выражение к пяти вышеприведенным формулам,
представленным в предваренной форме. Получим следующую систему предложений:
Г. РЯДОМ(ОЛх^ B(0,H,y,g\(x,s))\
2\ B(0,X,c,g2(y,s))v НА(ОЛШс,5)У,
3'. y{0,B,c,SH) v Ш(0,Я,с,5н);
4'. ТяДОМ (О,Я, b,Sh);
5'. B(Oj,c,g2(y,s)y,
6\ У(ОЛхЛ
Система из пяти предложений Г-5' непротиворечива по построению (можно
проверить). Если теперь путем подстановок и резолюций мы определим пустой
дизъюнкт в расширенной системе 1 '-6', то это будет означать, что добавление 6' приводит
ее к противоречию. Но 6' есть отрицание выводимого нами утверждения п. 6, и
поэтому само выражение п.6 приводить к противоречию уже не будет (что-нибудь
одно!). И, следовательно, выводимо.
Делаем подстановки, строим резольвенты.
Резольвенты Подстановки
Нашли «пустой» дизъюнкт. Это значит, что наше утверждение. 3 s(y(0,E,x,s))
верно: «Да, существует такое состояние s, при котором Бананы в руках у Обезьяны».
Возможны другие пути. Например:
7". (Г, 4'), 9И.(3', 8м),
8м. (7м, 2'), 10". (6', 9") и т. п.
В качестве упражнения предлагаем раскрыть эти резольвенты^ разумеется, с
учетом подстановок.
3s( У (0,E,x,s)) = Vj У (0,E,x,s) = У (0,E,x,s).
7.НА(0,Я,с,8з(с,*)),
8'. Ш(0,Я,с,Зн),
9'. «Л».
(2\5') -
(3\ 6') с/х\ Sh/s.
(7', 8') SH/g3(c,s).
108
6. Теория предикатов
Упражнения
1. Определите, какие из нижеприведенных формул общезначимы, а какие
невыполнимы.
а) ЧхР(х)лЗуР(уУУ
б) ЗхР(х)-> VyP(y);
в) V хР(х) л ЗуР(уУ,
г) \/хР(х)л Зх P(jc);
д) ЗхР(х)-> ЗуР(у);
е) VxP(jc)v Зу Р(у).
2. Привести к предваренной форме, сделать преобразования и доказать
следующие тождества.
а) V хР(х) -> (3 уР(у) -> (V хР(х) л V zP(z)))\
б) ( 3 jcP(jc) л V хР(х)) -> V уР(у);
в) 3xQ(x)->(\/yP(y)-> VzQ(z));
г) 3 xQ(x) -> (V xQ(x) v V у/>(у));
д)(3*/>(*)-> VyQ(y))->((V;tP(jc)-> 3z-q(z))-> Vii
е) (V xP(x) v 3yQ(y)) -> (3 -> 3 zQ(z));
ж) V x(P(x) -> Q(x)) -> (3 xP(x) -> 3 jcQ(jc));
з) ( V xP(x) v V yQ(y)) -> V z(P(z) v Q(z)).
3.Доказать тождества методом опровержения.
а) Зх(Р(х)л<2(х))-*(ЗуР(у)л 3zQ(z))\
б) V х(Р(х) -> QW) -> (3 jcP(jc) -> 3 zQ(z))\
в) ЗуУхРОсу)-* Vjc3yP(jc,y);
г) ЗхР(х)~* VyP(y);
д) V */>(*)->((3yP(y)-> VyQ(y))-> 3zQ(z)).
4. Докажите нижеследующие силлогизмы.
A. Кто мяукает, тот кошка.
Собаки - не кошки.
Следовательно: собаки не мяукают.
Б. Без свободы нет счастья.
Без счастья нет любви.
Следовательно: «Где нет свободы, быть не может любви».
B. Моряки - сильные люди.
Сильные люди не плачут.
Мишка - моряк.
Следовательно: он не плачет.
7. интегрированная среда
программирования баз знаний
visual prolog
Одним из первых языков логического программирования для разработки СИИ
является язык Пролог, который раскрывается от первых букв слов:
Программирование на языке ЛОГики.
Пролог отличается от алгоритмических языков тем, что он не раскрывается в
виде математических процедур за конечное число шагов. Наибольший интерес Пролог
нашел в инженерии знаний и искусственного интеллекта и был базовым языком
в японской программе ЭВМ 5-го поколения, ориентированны на исследование
логики и искусственного интеллекта и разработку нового поколения компьютеров.
В Прологе программист непосредственно занимается задачей, а не способом
поиска решений.
Основные отличия Пролога.
1. Наличие символьной логики, называемой исчислением предикатов. При этом
мощными средствами в области логического программирования являются
следующие механизмы:
• Механизм вывода с поиском и возвратом.
• Встроенный механизм сопоставления с образцом.
• Выразительная структура данных с возможностями ее изменения.
2. Наличие единообразия программы данных. При этом данная программа - лишь
две различных точки зрения на объекты Пролога. Кроме того, в единой базе
данных можно свободно создавать и уничтожать отдельные элементы, так как не
существует различия между программами и данными. Саму программу можно
менять во время ее работы. При этом естественным методом программирования
является рекурсия.
3. Многие интересные полезные свойства языка непосредственно вытекают из его
декларативности, которая позволяет понимать программу, не отслеживая
динамику ее выполнения.
4. Истинная мощь языка базируется на сочетании всех вышеуказанных свойств
(отличий).
Результатом завершения работы на Прологе являются 2 состояния:
1) доказано;
2) не доказано.
Причем доказанное утверждение является истинным, но необязательным, так как
доказательство зависит от известных фактов и сделанных на их основе выводов.
Факт - некоторое утверждение, причем все факты определяются как доказанные.
Вывод - определение свойств из фактов. Причем, имея множество фактов, мы
можем определять новые свойства описанных в них объектов.
110
7. Интегрированная среда программирования баз знаний VISUAL PROLOG
Пример:
«Рекс-это собака»: это факт.
«Голди - родитель Рекса»: это факт.
«Джон является родителем Рекса»: это факт.
Вывод. Объект является собакой при условии, что он является родителем собаки.
Это формализованный вывод, называемый правилом. Если спросить, какие объекты
являются собаками, то получим ответ, что Рекс, Голди и Джон - собаки, при этом
Рекс - собака по определению, а Голди и Джон - вследствие вывода.
В последние годы значительно возрос интерес к работам по искусственному
интеллекту, особенно к практическому воплощению результатов этих работ в
экспертных системах. Одной из наиболее важных задач, связанных с проектированием таких
систем, является проблема представления знаний о предметной области.
Исследования развиваются в двух направлениях: первое связано с выбором формализованных
моделей представления знаний; второе - с разработкой и внедрением языков
представления знаний, обладающих необходимыми изобразительными средствами.
В настоящее время большую популярность приобрел язык логического
программирования Пролог, основанный на самой старой модели представления знаний -
исчислении предикатов первого порядка.
Пролог предоставляет средства для описания знаний о предметной области в
виде фактов и правил вывода. Он понятен экспертам-непрограммистам и даже с
успехом может использоваться для обучения детей программированию. Пролог
способствует формированию стиля программирования, основанного на идеях модульного
программирования и программирования «сверху вниз». В то время как традиционные
языки программирования являются процедурно-ориентированными, Пролог основан
на описательной или декларативной парадигме в программировании. Это свойство
коренным образом меняет программистское мышление и делает обучение
программированию на Прологе увлекательным занятием, требующим определенных
интеллектуальных усилий.
Пролог применяется при создании приложений в следующих областях:
• разработка быстрых прототипов прикладных программ;
• разработка приложений, связанных с защитой информации;
• управление производственными процессами;
• создание динамических реляционных баз данных;
• перевод с одного языка на другой;
• реализация экспертных систем и оболочек экспертных систем.
Системы программирования на Прологе эксплуатируются на ЭВМ самых разных
типов и приобрели широкую известность благодаря наличию таких развитых версий
на персональных компьютерах как WinProlog, Visual Prolog, Strawberry Prolog и Arity
Prolog.
7.1. Описание предметной области с помощью программы на языке Пролог
111
7.1. Описание предметной области с помощью
программы на языке пролог
Пролог - это язык программирования, предназначенный для представления
и использования знаний о некоторой предметной области. Под предметной
областью будем понимать множество рассматриваемых объектов и совокупность знаний
о них. Любую взаимосвязь между объектами и (или) их свойствами назовем
отношением. Так, для предметной области «Студенческая группа» характерными объектами
будут студент, группа, факультет. Свойства объектов - это фамилия, имя, отчество
студента, номер группы, наименование факультета. Связи между конкретным
студентом и номером группы, между его оценками и размером стипендии, между
номером группы и факультетом, специальностью, курсом обучения будут являться
отношениями. Таким образом, предметная область - это объекты и отношения.
Объекты могут быть объединены в классы, обладающие определенными
свойствами. Элементы этих классов являются конкретными объектами предметной области.
Для представления конкретного объекта в программе на Прологе используется
константа. Константа - это число или символическое имя объекта. Например: «учебник»,
345, 6.89, «Петров».
Имена конкретных объектов, отношений, свойств образуются по определенным
правилам, зависящим от версии (реализации) языка Пролог, и называются
символическими именами. Далее будут рассмотрены правила, характерные для большинства
версий Пролога.
Символическое имя (атом) - это неразрывная цепочка букв (в Visual Prolog
латинских и русских), цифр и символа подчеркивания, начинающаяся со строчной
латинской (русской) буквы.
Для именования объектов и их свойств могут использоваться строки -
последовательности любых символов, заключенные в двойные кавычки. В дальнейшем для
именования конкретных объектов будем чаще всего использовать строки.
Например: table 1, стол, stock_5, r5z, студент, машина, меню, «Закон», «список
аргументов», «группа 343».
Для описания в программе некоторого объекта, принадлежащего определенному
классу, используется переменная. Переменная в программе представляется своим
именем. Имя переменной в Прологе - это цепочка латинских букв или цифр,
начинающихся с прописной латинской буквы или символа подчеркивания. Примеры имен
переменных: D, Leda, X, Y, JP, Lokon, V2 и т. д.
Чтобы описать отношение, необходимо указать его имя и перечислить либо
классы объектов, либо конкретные объекты, связываемые этим отношением:
<имя отношения>(<имя объекта 1>,<имя объекта 2>,...,<имя объекта п>)
Отношение характеризуется именем и числом аргументов. Число аргументов
равно числу классов объектов, связанных этим отношением. Для описания
отношений в программе на Прологе используются предикаты. Предикат - это логическая
функция от п аргументов, имеющая только 2 значения: «истина» и «ложь».
Синтаксис предиката:
<имя предиката>(<аргумент 1>,<аргумент 2>,...,<аргумент п>)
112
7. Интегрированная среда программирования баз знаний VISUAL PROLOG
При описании отношения имя предиката совпадает с именем отношения, а
аргументы предиката - это связываемые отношением объекты. Если описываемое
предикатом отношение имеет место в предметной области, то предикат принимает
значение «истина», если оно несправедливо для данной предметной области, то значение
предиката «ложь».
В качестве имени предиката (отношения) в Visual Prolog допустимо
использовать только символические имена.
Знания о предметной области выражаются на языке Пролог в виде предложений,
называемых утверждениями (CLAUSES). Каждое утверждение заканчивается точкой
и описывает какое-либо отношение, свойство, объект или закономерность. Структура
утверждения проста и имеет одну из форм:
<заголовок>. /* факт */
или
<заголовок> :- <тело>. /* правило */,
где заголовок является предикатом и полностью характеризует описываемое отношение.
Тело утверждения состоит либо из одного предиката, либо из списка
предикатов, разделенных знаками «,», «;», «not», соответствующими логическим операциям
«и», «или», «не». Таким образом, тело утверждения является логическим
выражением. Каждый входящий в это выражение предикат описывает какое-либо отношение.
Знак «:-» соответствует слову «если». Утверждение читается так: «Отношение,
стоящее в заголовке, будет истинным, если истинно логическое выражение, находящееся
в теле утверждения».
Утверждения образуют программу. На языке Visual Prolog для них отводится
специальный раздел, называемый CLAUSES.
Рассмотрим более подробно различные виды утверждений.
7.2. Факты
Все утверждения программы на Прологе делятся на факты, правила и вопросы.
Факты отражают текущее состояние предметной области, содержат конкретную
информацию и являются истинными предикатами. Факты соответствуют простым
безусловным высказываниям.
Рассмотрим пример описания меню в ресторане. Объекты предметной области -
это блюда, которые можно съесть в ресторане, а одним из возможных видов
отношений является классификация всех блюд на закуски, вторые мясные или рыбные
блюда и десерты. Меню представляет собой небольшую базу знаний (БЗ), которая
записывается в виде последовательности фактов следующим образом:
/* МЕНЮ */
DOMAINS /* описание типов данных */
name = string
FACTS /* описание динамической базы данных */
закуска(name)
мясо(name)
рыба(name)
десерт (name) *
7.3. Вопросы или целевые утверждения
113
clauses /* утверждения (факты и правила) БЗ */
/* Определение отношения закуска в виде фактов */
закуска("артишоки_в_белом_соусе").
закуска("трюфели_в_шампанском").
закуска ("салат_с_яйцом") .
/* Определение отношения мясо в виде фактов */
мясо("говяжье_жаркое") .
мясо("цыпленок_в_липовом_цвете").
/* Определение отношения рыба в виде фактов */
рыба("окунь_во_фритюре").
рыба("фаршированный_судак").
/* Определение отношения десерт в виде фактов */
десерт("грушевое_мороженое").
десерт (,,земляника_со_взбитыми_сливками") .
десерт("дыня_сюрприз").
Эти факты вводят одновременно объекты и их классификацию (отношения).
Например, факт закуска("салатс_яйцом") показывает, что салат с яйцом является
закуской.
Синтаксически правильно записанный факт имеет следующую структуру предиката:
<имя отношения> (<список аргументов>) ,
где в списке аргументов перечисляются имена объектов (не более 255), связанных
данным отношением. Аргументы в списке отделяются друг от друга запятыми, в
некоторых случаях могут отсутствовать. Если аргумент представляет собой имя
конкретного объекта (свойства) или число, то он является константой Пролога.
<имя отношения> (<список аргументов>) .
Структура предиката факт
Определяя с помощью фактов отношения между объектами, необходимо
учитывать порядок, в котором перечисляются их имена внутри круглых скобок. Выбрав
один раз какой-либо порядок, вы должны везде следовать ему и далее. Например,
факт является _отцом("Петр", "Иван") означает, что Петр является отцом Ивана,
а факт является_отцом(''Иван", "Петр") говорит уже совсем о другом, а именно, что
Иван является отцом Петра. Одно и то же утверждение, записанное в виде факта,
может по-разному интерпретироваться. Только автор программы определяет
истинную интерпретацию имен объектов и порядок следования аргументов, и им он
должен следовать в процессе написания всей программы, отражая в комментариях
смысл записанных им высказываний. Комментарий - это текст, заключенный
между символами /*... */, или строка, начинающаяся со знака %, например:
/^Андрею нравится Ольга*/ нравится ("Андрей", "Ольга").
/*Спица является частью колеса*/ часть объекта("спица", "колесо").
Язык Visual Prolog позволяет передать смысл аргументов предикатов с помощью
специальных разделов описаний DOMAINS, PREDICATES, FACTS, DATABASE,
которые будут рассмотрены далее в п. «Структура программы на языке Visual Prolog».
7.3. Вопросы или целевые утверждения
Чтобы выполнить простейшую программу на Прологе, откроем файл с
программой «Меню» в среде Visual Prolog.
114
7. Интегрированная среда программирования баз знаний VISUAL PROLOG
Программа начинает выполняться, если в нее ввести те вопросы, ответы на
которые хочет получить пользователь. Для этого предназначен раздел GOAL (Цель).
В нем записываются необходимые вопросы - третий тип утверждений в программе
на Прологе.
Введите такие вопросы: «Есть ли в ресторане рыбное блюдо "окунь во фритюре"?»
GOAL
рыба("окунь_во_фритюре").
В диалоговом окне получаем ответ
yes
или «Является ли мясным блюдом блюдо "артишоки в белом соусе"?»
GOAL
мясо("артишоки_в_белом_соусе") .
по
При получении вопроса (целевого утверждения) программа начинает
исполняться. Суть выполнения состоит в поиске в базе знаний заголовка утверждения,
соответствующего вопросу. Если такое утверждение (факт) есть, то на экране появляется
ответ «yes» (да). Если нет, как в случае вопроса закуска("салат из_помидоров"),
то на экране появляется отрицательный ответ «по» (нет).
Вопрос, или целевое утверждение, с помощью предиката описывает отношение
(гипотезу), истинность которого для данной предметной области неизвестна и
должна быть определена в процессе выполнения программы, в процессе согласования
вопроса с утверждениями базы знаний. Синтаксис вопроса совпадает с синтаксисом
предиката.
7.4. Переменные
Продолжим работу с «Меню». Предположим, что мы хотим получить
информацию обо всех закусках. В этом случае мы, естественно, задали бы вопрос: «Какие
блюда являются закусками?» или более формализовано: «Существуют ли те блюда
(объекты) X, которые являются закусками?». Здесь имя X обозначает не какой-то
конкретный объект, а любой, принадлежащий некоторому множеству (может быть,
пустому) объектов, обладающих свойством быть закуской и которые нужно найти
в меню. В этом случае говорят, что X есть переменная.
На Прологе вопрос о закусках записывается так:
GOAL
закуска(X).
Будет получен ответ:
Х=артишоки_в_белом_соусе Х=трюфели_в_шампанском
Х=салат_с_яйцом
3 Solutions
Все эти ответы содержат множество тех значений переменной X, при которых
утверждение закуска(Х) истинно.
7.5. Правила
115
7.5. Правила
С помощью отношений, которые составляют начальную базу знаний, можно
конструировать более сложные и более общие отношения. Например, с помощью
отношений мясо и рыба, выражающих то, что их аргумент является вторым мясным
или рыбным блюдом, можно определить отношение блюдо: «Блюдо - это второе
мясное или рыбное блюдо», что записывается на Прологе в виде двух правил
следующим образом:
PREDICATES /* Описание предиката блюдо */
блюдо(name)
CLAUSES
/* Правила, задающие определение понятия блюдо */
блюдо(Y):-мясо(У).
блюдо (Y):-рыба(Y).
и читается так: «Y является блюдом, если Y - второе мясное блюдо, или Y является
блюдом, если Y - второе рыбное блюдо». Последовательность двух правил означает
их дизъюнкцию (операцию «или»: первое правило или второе). Область действия
переменной ограничена правилом, в котором она определена. Поэтому переменная из
первого правила никак не связана с переменной Y из второго. Вопрос «Что является
блюдом?», выраженный в виде:
GOAL
блюдо(Y),
вызовет следующие ответы:
У=говяжье_жаркое
У=цыпленок_в__липовом_цвете
У=окунь_во_фритюре
У=фаршированный_судак
4 Solutions
Можно построить и более сложные правила. Займемся теперь составлением
обеда, в который входят закуска, второе блюдо (мясное или рыбное) и десерт. Обед
является, следовательно, тройкой (X, Y, Z), где X - закуска, Y - блюдо, Z - десерт.
В Прологе это выражается очень естественно в виде следующего правила:
/* Определение отношения "обед" */
обед(X,Y,Z):-закуска(X), блюдо(Y), десерт(Z).
Оно читается так: «X, Y, Z удовлетворяют отношению обед, если X
удовлетворяет отношению закуска, Y удовлетворяет отношению блюдо и Z удовлетворяет
отношению десерт». Формально говоря, мы определили новое отношение как
конъюнкцию (операцию И) трех других отношений, как конъюнкцию предикатов.
На вопрос «Что является обедом?»:
GOAL o6efl(X,Y,Z)
вы получите ответ:
Х=артишоки_в^белом_соусе, У=говяжье_жаркое,
г=грушевое_мороженое
116
7. Интегрированная среда программирования баз знаний VISUAL PROLOG
Х=артишоки_в_белом_соусе, У=говяжье_жаркое,
г=земляника со взбитыми сливками
36 Solutions
т. е. список всех 36 возможных комбинаций из трех блюд. Попробуйте это выполнить.
Правила описывают зависимость некоторого отношения от группы других
отношений (зависимость предиката от группы других предикатов), называемых
условиями (или целевыми утверждениями). Правило соответствует условному
высказыванию (импликации).
Правило состоит из заголовка и тела правила. Заголовок и тело соединяются
с помощью символа «:-», соответствующего в русском языке слову «если». Правила
также заканчиваются точкой. Заголовок правила описывает отношение, для
определения которого предназначено правило. Тело правила в большинстве случаев
представляет собой конъюнкцию предикатов (целевых утверждений), которые должны
быть последовательно согласованы с базой знаний для того, чтобы заголовок правила
был истинным. Предикаты (цели) в теле правила разделяются запятыми. Правило -
это некоторое общее утверждение. Оно описывает закономерность, свойственную
не какому-то конкретному объекту, а целому классу объектов. Поэтому в аргументы
правил входят переменные. Правило можно рассматривать и как разбиение сложной
задачи (цели) на более простые подзадачи (подцели).
Примеры правил:
любит(X, "баскетбол"):-любит(X, "бег").
/* X любит баскетбол, если X любит бегать */
можно_купить(X) :-есть_в_магазине(X, V) , V<3000.
/* можно купить X, если X есть в магазине и стоит меньше 3000 p. V
старше (Plf Р2) : - возраст Vx) ,
возраст (P2,V2), V!>V2.
/* субъект Рх старше субъекта Р2, если его возраст больше возраста Р2 */
7.6. КОНЪЮНКЦИЯ ЦЕЛЕВЫХ УТВЕРЖДЕНИЙ
Вернемся к программе «Меню». Уточним вопрос, сохранив то же множество
отношений: нас интересуют обеды с главным блюдом из рыбы. Этот вопрос имеет вид:
GOAL
Обед(Х,У,г), рыба(У).
и на естественном языке формулируется следующим образом: «Какие блюда X, Y, Z
составляют обед и в этом обеде второе блюдо - рыба?». Вопрос состоит из
конъюнкции двух целевых утверждений (предикатов), истинность которых должна быть
подтверждена в процессе выполнения. Сначала будут найдены такие значения
переменных X, Y, Z, которые составляют обед, т. е. при которых первый предикат станет
истинным. Такими первыми значениями являются:
Х=артишоки_в_белом_соусе, У=говяжье_жаркое, г=грушевое_мороженое
После сопоставления с базой знаний первой цели программа перейдет ко второму
отношению рыба(У) со значением, которое приняла переменная Y = говяжьежар-
кое. При этом будет проверяться предикатрыба("говяжье_жаркое"). Поскольку база
7.7. Пополнение базы знаний
117
знаний не содержит такого утверждения, то предложенный выбор значений не
удовлетворяет запросу - выбор неудачен, и нужно анализировать следующие варианты
обедов.
Выполните программу и посмотрите, какие ответы будут получены на вопрос:
GOAL
обед(X,Y,Z), рыба(Z).
Вы убедитесь, что на этот раз получено всего 18 решений, в каждом из которых
второе блюдо рыбное.
7.7. Пополнение базы знаний
Пополним базу знаний новым классом отношений, введя значение калорийности
для каждого блюда.
DOMAINS
kol_vo = integer
FACTS
калории(name, kol_vo)
CLAUSES
калории("артишоки_в_белом_соусе",
калории("трюфели_в_шампанском"),
калории("салат_с яйцом",202)
калории("говяжье_жаркое"),
калории("цыпленок_в_липовом_цвете", 400).
калории("окунь_во_фритюре", 270).
калории("фаршированный_судак", 254) .
калории("грушевое_мороженое", 223) .
калории("земляника_со_взбитыми_сливками", 289) .
калории("дыня_сюрприз", 122).
Утверждение калории("салат_с_яйцом'\202) означает, что одна порция салата
содержит 202 калории.
Тогда, чтобы узнать калорийность всех закусок, зададим вопрос:
GOAL
закуска(X), калории(X,Y).
Для тех, кто беспокоится о своем здоровье или о стройности своей фигуры,
важно определить такой объект, как сбалансированный обед, г. е. обед, калорийность
которого не превышает, например, 800 калорий:
PREDICATES
значение(name, name, name, kol_vo)
сбалансированный_обед(name, name, name)
CLAUSES
/* Определение отношения "калорийность обеда" */.
значение(X,Y,Z,V) :- калории(X,Е), калории(Y,Р),
V=E+P+D.
/* Определение отношения "сбалансированный обед"
сбалансированный_обед(X, Y, Z):- o6efl(X,Y,Z),
значение(X,Y,Z;V), V<800.
калории(Z, D)
V
118
7. Интегрированная среда программирования баз знаний VISUAL PROLOG
Здесь «=» - встроенный предикат, при выполнении которого вычисляется
значение арифметического выражения, стоящего справа от «=», и это значение
присваивается переменной, стоящей слева;«+» - операция сложения; «<» - операция сравнения.
Посмотрите, какие ответы будут получены на запрос:
GOAL
сбалансированный_обед(X,Y,Z).
7.8. Структура программы на языке Visual Prolog
Рассмотрим еще один пример программы на языке Visual Prolog.
/* .программа "Студенты" */
DOMAINS
student = string
facultet = string
gruppa = integer
FACTS
Студент(student, gruppa)
наим_фак(integer, facultet)
группа(gruppa)
CLAUSES
/* определение отношения "группа" с помощью фактов */
группа(943).
группа(843) .
группа(232).
/* определение отношения "студент" с помощью фактов */
студент("Орлова Л.И.", 943).
студент("Семенова М.П.", 232).
студент("Цуканова В.В.", 943).
/* определение отношения "наименование факультета"
с помощью фактов */
наим_фак(1,"РТФ").
наим_фак(2,"ФЭ").
наим_фак(3,"ФАИТУ").
наим_фак(4, "ФВТ") .
наим_фак(7,"ИЭФ").
PREDICATES
nondeterm факультет(gruppa, facultet)
вторая_цифра(gruppa, integer)
CLAUSES
/* определение отношения "факультет" с помощью правила */
факультет(NG,F):- вторая_цифра(NG, G2), наим_фак(G2,F).
/* определение отношения "вторая цифра" с помощью правила */
вторая_цифра(NG, G2) :- Gl = NG mod 100,
G2 = Gl div 10.
GOAL
группа(Gruppa), студент(Student, Gruppa);
студент(Studentl,Gruppal), факультет(Gruppal, Facultetl).
Программа на языке Visual Prolog имеет структуру, состоящую из следующих
разделов:
DOMAINS /* описание типов данных */
DATABASE (FACTS) /* описание предикатов динамической базы данных */
7.8. Структура программы на языке Visual Prolog
119
PREDICATES
CLAUSES
GOAL
/* описание предикатов */
/* утверждения: факты и правила */
/* вопросы пользователя */
В разделе DOMAINS программист определяет классы объектов, задавая их
символические имена, и с помощью стандартных типов данных описывает их свойства.
Например, классы объектов типа «студент», «факультет», «группа» задаются
следующим образом:
DOMAINS
student = string
facultet = string
gruppa = integer
Таким образом, в этом разделе программист создает свои типы (области -
DOMAINS) данных.
В разделах PREDICATES, DATABASE (FACTS) описываются образцы предикатов,
а именно: задаются имена предикатов, число их аргументов, смысл аргументов с
помощью имен классов. Например:
PREDICATES
nondeterm факультет(gruppa, facultet)
вторая_цифра(gruppa, integer)
Такое описание показывает, что в предикате факультет первым аргументом
является номер группы, а вторым - наименование факультета. Ключевые слова determ
и nondeterm в описании предиката означают, что предикат может быть согласован
с базой знаний соответственно один раз или много раз.
Различие PREDICATES и DATABASE в том, что в DATABASE описываются
предикаты динамической базы данных, состоящей только из фактов, которые можно
добавлять, удалять и изменять в процессе выполнения программы. Раздел
PREDICATES содержит описание фактов и заголовков правил, однако
соответствующие этим описаниям утверждения нельзя динамически изменять.
Раздел CLAUSES содержит собственно программу, т. е. все факты и правила,
описывающие предметную область и составляющие базу знаний.
В программе могут присутствовать несколько утверждений, описывающих одно
и то же отношение. Все они являются возможными различными вариантами
описания этого отношения. Таким образом, совокупность утверждений с одинаковыми
заголовками, т. е. с одинаковым именем и тем же числом аргументов, называется
определением отношения или процедурой. Утверждения одного определения отношения
должны быть сгруппированы вместе. Все утверждения о предметной области
(программа), находящиеся в области действия программы Пролога, называются базой
знаний.
Раздел GOAL содержит вопросы пользователя.
Классы объектов предметной области, введенные программистом, описываются с
помощью следующих стандартных типов данных:
• symbol - символическое имя (person,y,a,mas);
• string - строка - любая последовательность символов в двойных кавычках
(«Катрин», «Домодедово»);
• char- отдельный символ, заключенный в апострофы ('R7 *');
120
7. Интегрированная среда программирования баз знаний VISUAL PROLOG
• integer - целое число в диапазоне от -32 768 до 32 767;
• byte - целое число в диапазоне от 0 до 255;
• word - целое число в диапазоне от 0 до 65 535;
• real - любое число, может быть представлено в экспоненциальной форме.
Данные типа symbol в отличие от данных типа string запоминаются в таблице
символов. Таблица символов размещается в оперативной памяти, поэтому ее
использование обеспечивает наиболее быстрый поиск. Однако для построения таблицы
символов требуется дополнительное время.
7.9. Реляционный язык Пролог
Логические программы можно рассматривать как мощное расширение модели
реляционной базы данных (БД). Факты программы образуют отношения БД. Правила
реализуют запросы. Основные операции реляционной алгебры легко выражаются
в логическом программировании. Пять основных операций определяют реляционную
алгебру: объединение, симметрическая разность, декартово произведение, проекция
и выборка. Покажем, как каждая из них выражается в логической программе.
Операция объединения строит одно n-арное отношение из двух n-арных
отношений г и s. Новое отношение, которое обозначим r_union_s, является объединением г
и s. Это отношение задается логической программой, состоящей из двух правил:
r_union_s(XI, Х2,...,Xn) :- г(XI,X2,...,Хп).
r_union_s(XI, Х2,...,Хп) :- s(XI,X2,...,Хп).
Пример:
блюдо(Y):-мясо(Y).
блюдо(Y):-рыба(Y).
Из примера следует, что объединение отношений можно использовать для обо-
щения знаний о предметной области.
Определение симметрической разности использует понятие отрицания:
r_diff_s(XI,X2,...,Xn) :-r (XI,X2,...,Xn), not s(XI,X2,...,Хп).
r_diff_s(Xl,X2#...,Хп) :-s (Xl,X2,...,Xn), not г(XI,X2,...,Хп).
Пример:
футболист_либо_волейболист(X) :- футболист(X), not волейболист(X).
футболист_либо_волейболист(X) :- волейболист(X), not футболист(X).
Декартово произведение r_xjs может быть определено одним правилом:
г х s(Xl, Х2,..., Xm, Yl, Y2,...,Yn) :-r (XI, Х2, Хт),
s (Yl, Y2, . . . , Yn) .
Пример:
/* Определение отношения "обед" */
обед(X, Y, Z) :-закуска(X), блюдо(Y), десерт(Z).
Проекция состоит в построении отношения, использующего лишь некоторые
аргументы исходного отношения:
rl3(Xl, X3) :- r(Xl, X2, X3).
7.9. Реляционный язык Пролог
121
Пример:
аптека(б, "Циолковского, 7", "44-67-57").
телефон_аптеки(NomApt, TelApt):-
аптека(NomApt, _, TelApt).
Чгобы получить выборку, достаточно в теле правила записать условия отбора:
rv(Xl, ХЗ):- г(XI, Х2, X3), Х2>Х1.
Пример:
аптека(6, "Циолковского, 7", "44-67-57").
телефон_аптеки(NomApt, TelApt):-
аптека(NomApt, _, TelApt), NomApt < 8
/*Определение отношения сбалансированный обед*/
сбалансированный_обед(X, Y, Z) :-обед(X, Y, Z),
значение(X,Y, Z,V), V<800.
Операция соединения двух или нескольких отношений определяется следующим
образом:
/* определение отношения "факультет" с помощью правила */
факультет(NG, F) :-вторая_цифра(NG, G2),
наим_фак(62,К).
Здесь 2 отношения связаны общей переменной G2.
В заключение этой главы выделим основные понятия среды программирования
Visual Prolog. Итак, программа на Прологе представляет собой базу знаний о
некоторой предметной области и имеет структуру. Программа состоит из утверждений
(фактов и правил) и их описаний. Совокупность утверждений, имеющих одинаковые
имена отношений с одним и тем же числом аргументов (т. е. одинаковые заголовки),
называется определением отношения или процедурой. Утверждения с одинаковыми
именами, но с разным числом аргументов образуют разные уникальные определения
в программе.
Элементарными составляющими утверждений являются предикаты со своими
списками аргументов, описывающие отношения предметной области. Предикаты
представляют собой логические функции, приобретающие значение (истина или
ложь) в процессе выполнения программы. Их структура имеет вид:
<имя отношения>(<список аргументов>).
Элементами списка аргументов могут быть только термы, отделяющиеся друг
от друга запятой.
Терм - это синтаксически правильная конструкция Пролога. Различают
следующие типы термов: константы, переменные, списки, строки, структуры. Пока вы
познакомились с константами и переменными. Все остальные типы будут
рассматриваться в следующих главах. Программа начинает выполняться после ввода вопроса
или целевого утверждения, которое записывается в форме предиката в разделе
GOAL
<имя отношения>(<список аргументов>)
и формулирует цель решаемой задачи. В процессе выполнения устанавливается
истинность или ложность поставленной цели.
122
7. Интегрированная среда программирования баз знаний VISUAL PROLOG
Программирование на языке Пролог включает следующие этапы:
• объявление фактов, задающих отношения между конкретными объектами или
объектами и их свойствами;
• определение правил о зависимости одних отношений или объектов от других;
• формулировка цели решаемой задачи в виде вопроса (гипотезы, целевого
утверждения).
Чтобы программу, написанную на базовом Прологе, адаптировать к языку Visual
Prolog, необходимо выполнить следующее:
• утверждения программы записать в разделе CLAUSES в соответствии с
правилами: имена предикатов должны быть символическими именами, имена объектов
предметной области - строками;
• затем в разделе DOMAINS создать и описать свои типы данных, используя
названия классов объектов;
• в разделе PREDICATES описать предикаты программы, указав их имена и
классы объектов, являющиеся аргументами предикатов;
• в разделе FACTS или DATABASE описать только те факты, которые могут
в процессе выполнения программы изменяться, удаляться и добавляться;
• в разделе GOAL задать вопрос пользователя.
8. НЕЙРОННЫЕ СЕТИ
ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
8.1. Вычислительные системы
искусственного интеллекта
Как известно, первая ЭВМ появилась в середине 50-х годов. Однако параллельно
ученые занимались созданием компьютеров, действующих по законам человеческого
мозга. Такие системы стали называть системами искусственного интеллекта. В
последнее время было объявлено, что в этой области современная вычислительная
техника движется к новой информационной революции, сравнимой по масштабам
с Internet.
Искусственный интеллект и системы на этой базе являются горячей точкой в
современных исследованиях, так как:
• в этом направлении сконцентрированы наибольшие усилия ученых;
• в процессе разработки возникли новые методы научных междисциплинарных
исследований;
• в процессе разработки формировались новые взгляды на роль тех или иных
научных результатов.
В процессе создания СИИ обнаружились проблемы, далеко выходящие за
пределы традиционных направлений информатики, физики, математики. Кроме того, для
создания машин, имитирующих работу человеческого мозга, надо разобраться, как
действуют миллиарды взаимосвязанных между собой нейронов. По мере
продвижения и создания интеллектуальных систем все запутаннее становятся процессы
функционирования человеческого разума.
В настоящее время существует 3 концепции создания СИИ:
1) часть ученых считает, что интеллект - это умение решать сложные задачи;
2) другая группа ученых считает, что интеллект - это способность систем к обучению;
3) третья группа считает, что интеллект - это возможность взаимодействовать
с внешним миром путем общения, восприятия и осознания воспринятого.
Однако обобщением всех 3 концепций считается мнение X. Тьюринга: «...
компьютер или СИИ разумны, если они способны заставить нас поверить, что мы имеем
дело не с машиной, а с человеком».
В настоящее время сложились 2 основных подхода к проектированию СИИ:
• машинный интеллект заключается в строгом задании результатов
функционирования;
• создание систем искусственного разума направлено на моделирование
внутренней структуры системы.
Разделение работ на 2 направления связано с существованием двух точек зрения,
каким образом строить СИИ. Сторонники одной точки зрения считают, что важнее
всего получить результат, т. е. главным является совпадение поведения искусственно
созданной интеллектуальной системы с реально существующей. При этом не учиты-
124
8. Нейронные сети искусственного интеллекта
вается внутренний механизм формирования поведения, в этом случае СИИ является
черным ящиком.
Другая точка зрения состоит в том, что изучение механизмов естественного
мышления и анализ данных о способах разумного поведения могут создать основу
для построения СИИ. Таким образом, моделирование воспроизведения техническими
средствами принципов и конкретных особенностей функционирования является
главным.
Первое направление рассматривает продукт интеллектуальной деятельности
человека, изучает его структуру и стремится воспроизвести его средствами ВТ. При
этом моделирование систем достигается за счет использования законов формальной
логики, теории четких и нечетких множеств, графов и др. Основные результаты
машинного интеллекта заключаются в создании экспертных систем, систем разбора
естественного языка.
Второе направление рассматривает данные по нейрофизиологическим и
психологическим механизмам и интеллектуальной деятельности. В этом случае стремятся
воспроизвести эти механизмы с помощью технических устройств.
В дальнейшем рассмотрение систем искусственного разума будет базироваться
на математической интерпретации нервной системы во главе с мозгом человека
и реализации СИИ в виде нейроподобных сетей на базе нейроподобного элемента.
Создание нейроподобных сетей является одним из самых перспективных
направлений.
8.2. ОСНОВЫ ТЕОРИИ НЕЙРОНА
В качестве основных особенностей нейронов, т. е. элементарных ячеек
человеческого мозга, следует отметить следующие:
• нейронная система содержит около 100 млрд нейронов, каждый имеет 100 000
связей. Ежедневно погибает большое количество нейронов и примерно такое число
вновь рождается, а человеческий мозг продолжает функционировать и
представляет собой и достаточно надежную устойчивую систему;
• нейрон является медленно действующим элементом со временем реакции
несколько мс, а обработка огромных объемов информации осуществляется почти
мгновенно;
• нейронные системы способны к самоорганизации и обучению.
Благодаря вышеуказанным особенностям нейронные системы имеют очень
большие перспективы. В настоящее время существует несколько моделей нейронов.
В дальнейшем рассмотрим такую модель, благодаря которой появились
нейрокомпьютеры, т. е. компьютеры, функционирующие по модели человеческого мозга.
Нейрон представляет собой особый вид клеток человеческого организма,
обладающих электрической активностью, особое назначение которых заключается в
оперативном управлении организмом.
Схематически нейрон включает в себя (рис. 8.1):
• тело, которое называется сомо (1);
• дерево входов - дендриды (4);
8.2. Основы теории нейрона
125
• дерево выходов (2);
• начальный сегмент выхода - аксон (3)
Сомо имеет поперечный размер 10-20 мкм, длина дендрида - 1мкм. Длина
аксона составляет 100 мкм. На соме и дендриде располагаются окончания, идущие
от других нервных клеток. Входные сигналы дендридного дерева взвешиваются и
суммируются к аксонному холмику, где генерируется импульс.
Входной сигнал может быть положительным и отрицательным, т. е. либо
возбуждается, либо тормозится. Величина входного сигнала может быть различной и
определяет эффект работы аксона.
Все нейроны делятся на 3 группы:
1) рецепторные;
2) эффекторные;
3) промежуточные.
Рецепторные нейроны обеспечивают ввод в мозг сенсорной информации. Они
трансформируют сигналы, поступающие на органы чувств.
Эффекторные нейроны передают приходящие на них сигналы исполнительным
органам. На конце аксонов находится мышца, где возбужденные нейроны
трансформируются в сокращение мышц.
Промежуточные нейроны осуществляют обработку информации, полученной от
рецепторов, и формируют управляющие сигналы. Данные нейроны образуют
центральную нервную систему.
В качестве модели используется следующая схема (рис. 8.2).
xl
х
х2 +
хп
xi
У
Рис. 8.2. Модель нейрона
126
8. Нейронные сети искусственного интеллекта
Входной вектор Х={х\уХ2,...д„- уХп} представляет собой выходные сигналы других
нейроподобных элементов. Этот входной вектор соответствует сигналам,
поступающим на нейроны. При этом каждый входной сигнал умножается на соответствующий
вес wj связи. Вес связи является скалярной величиной, положительной для
возбуждения, отрицательной - при торможении. Взвешенными весами связи поступают
на блок суммирования, соответствующий телу клетки. Здесь осуществляется их
алгебраическое суммирование и определяется уровень возбуждения S.
Выходной сигнал нейрона Y определяется путем пропускания уровня
возбуждения S через нелинейную функцию f.
K=/(S-8),
где 0 - некоторое постоянное смещение, соответствующее порогу срабатывания нейрона.
В качестве f обычно используются простейшие нелинейные функции. Например:
1) бинарная функция (рис. 8.3);
f 4
1
Y=i>s>e
o9s<=e
Рис. 8.3. Бинарная функция
2) сигмоидная функция (рис. 8.4).
О S
Рис. 8.4. Сигмоидная функция
Данная модель пренебрегает многими известными характеристиками
биологического прототипа. Например, недостатками данной модели являются следующие:
• она не учитывает нелинейность пространственно-временной суммации, которая
особенно проявляется для сигналов, приходящих по возбуждающим и
тормозящим аксонам;
• не учитывает временные задержки;
• не учитывает эффект синхронизации и частотной модуляции.
Однако построенные нейронные сети (НС) на базе данной модели
демонстрируют ассоциативные свойства, напоминающие свойства биологических объектов.
8.3. Нейроподобные сети
Нейронные сети - искусственный аналог биологических сетей, по своим
параметрам максимально приближающийся к оригиналу.
Данная модель нейрона и на ее базе нейроподобные сети (НПС) используются
в следующих случаях:
8.3. Нейроподобные сети
127
• когда задача не может быть формализована по заранее известным алгоритмам;
• когда имеются неполные входные данные;
• сигналы зашумлены или результаты противоречивы.
В этих случаях применение традиционных компьютеров неэффективно.
Альтернативой им становятся специальные компьютеры, реализующие НС-технологии.
Отличительной чертой таких компьютеров является нестандартный характер
обрабатываемой информации. В этом случае информация запоминается и содержится
не в отдельных ячейках памяти (как в традиционных системах), а в распределении
связей между нейронами и в их величине. При этом состояние каждого отдельного
нейрона определяется состоянием многих других нейронов, связанных с ним.
Особенностью является то, что потеря одной или нескольких связей не оказывает
существенного влияния на результат работы системы в целом.
Высокая естественная помехоустойчивость и функциональная надежность
независимо от искажающих, зашумляющих потоков и отказов отдельных процессорных
элементов обеспечивают высокую оперативность (производительность) и
достоверность обрабатываемой информации.
Возможны дообучение и переобучение НС при изменении внешних факторов.
Обучение связано с более точной настройкой НС в процессе работы. Кроме того,
следует отметить универсальность НС, которая связана с переходом в процессе
обучения на новые виды решаемых задач.
Приведенные преимущества НС определяют следующие области применения
таких сетей:
• обработка и анализ изображения;
• распознавание речи независимо от автора и перевод ее;
• обработка высокоскоростных цифровых потоков;
• автоматизированные системы быстрого поиска информации;
• классификация информации в реальном масштабе времени;
• решение трудоемких задач оптимизации большой размерности;
• адаптивное управление и предсказание;
• защита информации в сетях.
НПС - представляет собой параллельную связанную сеть простых адаптивных
элементов, которые взаимодействуют с объектами реального мира аналогично
биологической нервной системе. С инженерной точки зрения такая сеть представляет
собой сильно распараллеленную динамическую систему с топологией непрерывного
графа.
Такая система выполняет обработку информации посредством изменения своего
состояния в ответ на постоянный или импульсный входной сигнал.
В настоящее время основными направлениями использования НПС являются:
• программная реализация на цифровых ЭВМ традиционной архитектуры;
• программно-аппаратная реализация в виде сопроцессоров для ЭВМ общего
назначения;
• аппаратная реализация путем создания нейрокомпьютеров на базе нейроплат
в виде параллельных НП структур.
128
8. Нейронные сети искусственного интеллекта
Первое направление характеризуется универсальностью, дешевизной и низкой
скоростью обучения и функционирования НПС. Для второго направления
характерны высокая скорость моделирования функционирования НПС, возможность
обучения и дообучения. Первые два направления относятся к ранним вариантам создания
НПС. По мере развития элементной базы нейрокомпьютеров оказалось возможным
создание и развитие третьего направления, в котором мощная индустрия
нейрокомпьютеров позволяет создавать аппаратные и программные средства для реализации
различных моделей НС.
На сегодняшний день известно около 2000 различных концептуальных схем
(парадигм) НПС, которые реализованы либо на специализированных кристаллах, либо -
на платах. Современные технологии позволяют создавать мощные рабочие станции
и суперкомпьютеры в виде НПС, включающих в себя до 3-4-х млрд нейронов (в
мозге около 100 млрд). Однако соединение различных компонентов в единую срть
представляет собой сложную проблему.
8.4. Обучение нейроподобных сетей
Одним из важнейших свойств НПС является способность к самоорганизации
и самоадаптации с целью улучшения качества функционирования данной системы.
Это достигается обучением сети, алгоритм которого задается набором обучающих
правил. Обучающие правила определяют, каким образом изменяются связи в НПС
в ответ на конкретное воздействие. Одним из авторов теории обучения систем
является Д.О. Хегб, предложивший следующую модель обучения в виде математического
правила (закона), который связывает веса i-x и j-x нейронов:
щ(t+l)= G)ij(t)+a*yi* yjy
где coij (t+\) и coy (t) - значения весов связей от /-го к7-му нейрону до (г) и после (f+1)
его изменения; а - скорость обучения; у, и у, - выходные сигналы /-го и j-ro нейронов.
Развитие кибернетики по созданию нейронных систем выдвигает ряд проблем,
связанных с опасностями, возникающими в ходе работ по искусственному интеллекту:
• возможна потеря стимулов к творческому труду в результате массовой
компьютеризации. Однако для самого человека создание интеллектуальных систем
является наиболее привлекательным;
• увеличение приспосабливаемости и надежности приведет к тому, что отпадет
необходимость человека вмешиваться в процесс управления. В этом случае
возможна потеря самим человеком качеств, ответственных за поиск решения.
Налицо возможная деградация способностей человека к реакции на изменения
внешних условий.
Например: отстранение человека от контроля в ракетных войсках
стратегического назначения может привести к фатальной неизбежности войны.
Поэтому при создании интеллектуальных систем в виде управляющих машин
необходимо наличие оператора, умение и реакция которого могут погасить
разворачивающуюся военную ситуацию.
9. МОДЕЛИРОВАНИЕ СИИ
НА НЕЙРОМИКРОПРОЦЕССОРАХ
9.1. Особенности нейромикропроцессора
Neuromatrix Л1879ВМ1
Отечественные ученые и инженеры НТЦ «Module» [ ] разработали семейство
Neuromatrix 640Х: Л1879ВМ1, Л1879ВМЗ, Л1879ВМ4, Л1879ВМ5. Любой из этих
процессоров представляет собой специализированный 64-разрядный процессор,
сочетающий в себе черты двух современных архитектур: VLIW и SIMD (векторная
обработка). Поэтому Neuromatrix можно отнести к микропроцессорам 7-го поколения.
Эти архитектуры позволяют существенно увеличить производительность
процессора с большими потоками данных и матричными операциями.
Производительность нейропроцессора:
• скалярные операции: 40 mips и 120 mips для 32-разрядных данных, где mips -
106 инструкций в секунду;
• векторные операции: от 40 до 12000 mips;
• ввод/вывод, интерфейс с памятью.
Ядро процессора включает 2 основных блока:
• 32-разрядный RISC процессор;
• 64-разрядный векторный сопроцессор для поддержки векторных и матричных
операций над данными переменной разрядности и набором регистров общего
назначения.
В архитектуру процессора входят согласно структурной схеме (рис. 9.1)
следующие элементы:
1) интерфейс глобальной шины;
2) интерфейс локальной шины;
3) векторный сопроцессор;
4) 2 коммуникационных порта с контроллером;
5) RISC ядро;
6) локальная и глобальная шины.
Интерфейс локальной и глобальной шины представляет собой 2 одинаковых
блока: программного интерфейса с локальной и глобальной 64-разрядными шинами.
К каждому из них может быть подключена память, содержащая 231 32-разрядных
ячеек, причем прямым обменом данными процессор может выбирать 2 ячейки памяти.
Каждый блок программного интерфейса позволяет работать с двумя банками
внешней памяти различного объема и быстродействия без дополнительного
оборудования.
В качестве внешней памяти может быть использована флэш, DIDO память.
Замечание. Наличие 2 банков памяти позволяет реализовать на базе нейропроцессора
мультипроцессорную систему.
5 3ак 1029
130
9. Моделирование СИИ на нейромикропроцессорах
Коммуникационный
порт
контроллер
Коммуникационный
Векторный
порт
сопроцессор
контроллер
Рис. 9.1. Структурная схема нейропроцессора Л1879ВМ1
Кроме того, в процессоре предусмотрена аппаратная поддержка режима
разделения памяти для различных мультипроцессорных конфигураций внешних шин.
Коммуникационные порты SPO и CPI совершенно идентичны и обеспечивают
информационный обмен по двунаправленным 8-разрядым шинам. Кроме того, они
предназначены для построения высокопроизводительных мультипроцессорных
систем и совместимы с портами процессора TMS 320С4Х.
Каждый коммуникационный порт имеет встроенный контроллер PTIP,
позволяющий обмениваться 64-разрядными данными на внешних шинах.
Скалярный процессор представляет собой RISC ядро, отвечающее за подготовку
данных для векторного процессора. Кроме того, он может использоваться как
самостоятельное вычислительное устройство. Процессор имеет 8 адресных регистров
и 8 РОНов. Помимо этого существует набор специализированных регистров.
Скалярный процессор осуществляет следующие операции:
• различные виды адресации с модификацией адресных регистров;
• чтение / запись в память данных как 32- так и 64-разрядных регистров;
• все виды арифметических и логических операций над регистрами общего
назначения с модификацией и без модификации флагов состояния;
• различные типы сдвигов, в том числе и на произвольное количество битов;
• условный и безусловный переход, в том числе относительный;
9.2. Описание векторного сопроцессора
131
• вызовы функций с записью в стек адреса возврата, в том числе и относительный
вызов функции;
• пошаговое умножение;
• управление векторным процессором путем задания его конфигурации.
9.2. Описание векторного сопроцессора
Векторный процессор представляет собой общий матричный узел для
выполнения операций умножения с накоплением арифметических и логических операций,
маскирования, функций активации над векторами и матрицами.
Это основной функциональный элемент с набором регистров общего назначения.
Представляет собой матричную структуру 64x64, произвольно разделенную на
столбцы и строки.
В состав входят следующие компоненты:
• рабочая матрица в виде операционного узла, в котором осуществляется операция
умножения с накоплением. С рабочей матрицей связана пара регистров, которые
определяют ее разбиение на столбцы и строки;
• теневая маска, используется для ускорения занесения весовых коэффициентов
в рабочую матрицу.
В то время когда рабочая матрица участвует в операциях умножения с
накоплением, независимо от этого в теневую маску подкачиваются новые порции весовых
коэффициентов. В течение одного процессорного такта теневая маска может быть
загружена в рабочую матрицу. Теневая маска используется как буфер весовых
коэффициентов. Так же, как и с рабочей матрицей, с теневой матрицей связана пара
регистров, разбивающих ее на строки и на столбцы.
Векторное АЛУ - это устройство позволяет совершать стандартный набор
арифметических и логических операций над парами 64-разрядных слов, каждое из
которых разделено на малоразрядные элементы.
Буфер весовых коэффициентов WFIFO. Представляет собой очередь глубиной
в 32- и 64-разрядных слова, организованных по принципу FIFO. Он используется как
один из аргументов в операции умножения с накоплением, а также в операциях
на векторном АЛУ. Буфер может использоваться многократно.
Псевдобуфер ШД используется для обозначения находящихся на шине данных
непосредственно в процессе загрузки из памяти в векторный процессор. Имеет
глубину в 32- и 64-разрядных слова с организацией FIFO. Используется как один из
аргументов в операции умножения с накоплением.
Буфер накопления результатов AFIFO. Имеет глубину в 32- и 64-разрядных
слова, организованных по принципу FIFO. Результат глобальной операции передается
в данный буфер. Кроме того, он может использоваться как один из аргументов в
операциях умножения с накоплением и операциях на векторном АЛУ. Для того чтобы
получить доступ к результатам выполнения на векторном процессоре, хранящимся
в AFIFO, необходимо выгрузить их в память.
Векторный регистр представляет собой 64-разрядный регистр. Используется
в качестве операнда в операции умножения с накоплением. Векторный регистр слов
представляется как буфер, состоящий из заданного количества одинаковых слов.
132
9. Моделирование СИИ на нейромикропроцессорах
Все вышеуказанные устройства предназначены для выполнения следующих
операций, которые определяют возможности нейропроцессоров:
• умножение с накоплением, которое называется взвешенным суммированием;
• арифметические и логические операции на векторном АЛУ;
• маскирование данных;
• функции активации;
• сдвиг операнда X при выполнении взвешенного суммирования.
9.3. Режим взвешенного суммирования
Операция умножения с накоплением выполняется в рабочей матрице:
ZFy>Z№V^), /=1,/и;;=1,л, (9.1)
где Xi - элемент данных, поступающих на вход информационного узла векторного
процессора; К, - частичная сумма, накопленная на предыдущем этапе взвешенного
суммирования, а У0 - элемент входного вектора; Wtj - весовой коэффициент,
расположенный в соответствующей ячейке рабочей матрицы процессоров; т - количество
столбцов; п - количество строк рабочей матрицы.
Рабочая матрица имеет 2 входа:
Х={*ь *2. • • • л) - 64 разряда;
У={уиУг> ..,Ут}.
В качестве входов х и у могут выступать так называемые нулевые устройства.
Это означает, что данные на вход вообще не поступают.
Входы х и у имеют разные предназначения при вычислениях и представлены
на рис. 9.4. Данные на вход х умножаются на ячейки матрицы. Согласно формуле
(9.1) данные суммируются в пределах столбца. Поэтому в результате получается
накапливаемая сумма z.
Данные со входа у добавляются к результатам умножения со сложением,
выполненным над данными входа х.
В рабочую матрицу предварительно загружаются весовые коэффициенты Wtj -
либо непосредственно в матрицу, либо через теневую маску. Последний способ
наиболее целесообразен, так как по времени осуществляется за один рабочий такт.
Разбиение матрицы на строки определяется рабочим регистром Sb2. Он
определяет разбиение 64-разрядных слов входных данных, поступающих по входу у. Код
разбиения в виде слова записывается в Sb2 предварительно. Разбиение рабочей
матрицы на столбцы задается рабочим регистром пЬ2. Этот же регистр определяет
разбиение 64-разрядных данных на входе у, а также предварительно заносится в виде
слова в регистр. Этот же регистр определяет разрядность результатов вычисления,
которые содержатся в буфере AFIFO.
В макроячейках происходит умножение элемента входных данных Xi на весовой
коэффициент Wij и сложение со значением верхней ячейки с учетом входного
сигнала Yj.
Для сложения разрядности выходных данных и защиты от арифметического
переполнения используется программируемая функция насыщения (рис. 9.3).
9.3. Режим взвешенного суммирования
133
X вход
32
Х7
Х7
Хб
х<$
Х5
Х5
Х4
Х4
хз
ХЗ
Х2
Х2
XI
XI
хо
ХО
32
Yi
Yi
YO
Y3
Y2
Yl
YO
63 1
r 1
r
Y3+X7*W37
Y2+X7*W27
Y1+X7*W17
Y0+X7W07
I J i ЛО W JO
Y3+X5*W35
I Z i ЛО wzo
Y2+X5*W25
I 1 ' ЛО W Ю
Y1+X5*W15
I U ' ЛО VVUO
Y0+X5W05
Y3+X0*W30
Y2+X0*W20
Y1+X0*W10
Y0+X0W00
Теневая маска
32
УЗ+Сумма
(xi*W3i)(i=0,7)
У2+Сумма
(xi*W3i)(i=0,7)
¥ Сумма
(xi*W3i) (i=0,7)
YO+Сумма
(xi*W3i) (i=0,7)
УЗ+Сумма
(xi*W3i)(i=0,7)
Рис 9 2 Структура операционного устройства векторного сопроцессора
>
Рис. 9 3. Функция насыщения
Операнды и выходные значения упаковываются в 64-разрядные слова. Все
операции в матрице производятся параллельно за 1 такт. Загрузка весовых
коэффициентов производится за 32 такта.
В векторном процессоре для ускорения работы существует теневая маска, в
которую весовые коэффициенты загружаются в фоновом режиме. Причем
переключение теневой в рабочую матрицу происходит за один такт.
Важной особенностью векторного процессора является реализация работы с
операндами различной длины.
За счет разбиения матрицы на строки и столбцы увеличивается одновременная
работа с несколькими операндами.
Замечание. Разбиение матрицы на 4 составляющие позволяет за 1 такт обрабатывать пиксель,
включающий поля IRGB. Этим достигается оптимальное соотношение между скоростью
и точностью рычисления.
При операции взвешенного суммирования из памяти по очереди считываются
слова входных данных, каждое из которых направляется на вход X операционного
узла. Параллельно из буфера считывается очередное слово и направляется на вход Y.
Результат операции записывается в буфер AFIFO.
134
9. Моделирование СИИ на нейромикропроцессорах
9.4. Выполнение операций на векторном АЛУ
Векторное АЛУ выполняет арифметические, логические операции над наборами
64-разрядных слов, подаваемых на входы X и К операционного узла векторного
процессора. Эти наборы слов подаются на входы из буферов AFIFO, RAM, DATA. В
качестве входов могут поступать нулевые устройства. Результат вычислений
передается в AFIFO.
Входы X и Y векторного АЛУ являются равноправными. Разбиение данных;
поступающих на эти входы, определяется только регистром пЬ2, а регистр sb2 не
оказывает никакого влияния.
В этом заключается отличие векторного АЛУ от рабочей матрицы.
Операции на векторном АЛУ выполняются с учетом разбиения входных данных
на элементы, а именно: в листах разбиения 64-разрядных слов ставятся перегородки,
которые в случае переполнения блокируют перенос старшего разряда в соседнее
поле, занимаемое этим элементом, и тем самым препятствуют распространению знака
за пределы границы элемента.
При блокировках переноса бит переноса теряется.
9.5. Порядок выполнения преобразований
над данными
При выполнении вычислений на векторном процессоре помимо рабочей
матрицы, теневой матрицы и векторного АЛУ могут использоваться блоки, которые
выполняют маскирование, функции активации и циклического сдвига данных.
Если в конкретных вычислениях задействовано несколько устройств, то
необходимо знать, в какой последовательности выполняются преобразования над данными.
Практически такой порядок определяется алгоритмом (рис. 9.4).
Шина векторных данных
Блок
активации
Блок
маскирования
RAM
Регистр
сдвига
Y
Блок
активации
Рабочая
матрица
AFIFO
Шина векторных данных
Блок
маскирования
Блок
активации
i
RAM
Y
Блок
активации
Регистр
сдвига
VB
Векторное
АЛУ
Т
AFIFO
Рис. 9.4. Алгоритм преобразования данных
9.7. Машинные команды нейропроцессора
135
9.6. Система команд нейропроцессора
Множество команд нейропроцессора условно разбивается на 3 группы:
1) скалярные команды;
2) векторные команды;
3) команды управления.
Скалярные команды выполняют действия со скалярными операндами. Это
множество команд разбивается на несколько подгрупп:
• команды загрузки и записи регистров - LS-подгруппа;
• команды пересылки значения регистра - SM-подгруппа;
• команды обработки адресов - SA-подгруппа;
• команда обработки скаляров - SP-подгруппа плюс специальная группа
скалярных команд - SN-подгруппа.
Векторные команды выполняют действия над векторами - операндами. Это
множество включает следующие подгруппы:
• команда загрузки данных в векторный процессор - VL-подгруппа;
• команда выгрузки данных из векторного процессора - VS-подгруппа;
• команда обработки векторов в векторном процессоре - VP-подгруппа;
• специальные векторные команды - VM-подгруппа.
Команды управления изменяют очередность выполнения машинных команд (JC)
и включают в себя 3 подгруппы:
• команды безусловного и условного переходов;
• команды безусловного и условного обращения к подпрограммам;
• команды возврата из подпрограмм или прерывания.
9.7. Машинные команды нейропроцессора
Одной из особенностей является попарное объединение машинных команд.
В нейропроцессорах предусмотрены следующие пары команд:
• скалярная команда + скалярная команда;
• команда управления + скалярная команда;
• векторная команда + векторная команда.
Первая команда пары хранится в левой части машинной команды, а вторая -
в правой ее части.
Особенностью является то, что скалярная или векторная команда, находящаяся
слева, должна быть командой загрузки или записи либо командой адресной арифметики.
Все сказанное формализовано и представляется в следующем виде:
LS, SM, SA, SN, JC - SP
JC - SP
VL, VS, VN - VP
136
9. Моделирование СИИ на нейромикропроцессорах
Кроме команд нейропроцессора, машинная команда содержит специальное
однобитовое поле Р (31-й разряд), управляющее одновременно выполнением команд
в нейропроцессоре на фоне выполнения векторных команд.
Возможно 2 варианта:
1. Р=0 - выполнение машинной команды откладывается до окончания уже
выполняющихся векторных команд;
2. Р=1 - машинная команда выполняется, даже если еще не завершены
выполняющиеся векторные команды.
Общий формат скалярной команды (рис. 9.5).
31 30 16 15 0
MOVE OPER
63 const 32
Рис. 9.5. Общий формат скалярной команды
Каждая скалярная команда содержит поля для одновременного выполнения двух
операций. Разряды 0-15 образуют поле OPER, которое задает выполнение одной из
операций сдвига или одной из арифметико-логических операций над содержимым
регистров общего назначения (GRO, GR7).
Разряды 16-30 образуют поле MOVE, которое задает выполнение одной из
операций по пересылке данных и констант, или одной из операций по модификации
содержимого адресных регистров, или одной из операций управления потоком команд.
Нейропроцессор выполняет операции типа:
• регистр - регистр;
• регистр - память;
• память - регистр;
• константа - регистр.
Имеется 4 типа операций управления потоком команд:
• переход;
• переход к подпрограммам;
• возврат из подпрограммы;
• возврат из прерывания.
Команды, в которых используются 32-разрядные константы, адреса переходов
и смещения адресов переходов, являются 64-разрядными.
Константа занимает поле команды с 32 по 63 разряд.
При отсутствии блокировок в конвейере скалярная команда выполняется за
1 такт.
Общий формат векторной команды (рис. 9.6).
31 30 19 18 17 1312 1 0
р
VMOVE
W
COUNT
VOPER
L
Рис. 9.6. Общий формат векторной команды
9.7. Машинные команды нейропроцессора
137
Каждая векторная команда задает выполнение 4-х операций:
• 0 разряд - поле L - выполнение операции пересылки в буфер VBUF и VOPER
(есть пересылка - 1, нет - 0);
• разряды 1-12 - поле VOPER - задает выполнение арифметической или
логической операций над векторами упакованных данных;
• 18 разряд - поле W - задает выполнение операции пересылки векторов весовых
коэффициентов из VFIFO в WBUF;
• разряды 19-30 - поле VMOVE - задает операцию чтения из внешней памяти или
запись во внешнюю память вектора упакованных данных;
• разряды 13-17 - поле COUNT - указывает количество повторений векторной
команды от 1 до 32.
Другими словами, по своему действию векторная команда эквивалентна
параметрическому циклу, тело которого состоит из одной команды, а число повторений
равно величине, указанной в поле COUNT. При каждом повторении выполняются все
операции, указанные в команде. Исключение составляют операции пересылки WBUF
и WOPER, которые выполняются в последнем такте векторной команды, fc этому
исключению относятся и операции пересылки векторов весовых коэффициентов из
WFIFO в WBUF, которые выполняются за 32 такта, независимо от содержимого поля
COUNT.
31-й бит в векторных командах, так же, как и в скалярных, позволяет начать
выполнение данных команд параллельно с еще незаконченной предыдущей векторной
командой.
Выборка команд из внешней памяти в нейропроцессоре осуществляется
64-разрядными словами, каждое из которых представляет собой либо одну 64-разрядную
команду, либо две 32-разрядных.
Нейропроцессор использует 32-разрядный вычисляемый адрес при обращении
к внешней памяти. Доступное адресное пространство составляет 16 Гб, и делится
на 2 равные части - локальную и глобальную.
Если старший разряд адреса равен 0, то обращение осуществляется к локальной
памяти, если 1 - то к глобальной.
Младший разряд вычисляемого адреса используется при доступе к 32-разрядным
данным. Если он равен 0, то используется младшая часть памяти (разряды 31-0), если
1 - старшая (63-32).
При обращении за 64-разрядными данными или при выборке команды этот
разряд игнорируется.
Нейропроцессор имеет дополнительные возможности управления памятью
в мультипроцессорной системе.
10. ПРОГРАММИРОВАНИЕ СИИ
НА НЕЙРОМИКРОПРОЦЕССОРАХ
10.1. Скалярные команды
Согласно утвержденному ТУ рекомендуются следующие обозначения:
• fjmp - функция вычисления адреса операнда;
• fм - функция модификации значения адресного регистра после обращения к
памяти за операндом;
• 32-разрядная константа - целое число в дополнительном коде либо натуральное
число;
• Rhct ~ любой программно-доступный регистр, который может быть использован
в качестве источника информации;
• rnp - любой программно-доступный регистр, который может быть использован
в качестве приемника информации;
• faPH(|>M - арифметическая функция обработки операндов;
• tлогич - логическая функция обработки операндов;
• ^сдвиг - функция сдвига, под которой могут подразумеваться арифметические,
логические или циклические сдвиги;
• <_, _> - функция пересылки значений.
С учетом введенных обозначений запишем следующие команды.
Команды загрузки и записи регистров (LS - подгруппа)
а) r„p <_ (f^ (ar4, grj); arj <_ fm(arb grj)),
где ar - адресные регистры, gr - регистры общего назначения;
б) r„p <_ (f^ari, CiM); ar* <_ fm(arj, CJ);
в) rnp<_QM;
r) r„ct _> (fwp (ari, grj); ar4 <_ fm (arj, grj));
д) r„ct _> (f^ (arb CiM); ar4 <_ fM (arj, С j).
Команда пересылки значений регистров (SM - подгруппа):
rnp <*— Rhct*
Команды обработки адресов скаляров
а) обработка адресов (sa - подгруппа)
arj <_ fm (arj, grj),
ARj <_ fm (arj, с j;
б) обработка скаляров (SP - подгруппа)
grk<_iap„4>M (grj, grj),
grk<_ (grj, grj),
grk <_ fcmm (grj, grj).
10.2. Векторные команды
139
Специальные скалярные команды (SM - подгруппа):
а) установка словосостояния программы;
б) 32- и 64-разрядные команды типа «нет операции».
10.2. Векторные команды
При описании векторных команд используются следующие обозначения и
дополнения:
1) AFIFO - выходная FIFO-очередь функционального устройства выполнения
матричных операций;
2) AFTFO.n - количество 64-разрядных значений, хранящихся в AFIFO;
3) RAM - внутренняя память для временного хранения векторных операндов;
4) RAM.n - количество 64-разрядных значений, хранящихся в RAM;
5) WFIFO - внутренняя FIFO-память для хранения весовых коэффициентов;
6) WBUF - внутренняя память для хранения теневой матрицы весовых
коэффициентов;
7) WOPER - внутренняя память для хранения рабочей матрицы весовых
коэффициентов;
8) WFIFO.s - количество 64-разрядных слов, переписываемых за одну операцию
загрузки в теневую матрицу весов WBUF из WFIFO. Это количество определяется
по значению регистра границ SB;
9) п - количество элементов вектора, задаваемых в команде;
10) X, Y - обозначения векторов операндов, в качестве которых могут быть:
• нулевой вектор длины п;
• вектор из RAM длиной RAM.n;
• вектор из AFIFO длиной AFIFO.n;
• вектор из внешней памяти длиной из п элементов;
11) М - обозначение векторов масок для выполнения векторной операции, в качестве
которых могут быть использованы:
• вектор из RAM длиной RAM.n;
• вектор AFIFO длиной AFIFO.n;
• вектор из внешней памяти длиной п.
На основании введенных переменных запишем следующие векторные команды.
1. Команды загрузки данных в векторный процессор (VL - подгруппа):
а) [X<J [Y<_] [М<_] [RAM<_] ({f^ARt, GRj); AR; <_ fM(AR}, GRt)})|n.
Конструкция такого вида обозначает присвоение значения вектора V векторам X,
Y, М, RAM в зависимости от управляющих параметров, заданных в векторной
команде.
[WBUF<_] (WFIFO I WFIFO.s);
б) WFIFO <_ ({faap(ARi, GRj); AR* <_ fM(ARb GRi)}|„).
140
10. Программирование СИИ на нейромикропроцессорах
2. Команды выгрузки данных из векторного процессора (VS - подгруппа):
а) AFIFO <_ ^orH4(FPX(X), FPY(Y)), где FPX - пороговая функция вектора
операнда X, FPY - пороговая функция вектора операнда Y.
[WOPER <J WBUF;
б) AFIFO <_ fapif(j)M (FPX(X), FPY(Y)),
AFIFO <_ fsn(FPX(X), FPY(Y)),
где fsh - функция циклического сдвига на один разряд вправо от операнда X.
10.3. Специальные векторные команды группы VN
1. Команды, предназначенные для выдачи в AFIFO содержимого управляющих
регистров.
2. «Нет операции».
Команды управления
Для описания группы JC вводятся следующие обозначения:
1) 1км - функция вычисления адреса перехода;
2) PC - счетчик адреса команд;
3) COND - условие выполнения перехода или обращения;
4) JUMP - передача управления;
5) CALL - вызов подпрограммы;
6) RetS - выход из подпрограммы;
7) Retl - выход из обработки прерывания.
С учетом введенных обозначений запишем ряд команд.
1. Команды безусловного и условного перехода:
• JUMP WARi, GRj, PC) безусловный;
• JUMP WARi, CM, PC);
• JUMP COND, WARs, GRj, P) условный;
• JUMP COND, WARj, CJ;
2. Команды безусловного и условного обращения к подпрограмме:
• CALL fKM(ARi, GRj, PC) безусловный;
• CALLWARi, CM,PC);
• CALL COND, WARi, GRj, условный;
• CALL COND, WARj, CM, PC);
3. Команды возврата из подпрограмм или прерываний:
• RET.S;
• RET.COND;
• RETJ;
• RETJCOND.
10.4. Формат скалярных и векторных команд
141
10.4. Формат скалярных и векторных команд
Структура инструкций скалярных и векторных операций нейропроцессора
включает в себя 2 поля, которые называются левым и правым. Оба поля используются
одновременно. В левой части можно записывать только адресные операции, в правой
части записываются арифметические и логические операции, не связанные с
вычислением адресов и обращением к памяти. Левые и правые части соединяются
командным словом with. Однако команды могут состоять только из левой или правой части,
при этом отсутствующая часть понимается как нулевая. Так как такие инструкции
могут запутать смысл команды, то структуру with riul можно опустить.
Пример:
grO=[arO++] with grl=gr3«4.
Такая структура характерна для скалярных и векторных команд, однако
векторные имеют дополнительные поля за исключением одиночных инструкций.
Простейшие команды
Так как основными операциями по использованию нейроматрицы являются ввод
исходных данных, формирование весовых коэффициентов и их пересылка при
операции векторного суммирования, то будем рассматривать действия, связанные с
регистром ram и wfifo.
1. Загрузка данных в ram. Данные загружаются из внешней памяти посредством
слов конкретной длины упакованного формата. Длина слова должна быть указана
в конкретной команде:
Rep 16 ram = [ar0++]; // загрузка 16 длинных слов упакованного формата.
Для параллельного ввода в векторный АЛУ и совершения арифметической
операции сложения содержимого буфера с afifo:
Rep 32 ram = [arO++] with data+afifo.
Содержимое регистра ram может многократно использоваться в вычислениях,
при этом содержимое может подаваться как на вход х, так и на вход у.
Rep 32 data = [arO++] with ram and data; // на вход x,
Rep 32 data = [ar0++] with vsum data, ram; // на вход у.
Содержимое afifo может подаваться как на вход х, так и на вход у.
Rep 32 data = [arO++] with ram + ram.
Через регистр ram могут осуществляться операции маскирования. При этом
в операндах, кроме входа х и входа у, указывается вход для маски.
Rep 32 data = [агО++] with mask ram, afifo, data;
// операция маскирования на векторном АЛУ.
Пример. Совмещение в регистре ram операции маскирования с операцией
взвешенного суммирования.
Rep 32 data = [arO++] with vsum ram, data, afifo.
В процессе работы с ram могут возникать следующие ошибки:
• чтение данных из пустого ram;
• попытка читать больше данных, чем записано в ram;
142
10. Программирование СИИ на нейромикропроцессорах
• попытка читать меньше данных, чем записано в ram;
• использование старого содержимого одновременно с записью в ram.
2. Использование регистра-конвейера wfifo.
Через него можно осуществлять:
• загрузку весовых коэффициентов;
• выгрузку;
• одновременную загрузку и выгрузку данных;
• загрузку нескольких матриц весовых коэффициентов.
Загрузка осуществляется:
Rep 16 wfifo= [arO++]; // загрузка весовых коэффициентов первых 16 слов.
Rep 16 wfifo = [arl++]; // вторых 16 слов.
Выгрузка весовых коэффициентов осуществляется только в теневую маску
посредством инструкции ftw, которая может использоваться как отдельная команда.
Rep 32 data = [arO++], ftw with not data;
Так как регистр wfifo является двухпортовым, одновременно можно его
загружать и выгружать, т. е. использовать совмещение
Rep 32 wfifo = [агО++], ftw.
Общую структуру обмена между теневой и рабочей матрицами можно
представить в следующем виде (рис. 10.1).
Теневая матрица
и ее регистры
Регистр nbl (64)
Регистр sbl (64)
Теневая матрица
wtw
Рабочая матрица
и ее регистры
Регистр пЬ2 (64)
Регистр sb2 (64)
Рабочая матрица
Рис. 10.1. Общая структура обмена между теневой и рабочей матрицами
Для разбиения матрицы весовых коэффициентов можно использовать табл. 10.1.
Таблица 10.1. Значение констант
Разрядность элемента, бит
Количество элементов в слове
Значение константы
64
1
Oh
32
2
8000 0000h
21
3
4000 0200 0010 0000h
16
4
8000 8000h
8
8
8080 8080h
10.5. Структура программы для нейропроцессора
143
Загрузка нескольких матриц весовых коэффициентов. Количество слов
передаваемых данных определяется разбиением этих данных на строки, причем каждой
строке соответствует 64-разрядное слово данных. Если количество слов в несколько
раз превышает его емкость, то целесообразно разгрузить несколько матриц весовых
коэффициентов, а затем командой пересылки wtw подсчитывать порции данных для
обновления содержимого теневой матрицы. Для загрузки нескольких матриц весовых
коэффициентов может быть использована программа:
data «data matrix»
matrix: long[32];
end «data matrix».
begin «text»
sb=0202 0202h; // в матрице 8 строк
arO=matrix; // загрузка в регистр агО адреса матрицы
rep 32 wfifo = [arO++], ftw, wtw;
// загрузка весов с одновременной записью 8 из них в теневую матрицу
ftw, wtw // еще 8-ми
ftw, wtw
end «text».
10.5. Структура программы для нейропроцессора
Структура программы для управления нейропроцессором состоит из 7 основных
частей:
1) объявление глобальной метки;
2) ввод данных;
3) описание библиотеки макросов;
4) определение глобальной метки;
5) секция основного кода;
6) возврат из подпрограммы;
7) признак окончания секции кода.
Для простых команд может отсутствовать описание макросов.
Пример простейшей программы:
1. global_ _main: label; //объявление глобальной метки
4. begin «.text ААА» // начало секции кода
5. <_ _ main> // определение глобальной метки
gr0=l; //загрузка константы в 1-й общий регистр
grl=2; //загрузка константы во 2-й общий регистр
gr7=gr0+grl; //нахождение суммы
6. return; //возврат из функции, возвращение значения в gr7
7. end «.text ААА».
В данном примере отсутствуют 2-я, 3-я части.
Программа начинается с объявления глобальной метки, имя которой main
(указывается в объявлении глобальной метки). Главная метка определяет адрес в памяти
той команды, с которой начинается тело основной программы.
Объявление метки может происходить в любой части файла. Однако для лучшей
читаемости кода рекомендуется выносить его за пределы секции. Метка - особенное
144
10. Программирование СИИ на нейромикропроцессорах
имя с двумя подчеркиваниями перед словом. Метка является началом последующей
программы.
Функция с этим именем вызывается из кода начальной инициализации и
автоматически добавляется к каждой последующей программе при компиляции.
10.6. ввод данных
Ввод данных может представлять собой секцию инициализированных данных,
которые определяются ключевым словом data, и неинициализированных данных -
nobits:
а) data «.MyData»// секция инициализированных данных
Temp: long=01: 1- 64 разряда;
End «.MyData»
б) nobits «.MyDatalx^/секция неинициализированных данных
A: long; // объявляется 64-разрядная переменная
End «.MyDatal»
в) data «.MyData»//
A: word=l, АА: long=8877665544332211hl; //исходный вектор
В: word=2, ВВ: long: 001//место для хранения результатов вычисления
Matr: long[8]=(01(14 нулей) hi,
0001 (12 нулей)п1,
(14 нулей)Olhl)
End «.MyData»
Определение глобальной метки: < main>
Секция кода начинается с begin и заканчивается end, где begin - открывающая
скобка, end - закрывающая.
Имена секции кода при открывающей и при закрывающей скобке должны
совпадать. В данном примере 1-й командой является grO=l.
Инструкции grO=l и grl=2 представляют собой команды инициализации
констант РОНов. Инструкция gr7=gr0+grl выполняет арифметическую операцию
суммирования, содержащего grO и grl, а результат заносится в gr7. Таким образом, gr7
используется для хранения возвращаемого значения при выходе из функции. Тело
команды заканчивается командой return - командой возврата из подпрограммы.
Последней строкой стоит закрывающая скобка секции кода end.
10.7. Запуск программы
Для компиляции программы Пример 1 необходимо в командной строке ввести
следующую команду:
nmcc-gStepl.asm libc.lib_m(*)
Программа nmcc представляет собой специальную оболочку, упрощающую
процесс запуска компилятора. Эта оболочка автоматически определяет, какой набор
системных компиляторов необходимо вызвать для сборки исполнительного файла.
• nmcc может иметь свои параметры - ключи, которые могут располагаться в
произвольном порядке, например:
• g - включает отладочную информацию в выходной файл;
10.8. Структура ассемблера NM 640Х
145
• m - включает порождение файла карты памяти, где будут указаны:
♦ объем памяти под те или иные секции кода и данных;
♦ их адреса;
♦ список глобальных переменных.
Для того чтобы компиляция программы Step 1.asm прошла успешно, в командную
строку добавлен файл libc.lib. Это библиотека, выполняемая на языке Си. В данной
библиотеке содержится стартовый код программы. Определяем точку start, которая
обеспечивает отладку и выполнение, с помощью набора утилит. В частности, там
содержится код останова, куда программа приходит по окончании ее выполнения.
Именно по выполнению этого кода утилиты, запустившей программу на выполнение,
понимают, что программа завершена.
Если в командной строке не указано имя выходного файла, то его имя будет
сформировано по имени первого встреченного файла.
В данном примере первым расположен файл Step 1.asm, поэтому в результате
компиляции исполнительный код программы будут сохранять в файле Stepl.abs.
Данный файл может быть выполнен и на симуляторе, т. е. специальной программе,
эмулирующей выполнение данного кода
Emurun.exe. Данная программа представляет собой программу-эмулятор на
уровне инструкции.
Stepl.abs::warning:return3=Ox3 отображает значение, возвращаемое
пользовательской программой. Такая строка появляется всегда, когда функция main возвращает
ненулевое значение. Для загрузки программы в символьный отладчик надо дважды
нажать мышкой на иконку с именем пользовательской программы, которая будет
автоматически загружена в emudby и остановится на точке входа в готовность
выполнить первую инструкцию стартового кода.
10.8. Структура ассемблера NM 640Х
Ассемблер для нейропроцессора - это однопроходный компилятор, переводящий
программу, написанную на языке Ассемблер, в объектный файл с расширением .elf.
Ассемблер нейропроцессора не разрешает внутренние ссылки и не определяет
неопределенные внешние символы.
Главная задача ассемблера - построить таблицу символов и произвести
преобразование ассемблерных строк в инструкции процессора. Ассемблер процессора
позволяет создавать библиотеку макросов, а также добавить в уже существующие
библиотеки новые макросы. Ассемблер нейропроцессора обрабатывает файлы на языке
ассемблера, полученные от 3-х источников:
1) файлы, порожденные компилятором С++;
2) файлы на языке ассемблера, написанные вручную;
3) макробиблиотеки, порожденные самим ассемблером во время предыдущих
сеансов работы.
Результатом работы ассемблера может быть либо объектный файл, либо
библиотека макросов (рис. 10.2).
146
10. Программирование СИИ на нейромикропроцессорах
Тексты макросов на
языке Ассемблер
Исходные тексты на С++
1
Ассемблер
~с—
Компилятор С++
1
Образцы исходных текстов
на языке Ассемблер
Библиотека макросов
Библиотекарь
объектных файлов
Ассемблер
1
Объектные коды модулей
в формате elf
Программы на
языке Ассемблер,
разработанные
вручную
Библиотеки
объектных файлов
Э
Редактор связей
1
Процессор NM
Выполняемый код
к
программ
Программный
эмулятор
СРезультат^
выполнения./
^^^ладка^^
Рис. 10.2. Результат работы ассемблера
Ключи ассемблерных команд. Существует 5 типов ключей:
1. общие ключи управления ассемблерных команд;
2. ключи вывода;
3. ключи макробиблиотекаря;
4. отладочные ключи;
5. ключи управления предупреждающими сообщениями.
Общие:
• q - запретить выдачу заголовка программы;
• i - запретить вывод любых сообщений;
• I - указать путь к макробиблиотеке (по умолчанию ищутся в текущем каталоге);
• р - вывести местонахождение ассемблера (не используется с другими ключами);
• t - вывести заголовок ассемблера;
• h - вывести эту страницу.
Ключи вывода:
• 1 - создать файл листинга (имя файла при этом создается из имени выходного
файла заменой расширения на .1st);
• х - создать таблицу перекрестных ссылок (имя файла создается из имени
выходного файла заменой расширения на .erf).
10.9. NM Calculator - программное обеспечение нейропроцессора
147
Ключи макробиблиотекаря:
• m - создать макробиблиотеку из макросов входного файла с расширением .mlb;
• а - добавить библиотеки, при этом библиотечный файл должен существовать.
Ключи макробиблиотекаря исключают использование ключей вывода.
Отладочные ключи:
• d - включить отображение процесса синтаксического разбора.
Ключи управления предупреждающими сообщениями:
• w+номер - разрешает предупреждение номера;
• w-номер - запрет предупреждения номера.
В качестве номера может использоваться группа номеров предупреждений.
Группы: all - всех, debug - отладочных команд; object - объектного кода; compile -
компиляции; librarian - бибилиотеки.
При появлении в командной строке -h или -? работа ассемблера завершается
и выходной файл не создается.
10.9. NM Calculator - программное
обеспечение нейропроцессора
Данное программное обеспечение предназначено для упрощения разработки
программ и тем самым ускорения разработки ПО. Данная программа представляет собой
интерактивный помощник разработки ПО. Она полезна программистам при освоении
языка ассемблера, и в процессе программирования векторного узла процессора.
Данная программа является программной моделью векторного узла, поэтому в ней нет
полного соответствия реальным аппаратным ресурсам нейропроцессора, однако
такое абстрагирование упрощает процесс разработки и позволяет программисту
сосредоточиться на решении основной задачи.
Особенностью этой программы является формирование векторной команды и ее
немедленного запуска, т. е. программа работает в режиме интерпретации. Программа
способна работать в двух режимах:
• режим эмуляции векторных команд;
• работа с рабочей матрицей или операция взвешенного суммирования VSUM.
Пользовательский интерфейс представлен в виде окна, совместимого с Windows.
Интерфейс состоит из двух частей, слева расположены элементы управления, с
помощью которых можно:
1) сформировать векторную команду;
2) ввести исходные данные;
3) получить отчет о текущем состоянии регистра.
В правой части визуализируется состояние регистров и рабочей матрицы. При
формировании векторной команды и задании входных данных автоматически:
1) производится контроль над действиями пользователя таким образом, что не
следует опасаться неверно введенных значений;
148
10. Программирование СИИ на нейромикропроцессорах
2) генерируется пример ассемблерного кода реализации функции, в которой
используется сформированная пользователем векторная команда.
Для задания векторной команды необходимо установить флажки
соответствующих элементов управления. Программой автоматически отслеживаются неверные
коды команд. В процессе работы предлагается следующий алгоритм, или порядок
выполнения:
1) определяется операционное устройство в случае взвешенного суммирования
с помощью операции mode;
2) устанавливаются и в случае необходимости подключаются регистры
маскирования и функции активации. При работе с векторным АЛУ задается требуемая
арифметико-логическая операция в группе переключателей operation;
3) задается разбиение рабочей матрицы по строкам и столбцам, причем для
удобства 64-разрядные регистры разбиения по строкам и столбцам разделены на
младшую и старшую части. При необходимости возможно копирование значения
младшей части регистра в старшую. В случае работы с векторным АЛУ в
отличие от VSUM разбиение можно задать только в регистрах nbl и nbh, т. е. векторы
на входе х и у имеют одинаковое разбиение, а в операции взвешенного
суммирования VSUM разбиение на столбцы может отличаться от разбиения на строки;
4) вводятся входные значения;
5) запускается программа на выполнение;
6) контролируется выполнение программы.
В состав модуля входят процессор Neuromatrix, блок памяти DRAM на 32 Мб,
оперативная SRAM 0,5 Мб и PCI контроллер (рис. 10.3).
DRAM 32
Мб
Локальный
контроллер
SRAM 0,5
Мб
CPUNM
6403
мезонин
/7
Внешние
коммуникационные порты
PCI
контроллер
PCI-BUS
Рис 10.3. Состав модуля процессора Neuromatrix
Блок статической памяти доступен для записи и чтения как со стороны
процессора, так и со стороны шины PCI. Для расположения на модуле дополнительных
устройств (ЦАП/АЦП) предусмотрена установка мезонина по стандарту Industry Pack.
10.10. Возможные области применения нейропроцессоров
149
На внешние разъемы платы выведены 2 коммуникационных порта, аппаратно
совместимых с DSP типа TMS320C4X.
Кроме того, посредством коммуникационных портов можно объединять
несколько процессоров Neuromatrix для создания мультипроцессорных систем различной
конфигурации.
В настоящее время NTC-модуль выпускается в шести разных вариантах,
например 1 модуль вкдючает до 12 микропроцессоров.
10.10. Возможные области применения
нейропроцессоров
1. Ядро ВМ высокопроизводительных DSP.
2. Обработка изображений.
3. Система цифровой обработки сигналов посредством нейронных сетей.
4. В качестве ускорителей векторно-матричных операций.
5. Криптопроцессор.
6. Интегральные схемы для телекоммуникаций, в частности для создания сотовых
сетей 3-го поколения.
В качестве конкретных примеров рассмотрим 3 алгоритма (табл. 10.2):
1) фильтр Собеля;
2) БПФ (быстрое преобразование Фурье);
3) преобразование Уолша.
Таблица 10.2. Применение нейропроцессоров
Тип CPU
Фильтр Собеля, кадр/с
БПФ, мкс
Преобр. Уолша, с
Р-2 300
-
200
2.58
Р200
21
-
2.8
TMS320C4X
6.8
464
-
Neuromatrix
68
102
0.45
Нейропроцессоры других фирм:
1. SIEMENS SynaPSE 1,2,3.
Считается одним из первых выпускаемых нейрокомпонентов.
Сфера применения: распознавание речи, изображения, образов, ускорение работы
программных эмуляторов.
В состав SynaPSE2 входят:
1) нейрочип МА 16 (40 МГц);
2) управляющий сигнальный процессор TMS32OC50;
3) модуль целочисленной обработки;
4) память образов;
5) память весов;
2. IBM ISA - ускоритель 16xZISC.
Предназначен для поддержки IBM совместимых компьютеров, включающих
в себя 16 процессоров, имеет ZISC036 и включает в себя 576 нейронов.
150
10. Программирование СИИ на нейромикропроцессорах
Рабочая частота - 33 МГц. На базе данного процессора изготовлен силиконовый
мозг для обработки аэрокосмических изображений производительностью 80 петаф-
лопс, что соответствует в 1-м приближении мозгу человека. Потребляемая
мощность - 20 Вт.
Нейрокомпьютеры предполагают наличие главной ЭВМ (например, WS SUN),
которая позволяет облегчить процессы программирования, проектирования нейросе-
тей, тестирование управления внешними устройствами и выводы результата.
В России создан нейрокомпьютер «Эмбрион», который по своей структуре
отличается от других нейрокомпьютеров. На данный момент известно несколько
модификаций этого нейрокомпьютера:
1) датчик случайных управляемых импульсных потоков «Эмбрион 1»;
2) техническая диагностика неисправностей энергогенератора самолетной
электростанции «Эмбрион 2»;
3) управление нестационарным объектом - ЛА (летательным аппаратом) в реальном
масштабе времени «3,4»;
4) орган технического зрения для управления адаптированным промышленным
роботом «Универсал 5А» и мобильным автономным роботом «Краб 1».
11. СИНГУЛЯРНОСТЬ
ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
11.1. Определения и обоснования
В 1993 г. на симпозиуме VISION-21, который проводился году Центром
космических исследований NASA им. Льюиса и Аэрокосмическим институтом Огайо, была
представлена статья «Грядущая технологическая сингулярность: как выжить в
постчеловеческую эру» (The Coming Technological Singularity: How to Survive in the Post-
Human Era). Автором доклада был математик и писатель Вернор Виндж (Vernor
Vinge). В 2003 г. автор дополнил эту статью некоторыми комментариями. Статья
была написана более десяти лет назад, но актуальна до сих пор. Те комментарии,
которые внес автор спустя десять лет после первоначального написания, лишь дополняют
первоначальную статью.
Экспоненциальный рост достижений в области высоких технологий, таких как
микроэлектроника, кибернетика, бионика и робототехника, дает основания полагать,
что мир в своем технологическом развитии движется к определенной эволюционной
асимптоте, некоторой точке на оси времени, при приближении к которой ряд
ключевых показателей прогресса стремится к бесконечности.
Эта прогнозируемая точка эволюции называется точкой сингулярности.
11.2. Понятие сингулярность
Термин сингулярность (лат. singularis - отдельный, особый) заимствован у
астрофизиков, которые используют его при описании космических черных дыр и, в
некоторых теориях, начала вселенной - точки с бесконечно большими массой и
температурой и нулевым объемом. Математически сингулярность - точка функции,
значение функции в которой стремится к бесконечности, либо другие подобные
«интересные» точки. Какое же отношение может иметь понятие сингулярности к
технологии?
Первой и, пожалуй, базовой идеей является следствие из закона Мура
(приблизительное удвоение количества транзисторов на новых кристаллах микропроцессоров
каждые 18 месяцев). Где-то между 2015 и 2035 годами вычислительная мощность
отдельных компьютеров сравняется с «сырой» вычислительной мощностью
человеческого мозга (порядок последней оценивается в 1016 операций в секунду), а затем
и превзойдет ее. Конечно, закон Мура - это, на самом деле, никакой не закон, а всего
лишь эмпирический вывод из наблюдаемой скорости развития технологий. Однако,
если трактовать этот закон более широко (а именно считать не количество
транзисторов на кристалле, а доступные быстродействие процессоров и объемы памяти),
то окажется, что держится он значительно дольше существования интегральных
схем, сменив по пути несколько технологий - электромеханические вычислители,
ламповые, транзисторы... Кроме того, сам период 18 месяцев условен и с течением
времени постепенно уменьшается. Таким образом, у нас есть хорошие шансы, что
еще не менее 15 лет закон Мура продержится. Разумеется, одной только
вычислительной мощности мало - нужно и соответствующее программное обеспечение.
152
П. Сингулярность искусственного интеллекта
Но, как мы видим, с этим тоже все в порядке: достигли уровня практической
применимости такие традиционно «интеллектуальные» операции, как распознавание речи,
текста и других образов; дальние потомки «Элизы» - чат-роботы - успешно
выдерживают тест Тьюринга в непритязательных беседах на уровне «девушек, не
обремененных умственной деятельностью»; ну и всем уже надоевший пример Deep Blue,
лишь немного не дотянувшей до ничьей с чемпионом мира по шахматам.
Итак, если принять в качестве рабочей гипотезы, что возможности компьютеров
в ближайшем будущем превзойдут человеческие, то на этом уровне совершенно
не важно, будут ли они на самом деле мыслить. Поскольку результаты их работы
будут такими же, как если бы они мыслили, причем быстрее и глубже, чем люди.
Впервые за всю историю человечества мы окажемся в обществе существ, более
разумных, чем мы сами. Первое (и, фактически, единственное) следствие: мы
не сможем полностью ни понять, ни предсказать дальнейшее развитие событий,
когда «у руля» цивилизации встанут не только, не столько, а затем и исключительно не
люди, а сверхинтеллекты. В этом и заключается смысл предложенного Винджем
термина «Сингулярность»: условия, в которых привычные модели и представления
теряют свою применимость и начинается нечто принципиально иное.
Примечание. Сингулярность - не синоним бесконечности. Ничего бесконечного не возникнет.
Хотя с точки зрения стороннего наблюдателя изменения, скорее всего, будут выглядеть
взрывными, быстрее экспоненциального роста, но нигде не гиперболическими.
11.3. Симптомы СИНГУЛЯРНОСТИ
Похоже, Виндж угадал, что технологический этап развития цивилизации в
общем и целом близок к своему завершению. Только вот конца истории это отнюдь
не означает - скорее наоборот: окончена Предыстория человечества, а настоящая-то
История только-только начинается. Именно информационная революция выводит
цивилизацию на принципиально новый уровень... Впрочем, может быть это новое -
лишь хорошо забытое старое: «Вначале было Слово», а что есть Слово, как не
Информация? Возможно, кстати, что отличие нынешней революции от двух
предыдущих - ее «каскадность» - связано именно со свойствами информации как таковой.
Ляпунов строго доказал, что на информацию, в отличие от вещества и энергии, не
распространяются законы сохранения, т. е. она может быть заново создана - либо,
напротив, безвозвратно утрачена. Именно поэтому Акт Творения для человека
возможен лишь в информационной сфере - в сферах же вещества и энергии это
прерогатива Демиурга.
Вернором Винджем было выделено несколько возможных путей образования
сверхчеловеческого интеллекта. Эти пути были следующими.
11.3.1. Искусственный интеллект
По поводу ИИ в кругу специалистов постоянно возникают споры при любом
удобном случае. Главный вопрос, который при этом возникает: возможен ли
искусственный интеллект? Можно ли научить машину думать? Верите ли вы в
возможность создания ии* Во всех этих вопросах употребляется модальность верования,
из чего можно заключить, что вопрос об искусственном интеллекте выходит за рамки
научного.
11.3. Симптомы сингулярности
153
Машинный разум до сих пор не создан. Критики машинного разума часто
заявляют, что искусственным интеллектом занимаются уже очень давно, а он так и
не получен. Но, вероятно, уж такова природа человека, что он любит забывать, что
же он хотел получить изначально. Так, многие задачи, которые относятся к
искусственному интеллекту, так или иначе уже решены. Например, задача распознавания
образов давно уже вышла из области чисто научных исследований. Существует
несколько коммерческих продуктов, занимающихся распознаванием печатного текста
(ABBYY FineReader), рукописного текста (Paragon PenReader). Эти продукты с
первоначально поставленными задачами вполне справляются. Только вот люди хотят от
них все большего и большего. Хотят не 90 % качества распознавания, а 95 %. Когда
достигается этот рубеж, они хотят 99 % и т. д. И все время недовольны! Говорят, что
все плохо и неправильно, можно распознавать лучше, человек распознает лучше
и т. п. А ведь и люди не всякий текст могут понять. Но с пользователями не
поспоришь. Вот и получается в итоге, что общество считает, что задача распознавания
образов (текстов) не решена.
Есть еще одна любопытная подробность. Когда на заре развития компьютеров
попытки построения ИИ закончились ничем, все направление потеряло большую
часть привлекательности, ассигнования сократились, энтузиасты «переползли»
на программирование компьютерных противников в играх и пр. Казалось бы, тупик.
Если бы не одно «но»: иного результата тогда ожидать и не следовало. Нужно всего
лишь представить себе вычислительную мощность компьютеров в лабораториях ИИ
Массачусетского технологического института в то время. Они были примерно
эквивалентны мозгу насекомого. И эквивалент интеллекта насекомого был получен!
Затем сокращение ассигнований на исследования ИИ не позволило обновлять
компьютерный парк исследователей в темпе, адекватном возможностям технологии. И
только сейчас, когда существенно большие мощности стали доступны практически
каждому, следует ожидать дальнейшего прогресса.
В 1950 г. британский математик и специалист в области вычислительной техники
Алан Тьюринг предложил тест, который позволяет определить, является ли
испытуемое нечто думающим или нет. Суть теста состоит в следующем. Судья (человек)
переписывается на естественном языке с двумя собеседниками, один из которых -
человек, другой - компьютер. Если судья не может надежно определить, кто есть кто,
компьютер прошел тест. Предполагается, что каждый из собеседников стремится,
чтобы человеком признали его. Для того чтобы сделать тест простым и
универсальным, переписка сводится к обмену текстовыми сообщениями. Переписка должна
производиться через контролируемые промежутки времени, чтобы судья не мог
делать заключения исходя из скорости ответов. Это связано с тем, что во времена
Тьюринга компьютеры реагировали медленнее человека. Сейчас это правило
необходимо, потому что они реагируют гораздо быстрее, чем человек. Тест был инспирирован
салонной игрой, в ходе которой гости пытались угадать пол человека, находящегося
в другой комнате, путем написания вопросов и чтения ответов. В оригинальной
формулировке Тьюринга человек должен был притворяться человеком
противоположного пола, а тест длился 5 минут. Сейчас эти правила не считаются необходимыми
и не входят в спецификацию теста.
В 1964 г. крупным американским кибернетиком Дж. Вейценбаумом была создана
программа «Элиза» (ELIZA), имитирующая поведение психиатра. Пациенты, с
которыми беседовала эта программа, в большинстве случаев были уверены, что общают-
154
П. Сингулярность искусственного интеллекта
ся с врачом. Тем не менее, успех этой программы никого не может заставить считать
ее искусственным интеллектом. Не были выполнены серьезные условия
прохождения теста - испытатели не были поставлены в известность, что они сейчас проводят
испытание. Пока что ни одна программа и близко не подошла к прохождению теста.
Такие программы, как «Элиза», иногда заставляли людей верить, что они говорят
с человеком, как, например, в неформальном эксперименте, названном AOLiza.
Но такие «успехи» не являются прохождением теста Тьюринга. Во-первых, человек
в таких беседах не имел никаких оснований считать, что он говорит с программой,
в то время как в настоящем тесте Тьюринга человек активно пытается определить,
с кем он беседует. Во-вторых, документированные случаи обычно относятся к таким
чатам, как IRC, где многие беседы отрывочны и бессмысленны. В-третьих, многие
пользователи IRC используют английский как второй или третий язык, и
бессмысленный ответ программы, вероятно, спишется ими на языковый барьер. В-четвертых,
многие пользователи ничего не знают об «Элизе» и ей подобных программах и
не могут распознать совершенно нечеловеческие ошибки, которые эти программы
допускают.
Против теста Тьюринга было выдвинуто несколько возражений.
1. Машина, прошедшая тест, может не быть разумной, а следовать какому-то
хитрому набору правил. (Распространенное контрвозражение: откуда мы знаем, что
человек не следует какому-то хитрому набору правил?)
2. Машина может быть разумной и не умея разговаривать, как человек.
3. Некоторые вполне разумные люди провалят этот тест (например, маленькие дети
или неграмотные).
4. Если тест Тьюринга и проверяет наличие разума, то он не проверяет сознание
(consciousness) и свободу воли (intentionality), тем самым не улавливая важных
различий между разумными людьми и разумными машинами.
Ежегодно производится соревнование между разговаривающими программами,
и наиболее человекоподобной, по мнению судей, присуждается приз Лебнера (Loebner).
Есть дополнительный приз для программы, которая, по мнению судей, пройдет тест
Тьюринга. Этот приз еще не присуждался.
11.3.2. Увеличение биологических возможностей человека
Любимая тема фантастов, поэтому о ней много говорить не стоит. Все в
конечном итоге сводится либо к генной инженерии и евгенике, либо к тонкой киборгиза-
ции, не берущей на себя функции нервной системы, а только дополняющей их.
Решение неплохое, но и самое смутное. Да, геном человека уже расшифровали
(кстати, не без помощи проекта распределенных сетевых вычислений United
Devices), но понять, какие участки ДНК за что отвечают, - на это потребуются
десятилетия упорного человеческого труда. Не говоря уже о том, что для начала
практического применения знаний потребуются, в конечном итоге, опыты не просто на
людях, а на эмбрионах. Современная мораль к этому не готова и еще долго готова
не будет, судя по тому, какие проблемы возникли с клонированием без дублирования
личности.
До вживления эффективных киберпанковских имплантов нам тоже еще далеко -
только в феврале 2001 г. осуществили первое соединение нейрона с чипом. Есть,
правда, непроверенные сведения об использовании видеокамеры в качестве глазного
протеза... Этот сценарий, скорее всего, будет реализован уже после достижения
сингулярности и отнюдь не без помощи машин, обладающих интеллектом.
1 1.3. Симптомы сингулярности
155
11.3.3. Человеко-компьютерные системы
Основная суть этого подхода - в объединении сильных сторон человека и
компьютера. Человек использует интуицию, ассоциации и свое понимание процессов.
Компьютер выполняет громоздкие точные расчеты и расширяет эффективный объем
оперативной и долговременной памяти человека. Хотя по отдельности ни человек, ни
компьютер не являются машинным интеллектом, во взаимодействии они этот
интеллект образуют.
Другой вариант той же идеи - согласованное сотрудничество людей,
объединенных компьютерной сетью. Этот сценарий наиболее заманчив. Нам не придется
переламывать моральные принципы и разумные опасения, как в случае форсированного
биологического развития. Мы не рискуем быть вытесненными из всех сфер активной
жизни искусственными интеллектами. Более того, не нужно разрабатывать ничего
столь же принципиально нового, как искусственный интеллект или биотехнологии, -
все произойдет мягко и незаметно, в процессе естественного развития.
В сущности, на этом пути люди уже являются сверхчеловеческим
интеллектом, по крайней мере, некоторые из нас, кто умеет эффективно работать с
компьютером. Слабыми и узкоспециализированными, но уже выше человеческого уровня.
Некоторые экзамены уже сейчас невозможно сдать за разумное время без помощи
калькуляторов. Если дать человеку компьютер с соответствующим программным
обеспечением, он легко достигнет высших результатов в существующих IQ-тестах.
Программы-словари и интерактивные переводчики позволяют человеку, не очень
хорошо знающему иностранный язык, общаться на этом языке в чатах практически
в реальном времени. Если бы у Каспарова была в распоряжении простая шахматная
программа-ассистент, у Deep Blue не было бы ни одного шанса. Не говоря уже
об объеме знаний, которые практически мгновенно оказываются в распоряжении
человека, умеющего пользоваться поисковыми серверами в интернете.
Теперь подумайте, чего можно достичь даже с уже существующими
вычислительными мощностями, если уменьшить количество промежуточных ступеней в
парах «мысль-действие» и «восприятие-мысль». Уже есть датчики, реагирующие
на движение глаз, тела, дыхание, давление... Уже есть наглазные дисплеи с
проекцией изображения на сетчатку. В принципе, уже возможно вводить элементы
виртуальной реальности в наблюдаемую реальность вещественную. Ведутся работы над
качественно новыми мультимедийными интерфейсами. Не исключено, что, оглянувшись
назад лет через 30, мы уверенно скажем: «Переход к сингулярности начался еще
в 1996 или 1997 г.». С течением времени мы будем наблюдать все больше симптомов.
Дилемма, которую прочувствовали фантасты, станет восприниматься в контексте
творческих усилий иного рода. Человечество станет свидетелем того, как постепенно
будут автоматизироваться задачи все более высокого уровня. Уже сейчас
существуют инструменты (программы символической логики, САПР), которые освобождают
нас от большинства нудной рутины.
Есть и обратная сторона медали: истинно производительный труд становится
уделом стабильно сокращающейся узкой элиты человечества. С пришествием
сингулярности мы увидим, как, наконец, сбываются прогнозы о настоящей техногенной
безработице.
А каким же будет наступление самой сингулярности? Что можно сказать об
истинном характере этого события? Поскольку дело касается интеллектуального разго-
156
IL Сингулярность искусственного интеллекта
на, вероятно, это окажется самой стремительной технической революцией из всех
прежде нам известных. Ожидать этого не будет никто, даже те ученые, которые
вовлечены в творческий процесс. «Но ведь все наши предшествующие модели не
двигались! Мы только подкрутили кое-какие настройки...», - примерно такие мысли
и слова удивления можно ожидать от них.
11,4. Пути к сингулярности и от нее
Экспоненциальный рост может быть динамической закономерностью
цивилизации на протяжении тысячелетий, но не миллионов лет. Такой рост по
астрономической шкале длится мгновение, в течение которого начавшийся процесс познания
приводит к кумулятивной цепной реакции. Цивилизацию, которая исчерпывает
собственные людские ресурсы в этом «научном взрыве», можно сравнить со звездой,
сжигающей свое вещество в одной вспышке, после чего она приходит в состояние
изменившегося равновесия либо же становится ареной процессов, которые заставили
умолкнуть, быть может, не одну космическую цивилизацию (Станислав Лем, «Сумма
технологии», 1967).
Виндж не претендует на то, что сингулярность наступит обязательно.
Упоминаются популярные и признанные аргументы Пенроуза и Серла о непрактичности
машинного разума. А в 1992 г. сообщество «Мыслящих Машин» устроило мозговой
штурм, целью которого было проверить тезис: «Как построить мыслящую машину».
То есть участники не полностью разделяли доводы против машинного разума.
Принималась общая договоренность, что разум может существовать не только на
биологической основе, а алгоритмы являются важнейшими составляющими разума.
Выделилось несколько групп, каждая придерживающаяся определенного мнения. Так,
было меньшинство, считавшее, что мощнейшие компьютеры 1992 г. по мощности
отстают на 3 порядка от человеческого мозга. Было большинство, соглашавшееся
с подсчетами Ганса Моравеца, которые показывали, что нам потребуется десять-
сорок лет и аппаратура сравняется с людьми. Было еще одно меньшинство,
считавшее, что общепринятые оценки вычислительной мощности отдельных нейронов
занижены, а значит, наши современные компьютеры отстают на десять порядков от
того устройства, что находится в человеческом черепе. Тогда, как говорит Виндж,
возможно, мы никогда так и не доживем до сингулярности, а вместо этого увидим, что
кривые производительности нашего аппаратного обеспечения начнут сглаживаться
из-за нашей неспособности автоматизировать конструкторскую работу по разработке
дальнейших усовершенствований аппаратных средств. Все кончится каким-нибудь
очень мощным компьютером, но без возможности двигаться вперед. Коммерческая
цифровая обработка сигналов будет восхитительна, обеспечивая аналоговый выход,
сравнимый с цифровыми операциями, но «сознание» не пробудится, а
интеллектуальный разгон, являющий собой самую суть сингулярности, так и не начнется. Такое
положение вещей, вероятно, следует рассматривать как Золотой век... и конец
прогресса.
Спустя десять лет Виндж добавил еще один аргумент против вероятности
технологической сингулярности: даже если мы сумеем создать компьютеры с
необходимой аппаратной мощью, может и не получиться организовать имеющиеся
компоненты таким образом, чтобы машина обрела сверхчеловеческий разум. Просто
сложность программного обеспечания возрастет настолько, что не будет никакой
77.5. Последствия сингулярности
157
возможности с ним совладать. Будут предприниматься попытки запустить все более
крупные проекты по разработке ПО, но программирование не справится с задачей и
мы не получим необходимых решений биологических моделей, которые могли бы
помочь реализовать обучение и «эмбриональное развитие» машин. Виндж даже
приводит такой контрапункт к закону Мерфи: «Максимально возможная эффективность
программной системы растет пропорционально логарифму эффективности (т. е.
скорости, полосе пропускания, объему памяти) подлежащего программного
обеспечения». И это ужасно. Это означает огромное количество программ, полезность
которых мала, а количество это все растет и растет.
Тем не менее, если технологической сингулярности суждено быть, то она
обязательно случится. То есть в принципе невозможно как-то законодательно или еще
каким-либо способом запретить ее. Даже если все государства мира осознают в ней
угрозу и перепугаются до смерти, прогресс не остановится. Конкурентное
преимущество любого достижения в средствах автоматизации является настолько
непреодолимым, что запрещение подобных технологий просто гарантирует, что кто-то другой
освоит их первым.
Виндж, наоборот, считает, что контроль сохранить невозможно. В качестве
мысленного эксперимента он предлагает представить себя запертым в собственном доме
с единственным каналом доступа информации, который ограничен некими
хозяевами. Если бы хозяева мыслили со скоростью, в миллион раз меньшей, чем мы, то,
несомненно, через несколько лет мы изобрели бы способ побега. Виндж называет эту
быстро мыслящую форму сверхразума «слабым сверхчеловеческим». Такая сущность
очень сильно ускорила бы течение времени эквивалентного человеческого ума. Что
из себя будет представлять «сильное сверхчеловеческое», сказать трудно. Но
различия будут разительны. И тут возникает вопрос о пользе такого разума для человека.
В качестве примера можно представить себе собаку с многократно ускорившейся
работой мысли. Тысячелетний опыт собачьего мышления, что он может дать
человечеству? Вообще, получается, что очень многие предположения о сверхразуме делаются
исходя из модели «слабого сверхчеловеческого». Виндж же считает, что наиболее
верные догадки о постсингулярном мире можно делать на предположениях об
устройстве «сильного сверхчеловеческого».
Вторым подходом к решению проблемы контроля является идея создания жестко
заданных ограничений свободы действия сверхчеловеческих сущностей. Яркий
пример - Законы робототехники Азимова. (Интересно, что формулировки законов
запатентованы самим Азимовым и никто кроме него не может их цитировать дословно.)
Тем не менее, даже в рассказах Азимова была поднята основная проблема таких
ограничений. Все они приводят к сужению возможностей устройств, по сравнению
с устройствами без ограничений. Значит, конкуренция будет способствовать
развитию менее ограниченных, а следовательно более опасных, моделей.
11.5. Последствия сингулярности
Итак, если сингулярность нельзя предотвратить, нельзя ограничить, то какой
будет постчеловеческая эра, насколько жестокой? Одно из возможных последствий -
физическое вымирание человечества. Например, Эрик Дрекслер, говоря о нанотехно-
логиях, сказал, что со всеми подобными техническими возможностями,
правительства, вероятно, решат, что простые граждане им ни к чему. Однако физическое выми-
158
77. Сингулярность искусственного интеллекта
рание - не самое страшное, что может случиться. Достаточно вспомнить братьев
наших меньших - животных - и отношение к ним. В постчеловеческую эру найдется
достаточно ниш, где человек будет востребован, а значит, сохранен как вид. По
этому поводу Вернор Виндж переформулирует золотое метаправило: «Обращайся
с братьями меньшими так, как ты хочешь, чтобы старшие братья обращались с
тобой». Последствия использования этого правила, рассчитанные согласно теории
игры, в каком-то смысле говорят о том, что если бы мы могли следовать этому правилу,
то это могло бы говорить о распространенности подобных добрых намерений вообще
во вселенной.
Виндж напоминает, что, несмотря на то, что предотвратить сингулярность мы
не сможем, но инициатором все же выступает человек. А значит, в нашей власти
менять начальные условия этого неуправляемого процесса, чтобы все происходило
с минимальным для нас ущербом. Будет ли прок от предвидения и планирования?
Зависит от того, будет ли переход к Сингулярности резким или тихим. Резкий
переход - это тот, при котором сдвиг к сверхчеловеческому контролю произойдет за
несколько сотен часов. Спланировать такой переход трудно. Тихий переход может
занять десятки лет, может быть, более века. В такой ситуации планирование возможно,
можно вдумчиво экспериментировать.
Нельзя предсказать конкретные формы, в которых реализуется сингулярность.
Но кое-какие детали можно предсказать почти наверняка.
На что это будет похоже с точки зрения сверхчеловеческого интеллекта
(молодого, еще не очень далеко ушедшего за пределы человеческого понимания)?
Практическое субъективное бессмертие. Возможность быть во всех местах, куда протянута
сеть. Огромное количество задач и проблем для исследования и решения - все
захватывающе интересны, на все хватает времени и способностей. При необходимости
всегда можно достроить себя, как программно, так и аппаратно (не будем забывать
о нанотехнологиях). В общем, это не всеведение и всемогущество, но очень близкое
практическое их подобие.
Материальное изобилие. Технологии, настолько близкие к идеальным, насколько
это возможно. Чистая экология. Сверхчеловечески умны управление и планирование,
учитывающие все побочные эффекты. Безопасность. Возможность делать только то,
что хочется, и настолько, насколько хочется. Те, кому этого мало, всегда могут
воспользоваться усилителем интеллекта или «загрузить» свое сознание в компьютер
и продолжить существование в качестве сверхчеловека. Все это еще не рай на земле,
но очень на него похоже.
Однако среди футурологов есть и не столь радужные оптимисты, такие,
Например, как Маршалл Брейн, который в своем эссе «Нация роботов» предрекает, что
«К 2055 г. роботы будут повсюду. Переворот этот будет очень быстрым. В том же
2055 г. нацию ожидает знаменательная веха - более половины рабочей силы
окажется без работы, и безработица будет постоянно расти». В этой связи все громче
раздаются голоса противников технологической сингулярности и требования запретить
работы в области нанотехнологий и АИ как со стороны озабоченных
антитехнократов, так и со стороны религиозных деятелей.
Действительно, существует гипотетическая опасность выхода
самовоспроизводящихся нанороботов из-под контроля. Тогда все живое на Земле будет разобрано
на молекулы, а нанороботы станут бесконечно копироваться и толстый слой «серой
слизи» (Gray Goo) покроет всю Землю.
77.5. Последствия сингулярности
159
Страх подобной перспективы побудил Билла Джоя, одного из авторов
универсального языка программирования Java и теперь уже главного научного специалиста
фирмы Sun, призвать на страницах журнала Wired к сворачиванию исследований
в области нанотехнологий. Он предупреждает: «Мы можем стать последним
поколением людей на Земле».
С одной стороны, осознание относительной близости сингулярности
расценивается некоторыми верующими как доказательство неизбежности второго пришествия.
При этом апокалипсические идеи, на которых паразитирует ряд направлений
христианства, теперь в новой форме овладевают умами отдельных паникеров и
«кибернетических фаталистов», захваченных манией технологического спасения или
технического трансцендентализма. Кто не верует - тот не спасется. Это похоже на новую
апокалипсическую веру, где нам обещают триумф человека по воле божьей и
одновременно пугают цитатами из Библии: «Итак, оставляя времена неведения, Бог ныне
повелевает людям всем повсюду покаяться, ибо Он назначил день, в который будет
праведно судить вселенную, посредством предопределенного Им Мужа, подав
удостоверение всем, воскресив Его из мертвых.» (Ап. Павел, НЗ, 17:29-31).
С другой стороны, остановить нарастание технологических достижений наноин-
женерии теперь уже невозможно. Пришлось бы отменить капитализм, чтобы пресечь
модернизацию промышленности. На исследования в данной области ежегодно
тратятся миллиарды долларов, и результаты все шире используются в промышленности.
Так, даже при выпуске последних поколений микропроцессоров Athlon и Pentium
применяются специальные нанопорошки для полировки поверхности кремниевых
кристаллов. А в лабораториях фирмы IBM полным ходом идут работы по
объединению нанотехнологий с квантовыми вычислениями для создания новых поколений
сверхбыстродействующих компьютеров. Идут испытания наноустройств
активизации и подавления активности нейронов, в результате которых практически
обеспечивается возможность многофункционального воздействия нанороботов
непосредственно на работу отдельных нейронов головного мозга. Это открывает множество
перспектив, позволяющих:
• резко ускорить работу человеческого мозга в миллионы раз за счет приема
и передачи сигналов от нейронов нанороботами, выполняющими предобработку
информации в локальной сети непосредственно внутри тела человека;
• объединять группы людей в нейросети по профессиональным интересам на
уровне интеграции их мозговой активности;
• подключать сознание напрямую к компьютеру, банку данных, глобальной
базе знаний и, в том числе, к чужому мозгу; реализовать процесс коллективного
мышления;
• дополнить, а со временем и заменить телефонную связь нейротелепатической
связью с лю^ым человеком; решать совместно с суперкомпьютерами
вычислительные задачи гигантской сложности;
• иметь согласованный полнофункциональный доступ к индивидуальной системе
чувственного восприятия и уметь управлять любым организмом биогенного
или искусственного происхождения;
• получить возможность конвейерного сканирования или матричной загрузки
в подсознание и сознание всей гаммы ощущений миллиардов пользователей,
160
11. Сингулярность искусственного интеллекта
подключенных к глобальной наносети; ощутить слияние с природой при
включении в систему сенсорики животного мира;
• генерировать искусственные, псевдореальные миры не отличимого от
реальности качества; открыть новый этап в развитии виртуальной и аугментальной
реальности (расширенной с помощью цифрового моделирования), медицины,
спорта, образования, кино, развлечений и т. д.;
• создать полностью автономный искусственный интеллект, дружественный
человеку и способный самоидентифицироваться в окружающем мире,
анализировать свой собственный код, саморазвиваться и самореплицироваться;
• обеспечить возможность переноса сознания на другие материальные носители
путем наносканирования мозга; добиться биологического, а затем и техногенного
бессмертия личности, способности конвергенции с групповым разумом.
От таких нововведений у кого-то голова пойдет кругом, а кто-то не в силах будет
преодолеть страх перемен и изменить свое отношение к трансгуманизму. Если
на подступах к первой волне сингулярности понадобится лишь умение легко
адаптироваться к экзотическим новшествам, то в дальнейшем, вслед за более глубокой
фазой трансформации, способность отличать экзоиллюзии от реалий станет одной
из жизненных необходимостей. В более отдаленной перспективе принцип
коммунизма «от каждого - по способности, каждому - по потребности», соответствующий
чаяниям пролетариев вчерашнего дня, будет заменен более универсальным
принципом трансгуманизма: «от каждого - по способности, каждому - все».
11.6. Сценарии без сингулярности
Человечество может и вообще не достичь сингулярности. Прежде всего,
цивилизация еще может погибнуть. Ядерная война сверхдержав маловероятна, поскольку
ядерная сверхдержава осталась только одна. Но средства массового уничтожения
ныне доступны даже небольшим террористическим организациям. А бывают еще
эпидемии, экологические катастрофы, энергетические кризисы и падения гигантских
метеоритов.
Мы можем неожиданно наткнуться на принципиальные пределы сложности
систем, не дойдя до нужного уровня интеллектуальности. Технологические пределы
электронных технологий уже видны (транзистор из трех атомных слоев вряд ли
возможно уменьшить еще). Может также оказаться, что люди не способны разработать
надежную систему, превышающую определенный порог сложности, - признаком
этого будут провалы крупных программных проектов, падающих под грузом ошибок.
Это крайне маловероятно, но это возможно, и мы можем не найти выхода из тупика.
Тогда нас ждет будущее Медленной Зоны, красочно описанное Винджем в романе
«Глубина в небе» [ ], - вечный цикл подъемов и саморазрушения цивилизаций,
достигших предела возможностей.
Сингулярности не будет, если не будут найдены источники энергии,
альтернативные нынешним (они, очевидно, не вечны). Насколько известно, альтернативные
разработки есть, но сейчас они заморожены, чтобы не рушить экономику,
построенную на нефти и атомной энергетике. Но насколько эти альтернативные источники
нам помогут - еще вопрос.
11.7. Сингулярность без искусственного интеллекта
161
Мы можем свернуть с намеченного пути развития, увлекшись новой игрушкой
разума, подобно тому, как информационные технологии вытеснили мечту
человечества о космических полетах, и забросить попытки построить Силу. По крайней мере,
в конце этого пути нас может и не ожидать гибель.
11.7. Сингулярность без искусственного интеллекта
Чаще всего, когда говорят о существах со сверхчеловеческим разумом, то
подразумевают проект по созданию ИИ. Однако в начале статьи Виндж отметил и другие
пути к сверхчеловеческому. Так, компьютерные сети и человеко-машинные
интерфейсы, хотя и кажутся более приземленными, тем не менее, могут привести к
сингулярности. Виндж называет такой противоречивый подход усилением интеллекта
(УИ), который протекает естественно и его не осознают даже разработчики. Однако
всякий раз, когда улучшаются наши возможности доступа к информации и передачи
ее другим, в каком-то смысле мы достигаем прироста по отношению к природному
интеллекту. Дуэт знающего, мыслящего человека и простой рабочей станции
способен, по-видимому, сдать любой письменный тест.
Вполне возможно, что УИ является наиболее легким путем к достижению
сверхчеловеческого, нежели ИИ в чистом виде. В том, что касается людей, сложнейшие
проблемы развития уже решены. Постепенное создание умных систем на основе
имеющихся у человека способностей представляется более легким, чем выяснение
истинной сути людей и затем уже постройка аналогичных им интеллектуальных
машин. Предположительно, существует еще, по крайней мере, один прецедент в
поддержку данной точки зрения. Кернс-Смит рассуждал о том, что биологическая жизнь
вполне могла зародиться в качестве случайного дополнительного свойства более
примитивных форм жизни, основывавшихся на росте кристаллов. Линн Маргулис
выдвигала серьезные аргументы, доказывая, что симбиоз является могучей
движущей силой эволюции. Виндж не предлагает игнорировать работы по созданию ИИ.
Он считает, что достижения в области разработки ИИ будут находить применение
в УИ, к наоборот. Автор предлагает понять, что в работах по созданию сетей и
интерфейсов кроется такое же серьезное и потенциально чуждое, как и искусственный
интеллект.
Далее имеет смысл указать несколько проектов, которые приобретают особое
значение с точки зрения усиления интеллекта.
1. Автоматизация человеко-машинной связки. Здесь рассматриваются проблемы,
которые обычно отводятся для решения машинам (вроде задач по методу
итеративного спуска - hillclimbing), и программы разработки и интерфейсы,
использующие преимущество человеческой интуиции с доступным компьютерным
оборудованием. Принимая во внимание причудливость задач по hillclimbing более
высокого порядка (и стройных алгоритмов, придуманных для их решения), для
человеческого компонента связки можно разработать чрезвычайно интересные
дисплеи и средства управления.
2. Симбиоз машины и человека в искусстве. Здесь имеется в виду объединение
графических возможностей современных машин и эстетической чуткости людей.
Конечно, огромные усилия исследователей тратятся на разработку компьютер-
6 3ак 1029
162
77. Сингулярность искусственного интеллекта
ных средств помощи художникам. Виндж предлагает четко нацелиться на
наибольшее совмещение умений, на максимально возможную кооперацию.
3. Человеко-машинные команды на шахматных турнирах. Сейчас уже есть
программы, которые играют в шахматы лучше подавляющего большинства людей.
Но сколько сделано, для того чтобы эту мощь мог использовать человек, с тем,
чтобы добиться каких-либо еще больших успехов? Если бы таким командам
разрешалось участвовать хотя бы в некоторых шахматных турнирах, это могло бы
оказать такое же положительное влияние на исследования УИ, какое допуск
компьютеров к шахматным соревнованиям оказывает на соответствующую нишу
разработок ИИ. В последние несколько лет гроссмейстер Гарри Каспаров развил
идею проведения шахматных турниров между игроками, которым помогают
компьютеры («прогрессивные шахматы»).
4. Интерфейсы, которые обеспечат доступ к компьютерам и сетям без обязательной
привязки человека к одному месту, за столом с монитором. Данный аспект УИ
настолько успешно согласуется с известными экономическими преимуществами,
что в этом направлении уже работают очень активно.
5. Более симметричные системы поддержки решения. Популярной областью
исследований и разработок в последнее время стали системы поддержки решения.
Это одна из форм УИ, только, возможно, слишком сфокусированная на
прогностических системах. Столько же, сколько программа предоставляет информации
пользователю, должно быть и руководства программой со стороны пользователя.
6. Местные сети, которые сделают усилия группы людей эффективнее работы
отдельных членов. Это и есть, в принципе, понятие о groupware; смена подхода
в данном вопросе заключается в представлении групповой деятельности как
работы коллективного организма. В определенном смысле цель такого
предложения может заключаться в изобретении «Устава» для таких комбинированных
операций. Например, направление деятельности группы легче было бы
поддерживать таким образом, чем посредством классических собраний. Умения
отдельных индивидуумов можно будет изолировать от эгоистических устремлений
с тем, чтобы объединенные усилия разных членов группы концентрировались
на общем проекте. Ну и, конечно, базы данных совместного пользования можно
было бы задействовать полнее, нежели в обычных совещательных операциях.
7. Интернет представляет собой комбинированный человеко-машинный
инструмент. Из всего перечисленного в этой списке прогресс в этой области идет
наиболее быстрыми темпами. Силу и влияние Интернета в немалой степени
недооценивают. Сама по себе анархичность развития Всемирной сети является
свидетельством ее потенциала. Покуда наращиваются связность, полоса пропускания,
архивные объемы и производительность компьютеров, мы наблюдаем нечто
похожее на представление Линн Маргулис о биосфере, как о своего рода конспекте
процессора данных, только с производительностью, в миллион раз большей и
с миллионами разумных человеческих агентов (нас самих).
Приведенные выше примеры иллюстрируют исследование, которое можно
провести в рамках современных областей компьютерной науки. Существуют и другие
парадигмы. Например, многие работы по созданию ИИ и нейросетей только
выиграют от более тесной связи с биологической жизнью. Вместо того чтобы просто
пытаться моделировать и воспроизводить биологическую жизнь с помощью компьюте-
J 1.7. Сингулярность без искусственного интеллекта 163
ров, исследования следует направить на создание композитных систем,
полагающихся на управление со стороны биологической жизни либо ради каких-то свойств
биологической жизни, которые мы недостаточно понимаем, но все-таки стремимся
воспроизвести в аппаратном обеспечении. Вековечной мечтой научной фантастики
являются прямые компьютерно-мозговые интерфейсы. На практике в этой области
ведутся конкретные работы.
1. Протезирование конечностей представляет собой область прямого
коммерческого приложения. Прямые нейрокремниевые преобразователи можно создать. Это
восхитительно досягаемый первый шаг к налаживанию прямой
человеко-машинной связи.
2. Прямые каналы связи с мозгом кажутся вполне осуществимыми, если битрейт
достаточно низок. Учитывая развитую обучаемость человека, едва ли
потребуется точно выбирать мишени среди нейронов живого мозга. Даже 100 бит в
секунду будут чрезвычайно полезны пострадавшим от паралича, которым в противном
случае придется оставаться в заложниках у интерфейсов, построенных на
структурированных меню. Здесь можно вспомнить ученого Хоукинга, который сейчас
парализован, и все его воздействие на окружающий мир сводится к движениям
его единственного подвижного пальца руки.
3. Подсоединение к оптической магистрали сулит потенциал огромной пропускной
способности. Однако для этого нам необходимо разобраться в тончайшем
устройстве зрения, да еще потребуется вживление огромного количества электродов
с необычайной точностью. Если мы хотим, чтобы широкополосное соединение
прибавило еще возможностей к тем способностям по обработке данных, что уже
имеются в человеческом мозге, проблема становится гораздо неподатливее.
Эксперименты в этой области ведутся. Так, недавно в периодических изданиях,
посвященных хайтеку, появились новости о том, что подключение цифровой
камеры к зрительному нерву уже удается, а в продажу такие устройства поступят
ориентировочно в 2009-10 гг.
4. Эксперименты с зародышами животных. Обеспечение развивающемуся мозгу
доступа к сложным симулированным нейроструктурам могло бы, в конечном
итоге, привести к появлению животных с дополнительными нервными связями и
интересными интеллектуальными способностями. Так, было сообщение о том,
что пытаются получить мышь с мозгом человека. Конечно, мышь с человеческим
мозгом навряд ли сама по себе будет полезна, но вот обратное... Если удастся
использовать нервные клетки животных для замены человеческих, это по
меньшей мере может помочь вылечить многие недуги. Влияние таких исследований
несомненно велико.
К сожалению, и на пути к сингулярности посредством усиления интеллекта
Виндж также не видит полной безопасности. УИ для человеческих индивидуумов
создает довольно зловещую элиту. У нас, людей, за плечами миллионы лет
эволюционного развития, которые заставляют нас представлять соперничество в мрачном
свете. По большей части эта мрачность может оказаться невостребованной в
сегодняшнем мире, в котором проигравшие перенимают приемы победителей и,
сплотившись, организуют выигрышные предприятия. Проблема заключается не просто
в том, что сингулярность представляет собой уход человечества со сцены, но в том,
что она противоречит нашим сокровенным понятиям бытия. Понятие самосознания
164
11. Сингулярность искусственного интеллекта
и эго является основополагающим понятием в рационализме последних нескольких
столетий. Однако ^амосрзнание как концепция подвергается нападкам со стороны
приверженцев ИИ. УИ выбивает почву из-под концепции эго с другой стороны. Уже
сейчас скорости обмена информации в общедоступных сетях достаточно велики.
Постсингулярный мир предполагает наличие более мощных каналов связи. Если
части эго можно будет копировать, объединять, а объем самосознания сможет
увеличиваться или уменьшаться в зависимости от масштабов решаемых задач, подстраиваясь
под них, что произойдет? Звучит такое построение дико, непривычно, но это и есть
существенные черты «сильного сверхчеловеческого» и самой сингулярности.
12. КЛАССИФИКАЦИЯ ЭКСПЕРТНЫХ СИСТЕМ
Экспертные системы - вычислительные информационные системы, в которые
включены знания специалистов о некоторой конкретной области и которые в
пределах этой области способны принимать экспертные решения.
Экспертные системы (ЭС) нашли применение в следующих областях:
• медицинская диагностика;
• геологическая разведка;
• распознавание образов;
• органическая химия;
• обнаружение неисправностей в электронном оборудовании: диагностика и
тестирование.
Экспертные системы положили начало совокупности методов инженерии знаний
по созданию высокоэффективных программных средств революционного
направления. При этом экспертные системы - наиболее значительное практическое
достижение в области СИИ.
Основные усилия направлены на поиск универсальных методов решения с целью
разработки общих принципов, не зависящих от специфики конкретной области.
Главное - создание оболочки, в которую можно вносить конкретные знания.
Очередной подъем в развитии СИИ начался в 70-е гг. вследствие следующих
причин.
1. Определенный предел, достигнутый в разработке роботов.
2. Застой в теоретической области СИИ нуждался в разработке и притоке новых
идей.
3. Солидный багаж методов и инструментальных средств, которые не могли лежать
без дела.
12.1. Основные понятия знания и свойства
Знания непосредственно связаны с данными. Данные - это объекты, с которыми
работает программа определенного алгоритмического языка. Знания - это
совокупность данных, связанных с различными отношениями. Системы знаний организуются
в некоторую совокупность правил в виде одной или совокупности моделей.
Такая совокупность правил позволяет в случае необходимости делать
заключение на основе исходных знаний или предложений. Во всех указанных выше моделях
знания характеризуются своими свойствами.
Рассмотрим 4 основных свойства.
1. Внутреннее интегрирование.
В этом случае знания записываются в виде таблицы, в которой по строкам
и столбцам задаются отношения между элементами данной базы. Таблицы
позволяют наглядно представить и определить связь и отношения между определенными
объектами.
166
12. Классификация экспертных систем
Например, из продукционной модели университета между факультетами и
отделениями, между факультетами и группами существуют определенные соотношения,
которые могут иметь различные отношения из данной базы. Нельзя исключить ни
отделения, ни группу.
2. Структурированность знаний.
Это наличие отношений типа часть - целое, класс - подкласс, т. е. элементы
семантической сети. Структурированность существует во всех моделях, но отличается
различными свойствами. Основой любой вычислительной системы является
файловая структура: наличие файлов, папок, директорий. Существует несколько
представлений файловой структуры, которые постепенно развиваются.
Например, операционная система Windows дает графическое представление
файловой структуры в виде ярлыков и иконок. Операционная система Windows ХР дает
другое представление.
Примером структуры знаний является то, что отделения являются частью
факультета. Точно так же, как 1-5 курсы являются частью факультета.
3. Связанность данных.
Связанность данных указывает на то, как различные данные системы знаний
связаны между собой.
Например, некоторые группы студентов связаны с отделениями конкретного
факультета.
Как правило, связанность изображается с помощью графов, которые могут иметь,
как правило, иерархическую структуру.
4. Активность.
Это свойство устанавливает логическое справедливое отношение между объектами.
12.2. Основные элементы экспертной системы
В основе ЭС лежит база знаний. Создание и использование PC для реализации
баз знаний дали возможность интегрировать методы логического вывода,
моделирующие разумные заключения, характерные для человека. Это связано с тем, что
практика требует создания автоматизированных систем, принятия решения и
создания СИИ, заменяющих человека. Это стало возможным на базе разработки
формальных моделей принятия решений во многих предметных областях.
Любая экспертная система включает в себя 3 основных компонента.
1. База знаний и интегрированные базы знаний.
2. Машина вывода с механизмом логического вывода реализацией функции, а
также синтаксис логических выводов.
3. Интерфейс разумных умозаключений.
Графические экспертные системы включают все элементы, приведенные в табл. 12.1.
Таблица 12.1. Элементы графических экспертных систем
База знаний
Машина вывода
Объекты, факты
Правила, связи
Атрибуты
Значения
Механизм логического вывода
Реализация различных функций
Синтаксис методов логического вывода
12.2. Основные элементы экспертной системы
167
Эти элементы связаны интерфейсом, вводом базы знаний, корректировкой базы
знаний, вводом методов логического вывода, выводом результатов.
В процессе проектирования ЭС необходимо реализовать следующие свойства.
1. Ограниченность определенной сферой экспертизы, т. е. проектируемая
экспертная система должна быть сугубо профессиональной.
2. Способность рассуждать и получать результаты при сомнительных данных
и дать объяснения своим рассуждениям.
Для того чтобы экспертная система не приводила в тупик при решении задач, она
должна быть гибкой и иметь расширенный диапазон вопросов.
1. Четкое разделение объектов или фактов и связанных с ними механизмов вывода.
Для реализации данной характеристики экспертная система должна иметь
гибкую систему логического вывода, основанную на различных методах.
2. Проектируемая экспертная система должна быть наращиваемой системой
и должна расширяться для конкретной профессиональной деятельности.
3. Использование четных и нечетных правил механизма логического вывода и
синтеза методов.
4. Получение на выходе пользователем лаконичных ответов, советов с
комментариями и предоставлением в некоторых случаях графической информации.
Основу любой ЭС предоставляет база данных, которая содержит объекты и
факты, утверждения в виде правил, связывающие объекты. Файлы и объекты описывают
то, что известно о данной конкретной области в данный момент. Эти данные
представляют краткосрочную информацию, т. е. они могут быть изменены или
дополнены в процессе работы. Правила устанавливают ситуационные концептуальные и
причинные взаимосвязи между объектами. Правила являются более долговременной
информацией. Они порождают или используют факты из, того, что известно. В
процессе проектирования для конкретных фактов устанавливается или описываются
атрибуты или свойства. При этом, под объектами будут пониматься как физические,
так и символические представления. Каждый атрибут объекта или факта может
принимать свое значение. В общем случае в базе данных записываются триплеты (объ-
ект+атрибут+значение). Для упрощения экспертная система без потери и
эффективности разрабатывает пары: объект+значение. Это зависит от модели. Причем для
однозначности экспертная система объекты и значения описывает через отношение
атрибут. Введенные объекты или факты, их атрибуты и значения вводятся в базу
знаний посредством соответствующих механизмов, которые должны присутствовать
в интерфейсе. При проектировании ЭС триплеты или пары должны учитываться
в механизмах логического вывода. Для реализации гибкости экспертных систем
должны быть предусмотрены выражения неопределенности достоверности фактов.
В процессе эксплуатации базы знаний постоянно пополняется недостающими
фактами, поэтому является активной. В поисках источника для наполнения базы данных
предпочтение отдается жизненному опыту, а не высокому интеллекту. Считается, что
эксперт исходит из продолжительных наблюдений за событиями в некоторой
конкретной области и создает более полезную базу знаний, чем гениальный аналитик.
Экспертная система представляет собой сцепленный список структурированных
данных. Он может иметь нулевые объекты. Каждый узел в списке имеет двойной
указатель, который определяет начало списка значений и связанных с именем объек-
168
12. Классификация экспертных систем
та. Внутренний список называется списком объектов значений, который
индивидуален для каждого узла. Порядок связи между узлами такой, что каждое предыдущее
значение указывает на последующий узел до тех пор, пока не будет исчерпан весь
список. Данная процедура представляет собой рекурсию
Для создания и манипулирования списком объектов создаются указатели и
указатель значения согласно атрибутам. Эти указатели определяют конкретные записи
с ранее определенными значениями или именем объекта посредством индексного
указателя. В экспертной системе предусмотрено наличие указателя на анонимную
переменную или пустую NIL.
12.3. Машина ввода
Одним из главных элементов ЭС является машина вывода, которая осуществляет
поиск в базе знаний соответствующих триплетов или пар по правилам рациональной
логики, согласно введенным правилам для получения решения.
Машина вывода приводится в действие при получении запроса пользователя
и выполняет следующие задачи:
1. Сравнивает информацию, содержащуюся в запросе пользователя с информацией
базы знаний (поисковые системы)
2. Осуществляет поиск определенных целей или причинных связей
3. Оценивает, относит определенность фактов, основываясь на соответствие
коэффициентов доверия, связанных с каждым из фактов.
• Если база знаний однозначная, то достаточно использовать понятие множеств.
• Если существует неопределенность неоднозначность в системе, тогда
необходимо использовать понятия нечетных множеств.
Таким образом, машина вывода предназначена для построения умозаключений
и ее действия аналогичны рассуждениям эксперта.
В процессе машина вывода предполагает гипотетические решения путем
формирования и формирования пробных гипотез и в дальнейшем проверки этих гипотез на
соответствие указанной цели. Данная процедура оценивания продолжается до тех
пор, пока не будет набран или определен наиболее вероятный путь к по.ггучению
приемлемого результата.
12.4. Интерфейс
В задачу интерфейса входит организация обмена информации между
пользователями и машиной вывода, т. е. осуществление диалога. При этом интерфейс решает
следующие задачи:
• Ввод базы знаний, т. е. ввод триплетов или пар, а также правил взаимосвязи
объектов.
• Корректировка базы знаний и правил связи между объектами.
• Удаление не нужных пар, триплетов, правил.
• Ввод или получение результата решений.
12.5. Структура экспертной системы
169
В процессе работы интерфейс должен создать видимость произвольной беседы,
т. е. диалога, применяя повседневные выражения в правильно построенные
предложения и понятия базы данных.
Интерфейс представляет собой естественный язык и PC.
В процессе описания базы знаний целесообразно использовать теоретико-
множественные понятия анализируемых триплетов, правил и понятий. При этом
абстрактный уровень позволяет осуществлять общение механизма работы экспертной
системы.
На основании введенных триплетов и правил разрабатываются правила и их
взаимосвязи, которые являются более общими, чем сами объекты.
С учетом теоретико-множественных подходов построения базы знаний алгорит-
мизуются механизмы логического вывода и синтезы методов логического вывода.
Причем введенные механизмы должны связывать воедино триплеты и правила для
сознания лаконических ответов на сформулированные вопросы.
При описании элементов логического вывода для повышения
интеллектуальности проектируемой системы целесообразно использовать аппарат нечетных
множеств, так как это позволяет увеличить глубину поиска и тем самым получить более
глубокий ответ. Кроме того, использование нечетных множеств позволяет исключить
спорные вопросы решения задач.
На основании используемой базы знаний, а также механизмов логического
вывода тщательно разрабатывается интерфейс пользователя, который должен обеспечить
профессиональный инструментарий для проектирования СИИ.
Осуществляется ввод ЭС и ее отладка. В процессе отладки осуществляется
проверка работы на конкретные вопросы согласно базе знаний. Кроме того,
анализируются те вопросы, которые могут поставить экспертную систему в критические точки,
т. е. решение сомнительных задач.
Исследование должно продолжаться до тех пор, пока экспертная система не
будет отвечать за все возможные вопросы. В процессе отладки производится уточнение
объектов и фактов, триплетов и правил.
Система считается завершенной, если она отвечает на все поставленные вопросы
в заданных границах применения экспертной системы.
12.5. Структура экспертной системы
Экспертная система является сложным программным комплексом,
аккумулирующим знания специалистов в конкретных предметных областях и тиражирующий
этот эмпирический опыт для консультации менее квалифицированных пользователей.
Алгоритм ЭС заключается в том, что пользователь желающий получить
информацию посылает запрос или обращение к экспертной системе, При этом экспертная
система, пользуясь базой знаний, интегрирует и выдает пользователю подходящие
рекомендации, объясняя ход своих рассуждений при помощи подсистемы
объяснений. По своей структуре экспертная система включает в себя (рис. 12.1):
1. Пользователь (User).
2. Инженер по знаниям.
3. Эксперт.
4. Интерфейс пользователя.
5. База знаний.
170
12. Классификация экспертных систем
интерфейс пользователя—>
PC
машина вывода
база знаний
подсистема
объяснений
интеллектуальный редактор
базы знаний
эксперт
инженер по
знаниям
Рис. 12.1. Структура экспертных систем
User - специалист предметной области, для которого предназначена экспертная
система. Обычно его квалификация в этот момент недостаточно велика. Поэтому он
нуждается в помощи данной экспертной системы.
Эксперт - это умудренный опытом и практикой специалист вышей
квалификации, на чьи знания рассчитывает User. Эксперт не обязан знать устройство и работы
с компьютером. Поэтому для того, чтобы воспользоваться его знаниями, необходим
переводчик или инженер по знаниям, т. е. программист высокой квалификации.
Инженер по знаниям - специалист в области построения и организации
интеллектуальных систем, выступающих в роли промежуточного звена или буфером меду
экспертом, вычислительной машины или базой знаний. Роль этого человека
заключается в интерпретации знаний эксперта языком машины.
В некоторых случаях эксперт и инженер могут быть одним и тем же лицом.
Интерфейс пользователя - это комплекс программ, реализующий диалог
пользователя с экспертной системой, как на стадии ввода информации, так и на стадии
получения результатов в процессе эксплуатации экспертной системы.
База знаний - это главное ядро в экспертной системе в виде совокупности
знаний, включающих в себя специальную программу решатель, модулирующий ход
рассуждений эксперта на основании знаний.
Другой составляющей базы данных является подсистема объяснений, которая
также является программой позволяющей пользователю получить ответ на вопрос
или рекомендации в форме объяснений для получения решения задачи. Таким
образом, база знаний должна быть многоуровневой позволяющей не только дать решение
задачи, но и дать ряд рекомендаций или объяснений, ведущих к получению
окончательных решений. В этом заключается гибкость создаваемой интеллектуальной системы.
Интеллектуальный редактор базы знаний - это программа, предоставляющая
инженеру по знаниям возможность создавать базы данных и работать с ними в
диалоговом режиме.
Пример. Разработка ЭС в Visual Prolog заключается в разработке интерфейса
пользователя, т. е. обращение пользователя к базе знаний и подсистеме объяснений.
Тогда сама программа обеспечивает решатель, базу знаний и инженерный редактор.
Таким образом, Visual Prolog является специальным языком для создания экспертных
систем.
12.6. Классификация экспертных систем
В настоящее время разработано достаточно большое количество экспертных
систем, которые можно классифицировать, т. е. разбить на ряд классов по следующим
признакам (рис. 12.2):
12.6. Классификация экспертных систем
111
1. Решаемые задачи.
2. Связь с реальным временем.
3. Тип ЭВМ.
.4. Степень интеграции.
иш
нрешаемые задачи]
-[интеграция данных]
-{проектирование |
{диагностика |
-[прогнозирование"]
~| планирование |
—[обуение ]
■4 монитор |
-[связь с реальным временем
-[статические |
—{динамические I
—| кваэидинамически!
тип !зВМ 1
uynep'jbm |
чмощныеэвм"]
средней
производительности
символьный
процессор
-{рабочие станции
| степень интеграции]
автономное
—щолуавтономные
гибридные или
интегрированные
Рис. 12.2. Классификация экспертных систем
Интеграция данных представляет собой процесс определенного смысла данных.
Как правило, в виде многоуровневой системы: точное, приближенное, уточненное.
Диагностика - процесс соотношения объекта с некоторым классом объектов.
Обнаружение неисправностей направленно по отношению некоторых механических
параметров от нормы.
Проектирование - процесс подготовки спецификации на создание объекта с
заранее определенными свойствами.
Прогнозирование - предсказаний последствий, явлений на основании имеющих
данных.
Планирование - программа нахождения классов действия.
Обучение - использование компьютера для процесса обучения.
Статические - экспертные системы, в которых база знаний и данные не
изменяются во времени.
Динамические - экспертные системы, которые обеспечивают работу в режиме
реального времени с непрерывным переосмыслением вступающих данных.
Квазединамические - интегрируют ситуацию, которая меняется с
фиксированным интегралом времени.
Автономные - работают в режиме консультации с пользователем и не требуют
привлечения традиционных методов обработки данных и расчетов.
Полуавтономные - требующие методы обработки данных.
Гибридные - программные комплексы, сочетающие как автономные, так и
полуавтономные.
13. примеры использования
экспертных систем
13.1.Экспертные системы медицины и химии
Тема ИИ всегда была в информатике страной, населенной массой проблем,
не поддающихся решению традиционными способами. Эта область привлекла
внимание, прежде всего разносторонних специалистов, которых не испугало ее
открытое, лишенное всякой организации пространство, - людей, которых влечет задача
узнать, как мы мыслим. Такие исследователи, как Марвин Минский, Джон Мак-Карти,
Герберт Саймон, Пат Хейес, Дональд Мичи и Бернард Мельтцер, стали
первопроходцами для тех, кто следовал за ними по пути, пролегающем через информатику,
психологию и математическую логику.
А зачем при построении экспертных систем нам вообще нужны технологии,
используемые в задачах ИИ? Почему нас не устраивают традиционные
информационные технологии, такие как математическое моделирование? Или, другими словами,
тот факт, что экспертные системы начали развиваться в русле задач ИИ, является
случайностью либо в этом была своя логика?
Не вдаваясь в длительные рассуждения, можно ответить, что нет ничего плохого
в использовании для построения экспертных систем подходящих традиционных
технологий, если это приводит к желаемому результату.
13.1.1. Экспертная система ABEL
Использование экспертной медицинской системы: ABEL помогает клиницистам
диагностировать нарушения кислотно-щелочного и водно-солевого равновесия у
пациентов, применяя знания о заболеваниях и вызываемых ими симптомах. Система
использует причинно-следственную модель возможных заболеваний пациента для
упорядочения вопросов к клиницисту и направления процесса диагностических
рассуждений. Эта модель содержит данные о пациенте и знания о взаимосвязях между
различными патологическими состояниями. Система проверяет, нет ли в данных
ошибок, сравнивая ответы клинициста на свои вопросы с предсказаниями модели.
Знания представлены в виде причинно-следственной сети, разновидности
семантических сетей, задающей причинно-следственные связи между заболеваниями и
симптомами. Система была разработана в Массачусетском технологическом институте
идоведена до уровня исследовательского прототипа.
13.1.2. Экспертные системы MYCIN и DENDRAL
Генерация гипотез в системе DENDRAL основана на алгоритме перечисления
вершин плоского графа, а в системе MYCIN использован статистический подход для
выбора способа лечения на основе анализа чувствительности организма к тем или
иным лекарственным препаратам. Использование методов поиска или языков
программирования, характерных для СИИ, не запрещает инженерам по знаниям
применять методики, заимствованные из прикладной математики, исследования операций
или других подходящих дисциплин. Для некоторой части рассматриваемой
проблемы решение может быть получено чисто алгоритмически или математически, и было
13.]. Экспертные системы медицины и химии
173
бы непозволительной роскошью отказываться от таких методов, если они
способствуют достижению нужного результата.
Более пространный ответ состоит в том, что экспертные системы не смогли бы
получить столь широкого распространения в настоящее время, если бы в свое время
в их развитие не внесли существенный вклад идеи ИИ. То, что предлагает
искусственный интеллект, - это множество концепций, технологий и архитектур, пригодных
для решения комплексных проблем в тех случаях, когда чисто арифметические или
математические решения либо неизвестны, либо малоэффективны. За последние
ЗОлет появился ряд работ, в которых предпринималась попытка приспособить к
проблематике экспертных систем теоретические и практические результаты, полученные
в соответствующих областях математики, информатики или общественных наук.
Однако, как правило, оказывалось, что перенос результатов из других дисциплин
сопряжен с появлением новых нетривиальных проблем представления информации
и управления процессом.
Ниже перечислены технологии ИИ, используемые в практике построения
экспертных систем:
• Широкий набор языков программирования высокого уровня, которые
применяются для представления знаний разного рода, таких как эмпирические ассоциации
и иерархии концептов.
• Интерактивные стратегии извлечения знаний, их преобразования и
представления, управление применением знаний в процессе решения проблем.
• Методологии проектирования, обеспечивающие создание таких экспертных
систем, которые «прозрачны» как для пользователя, так и для инженеров по
знаниям, сопровождающих систему в процессе эксплуатации.
Эти технологии оформлены в виде блоков-компонентов, из которых формируется
архитектура экспертной системы. Существуют следующие методы:
• Методы комбинирования различных парадигм представления знаний, которые
позволяют выявить сильные стороны компонентов и компенсировать слабые.
• Методы послойной организации вычислительной структуры, позволяющие
структурно разделить знания о предметной области и методике решения в рамках
единой интегрированной системы.
• Инструментальные средства расширения функциональных возможностей
решателя задач, позволяющие подключить к нему программы обучения и трассировки
процесса.
Нужно подчеркнуть, что извлечь реальную пользу из перечисленных
компонентов можно только на основе изложенных ранее базовых концепций.
Даже такие ранние системы, как MYCIN и DENDRAL, успех которых удивил
всех в свое время, появились не сами по себе, а явились закономерным результатом
исследований в области ИИ.
Хотя в этот успех внесли свой вклад и традиционные дисциплины (например,
исследование операций и стратегий поиска), решающим фактором все-таки оказались
идеи ИИ. В настоящее время уже общим местом стало утверждение, что по
определению предметом интереса области ИИ являются те информационные проблемы,
которые не могут быть решены с помощью традиционных технологий.
174
13. Примеры использования экспертных систем
Экспертные системы стали создавать, как только это позволили вычислительные
мощности компьютеров.
В России первые модели были созданы в середине 1970-х гг.: система MYCIN
использовалась в медицине для диагностики заболеваний, DENDRAL в разведке
месторождений полезных ископаемых для анализа химического состава почв.
Но квантовый компьютер, резко превосходящий обычный компьютер, в
состоянии использовать накопленные знания и алгоритмы принятия решений намного
более полно и всесторонне. Экспертная система на основе квантовых компьютеров
может заменить коллективы самых лучших ученых и инженеров, а также может
накапливать с течением времени интеллектуальный потенциал. Разумеется, что человек не
будет полностью исключен из работы, потому что потребуются люди, которые будут
формулировать запросы в экспертную систему.
В памяти ЭС хранится огромное количество всевозможных технических
сведений: параметры материалов, машин, промышленного оборудования, стандарты
и многое другое. Также хранятся алгоритмы принятия решений, созданные тысячами
самых лучших специалистов. В экспертную систему вводится запрос, скажем, на
конструирование машины с определенными функциями. Экспертная система
выполняет разработку и конструирование машины, как если бы это делал большой
коллектив высококлассных специалистов, и выдает готовые чертежи, по которым машину
можно построить. В разработке учтены наличие материалов и возможности
производства. Создание подобной ЭС на основе квантовых компьютеров произведет
крупнейший переворот в технике. В разы сократится время разработок новых машин,
будет освоен большой спектр разнообразных технических и конструкторских решений,
будут преодолены традиции, сковывающие работу специалистов. Страна, которая
первой создаст такую экспертную систему, получит уникальный шанс вырваться
в лидеры в научно-технической гонке. Даже самые лучшие коллективы ученых и
инженеров высочайшей квалификации будут не в состоянии тягаться с машиной,
которая аккумулирует огромный объем информации, алгоритмы мышления тысяч
лучших ученых, и при этом в состоянии работать круглые сутки.
13.1.3. Экспертная система: PTRANS
Сфера применения: Промышленность. Описание экспертной системы: PTRANS
помогает управлять производством и распределением компьютерных систем
компании DEC. Она использует описание заказа клиента и информацию о работе завода,
чтобы разработать план сборки и тестирования заказанной компьютерной системы,
в том числе определяет сроки ее изготовления. PTRANS наблюдает за тем, как
персонал справляется с выполнением этого плана, диагностирует трудности, предлагает
способы их преодоления и прогнозирует возможные тормозящие нехватки
материалов или их излишки. PTRANS рассчитан на работу совместно с XSEL, помощником
продавца, так что как только сделан заказ, можно гарантировать согласованную дату
поставки. PTRANS - это основанная на правилах система с прямой цепочкой
рассуждений, реализованная на языке OPS5. Она была разработана совместно компанией
и Университетом Карнеги-Меллон и доведена до уровня исследовательского
прототипа.
13.2. Экспертные системы компьютерных систем
175
13.2. Экспертные системы компьютерных систем
13.2.1. Экспертная система: DART
Описание экспертной системы: DART оказывает помощь при диагностировании
неисправностей компьютерных систем, используя информацию о конструкции
диагностируемого устройства. Система работает непосредственно с информацией о
структуре и предполагаемом поведении устройства и оказывает помощь при поиске
проектных недочетов в заново создаваемых устройствах. Система применяется для простых
вычислительных схем и телепроцессорных устройств IBM 4331. DART использует
независимую от конструкции устройства процедуру вывода, которая аналогична
процессу доказательства теорем, когда система пытается получить доказательство
относительно причин неисправностей устройств. Эта система реализована на языке
MRS и была разработана в Станфордском университете. Она доведена до уровня
исследовательского прототипа. (Diagnostic Assistance Reference Tool)
13.2.2. Экспертная система: IDT
Описание экспертной системы: IDT помогает техническому персоналу найти
заменяемые блоки, которые следует заменить для устранения неисправностей в ЭВМ
PDP 11/03. Система использует знания о тестируемых блоках, например, функции его
компонент и их связи друг с другом, чтобы выбрать и выполнить диагностические
тесты, а также интерпретировать их результаты. Система основана на правилах,
использует прямую цепочку рассуждений, реализована на FRANZ LISP и OPS5. IDT
была разработана компанией DEC и доведена до уровня исследовательского прототипа.
13.2.3. Экспертная система: XCON
Описание экспертной системы: XCON составляет конфигурацию
вычислительной системы VAX 11/780. Исходя из заявок пользователя, она принимает решение
о том, какие компоненты должны быть добавлены для получения полностью
работоспособной системы и каковы должны быть пространственные взаимосвязи между
всеми компонентами. XCON выводит набор схем, указывающих эти
пространственные взаимосвязи, сообщая его техническому персоналу, который затем собирает
систему VAX. XCON составляет конфигурацию, применяя знания об ограничениях на
взаимосвязи компонент к стандартным процедурам составления конфигураций ЭВМ.
Система не интерактивная, основана на правилах, использует прямую цепочку
рассуждений в схеме логического вывода. XCON реализована на языке OPS5 и
разработана в Университете Карнеги-Меллон совместно с DEC. Эта экспертная система
коммерческого уровня повседневно составляет конфигурации ЭВМ серии VAX для
DEC и является самой крупной и наиболее зрелой среди работающих систем (eX-pert
CONfigurer of VAX 11/780 computer system).
13.2.4. Экспертная система: TIMM/TUNER
Описание экспертной системы: TIMM/TUNER оказывает помощь в настройке
вычислительных систем VAX/VMS для того, чтобы уменьшить проблемы,
возникающие в постоянно изменяющейся вычислительной среде. Она взаимодействует
с администратором системы, задавая ему ряд вопросов, чтобы рекомендовать
действия, такие, как подстройка параметров системы или значений, выбираемых пользова-
176
13. Примеры использования экспертных систем
телем, перераспределение или снижение требований пользователя, изменение
программой разработки пользователя или приобретение новой аппаратуры. Система
использует схему представления знаний, основанную на правилах, созданную в рамках
TIMM, системы коммерческого уровня для автоматизации приобретения знаний.
TIMM/TUNER была разработана в General Research Corporation и доведена до
коммерческого уровня.
13.2.5. Экспертная система: YES/MVS
Описание экспертной системы: YES/MVS оказывает помощь дежурным
операторам в слежении и управлении операционной системой MVS (множественная
виртуальная память) на больших ЭВМ компании IBM. YES/MVS ориентирована на 6
основных классов задач: сохранение достаточного объема памяти для YES (системы
ввода заданий), управление обменом в сети ЭВМ, находящихся в одном здании или
помещении, планирование выполнения длительных расчетов вне первой смены,
реагирование на ошибки аппаратуры, слежение за работой подсистем программного
обеспечения и наблюдение за работой системы в целом. YES/MVS работает в режиме
реального времени, непосредственно интерпретируя сообщения MVS и отправляя
или команды операционной системе, или рекомендации дежурному оператору.
Экспертная система YES/MVS основана на правилах, со схемой управления с помощью
прямой цепочки рассуждений. Она реализована на расширенной версии языка OPS5
группой разработчиков экспертных систем фирмы IBM. Разработчики планируют
постоянно использовать систему YES/MVS на коммерческой основе.
13.3. Экспертные системы электроники
13.3.1. Экспертная система: BDS
Описание экспертной системы: BDS оказывает помощь, при выявлении
неисправных модулей в большой сети коммутации сигналов, которая называется baseband
distribution subsystem. Эта система использует показания испытательной аппаратуры,
чтобы обнаружить неисправные печатные платы или другие детали, смонтированные
на шасси, из-за которых могла возникнуть неисправность. BDS основывает свой
диагноз как на стратегиях эксперта-диагноста, так и на знаниях о структуре, функциях
и причинных связях компонентов электронного устройства. BDS реализована на
языке LES и использует представление знаний, основанное на правилах, и управление
посредством обратной цепочки рассуждений. Она была разработана в Lockeed Palo
Alto Research Laboratory и доведена до стадии исследовательского прототипа.
13.3.2. Экспертная система: TALIB
Описание экспертной системы: TALIB автоматически синтезирует топологию
интегральных схем типа n-МОП. В качестве входной информации система получает
описание элементов схемы, которые нужно разместить на кремниевой подложке, их
соединений друг с другом, а также топологических и геометрических требований
относительно краевой зоны вдоль периметра схемы. По этим спецификациям система
строит правильную и компактную топологию структуры.
TALIB создает и уточняет планы размещения элементов и их соединений и затем
реализует их, применяя знания о характеристиках соединений подсхем и о распро-
13.3. Экспертные системы электроники
111
странении ограничений между подсхемами. TALIB - это основанная на правилах
система с прямой цепочкой рассуждений, реализованная на языке OPS5. Она была
разработана в Университете Кар-неги-Меллон и доведена до уровня
исследовательского прототипа.
13.3.3. Экспертная система: АСЕ
Экспертная система АСЕ определяет неисправности в телефонной сети и дает
рекомендации по необходимому ремонту и восстановительным мероприятиям.
Система работает без человеческого вмешательства, анализируя сводки-отчеты о
состоянии, получаемые ежедневно с помощью CRAS, программы, следящей за ходом
ремонтных работ в кабельной сети. АСЕ обнаруживает неисправные телефонные
кабели и затем решает, нуждаются ли они в планово-предупредительном ремонте
и выбирает, какой тип ремонтных работ вероятнее всего будет эффективным. Затем
АСЕ запоминает свои рекомендации в специальной базе данных, к которой у
пользователя есть доступ. Система принимает решения, применяя знания относительно
телефонных станций, сообщения системы CRAS и стратегии анализа сетей.
Представление знаний в системе основано на правилах; используется схема управления
посредством прямой цепочки рассуждений. АСЕ реализована на OPS4 и FRANZ LISP
и работает на микропроцессорах серии AT&T ЗВ-2, размещенных в подстанциях
наблюдения состояния кабеля. Она разработана в Bell Laboratories.
АСЕ прошла опытную эксплуатацию и доведена до уровня коммерческой
экспертной системы.
7 3ак 1029
14. РОБОТОТЕХНИКА
14.1. Направления развития робототехники
При создании домашних автономных устройств подчас возникает больше
проблем, чем при создании военных и космических роботов. Хотя в жилых домах не бывает
перепадов температур в сотни градусов, а превышение скорости на десятки
сантиметров несущественно (что в условиях невесомости может сразу привести к аварии),
требование максимальной безопасности значительно осложняет жизнь разработчикам.
Быстрее всего сегодня развивается рынок автономных домашних пылесосов.
Такие модели оборудованы навигационной системой и всевозможными
периферийными датчиками. Роботы-пылесосы перемещаются по квартире по случайным
траекториям, собирая мусор и объезжая статические предметы, и удирают от движущихся
объектов (людей и животных). Кроме того, умные пылесосы способны
самостоятельно возвращаться на свое «место жительства» для подзарядки.
Другой перспективный рынок - автономные газонокосилки. Например, фирма
Electrolux выпускает косилки, способные подзаряжаться от солнечной батареи,
запасаться энергией на ночь и работать практически круглосуточно.
Более совершенные модели интеллектуальных бытовых устройств помимо
уборки мусора способны выполнять множество дополнительных функций - например,
подносить напитки и тапочки. Робот Суе фирмы Probotics, постоянно подключенный
к ПК, дистанционно управляется заложенной в компьютер программой. С помощью
удобного визуального инструмента пользователь может, используя план комнат,
определить для Суе траектории передвижения, доступные и запрещенные области
в квартире. Общение с роботом выполняется по протоколу, содержащему 35 команд
и 20 ответных сообщений от робота. Немаловажно, что ПО Суе открыто для
совершенствования, позволяет расширять базовые возможности системы и создавать
на его основе собственные программы управления роботом. В будущих версиях Суе
будет поддерживаться навигационная система GPS, и он сможет передвигаться
не только по комнатам, но и на приусадебном участке.
Спрос на подобные устройства растет, и известная компания NEC уже
представила модель Personal Robot R100. Модель проходила тестирование в
исследовательском центре компании, и журналисты уже могли лицезреть, как робот высотой 44 см
и весом 8 кг въезжает в комнату руководительницы проекта Йошихиро Фуджито,
вращает телеглазом, распознает ее лицо среди лиц других присутствующих и
обращается к ней со словами: «Мама! Вам что-нибудь надо?». В общей сложности робот
способен произносить 300 фраз, понимать сотни команд и различать 10 лиц. R100
может приносить мелкие вещи, вынимать почту из ящика, включать и выключать
телевизор и кондиционер, записывать видеосообщения и передавать их по назначению.
Он подключен к ПК и имеет встроенный процессор Intel 486 DX4. На основе этой
модели NEC планирует в будущем выпускать робокошек и робособак.
14.3. Космические роботы
179
14.2. Робот - человек
Сотрудники лаборатории ИИ Массачусетского института считают, что робот -
это не просто прислуга. Он обязательно должен взаимодействовать с окружающим
миром и выполнять социально значимые функции. Исходя из этой посылки, они
разрабатывают робота Cog, своим внешним видом и отчасти устройством
напоминающего человека. Чтобы придать роботу привычную людям походку, допустимые углы
сгибания его рук и ног сделаны примерно равными человеческим. В качестве глаз
робота применяются 4 видеокамеры (по две на каждый «глаз»), распознающие
оттенки серого и имитирующие режим бинокулярного зрения. В ушных раковинах,
работающих по принципу локатора, установлены микрофоны, на конечностях и
туловище - датчики давления (имитация осязания). Вестибулярный аппарат моделируется
тремя гироскопами, расположенными в голове робота. Единственное, что пока
не реализовано по аналогии - обоняние. Система управления представляет собой
сложную иерархию устройств, от периферийных микроконтроллеров управления
положением ступни до сети цифровой сигнальной системы обработки видео- и
аудиоинформации. В большинство узлов Cog встроены процессоры Motorola 68332
16 МГц, на которых выполняется интерпретатор L (версия Common Lisp).
Интенсивная обработки информации происходит в сети промышленных 200 МГц процессоров
в ОС реального времени QNX.
Университет Северной Каролины разрабатывает роботов, способных
перемещаться в завалах и спасать людей, оказавшихся под развалинами в результате
различных катастроф. Робот Moccasin II, напоминающий сегментированного червяка,
может проползать в туннелях диаметром 20 см и поворачивать на 90 градусов в
любых направлениях, анализируя информацию от видеокамеры с подсветкой и датчиков*
давления, с помощью которых он «ощущает» стены и их изгибы. Moccasin II
использует не электрический, а пневматический двигатель (потому что электрические
искры могут спровоцировать взрыв скоплений газа) и передвигается как обычный
червяк - сжимая и растягивая свое тело. Следующие модели робота можно будет без
опаски применять при обследовании крупных технологических конструкций
(танкеров, самолетов).
НАСА создала робота величиной с небольшой мячик. Он понимает голосовые
команды, снабжен видеокамерой, датчиками температуры, давления и газовыми
анализаторами и способен самостоятельно путешествовать внутри космических станций,
выполняя мониторинг их состояния.
14.3. Космические роботы
Военная лаборатория США Jet Propulsion Laboratory совместно с японским
институтом аэрокосмических исследований работают над первой в истории
человечества высадкой робота на астероид Nereus (1989ML). Он должен будет собрать образцы
грунта и вернуться обратно на корабль. Пока прообраз этого робота представляет
собой шестиколесный вездеход весом 2 кг и размером 28 куб. см. Он может поднимать
свое «тело» значительно выше положения колесных осей или опускать его на фунт
для взятия проб, подпрыгивать, пробираться в узких туннелях и, что очень важно,
переворачиваться со спины на колеса в случае неожиданного неудачного падения.
Робот снабжен солнечными батареями, видеокамерой, инфракрасным излучателем
180
14. Робототехника
и системой связи с посадочным модулем и Землей. Для управления манипуляторами
планируется использовать искусственные мускулы на основе электроактивных
полимеров. В перспективе для исследования Марса, астероидов и комет этой же командой
будут создаваться микророботы весом от 100 до 10 граммов.
Рис. 13.1. Робот - вездеход
Американская Ассоциация по ИИ на Национальной конференции 1999 г.
организовала интересный турнир. Согласно его условиям роботы должны были
самостоятельно добраться до зала заседаний. Для этого им требовалось выстоять в очереди
на регистрацию, подняться по эскалатору, получить цветной баджет на «шею»,
выйти (или выползти) на сцену, в течение 2 минут рассказать о себе и попробовать
ответить на простейшие вопросы. При этом учитывалась степень внешней похожести
робота на человека. В первом турнире роботы двух университетских команд, добираясь
до конференц-зала, пробовали хитрить - один просил окружающих подсказать ему
правильное направление движения, а второй легонько подталкивал людей, обращаясь
к ним с просьбой отнести его в зал.
Японские ученые, традиционно склонные к миниатюризации, создали робот
длиной 1 см и массой в полграмма. Он предназначен для обслуживания АЭС и ТЭС
и восстановления поврежденных участков электростанций. Робот способен
проникать в поврежденные зоны, проползать по тончайшим трубкам и закрывать
пораженные области своим телом.
14.4. Робототехника в медицине
В медицинском центре государственного университета штата Огайо создан
робот-хирург, который имеет видеокамеру и две небольшие руки-манипулятора,
а управляет им человек с помощью компьютера. Через небольшие разрезы на теле
устройство проникает в сердце, после чего на основании полученной от него
видеоинформации компьютер формирует трехмерный образ органа, позволяющий
выполнять операцию значительно эффективнее. Хирурги единодушно признали пользу
такого устройства.
14.4. Робототехника в медицине
181
Военные медики США создали робот для проведения операций в полевых
условиях. Им можно дистанционно управлять с любого расстояния. Робот снабжен двумя
манипуляторами, на каждом из которых установлено по 7 моторов и еще 14 моторов
определяют положение тела. Система передает врачу трехмерное изображение
оперируемой области и звуковой фон и обеспечивает обратную связь с хирургом,
сообщая ему информацию, связанную с нагрузкой на скальпель. Компьютерный модуль
компенсирует естественное дрожание кистей рук человека, повышена точность
движений манипуляторов.
Похожие работы проводятся в российском Научном центре сердечно-сосудистой
хирургии имени Бакулева РАМН. Используемый там робот также снабжен
несколькими манипуляторами, способными держать различные инструменты (скальпель,
пинцет и т. д.). Благодаря повышенному числу степеней свободы он может работать
в самых неудобных, недоступных для человека положениях. Врач за монитором
следит за увеличенной зоной операции и управляет манипуляторами, подавая через
компьютер голосовые команды.
Военных в робототехнике интересуют прежде всего автономные летающие
устройства для сбора разведывательной информации. Агентство DARPA готово
финансировать выпуск беспилотных самолетов, в течение 20-60 мин полета
преодолевающих 30-60 км и имеющих при этом массу не более 1 кг, а размеры - 20 см.
Фирма AeroVironment разработала снабженный различными датчиками самолет
длиной 7,5 см, который может быть послан на разведку в очень сложных условиях -
например, в городе. Пока главной проблемой остается посадка такого самолета,
обычно не обходящаяся без поломок. Кроме того, трудно найти небольшой и
достаточно мощный двигатель, поэтому фирма рассматривает возможность применения
альтернативных (химических) источников энергии. Пока ее самолетик с
двухграммовым пропеллером держится в воздухе 16 мин, развивая с попутным ветром скорость
70 км/ч.
Сотрудники лаборатории Вандербилтского университета пошли по другому
пути. Они пытаются создать роботы, имитирующие движения насекомых. В них будут
применены пьезоэлектрические приводы, используемые в пейджерах и имеющие
КПД до 90 % (КПД моторов, выполненных по другим технологиям, как правило,
составляет около 60 %).
Пока военные только готовятся к сражениям без участия людей, энтузиасты уже
превратили такие войны в доходный бизнес. В США ежегодно проводится
множество состязаний между роботами, цель которых одна - любой ценой «замочить»
противника. В турнире BattleBots сражаются радиоуправляемые роботы, вооруженные
молотками и прутьями; в уже шестом по счету конкурсе Fire-Fighting Home Robot
Contest автономные роботы стреляют друг в друга, перемещаясь внутри жилого
дома; организация Seattle Robotics Society проводит целый турнир для роботов Robothon, в
который помимо драк входят такие виды «спорта», как сумо, отжимание и т. д.
Искусственный интеллект (ИИ) применяется сегодня во многих прикладных
областях. Практически все они, может быть, и не так быстро, как хотелось бы, но
неуклонно и непрерывно развиваются. В последние годы современные ИТ-технологии
совершили очень резкий скачок вперед, в основном за счет повышения
производительности массовых процессоров и стремительного удешевления памяти (как
оперативной, так и «жесткой»). Это привело к появлению приложений, в которых
воплощены серьезные теоретические наработки ИИ.
182
14. Робототехника
Рис. 13.2. Прототип человекообразного робота
14.5. Тенденции развития робототехники
При этом можно отметить две тенденции. С одной стороны крупнейший в мире
финансист исследований по ИИ (особенно по робототехнике) - это военное научное
агентство DARPA. Современное оружие немыслимо без подходов ИИ
(преимущественно нейронных технологий, нечетких экспертных систем и интеллектуальных
решателей), позволяющих с помощью относительно малых ресурсов получать
достаточно точные результаты, для нахождения которых классическими методами
численной математики потребовались бы мощности суперкомпьютеров. Например,
реализация режима автономного полета на небольшой высоте в плохих погодных
условиях без использования заранее подготовленной компьютерной базы рельефа
требует применения высокоэффективных механизмов синхронизации движения с
данными, получаемыми от системы навигации GPS, видеокамер, радаров и других
датчиков. В связи с этим состояние определенных направлений в ИИ закрыто от
посторонних глаз. С другой стороны рынок бытовых роботов и интеллектуальных
домашних устройств уже сегодня приносит немалую прибыль, а в перспективе это
будет огромный бизнес, поэтому коммерческие компании занимаются
исследованиями по ИИ своими силами, в чем-то дублируя DARPA и другие подобные
организации (хотя, скорее всего, не опережая их). Надо отметить, что основная часть
реально используемых систем обычно создается с привлечением разных технологий ИИ,
что позволяет существенно повысить качество конечного результата. Создание
экспертных систем (ЭС) традиционно считается классическим занятием для
специалистов по ИИ. ЭС многократно хоронились, признавались тупиковым направлением,
тем не менее компьютеры научились давать советы в конкретных областях
человеческой деятельности на уровне хороших экспертов. Основной акцент в современных
ЭС делается на принятии оперативных решений в реальном масштабе времени. Это
объясняется нуждами современного бизнеса. Коммерческие ЭС контролируют
крупные промышленные процессы, принимают решения по результатам показаний сотен
периферийных устройств, управляют большими сетями, распределенными СУБД,
подсказывая оператору, как поступить в сложной обстановке, а в критических ситуа-
14.5. Тенденции развития робототехники
183
циях, требующих немедленного решения, берут управление на себя. Достаточно
активно разбивается и такое направление, как автоматическое накопление знаний,
снимающее с человека рутинную работу по качественному анализу различных
процессов. Практически все современные системы раскопки данных представляют собой
ЭС. Правда, старая схема ЭС, основанных на системе правил и создававшихся на
базе версий Лиспа и Пролога, сегодня не столь популярна, как раньше. Практически
во всех коммерческих продуктах применяются более гибкие походы - нечеткие
технологии (когда вместо обычной двоичной логики «да-нет» используется логика с
бесконечным числом состояний), Bayesian-сети, учитывающие вероятности перехода
узлов в другие состояния, и т. д.
Например, система MOBAL дает возможность строить модель понятия в
терминах логических правил и фактов, позволяя с помощью языка поиска похожих
объектов Query-by-Similarity в сочетании с нечеткой логикой создавать очень гибкие
системы хранения и обработки информации.
Интеллектуальный решатель C-PRS (Procedural Reasoning System in С),
написанный на стандарте ANSI С, используется НАСА, в авиапромышленности, в системах
управлении перевозками и мобильными роботами. Он переносим, очень компактен
и с помощью кросс-платформных компиляторов допускает встраивание практически
в любое оборудование. В России осуществлено несколько внедрений крупной ЭС
контроля, управления и моделирования сложных процессов Gensym G2. Группа
адаптивных систем корпорации Microsoft трудится над совершенствованием
технологии Office Assistant, которая позволяет отслеживать поведение пользователя и
подсказывать ему правильные действия в запутанных ситуациях.
В открытый проект AIOS [ ] приглашаются все желающие. Он посвящен
созданию ОС с элементами ИИ. В нее будут встроены технологии обработки естественной
речи, автоматического решения задач и самообучения.
Коммерческие системы имеют довольно большой ценовой диапазон, и если
простые настольные системы стоят несколько сотен долларов, то цена промышленных
приложений возрастает в тысячу раз, что свидетельствует об их несомненной
востребованности.
15. ПРЕДСТАВЛЕНИЕ НЕЧЕТКИХ ЗНАНИЙ
15.1. Общие понятия
Для современного развития общества характерно стремление ко все более
широкому применению математических методов для описания и анализа сложных
экономических, социальных, экологических, технических и других систем. Отличительной
особенностью этих систем является то, что помимо объективных законов в их
функционировании существенную роль играют субъективные представления, суждения
и эмоции людей.
При анализе исследуемой сложной системы мы зачастую разбиваем ее на более
мелкие системы, осуществляя тем самым ее декомпозицию, т. е. разбиение на более
мелкие части. Выделение этих частей (подсистем) определяется целями
исследования и нашими представлениями о полной системе.
Анализ выделенной подсистемы производится с учетом ее связи с другими
подсистемами. Точное описание этих связей затруднительно и, как правило,
осуществляется с использованием либо своих собственных представлений об этих связях, либо
при помощи экспертов. При этом информация о границах анализируемой
подсистемы зачастую бывает выражена в понятиях, имеющих нечеткий смысл с точки зрения
классической математики. Эта информация носит субъективный характер, и ее
представление на естественном языке нередко имеет большое число неопределенностей
типа «много», «мало», «ближе», «дальше» и т. п., которые не имеют аналогов в языке
традиционной математики. Для дальнейшего успешного применения математических
методов исследования сложных систем необходимо было разработать аппарат учета
нечетких представлений и суждений людей о реальном мире.
Разработка таких методов связана с именем американского математика русского
происхождения Л.А. Заде. В 1965 г. он предложил так называемую теорию нечетких
множеств, которая предлагалась в качестве средства математического
моделирования неопределенных понятий.
Все нечеткости, имеющие место в инженерии знаний, к настоящему времени
можно классифицировать по следующим признакам:
• нечеткость, неточность или неопределенность информации;
• недетерминированность процедур вывода решений;
• многозначность интерпретации;
• ненадежность данных;
• неполнота информации.
В традиционной математике имеет место четкость, и любая формальная логика,
и том числе и булева, основана на этом принципе. Вопрос о принадлежности
некоторого элемента тому или иному множеству здесь решается вполне определенно: или
принадлежит, или не принадлежит - третьего не дано. Заслуга Л.А. Заде состоит
в том, что он ввел понятие взвешенной принадлежности. Значение функции
принадлежности показывает, что элемент может принадлежать подмножеству в большой
или меньшей степени, а отсюда и появилось понятие нечеткого подмножества.
/5.2. Нечеткие множества 185
Таким образом, теория нечетких множеств - это шаг на пути к сближению
точности классической математики и неточности реального мира. Нечеткое множество -
это математическая модель класса с нечеткими или, иначе, размытыми границами.
Популярность подхода, основанного на формализации нечеткостей,
свидетельствует о его многочисленных практических применениях, что способствовало
формированию специального направления в области ИИ - исследованию нечетких систем.
Математическая теория нечетких множеств, предложенная Л.А. Заде, позволяет
описывать нечеткие понятия и знания, оперировать этими знаниями и делать
нечеткие выводы. Основанная на этой теории новая методология построения
компьютерных систем, существенно расширяет области применения компьютеров. Более того,
такие системы можно создавать в любой области деятельности человека.
За последние годы разработаны новые микропроцессоры, выполняющие
операции над нечеткими множествами, нечеткие компьютеры и программные системы.
15.2. Нечеткие множества
Начнем с примера. Пусть у нас имеется множество X пищевых продуктов.
Из этого, довольно обширного, множества выберем только те элементы, которые
содержат молочный жир (молоко, сметана, сыр и т. п.). Таким образом мы образуем
некоторое подмножество С множества X: С X. Совершенно очевидно, что степень
принадлежности каждого из элементов х к самому этому множеству С будет разная:
молоко, например, содержит 4 % жира, а сыр - 35 %. Множество С, как видим, обладает
весьма заметной неопределенностью или, как говорят, нечеткостью. Степень
принадлежности каждого из х, входящего в С, лучше всего обозначать в долях. Тогда мы
получаем следующее выражение для С:
С = {0.04/молоко, 0.15/творог, 0.25/сливки, 0.35/сыр, ОАО/сметана,
0,1%/масло, 0,98)'топленое масло}.
Нечеткое множество С, следовательно, можно представить как множество пар
типа степень принадлежности/название элемента (х) (некоторые авторы
предпочитают «обратное» написание типа название элемента (х)/ степень принадлежности).
Степень принадлежности характеризует каждый из х С и в общем случае
является его функцией: Мо(*)- Если элемент дг, «стопроцентно» относится к С, то Цс(х)=1;
если не содержится вообще, то \Хс(х)=0.
Определение 1. Нечетким множеством С в X называется совокупность пар вида
(х, Мс(*))> где х С, а Мс(*)- функция принадлежности, определенная на интервале [0,1].
Функция принадлежности jic(x) полностью характеризует х (она еще называется
характеристической функцией). Поэтому справедливо утверждение: нечеткое
множество вполне описывается своей функцией принадлежности.
Обычные (четкие) множества составляют собой подкласс нечетких множеств,
функция
1, если действительно, функцией принадле нести
\хв (х) = обычного множества В X является его характ ристическая jc В,
0, если х В,
186
15. Представление нечетких знаний
так что его также можно определить как совокупность пар (х, Мс(*))- Таким образом,
нечеткое множество представляет собой более широкое понятие, чем обычное
множество, а функция принадлежности нечеткого множества может быть произвольной.
Каждому нечеткому множеству соответствует свое множество функций
принадлежности Мс(*)- Назовем его М. Если ^(х) принимает свои значения на множестве Л/,
то можно сказать, что X принимает значение в М посредством Мс(*): *цс —» М.
Элементы множества М описывают те свойства элементов х X, которые делают
их элементами нечеткого множества С. Эти свойства могут быть заданы в численном
виде, как это мы видели выше, но могут быть сформулированы в виде каких-то
условий. Например:
• «нечеткое подмножество чисел jc, приближенно равных данному
действительному числу л», или
• «нечеткое подмножество чисел около нуля» или, к примеру,
• «нечеткое подмножество особей, образующих род» и т. п.
Не всегда удается точно определить условия, описывающие элементы Мс(*)«
В экспертных системах, функции принадлежности задаются экспертами, исходя
из их знаний и личного опыта.
Пример 1. Пусть множество Х={х1,х2, дсЗ, *4, х5} и С={х1, л:3, х5} подмножество
X, т. е. СсХ. Тогда степень принадлежности каждого элемента X множеству С
выражается характеристической функцией: цс(*1)=1; \хс{х2)-0\ цс(л:3)=1; |ic(x4)=0;
|lic(jc5)=1. (Здесь (лс(л:1)=1, так как х\ принадлежит С, a |ic(jc2)=0, так как х2 не
принадлежит Сит. д.). Это позволяет представить подмножество С посредством всех
элементов множествами соответствующих им значений функций принадлежности:
С= {(1, дг1), (СЛ*2), (1дЗ), (0,х4), (U5)}.
Мы рассмотрели простейший пример с «крайними» значениями для \лс(х).
Предположим теперь, что характеристическая функция для элементов подмножества С
может принимать не только значения 0 или 1, но и любое значение Се [0,1],
т. е. цс(х)=Се [0,1]. В соответствии с этим условием элемент xieX может не
принадлежать С (jic=0), может быть элементом С в небольшой степени (цс близко к 0),
может более или менее принадлежать С (дс=Ю,5), может в значительной степени быть
элементом С (\хс близко к 1) или, наконец, может быть элементом С (\хс=\).
Тогда определение 1 для данного случая можно сформулировать еще и так.
Математический объект, определенный выражением C={(pc(xl)/xl), (/лс(х2)/х2),
(ixc(x3)/x3), (ibtc(xn)/xn)}, где xi элемент универсального множества X, а число
перед вертикальной чертой - значение характеристической функции для этого
элемента, называется нечетким подмножеством множества X, т. е. СсХ.
Принадлежность элементов нечеткому подмножеству иначе можно записать в виде:
jtle С;*2е С;дсЗе С .
0.2 0.4 1
На рис. 15.1. представлена граница нечеткого подмножества, внутри которой
указаны значения характеристической функции для элементов этого подмножества.
В принципе функция Мс(*) на интервале [0, 1] может иметь сколь угодно много
значений, а в пределе она представляет собой кривую с амплитудой 1.
15.2. Нечеткие множества
187
Рис. 15.1. Нечеткое подмножество С на множестве X
На рис. 15.2 представлено нечеткое подмножество С с помощью функции
принадлежности \i. Если М - множество значений функции цс, то множество X
принимает значение в М посредством [Xq: X^Iq —>М.
И
1
А
1
/ \
1 о
Рис. 15.2. Представление нечеткого подмножества
с помощью функции принадлежности Рс(*)
Множество М называют множеством принадлежностей.
Пример 2. Для сравнивания рассмотрим обычное множество чисел
£={0<jt<2} и нечеткое множество С= {«значение х близко к 1»/х}. В первом
случае множеству В принадлежат все числа от 0 до 2 и, следовательно, здесь Мв(*)=
= const=l. Во втором - симметричная кривая. Функции принадлежности этих
множеств приведены на рис. 15.3 и 15.4 соответственно. Вид функции принадлежности
jjc нечеткого множества С зависит от смысла вкладываемого в понятие «близко».
Рис. 15.3. Функция принадлежности для множества В (1Лв(х)=\)
188
75. Представление нечетких знаний
4i
1
Рис. 15 4. Функция принадлежности для С
Пример 3. Пусть N- множество целых чисел:
N= {-8, -5,-3, 0, 1,4, 6,9}.
Рассмотрим нечеткое подмножество чисел, для |Дс «по абсолютной величине
близких к нулю»:
С={(0/-8), (0,5/-5), (0,6/-3), (1/0), (0,9/1), (0,8/2), (0,6/4), (0,3/6), (0/9)}.
Здесь значения Цс= 0; 0.5; 0.6; 1... заданы субъективно. Это выражение можно
записать и так:
С = 0/-8 + 0,5/-5 + 0,тЗ/-3 + 0,9/0,1 + 0,8/2 + 0,6/4 + 0,3/6 + 0/9,
где знак + означает не суммирование, а просто принадлежность к множеству.
Определение 2. Нечеткое множество называется пустым, если его функция
принадлежности равна нулю на всем множестве X, т. е.
М*)=0, VjcgX
Универсальное множество X также можно описать функцией принадлежности
вида: jlix(jc)= 1, \/хеХ.
Определение 3. Носителем нечеткого множества А (обозначение sup А) с
функцией принадлежности \хА(х) называется множество (в обычном смысле) вида
sup А={х/хеХ, ЦдМ > 0}. (15.1)
Другими словами, sup А определяет верхнюю границу А при положительных
значениях |i.
Определение 4. Нечеткое множество А называется нормальным, если выполнено
равенство sup jlla(jc)= 1; хеХ. В противном случае нечеткое множество называется
субнормальным. Например, нечеткое множество С в примере 2. Субнормальным
часто оказывается пересечение нечетких множеств. Субнормальное множество можно
преобразовать к нормальному (нормализовать), разделив функцию принадлежности
[х(х) этого множества на величину sup \i(x), хеХ.
Пусть А и В - нечеткие множества в!,а jlia(jc) и \iB(x) - их четкие функции
принадлежности соответственно. Справедливо утверждение, что А включает в себя В
(т. е. ВсА), если для любого хеХ выполнено неравенство
liB(x)<[iA(x). (15.2)
75.5. Операции над нечеткими множествами
189
Множество А и В совпадают (эквивалентны), если 1*b(x)=\ia(x) при любом хеХ.
Если нечеткие множества А и В таковы, что ВсА, то и sup ZJcsup А
Пример 4. Рассмотрим нечеткие множества
А={«величина х близка к 1»/*}, #={«величина х очень близка к 1»/*}.
Видно, что ВсА, т. е. функции принадлежности этих множеств цА и цв должны
удовлетворять неравенству \iB(x)<[iA(x) при \fxeX. Графически эти функции показаны
на рис. 15.5.
1
* 4
г ш
0
1 '
Рис. J5.5. Функции принадлежности р,А и р.в, }ЛА</лв
15.3. Операции над нечеткими множествами
Операции над нечеткими множествами можно определить различными
способами. Выбор конкретного из них (объединение, пересечение и пр.) зависит от смысла
решаемой задачи. Следует отметить, что класс нечетких множеств охватывает
и множества в обычном смысле. Поэтому вводимые определения должны
соответствовать обычным операциям, принятым в теории множеств.
Определение 5. Объединением нечетких множеств А и В в X называется нечеткое
множество А В с функцией принадлежности вида
\1Аив(х)=тах{\1Л(х), хеХ. (15.3)
Определение 5а. Объединением нечетких множеств А и В в X можно определить
и через алгебраическую сумму их функций принадлежности:
Vlakjb= 1 при \iA(x)+\iB(x)>\\ \xakjb = \iA(x)+\xB(x) - в противном случае.
Пример 5. Пусть нечеткое множество А и В в числовой оси описываются
функциями принадлежности, показанными на рис. 15.6.
Мачл(*)
м
i
■ М*М
L x
1
Рис. 15.6. Объединение двух нечетких множеств
190
15. Представление нечетких знаний
Пример 6. Пусть X={x\jc2jcijAjc5), а нечеткие множества А и В заданы через
соответствующие величины функций принадлежности. A={(0,l/od),(0,5/x2),(l/x3),
(0/jc4),(0,8/x5)}, Я={(0,6/х1), (1/*2), (0,4/хЗ), (0,7/х4), (0,8/х5)}.
Объединение двух нечетких подмножеств А и В здесь будет иметь вид
А В = {(0,6/jd), (1/х2), (1/jc3), (0,7/*4), (0,8/х5)}.
Определение 6. Пересечением нечетких множеств А ч В вХназывается нечеткое
множество А В с функцией принадлежности вида
Иапв(*) = min{Ив(*))• (15-4)
Определение 6а. Пересечение нечетких множеств А и В можно определить
и с использованием алгебраического произведения их функций принадлежности.
Ц апв (х) =ЦА (х> Цв (*), х еХ. (15.5)
Полезным является следующее свойство носителей нечетких множеств:
sup (А и В) = (sup А) и (sup В),
sup (Л п В) = (sup Л) n (sup В).
Эти равенства справедливы для любого из приведенных выше определений
объединения и пересечения.
Пример 7. Функция принадлежности нечетких множеств А и В имеет вид,
показанный на рис. 15.7. Жирной линией на этом рисунке показана функция
принадлежности множества А В по определению 6.
0
Рис. 15.7. Пересечение двух нечетких множеств
Пример 8. Для примера 6 пересечение множеств АиВ будет иметь вид:
А п В = {(0,1/х1), (0,5/*2), (0,4/хЗ), (0/г4), (0,8/х5)}.
Определение 7. Два нечетких множества А и В в X равны (А=В) тогда и только
тогда, когда выполняется равенство:
М*) = ЦвМ; VxeX (15.6)
Если найдется по крайней мере один такой элемент xi из X, что равенство Ца(*0 *
* Ц в(*0 не удовлетворяется, то будем говорить, что А и В не равны и обозначать
15.3. Операции над нечеткими множествами
191
Определение 8. Дополнением нечеткого множества А в X называется нечеткое
множество А' с функцией принадлежности вида
МИх)=1-М*).*еЛ: (15.7)
1
Рис. 15.8. Функции принадлежности множества А
и соответствующего ему дополнения А
Пример 9. Пусть задано некоторое множество X и множество М функций
принадлежности.
Х={х\*2*ЪМ*5); М= [0,1].
Построим нечеткое множество А.
А={(0,15/х 1 ),(0,45/*2),(0/хЗ),(0,75/*4Х (1/д:5)}.
Дополнение А' в этом случае будет иметь вид
i4'={(0,85/jcl), (0,55/х2), (1/хЗ), (0,25/х4), (0/*5)}
(для всех Ма'ОО выполняется условие (Хд'ОО = 1-Ма(*))-
Определение 9. Разность множеств А и В в X определяется как нечеткое
множество А \ В с функцией принадлежности вида:
ЛХЯ [0, в противном случае.
Приведенное определение 8 дополнения нечеткого множества вытекает из
данного определения.
Определение 10. Декартово произведение А\хА2х....хАп нечетких множеств Ai
в X, i = 1,2,...,л, определяется как нечеткое множество А с функцией принадлежности
вида:
цЛ (дс) = min{nAI (дг1),|iAn (хп)}, х = (xl jcn) еХ. (15.9)
Определение 11. Выпуклой комбинацией нечетких множеств Л1,...., An в X
называется нечеткое множество А с функцией принадлежности вида:
M*)=i>/M*).|,aBl-" (151°)
где Ал > 0, /=1,2..., л, 2 X/ = 1 ./= 1.
Выпуклые комбинации нечетких множеств могут найти применение, например,
в задачах принятия решений с несколькими нечеткими ограничениями.
192
15. Представление нечетких знаний
Определение 12. Под включением будем понимать: А содержится в В, если для
всех х в А:
[1А(х)<Мх)\Ух€А (15.11)
Обозначение А с В. Строгое включение соответствует случаю, когда по крайней
мере одно неравенство строгое.
Пример 10. Пусть
Ar={jcl,x2,jc3},M=[0,l]
А ={(0,8/д:1), (0,6/х2), (0,4/дгЗ)},
В ={(0,5Ы), (0,4/*2), (0,1/jc3)},
имеем В с А, так как 0,5 < 0,8; 0,4 < 0,6; 0,1 <0,4.
Определение 13. Операция перемещения изменяет положение функции
принадлежности на величину Я. При Х>0 производится перемещение вправо, а при Х<0
влево. Выражение для функции принадлежности (рис. 15.9):
М*) = Иа(*-*), ^R, VxeX.
Рис. 15.9. Операция перемещения
Определение 14. Операция нормализации (рис. 15.10) осуществляется в
соответствии со следующей формулой:
(15.12)
Рис. 15.10. Операция нормализации
Определение 15. Множеством уровня а нечеткого множества А в X называется
множество в общем смысле, составленное из элементов хеХ, степени
принадлежности которых нечеткому множеству А не меньше числа а, т. е.
15.4. Обычные отношения и операции над ними
193
Аа ={х/хеХ, ц.А(*) > а}. (15.13)
Пример 11. Пусть х = {1,2,..., 6}, а функция принадлежности нечеткого
множества А в X задана таблицей:
x
0
1
2
з
4
5
6
0
0,1
0,3
0,5
0,7
0,9
1
Тогда для А можно выписать следующие множества уровня:
А о,, = {1,2,..., 6};Л0,з = (2,3,4,5,6), Д0,5 = {3,4,5,6},
^о,7= {4,5,6} ;Л0,9={5,6};Л1,о={6}
и представить нечеткое множество А в виде:
А = 0,1 {1,2,3,4,5,6} U 0,3 {2,3,4,5,6} U 0,5 {3,4,5,6} U 0,7 {4,5,6} U 0,8 {5,6} U 1 {6}.
Пусть (А[)В)а и (АГ\В)а - множество уровня а объединения и пересечения
нечетких множеств А и В соответственно. Рассмотрим их связь с множествами уровня Аа
и Ва. С учетом определений 2 и 3 объединения и пересечения нечетких множеств А
и В это связь такова:
(A(jB)a = АаВа\ (А(]В)а = АаПВа.
В случае же определений 2а и За имеем лишь:
(А[)В)а = AaUBa; (AftB)a с АаПВа.
15.4. Обычные отношения и операции над ними
Если в СИИ мы пытаемся отобразить некоторые образы и действия,
свойственные интеллекту естественному, то мы обязательно должны уметь моделировать от-
ношения. Мир человека полон самых разных отношений. Это могут быть отношения
пространственные (далеко, близко, около, на, под...), временные (раньше, позже,
прежде, после...), иерархические (район, область, республика), метрические (больше,
меньше, равны...), родственные (отец, брат, дядя, тетя...), производственные
(начальник, подчиненный...) и т. п.
Роль отношений в представлении знаний очень велика. Мы встречались с ними
неоднократно. В исчислении предикатов мы ставили отношения на место
предикатного символа, в семантических сетях обозначали дугами, соединяющими 2 объекта,
применяли в виде имени слота, когда строили фрейм. Но до сих пор мы еще «не
проходили» операции над самими отношениями, которые, оказывается, подчиняются
и алгебраическим, и логическим законам. Специальные логики, разработанные для
операций с отношениями, носят название псевдофизических логик.
Отметим, что все отношения между объектами некоторого множества можно
в конечном счете свести к отношению пар этих объектов при том, что каждый из них
может одновременно иметь разные отношения с некоторыми другими. Если,
например, для присутствующих на родительском собрании класса ввести отношение
родственники, то почти все они разобьются на пары типа мама-ученик. Если же у мамы
в этом классе учатся двойняжки, то это уже две пары того же типа. (Среди мам могут
быть сестры, а одна из мам - тетя молоденькой учительницы. Пары могут быть разные).
194
75. Представление нечетких знаний
Несмотря на многочисленность пар, имя введенного отношения для них общее
(у нас - родственники). Это имя внесем в базу знаний и там запомним. Имен
различных отношений в БЗ может храниться множество. Все они образуют так называемые
интенсиональные знания, содержащие интенсиональные отношения (те самые имена
отношений).
Каждая из пар единственна в своей роде, каждую необходимо запомнить.
Множество конкретных пар образует экстенсиональные знания, они хранятся в базе
данных. Отдельно взятая пара образует экстенсиональное отношение.
Пусть элемент х множества X находится в отношении R с элементом у того же
множества. Этот факт представим в виде xRy. Говорят, что jc и у находятся в
экстенсиональном отношении R (образовали пару), имя которого (интенсиональное
отношение) R'.
Положим элементы /=2 и у'=4 образуют экстенсиональную пару R24 с
интенсиональным отношением R '24 в качестве имени. Полным или семантическим
отношением будем называть пару r2A = (R В дальнейшем мы будем работать только
с семантическими отношениями.
Ес/ш элемент и под номером i некоторого множества находится в отношении re R
с элементом v под номером j того же множества, то, упрощая, пишут rtj (uhVj).
Отношение R можно оговорить заранее, и тогда достаточно будет указать лишь пары
(uhVj). Если i,j = 1,2,3...л, то подмножество отношений между ними удобно задавать
в виде таблицы (рис. 15.11):
V/.
И;
i \
\
1
2
3
4
1
rll
г12
г13
г14
2
г21
г22
г23
г24
3
г31
г32
гЗЗ
г34
4
г41
г42
г43
г44
Рис. 15.11. Подмножество отношений в виде таблицы
где Гц отображает отношение для пары (wj, vO, гп соответственно для (wj,v2) и т. д.
Таблицу можно расписать иначе, в виде «суммы», где знак + будет означать
лишь факт принадлежности элемента к подмножеству {г^}.
{rij} = (tti,v1)+(wj,V2)+(w1,V3)-b(M1,v4)+ (первая строка)
(M2>V|)+(M2,V2)+(M2,V3)+(W2,V4)+... (вторая СТрОКа) и т. д.
Строки можно переписать и так:
и\ (vi+ v2 + уз +v4 )+ui (vi + v2 +уз+v4) • • • =(или короче)=
4 4 4 4
="i£v; +u2^vj +"зХуу +мзЕу;-
15.4. Обычные отношения и операции над ними
195
Окончательно имеем:
4 4 4 4
{ги }=£Щ X v; =(или, переходя к парам)=£ £ (м. > v; )
1=1 j=\ »=1 7=1
Окончательный вывод. Если имеется некоторое полное множество U и другое
полное множество V, то отношением R между ними является подмножество,
образованное произведением UxV и определяемое следующим образом:
я т
R = t2{u^j) (15.14)
или иначе - в виде матрицы г,утипа вышеприведенной таблицы, где
II, если {unv. )g /? выполняется w(/?vjy
О, если (unVj)t R.
(Если имеется универсальное множество X и на нем заданы отношение R его
элементов, то, очевидно, R является подмножеством X, т. е. можно написать: R Q
QXxX).
Рассмотрим некоторые свойства отношений.
1. Рефлексивность. Если х и у находятся в отношении R(xy), то это отношение
рефлексивно, если оно сохраняется при замене у на х, т. е. само с собой.
Отношение равно рефлексивно: R(xy) ~ R(xjc).
2. Симметричность. Отношение R(xy) сохраняется, если объекты поменять
местами: R(x,y) ~ R(yjc) (знак ~ означает логическую эквивалентность). Пусть х брат у,
но ведь и у брат х - симметричность.
3. Транзитивность. Если отношение R выполнется для х, у и z так, что R(x,y)
и R(y,z\ то справедливо R(x,z), т. е. можно записать
R(x,y) & R(y,z)-> R(x,z).
Например, если выполняются отношения х < у и у < z, то выполняется и
отношение х < z. Или: Ваня старше Пети, Петя старше Кати, следовательно, Ваня старше
Кати.
Обращение отношений. Очень интересное свойство, мы часто им пользуемся.
Если шляпка дороже сумочки, то сумочка дешевле шляпки - разве не так? Иначе
говоря, истинно выражение:
Uxj)~Rfy*). (15.15)
Здесь вместе с переменой мест объектов меняется и сам тип отношений
{дороже - дешевле, выше - ниже, быстрее - медленнее). Возникает так называемая
смысловая симметричность. И не надо в памяти БЗ вносить нам всевозможные
отношения. Достаточно ввести операцию обращения, а часть отношений, являющихся
результатом этой операции, можно исключить. Записывается операция обращения так:
Пусть на одном и том же множестве X заданы 2 отношения А и В. Множество С =
= А В называется объединением отношений А и В:
196
75. Представление нечетких знаний
С(х,у) =A(xy)vB(xy). (15.16)
Множество D = A В называется пересечением А и В:
D(x,y) = A(x,y)AB(x,y). (15.17)
Говорят, что отношение В включает в себя отношение А, если для
соответствующих множеств АсХхХ и BqXxX выполняется АсВ, откуда следует, что если
выполняется хАу, то выполняется хВу.
Если отношение А задано на X и выполняется хАу, то для обратного отношения
А'1 будет верно соотношение уА~1х. Если матрица А={а^}, а матрица А~1={<Ху],
то элементы их будут связаны между собой отношением Яу=(Х,/, т. е. матрица А'1
получается путем транспонирования матрицы А.
15.5. Нечеткие отношения
Все рассмотренные выше отношения мы трактовали как четкие. Характерная
черта четких отношений - их определенность: либо есть отношение, либо его нет.
Среди множества всяких отношений есть такие, которые не могут быть нечеткими.
Отношение мать, например. Если Шавка мать Бобика, то это либо так (г =1), либо
не так (г = 0). Иное дела отношение старше. Его ведь можно понимать как немного
старше, старше, значительно старше и т. п. Мера определенности здесь задается
степенью принадлежности (функцией принадлежности) \х, о которой мы уже
говорили выше. Это значит, что прежнее отношение между х ид; типа г = (jc,y) заменяется на
отношение г = \iK(x,y)/(x,y), где (х,у) - данное отношение, \iR - функция
принадлежности этого отношения. Выражение (15.14) для отношений заменяется на выражение
для нечетких отношений:
п т
* = ££M«,.v;)/(«()v7), (15-18)
а матрица отношений вообще может быть построена из одних функций
принадлежности, стоящих на соответствующих местах.
Функция |Ir(w,v), конечно, может быть задана. Но вот вопрос: а как ее
определить, если сами величины ие U и ve V заданы нечетко, через свои функции
принадлежности? Большинсто авторов в этом случае принимает такое соотношение:
liR(u,v) = M")a^v). (15.19)
В булевой логике знак конъюнкции л соответствует выделению наименьшего из
входных значений. В этом смысле он здесь и употребляется. Поэтому можно записать:
Ця(м,у) = min(\Lu(u\ Mv)), (15.20)
т. е. функция принадлежности отношения равна минимальной из функций
принадлежности элементов отношения.
Подставляя (15.19) в (15.18), получаем:
/? = tEK(w/)a^(v,))/(«pV.), (15.21)
/=1 у=1
75.5. Нечеткие отношения
197
Как и прежде, R = UxV, и выражение (15.21) отражает результат прямого
перемножения нечетких множеств.
В логике нечетких отношений произведение нечетких множеств моделирует
знание-правило «если U, то V», т. е. моделирует отношение-продукцию И это
очень важно, поскольку в СИИ к продукции, как об этом уже говорилось выше,
можно свести большинство интеллектуальных задач.
Пусть имеется множество U - маложирные молочные продукты: 1- сыворотка,
2 - молоко, 3 - творог, 4 - сливки и множество V - жирные молочные продукты: 1 -
сыр, 2 - сметана, 3 - масло, 4 - топленое масло. Промоделируем продукцию: если и -
маложирные, то v - очень жирные. (Будем считать, что оценки степеней
принадлежности нам определили домашние хозяйки).
Для множества U имеем:
(/=1/1+0,8/2+0,6/3 +0,2/4.
Для множества V имеем:
V =0,1/1 +0,5/2 +0,8/3+1/4.
R = UxV.
Это будет матрица с элементами ^(м,,^). Строки образуются следующим
образом: 1 - берется \Хц («числитель») первого элемента из U и поочередно сравнивается
с каждым jiiv («числителем») из множества V, меньшее значение заносится в строку;
2 - берется \iv второго элемента из U и сравнивается с каждым из V и т. д. Так мы
моделируем выражение, которое состоит из минимумов. Матрица будет иметь вид
(рис. 15.12).
1
2
3
4
1
0,1
0,5
0,8
1
2
0,1
0,5
0,8
0,8
3
0,1
0,5
0,6
0,6
4
0,1
0,2
0,2
0,2
Рис. 15.12. Матрица минимумов
Итак, отношение 7? = UxV выполняет операцию U—>V, т. е. отображает нечеткое
отношение из U в V. Пусть теперь имеется некое нечеткое отношение S = VxW из V
в W. Нас интересует, как определить нечеткое отношение из U в IV? Другими
словами, требуется промоделировать операцию UxV—>VxW. В левой части этого
выражения стоит матрица 7? с элементами r,y = jhr(m„ v,), в правой части - матрица S с
элементами sij = \is(vhWj). Операция 7?—>S над матрицами нечетких отношений носит
название свертки или композиции и обозначается RoS. Результатом свертки будет матрица
Р = RoS с элементами р# = \ip(\iRh\iSj). Алгоритм получения матрицы Р - классический
алгоритм произведения матриц (строку на столбец). Выражение для рц для ясности
распишем «поштучно»:
pll = max{min(rll, $11), min(rl2, s2l), min(rl3, s31), min(rl4, 541)}...
p32 = max{min(r31, $12), min(r32, $22), min(r33, $32), min(r34, $42)}...
198
15. Представление нечетких знаний
(Из каждой пары выбирается меньшая величина, а затем из этих меньших берется
большая - все очень просто).
Если вспомнить, что дизъюнкция есть выделение максимальной величины,
а конъюнкция - минимальной, то с учетом (15.21) можно написать выражение для
композиции:
п т I
P = R°S = ££v(Мир^лц, (v,."t) )• (15-22)
(Так называемая max-min формула).
Разберем обобщающий пример.
Пусть U - множество жителей разных регионов: индус (1), русский (2), немец
(3), туземец - центральная Африка (4), а V - множество различных типов климата:
умеренный (1), прохладный (2), субтропики (3), тропики (4).
Определим на них несколько нечетких подмножеств.
F = южане = 0,9/1 + 0,6/2 + 0/3 + 1/4,
G = жаркий = 0,5/1 + 0,3/2 + 0,9/3 + 1/4.
Пусть требуется воспроизвести такое правило: «если человек - южанин, то он
живет в жарком климате».
Это правило моделируется произведением
8i ">
fl = FxG
/,
1
2
3
4
i
1
0,5
0,3
0,9
0,9
2
0,5
0,3
0,6
0,6
3
0
0
0
0
4
0,5
0,3
0,9
1
(15.23)
1-я строка: (0,9, 0,5)-Ю,5; (0,9,0,3)->0,3; (0,9,0,9)->0,9; (0,9, 1)->0,9;
2-я строка: (0,6, 0,5)—>0,5 и т. д. Из каждой пары берется меньшее.
Как расшифровать полученный результат? fi - это жители разных регионов, gj -
тип климата. Возьмем первую строку. Это про индуса: 0,5 - его склонность пожить
в умеренном климате, 0,3 - в прохладном, 0,9 - в субтропиках, 0,9 - в тропиках.
А вот ненец (3) не хочет жить нигде, кроме своего севера.
Определим теперь подмножество северяне, а климат умеренный. Северяне - это
не-южане, т. е. F. Нечеткое множество F есть дополнение нечеткого множества F,
так что для его функции принадлежности справедливо:
Иг=1-Ц* (15.24)
F = северяне = 0,1/1 + 0,4/2 + 1/3 + 0/4,
Н = умеренный =1/1 + 0,6/2 + 0,2/3 + 0/4.
Допустим, что нам надо определить отношение «все северяне любят умеренный
климат». Очевидно, оно отобразится произведением
15.6. Лингвистическая переменная
199
А, ->
f,
i
1
2
3
4
1
0,1
0,1
0,1
0
2
0,4
0,4
0,2
0
3
1
0,6
0,2
0
4
0
0
0
0
(15.25)
Произведем свертку отношений R и S, т. е. определим, как относятся южане
к умеренному климату.
RoS =
0,5 0,3 0,9 0,9
0,5 0,3 0,6 0,6
0 0 0 0
0,5 0,3 0,9 1
0,1 0,1 0,9 0
0,4 0,4 0,2 0
1 0,6 0,2 0
0 0 0 0
0,9 0,6 0,2
0,6 0,6 0,2
ООО
0,9 0,6 0,2
О
О
О'
О
(15.26)
15.6. Лингвистическая переменная
Непосредственное использование логики нечетких множеств в рамках
продукций, СС или фреймов, т. е. в СИИ, потребовало введения нового типа переменных
в модели представления знаний. Новый тип назван лингвистическим, чтобы
подчеркнуть нечеткий - лексический характер используемых знаний. Это означает, что
значениями лингвистической переменной (ЛП) могут быть словесные оценки,
выраженные отдельными словами или даже целыми фразами.
Для введения ЛП необходимо указать о ней следующую информацию:
• задать множество ее значений, т. е. некоторое множество L словесных
выражений как эквивалентов нечетких понятий внешнего мира;
• определить полное множество значений, на котором могут задаваться нечеткие
множества, т. е. универсум U;
• задать правило, ставящее в соответствие каждому значению ЛП смысл, который
она имеет во внешнем мире - F.
Таким образом, с каждой лингвистической переменной Z связывается кортеж:
(Z, U, U F).
Например, в СС для объекта ЯБЛОКО атрибут ВЕС может быть задан
лингвистической переменной Z, значениями которое будут: МАЛЫЙ, СРЕДНИЙ,
БОЛЬШОЙ. Универсум U можно задать множеством целых положительных чисел
[10, 15, 20,...250, 350] по шкале веса в граммах. Область задания значений ЛП L
определим следующим образом: значениям ЛП МАЛЫЙ соответствует интервал [10 -
100], СРЕДНИЙ-[101 - 200], БОЛЬШОЙ-[201 - 350]. Тогда отображение F можно
задать, например, в виде правил:
1. Если Z МАЛЫЙ, то ЯБЛОКО имеет НИЗКУЮ потребительскую стоимость
(НПО.
2. Если Z СРЕДНИЙ, то ЯБЛОКО имеет ВЫСОКУЮ потребительскую стоимость
(ВПС).
200
15. Представление нечетких знаний
3. Если Z БОЛЬШОЙ, то ЯБЛОКО имеет СРЕДНЮЮ потребительскую стоимость
(СПС).
Для использования этих правил, например, в системе автоматической сортировки
необходимо определить сами нечеткие множества - МАЛЫЙ СРЕДНИЙ, БОЛЬШОЙ,
а также НПС, ВПС, СПС. Для сокращения числа значений рассмотрим множество
весов U = {50, 150, 250, 350}. Универсум потребительских стоимостей определим
в рублях: V={10, 20, 30, 40}.
Ml = МАЛЫЙ = 1/50 + 0,5/150 + 0/250 + 0/350,
Ml = СРЕДНИЙ = 0/50 + 1/150 + 0,5/250 + 0/350,
МЪ = БОЛЬШОЙ = 0/50 + 0/150 + 0,5/250 + 1/350.
N1 = НПС = 1/10 + 0,8/20 + 0,1/30 + 0/40,
N2 = СПС = 0,1/10 + 1/20 + 0,5/30 + 0/40,
N3 = ВПС = 0/10 + 0,4/20 + 0,7/30 + 1/40.
Отношение «если Mi, то Nj» дает нам 9 различных комбинаций. Для примера
рассмотрим такое правило: «Если вес МАЛЫЙ, то его потребительская стоимость
НИЗКАЯ».
Нам известно, что правило типа «если X, то У» моделируется формулой
произведения нечетких множеств (14.21). Это значит, что надо олределить отношение RI =
= М1хМ:
N ->
М 1 0,8 0,1 0
Rl = MlxNl=i 0,5 0,5 0,1 0. (15.27)
0 0 0 0
0 0 0 0
Рассмотрим теперь такое правило: «Если яблоки HE-МАЛЫЕ, то
потребительская стоимость ОЧЕНЬ ВЫСОКАЯ». Отношение HE-МАЛЫЕ есть дополнение
к множеству МАЛЫЕ, так что применима формула (14.24):
Ml = 0/50 + 0,5/150 + 1/250 + 1/350.
Отношение ОЧЕНЬ ВЫСОКАЯ (ОВПС) определим через множество N4:
N4 = ОВПС = 0/10 + 0,2/20 + 0,5/30 + 1/40,
и заданное правило отобразится матрицей:
yv ->
м о о о о
5, =MlxN4= I 0 0,2 0,5 0,5. (15.28)
0 0,2 0,5 1
0 0,2 0,5 1
Произведем свертку отношений R\oS\, т. е. определим, как соотносится вес яблок
МАЛЫЙ с ОВПС. Свертка матриц (15.27) и (15.28) дает результат:
/5.7. Нечеткий вывод
201
S ->
R 0 0,2 0,5 0,5
T = R{oSx=l 0 0,2 0,5 0,5.
0 0 0 0
0 0 0 0
15.7. Нечеткий вывод
Нечеткие выводы чаще всего основаны на правиле заключения (modus ponens).
Это правило касается импликации и говорит о том, что если вся импликация истинна
и посылка истинна, то и заключение истинно: (р, p-+q)h*q. Иногда это правило
записывают в виде дроби
где в числителе - высказывания, истинность которых уже доказана, а в знаменателе -
высказывания, истинность которых логически следует из верхних высказываний.
Приведенная схема вывода пригодна, разумеется, и для случая операций с
отношениями. Пусть имеются четкие и нечеткие множества: А и А \ В и В'. В общем
случае они необязательно совпадают, но в той мере, в которой они совпадают их можно
сопоставить и получить нечеткий результат. Если однозначно выполняется правило,
А,А->ВВ, (15.29)
то при нечетком выводе могут возникать различные варианты. Пусть вместо А мы
имеем нечеткое множество А'. Заключение в этом случае уже будет нечетким:
А',А-+ВВ\ (15.30)
Возможен случай, когда нечетко задано заключение:
А. А-+В'В". (15.31)
Нечеткости В' и В" могут быть разными. В общем случае выражение (15.28)
приобретает вид:
А\А-+В'.В" (15.32)
Нечеткий вывод рассмотрим на примере выражения (15.29). Порядок действий
здесь следующий. Вначале определяем нечеткое отношение А—+В. Для этого у нас
есть формула (15.21). Получается матрица R = АхВ. Далее следует свертка S = A'oR
по формуле max-min (15.22).
Рассмотрим нечеткий вывод на вышеприведенном примере с яблоками. Имеем
следующие условия:
• R1: «Если вес яблок МАЛЫЙ (А), то их потребительская стоимость НИЗКАЯ
(НПС)» (В).
• МГ: «Не совсем маленькие» (А').
• Что есть НПС (В')?
Этим условиям соответствует формула
А\ А-+В, В\
202
75. Представление нечетких знаний
гдеЛ->Д = Д1.
Отношение RI мы уже имеем. Это матрица (15.27). Зададим нечеткое множество
Ml'- «Не совсем маленькие»:
Ml' = «Не совсем маленькие» = 0,9/50 + 0,6/150 4- 0,3/250 + 0/350.
Окончательный вывод - свертка A foRl9 определяющая В'.
1 0,8 0,1 0
0,5 0,5 1 0
0 0 0 0
0 0 0 0
В =|0,9 0,6 0,3 0 0| =
= |0,9 0,8 0,1 0|.
Если расшифровать полученный результат, то получим:
В' = НПС = 0,9/10 + 0,8/20 + 0,1/30 + 0/40.
Низкая потребительская стоимость - цена за яблоки в пределах 10—20 руб. - вот,
что мы получили.
В настоящее время нечеткая логика заняла важное место в СИИ, сделавшись
самостоятельным направлением - нечеткие экспертные и другого типа системы,
нечеткие алгоритмы, нечеткие системы принятия решений. Существует даже общая
тенденция к переопределению известных алгоритмов, в том числе вычислительных
через нечеткую алгебру. При этом точные вычисления рассматриваются как
вырожденный случай. Важнейшее место нечеткая логика занимает в научном направлении,
называемом логикой правдоподобного вывода. Все большее значение это
направление приобретает в системах контроля, обучения и др. Конечно, имеются немалые
трудности. Сюда можно отнести проблемы, связанные с субъективностью нечетких
оценок, отсутствием методов проверки их на непротиворечивость, трудности с
получением точных результатов, когда это необходимо.
16. ПОСТРОЕНИЕ НЕЙРОСЕТЕВОЙ
ЭКСПЕРТНОЙ СИСТЕМЫ
16.1. Понятие нейросетевых экспертных систем
В наши дни возрастает необходимость в системах, которые способны не только
выполнять однажды запрограммированную последовательность действий над заранее
определенными данными, но и способны сами анализировать вновь поступающую
информацию, находить в ней закономерности, производить прогнозирование и т. д.
В этой области приложений самым лучшим образом зарекомендовали себя так
называемые нейронные сети - самообучающиеся системы, имитирующие деятельность
человеческого мозга. Рассмотрим подробнее структуру искусственных нейронных
сетей (НС) и их применение в конкретных задачах.
В последние несколько лет мы наблюдаем взрыв интереса к нейронным сетям,
которые успешно применяются в самых различных областях - бизнесе, медицине,
технике, геологии, физике. Нейронные сети вошли в практику везде, где нужно
решать задачи прогнозирования, классификации или управления. Такой впечатляющий
успех определяется несколькими причинами:
• Богатые возможности. Нейронные сети - исключительно мощный метод
моделирования, позволяющий воспроизводить чрезвычайно сложные зависимости.
В частности, нейронные сети нелинейны по свой природе (смысл этого понятия
подробно разъясняется далее в этой главе). На протяжении многих лет линейное
моделирование было основным методом моделирования в большинстве областей,
поскольку для него хорошо разработаны процедуры оптимизации. В задачах, где
линейная аппроксимация неудовлетворительна (а таких достаточно много),
линейные модели работают плохо. Кроме того, нейронные сети справляются
с «проклятием размерности», которое не позволяет моделировать линейные
зависимости в случае большого числа переменных
• Простота в использовании. Нейронные сети учатся на примерах. Пользователь
нейронной сети подбирает представительные данные, а затем запускает
алгоритм обучения, который автоматически воспринимает структуру данных. При
этом от пользователя, конечно, требуется какой-то набор эвристических знаний
о том, как следует отбирать и подготавливать данные, выбирать нужную
архитектуру сети и интерпретировать результаты, однако уровень знаний,
необходимый для успешного применения нейронных сетей, гораздо скромнее, чем,
например, при использовании традиционных методов статистики.
Нейронные сети привлекательны с интуитивной точки зрения, ибо они основаны
на примитивной биологической модели нервных систем. В будущем развитие таких
нейробиологических моделей может привести к созданию действительно мыслящих
компьютеров. Между тем уже сейчас простые нейронные сети, являются мощным
оружием в арсенале специалиста по прикладной статистике.
204
16. Построение нейросетевой экспертной системы
16.2. Искусственный нейрон
Несмотря на большое разнообразие вариантов нейронных сетей, все они имеют
общие черты. Так, все они, так же, как и мозг человека, состоят из большого числа
связанных между собой однотипных элементов - нейронов, которые имитируют
нейроны головного мозга. На рис. 16.1 показана схема нейрона.
х2 О-
?2
О
-о
Рис. 16.1. Схема нейрона
Из рисунка видно, что искусственный нейрон, так же, как и живой, состоит из
синапсов, связывающих входы нейрона с ядром; ядра нейрона, которое осуществляет
обработку входных сигналов и аксона, который связывает нейрон с нейронами
следующего слоя. Каждый синапс имеет вес, который определяет, насколько
соответствующий вход нейрона влияет на его состояние. Состояние нейрона определяется
по формуле
S = l>,w, (16.1)
/=1
где п - число входов нейрона; дг, - значение i-ro входа нейрона; w, - вес i-ro синапса.
Затем определяется значение аксона нейрона по формуле
Y=AS) (16.2)
где/- некоторая функция, которая называется активационной. Наиболее часто в
качестве активационной функции используется так называемый сигмоид, который
имеет следующий вид:
/(*) = —-—. (16.3)
Основное достоинство этой функции в том, что она дифференцируема на всей
оси абсцисс и имеет очень простую производную:
f'(x) = af(x)(l-f(x)). (16.4)
При уменьшении параметра а сигмоид становится более пологим, вырождаясь
в горизонтальную линию на уровне 0,5 при а=0. При увеличении а сигмоид все
больше приближается к функции единичного скачка (рис. 16.2).
16.3. Базовая искусственная модель
205
Параметр сигмоиды 105
Вид сигиоиды (крутизна передаточной функции нейронов)
0.5--
0
-10
-8
-б
-2
0
2
4
б
8
10
Рис. 16.2 Сигмоидная функция
16.3. Базовая искусственная модель
Чтобы отразить суть биологических нейронных систем, определение
искусственного нейрона дается следующим образом:
• Он получает входные сигналы (исходные данные либо выходные сигналы других
нейронов нейронной сети) через несколько входных каналов. Каждый входной
сигнал проходит через соединение, имеющее определенную интенсивность (или
вес); этот вес соответствует синаптической активности биологического нейрона.
С каждым нейроном связано определенное пороговое значение. Вычисляется
взвешенная сумма входов, из нее вычитается пороговое значение и в результате
получается величина активации нейрона (она также называется постсинаптиче-
ским потенциалом нейрона - PSP).
• Сигнал активации преобразуется с помощью функции активации (или
передаточной функции) и в результате получается выходной сигнал нейрона.
Если при этом использовать ступенчатую функцию активации (т. е., выход
нейрона равен нулю, если вход отрицательный, и единице, если вход нулевой или
положительный), то такой нейрон будет работать точно так же, как описанный выше
естественный нейрон (вычесть пороговое значение из взвешенной суммы и сравнить
результат с нулем - это то же самое, что сравнить взвешенную сумму с пороговым
значением). В действительности, как мы скоро увидим, пороговые функции редко
используются в искусственных нейронных сетях. Учтите, что веса могут быть
отрицательными, - это значит, что синапс оказывает на нейрон не возбуждающее, а
тормозящее воздействие (в мозге присутствуют тормозящие нейроны). Это было
описание отдельного нейрона. Теперь возникает вопрос: как соединять нейроны друг
с другом? Если сеть предполагается для чего-то использовать, то у нее должны быть
входы (принимающие значения интересующих нас переменных из внешнего мира)
и выходы (прогнозы или управляющие сигналы). Входы и выходы соответствуют
сенсорным и двигательным нервам - например, соответственно, идущим от глаз
и в руки. Кроме этого, однако, в сети может быть еще много промежуточных
(скрытых) нейронов, выполняющих внутренние функции. Входные, скрытые и выходные
нейроны должны быть связаны между собой.
Ключевой вопрос здесь - обратная связь (Haykin, 1994). Простейшая сеть имеет
структуру прямой передачи сигнала: Сигналы проходят от входов через скрытые
элементы и в конце концов приходят на выходные элементы. Такая структура имеет
206
16. Построение нейросетевой экспертной системы
устойчивое поведение. Если же сеть рекуррентная (т. е. содержит связи, ведущие
назад от более дальних к более ближним нейронам), то она может быть неустойчива
и иметь очень сложную динамику поведения. Рекуррентные сети представляют
большой интерес для исследователей в области нейронных сетей, однако при
решении практических задач, по крайней мере до сих пор, наиболее полезными оказались
структуры прямой передачи.
Типичный пример сети с прямой передачей сигнала показан на рис. 16.3.
Нейроны регулярным образом организованы в слои. Входной слой служит просто для ввода
значений входных переменных. Каждый из скрытых и выходных нейронов соединен
со всеми элементами предыдущего слоя. Можно было бы рассматривать сети, в
которых нейроны связаны только с некоторыми из нейронов предыдущего слоя;
однако, для большинства приложений сети с полной системой связей предпочтительнее.
Рис. 16.3. Сети с прямой передачей сигнала
При работе (использовании) сети во входные элементы подаются значения
входных переменных, затем последовательно отрабатывают нейроны промежуточных
и выходного слоев. Каждый из них вычисляет свое значение активации, беря
взвешенную сумму выходов элементов предыдущего слоя и вычитая из нее пороговое
значение. Затем значение активации преобразуются с помощью функции активации,
и в результате получается выход нейрона. После того, как вся сеть отработает,
выходные значения элементов выходного слоя принимаются за выход всей сети в целом.
16.4. Применение нейронных сетей
В предыдущем разделе в несколько упрощенном виде было описано, как
нейронная сеть преобразует входные сигналы в выходные. Теперь возникает следующий
важный вопрос: как применить нейронную сеть к решению конкретной задачи?
Класс задач, которые можно решить с помощью нейронной сети, определяется тем,
как сеть работает и тем, как она обучается. При работе нейронная сеть принимает
значения входных переменных и выдает значения выходных переменных. Таким
образом, сеть можно применять в ситуации, когда у Вас имеется определенная
известная информация, и Вы хотите из нее получить некоторую пока не известную
информацию (Patterson, 1996; Fausett, 1994). Вот некоторые примеры таких задач.
Прогнозирование на фондовом рынке. Зная цены акций за последнюю неделю
и сегодняшнее значение индекса FTSE, спрогнозировать завтрашнюю цену акций.
16.4. Применение нейронных сетей
207
Предоставление кредита. Требуется определить, высок ли риск предоставления
кредита частному лицу, обратившемуся с такой просьбой. В результате разговора
с ним известен его доход, предыдущая кредитная история и т. д.
Управление. Нужно определить что должен делать робот (повернуться направо
или налево, двигаться вперед и т. д.), чтобы достичь цели; известно изображение,
которое передает установленная на роботе видеокамера.
Разумеется, вовсе не любую задачу можно решить с помощью нейронной сети.
Если Вы хотите определить результаты лотереи, тираж которой состоится через
неделю, зная свой размер обуви, то едва ли это получится, поскольку эти вещи не
связаны друг с другом. На самом деле, если тираж проводится честно, то не существует
такой информации, на основании которой можно было бы предсказать результат.
Многие финансовые структуры уже используют нейронные сети или
экспериментируют с ними с целью прогнозирования ситуации на фондовом рынке, и похоже, что
любой тренд, прогнозируемый с помощью нейронных методов, всякий раз уже
бывает «дисконтирован» рынком, и поэтому (к сожалению) эту задачу Вам тоже вряд ли
удастся решить.
Итак, мы приходим ко второму важному условию применения нейронных сетей:
Вы должны знать (или хотя бы иметь серьезные подозрения), что между известными
входными значениями и неизвестными выходами имеется связь. Эта связь может
быть искажена шумом (так, едва ли можно ожидать, что по данным из примера
с прогнозированием цен акций можно построить абсолютно точный прогноз,
поскольку на цену влияют и другие факторы, не представленные во входном наборе
данных, и, кроме того, в задаче присутствует элемент случайности), но она должна
существовать.
Как правило, нейронная сеть используется тогда, когда неизвестен точный вид
связей между входами и выходами, - если бы он был известен, то связь можно было
бы моделировать непосредственно. Другая существенная особенность нейронных
сетей состоит в том, что зависимость между входом и выходом находится в процессе
обучения сети. Для обучения нейронных сетей применяются алгоритмы двух типов
(разные типы сетей используют разные типы обучения): управляемое («обучение
с учителем») и не управляемое («без учителя»). Чаще всего применяется обучение
с учителем, и именно этот метод мы сейчас рассмотрим (о неуправляемом обучении
будет рассказано позже).
Для управляемого обучения сети пользователь должен подготовить набор
обучающих данных. Эти данные представляют собой примеры входных данных и
соответствующих им выходов. Сеть учится устанавливать связь между первыми и
вторыми. Обычно обучающие данные берутся из исторических сведений. В рассмотренных
выше примерах это могут быть предыдущие значения цен акций и индекса FTSE,
сведения о прошлых заемщиках - их анкетные данные и то, успешно ли они
выполнили свои обязательства, примеры положений робота и его правильной реакции.
Затем нейронная сеть обучается с помощью того или иного алгоритма управляемого
обучения (наиболее известным из них является метод обратного распространения,
предложенный в работе Rumelhart et al., 1986), при котором имеющиеся данные
используются для корректировки весов и пороговых значений сети таким образом,
чтобы минимизировать ошибку прогноза на обучающем множестве.. Если сеть обучена
хорошо, она приобретает способность моделировать (неизвестную) функцию,
связывающую значения входных и выходных переменных, и впоследствии такую сеть
можно использовать для прогнозирования в ситуации, когда выходные значения
неизвестны.
208
16. Построение нейросетевой экспертной системы
16.5. Сбор данных для нейронной сети
Если задача будет решаться с помощью нейронной сети, то необходимо собрать
данные для обучения. Обучающий набор данных представляет собой набор
наблюдений, для которых указаны значения входных и выходных переменных. Первый
вопрос, который нужно решить, - какие переменные использовать и сколько (и каких)
наблюдений собрать.
Выбор переменных (по крайней мере, первоначальный) осуществляется
интуитивно. Ваш опыт работы в данной предметной области поможет определить, какие
переменные являются важными.
Нейронные сети могут работать с числовыми данными, лежащими в
определенном ограниченном диапазоне. Это создает проблемы в случаях, когда данные имеют
нестандартный масштаб, когда в них имеются пропущенные значения, и когда
данные являются нечисловыми. Числовые данные масштабируются в подходящий для
сети диапазон, а пропущенные значения можно заменить на среднее значение (или
на другую статистику) этой переменной по всем имеющимся обучающим примерам.
Более трудной задачей является работа с данными нечислового характера. Чаще
всего нечисловые данные бывают представлены в виде номинальных переменных
типа Пол = [Муж, Жен). Переменные с номинальными значениями можно
представить в числовом виде. Однако, нейронные сети не дают хороших результатов при
работе с номинальными переменными, которые могут принимать много разных значений.
Пусть, например, мы хотим научить нейронную сеть оценивать стоимость
объектов недвижимости. Цена дома очень сильно зависит от того, в каком районе города
он расположен. Город может быть подразделен на несколько десятков районов,
имеющих собственные названия, и кажется естественным ввести для обозначения
района переменную с номинальными значениями. К сожалению, в этом случае
обучить нейронную сеть будет очень трудно, и вместо этого лучше присвоить каждому
району определенный рейтинг (основываясь на экспертных оценках). Нечисловые
данные других типов можно либо преобразовать в числовую форму, либо объявить
незначащими. Значения дат и времени, если они нужны, можно преобразовать в
числовые, вычитая из них начальную дату (время). Обозначения денежных сумм
преобразовать совсем несложно. С произвольными текстовыми полями (например,
фамилиями людей) работать нельзя и их нужно сделать незначащими.
Вопрос о том, сколько наблюдений нужно иметь для обучения сети, часто
оказывается непростым. Известен ряд эвристических правил, увязывающих число
необходимых наблюдений с размерами сети (простейшее из них гласит, что число
наблюдений должно быть в десять раз больше числа связей в сети). На самом деле это число
зависит также от (заранее неизвестной) сложности того отображения, которое
нейронная сеть стремится воспроизвести. С ростом количества переменных количество
требуемых наблюдений растет нелинейно, так что уже при довольно небольшом
(например, 50) числе переменных может потребоваться огромное число наблюдений.
Эта трудность известна как «проклятие размерности», и мы обсудим ее дальше в этой
главе.
Для большинства реальных задач бывает достаточно нескольких сотен или тысяч
наблюдений. Для особо сложных задач может потребоваться еще большее
количество, однако очень редко может встретиться (даже тривиальная) задача, где хватило бы
менее сотни наблюдений.
16.6. Пре/постпроцессирование
209
Во многих реальных задачах приходится иметь дело с не вполне достоверными
данными. Значения некоторых переменных могут быть искажены шумом или
частично отсутствовать. Кроме того, нейронные сети в целом устойчивы к шумам.
Однако у этой устойчивости есть предел. Например, выбросы, т. е. значения,
лежащие очень далеко от области нормальных значений некоторой переменной, могут
исказить результат обучения. В таких случаях лучше всего постараться обнаружить
и удалить эти выбросы (либо удалив соответствующие наблюдения, либо
преобразовав выбросы в пропущенные значения).
16.6. Пре/постпроцессирование
Всякая нейронная сеть принимает на входе числовые значения и выдает на
выходе также числовые значения. Передаточная функция для каждого элемента сети
обычно выбирается таким образом, чтобы ее входной аргумент мог принимать
произвольные значения, а выходные значения лежали бы в строго ограниченном диапазоне
(«сплющивание»). При этом, хотя входные значения могут быть любыми, возникает
эффект насыщения, когда элемент оказывается чувствительным лишь к входным
значениям, лежащим в некоторой ограниченной области. На этом рисунке
представлена одна из наиболее распространенных передаточных функций - так называемая
логистическая функция (иногда ее также называют сигмоидной функцией, хотя если
говорить строго, это всего лишь один из частных случаев сигмоидных (рис. 16.4) -
т. е. имеющих форму буквы S - функций). В этом случае выходное значение всегда
будет лежать в интервале (0,1), а область чувствительности для входов чуть шире
интервала (-1,+ 1). Данная функция является гладкой, а ее производная легко
вычисляется - это обстоятельство весьма существенно для работы алгоритма обучения сети
(в этом также кроется причина того, что ступенчатая функция для этой цели
практически не используется).
LOGISTIC FUNCTION
, Я
- "
Рис. 16.4. Сигмоидной функция
Коль скоро выходные значения всегда принадлежат некоторой ограниченной
области, а вся информация должна быть представлена в числовом виде, очевидно, что
при решении реальных задач методами нейронных сетей требуются этапы
предварительной обработки - пре-процессирования - и заключительной обработки - пост-
процессирования данных. Здесь нужно рассмотреть 2 вопроса.
8 3ак 1029
210
16. Построение нейросетевой экспертной системы
Шкалирование. Числовые значения должны быть приведены в масштаб,
подходящий для сети. Обычно исходные данные масштабируются по линейной шкале.
В некоторых случаях более подходящим может оказаться нелинейное шкалирование
(например, если заранее известно, что переменная имеет экспоненциальное
распределение, имеет смысл взять ее логарифм).
Номинальные переменные. Номинальные переменные могут быть
двузначными (например, Пол =[Муж> Жен}) или многозначными (т. е. принимать более двух
значений или состояний). Двузначную номинальную переменную легко
преобразовать в числовую (например, Муж = 0, Жен = 1). С многозначными номинальными
переменными дело обстоит сложнее. Их тоже можно представить одним числовым
значением (например, Собака = 0, Овца = 1, Кошка = 2), однако при этом возникнет
(возможно) ложное упорядочивание значений номинальной переменной: в
рассмотренном примере Овца окажется чем-то средним между Собакой и Кошкой.
Существует более точный способ, известный как кодирование Ьиз-N, в котором одна
номинальная переменная представляется несколькими числовыми переменными.
Количество числовых переменных равно числу возможных значений номинальной
переменной; при этом всякий раз ровно одна из N переменных принимает ненулевое
значение (например, Собака = {1,0,0}, Овца = {0,1,0}, Кошка = {0,0,1}). К
сожалению, номинальная переменная с большим числом возможных состояний потребует
при кодировании методом l-ro-N очень большого количества числовых переменных,
а это приведет к росту размеров сети и создаст трудности при ее обучении. В таких
ситуациях возможно (но не всегда достаточно) смоделировать номинальную
переменную с помощью одного числового индекса, однако лучше будет попытаться
найти другой способ представления данных.
Задачи прогнозирования можно разбить на 2 основных класса:
1) классификация;
2) регрессия.
В задачах классификации нужно бывает определить, к какому из нескольких
заданных классов принадлежит данный входной набор. Примерами могут служить
предоставление кредита (относится ли данное лицо к группе высокого или низкого
кредитного риска), диагностика раковых заболеваний (опухоль, чисто),
распознавание подписи (поддельная, подлинная). Во всех этих случаях, очевидно, на выходе
требуется всего одна номинальная переменная. Чаще всего (как в этих примерах)
задачи классификации бывают двузначными, хотя встречаются и задачи с несколькими
возможными состояниями.
В задачах регрессии требуется предсказать значение переменной, принимающей
(как правило) непрерывные числовые значения: завтрашнюю цену акций, расход
топлива в автомобиле, прибыли в следующем году и т. п. В таких случаях в качестве
выходной требуется одна числовая переменная.
Нейронная сеть может решать одновременно несколько задач регрессии и/или
классификации, однако обычно в каждый момент решается только одна задача.
Таким образом, в большинстве случаев нейронная сеть будет иметь всего одну
выходную переменную; в случае задач классификации со многими состояниями для этого
может потребоваться несколько выходных элементов (этап пост-процессирования
отвечает за преобразование информации из выходных элементов в выходную
переменную).
16.8. Обучение многослойного персептрона
211
16.7. многослойный персептрон (MLP)
Вероятно, эта архитектура сети используется сейчас наиболее часто. Она была
предложена в работе Rumelhart, McClelland (1986) и подробно обсуждается почти во
всех учебниках по нейронным сетям (см., например, Bishop, 1995). Вкратце этот тип
сети был описан выше. Каждый элемент сети строит взвешенную сумму своих
входов с поправкой в виде слагаемого и затем пропускает эту величину активации через
передаточную функцию, и таким образом получается выходное значение этого
элемента. Элементы организованы в послойную топологию с прямой передачей сигнала.
Такую сеть легко можно интерпретировать как модель вход-выход, в которой веса
и пороговые значения (смещения) являются свободными параметрами модели. Такая
сеть может моделировать функцию практически любой степени сложности, причем
число слоев и число элементов в каждом слое определяют сложность функции.
Определение числа промежуточных слоев и числа элементов в них является важным
вопросом при конструировании MLP (Haykin, 1994; Bishop, 1995).
Количество входных и выходных элементов определяется условиями задачи.
Сомнения могут возникнуть в отношении того, какие входные значения использовать,
а какие нет, - к этому вопросу мы вернемся позже. Сейчас будем предполагать, что
входные переменные выбраны интуитивно и что все они являются значимыми.
Вопрос же о том, сколько использовать промежуточных слоев и элементов в них, пока
совершенно неясен. В качестве начального приближения можно взять один
промежуточный слой, а число элементов в нем положить равным полусумме числа входных
и выходных элементов. Опять-таки, позже мы обсудим этот вопрос подробнее.
16.8. Обучение многослойного персептрона
После того, как определено число слоев и число элементов в каждом из них,
нужно найти значения для весов и порогов сети, которые бы минимизировали
ошибку прогноза, выдаваемого сетью. Именно для этого служат алгоритмы обучения.
С использованием собранных исторических данных веса и пороговые значения
автоматически корректируются с целью минимизировать эту ошибку. По сути этот
процесс представляет собой подгонку модели, которая реализуется сетью, к имеющимся
обучающим данным. Ошибка для конкретной конфигурации сети определяется
путем прогона через сеть всех имеющихся наблюдений и сравнения реально
выдаваемых выходных значений с желаемыми (целевыми) значениями. Все такие разности
суммируются в так называемую функцию ошибок, значение которой и есть ошибка
сети. В качестве функции ошибок чаще всего берется сумма квадратов ошибок, т. е.
когда все ошибки выходных элементов для всех наблюдений возводятся в квадрат
и затем суммируются.
В традиционном моделировании (например, линейном моделировании) можно
алгоритмически определить конфигурацию модели, дающую абсолютный минимум
для указанной ошибки. Цена, которую приходится платить за более широкие
(нелинейные) возможности моделирования с помощью нейронных сетей, состоит в том,
что, корректируя сеть с целью минимизировать ошибку, мы никогда не можем быть
уверены, что нельзя добиться еще меньшей ошибки. В этих рассмотрениях
оказывается очень полезным понятие поверхности ошибок. Каждому из весов и порогов сети
(т. е. свободных параметров модели; их общее число обозначим через N) соответст-
212
16. Построение нейросетевой экспертной системы
вует одно измерение в многомерном пространстве. N+1-е измерение соответствует
ошибке сети. Для всевозможных сочетаний весов соответствующую ошибку сети
можно изобразить точкой в N+1 -мерном пространстве, и все такие точки образуют
там некоторую поверхность - поверхность ошибок. Цель обучения нейронной сети
состоит в том, чтобы найти на этой многомерной поверхности самую низкую точку.
В случае линейной модели с суммой квадратов в качестве функции ошибок эта
поверхность ошибок будет представлять собой параболоид (квадрику) - гладкую
поверхность, похожую на часть поверхности сферы, с единственным минимумом. В
такой ситуации локализовать этот минимум достаточно просто.
В случае нейронной сети поверхность ошибок имеет гораздо более сложное
строение и обладает рядом неприятных свойств, в частности, может иметь локальные
минимумы (точки, самые низкие в некоторой своей окрестности, но лежащие выше
глобального минимума), плоские участки, седловые точки и длинные узкие овраги.
Аналитическими средствами невозможно определить положение глобального
минимума на поверхности ошибок, поэтому обучение нейронной сети по сути дела
заключается в исследовании поверхности ошибок. Отталкиваясь от случайной
начальной конфигурации весов и порогов (т. е. случайно взятой точки на поверхности
ошибок), алгоритм обучения постепенно отыскивает глобальный минимум. Как
правило, для этого вычисляется градиент (наклон) поверхности ошибок в данной точке,
а затем эта информация используется для продвижения вниз по склону. В конце
концов алгоритм останавливается в нижней точке, которая может оказаться всего лишь
локальным минимумом (а если повезет - глобальным минимумом).
16.9. Алгоритм обратного распространения
Самый известный вариант алгоритма обучения нейронной сети - так называемый
алгоритм обратного распространения (back propagation; см. Patterson, 1996; Haykin,
1994; Fausett, 1994). Существуют современные алгоритмы второго порядка, такие как
метод сопряженных градиентов и метод Левенберга-Маркара (Bishop, 1995;
Shepherd, 1997). Алгоритм обратного распространения наиболее прост для
понимания, а в некоторых случаях он имеет определенные преимущества. Сейчас мы
опишем его, а более продвинутые алгоритмы рассмотрим позже. Разработаны также
эвристические модификации этого алгоритма, хорошо работающие для определенных
классов задач, - быстрое распространение (Fahlman, 1988) и Дельта-дельта с чертой
(Jacobs, 1988).
В алгоритме обратного распространения вычисляется вектор градиента
поверхности ошибок. Этот вектор указывает направление кратчайшего спуска по
поверхности из данной точки, поэтому если мы «немного» продвинемся по нему, ошибка
уменьшится. Последовательность таких шагов (замедляющаяся по мере приближения
к дну) в конце концов приведет к минимуму того или иного типа. Определенную
трудность здесь представляет вопрос о том, какую нужно брать длину шагов.
При большой длине шага сходимость будет более быстрой, но имеется опасность
перепрыгнуть через решение или (если поверхность ошибок имеет особо вычурную
форму) уйти в неправильном направлении. Классическим примером такого явления
при обучении нейронной сети является ситуация, когда алгоритм очень медленно
продвигается по узкому оврагу с крутыми склонами, прыгая с одной его стороны на
другую. Напротив, при маленьком шаге, вероятно, будет схвачено верное направле-
16.10. Переобучение и обобщение
213
ние, однако при этом потребуется очень много итераций. На практике величина шага
берется пропорциональной крутизне склона (так что алгоритм замедляет ход вблизи
минимума) с некоторой константой, которая называется скоростью обучения.
Правильный выбор скорости обучения зависит от конкретной задачи и обычно
осуществляется опытным путем; эта константа может также зависеть от времени, уменьшаясь
по мере продвижения алгоритма.
Обычно этот алгоритм видоизменяется таким образом, чтобы включать
слагаемое импульса (или инерции). Этот член способствует продвижению в
фиксированном направлении, поэтому если было сделано несколько шагов в одном и том же
направлении, то алгоритм «увеличивает скорость», что (иногда) позволяет избежать
локального минимума, а также быстрее проходить плоские участки.
Таким образом, алгоритм действует итеративно, и его шаги принято называть
эпохами. На каждой эпохе на вход сети поочередно подаются все обучающие
наблюдения, выходные значения сети сравниваются с целевыми значениями и вычисляется
ошибка. Значение ошибки, а также градиента поверхности ошибок используется для
корректировки весов, после чего все действия повторяются. Начальная конфигурация
сети выбирается случайным образом, и процесс обучения прекращается либо когда
пройдено определенное количество эпох, либо когда ошибка достигнет некоторого
определенного уровня малости, либо когда ошибка перестанет уменьшаться
(пользователь может сам выбрать нужное условие остановки).
16.10. Переобучение и обобщение
Одна из наиболее серьезных трудностей изложенного подхода заключается
в том, что таким образом мы минимизируем не ту ошибку, которую на самом деле
нужно минимизировать, - ошибку, которую можно ожидать от сети, когда ей будут
подаваться совершенно новые наблюдения. Иначе говоря, мы хотели бы, чтобы
нейронная сеть обладала способностью обобщать результат на новые наблюдения.
В действительности сеть обучается минимизировать ошибку на обучающем
множестве, и в отсутствие идеального и бесконечно большого обучающего множества это
совсем не то же самое, что минимизировать «настоящую» ошибку на поверхности
ошибок в заранее неизвестной модели явления (Bishop, 1995). Сильнее всего это
различие проявляется в проблеме переобучения, или слишком близкой подгонки. Это
явление проще будет продемонстрировать не для нейронной сети, а на примере
аппроксимации посредством полиномов, - при этом суть явления абсолютно та же.
Полином (или многочлен) - это выражение, содержащее только константы и
целые степени независимой переменной. Вот примеры:
y = 2jt + 3y = 3jc2+4*+ 1.
Графики полиномов могут иметь различную форму, причем чем выше степень
многочлена (и, тем самым, чем больше членов в него входит), тем более сложной
может быть эта форма. Если у нас есть некоторые данные, мы можем поставить цель
подогнать к ним полиномиальную кривую (модель) и получить таким образом
объяснение для имеющейся зависимости. Наши данные могут быть зашумлены, поэтому
нельзя считать, что самая лучшая модель задается кривой, которая в точности
проходит через все имеющиеся точки. Полином низкого порядка может быть недостаточно
гибким средством для аппроксимации данных, в то время как полином высокого по-
214
16. Построение нейросетевой экспертной системы
рядка может оказаться чересчур гибким, и будет точно следовать данным, принимая
при этом замысловатую форму, не имеющую никакого отношения к форме
настоящей зависимости (рис. 16.5).
Рис. 16.5. Исходная модель процесса
Нейронная сеть сталкивается с точно такой же трудностью. Сети с большим
числом весов моделируют более сложные функции и, следовательно, склонны к
переобучению. Сеть же с небольшим числом весов может оказаться недостаточно гибкой,
чтобы смоделировать имеющуюся зависимость. Например, сеть без промежуточных
слоев на самом деле моделирует обычную линейную функцию. Как же выбрать
«правильную» степень сложности для сети? Почти всегда более сложная сеть дает
меньшую ошибку, но это может свидетельствовать не о хорошем качестве модели, а о
переобучении.
Ответ состоит в том, чтобы использовать механизм контрольной кросс-проверки.
Мы резервируем часть обучающих наблюдений и не используем их в обучении по
алгоритму обратного распространения. Вместо этого, по мере .работы алгоритма, они
используются для независимого контроля результата. В самом начале работы ошибка
сети на обучающем и контрольном множестве будет одинаковой (если они
существенно отличаются, то, вероятно, разбиение всех наблюдений на 2 множества было
неоднородно). По мере того, как сеть обучается, ошибка обучения, естественно,
убывает, и, пока обучение уменьшает действительную функцию ошибок, ошибка на
контрольном множестве также будет убывать. Если же контрольная ошибка перестала
убывать или даже стала расти, это указывает на то, что сеть начала слишком близко
аппроксимировать данные и обучение следует остановить. Это явление чересчур
точной аппроксимации в процессе обучения и называется переобучением. Если такое
случилось, то обычно советуют уменьшить число скрытых элементов и/или слоев,
ибо сеть является слишком мощной для данной задачи. Если же сеть, наоборот, была
взята недостаточно богатой для того, чтобы моделировать имеющуюся зависимость,
то переобучения, скорее всего, не произойдет, и обе ошибки - обучения и проверки -
не достигнут достаточного уровня малости.
Описанные проблемы с локальными минимумами и выбором размера сети
приводят к тому, что при практической работе с нейронными сетями, как правило,
приходится экспериментировать с большим числом различных сетей, порой обучая
каждую из них по нескольку раз (чтобы не быть введенным в заблуждение локальными
минимумами) и сравнивая полученные результаты. Главным показателем качества
результата является здесь контрольная ошибка. При этом, в соответствии с
общенаучным принципом, согласно которому при прочих равных следует предпочесть более
простую модель, из двух сетей с приблизительно равными ошибками контроля имеет
смысл выбрать ту, которая меньше. Необходимость многократных экспериментов
ведет к тому, что контрольное множество начинает играть ключевую роль в выборе
модели, т. е. становится частью процесса обучения. Тем самым ослабляется его роль
16.11. Отбор данных
215
как независимого критерия качества модели - при большом числе экспериментов
есть риск выбрать «удачную» сеть, дающую хороший результат на контрольном
множестве. Для того, чтобы придать окончательной модели должную надежность,
часто (по крайней мере, когда объем обучающих данных это позволяет) поступают
так: резервируют еще одно - тестовое множество наблюдений. Итоговая модель
тестируется на данных из этого множества, чтобы убедиться, что результаты,
достигнутые на обучающем и контрольном множествах реальны, а не являются артефактами
процесса обучения. Разумеется, для того чтобы хорошо играть свою роль, тестовое
множество должно быть использовано только один раз: если его использовать
повторно для корректировки процесса обучения, то оно фактически превратится в
контрольное множество.
Итак, построение сети (после выбора входных переменных) состоит из
следующих шагов:
• Выбрать начальную конфигурацию сети (например, один промежуточный слой
с числом элементов в нем, равным полусумме числа входов и числа выходов).
• Провести ряд экспериментов с различными конфигурациями, запоминая при
этом лучшую сеть (в смысле контрольной ошибки). Для каждой конфигурации
следует провести несколько экспериментов, чтобы не получить ошибочный
результат из-за того, что процесс обучения попал в локальный минимум.
• Если в очередном эксперименте наблюдается недообучение (сеть не выдает
результат приемлемого качества), попробовать добавить дополнительные нейроны
в промежуточный слой (слои). Если это не помогает, попробовать добавить
новый промежуточный слой.
• Если имеет место переобучение (контрольная ошибка стала расти), попробовать
удалить несколько скрытых элементов (а возможно и слоев).
Многократное повторение эвристических экспериментов в лучшем случае
довольно утомительно. Автоматический конструктор сети - Automatic Network Designer
проведет эксперименты с различным числом скрытых элементов, для каждой
пробной архитектуры сети выполнит несколько прогонов обучения, отбирая при этом
наилучшую сеть по показателю контрольной ошибки с поправкой на размер сети.
В Автоматическом конструкторе сети реализованы сложные алгоритмы поиска,
в том числе метод «искусственного отжига» (simulated annealing, Kirkpatrick et al.,
1983), с помощью которых можно перепробовать сотни различных сетей, выделяя
из них особо перспективные, либо быстро находить «грубое и простое» решение.
16.11. Отбор данных
На всех предыдущих этапах существенно использовалось одно предположение.
А именно, обучающее, контрольное и тестовое множества должны быть
репрезентативными (представительными) с точки зрения существа задачи (более того, эти
множества должны быть репрезентативными каждое в отдельности). Известное
изречение программистов «garbage in, garbage out» («мусор на входе - мусор на выходе»)
нигде не справедливо в такой степени, как при нейросетевом моделировании. Если
обучающие данные не репрезентативны, то модель, как минимум, будет не очень хо-
216
16. Построение нейросетевой экспертной системы
рошей, а в худшем случае - бесполезной. Имеет смысл перечислить ряд причин,
которые ухудшают качество обучающего множества:
Будущее непохоже на прошлое. Обычно в качестве обучающих берутся
исторические данные. Если обстоятельства изменились, то закономерности, имевшие место
в прошлом, могут больше не действовать.
Следует учесть все возможности. Нейронная сеть может обучаться только
на тех данных, которыми она располагает. Предположим, что лица с годовым
доходом более $100,000 имеют высокий кредитный риск, а обучающее множество не
содержало лиц с доходом более $40,000 в год. Тогда едва ли можно ожидать от сети
правильного решения в совершенно новой для нее ситуации.
Сеть обучается тому, чему проще всего обучиться. Классическим (возможно,
вымышленным) примером является система машинного зрения, предназначенная для
автоматического распознавания танков. Сеть обучалась на ста картинках,
содержащих изображения танков, и на ста других картинках, где танков не было. Был
достигнут стопроцентно «правильный» результат. Но когда на вход сети были поданы
новые данные, она безнадежно провалилась. В чем же была причина? Выяснилось,
что фотографии с танками были сделаны в пасмурный, дождливый день, а
фотографии без танков - в солнечный день. Сеть научилась улавливать (очевидную) разницу
в общей освещенности. Чтобы сеть могла результативно работать, ее следовало
обучать на данных, где бы присутствовали все погодные условия и типы освещения, при
которых сеть предполагается использовать - и это еще не говоря о рельефе
местности, угле и дистанции съемки и т. д.
Несбалансированный набор данных. Коль скоро сеть минимизирует общую
погрешность, важное значение приобретает пропорции, в которых представлены
данные различных типов. Сеть, обученная на 900 хороших и 100 плохих примерах
будет искажать результат в пользу хороших наблюдений, поскольку это позволит
алгоритму уменьшить общую погрешность (которая определяется в основном
хорошими случаями). Если в реальной популяции хорошие и плохие объекты представлены
в другой пропорции, то результаты, выдаваемые сетью, могут оказаться неверными.
Хорошим примером служит задача выявления заболеваний. Пусть, например, при
обычных обследованиях в среднем 90 % людей оказываются здоровыми. Сеть
обучается на имеющихся данных, в которых пропорция здоровые/больные равна 90/10.
Затем она применяется для диагностики пациентов с определенным жалобами, среди
которых это соотношение уже 50/50. В этом случае сеть будет ставить диагноз
чересчур осторожно и не распознает заболевание у некоторых больных. Если же,
наоборот, сеть обучить на данных «с жалобами», а затем протестировать на «обычных»
данных, то она будет выдавать повышенное число неправильных диагнозов о
наличии заболевания. В таких ситуациях обучающие данные нужно скорректировать так,
чтобы были учтены различия в распределении данных (например, можно повторять
редкие наблюдения или удалить часто встречающиеся), или же видоизменить
решения, выдаваемые сетью, посредством матрицы потерь (Bishop, 1995). Как правило,
лучше всего постараться сделать так, чтобы наблюдения различных типов были
представлены равномерно, и соответственно этому интерпретировать результаты,
которые выдает сеть.
16.12. Обучение многослойного персептрона
217
16.12. Обучение многослойного персептрона
Мы сможем лучше понять, как устроен и как обучается многослойный персеп-
трон (MLP), если выясним, какие функции он способен моделировать. Вспомним, что
уровнем активации элемента называется взвешенная сумма его входов с
добавленным к ней пороговым значением. Таким образом, уровень активации представляет
собой простую линейную функцию входов. Эта активация затем преобразуется с
помощью сигмоидной (имеющей S-образную форму) кривой (рис. 16.6).
Рис. 16.6. Сигмоидная S-образная форма
Комбинация линейной функции нескольких переменных и скалярной
сигмоидной функции приводит к характерному профилю «сигмоидного склона», который
выдает элемент первого промежуточного слоя MLP (На приведенном здесь рис. 16.7,
соответствующая поверхность изображена в виде функции двух входных
переменных. Элемент с большим числом входов выдает многомерный аналог такой
поверхности). При изменении весов и порогов меняется и поверхность отклика. При этом
может меняться как ориентация всей поверхности, так и крутизна склона. Большим
значениям весов соответствует более крутой склон. Так например, если увеличить
все веса в 2 раза, то ориентация не изменится, а наклон будет более крутым.
В многослойной сети подобные функции отклика комбинируются друг с другом
с помощью последовательного взятия их линейных комбинаций и применения
нелинейных функций активации. На этом рисунке изображена типичная поверхность
отклика для сети с одним промежуточным слоем, состоящим из двух элементов, и
одним выходным элементом, для классической задачи «исключающего или» (Хог).
Две разных сигмоидных поверхности объединены в одну поверхность, имеющую
форму буквы «U».
Перед началом обучения сети весам и порогам случайным образом
присваиваются небольшие по величине начальные значения. Тем самым отклики отдельных
элементов сети имеют малый наклон и ориентированы хаотично - фактически они не
связаны друг с другом. По мере того, как происходит обучение, поверхности отклика
элементов сети вращаются и сдвигаются в нужное положение, а значения весов
увеличиваются, поскольку они должны моделировать отдельные участки целевой
поверхности отклика.
218
16. Построение нейросетевой экспертной системы
—, — .—- — ,—
Рис, 16.7. Соответствующая поверхность
в виде функции двух входных переменных
В задачах классификации выходной элемент должен выдавать сильный сигнал
в случае, если данное наблюдение принадлежит к интересующему нас классу, и
слабый - в противоположном случае. Иначе говоря, этот элемент должен стремиться
смоделировать функцию, равную единице в той области пространства объектов, где
располагаются объекты из нужного класса, и равную нулю вне этой области. Такая
конструкция известна как дискриминантная функция в задачах распознавания.
«Идеальная» дискриминантная функция должна иметь плоскую структуру, так чтобы
точки соответствующей поверхности располагались либо на нулевом уровне, либо на
высоте единица.
Если сеть не содержит скрытых элементов, то на выходе она может моделировать
только одинарный «сигмоидный склон": точки, находящиеся по одну его сторону,
располагаются низко, по другую - высоко. При этом всегда будет существовать
область между ними (на склоне), где высота принимает промежуточные значения, но
по мере увеличения весов эта область будет сужаться.
Такой сигмоидный склон фактически работает как линейная дискриминантная
функция. Точки, лежащие по одну сторону склона, классифицируются как
принадлежащие нужному классу, а лежащие по другую сторону - как не принадлежащие.
Следовательно, сеть без скрытых слоев может служить классификатором только
в линейно-отделимых задачах (когда можно провести линию - или, в случае более
высоких размерностей, - гиперплоскость, разделяющую точки' в пространстве
признаков).
Сеть, содержащая один промежуточный слой, строит несколько сигмоидных
склонов - по одному для каждого скрытого элемента, - и затем выходной элемент
комбинирует из них «возвышенность». Эта возвышенность получается выпуклой,
т. е. не содержащей впадин. При этом в некоторых направлениях она может уходить
на бесконечность (как длинный полуостров). Такая сеть может моделировать
большинство реальных задач классификации.
На рисунке 16.8. показана поверхность отклика, полученная многослойным пер-
септроном для решения задачи исключающего или: хорошо видно, что она выделяет
область пространства, расположенную вдоль диагонали.
16.12. Обучение многослойного персептрона
219
Рис 16.8. Поверхность отклика,
полученная многослойным персептроном
Сеть с двумя промежуточными слоями строит комбинацию из нескольких таких
возвышенностей. Их будет столько же, сколько элементов во втором слое, и у каждой
из них будет столько сторон, сколько элементов было в первом скрытом слое. После
небольшого размышления можно прийти к выводу, что, используя достаточное число
таких возвышенностей, можно воспроизвести поверхность любой формы - в том
числе с впадинами и вогнутостями. Как следствие наших рассмотрений мы получаем,
что, теоретически, для моделирования любой задачи достаточно многослойного
персептрона с двумя промежуточными слоями (в точной формулировке этот результат
известен как теорема Колмогорова). При этом может оказаться и так, что для
решения некоторой конкретной задачи более простой и удобной будет сеть с еще
большим числом слоев. Однако, для решения большинства практических задач
достаточно всего одного промежуточного слоя, 2 слоя применяются как резерв в особых
случаях, а сети с тремя слоями практически не применяются.
В задачах классификации очень важно понять, как следует интерпретировать те
точки, которые попали на склон или лежат близко от него. Стандартный выход здесь
состоит в том, чтобы для пороговых значений установить некоторые доверительные
пределы (принятия или отвержения), которые должны быть достигнуты, чтобы
данных элемент считался «принявшим решение». Например, если установлены пороги
принятия/отвержения 0.95/0.05, то при уровне выходного сигнала, превосходящем
0.95 элемент считается активным, при уровне ниже 0.05 - неактивным, а в
промежутке - «неопределенным».
Имеется и более тонкий (и, вероятно, более полезный) способ интерпретировать
уровни выходного сигнала: считать их вероятностями. В этом случае сеть выдает
несколько большую информацию, чем просто «да/нет»: она сообщает нам, насколько
(в некотором формальном смысле) мы можем доверять ее решению. Разработаны
модификации метода MLP, позволяющие интерпретировать выходной сигнал
нейронной сети как вероятность, в результате чего сеть по существу учится моделировать
плотность вероятности распределения данного класса. При этом, однако,
вероятностная интерпретация обоснована только в том случае, если выполнены определенные
предположения относительно распределения исходных данных (конкретно, что они
являются выборкой из некоторого распределения, принадлежащего к семейству экс-
220
16. Построение нейросетевой экспертной системы
поненциальных распределений; Bishop, 1995). Здесь, как и ранее, может быть
принято решение по классификации, но, кроме того, вероятностная интерпретация
позволяет ввести концепцию «решения с минимальными затратами».
16.13. Другие алгоритмы обучения MLP
Выше было описано, как с помощью алгоритма обратного распространения
осуществляется градиентный спуск по поверхности ошибок. Вкратце дело происходит
так: в данной точке поверхности находится направление скорейшего спуска, затем
делается прыжок вниз на расстояние, пропорциональное коэффициенту скорости
обучения и крутизне склона, при этом учитывается инерция, те есть стремление
сохранить прежнее направление движения. Можно сказать, что метод ведет себя как
слепой кенгуру - каждый раз прыгает в направлении, которое кажется ему
наилучшим. На самом деле шаг спуска вычисляется отдельно для всех обучающих
наблюдений, взятых в случайном порядке, но в результате получается достаточно хорошая
аппроксимация спуска по совокупной поверхности ошибок. Существуют и другие
алгоритмы обучения MLP, однако все они используют ту или иную стратегию
скорейшего продвижения к точке минимума. В некоторых задачах бывает целесообразно
использовать такие - более сложные - методы нелинейной оптимизации.
Алгоритм линейного поиска действует следующим образом: выбирается какое-
либо разумное направление движения по многомерной поверхности. В этом
направлении проводится линия, и на ней ищется точка минимума (это делается
относительно просто с помощью того или иного варианта метода деления отрезка пополам);
затем все повторяется сначала. Что в данном случае следует считать «разумным
направлением»? Очевидным ответом является направление скорейшего спуска (именно
так действует алгоритм обратного распространения). На самом деле этот вроде бы
очевидный выбор не слишком удачен. После того, как был найден минимум по
некоторой прямой, следующая линия, выбранная для кратчайшего спуска, может
«испортить» результаты минимизации по предыдущему направлению (даже на такой
простой поверхности, как параболоид, может потребоваться очень большое число шагов
линейного поиска). Более разумно было бы выбирать «не мешающие друг другу»
направления спуска - так мы приходим к методу сопряженных градиентов (Bishop,
1995).
Идея метода состоит в следующем: поскольку мы нашли точку минимума вдоль
некоторой прямой, производная по этому направлению равна нулю. Сопряженное
направление выбирается таким образом, чтобы эта производная и дальше оставалась
нулевой - в предположении, что поверхность имеет форму параболоида (или, грубо
говоря, является «хорошей и гладкой»). Если это условие выполнено, то для
достижения точки минимума достаточно будет N эпох. На реальных, сложно устроенных
поверхностях по мере хода алгоритма условие сопряженности портится, и тем не
менее такой алгоритм, как правило, требует гораздо меньшего числа шагов, чем метод
обратного распространения, и дает лучшую точку минимума (для того, чтобы
алгоритм обратного распространения точно установился в некоторой точке, нужно
выбирать очень маленькую скорость обучения).
Метод доверительных областей основан на следующей идее: вместо того, чтобы
двигаться в определенном направлении поиска, предположим, что поверхность имеет
достаточно простую форму, так что точку минимума можно найти (и прыгнуть туда)
16.14. Радиальная базисная функция
221
непосредственно. Попробуем смоделировать это и посмотреть, насколько хорошей
окажется полученная точка. Вид модели предполагает, что поверхность имеет
хорошую и гладкую форму (например, является параболоидом), - такое предположение
выполнено вблизи точек минимума. Вдали от них данное предположение может
сильно нарушаться, так что модель будет выбирать для очередного продвижения
совершенно не те точки. Правильно работать такая модель будет только в некоторой
окрестности данной точки, причем размеры этой окрестности заранее неизвестны.
Поэтому выберем в качестве следующей точки для продвижения нечто
промежуточное между точкой, которую предлагает наша модель, и точкой, которая получилась
бы по обычному методу градиентного спуска. Если эта новая точка оказалась
хорошей, передвинемся в нее и усилим роль нашей модели в выборе очередных точек;
если же точка оказалась плохой, не будем в нее перемещаться и увеличим роль метода
градиентного спуска при выборе очередной точки (а также уменьшим шаг). В
основанном на этой идее методе Левенберга-Маркара предполагается, что исходное
отображение является локально линейным (и тогда поверхность ошибок будет
параболоидом).
Метод Левенберга-Маркара (Levenberg, 1944; Marquardt, 1963; Bishop, 1995) -
самый быстрый алгоритм обучения из всех, но, к сожалению, на его использование
имеется ряд важных ограничений. Он применим только для сетей с одним выходным
элементом, работает только с функцией ошибок сумма квадратов и требует памяти
порядка W**2 (где W- количество весов у сети; поэтому для больших сетей он плохо
применим). Метод сопряженных градиентов почти так же эффективен, как и этот
метод, и не связан подобными ограничениями.
При всем сказанном метод обратного распространения также сохраняет свое
значение, причем не только для тех случаев, когда требуется быстро найти решение
(и не требуется особой точности). Его следует предпочесть, когда объем данных
очень велик, и среди данных есть избыточные. Благодаря тому, что в методе
обратного распространения корректировка ошибки происходит по отдельным случаям,
избыточность данных не вредит (если, например, приписать к имеющемуся набору
данных еще один точно такой же набор, так что каждый случай будет повторяться
дважды, то эпоха будет занимать вдвое больше времени, чем раньше, однако
результат ее будет точно таким же, как от двух старых, так что ничего плохого не
произойдет). Методы же Левенберга-Маркара и сопряженных градиентов проводят
вычисления на всем наборе данных, поэтому при увеличении числа наблюдений продолжи-
тельность-одной эпохи сильно растет, но при этом совсем не обязательно улучшается
результат, достигнутый на этой эпохе (в частности, если данные избыточны; если же
данные редкие, то добавление новых данных улучшит обучение на каждой эпохе).
Кроме того, обратное распространение не уступает другим методам в ситуациях,
когда данных мало, поскольку в этом случае недостаточно данных для принятия
очень точного решения (более тонкий алгоритм может дать меньшую ошибку
обучения, но контрольная ошибка у него, скорее всего, не будет меньше).
16.14. Радиальная базисная функция
В предыдущем разделе было описано, как многослойный персептрон моделирует
функцию отклика с помощью функций «сигмоидных склонов» - в задачах
классификации это соответствует разбиению пространства входных данных посредством
гиперплоскостей. Метод разбиения пространства гиперплоскостями представляется
естественным и интуитивно понятным, ибо он использует фундаментальное простое
222
16. Построение нейросетевой экспертной системы
понятие прямой линии. Столь же естественным является подход, основанный на
разбиении пространства окружностями или (в общем случае) гиперсферами. Гиперсфера
задается своим центром и радиусом. Подобно тому, как элемент MLP реагирует
(нелинейно) на расстояние от данной точки до линии «сигмоидного склона», в сети,
построенной на радиальных базисных функциях (Broomhead and Lowe, 1988; Moody and
Darkin, 1989; Haykin, 1994), элемент реагирует (нелинейно) на расстояние от данной
точки до «центра», соответствующего этому радиальному элементу. Поверхность
отклика радиального элемента представляет собой гауссову функцию (колоколообраз-
ной формы), с вершиной в центре и понижением к краям. Наклон гауссова
радиального элемента можно менять подобно тому, как можно менять наклон сигмоидной
кривой в MLP (рис. 16.9).
1
Рис. 16.9. Поверхность отклика в виде гауссовой функции
Элемент многослойного персептрона полностью задается значениями своих
весов и порогов, которые в совокупности определяют уравнение разделяющей прямой
и скорость изменения функции при отходе от этой линии. До действия сигмоидной
функции активации уровень активации такого элемента определяется
гиперплоскостью. В отличие от них, радиальный элемент задается своим центром и «радиусом».
Положение точки в N-мерном пространстве определяется N числовыми параметрами,
т. е. их ровно столько же, сколько весов у линейного элемента. Его радиус
(отклонение) хранится как «порог». Следует отчетливо понимать, что «веса» и «пороги»
радиального элемента принципиально отличаются от весов и порогов линейного
элемента, и если забыть об этом, термин может ввести Вас в заблуждение. Радиальные
веса на самом деле представляют точку, а радиальный порог - отклонение.
Сеть типа радиальной базисной функции (RBF) имеет промежуточный слой
из радиальных элементов, каждый из которых воспроизводит гауссову поверхность
отклика. Поскольку эти функции нелинейны, для моделирования произвольной
функции нет необходимости брать более одного промежуточного слоя. Ддя
моделирования любой функции необходимо лишь взять достаточное число радиальных
элементов. Остается решить вопрос о том, как следует скомбинировать выходы скрытых
радиальных элементов, чтобы получить из них выход сети. Оказывается, что
достаточно взять их линейную комбинацию (т. е. взвешенную сумму гауссовых функций).
16.14. Радиальная базисная функция
223
Сеть RBF имеет выходной слой, состоящий из элементов с линейными функциями
активации (Haykin, 1994; Bishop, 1995).
Сети RBF имеют ряд преимуществ перед сетями MLP. Во-первых, как уже
сказано, они моделируют произвольную нелинейную функцию с помощью всего одного
промежуточного слоя, и тем самым избавляют нас от необходимости решать вопрос
о числе слоев. Во-вторых, параметры линейной комбинации в выходном слое можно
полностью оптимизировать с помощью хорошо известных методов линейного
моделирования, которые работают быстро и не испытывают трудностей с локальными
минимумами, так мешающими при обучении MLP. Поэтому сеть RBF обучается
очень быстро (на порядок быстрее MLP).
С другой стороны, до того, как применять линейную оптимизацию в выходном
слое сети RBF, необходимо определить число радиальных элементов, положение их
центров и величины отклонений. Соответствующие алгоритмы, хотя и работают
быстрее алгоритмов обучения MLP, в меньшей степени пригодны для отыскания
субоптимальных решений. Другие отличия работы RBF от MLP связаны с различным
представлением пространства модели: «групповым» в RBF и «плоскостным» в MLP.
Опыт показывает, что для правильного моделирования типичной функции сеть
RBF, с ее более эксцентричной поверхностью отклика, требует несколько большего
числа элементов. Конечно, можно специально придумать форму поверхности,
которая будет хорошо представляться первым или, наоборот, вторым способом, но общий
итог оказывается не в пользу RBF. Следовательно, модель, основанная на RBF, будет
работать медленнее и потребует больше памяти, чем соответствующий MLP (однако
она гораздо быстрее обучается, а в некоторых случаях это важнее).
С «групповым» подходом связано и неумение сетей RBF экстраполировать свои
выводы за область известных данных. При удалении от обучающего множества
значение функции отклика быстро спадает до нуля. Напротив, сеть MLP выдает более
определенные решения при обработке сильно отклоняющихся данных. Достоинство
это или недостаток - зависит от конкретной задачи, однако в целом склонность MLP
к некритическому экстраполированию результата считается его слабостью.
Экстраполяция на данные, лежащие далеко от обучающего множества, - вещь, как правило,
опасная и необоснованная. Сети RBF более чувствительны к «проклятию
размерности» и испытывают значительные трудности, когда число входов велико. Мы
обсудим этот вопрос ниже.
Как уже говорилось, обучение RBF-сети происходит в несколько этапов. Сначала
определяются центры и отклонения для радиальных элементов; после этого
оптимизируются параметры линейного выходного слоя.
Расположение центров должно соответствовать кластерам, реально
присутствующим в исходных данных. Рассмотрим 2 наиболее часто используемых метода.
Расположение центров должно соответствовать кластерам, реально
присутствующим в исходных данных. Рассмотрим 2 наиболее часто используемых метода.
Выборка из выборки. В качестве центров радиальных элементов берутся
несколько случайно выбранных точек обучающего множества. В силу случайности
выбора они «представляют» распределение обучающих данных в статистическом
смысле. Однако, если число радиальных элементов невелико, такое представление может
быть неудовлетворительным (Haykin, 1994).
224
16. Построение нейросетевой экспертной системы
Алгоритм К-средних. Этот алгоритм (Bishop, 1995) стремится выбрать
оптимальное множество точек, являющихся центроидами кластеров в обучающих
данных. При К радиальных элементах их центры располагаются таким образом, чтобы:
• Каждая обучающая точка «относилась» к одному центру кластера и лежала к
нему ближе, чем к любому другому центру.
• Каждый центр кластера был центроидом множества обучающих точек,
относящихся к этому кластеру.
После того, как определено расположение центров, нужно найти отклонения.
Величина отклонения (ее также называют сглаживающим фактором) определяет,
насколько «острой» будет гауссова функция. Если эти функции выбраны слишком
острыми, сеть не будет интерполировать данные между известными точками и потеряет
способность к обобщению. Если же гауссовы функции взяты чересчур широкими,
сеть не будет воспринимать мелкие детали. На самом деле сказанное - еще одна
форма проявления дилеммы пере/недообучения. Как правило, отклонения
выбираются таким образом, чтобы колпак каждой гауссовой функций захватывал «несколько»
соседних центров. Для этого имеется несколько методов:
Явный. Отклонения задаются пользователем.
Изотропный. Отклонение берется одинаковым для всех элементов и
определяется эвристически с учетом количества радиальных элементов и объема покрываемого
пространства (Haykin, 1994).
К ближайших соседей. Отклонение каждого элемента устанавливается
(индивидуально) равным среднему расстоянию до его К ближайших соседей (Bishop, 1995).
Тем самым отклонения будут меньше в тех частях пространства, где точки
расположены густо, - здесь будут хорошо учитываться детали, - а там, где точек мало,
отклонения будут большими (и будет производится интерполяция).
После того, как выбраны центры и отклонения, параметры выгодного слоя
оптимизируются с помощью стандартного метода линейной оптимизации - алгоритма
псевдообратных матриц (сингулярного разложения) (Haykin, 1994; Golub and Kahan,
1965).
Могут быть построены различные гибридные разновидности радиальных
базисных функций. Например, выходной слой может иметь нелинейные функции
активации, и тогда для его обучения используется какой-либо из алгоритмов обучения
многослойных персептронов, например метод обратного распространения. Можно также
обучать радиальный (скрытый) слой с помощью алгоритма обучения сети Кохонена -
это еще один способ разместить центры так, чтобы они отражали расположение данных.
16.15. Вероятностная нейронная сеть
В предыдущем разделе, говоря о задачах классификации, мы кратко упомянули
о том, что выходы сети можно с пользой интерпретировать как оценки вероятности
того, что элемент принадлежит некоторому классу, и сеть фактически учится
оценивать функцию плотности вероятности. Аналогичная полезная интерпретация может
иметь место и в задачах регрессии - выход сети рассматривается как ожидаемое
значение модели в данной точке пространства входов. Это ожидаемое значение связано
с плотностью вероятности совместного распределения входных и выходных данных.
16.15. Вероятностная нейронная сеть
225
Задача оценки плотности вероятности (p.d.f.) по данным имеет давнюю историю
в математической статистике (Parzen, 1962) и относится к области байесовой
статистики. Обычная статистика по заданной модели говорит нам, какова будет
вероятность того или иного исхода (например, что на игральной кости шесть очков будет
выпадать в среднем одном случае из шести). Байесова статистика переворачивает
вопрос вверх ногами: правильность модели оценивается по имеющимся достоверным
данным. В более общем плане, байесова статистика дает возможность оценивать
плотность вероятности распределений параметров модели по имеющимся данных.
Для того, чтобы минимизировать ошибку, выбирается модель с такими параметрами,
при которых плотность вероятности будет наибольшей.
При решении задачи классификации можно оценить плотность вероятности для
каждого класса, сравнить между собой вероятности принадлежности различным
классам и выбрать наиболее вероятный. На самом деле именно это происходит, когда
мы обучаем нейронную сеть решать задачу классификации - сеть пытается
определить (т. е. аппроксимировать) плотность вероятности.
Традиционный подход к задаче состоит в том, чтобы построить оценку для
плотности вероятности по имеющимся данным. Обычно при этом предполагается, что
плотность имеет некоторый определенный вид (чаще всего - что она имеет
нормальное распределение). После этого оцениваются параметры модели. Нормальное
распределение часто используется потому, что тогда параметры модели (среднее и
стандартное отклонение) можно оценить аналитически. При этом остается вопрос о том,
что предположение о нормальности не всегда оправдано.
Другой подход к оценке плотности вероятности основан на ядерных оценках
(Parzen, 1962; Speckt, 1990; Speckt, 1991; Bishop, 1995; Patterson, 1996). Можно
рассуждать так: тот факт, что наблюдение расположено в данной точке пространства,
свидетельствует о том, что в этой точке имеется некоторая плотность вероятности.
Кластеры из близко лежащих точек указывают на то, что в этом месте плотность
вероятности большая. Вблизи наблюдения имеется большее доверие к уровню
плотности, а по мере отдаления от него доверие убывает и стремится к нулю. В методе
ядерных оценок в точке, соответствующей каждому наблюдению, помещается
некоторая простая функция, затем все они складываются и в результате получается
оценка для общей плотности вероятности. Чаще всего в качестве ядерных функций
берутся гауссовы функции (с формой колокола). Если обучающих примеров достаточное
количество, то такой метод дает достаточно хорошее приближение к истинной
плотности вероятности.
Метод аппроксимации плотности вероятности с помощью ядерных функций
во многом похож на метод радиальных базисных функций, и таким образом мы
естественно приходим к понятиям вероятностной нейронной сети (PNN) и обобщенно-
регрессионной нейронной сети (GRNN) (Speckt 1990, 1991). PNN-сети
предназначены для задач классификации, a GRNN - для задач регрессии. Сети этих двух типов
представляют собой реализацию методов ядерной аппроксимации, оформленных
в виде нейронной сети.
Сеть PNN имеет по меньшей мере 3 слоя: входной, радиальный и выходной.
Радиальные элементы берутся по одному на каждое обучающее наблюдение. Каждый
из них представляет гауссову функцию с центром в этом наблюдении. Каждому
классу соответствует один выходной • элемент. Каждый такой элемент соединен
со всеми радиальными элементами, относящимися к его классу, а со всеми осталь-
226
16 Построение нейросетевои экспертной системы
ными радиальными элементами он имеет нулевое соединение. Таким образом,
выходной элемент просто складывает отклики всех элементов, принадлежащих к его
классу. Значения выходных сигналов получаются пропорциональными ядерным
оценкам вероятности принадлежности соответствующим классам, и пронормировав
их на единицу, мы получаем окончательные оценки вероятности принадлежности
классам.
Базовая модель PNN-сети может иметь две модификации.
В первом случае мы предполагаем, что пропорции классов в обучающем
множестве соответствуют их пропорциям во всей исследуемой популяции (или так
называемым априорным вероятностям). Например, если среди всех людей больными
являются 2 %, то в обучающем множестве для сети, диагностирующей заболевание,
больных должно быть тоже 2 %. Если же априорные вероятности будут отличаться
от пропорций в обучающей выборке, то сеть будет выдавать неправильный
результат. Это можно впоследствии учесть (если стали известны априорные вероятности),
вводя поправочные коэффициенты для различных классов.
Второй вариант модификации основан на следующей идее. Любая оценка,
выдаваемая сетью, основывается на зашумленных данных и неизбежно будет приводить
к отдельным ошибкам классификации (например, у некоторых больных результаты
анализов могут быть вполне нормальными). Иногда бывает целесообразно считать,
что некоторые виды ошибок обходятся «дороже» других (например, если здоровый
человек будет диагностирован как больной, то это вызовет лишние затраты на его
обследование, но не создаст угрозы для жизни; если же не будет выявлен
действительный больной, то это может привести к смертельному исходу). В такой ситуации
те вероятности, которые выдает сеть, следует домножить на коэффициенты потерь,
отражающие относительную цену ошибок классификации.
Вероятностная нейронная сеть имеет единственный управляющий параметр
обучения, значение которого должно выбираться пользователем, - степень сглаживания
(или отклонение гауссовой функции). Как и в случае RBF-сетей, этот параметр
выбирается из тех соображений, чтобы шапки «определенное число раз перекрывались»
выбор слишком маленьких отклонений приведет к «острым» аппроксимирующим
функциям и неспособности сети к обобщению, а при слишком больших отклонениях
будут теряться детали. Требуемое значение несложно найти опытным путем,
подбирая его так, чтобы контрольная ошибка была как можно меньше. К счастью, PNN-
сети не очень чувствительны к выбору параметра сглаживания.
Наиболее важные преимущества PNN-сетей состоят в том, что выходное
значение имеет вероятностный смысл (и поэтому его легче интерпретировать), и в том, что
сеть быстро обучается. При обучении такой сети время тратится практически только
на то, чтобы подавать ей на вход обучающие наблюдения, и сеть работает настолько
быстро, насколько это вообще возможно.
Существенным недостатком таких сетей является их объем. PNN-сеть
фактически вмещает в себя все обучающие данные, поэтому она требует много памяти и
может медленно работать.
PNN-сети особенно полезны при пробных экспериментах (например, когда
нужно решить, какие из входных переменных использовать), так как благодаря
короткому времени обучения можно быстро проделать большое количество пробных tecTOB.
16.17. Линейная сеть
227
16.16. Обобщенно-регрессионная нейронная сеть
Обобщенно-регрессионная нейронная сеть (GRNN) устроена аналогично
вероятностной нейронной сети (PNN), но она предназначена для решения задач регрессии,
а не классификации (Speckt, 1991; Patterson, 1996; Bishop, 1995). Как и в случае PNN-
сети, в точку расположения каждого обучающего наблюдения помещается гауссова
ядерная функция. Мы считаем, что каждое наблюдение свидетельствует о некоторой
нашей уверенности в том, что поверхность отклика в данной точке имеет
определенную высоту, и эта уверенность убывает при отходе в сторону от точки. GRNN-сеть
копирует внутрь себя все обучающие наблюдения и использует их для оценки
отклика в произвольной точке. Окончательная выходная оценка сети получается как
взвешенное среднее выходов по всем обучающим наблюдениям, где величины весов
отражают расстояние от этих наблюдений до той точки, в которой производится
оценивание (и, таким образом, более близкие точки вносят больший вклад в оценку).
Первый промежуточный слой сети GRNN состоит из радиальных элементов.
Второй промежуточный слой содержит элементы, которые помогают оценить
взвешенное среднее. Для этого используется специальная процедура. Каждый выход
имеет в этом слое свой элемент, формирующий для него взвешенную сумму. Чтобы
получить из взвешенной суммы взвешенное среднее, эту сумму нужно поделить на
сумму весовых коэффициентов. Последнюю сумму вычисляет специальный элемент
второго слоя. После этого в выходном слое производится собственно деление (с
помощью специальных элементов «деления»). Таким образом, число элементов во
втором промежуточном слое на единицу больше, чем в выходном слое. Как правило,
в задачах регрессии требуется оценить одно выходное значение, и, соответственно,
второй промежуточный слой содержит 2 элемента.
Можно модифицировать GRNN-сеть таким образом, чтобы радиальные элементы
соответствовали не отдельным обучающим случаям, а их кластерам. Это уменьшает
размеры сети и увеличивает скорость обучения. Центры для таких элементов можно
выбирать с помощью любого предназначенного для этой цели алгоритма.
Достоинства и недостатки у сетей GRNN в основном такие же, как и у сетей PNN -
единственное различие в том, что GRNN используются в задачах регрессии, a PNN - в задачах
классификации. GRNN-сеть обучается почти мгновенно, но может получиться
большой и медленной (хотя здесь, в отличие от PNN, не обязательно иметь по одному
радиальному элементу на каждый обучающий пример, их число все равно будет
большим). Как и сеть RBF, сеть GRNN не обладает способностью экстраполировать данные.
16.17. Линейная сеть
Согласно общепринятому в науке принципу, если более сложная модель не дает
лучших результатов, чем более простая, то из них следует предпочесть вторую.
В терминах аппроксимации отображений самой простой моделью будет линейная,
в которой подгоночная функция определяется гиперплоскостью. В задаче
классификации гиперплоскость размещается таким образом, чтобы она разделяла собой 2 кла-
са (линейная дискриминантная функция); в задаче регрессии гиперплоскость должна
проходить через заданные точки. Линейная модель обычно записывается с помощью
матрицы NxN и вектора смещения размера N.
228
16. Построение нейросетевой экспертной системы
На языке нейронных сетей линейная модель представляется сетью без
промежуточных слоев, которая в выходном слое содержит только линейные элементы
(т. е. элементы с линейной функцией активации). Веса соответствуют элементам
матрицы, а пороги - компонентам вектора смещения. Во время работы сеть
фактически умножает вектор входов на матрицу весов, а затем к полученному вектору
прибавляет вектор смещения.
Линейная сеть является хорошей точкой отсчета для оценки качества
построенных Вами нейронных сетей. Может оказаться так, что задачу, считавшуюся очень
сложной, можно успешно не только нейронной сетью, но и простым линейным
методом. Если же в задаче не так много обучающих данных, то, вероятно, просто нет
оснований использовать более сложные модели.
16.18. Сеть Кохонена
Сети Кохонена принципиально отличаются от всех других типов сетей. В то
время как все остальные сети предназначены для задач с управляемым обучением, сети
Кохонена главным образом рассчитана на неуправляемое обучение (Kohonen, 1982;
Haykin, 1994; Patterson, 1996; Fausett, 1994).
При управляемом обучении наблюдения, составляющие обучающие данные,
вместе с входными переменными содержат также и соответствующие им выходные
значения, и сеть должна восстановить отображение, переводящее первые во вторые.
В случае же неуправляемого обучения обучающие данные содержат только значения
входных переменных.
На первый взгляд это может показаться странным. Как сеть сможет чему-то
научиться, не имея выходных значений? Ответ заключается в том, что сеть Кохонена
учится понимать саму структуру данных.
Одно из возможных применений таких сетей - разведочный анализ данных. Сеть
Кохонена может распознавать кластеры в данных, а также устанавливать близость
классов. Таким образом пользователь может улучшить свое понимание структуры
данных, чтобы затем уточнить нейросетевую модель. Если в данных распознаны
классы, то их можно обозначить, после чего сеть сможет решать задачи
классификации. Сети Кохонена можно использовать и в тех задачах классификации, где классы
уже заданы, - тогда преимущество будет в том, что сеть сможет выявить сходство
между различными классами.
Другая возможная область применения - обнаружение новых явлений. Сеть
Кохонена распознает кластеры в обучающих данных и относит все данные к тем или
иным кластерам. Если после этого сеть встретится с набором данных, непохожим
ни на один из известных образцов, то она не сможет классифицировать такой набор
и тем самым выявит его новизну.
Сеть Кохонена имеет всего 2 слоя: входной и выходной, составленный из
радиальных элементов (выходной слой называют также слоем топологической карты).
Элементы топологической карты располагаются в некотором пространстве - как
правило двумерном.
Обучается сеть Кохонена методом последовательных приближений. Начиная
со случайным образом выбранного исходного расположения центров, алгоритм
постепенно улучшает его так, чтобы улавливать кластеризацию обучающих данных.
В некотором отношении эти действия похожи на алгоритмы выборки из выборки
16.18. Сеть Кохонена
229
и К-средних, которые используются для размещения центров в сетях RBF и GRNN,
и действительно, алгоритм Кохонена можно использовать для размещения центров
в сетях этих типов. Однако, данный алгоритм работает и на другом уровне.
Помимо того, что уже сказано, в результате итеративной процедуры обучения
сеть организуется таким образом, что элементы, соответствующие центрам,
расположенным близко друг от друга в пространстве входов, будут располагаться близко
друг от друга и на топологической карте. Топологический слой сети можно
представлять себе как двумерную решетку, которую нужно так отобразить в N-мерное
пространство входов, чтобы по возможности сохранить исходную структуру данных.
Конечно же, при любой попытке представить N-мерное пространство на плоскости
будут потеряны многие детали; однако, такой прием иногда полезен, так как он
позволяет пользователю визуализировать данные, которые никаким иным способом
понять невозможно.
Основной итерационный алгоритм Кохонена последовательно проходит одну за
другой ряд эпох, при этом на каждой эпохе он обрабатывает каждый из обучающих
примеров, и затем применяет следующий алгоритм:
• Выбрать выигравший нейрон (т. е. тот, который расположен ближе всего к
входному примеру).
• Скорректировать выигравший нейрон так, чтобы он стал более похож на этот
входной пример (взяв взвешенную сумму прежнего центра нейрона и
обучающего примера).
В алгоритме при вычислении взвешенной суммы используется постепенно
убывающий коэффициент скорости обучения, с тем, чтобы на каждой новой эпохе
коррекция становилась все более тонкой. В результате положение центра установится
в некоторой позиции, которая удовлетворительным образом представляет те
наблюдения, для которых данный нейрон оказался выигравшим.
Свойство топологической упорядоченности достигается в алгоритме с помощью
дополнительного использования понятия окрестности. Окрестность - это несколько
нейронов, окружающих выигравший нейрон. Подобно скорости обучения, размер
окрестности убывает со временем, так что вначале к ней принадлежит довольно
большое число нейронов (возможно, почти вся топологическая карта); на самых
последних этапах окрестность становится нулевой (т. е. состоящей только из самого
выигравшего нейрона). На самом деле в алгоритме Кохонена корректировка применяется
не только к выигравшему нейрону, но и ко всем нейронам из его текущей окрестности.
Результатом такого изменения окрестностей является то, что изначально
довольно большие участки сети «перетягиваются» - и притом заметно - в сторону
обучающих примеров. Сеть формирует грубую структуру топологического порядка, при
которой похожие наблюдения активируют группы близко лежащих нейронов на
топологической карте. С каждой новой эпохой скорость обучения и размер окрестности
уменьшаются, тем самым внутри участков карты выявляются все более тонкие
различия, что в конце концов приводит к тонкой настройке каждого нейрона. Часто
обучение умышленно разбивают на 2 фазы: более короткую, с большой скоростью
обучения и большими окрестностями, и более длинную с малой скоростью обучения
и нулевыми или почти нулевыми окрестностями.
После того, как сеть обучена распознаванию структуры данных, ее можно
использовать как средство визуализации при анализе данных. С помощью данных, вы-
230
16. Построение нейросетевой экспертной системы
водимых в окне Частоты выигрышей - Win Frequencies, (где для каждого нейрона
подсчитывается, сколько раз он выигрывал при обработке обучающих примеров),
можно определить, разбивается ли карта на отдельные кластеры. Можно также
обрабатывать отдельные наблюдения и смотреть, как при этом меняется топологическая
карта, - это позволяет понять, имеют ли кластеры какой-то содержательный смысл
(как правило, при этом приходится возвращаться к содержательному смыслу задачи,
чтобы установить, как соотносятся друг с другом кластеры наблюдений). После того,
как кластеры выявлены, нейроны топологической карты помечаются
содержательными по смыслу метками (в некоторых случаях помечены могут быть и отдельные
наблюдения). После того, как топологическая карта в описанном здесь виде
построена, на вход сети можно подавать новые наблюдения. Если выигравший при этом
нейрон был ранее помечен именем класса, то сеть осуществляет классификацию. В
противном случае считается, что сеть не приняла никакого решения.
При решении задач классификации в сетях Кохонена используется так
называемый порог доступа. Ввиду того, что в такой сети уровень активации нейрона есть
расстояние от него до входного примера, порог доступа играет роль максимального
расстояния, на котором происходит распознавание. Если уровень активации
выигравшего нейрона превышает это пороговое значение, то сеть считается не принявшей
никакого решения. Поэтому, когда все нейроны помечены, а пороги установлены на
нужном уровне, сеть Кохонена может служить как детектор новых явлений (она
сообщает о непринятии решения только в том случае, если поданный ей на вход случай
значительно отличается от всех радиальных элементов).
Идея сети Кохонена возникла по аналогии с некоторыми известными свойствами
человеческого мозга. Кора головного мозга представляет собой большой плоский
лист (площадью около 0.5 кв.м.; чтобы поместиться в черепе, она свернута
складками) с известными топологическими свойствами (например, участок, ответственный
за кисть руки, примыкает к участку, ответственному за движения всей руки, и таким
образом все изображение человеческого тела непрерывно отображается на эту
двумерную поверхность).
16.19. Таблица статистик классификации
При выборе порогов принятия/отвержения и оценке способностей сети к
классификации очень помогает информация, содержащаяся в окне Статистики
классификации - Classification Statistics. В нем указывается, сколько наблюдений было
классифицировано правильно, сколько неправильно или вообще не классифицировано.
Кроме того, выдается информация о том, сколько наблюдений каждого класса было
отнесено к другим классам. Все эти данные выдаются отдельно для обучающего,
контрольного и тестового множеств.
16.20. Отбор переменных и понижение размерности
До сих пор, говоря о построении и конструировании сети, мы предполагали, что
входной и выходной слои заданы, т. е., что мы уже знаем, какие переменные будут
подаваться на вход сети, и что будет ее выходом. То, какие переменные будут
выходными, известно всегда (по крайней мере в случае управляемого обучения). Что же
касается входных переменных, их правильный выбор порой представляет большие
16.20. Отбор переменных и понижение размерности
231
трудности (Bishop, 1995). Часто мы не знаем заранее, какие из входных переменных
действительно полезны для решения задачи, и выбор хорошего множества входов
бывает затруднен целым рядом обстоятельств:
• Проклятие размерности. Каждый дополнительный входной элемент сети - это
новая размерность в пространстве данных. С этой точки зрения становится
понятно следующее: чтобы достаточно плотно «заселить» TV-мерное пространство
и «увидеть» структуру данных, нужно иметь довольно много точек. Необходимое
число точек быстро возрастает с ростом размерности пространства (грубо говоря,
как 2**N для большинства методов). Большинство типов нейронных сетей (в
частности, многослойный персептрон MLP) в меньшей степени страдают от
проклятия размерности, чем другие методы, потому что сеть умеет следить за
проекциями участков многомерного пространства в пространства малой размерности
(например, если все веса, выходящие из некоторого входного элемента, равны
нулю, то MLP-сеть полностью игнорирует эту входную переменную). Тем не
менее, проклятие размерности остается серьезной проблемой, и качество работы
сети можно значительно улучшить, исключив ненужные входные переменные.
На самом деле, чтобы уменьшить эффект проклятия размерности иногда бывает
целесообразно исключить даже те входные переменные, которые несут в себе
некоторою (небольшую) информацию.
• Внутренние зависимости между переменными. Было бы очень хорошо, если бы
каждую переменную - кандидата на то, чтобы служить входом сети, можно было
бы независимо оценить на «полезность», а затем отобрать самые полезные
переменные. К сожалению, как правило, это бывает невозможно сделать, и две или
более взаимосвязанных переменных могут вместе нести существенную
информацию, которая не содержится ни в каком их подмножестве. Классическим
примером может служить задача с двумя спиралями, в которой точки данных двух
классов расположены вдоль двух переплетающихся двумерных спиралей. Ни
одна из переменных в отдельности не несет никакой полезной информации (классы
будут выглядеть совершенно перемешанными), но глядя на обе переменные
вместе, классы легко разделить. Таким образом, в общем случае переменные нельзя
отбирать независимо.
• Избыточность переменных. Часто бывает так, что одна и та же информация
в большей или меньшей степени повторяется в разных переменных. Например,
данные о росте и весе человека, как правило, несут в себе сходную информацию,
поскольку они сильно коррелированы. Может оказаться так, что в качестве
входов достаточно взять лишь часть из нескольких коррелированных переменных,
и этот выбор может быть произвольным. В таких ситуациях вместо всего множества
переменных лучше взять их часть - этим мы избегаем проклятия размерности.
Итак, выбор входных переменных - это исключительно важный этап при
построении нейронной сети. Очень полезными оказываются вероятностные и
обобщенно-регрессионные сети. Несмотря на то, что они работают медленнее более
компактных MLP и RBF сетей, они обучаются почти мгновенно, и это важно, поскольку при
переборе большого числа комбинаций входных переменный приходится каждый раз
строить новые сети. Кроме того, PNN и GRNN (как и RBF) - это радиальные сети
(в первом слое они имеют радиальные элементы, и аппроксимирующие функция
строятся в виде комбинаций гауссовых функций). При отборе входных переменных
232
16. Построение нейросетевой экспертной системы
это является преимуществом, поскольку радиальные сети в меньшей степени
страдают от проклятия размерности, чем сети, построенные на линейных элементах.
Чтобы понять причину этого, рассмотрим, что произойдет, если мы добавим
в сеть новую, возможно совершенно несущественную входную переменную. Сеть
на линейных элементах, например MLP, может научиться присваивать весам,
идущим от этой переменной, нулевые значения, что означает игнорирование переменной
(реально это происходит так: изначально малые веса этой переменной так и остаются
малыми, а веса содержательных входных переменных меняются нужным образом).
Радиальная сеть типа PNN или GRNN не может позволить себе такую роскошь:
кластеры, образующиеся в пространстве небольшого числа существенных переменных,
будут «размазаны» по направлениям несущественных размерностей - для учета
разброса по несущественным направлениям требуется большее число элементов. Сеть,
в большей степени страдающая от наличия плохих входных данных, имеет
преимущество, когда мы стремимся избавиться то этих плохих данных.
Существует и другой подход к проблеме размерности, который может
использоваться как альтернатива или как дополнение к методам отбора переменных: это
понижение размерности. Суть его состоит в том, что исходная совокупность
переменных преобразуется в новую совокупность, состоящую из меньшего числа
переменных, но при этом (как мы надеемся) содержащую по возможности всю информацию,
заложенную в, исходных данных. В качестве примера рассмотрим данные, все точки
которых расположены на некоторой плоскости в трехмерном пространстве.
Истинная размерность данных равна двум (поскольку вся информация на самом деле
содержится в двумерном подпространстве). Если мы сумеем обнаружить эту плоскость,
то на вход нейронной сети можно будет подавать входные данные меньшей
размерности, и будет больше шансов на то, что такая сеть будет работать правильно.
Самый распространенный метод понижения размерности - это анализ главных
компонент (Bishop, 1995; см. также Факторный анализ). Метод состоит в следующем:
к данным применяется линейное преобразование, при котором направлениям новых
координатных осей соответствуют направления наибольшего разброса исходных
данных. Как правило, уже первая компонента отражает большую часть информации,
содержащейся в данных. Поскольку анализ главных компонент (АГК) представляет
собой линейный метод, его можно реализовать с помощью линейной сети. Очень
часто метод АГК выделяет из многомерных исходных данных совсем небольшое
число компонент^ сохраняя при этом структуру информации.
Один из недостатков метода главных компонент (АГК) состоит в том, что это
чисто линейный метод, и из-за этого он может не учитывать некоторые важные
характеристики структуры данных. Поэтому, чтобы восстановить свои входные
данные, сеть должна научиться представлять их в более низкой размерности. Сеть
«впихивает» наблюдения в формат промежуточного слоя и только потом выдает их
на выходе. После обучения автоассоциативной сети ее внешний интерфейс может
быть сохранен и использован для понижения размерности. Как правило, в качестве
автоассоциативной сети берется многослойный персептрон с тремя промежуточными
слоями. При этом средний слой отвечает за представление данных в малой
размерности, а 2 других скрытых слоя служат соответственно для нелинейного
преобразования входных данных в средний слой и выходов среднего слоя в выходной слой.
Автоассоциативная сеть с единственным промежуточным слоем может выполнять
только линейное понижение размерности, и фактически осуществляет АГК в стандартном
варианте.
17. ИСПОЛЬЗОВАНИЕ КВАНТОВЫХ
КОМПЬЮТЕРОВ ДЛЯ СОЗДАНИЯ ЭКСПЕРТНЫХ
СИСТЕМ НОВОГО ПОКОЛЕНИЯ
17.1. История развития квантовых компьютеров
В современной науке отрабатывается много различных идей и теорий, многие
из которых кажутся совершенно фантастическими, но которые открывают со
временем новые возможности, недоступные теперь. Присматриваясь к ним, можно
разглядеть контуры будущего, в том числе весьма отдаленного. На этом тщательном
изучении научных разработок основаны великолепные прогнозы будущего, созданные
Жюлем Верном и Станиславом Лемом. Одной из таких идей, которые развиваются
в настоящее время, является развитие квантового счисления и квантовых компьютеров.
Квантовое счисление началось с опыта с интерференцией света, создаваемого
излучением лазера, пропускаемого через перегородку с четырьмя очень узкими
отверстиями. Излучение подавалось таким образом, что свет излучается буквально
отдельными квантами. В ходе такого эксперимента выявляется удивительная картина:
свет, испускаемый малым количеством квантов, который должен был бы свободно
пройти через очень узкую щель и оставить узкую яркую полоску света, по толщине
точно соответствующую ширине прорези. Но этого не происходит, и полосы света
на экране видны размытыми. Свет на что-то наталкивается и рассеивается.
Эти квантовые эффекты были известны достаточно давно, но исследователи
видели в них проблему, препятствующую решению ряда практических задач, к
примеру, задач по миниатюризации микросхем. Физик из Принстонского университета
ХьюЭверетт в 1957 г. предложил оригинальное объяснение квантовым эффектам.
Он заявил, что подобные эффекты вызывают теневые фотоны, т. е. фотоны, которые
принадлежат другим вселенным. Они не существуют в нашей вселенной, но могут
быть обнаружены в потоке фотонов. Это так называемая многомировая
интерпретация квантовой механики. Эверетту эта теория обошлась расставанием с
теоретической физикой. Хью Эверетт умер в 1982 г., став известным консультантом,
аналитиком и миллионером.
Другой известный физик, Нобелевский лауреат Ричард Фейман, участник
американского атомного проекта и испытаний первой атомной бомбы, в 1982 г. пошел
дальше и предложил совершенно фантастическую идею - использовать
многомировую интерпретацию Эверетта для создания вычислительных машин. С этой идеей
Фейман свободно входит в десятку самых фантастических идей в физике, и имеет
весьма неслабые шансы побороться за лидерство. Учитывая его заслуги в атомном
проекте, и что он же впервые выдвинул идею манипулирования атомами, как
предметами, чем положил начало нанотехнологий, можно сказать, что Фейман оказал
огромное влияние на развитие науки и техники во второй половине XX в. Итак, была
выдвинута фантастическая идея - создать вычислительную машину, работающую
с использованием параллельных вселенных. Однако, несмотря на всю
фантастичность этой идеи, первые образцы квантовых вычислительных машин были созданы
и испытаны.
234
/ 7. Использование квантовых компьютеров для создания экспертных систем
Что такое устройство для произведения квантовых вычислений? Это устройство
должно обладать способностью испускать отдельные, одинаковые кванты.
Информация в двоичном коде, единица и ноль, передаются квантами. К счастью, такое
устройство в технологии имеется - это лазер. Он испускает монохромное (одной длины
волны), когерентное (одной частоты) излучение. Если описывать устройство
квантового компьютера, его принципиальную схему, то это можно сделать так. Квантовый
компьютер представляет собой соединение обычного компьютера с лазером. По
специальной программе обычная электронно-вычислительная машина программирует
излучение лазера. Это излучение отражается в системе зеркал, позволяющих
проследить буквально за каждым квантом света, и считывается фотоэлементами, результаты
чего обрабатываются в электронно-вычислительной машине. Это лишь грубое
описание принципиальной схемы квантового компьютера, основанное на работе самых
первых лабораторных образцов, и далекое от тонкостей и нюансов этой сложной
машины в том виде, в каком она создается сейчас. Ученые вскоре перешли от
классических опытов с лазером к исследованию управления субатомными частицами. Это
оказался весьма продуктивный путь и почти все созданные к настоящему времени
прототипы квантовых компьютеров основаны на управлении субатомными
частицами некоторых элементов (ниобия, фосфора) с помощью магнитных полей, и
измерению изменений магнитных полей, которые переводятся в результат счисления.
17.2. Физический смысл квантовых вычислений
В чем физический смысл квантовых вычислений? К сожалению, в этом вопросе
лучше всего разбирается лишь один человек - Дэвид Дойч, автор книги «Структура
реальности», и передать точный смысл его теории довольно трудно. Но автор дал
краткое определение принципу квантового счисления:
«Квантовое вычисление, которое сейчас находится в зачаточном состоянии, -
качественно новый этап этого движения. Это будет первая технология, которая
позволит выполнять полезные задачи при участии параллельных вселенных.
Квантовый компьютер сможет распределить составляющие сложной задачи между
множеством параллельных вселенных, а затем поделиться результатами».
Долгое время идея квантового компьютера считалась ненаучной фантастикой,
пока в 1994 г. Питер Шор из исследовательского подразделения AT&T Research
описал специфичный квантовый алгоритм для разбиения на простые множители
(факторизации) больших чисел. В 1998 г. в Калифорнийском университет Беркли под
руководством доктора Айзека Чуанга был создан первый 2-кубитовый квантовый
компьютер. Этот компьютер позволял реализовать 4 вычислительных потока.
В феврале 2007 г. канадская компания D-Wave Systems представила первый
работающий прототип квантового компьютера Orion. Презентация работающего в
Ванкувере компьютера производилась в Силиконовой долине. Компьютер представлял
собой 16-кубитовый кремниевый чип, состоящий из кристалла ниобия, помещенного
в катушку индуктивности. Работа квантового компьютера основана на измерении
магнитных полей и переводу их изменений, вызванных ниобием, в результат
счисления. Этот компьютер функционирует при температуре - 273,15 ° С и охлаждается
жидким гелием.
«Созданная система имеет разрядность всего 16 кубитов, что не превышает
возможностей компьютеров обычной архитектуры, но это еще только первый
17.3. Отечественные разработки
235
прототип, лишь демонстрирующий возможности будущего квантового
компьютера. В будупцем сотрудники компании будут работать над повышением мощности
квантовых процессоров, которую уже в ближайшие несколько лет можно довести
до 1000 квантовых разрядов. После чего у нас есть планы выпустить такие
процессоры на коммерческий рынок», - заявил глава компании D-Wave Херб Мартин.
16-разрядный квантовый компьютер позволяет реализовать 65 536 вычислительных
потоков.
17.3. Отечественные разработки
Работают над квантовыми компьютерами и в «России. Институт теоретической
физики им. Ландау РАН и Физико-технологический институт РАН проводят опыты
с разной архитектурой квантовых компьютеров, с разными материалами.
«Разработка квантовых компьютеров - очень и очень трудная задача. Мы
движемся сразу по нескольким направлениям исследований, разрабатываем разные
архитектуры квантовых процессоров и смотрим, какие из них будут наиболее
эффективными. Кроме того, мы следим и за творчеством коллег из-за океана. Так вот, та
информация, что имеется, склоняет нас к мысли, что устройство, представленное
D-Wave, не является полноценным квантовым компьютером. Канадцы поспешили
объявить миру, что совершили революцию, но на деле это всего лишь
преувеличение... По нашим предположениям, такой компьютер может появиться примерно
к 2030 г. И пока рано рисовать радужные картины», - заявил директор Физико-
технологического института РАН, академик Александр Орликовский.
Но нужно сказать, что пока нет четкого определения, что понимать под
квантовыми компьютерами. Разные компании и институты называют так совершенно
несхожие разработки. К примеру, IBM экспериментирует с субатомными частицами,
в которых двоичный код соответствует разным направлениям вращения частицы.
В силу законов квантовой механики на субатомном уровне, квантовый бит может
иметь промежуточное состояние. Институт теоретической физики им. Ландау
экспериментирует с миниатюрными сверхпроводимыми кольцами, в которых двоичный
код соответствует разным направлениям тока, - квантовыми регистрами, которые
переключаются с помощью магнитного поля. Это достаточно интересные разработки
в области разработки нанопроцессоров, в которых используются принципы
квантовой механики. Пока эксперименты не пошли дальше нескольких квантовых
регистров. Американцы в 2000 г. сумели создать рабочую структуру из 5 атомов.
Канадцы планируют закрепить успех и создать квантовые компьютеры с 512-ку-
битовой системой, а потом и 1024-кубитовой системой. Эта задача может быть
реализована в 2008 г., хотя другие специалисты в этой области весьма скептически
относятся к таким заявлениям.
В чем перспективность квантовых счислений, если не вдаваться в чистую
теорию? В том, что квантовые компьютеры смогут решать целые классы задач,
которые сейчас являются очень тяжелыми и трудно обрабатываемыми. Они же
смогут решать их очень быстро. В частности, наиболее перспективной областью,
в которую в основном идут средства, является создание квантовой криптографии,
т. е. шифров. Если не вдаваться в подробности, то квантовая криптография говорит
о следующем: перехват посланного сообщения сразу же становится известным. Это
означает, что факт шпионажа не заметить нельзя. Перехваченное сообщение, зашиф-
236
/ 7 Использование квантовых компьютеров для создания экспертных систем
рованное квантовым компьютером, утрачивает свою структуру и становится
непонятным для адресата. Поскольку квантовая криптография эксплуатирует природу
реальности, а не человеческие изыски, то скрыть факт шпионажа становится так же
невозможно, как силой воли проигнорировать, скажем, гравитацию. Появление
шифрования такого рода поставит окончательную точку в борьбе криптографов за наиболее
надежные способы шифрования сообщений. Кроме того, квантовый компьютер,
благодаря своим качествам, способен разложить 250-значное число не за 800-1000 лет,
как современные самые мощные электронно-вычислительные машины, а за 30 минут.
С такой машиной спецслужбы могут быстро взломать любой, самый сложный шифр.
Вот поэтому в эти исследования квантовой криптографии вкладываются большие
средства, и значительная часть исследований в этой области сейчас осуществляется
на средства оборонных ведомств и спецслужб.
У квантовых компьютеров есть еще одна сфера применения, огромное значение
которой понятно уже сегодня. Гигантская вычислительная мощь квантового
компьютера позволит переложить на плечи машины самую разнообразную
интеллектуальную деятельность. Машина может не только накапливать, хранить и обрабатывать
информацию, но и производить с ней операции, совершенно недоступные даже
самым мощным современным компьютерам.
Что имеется в виду? Квантовые компьютеры позволят создать экспертные
системы нового поколения. Экспертная система - это компьютерная система, которая
использует знания одного или нескольких экспертов в формализованном виде, а также
логику принятия решений. Эта система предназначена для принятия обоснованного
решения в тяжелых условиях, когда не хватает времени, опыта, знаний, информации.
На введенный запрос машина дает квалифицированную консультацию или подсказку.
ЛИТЕРАТУРА
1.Базы знаний интеллектуальных систем / Т.А. Гаврилова, В.Ф. Хорошевский.
СПб.: Питер, 2001.384 с.
2. Минский М. Фреймы и представление знаний. М.: Энергия, 1979. 205 с.
3. Поспелов Д.А. Моделирование рассуждений. Опыт анализа мыслительных актов.
М.: Радио и связь, 1989. 180 с.
4. Костров Б.В., Ручкин В.Н., Фулин В.А. Основы искусственного интеллекта.
М.: Диалог-МИФИ, 2007. 180 с.
5. Костров Б.В., Ручкин В.Н., Фулин В.А. Искусственный интеллект и
робототехника. М.: ДИАЛОГ-МИФИ, 2008. 224 с.
6. Справочник по искусственному интеллекту. В 3-х т. // Под ред. Э.В. Попова
и Д.А. Поспелова. М.: Радио и связь, 1990. 280 с.
7. Форсайт Ф. Экспертные системы. Принципы работы и примеры. М.: Радио
и связь, 1989. 170 с.
8. Хант Д. Искусственный интеллект. М.: Мир. 1986. 224 с.
9. Vinge V. The Coming Technological Singularity: How to Survive in the Post-Human
Era, 1993.
10. Панов А. Д. Сингулярность Дьяконова // История и Математика: Проблемы
периодизации исторических макропроцессов. М.: КомКнига, 2006. С. 31-37.
11. Kurzwerl R. The Singularity Is Near. N. Y.: Viking, 2005.
12. Усков A.A., Кузьмин A,B. Интеллектуальные технологии управления.
Искусственные нейронные сети и нечеткая логика. М.: Горячая линия- Телеком. 2004. 144 с.
13. Рутковская Д., Пилиньский М., Рутковский Л. Нейронные сети, генетические
алгоритмы и нечеткие системы. М.: Горячая линия - Телеком. 2004. 452с.
14. Ярушкина Н.Г. Основы теории нечетких и гибридных систем. Учебное пособие.
Финансы и статистика, 2004. 320с.
15. Алиев Р.А., Абдикеев Н.М., Шахназаров М.М. Производственные системы с
искусственным интеллектом. М: Радио и связь. 1990. 264 с.
16. Алтунин А.Е., Семухин М.В. Модели и алгоритмы принятия решений в нечетких
условиях. Тюмень: Изд-во Тюменского государственного университета, 2000. 352 с.
17. Беллман Р., Заде Л. Принятие решений в расплывчатых условиях. В кн.: Вопросы
анализа и процедуры принятия решений. М.: Мир, 1976. С. 172-215.
18. Берштейн Л.С., Боженюк А.В. Нечеткие модели принятия решений: дедукция,
индукция, аналогия. Таганрог: Изд-во ТРТУ, 2001. 110 с.
19. Борисов А.Н., Алексеев А.В., Меркурьева Г.В. и др. Обработка нечеткой
информации в системах принятия решений. М: Радио и связь. 1989. 304 с.
20. Борисов А.Н., Крумберг О.А., Федоров И.П. Принятие решений на основе
нечетких моделей. Примеры использования. Рига: Зинатне, 1990. 184 с.
21. Бочарников В.П. Fuzzy-Технология: математические основы практика
моделирования в экономике. Санкт-Петербург, 2001, 328 с.
238
Литература
22. Вощинин А.П., Сотиров Г.Р. Оптимизация в условиях неопределенности. Изд-во
МЭИ (СССР) и Техника (НРБ), 1989. 224 с.
23. Круглое В.В., Дли М.И., Годунов Р.Ю. Нечеткая логика и искусственные
нейронные сети. Физматлит, 2001. 224 с.
24. Мелихов А.Н., Берштейн Л.С., Коровин С.Я. Ситуационные советующие системы
с нечеткой логикой. М.: Наука, 1990. 272 с.
25. Мешалкин В.П. Экспертные системы в химической технологии. М.: Химия, 1995.
368 с.
26. Митюшкин Ю.И., Мокин Б.И., Ротштейн А.П. Soft-Computing: идентификация
закономерностей нечеткими базами знаний. Винница: УНШЕРСУМ-Вшниця,
2002. 145 с.
27. Нечеткие множества в моделях управления и искусственного интеллекта /
А.Н. Аверкин, И.З. Батыршин, А.Ф. Блишун, В.Б. Силов, В.Б. Тарасов. Под ред.
Д.А. Поспелова. М.: Наука. Гл. ред. физ.-мат. лит., 1986. 312 с.
28. Орлов А.И. Задачи оптимизации и нечеткие переменные. М.: Знание, 1980. 64 с.
29. Орловский С.А. Проблемы принятия решений при нечеткой информации.
М.: Наука, 1981.206 с.
30. Осуга С. Обработка знаний. М.: Мир, 1989. 293 с.
31. Представление и использование знаний. Пер. с япон. / Под. ред. X. Уэно,
М. Исудзука. М.: Мир, 1989. 220 с.
32. Прикладные нечеткие системы / Асаи К., Ватада Д., Иваи С. и др. / Под ред.
Т. Тэрано, К. Асаи, М. Сугено. М.: Мир, 1993. 368 с.
33. Ротштейн А.П. Интеллектуальные технологии идентификации: нечеткая логика,
генетические алгоритмы, нейронные сети. Винница: УНИВЕРСУМ-Винница,
1999. 320 с.
34. Ротштейн А.П. Медицинская диагностика на нечеткой логике. Винница: Конти-
нент-ПРИМ, 1996. 132 с.
35. Ротштейн А.П., Штовба С.Д. Нечеткая надежность алгоритмических процессов
Винница: Континент-ПРИМ, 1997. 142 с.
36. Ротштейн А.П., Штовба С.Д. Проектирование нечетких баз знаний:
лабораторный практикум и курсовое проектирование. Учебное пособие. Винница:
Винницкий государственный технический университет, 1999. 65 с.
37. Усков А.А., Круглов В.В. Интеллектуальные системы управления на основе
методов нечеткой логики. Смоленск: Смоленская городская типография, 2003. 177 с.
38. Уткин Л.В., Шубинский И.Б. Нетрадиционные методы оценки надежности
информационных систем. СПб.: Любавич, 2000. 173 с.
Магазин-салон
«НОВАЯ ТЕХНИЧЕСКАЯ КНИГА»
190005, Санкт-Петербург,
Измайловский пр., 29
В МАГАЗИНЕ ПРЕДСТАВЛЕНА ЛИТЕРАТУРА
по компьютерным технологиям, радиотехнике и электронике,
физике и математике, строительству и архитектуре, транспорту,
машиностроению и другим естественно-научным
и техническим направлениям
Низкие цены
Прямые поставки от издательств
Ежедневное пополнение ассортимента
Подарки и скидки покупателям
И газик роб иммигс ШЖ \ U <:
без обеденного ntpepi в i
BUXogHoi ден! - весиреав и ^:
Тел.: (812) 251-41-10, e-mail: trade@techkniga.com
www.bhv.ru
Уважаемые господа!
Издательство «БХВ-Петербург»
приглашает специалистов в области компьютерных систем
и информационных технологий для сотрудничества в качестве
авторов книг по компьютерной тематике.
• Если вы знаете и умеете то, что не знают и не умеют другие;
• Если вам не нравится то, что уже написано;
• Если у вас много идей и творческих планов
Ждем в нашем издательстве как опытных,
так и начинающих авторов и надеемся
на плодотворную совместную работу.
С предложениями обращайтесь
к главному редактору Екатерине Кондуковой.
Универсальный
i скуссmвенныU интеллект
I экспертные системы
Ручкин Владимир Николаевич, профессор кафедры информатики и
вычислительной техники Рязанского государственного университета
имени С. А. Есенина, профессор кафедры электронных
вычислительных машин Рязанского государственного радиотехнического
университета, с 1993 по 2004 гг. заведующий кафедрой Высшей и прикладной
математики Рязанского института Московского открытого
государственного университета, автор книг «Архитектура микропроцессорных
систем», «Архитектура компьютерных сетей», «Основы
искусственного интеллекта», «Искусственный интеллект и робототехника», 25 лет
ведет научно-педагогическую деятельность, автор около 200 научных
работ и учебно-методических пособий.
Фулин Владимир Андреевич, старший преподаватель кафедры
информатики и вычислительной техники Рязанского государственного
университета имени С. А. Есенина. Область научных интересов - объектно-
ориентированное программирование, разработка экспертных систем в
среде Visual Prolog, компьютерная графика.
«-ПЕТЕРБУРГ
10005,
анкт-Петербург,
)майловский пр., 29
mail: mail@bhv.ru
lernet: www.bhv.ru
П.: (812) 251-42-44
!Л./факс:
12)320-01-79
В книге рассматривается история развития искусственного интеллекта,
методы поиска решений в пространстве состояний, модели
представления знаний, теории высказываний и предикатов. Приводятся данные
и рекомендации по использованию интегрированной среды
программирования баз знаний, принципы построения нейросетевой
экспертной системы. Дается классификация экспертных систем и примеры их
использования. Приводится методика представления нечетких знаний,
материалы по использованию квантовых компьютеров для создания
современных систем искусственного интеллекта.
I ISBN 978-5-9775-0460-7
9 "7 85977 "504607