
- •Глава 1 Введение в экспертные системы 7
- •Глава 2. Состояние работ в области искусственного интеллекта. Роль экспертных систем в исследованиях по искусственному интеллекту 19
- •Глава 3. Классификация экспертных систем и инструментальных средств 27
- •Глава 4. Анализ состояния экспертных систем и инструментальных средств 39
- •Глава 5. Представление знаний в системах, основанных на знаниях 53
- •Глава 6. Методы и стратегии поиска решений в системах, основанных на знаниях 71
- •Глава 7. Основы методологии разработки экспертных систем 94
- •Глава 8. Инструментальный комплекс для создания статических экспертных систем (на примере интегрированного комплекса эко) 110
- •Глава 9. Инструментальный комплекс для создания экспертных систем реального времени (на примере интегрированной среды g2-gensym corp., сша) 119
- •Предисловие
- •Глава 1 Введение в экспертные системы
- •1.1. Назначение экспертных систем
- •1.2. Формальные основы экспертных систем
- •1.3 Архитектура статических и динамических экспертных систем
- •1.4 Этапы разработки экспертных систем
- •Литература
- •Вопросы для самопроверки
- •Глава 2. Состояние работ в области искусственного интеллекта. Роль экспертных систем в исследованиях по искусственному интеллекту
- •2.1 Основные направления искусственного интеллекта
- •2.2 Состояние работ в области экспертных систем
- •2.3 Состояние работ в области естественно - языковых систем
- •2.4 Состояние работ в области нейронных сетей
- •2.5 Состояние работ по новым направлениям искусственного интеллекта
- •Литература
- •Вопросы для самопроверки
- •Глава 3. Классификация экспертных систем и инструментальных средств
- •3.1 Классификация экспертных систем
- •3.1.1 Тип приложения
- •3.1.2 Стадия существования
- •3.1.3 Масштаб эс (тип эвм )
- •3.1.4 Тип проблемной среды
- •3.2 Классификация инструментальных средств
- •3.2.1 Уровень используемого языка
- •3.2.2 Парадигмы программирования (механизмы реализации исполняемых утверждений)
- •3.2.3 Способ представления знаний
- •3.2.4 Механизмы вывода и моделирования
- •3.2.5 Средства приобретения знаний
- •3.2.6 Технология разработки эс
- •3.3 Сопоставление инструментальных средств с типами проблемных сред
- •Литература
- •Вопросы для самопроверки
- •Глава 4. Анализ состояния экспертных систем и инструментальных средств
- •4.1 Анализ состояния статических экспертных систем
- •4.2 Анализ состояния динамических экспертных систем
- •4.2.1 Основные производители ис для эс рв
- •4.2.2 Сравнение ис для создания эс рв
- •Литература
- •Вопросы для самопроверки
- •Глава 5. Представление знаний в системах, основанных на знаниях
- •5.1 Состав и организация знаний в экспертных системах
- •5.1.1 Уровни представления и уровни детальности
- •5.1.2 Организация знаний в рабочей памяти
- •5.1.3 Организация знаний в базе знаний
- •5.2 Модели представления знаний
- •5.2.1 Логические модели представления знаний
- •5.2.2 Семантические модели
- •5.2.3 Фреймы
- •5.2.4 Объектно-ориентированный подход
- •5.2.5 Продукционные модели и модули, управляемые образцами
- •5.3 Практика использования моделей представления знаний в экспертных системах
- •5.3.1. Применение продукционных правил
- •5.3.2 Использование семантических сетей
- •5.3.3 Использование фреймов
- •5.3.4 Использование управляемых образцами модулей
- •5.3.5 Смешанные представления (объекты и правила)
- •Литература
- •Вопросы для самопроверки
- •Глава 6. Методы и стратегии поиска решений в системах, основанных на знаниях
- •6.1 Механизмы вывода экспертных систем
- •6.2 Стратегии как механизмы управления
- •6.3 Методы поиска решений в экспертных системах
- •6.3.1 Поиск решений в одном пространстве
- •6.3.2 Поиск в иерархии пространств
- •6.3.3. Поиск в альтернативных пространствах
- •6.3.4 Поиск с использованием нескольких моделей
- •6.3.5 Выбор метода решения задач
- •Литература
- •Вопросы для самопроверки
- •Глава 7. Основы методологии разработки экспертных систем
- •7.1 Идентификация
- •7.2 Концептуализация
- •7.3 Формализация
- •7.3.1 Структуризация исходной задачи
- •7.3.2 Структуризация предметной области на основе иерархии классов
- •7.3.3 Структуризация выполняемых утверждений базы знаний приложений
- •7.3.4 Структуризация приложения на основе иерархии "часть/целое"
- •7.4 Выполнение
- •7.5 Отладка и тестирование
- •7.5.1 Методы тестирования экспертных систем
- •7.5.2 Механизм инспекции экспертной системы
- •7.5.3 Применение архивных данных для формирования сценариев отладки и тестирования динамических экспертных систем (дэс)
- •7.6 Опытная эксплуатация и внедрение
- •Литература
- •Вопросы для самопроверки
- •Глава 8. Инструментальный комплекс для создания статических экспертных систем (на примере интегрированного комплекса эко)
- •8.1 Средства представления знаний и стратегии управления
- •8.1.1 Структура комплекса эко
- •8.1.2 Средства представления знаний в оболочке эко
- •8.1.3 Стратегии управления в оболочке эко
- •8.2 Приобретение знаний и решение задач средствами оболочки эко
- •8.3 Ввод общих знаний средствами системы к-эко
- •8.4 Формирование баз знаний на основе обучающей выборки средствами системы илис
- •Литература
- •Вопросы для самопроверки
- •Глава 9. Инструментальный комплекс для создания экспертных систем реального времени (на примере интегрированной среды g2-gensym corp., сша)
- •9.1 База знаний
- •9.1.1 Сущности и иерархия классов
- •9.1.2 Иерархия модулей и рабочих пространств
- •9.1.3 Структуры данных бз
- •9.2 Машина вывода, планировщик и подсистема моделирования
- •9.2.1 Машина вывода
- •9.2.2 Планировщик
- •9.2.3 Подсистема моделирования
- •9.3 Среда разработчика в системе g2
- •9.3.1 Естественно-языковый текстовый редактор
- •9.3.2 Интерфейс с пользователем
- •9.3.3 Средства инспекции и отладки
- •9.4 Интерфейс с внешним окружением
- •9.5 Проблемно/предметно-ориентированные среды и графические языки на базе g2
- •9.5.2 ReThink (подумай еще)
- •9.5.5 BatchDesign_Kit – интеллектуальное проектирование серийного производства в фармакологии
- •Литература
- •Вопросы для самопроверки
- •Литература
- •Приложение 2 Бизнес-Процесс "реинжиниринг" и интеллектуальное моделирование компаний
- •Литература
- •Приложение 3 Нейросетевая технология
- •Литература
- •Приложение 4 Системы поддержки принятия решений, хранилища данных и извлечение знаний
- •Литература
- •Приложение 5 Опыт применения динамических оболочек экспертных систем
9.3.3 Средства инспекции и отладки
Ясно, что отладка прикладной системы, объединяющей продукционные правила, процедуры, различные уровни абстракции и иерархию классов, может превратиться в далеко не тривиальную задачу. В этой ситуации на помощь разработчику приходят мощные средства инспекции базы знаний и отладки, рекомендуемые методологией (п.7.5.2) и предоставляемые G2. Функции инспекции базы знаний позволяют осуществлять поиск элементов на основе их типов, принадлежности к классу, атрибутов и местоположения. Эти функции используются для решения следующих задач:
• отображение сжатого представления элементов базы знаний;
• создание файлов, содержащих описание элементов базы знаний;
• отображение иерархий классов, модулей и рабочих пространств;
• прямой переход к конкретным элементам базы знаний;
• перекомпиляция отдельных элементов.
В частности, упоминаемая выше схема иерархии встроенных классов G2 может быть получена с помощью функции инспекции базы знаний.
Перечисленные возможности облегчают навигацию по базе знаний и делают возможным быстрый просмотр базы знаний под любым ракурсом. Кроме того, с помощью функций инспекции можно запустить процедуру поиска и замены текстовых фрагментов в базе знаний. Функции инспекции работают в фоновом режиме и позволяют выполнять одновременно с ними и другие задачи, включая другие функции инспекции. Доступ остальных пользователей к базе знаний в это время никак не ограничивается.
Отладочные режимы работы G2 включают:
• отображение предупреждающих сообщений об ошибках и состоянии приложения;
• отображение сообщений трассировки, которые показывают: текущие значения переменных и выражений, как только они изменяются; запуск и остановку обработки переменных, правил, формул и функций; выполнение каждого шага обработки переменных, правил, формул и функций;
• установку контрольных точек, в которых пользователь может остановить или продолжить процесс выполнения приложения;
• подсветку возбужденных правил.
Как показывает практика, функции инспекции и отладочные режимы работы G2 в значительной степени облегчают поиск ошибок в прикладной системе и сокращают время ее тестирования до минимума.
9.4 Интерфейс с внешним окружением
В G2 реализована распределенная обработка приложения на принципах архитектуры клиент-сервер. Клиентная система Telewindows обеспечивает множественный доступ к централизованной базе знаний и групповую работу с приложением. Взаимодействие между G2 и Telewindows может быть организовано одним из следующих способов (рис.9.4): процесс Telewindows исполняется на той же машине, что и G2, а пользователь получает к ней доступ через X-терминал; Telewindows исполняется на рабочей станции или ПК пользователя (Intel 386/486 - под MS Windows, v.3.1). Кроме того, приложение можно построить как содружество автономных интеллектуальных агентов на базе интерфейса G2 ↔ G2, исполняемых на одной и той же или на разных ЭВМ, связанных в сеть. При этом обмен данными осуществляется на уровне переменных через протокол ICP
Рис.9.4. Базовые конфигурации использования Telewindows:
а - процесс исполняется на той же ПЭВМ, что и G2;
б - процесс исполняется на ПЭВМ пользователя
(Intelligent Communication Protocol). Интерфейс G2 ↔ G2 позволяет разработчику создать в одном G2-приложении объекты, которые получают информацию от другого G2. Эти объекты создаются, подобно другим объектам в G2, а интерфейс G2 ↔ G2 действует как сервер данных для этих объектов (подобно механизму вывода или G2-подсистеме моделирования). Для организации обмена необходимо в описании переменных объекта, получающих значение от другого G2-процесса, просто указать номер сетевого порта источника. Как результат, переменные объекта получат значения от второго G2. Подчеркнем, что G2-приложение может как получать, так и посылать информацию в одно и то же время по одному интерфейсу.
G2 разработана как открытая система. Связь с внешними источниками данных строится на основе библиотеки стандартных интерфейсов и сервера GSI (G2 Standart Interface). Подсистема GSI (рис. 9.5) работает параллельно с прикладной системой как независимый обработчик событий и обеспечивает ее двустороннее взаимодействие с широким спектром программируемых контроллеров ведущих фирм (Alien Bradley, GE-Fanuc, AEG Modicon), систем сбора данных (ABB, Fisher, Siemens, Yokogawa, Foxboro, ORSI), концентраторов данных (DEC BASEstar, Alien Bradley Pyrammid Integrator, SETPOINT SETCIM) и развитых СУБД (Oracle, Sybase, DEC Rdb). Библиотека GSI и так называемые G2 Bridge products позволяют легко интегрировать G2-приложение в существующие системы управления. При отсутствии в библиотеке GSI интерфейса к некоторому уникальному контроллеру не составляет особого труда запрограммировать его по представляемому шаблону на языке С и подключить к системе.
С точки зрения современной концепции разработки открытых систем в системе G2 предлагается более гибкая и надежная трехзвенная схема организации взаимодействия клиентской и серверной частей приложения, используя GSI в качестве монитора транзакций [1].
Обычно, когда перед разработчиком встает проблема создания интерфейса данных, он вынужден принимать во внимание целый ряд разнородных требований: эффективность, реализуемость, надежность, переносимость, сопровождаемость, конфигурируемость, гибкость, возможность мультиплексирования сигналов и т. д. Для удовлетворения этих требований он должен реализовать множество функциональных блоков, таких, как: синхронизация обрабатываемых запросов, протоколы взаимодействия; сетевые интерфейсы, восстановление после сбоев в сети или узле; работа с множеством источников данных; группировка данных; обработка данных, пришедших без запроса; обмен сообщениями об ошибках; обмен данными о состоянии взаимо-
Рис.9.5. Организация взаимодействия системы G2 с внешним миром
действующих систем; буферизация данных; преобразование форматов данных, работа с данными переменной длины; планирование обработки запросов; отработка запуска и остановки системы; отработка пауз и перезапуска; отработка прерываний; обработка переполнения буфера; распределение ресурсов; минимизация загрузки системы; диагностика сбоев; доступ к внешним данным и конфигурирование интерфейса. Все это применимо к любому интерфейсу данных независимо от назначения прикладной системы. Все перечисленные требования, кроме двух, удовлетворяются в подсистеме GSI автоматически независимо от платформы и типа сетевого обеспечения. Исключение составляют функции доступа к данным и конфигурирование интерфейса, но реализацию этих функций GSI делает настолько простой, насколько это возможно.
Подсистема GSI состоит из трех основных частей:
• ядро GSI;
• GSI-расширение;
• коммуникационный канал связи между ядром GSI и GSI-расширением.
Взаимодействие этих трех частей между собой, с G2-приложением и внешней прикладной программой отражено на рис. 9.6.
Хотя подсистема GSI отрабатывает все взаимодействия между G2 и каждым из внешних процессов, необходимо сконфигурировать ее для конкретного приложения. Для разработки системы, в полном объеме использующей возможности GSI, нужно создать два фрагмента, отражающих специфику прикладной программы, в дополнение к базе знаний G2: спецификацию конфигурирования, которая настроит базу знаний для связи с внешней программой, и так называемый переходный код (application bridge code), который используется GSI-расширением для интерактивного взаимодействия с внешней прикладной программой.
Рис.9.6. Компоненты системы GSI
Спецификация конфигурирования включает объекты базы знаний, конфигурирующие ее для использования GSI. Средства для создания этих объектов встроены в G2. Для формирования спецификации конфигурирования создают объекты, принадлежащие к классу GSI interface object. Эти объекты содержат информацию, необходимую GSI для связи с внешней прикладной программой. Далее создают переменные класса GSI variable, соответствующие переменным внешней прикладной программы. G2 передает и принимает данные через эти переменные. Кроме этого создают переменные GSI variable для обмена текстовыми сообщениями с внешней прикладной программой.
Переходный код объединяет GSI-расширение с внешней прикладной программой. Он состоит из набора функций на языке С, обеспечивающих передачу данных, текстовых сообщений, запуск, остановку и завершение внешней программы.
Кроме интерфейсов GSI и G2↔G2 доступны еще два интерфейса с внешними процессами и источниками данных: файловый интерфейс (G2 File Interface - GFI) и интерфейс с внешними функциями (Foreign Function Interface).
Файловый интерфейс GFI представляет собой гибкое средство, позволяющее G2 писать и читать информацию из внешних файлов. GFI является отдельным от G2 продуктом. Разработчик может использовать GFI для того, чтобы делать следующее:
• архивировать и запоминать данные;
• инициализировать тесты проверки БЗ;
• собирать данные для внешнего анализа;
• создавать снимки (snapshots) данных;
• считывать данные из внешних файлов во время исполнения БЗ.
Интерфейс с внешними функциями. Разработчик G2-приложения может вызвать внешние (foreign) для G2 функции, написанные на Си и Фортране. Этот интерфейс включен в G2. Для того чтобы использовать в G2 внешнюю функцию, разработчик описывает ее (подобно функциям G2, определенным пользователем) и затем использует таким же способом, как функции, определенные пользователем.
Возможности G2 4.0 в части поддержки распределенных приложений на основе архитектуры клиент/сервер расширены за счет добавления ряда новых функций. Передача объектов и массивов в качестве аргументов упрощает совместное использование данных независимыми приложениями на базе G2 и внешними по отношению к G2 программными системами. Для реализации обмена сложными структурами данных в распределенной среде обработки коренным образом переработан и G2 Standard Interface (GSI), служащий своего рода интеллектуальным монитором транзакций. Расширен также и спектр сетевых сред, в которых могут "жить" G2, Telewindiws и GSI. Кроме TCP/IP и DECnet теперь поддерживаются Token Ring и Winsock. Безопасность и конфиденциальность распределенной обработки достигаются за счет новых уровней автоматической проверки прав доступа при установлении сетевого взаимодействия процессов через GSI.
В четвертой версии G2 в значительной мере сокращены накладные расходы на выполнение операций, что делает реальное время в приложениях на базе G2 еще более реальным. Подсекундные интервалы цикла работы Планировщика системы позволяют теперь контролировать процессы со скоростью протекания на уровне миллисекунд. Подсистема сбора профиля работы приложения дает возможность на этапе отладки и во время эксплуатации системы легко определять узкие места и целенаправленно проводить модификации для достижения требуемой производительности. Использование принципов статической и условной компиляции расширяет возможность маневра и позволяет повышать производительность критических участков приложения при сохранении гибкости системы в целом.
Стандарты G2
Открытость системы G2 и продуктов на ее основе обеспечивается ориентацией фирмы Gensym на промышленные стандарты (табл. 9.2). Являясь членом OMG (Object Management Group), фирма Gensym сотрудничает в этой области со многими независимыми организациями и комитетами по стандартам. В части технических средств - это под-
Таблица 9.2
Стандарты, поддерживаемые G2
Платформы |
DEC, HP, SUN, IBM, ПЭВМ на базе Х86 и Pentium, Unix, VMS, Windows |
Графический интерфейс |
Motif и/или Windows, графический интерфейс GUIDE |
Сетевые протоколы |
SNMP, TCP/IP, DECnet, WINSOCK |
Архитектура клиент/ сервер |
Уровень данных: GSI, DDE, интерфейсы APIУровень объектов: CORBAУровень приложений: Telewindows |
Распределенная обработка |
Взаимодействие G2↔G2, G2↔Telewindows |
Внешние интерфейсы |
Распространенные программные и технические средства и СУБД |
Участие в комитетах по стандартизации |
Object Management Group (OMG), POSIX, ISO 9000 |
держка широкого спектра платформ DEC, HP, Sun, IBM и ПЭВМ на базе процессоров Х86 и Pentium. Развитый графический интерфейс, включающий элементы анимации, базируется на средствах Motif и MS Windows. Сетевые протоколы - TCP/IP и DECnet. Архитектура клиент/сервер на уровне обмена данными поддерживается монитором транзакций GSI и DDE, на уровне объектов - CORBA, на уровне приложения - клиентной подсистемой Telewindows. Распределенная обработка обеспечивается интерфейсами G2↔ G2, G2 ↔ Telewindows и поддержкой вызова удаленных процедур. Существует множество готовых решений "под ключ" для прямого взаимодействия G2 с распространенными программными и техническими системами контроля и развитыми СУБД.