Материал: 2488

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

необходимо отметить наличие:

программного управления стратегий вывода решений;

развитой структуры данных и принципиальной эффективности реализации.

Язык OPS имеет типичную для продукционных систем архитектуру, включающую в себя базу правил, рабочую память и механизм вывода. База правил состоит из неупорядоченной совокупности правил, рабочая память – из дискретных объектов, называемых элементами рабочей памяти. Элемент рабочей памяти может быть добавлен в рабочую память, удален из нее или модифицирован. Механизм вывода является стандартным для системы продукций циклом управления. На первой фазе цикла выбираются все правила, левые части которых сопоставились с содержимым рабочей памяти. На второй фазе правило выполняется. Встроенный в OPS механизм вывода непосредственно поддерживает только прямой вывод, однако в языке имеются средства для организации обратного и смешанного выводов.

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

Программа на языке OPS состоит из декларативной и продукционной частей. Язык OPS содержит всего три вида операторов: оператор описания типов данных TYPE, оператор описания классов CLASS и оператор описания правил RULE. Декларативная часть программы содержит описание типов данных и классов элементов рабочей памяти. Элемент рабочей памяти (класс) является единственно возможным представлением данных в OPS программе. Он представляет собой фиксированную структуру, состоящую из совокупности пар «атрибут

– значение».

Элемент рабочей памяти относится к определенному классу. Допустимые классы элементов рабочей памяти должны быть предварительно описаны в разделе определения классов. Определение класса

66

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

Продукционная часть OPS программы – раздел правил. Он записывается после декларативной части и представляет собой совокупность правил. Правило OPS состоит из заголовка и тела правила. Заголовок правила начинается со слова RULE, за которым следуют имя правила и описание переменных (если они используются). Тело правила состоит из левой части, задающей условие применимости правила, и правой части, содержащей последовательность выполняемых действий. Левая часть начинается словами IF, разделителем между левой и правой частями служит слово THEN. Левая часть правила состоит из одного или более условных элементов. Каждый условный элемент задает образец, который сопоставляется с содержащимися в рабочей памяти элементами. Левая часть считается сопоставленной, если одновременно сопоставились все входящие в нее условные элементы. Разделителем между условными элементами служит слово AND или ANDNUT. В левой части могут быть использованы следующие элементарные предикатные операторы: «не равно», «больше», «меньше», «не больше», «не меньше», «входит», «не входит в список», «имеет/не имеет значение» и др. Правая часть правила состоит из последовательности императивных утверждений, называемых действиями. Действия, имеющиеся в OPS, разделяются на две группы: элементарные, обеспечивающие вывод решения, и вспомогательные, обеспечивающие ввод и другие сервисные возможности. К элементарным действиям относятся:

MARE – создание нового элемента рабочей памяти;

REMOVE – удаление элемента из рабочей памяти;

MODIFY – изменение значений атрибутов, уже находящихся в рабочей памяти.

К вспомогательным действиям относятся: HALT – явное прекращение программы; WRITE – выдача сообщения на терминал;

PRINT – печать сообщения на печатающем устройстве; DISPLAY – вывод на экран терминала информации из библиоте-

ки на магнитном диске;

BIND – вызов функций или модулей на других языках программирования;

SET – динамическое изменение стратегии вывода решений или

67

подробности объяснений решений.

1.5.5. Объектно-ориентированный язык Visual Basic

Visual Basic – язык, поддерживающий событийно-управляемое программирование (event-driven programming). Выпустив в 1991 г. пер-

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

В1992 г. была выпущена вторая версия, а в 1993–94 гг. – третья версия. Эта версия позволила продукту войти в число серьезных инструментальных средств программирования и значительно расширить свой рынок. 1996–97 гг. была выпущена пятая версия. В VB5 было много усовершенствований, он обеспечивал заметно более высокую производительность и предлагал долгожданный компилятор, преобразующий программу во внутренний машинный код.

В1998 г. появился Visual Basic 6. Появление Visual Basic.NET

положило конец дискуссиям о том, является ли Visual Basic языком ООП, так как в нем реализованы все необходимые атрибуты ООП. Напомним, что модель ООП подразумевает наличие трех обязательных механизмов: инкапсуляции, полиморфизма и наследования.

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

ВVisual Basic реализовано «управление от событий», что позволяет разработчику спроектировать интерфейс пользователя максимально удобно для пользователя. После этапа визуального проектирования программист просто пишет программный код для обработки связанных с объектом событий. VB предоставляет удобную среду для

68

разработки приложений, тестирования их работы и нахождения и исправления ошибок.

Объект – одно из основных понятий Visual Basic и объектноориентированного программирования. Объектом называется некая сущность, которая, во-первых, чётко проявляет своё поведение, а вовторых, является представителем некоторого класса подобных объектов.

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

СОБЫТИЕ – действие или ситуация, связанная с объектом, например: щелчок мыши или нажатие клавиши. События могут инициироваться в программном коде приложения или непосредственно в системной среде.

СВОЙСТВА определяют представление, поведение и другие черты объекта. Цвет фона формы, строка соединения, размер элементов и т.п. – все это свойства тех или иных объектов.

МЕТОДЫ – программные процедуры, которые выполняют некоторую обработку, связанную с объектом, определенные действия над объектом.

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

Visual Basic позволяет создавать различные приложения для работы с базами данных – от простейших локальных баз данных до многоуровневой архитектуры клиент/сервер, а также приложений для работы в intranet и Internet с использованием таких передовых техно-

логий, как DHTML, XML и ASP.

Также очень важны вопросы проектирования реляционных баз данных и использования языка SQL. Язык структурированных запросов является стандартным средством для работы с базами данных и может использоваться как для интерактивной работы с базами данных, так и включаться в языки программирования. Применительно к

Visual Basic SQL позволяет:

– создавать, модифицировать или удалять таблицы в базе данных

69

Access;

вставлять, удалять или модифицировать записи таблиц;

получать сводную информацию о данных в таблице;

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

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

Visual Basic предоставляет разработчику все средства для создания «графического интерфейса пользователя»:

возможность построения многодокументального интерфейса;

создание пользовательского меню;

представление ACTIVE-X и многое др.

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

Visual Basic позволяет разработчику создавать деревья и осуществлять поиск по ним по любому из вышеперечисленных алгоритмов.

1.5.6.Интегрированная инструментальная среда GURU

Винструментальной среде построения ЭС GURU, разработанной фирмой Micro Data Base Systems, Inc., методы экспертных систем сочетаются с такими средствами обработки данных, как составление электронных ведомостей, управление базой данных и деловой графикой, таким образом формируется уникальная среда для поддержки принятия решений иразработки прикладных интеллектуальных систем.

Система GURU легка в употреблении для новичков и в то же время является достаточно эффективной и гибкой системой для про-

70