Главная / Интеллектуальные системы принятия решений / Построение экспертной системы

Построение экспертной системы

Меню построения экспертной системы

Меню для операций по созданию или редактированию ЭС содержит следующие элементы:

· 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

Оставить комментарий