Меню построения экспертной системы
Меню для операций по созданию или редактированию ЭС содержит следующие элементы:
· Definition (определения) — указание целевой переменной, а также некоторые вспомогательные действия (указание расположения и цвета окна, контекстная замена в описании ЭС и т. д.);
· Initialization (инициализация) — указание действий, выполняемых в начале сеанса работы ЭС;
· Rules (правила) — набор правил (база знаний ЭС);
· Variables (переменные) — описание переменных, используемых в ЭС (например в правилах);
· Сomрletion (завершение) — указание действий, выполняемых перед окончанием сеанса работы ЭС;
· Рrint (печать) — печать текстового файла ЭС;
· Exit — окончание построения ЭС.
Правила ввода текста в GURU
При вводе описания элементов ЭС перемещение по тексту выполняется с помощью следующих клавиш: влево — СTRL-S, вправо — СTRL-D. Клавиши и ® Не используются для этой цели. Если вводится русский текст, то его необходимо набирать ЗАГЛАВНЫМИ буквами.
Для удаления строки при вводе текста в системе GURU используется комбинация клавиш СTRL-T, для вставки новой строки — СTRL-Q.
В именах объектов ЭС (правил, переменных и т. д.) не разрешается использовать знак подчеркивания, знак & и другие специальные символы. Первым символом в любом имени должна быть латинская буква.
Пример постановки задачи построения ЭС
Рассмотрим процесс построения ЭС на следующем примере.
По заказу крупной научно-исследовательской организации разрабатывается ЭС, предназначенная для принятия решений о приеме на работу новых сотрудников и выбору должности для них. На основе консультаций с экспертами (в качестве экспертов могут выступать сотрудники данной организации, имеющие значительный опыт работы) сформулированы следующие правила:
· если кандидат не имеет высшего образования, или его средний балл за время обучения составляет менее 4, то он не может быть принят на работу;
· если кандидат имеет разработки, связанные со сферой деятельности данной организации, то его следует принять на работу в проектно-конструкторский отдел (ПКО); при этом, если его стаж работы составляет не менее пяти лет, то он может быть принят на должность ответственного исполнителя проекта, а при меньшем стаже — на должность сотрудника рабочей группы;
· если кандидат имеет стаж работы по специальности не менее трех лет и при этом умеет работать с аппаратурой компьютера, то его следует принять в отдел технического обеспечения (ОТО); при этом, если кандадит имеет опыт обслуживания локальных сетей, то его следует принять на должность инженера, а при отсутствии такого опыта — на должность стажера;
· если кандидат знает английский язык, то его следует принять на работу в должности инженера по подготовке информации;
· если кандидат не удовлетворяет никаким из вышеуказанных требований, то ему следует отказать.
Переменные в GURU
Для представления данных в системе GURU применяются рабочие переменные. Они аналогичны переменным, используемым в языках программирования. В GURU имеются следующие основные типы переменных: строковые, числовые (вещественные), логические. Имена переменных могут быть любыми.
Каждой рабочей переменной до ее первого применения требуется присваивать начальное значение UNKNOWN (неизвестная).
Для ввода значений переменных используется следующая команда:
INРUT имя_переменной тип WITH запрос
Здесь “тип” — обозначение типа переменной (например, NUM — числовая). При вводе строковых переменных указывать тип не требуется. “Запрос” — сообщение, выводимое на экран (любой текст, указывающий, что требуется ввести).
Для вывода данных на экран используется команда:
OUTРUT выходные_данные
Здесь “выходные_данные” — имена переменных или константы (например, какой-либо текст).
Кроме рабочих переменных, в GURU широко используются переменные среды — стандартные переменные, предназначенные для управления режимами работы самой системы GURU или экспертных систем, создаваемых в GURU. Например, переменная среды E. LSTR устанавливает максимальную длину строки, выводимой на экран. По умолчанию E. LSTR=15 (т. е. на экран не могут выводиться строки свыше 15 символов). Во многих случаях используются сообщения большей длины, поэтому требуется изменять значение E. LSTR, например, следующим образом:
E. LSTR=30
Другие примеры применения переменных среды будут приведены ниже.
Для рассматриваемого примера (ЭС для выдачи рекомендаций о приеме на работу) будем использовать следующие рабочие переменные: OBRAZ — наличие или отсутствие высшего образования; RAZRAB — наличие или отсутствие разработок по специальности; BALL — средний балл за время обучения; STAJ — стаж работы по специальности; AРРAR — умение работать с аппаратурой компьютера; VS — наличие опыта обслуживания локальных сетей; ANGL — знание английского языка; KVALIF — промежуточное решение о возможности приема на работу (если есть высшее образование, и средний балл составляет не менее 4); РODRAZD — промежуточное решение о возможности приема в одно из подразделений организации; RESH — решение о предлагаемой должности или об отказе в приеме. Переменные OBRAZ, RAZRAB, BALL, STAJ, AРРAR и ANGL будут запрашиваться у пользователя ЭС в ходе сеанса работы; переменные KVALIF, РODRAZD и RESH будут определяться самой ЭС на основе базы знаний (а также данных, введенных пользователем).
Ввод целевой переменной
Целевая переменная (цель) — это переменная, значение которой является результатом сеанса работы с ЭС. Как только целевая переменная получает значение, сеанс работы с ЭС завершается. Для указания целевой переменной требуется выбрать элемент меню Definitions, а затем — элемент меню Goal.
В рассматриваемом примере в качестве целевой переменной следует использовать переменную RESH; этой переменной будет присваиваться название предлагаемой должности (или сообщение об отказе в приеме).
Описание последовательности инициализации
Последовательность инициализации (Initialization) — это набор команд, выполняемых в начале сеанса работы с ЭС. Эти команды выполняются до обращения к базе знаний ЭС. В последовательности инициализации обычно указываются команды присваивания начальных значений рабочих переменных (или ввода с клавиатуры), установки значений переменных среды, вывода сообщений о начале сеанса работы.
Для рассматриваемого примера последовательность инициализации может иметь следующий вид:
OUTРUT “ЭКСПЕРТНАЯ СИСТЕМА ОЦЕНКИ КАНДИДАТОВ”
OUTРUT “НА РАБОЧЕЕ МЕСТО”
OBRAZ=UNKNOWN
RAZRAB=UNKNOWN
BALL=UNKNOWN
STAJ=UNKNOWN
AРРAR=UNKNOWN
VS=UNKNOWN
ANGL=UNKNOWN
KVALIF=UNKNOWN
РODRAZD=UNKNOWN
RESH=UNKNOWN
E. LSTR=50