- •Введение
- •Глава 1. Ведение в системы искусственного интеллекта
- •1.1. Архитектура систем искусственного интеллекта
- •1.2. База знаний и данных
- •1.1.1 Понятие модели
- •1.1.2. Логические модели
- •1.1.3 Модели знаний на основе продукций
- •1.1.4 Фреймовая модель знаний
- •1.1.5 Семантические сети
- •1.3. Машина вывода
- •1.3.1. Понятие формальной системы
- •Примеры стратегии вывода
- •Как функционирует машина вывода
- •1.4. Извлечение знаний и обучение
- •1.4.1. Извлечение знаний от многих экспертов
- •1.4.2 Проблема непротиворечивости формализованной базы знаний
- •1.5. Обучение системы
- •1.6. Интерфейс с пользователем
- •1.7. Организация работы
- •1.8. Инструментальные средства создания систем искусственного интеллекта
- •Языки программирования
- •1.8.2. Языки продукционного программирования
- •1. 8. 3. Языки инженерии знаний и инструментальные системы
- •1.8.3.1. Система vpExpert
- •1.8.3.2. Система kas
- •1.8.3.3. Система Expert-Ease
- •Глава 2. База знаний
- •2.1. Методы извлечения знаний
- •2.1.1. Классификация методов извлечения знаний
- •2.1.2. Пассивные методы
- •2.1.2.1. Наблюдения
- •2.1.2.2. Анализ протоколов «мыслей вслух»
- •2.1.2.3. Лекции
- •2.1.3. Активные индивидуальные методы
- •2.1.3.1. Анкетирование
- •2.1.3.2. Интервью
- •2.1.3.3. Свободный диалог
- •2.1.4. Активные групповые методы
- •2.1.4.1. «Круглый стол»
- •2.1.4.2. «Мозговой штурм»
- •2.1.4.3. Экспертные игры
- •2.1.4.3.1. Игры с экспертом
- •2.1.4.3.2. Ролевые игры в группе
- •2.1.4.4. Игры с тренажерами
- •2.1.4.4.1. Компьютерные экспертные игры
- •2.1.5. Текстологические методы
- •2.2.Формальное описание понятий предметной области (по)
- •2.2.1. Методы абстрагирования понятий
- •2.2.1.1.Агрегация и декомпозиция понятий
- •2.2.1.2.Обобщение и специализация понятий
- •2.2.1.3.Типизация и конкретизация понятий
- •2.2.1.4.Ассоциация и индивидуализация понятий
- •2.3.Методы классификации
- •2.3.1. Экстенсиональный и интенсиональный аспекты классификации
- •2.3.2. Таксономия и мерономия
- •2.3.3. Типы классификаций
- •2.3.4. Древовидные классификации
- •2.3.5. Булевы классификации
- •2.3.6. Комбинативные классификации
- •2.4.События и процессы
- •2.4.1. Состояния предметной области
- •2.4.2. Событие
- •2.4.3. Последовательные процессы
- •2.4.4. Рекурсивные процессы
- •2.4.5. Ветвящиеся процессы
- •2.5. Системы продукций: структура, технология, применение
- •2.5.1. Неформальное введение в системы продукций
- •2.5.1.1 Алгоритмические модели
- •2.5.2 Логический вывод
- •2.5.3 Прикладные модели
- •2.5.4. Метамодель систем продукций
- •2.5.4.1. Основные подсистемы
- •2.5.5.2. Метаструктура базы данных и операций
- •2.5.5.2.1. Характер организации данных
- •2.5.5.2.2 Операции над базой данных
- •2.5.5.2.3 Контроль несовместимости
- •2.5.5.2.4 Ассоциативная надстройка
- •2.5.6. Метаструктура модуля правил
- •2.5.6.1 Аппарат активации
- •2.5.6.2 Структура правил
- •2.5.7. Метаструктура модуля управления
- •2.5.8. Технология поддержки разработок продукционных систем
- •2.5.9. Формальные модели систем продукций
- •2.5.9.1. Алгебраическая модель
- •2.5.9.1.1. Основные определения
- •2.5.9.1.2. Операции преобразования ситуации
- •2.5.9.1.3. Условия корректности вычислений над конъюнктивной базой данных
- •2.5.9.1.4. Однозначность вычислений над дизъюнктивной базой
- •2.5.9.2. Управление выводом в системах продукций
- •2.5.9.3. Язык управления применением продукций
- •2.5.9.4. Язык управления выбором данных
- •2.5.9.5. Обзор формальных моделей вычислений
- •2.5.10. Экспериментальные системы продукций
- •2.5.10.1. Система скип
- •2.5.10.2. Система анализа топологических чертежей интегральных схем
- •P(слой) x0, y0 : Dx1, Dy2, .., Dxn-1, Dyn;
- •2.6. Выводы к второй главе
- •3. Машина логического вывода
- •3.1. Формальное определение задачи
- •3.2. Специфика решения задач в сии
- •3.3. Управление процессом решения задачи
- •3.4. Модели эвристического поиска решений
- •3.4.1 Стратегия поиска в глубину
- •3.4.2. Стратегии перебора с отсечениями
- •3.4.2.1. Метод ветвей и границ
- •3.4.2.2. Стратегии поиска на основе эвристической функции оценки
- •3.5. Методы вывода и доказательства теорем
- •3.5.1 Механизм резолюции Робинсона
- •3.5.2. Резолюция в логике высказываний
- •3.5.2.1 Линейная резолюция вL
- •Метод линейного вывода в lЛавленда, Ковальского и Кюнера
- •Эффективная реализация
- •3.5.2.3. Метод поиска в глубину
- •3.5.2.4 Эвристики поиска в дереве
- •3.5.2.5. Семантическая резолюция
- •3.5.3 Резолюция в pl
- •3.6. Методы индуктивного вывода
- •3.6.1. Виды индукции
- •3.6.2. Индукция как вывод и индукция как метод
- •3.6.3. Правила, необходимые для систем автоматического формирования знаний
- •3.7. Дедуктивный вывод на семантических сетях
- •3.7.1. Нерезолютивные методы вывода на семантических сетях
2.4.4. Рекурсивные процессы
В том случае, когда возникает необходимость в описании повторяющихся действий (а значит, и вызываемых ими повторяющихся событий), может использоваться рекурсивное определение процесса. Так, выражение (ev) =определяет процесс,который начинается с наступлением события ev,а затем ведет себя снова как процесс. ВыражениеW() = (ev), определяющее процесс, начинающийся с префикса ev,называетсяпредваренным.
Если W (X) –предваренное выражение, содержащее процесс X,используется в качестве определения того же процесса X,то мы имеем дело с рекурсивным описанием процесса Х = W (X).
Рекурсия может рассматриваться как многократное следование одного и того же события evили конечной последовательности событий. Следовательно, семантика рекурсии состоит в многократной композиции отображенийintevintev...intev.
В языках программирования либо рекурсия может быть определена явно, либо для ее моделирования используются управляющие структуры вида whiledoилиrepeatuntil.
2.4.5. Ветвящиеся процессы
Используя операции следования и рекурсию, мы можем описать такие процессы, события которых упорядочены во времени линейно. Для событий, упорядоченных во времени нелинейно, необходима еще одна конструкция – выбор.
Если ev1иev2– различные события, то выражение (ev11|ev2 2) описывает такой процесс, для которого в качестве префиксов могут выступать события ev1иev2, а затем выполняется процесс1,если наступило событие ev1,либо процесс2, если наступило событиеev2. Совокупность альтернативных событий ev1, ev2обычно определяют как меню и записывают в виде (ev1||ev2) илиcase(ev1,ev2). Если использовать более привычные для программистов обозначения, то можно записать равенство
(ev1 1 | ev2 2) = if ev1 then 1 else
if ev2 then 2.
Данное определение выбора может быть легко обобщено на случай, когда число альтернатив больше двух. Так, выражение (ev11|ev2 2 | … | evn n)можно трактовать как процесс, для которого начальное меню состоит из множества событий {ev1}.
Определенные выше базовые отношения для процессов и событий могут быть использованы для описания всех рекурсивных функций над процессами. Следовательно, они являются достаточными для описания динамики процессов, происходящих в большинстве ПО.
2.5. Системы продукций: структура, технология, применение
Системы продукций начали развиваться с середины 70-х годов в связи с появлением прикладных программных систем специальной архитектуры, предназначенных для решения задач в плохо формализованных областях, таких как медицина, геология, понимание естественного языка. В первых работах [ 83,85,87] дается содержательное описание продукционного подхода.
Наиболее полное исследование данного представления в виде формальных моделей дал А.С.Клещев [23,24], В.Е.Кузнецов [26], Т.М.Яхно [70,74 ], S.Vere [128], M.Georgeff [98,99]. Особенности каждой модели определялись классами решаемых задач и технологическим базисом.
В данной главе дано неформальное описание данного подхода к представлению знаний, специфицирована общая метамодель систем продукций, позволяющая выработать общий технологический подход, и построена алгебраическая модель систем продукций, которая обобщает специализированные формальные модели. Приведены исследования условий корректности вычислений и средства управления выводом в системах продукций. В заключении главы описан ряд прикладных программных систем продукций.