- •Введение
- •Глава 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.5.9.4. Язык управления выбором данных
Вторым типом управления является управление данными, которые динамически меняются в процессе вывода. В общем случае это управление состоит в выборе подстановки или порядке обработки данных, что может существенно влиять на результат вывода в системе.
Традиционным способом задания стратегии обработки является фиксация типов данных и программирование "вручную" способа их обработки. Такое управление данными называют встроенным.Например, в различных версиях лингвистических процессоров использовались разнообразные встроенные порядки обработки строк: слева направо, справа налево, с возвратом на начало строки, без возврата и их комбинации. Если над обрабатываемыми данными зафиксировано отношение частичного порядка, то примером могут служить переборы в глубину и в ширину.
Основной недостаток встроенной стратегии обработки данных состоит в том, что пользователь вынужден настраивать свои предметные знания на заданную стратегию поиска, которая, как правило, не является единственно возможной и единственно оправданной.
Более естественным является такой способ описания предметной области, при котором эксперт, не связанный жесткой стратегией, формулирует сначала продукции и лишь после этого — правила обхода структур данных, используя, если необходимо в разных фрагментах данных различные стратегии. Такой способ задания управления данными называют настраиваемым.Он задается в виде лаконичной спецификации на языке управления данными.
Неформально язык управления данными аналогичен языку управления применением продукций и состоит в следующем.
Для каждого текущего состояния базы данных drшага выводаrзадается подмножество данных,на которых (и только на них) в текущий момент вывода проверяются условия применимости активированных продукций. Такиебудем называтьактивированнымиданными. Поскольку данные в процессе вывода изменяются (добавляются новые и, возможно, исключаются старые факты), то описать множествастатически до начала вывода невозможно, в связи, с чем необходимы средства динамического задания множеств.
Будем определять управление данными по некоторому выделенному отношению f0Fнад термами, которое задает структуруM(dr, f0) drзависящую от текущего состоянияdrиf0.В этой структуре между элементами определяется как минимальная длина пути между ними, а пара (центр, радиус), где центр — произвольный элемент структуры, радиус — натуральное число, задает в этой структуре окрестность поиска, содержащую в себе все элементы структуры, расстояние до которых от центра не больше радиуса окрестности. Множество активированных данных составляют те факты из текущегоdr, в которые входят термы, принадлежащие окрестности поиска. Окрестность поиска называют иногда "окном активации".
Центр и радиус текущей окрестности могут быть заданы явно (точным указанием) либо вычисляться через центр и радиус окрестности, определенные над структурой предыдущего шага вывода. В результате применения продукций формируется dr+1состояние базы, которое получается изdrдобавлением или вычеркиванием некоторых фактов.
Рассмотрим вывод в окрестности на некотором произвольном шаге т. Пусть dr —текущее состояние базы данных,r— окрестность поиска шага выводаr. Если окрестность не пуста, то в ней проверяются условия применимости активированных продукций шага выводаr. Продукции с истинными условиями применяются, что приводит к состояниюdr+1. Еслиdr+1 содержит специальный выделенный символ неудачного вывода, то вывод "зависает". В противном случае и тогда, когда текущая окрестность поиска пуста, происходит формированиеr+1окрестности поиска, центр и радиус которой вычисляются через соответствующие компонентыr, а активированные данные берутся из текущегоdr+1 состояния базы данных. Еслиr+1 содержит специальный выделенный символ конца, то происходит остановка, означающая конец описания стратегии, а полученное состояние базы данных содержит результат, выводимый продукциями из заданного начального состояния по фиксированному порядку обработки данных.
Описанные выше языки управления выводом предназначены для двух основных целей. С одной стороны, они являются достаточно простым и лаконичным средством определения требований и спецификации логики поведения систем продукций, с другой — это точки настройки в программных реализациях, дающие основу для построения технологического пакета систем продукций. В рамках этого пакета каждая из точек настройки интерпретируется соответствующим механизмом (особенно на этапе отладки системы), а наиболее часто встречающиеся дисциплины применения продукций и порядки обработки данных встраиваются в технологический пакет в виде стандартных модулей. Спецификация соответствующей формулы вызывает эти модули и собирает необходимую конфигурацию.