КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Экспертные системы
В начале 1970-х гг. пришло понимание, что необходимы глубокие знания в соответствующей области и выделение знаний из данных, получаемых от эксперта. Появляются экспертные системы (ЭС), или системы, основанные на знаниях. В основе базы знаний экспертных систем используется система представления знаний, называемая «системой продукций». Системы продукций — это набор правил, используемый как база знаний, поэтому его еще называют базой правил. В продукционных системах, основанных на правилах, знания о решении задачи представляются в виде правил «Если…то…». Этот подход, являясь одним из старейших методов представления знаний о предметной области в экспертной системе, широко применяется в коммерческих и экспериментальных ИСУ. Общий вид продукционного правила представлен ниже: <Идентификатор правила> <приоритет правила> Если <Условие> то <Действие>, где: идентификатор правила — это уникальное наименование продукционного правила, выделяющее его из множества других правил в базе знаний; приоритет правила — число, показывающее «важность» правила в рассуждениях. Если два и более правил будут иметь истинные условия в левой части, то продолжит рассуждения правило с большим приоритетом; условие — это левая часть продукционного правила, совокупность элементарных фактов, связанных знаками конъюнкции (И), дизъюнкции (ИЛИ) и отрицания (НЕ). В качестве простого примера рассмотрим следующее продукционное правило, формат записи которого представлен на языке интегрированной среды для разработки интеллектуальных систем управления КAPPA-РС (компании IntelliCorp): GoodElecSys: IF car:SparkPlugCondition #= Ok And car:Timing #= InSynch And car:Battery #= Charged; THEN car:ElectricalSystem = Ok; car:Status = Running.
При записи правила сначала указывается его идентификатор (имя) «GodElecSys:», а затем после двоеточия — левая и правая части, соответственно <Условие> и <Действие>. Имеем следующий словарь информационных объектов (фактов): car:SparkPlugCondiion — условия искрообразования в автомобиле, car:Timing — регулировка момента зажигания автомобиля, InSynch — синхронизированно, car:Battery — состояние аккумулятора, Charged — заряжено, car:ElectricalSystem — состояние электрической системы автомобиля, car:Status — статус автомобиля, Running — готовность к запуску, ОК — хорошее, And — операция конъюнкции. Логический смысл данного правила следующий:
Если <условия искрообразования в автомобиле хорошие И регулировка момента зажигания автомобиля синхронизирована И аккумулятор заряжен> То <состояние электрической системы автомобиля хорошее, автомобиль готов к запуску>
Поиск решений в системах продукций наталкивается на проблемы выбора правил из конфликтного множества. Один из вариантов механизма поиска решений в системах продукций рассмотрим на примере технологии, предлагаемой разработчиками широко известной в России интегрированной среды для разработки интеллектуальных систем управления КAPPA-РС. На рисунке 32 изображены основные элементы механизма поиска решений системы КAPPA-РС.
Интерпретатор — программа, имитирующая рассуждения эксперта, решающего задачу, и работающая в одном из двух режимов — в режиме рассуждений в прямом направлении (прямой вывод) или в режиме рассуждений в обратном направлении (обратный вывод). Рассуждения в прямом направлении — это рассуждения, идущие в направлении «от фактов» в левых частях правил базы знаний к «действиям», указанным в правых частях правил из базы знаний. База фактов хранит иерархию информационных объектов (пирамиду знаний) в виде «объект: слот». База знаний хранит иерархию правил обработки фактов. План решения задачи (Agenda) — очередь пар «объект: слот», которые должны быть обработаны машиной прямого вывода. Слоты, чьи значения изменены в результате применения правила, автоматически добавляются интерпретатором в Agenda. Список правил (Rule List) — это список всех правил из текущего подмножества правил, удовлетворяющего следующему условию: все элементарные факты, а значит, и составной факт в левой части правила получили значение ИСТИНА. Правило, размещенное в списке правил, считается возбужденным, т. е. «готовым к применению». Прежде чем проверять истинность всех элементарных фактов из левой части правила, интерпретатор проверяет его релевантность («уместность»). Для этого пара «объект: слот» из Agenda сверяется со всеми элементарными фактами из левых частей всех правил базы знаний. Если совпадений нет, правило исключается из рассмотрения. Если есть хотя бы одно совпадение, то правило продолжает рассматриваться, т. е. продолжается оценка истинности других фактов в его левой части. Таким образом, Agenda содержит обрабатываемую информацию из базы фактов, а список правил — множество правил, готовых продолжить рассуждения по решению задачи. Если в списке будет несколько правил, то такая ситуация называется «конфликтом правил», они «конфликтуют» за то, чтобы продолжить рассуждения. Для того чтобы разрешить конфликт, интерпретатору нужна дополнительная информация. Такая информация называется стратегией разрешения конфликта. Система КАPPA-PC, как и большинство аналогичных систем, поддерживает следующие классические стратегии разрешения конфликтов: ¾ стратегия Выборочная оценка (SELECTIVE Evaluation) — в процессе прямого вывода заново возбужденное правило добавляется в список правил в соответствии с его приоритетом. Одно правило из списка получает значение «истина», остальные из конфликтующих правил из списка правил удаляются. Список правил очищается перед тем, как новая пара «объект: слот» из Agenda начнет рассматриваться; ¾ стратегия Поиск в глубину (DEPTHFIRST Evaluation) — отличается от выборочной стратегии только тем, что не очищает список правил после выбора одного из конфликтующих правил и его использования в рассуждениях. Только что активированное правило (т. е. правило из базы знаний, у которого подтвердилась истинность составного факта в левой части) классифицируется в соответствии с его приоритетом и добавляется в начало списка правил. Правило из начала списка применяется интерпретатором в рассуждениях, что добавляет новую пару «объект: слот» в начало Agenda (пара добавляется, если значение слота какого-либо объекта из базы фактов изменено в результате действия, указанного в правой части правила, использованного в рассуждениях). Если есть пары «объект: слот» в Agenda и список правил не пустой, то приоритет отдается оценке следующей пары «объект: слот» в Agenda. ¾ стратегия Поиск в ширину (BREADTHFIRST Evaluation) — в течение прямого вывода в режиме «в ширину» вновь возбужденное правило размещается в соответствии с приоритетом, а потом добавляется в конец списка правил. Затем первое правило из списка применяется, и оно может сгенерировать новую пару «объект: слот» в Agenda. Если есть пары «объект: слот» в Agenda и правила в списке правил, приоритет отдается проверке следующего правила из списка. Рассмотрим пример, иллюстрирующий работу выше описанного механизма поиска решений (см. рис. 32, с. 124) для выборочной стратегии разрешения конфликтов и базы знаний, состоящей из нескольких правил. Имеем следующий словарь информационных объектов базы знаний: SparkPlugCondition — условия искрообразования, Timing — регулировка момента зажигания, OutOfSynch — разсинхронизация, InSynch — синхронизация, IgnitionKey — ключ зажигания, Charged — заряжено, GasSystem — топливная система, Status — состояние, LightSwitch — включатель фар, LightsAppearance — наружный свет (свет фар), Bright — яркий, Dim — тусклый, EngineTurnover — обороты двигателя, Brisk — хорошие, Sluggish — медленные, Battery — аккумулятор. База знаний рассматриваемого примера следующая: BadElecSys: IF car:SparkPlugCondition #= Bad Or car:Timing #= OutOfSynch Or car:Battery #= Low; THEN car:ElectricalSystem = Bad; GoodElecSys: IF car:SparkPlugCondition #= Ok And car:Timing #= InSynch And car:Battery #= Charged; THEN car:ElectricalSystem = Ok; BadEngineSys: IF car:IgnitionKey #= Off Or car:GasSystem #= Bad Or car:ElectricalSystem #= Bad; THEN car:Status = Stopped; GoodEngSys: IF car:IgnitionKey #= On And car:GasSystem #= Ok And car:ElectricalSystem #= Ok; THEN car:Status = Running; BrighLights: IF car:LightSwitch #= On And car:Battery #= Charged; THEN car:LightsAppearance = Bright; DimLights: IF car:LightSwitch #= On And car:Battery #= Low; THEN car:LightsAppearance = Dim; BriskTurnover: IF car:IgnitionKey #= On And car:ElectricalSystem #= Low; THEN car:EngineTurnover = Brisk; SluggishTurnover: IF car:IgnitionKey #= On And car:ElectricalSystem #= Bad; THEN car:EngineTurnover = Sluggish;
В процессе прямого вывода правило, у которого составной факт в левой части примет значение ИСТИНА, добавляется в список правил в соответствии с его приоритетом. Строго говоря, оценка истинности или ложности проводится, когда правило уже находится в списке правил. Как только левая часть правила получит значение ИСТИНА, другие правила из списка правил удаляются. Agenda должна быть пуста перед тем, как следующее правило из списка правил начнет проверяться. Текущая база фактов: car:Battery = Charged; car:ElectricalSystem=NULL car:EngineTurnover=NULL; car:IgnitionKey=On car:LightsAppearance=NULL; car:LightSwitch=On; car:GasSystem #= Ok; car:Status=NULL; car:SparkPlugCondition#=Ok; car:Timing #= InSynch. Assert(сar, Battery); — команда начала поиска решения.
При выполнении этой команды сar:Battery помещается в Agenda и проверяются левые части правил базы знаний.
Проверяется на соответствие с левыми частями правил пара Car:Battery, и добавляются в список правил те из них, у которых совпадение установлено по одному из элементарных фактов:
Проверяется правило BadElecSys. Результат проверки FALSE. Правило удаляется из списка правил.
Проверяется правило GoodElecSys. Результат проверки TRUE. Правило применяется, т. е. выполняются действия из его правой части. Это вносит изменения в базу фактов — слот в паре Car:ElectricalSystem принимает значение Oк. Пара Car:ElectricalSystem добавляется в Agenda. Список правил очищается.
Оцениваются и добавляются в список правил те правила, у которых один из элементарных фактов включает пару Car:ElectricalSystem.
Проверяется правило BadEngineSys. Результат FALSE. Правило удаляется из списка правил.
Поверяется правило GoodEngSys, Результат TRUE. Правило применяется (выполняются действия из его правой части), Car:Status принимает значение Running. Вывод закончен. В результате рассмотренного процесса ИСУ вырабатывает следующую информацию: Car:ElectricalStatus = Oк; Car:Status = Running. «Проблем в электрической системе автомобиля нет, разрешен запуск автомобиля». Разработка ЭС имеет существенные отличия от разработки обычного программного продукта. При разработке ЭС, как правило, используется концепция «быстрого прототипа». Суть этой концепции состоит в том, что разработчики не пытаются сразу построить конечный продукт. На начальном этапе они создают прототип (прототипы) ЭС, который должен продемонстрировать пригодность методов инженерии знаний для данного приложения (или для решения данной задачи). В случае успеха эксперт с помощью инженера по знаниям расширяет знания прототипа о проблемной области. При неудаче может потребоваться разработка нового прототипа или разработчики могут прийти к выводу о непригодности методов ЭС для данного приложения. По мере увеличения знаний прототип может достигнуть такого состояния, когда он успешно решает все задачи данного приложения. Преобразование прототипа ЭС в конечный продукт обычно приводит к перепрограммированию ЭС на языках низкого уровня, обеспечивающих как увеличение быстродействия ЭС, так и уменьшение требуемой памяти. Трудоемкость и время создания ЭС в значительной степени зависят от типа используемого инструментария. В ходе работ по созданию ЭС сложилась определенная технология их разработки, включающая шесть следующих этапов (рис. 33): идентификацию, концептуализацию, формализацию, выполнение, тестирование, опытную эксплуатацию.
Рис. 33. Технология разработки ЭС
На этапе идентификации определяются задачи, которые подлежат решению, выявляются цели разработки, определяются эксперты и типы пользователей. На этапе концептуализации проводится содержательный анализ проблемной области, выявляются используемые понятия и их взаимосвязи, определяются методы решения задач. На этапе формализации определяются способы представления всех видов знаний, формализуются основные понятия, определяются способы интерпретации знаний, моделируется работа системы, оценивается адекватность целям системы зафиксированных понятий, методов решений, средств представления и манипулирования знаниями. На этапе выполнения осуществляется наполнение экспертом базы знаний. В связи с тем, что основой ЭС являются знания, данный этап — наиболее важный и наиболее трудоемкий этап разработки ЭС. Процесс приобретения знаний разделяют на извлечение знаний из эксперта, организацию знаний, обеспечивающую эффективную работу системы, и представление знаний в виде, понятном ЭС. Процесс приобретения знаний осуществляется инженером по знаниям на основе анализа деятельности эксперта по решению реальных задач.
Дата добавления: 2014-01-04; Просмотров: 308; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |