Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КиС Пособие.doc
Скачиваний:
47
Добавлен:
10.11.2018
Размер:
1.46 Mб
Скачать

7.8. Средства создания систем ии [4]

Используемые для разработки систем ИИ инструментальные средства можно разделить на следующие типы:

универсальные языки программирования высокого уровня;

специализированные языки: языки ИИ (языки логического программирования) и языки представления знаний;

средства автоматизированного создания ЭС (инструментальные системы и среды);

системы-оболочки (оболочки ЭС, «пустые» ЭС).

Универсальные языки программирования высокого уровня, такие как С, С++, Pascal, Fortran, Basic, SmallTalk и др., ориентированны в основном на численные алгоритмы и слабо подходят для работы с символьными и логическими данными. Поэтому создание систем ИИ на основе этих языков требует большой работы программистов. Однако большим достоинством этих языков является высокая эффективность, а также возможность включать интеллектуальные подсистемы в крупные программные комплексы общего назначения.

Языки искусственного интеллекта содержат собственные средства представления знаний (в соответствии с определенной моделью) и поддержки логического вывода. Универсальность этих языков меньшая, нежели традиционных языков программирования, но это компенсируется богатыми возможностями по работе с символьными и логическими данными. Такими языками являются:

Язык LISP – язык обработки списков – был разработан в начале 60-х годов и многие годы был наиболее популярным базовым языком реализации систем ИИ.

Язык CLOS (Common LISP Object System) - объектно-ориентированная версия языка LISP.

Язык SNOBOL (StriNg-Oriented symBOlic Language), созданный для обработки строк, в рамках которого впервые появилась и была реализована в достаточно полной мере концепция поиска по образцу.

Язык РЕФАЛ – был создан в Институте прикладной математики АН СССР. В его основу положено понятие рекурсивной функции, определенной на множестве произвольных символьных выражений. Базовой структурой данного языка являются списки, но не односвязные как в LISP, а двунаправленные. Обработка символов ближе к продукционному формализму. При этом активно используется концепция поиска по образцу, характерная для SNOBOL. Таким образом, РЕФАЛ вобрал в себя лучшие черты наиболее интересных языков обработки символьной информации 60-х годов. В настоящее время можно говорить о языке РЕФАЛ второго и даже третьего поколении.

Язык PROLOG появился в начале 70-х годов и составил конкуренцию языку LISP при реализации систем, ориентированных на знания. Однако популярность PROLOG стал приобретать позже, когда благодаря усилиям математиков был обоснован логический базис этого языка, а также в силу того, что в японском проекте вычислительных систем V поколения PROLOG был выбран в качестве базового для машин вывода. В настоящее время PROLOG завоевал признание и на американском континенте, хотя уступает в популярности LISP и даже специальным продукционным языкам, которые широко используются при создании ЭС.

Языки представления знаний. Среди первых языков, сыгравших заметную роль в программной поддержке систем представления знаний, явно выделяются: KRL (Knowledge Representation Language) и FRL (Frame Representation Language).

В последующем (80-е годы) был разработан язык OPS5 (Official Production System, version 5), который претендовал на роль языка-стандарта в области представления знаний для ЭС.

Средства автоматизированного создания ЭС – это программные системы и многофункциональные среды для создания ЭС. Они допускают использование нескольких моделей представления знаний, способов логического вывода и видов интерфейса и содержат вспомогательные средства создания ЭС.

Многофункциональная среда – это среда программирования, поддерживающая несколько парадигм.

Система LOOPS была первой многофункциональной средой ИИ, которая допускала использование двух типов представления знаний: базирующегося на системе правил и объектно-ориентированного программирования.

На основе архитектуры LOOPS во второй половине 1980-х годов было разработано несколько коммерческих программных продуктов, из которых наибольшую известность получили KEE (Knowledge Engineering Environment) – среда инженерии, в основе которой лежат фреймы, а также система ART – многофункциональная среда, поддерживающая технологию проектирования систем, основанных на правилах. Новая версия КЕЕ, известная под названием КАРРА-РС, обладает еще более широким набором стилей для комбинирования правил, объектов и процедур.

Многофункциональная среда – язык CLIPS (С Language Integrated Production System) был разработан в середине 1980-х годов и во многом сходен с языками, созданными на базе LISP, в частности OPS5 и ART. Первая версия CLIPS представляла собой, по сути, интерпретатор порождающих правил. Процедурный язык и объектно-ориентированное расширение COOL (C Object Oriented Language) многофункциональной среды CLIPS были включены в этот программный продукт только в 1990-х годах. Существующая в настоящее время версия может эксплуатироваться на платформах UNIX, DOS, Windows и Macintosh.

Системы-оболочки (оболочки ЭС) создаются, как правило, на основе какой-нибудь ЭС, достаточно хорошо зарекомендовавшей себя на практике. При создании оболочки из системы-прототипа удаляются компоненты, слишком специфичные для области ее непосредственного применения, и оставляются те, которые не имеют узкой специализации.

Системы-оболочки являются наиболее простым средством формализации (автоформализации) экспертных знаний, практически не требующие участия посредников в лице инженера по знаниям или программиста при их использовании. Инженер по знаниям только помогает эксперту выбрать наиболее подходящую для его проблемной области оболочку.

В качестве примера таких систем-оболочек можно привести системы EMYCIN, 1stCLASS, EXSYS, GURU, Hugin и др.