Научная статья на тему 'Характеристика инструментальных программ при проектировании экспертных систем'

Характеристика инструментальных программ при проектировании экспертных систем Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
153
23
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЭКСПЕРТНЫЕ СИСТЕМЫ / EXPERT SYSTEMS / ЯЗЫКИ ВЫСОКОГО УРОВНЯ / HIGH-LEVEL LANGUAGES / ИНТЕРФЕЙС / INTERFACE / СРЕДА ПРОГРАММИРОВАНИЯ / PROGRAMMING ENVIRONMENT / CLIPS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Медникова О.В., Медников Д.А.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Characteristic of Instrumental Programs in Designing Expert Systems

The description languages of the parent rules, object-oriented languages, and procedural deductive systems give the designer of expert systems much more freedom of action than the shell. Especially it concerns the programming of management procedures and processing of uncertainty. The shell has a built-in control mode and uncertainty processing methods that can not then be changed while building a specific expert system based on it.

Текст научной работы на тему «Характеристика инструментальных программ при проектировании экспертных систем»

УДК 004.032

О.В. Медникова, Д.А. Медников

Федеральное государственное бюджетное образовательное учреждение высшего образования «Российский университет транспорта» (МИИТ) город

Москва

ХАРАКТЕРИСТИКА ИНСТРУМЕНТАЛЬНЫХ ПРОГРАММ ПРИ ПРОЕКТИРОВАНИИ ЭКСПЕРТНЫХ СИСТЕМ

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

Ключевые слова: экспертные системы, языки высокого уровня, интерфейс, среда программирования, CLIPS

O.V. Mednikova, D.A. Mednikov

Federal State Budget Educational Institution of Higher Education «Russian University of Transport» (MIIT), Moscow

CHARACTERISTIC OF INSTRUMENTAL PROGRAMS IN DESIGNING EXPERT SYSTEMS

The description languages of the parent rules, object-oriented languages, and procedural deductive systems give the designer of expert systems much more freedom of action than the shell. Especially it concerns the programming of management procedures and processing of uncertainty. The shell has a built-in control mode and uncertainty processing methods that can not then be changed while building a specific expert system based on it.

Keywords: expert systems, high-level languages, interface, programming environment, CLIPS

В

области экспертных систем представление знаний означает

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

Языки высокого уровня являются средством быстрого создания прототипа экспертной системы, позволяют обеспечить гибкость процесса разработки при одновременном снижении материальных затрат и сокращении сроков выполнения проекта. Как правило, среда разработки таких языков обеспечивает совмещение интерфейса разработки и времени выполнения, что позволяет совместить вставку, редактирование и тестирование фрагментов программного кода. Но пользовательский интерфейс такой среды уступает интерфейсу оболочек по части «дружественности», что, правда, не мешает опытному программисту быстро ее освоить [1].

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

По своему назначению и функциональным возможностям инструментальные программы, применяемые при проектировании экспертных систем, можно разделить на четыре достаточно больших категорий: [2]

- Оболочки экспертных систем (expert system shells). Системы этого типа создаются, как правило, на основе какой-нибудь экспертной системы, достаточно хорошо зарекомендовавшей себя на практике. При создании оболочки из системы-прототипа удаляются компоненты, слишком специфичные для области ее непосредственного применения, и оставляются те, которые не имеют узкой специализации. Примером может служить система EMYCIN, созданная на основе прошедшей длительную «обкатку» системы MYCIN. В EMYCIN сохранен интерпретатор и все базовые структуры данных - таблицы знаний и связанный с ними механизм индексации. Оболочка дополнена специальным языком,

Менеджмент: научный анализ

улучшающим читабельность программ, и средствами поддержки библиотеки типовых случаев и заключений, выполненных по ним экспертной системой. Дальнейшим развитием оболочки EMYCIN явились системы S.1 и М.4, в которых механизм построения цепочки обратных рассуждений, заимствованный в EMYCIN, объединен с фреймоподобной структурой данных и дополнительными средствами управления ходом рассуждений.

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

- Среда программирования, поддерживающая несколько парадигм (multiple-paradigm programming environment). Средства этой категории включают несколько программных модулей, что позволяет пользователю комбинировать в процессе разработки экспертной системы разные стили программирования. Среди первых проектов такого рода была исследовательская программа LOOP, которая допустила использование двух типов представления знаний: базирующегося на системе правил и объектно-ориентированного. На основе этой архитектуры во второй половине 1980-х годов было разработано несколько коммерческих программных продуктов, из которых наибольшую известность получили KEE, KnowledgeCraft и ART. Эти программы предоставляют в распоряжение квалифицированного пользователя множество опций и для последующих разработок, таких как КАРРА и CLIPS, и становятся своего рода стандартом. Однако освоить эти языки программистам далеко не так просто, как языки, отнесенные к предыдущей категории.

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

CLIPS как многофункциональная среда программирования (инженерии знаний). CLIPS (Язык С, интегрированная Продукционная Система) - OPS-ПОДОБНАЯ продукционная система, использующая вывод от фактов к цели, написанная на С в ANSI NASA. Механизм логического вывода CLIPS включает сопровождение, динамическое добавление правил и настраиваемые стратегии разрешения противоречий. CLIPS, включает объектно-ориентированный язык, названный COOL (Объектно-ориентированный Язык CLIPS), который прямо интегрирован с механизмом логического вывода. CLIPS выполняется на многих платформах.[3]

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

- для определения стандартных функций используется синтаксис, подобный LISP (семейство языков программирования, основанных на представлении программы системой линейных списков, которые, притом, являются основной структурой данных языка);

- предоставляет в распоряжение разработчика родовые функции, аналогичные мультиметодам CLOS (объектно-ориентированное расширение языка LISP);

- располагает встроенным объектно-ориентированным языком COOL, который, в отличие от CLOS, включает и средства поддержки обмена сообщениями.

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

1.М.:Изд.-Джексон П. Введение в экспертные системы.: Пер.с анг.:Уч. пос.624 с.:ил.-дом «Вильямс», 2003.

2.Трофимов В. База С. 56-61 -Ы 10. - 2008. - даных+Л^=База знаний// Компьютеры+программы.

3.Трофимов В.Е. Фрейм как высшая стадия структурирования //С.45-54-Ы7. 200874.-Компьютеры+программы.

Литература

i Надоели баннеры? Вы всегда можете отключить рекламу.