Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Лекция 8 Инструментальные средства для экспертных систем Инструментальное средство ИС для создания эксп

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 6.11.2024

Лекция 8

Инструментальные средства для экспертных систем

Инструментальное средство (ИС) для создания экспертной системы реального времени (ЭС РВ) впервые выпустила в 1985 г. фирма Lisp Machine. Это ИС называлось Picon, и оно исполнялось на символьных ЭВМ Symbolics.

Его успех на рынке привел к тому, что группа ведущих разработчиков Picon образовала в 1986 г. частную фирму Gensym, которая, значительно развив идеи, заложенные в Picon, выпустила в 1988 г. ИС под названием G2 версии 1.0. Ныне функционируют версии 4.1,  5.0  и  6.0.

Ряд других фирм с отставанием от Gensym на 2–3 года начали создавать (или пытаться создавать) свои ИС для экспертных систем реального времени.

В табл. 1.3 приведен довольно полный перечень всех фирм и объявленных ими продуктов подобного класса.

Табл. 1.3

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

Пока наиболее продвинутым ИС, безусловно, остается G2 (Gensym, США). За ним со значительным отставанием (реализовано менее 50 % возможностей G2) следуют RT Works фирмы Talarian (США), COMDALE/C (Comdale, Канада), COGSYS (SC, США), ILOG Rules (ILOG, Франция).

Каждая из этих систем позиционируется её разработчиками как главная, а не в качестве “одной из”, что в значительной степени затрудняет их совместное использование.

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

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

Попытка разработать интеллектуальный компонент для своего продукта на принципах “натурального хозяйства” представляется сегодня таким же анахро-низмом, как и разработка собственной реляционной СУБД вместо использования Oracle или Informix, либо разработка новой математической системы, игнорируя факт существования MathCAD, Matlab, Maple.

Инструментальные средства G2

создания экспертных систем реального времени

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

Примеры  применения G2:

● проектирование гибких цепей поставок для компании HP,

● систем слежения за космическими аппаратами НАСА,

● решение проблем в мобильных телефонных сетях Ericsson (контроль работо-способности и надежности примерно 20 % (по оценкам) мировой сети телефонии на основе стандарта GSM),

● координации производства компании Toyota,

● оптимизации энергопотребления Dow Chemical,

● составления графиков движения по Панамскому каналу,

● крупнейший мировой производитель цемента, Lafarge, использует G2 для управления работой более 50 своих цементных заводов во всем мире, что составляет по данным компании несколько миллионов часов критически важных процессов управления за последние 10 лет,

● решение задач военного управления и контроля.

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

G2 соединяет в себе технологии рассуждения, включая правила, процедуры, моделирование объектов и процессов, имитационное моделирование и графическое представление в единой среде разработки и внедрения.

 В настоящее время по утверждениям специалистов более 50 % ЭС создаются с использованием в качестве инструментального средства именно G2.

Программный продукт G2 создан и поддерживается фирмой Gensym Corp., которая является общепризнанным лидером в области создания динамических экспертных систем реального времени. Проведённый сравнительный анализ системы G2 с другими оболочками экспертных систем (ЭС) показал, что перечень функциональных возможностей, реализованных в G2, практически в два раза превосходит её ближайших конкурентов.

Какие задачи бизнеса решает G2?

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

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

Каковы преимущества G2 для бизнеса?

G2 приносит пользу бизнесу за счет:

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

Дополнительные преимущества, предоставляемые G2 разработчикам:

  •  формулирование правил, объектов, моделей и процедур с помощью структурированного естественного языка позволяет быстро фиксировать знания, которые легко понять и модифицировать,
  •  встроенные редакторы автоматически руководят действиями разработчиков, что минимизирует количество ошибок при программировании,
  •  тестирование приложений посредством моделирования способствует успешному и быстрому внедрению,
  •  интерактивная групповая разработка с использованием пользовательского интерфейса Gensym Telewindows сокращает время разработки проектов.

Приложения G2 работают на MES-уровне. Их можно условно разделить на две большие категории: для управления нештатными ситуациями и для управления производительностью. В число их функций входят:

  •  для управления нештатными ситуациями:
    •  прогнозирование и диагностика проблем,
    •  управление сигнализацией,
    •  управление переходными режимами,
    •  принудительная реализация процедур;
  •  для управления производительностью:
    •  оптимизация процесса на основе правил,
    •  управление качеством в режиме реального времени,
    •  диспетчерское управление на основе правил (по открытому и замкнутому контуру),
    •  координация потоков материалов,
    •  динамическое составление графиков,
    •  управление цепочками поставок.

Как комплексируется G2 с программами человеко-машинного интерфейса

и диспетчерского управления (с АСУТП нижнего уровня)?

Программы человеко-машинного интерфейса и диспетчерского управления (например, продукты от Rockwell Software, Intellution, Wonderware, Siemens, GE и т.д.) предназначены для сбора данных нижнего уровня АСУТП, отображения и/или хранения данных, реализации операторского управления (например, включения/ отключения, изменения настроек или последовательностей действий).

Эти системы могут быть связаны с G2 либо через мосты, такие как G2 OPCLink, либо коммуникационный интерфейс G2 Gateway.

На каком языке написана G2?

Разработчики приложений G2 используют структурированный естествен-ный язык G2 и графический язык G2. Структурированный естественный язык используется в G2 для написания правил, процедур, методов, моделей, атрибутов и других объектов. Также используются графические объектные технологии, такие как дублирование и соединение объектов.

Разработчики проходят учебный курс продолжительностью одну неделю для изучения основ разработки приложений в G2. Для подготовки по промежуточному уровню предлагается дополнительный недельный курс. Для использования G2 не требуется знания языков программирования.

Сама платформа G2 поставляется в виде скомпилированного кода С для работы под UNIX на нескольких аппаратных платформах, под Linux и под Windows XP на ПК с процессором Intel Pentium.

С помощью высокопроизводительного сервера данных G2 Gateway Standard Interface (GSI) разработчик приложений может создавать интерфейсы ко внешним базам данных и системам. Для создания интерфейсов на базе GSI в дополнение к обучению G2 требуется знание кода C или Java.

Для параллельной работы предусмотрен интерфейс Telewindows, позво-ляющий нескольким пользователям одновременно работать с одним приложением G2. Каждый пользователь Telewindows имеет все возможности пользователя G2. Для разработчиков это означает, что они могут работать группами для параллельной разработки решений, а также удаленно, и вносить изменения в работающие приложения G2. Модуль G2 ProTools имеет дополнительные инструменты для управления параллельной разработкой.

Имеются версии G2 для разработки и для внедрения.

Многие клиенты используют G2, имея лицензию на внедрение. Такие лицензии сокращают затраты и повышают безопасность приложений.

Основное отличие между лицензиями на разработку и внедрение G2 заключается в возможности интерактивного редактирования знаний. Имея полную лицензию на разработку, пользователи имеют все возможности интерактивного редактирования базы знаний. С лицензией на внедрение возможности пользователя по редактированию основной базы знаний ограничены только программными изменениями.

Сколько стоит G2?

В России информацию о ценах можно получить у компании «Технопарк «Дубна» – партнера Gensym. Цены для конечных пользователей зависят от конкретной конфигурации приложений. Предлагается два вида лицензий на G2: для разработки и для внедрения, каждая из них может быть в комплекте с обучением и тренингом. G2 также лицензируется в зависимости от количества пользователей. Лицензия на разработку дается на одного пользователя, лицензия на развертывание – на четырех. Все цены на G2 включают один год технической поддержки. После первого года техподдержка оказывается за 15 % от цены лицензии по прайс-листу.

По желанию клиента возможна аренда или лизинг лицензий. Предоставляются скидки в зависимости от размера покупки. Временные лицензии на G2, распространяемые службой заказов, заканчиваются в последний день каждого месяца. Эти демонстрационные лицензионные версии могут быть установлены на любой компьютер и имеют полную функциональность.

Справки о G2 в  Gensym – через службу Gensym HelpLink:

                                        (www.gensym-support.com).

Возможности предлагаемого инструментального средства G2:

Объектно-ориентированная технология:

связи между объектами;

отношения между объектами;

иерархия объектов.

Представление знаний:

правила (общие и конкретные);

процедуры;

динамические модели.

Механизм рассуждений:

от данных;

от цели;

сканирование;

метарассуждения (события, фокусирование на классах объектов или правил);

одновременное выполнение правил и/или процедур.

графическое определение объектов.

клонирование объектов и их групп.

графические пользовательские интерфейсы для различных категорий пользователей.

иногопользовательская кооперативная разработка приложения.

распределенное приложение.

ЭС G2 отличается от большинства динамических ЭС такими характерными свойствами, как:

  •  работа в реальном времени с распараллеливанием процессов рассуждений;
  •  структурированный естественно-языковый интерфейс с управлением по меню и автоматической проверкой синтаксиса;
  •  обратный и прямой вывод, использование метазнаний;
  •  интеграция подсистемы моделирования с динамическими моделями для различных классов объектов;
  •  структурирование БЗ, наследование свойств, понимание связей между объектами;
  •  библиотеки знаний являются ASCII-файлами и легко переносятся на любые платформы и типы ЭВМ;
  •  развитый редактор для сопровождения БЗ без программирования, средства трассировки и отладки БЗ;
  •  гибкий интерфейс оператора, включающий графики, диаграммы, кнопки, пиктограммы и т.п.;
  •  интеграция с другими приложениями и базами данных, возможность удаленной и многопользовательской работы.

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

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

Базовый продукт фирмы Gensym – пятая версия системы G2 – это мощная объектно-ориентированная, графическая среда для разработки и сопровождения приложений, не имеющая сегодня достойных конкурентов среди инструментальных средств построения сложных интеллектуальных систем анализа и управления в динамически изменяющемся окружении. В G2 v.5.0 поддержаны все основные принципы объектно-ориентированного подхода.

Опыт использования G2 в различных прикладных областях показывает, что затраты на разработку по сравнению с традиционными методами (например с использованием языка C или C++) сокращаются примерно в 5–10 раз. Система регистрации версий выводят G2 на уровень современных CASE-средств. Изменение описаний классов и отношений во время исполнения позволяет не только экспериментировать со структурами данных непосредственно в процессе отладки, но и открывает возможности использования генетических алгоритмов, само-модифицирующихся и обучающихся систем.

Возможности G2 в части поддержки распределенных приложений на основе архитектуры клиент/сервер и легкая интеграция с разнородными источниками информации позволяют использовать ее в качестве связующего звена в распределенных вычислительных средах, объединяющих как технические средства (контроллеры, ведущих фирм и каналы связи), так и развитые СУБД (ORACLE, Sybes, INFORMIX, все ODBC совместимые СУБД). Безопасность и конфиденциальность распределенной обработки достигаются за счет системы уровней автоматической проверки прав доступа при установлении сетевого взаимодействия процессов через независимый монитор транзакций – G2 Standard Interface (GSI).

Программные продукты фирмы Gensym работают под управлением различных вариантов операционных систем UNIX и VMS (большинство современных рабочих станций фирм SUN, IBM, DEC, HP используют именно эти операционные системы), четвертая версия G2 может работать под управлением MS Windows NT и MS Windows 95. Последнее обстоятельство открывает возможность переноса приложений на базе G2 на персональные ЭВМ с i486, Pentium и DEC Aplha.

Открытость системы G2 и продуктов на ее основе обеспечивается ориентацией фирмы Gensym на промышленные стандарты. Фирма Gensym сотрудничает в этой области со многими независимыми организациями и комитетами по стандартам. В части технических средств – это поддержка широкого спектра платформ DEC, HP, Sun, IBM, SG и ПК на базе процессоров x86 и Pentium. Развитый графический интерфейс, включающий элементы анимации, базируется на средствах Motif и MS Windows. В G2 поддержан стандарт ISO 8859-5 в части представления символов кириллицы, независимо от операционной среды. Эта особенность открывает российским разработчикам возможность использования русских имен в названиях классов, атрибутов и т. д., то есть полностью русскоязычного интерфейса.

Поддерживаемые сетевые протоколы – TCP/IP и DECnet. Архитектура клиент/сервер на уровне обмена данными поддерживается монитором транзакций GSI и DDE, на уровне объектов - CORBA, на уровне приложения – клиентской подсистемой Telewindows.

Система  CLIPS

CLIPS (C Language Integrated Production System) начала разрабатываться в космическом центре Джонсона NASA в 1984 году. CLIPS и документация на этот инструмент свободно распространяется через интернет по адресу: (http://www.ghg.net/clips/CLIPS.html). Язык CLIPS свободен от недостатков предыдущих инструментальных средств для создания ЭС, основанных на языке LISP. Язык CLIPS получил большое распространение в государственных организациях и учебных заведениях благодаря низкой стоимости, мощности, эффективности и переносимости с платформы на платформу.

Следует отметить, что несмотря на многочисленные преимущества функцио-нального программирования, некоторые задачи лучше решать в терминах объектно-ориентированного программирования (ООП), для которого характерны три основные возможности: ИНКАПСУЛЯЦИЯ (работа с классами), ПОЛИМОРФИЗМ (работа с родовыми функциями, поддерживающими различное поведение функции в зависимости от типа аргументов), НАСЛЕДОВАНИЕ (поддержка абстрактных классов).

Объектно-ориентированное программирование поддерживает многие языки, в том числе Smalltalk, C++, Java, Common LISP Object System (CLOS). Язык CLIPS, в свою очередь, вобрал в себя основные преимущества С++ и CLOS.

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

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

Практическая разработка экспертных систем

в среде CLIPS

Постановка задачи

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

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

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

Приступим к формализации знаний экспертов по управлению ТП создания деталей сложной формы. Выделим множество информативных (существенных) параметров, влияющих на ТП и позволяющих управлять ТП с некоторой достоверностью. Одновременно для выбранных параметров выделим информа-тивные значения или информативные диапазоны значений. Указанные параметры и их значения представлены в табл. 1.4.

Таблица 1.4. Информативные параметры ТП

№№ п/п

Обозначение параметра

Название параметра

Единица измерения

Диапазон значений

1

Vr

Скорость резания

   об/мин

              A, B, C

2

Vm

Подача

   мм/с

10-180 с шагом 10

3

T

Виды траектории

Круговая (T=0), по участкам 1(T=1), ..., по участкам 6(T=6)

4

I

Инструмент

алмазный (I=1), на бакелитовой основе (I=2), на эльборовой основе (I=3)

5

G

Геометрические параметры инструмента

тор (G=tor), линия (G=line), макс.радиус вращения Rm, угол контакта инструмента и детали J, угол заточки S

6

Ds

Размер детали

     мм

10,  300,   800

7

Dm

Материал детали

Титан1 (Dm=1), Титан2 (Dm=2), Жаропрочная сталь (Dm=3)

8

Da

Требования к детали по точности

1,   2,   3

9

Dar

Достигнутая точность детали

1,   2,   3

Запишем со слов экспертов информационные образы управляющих решений в алфавите значений информационных параметров. В таблице 1.5 представлена база знаний (база правил) нашей экспертной системы управления технологическим процессом. Здесь достоверность это уверенность эксперта, что такое воздействие позволит достичь заданных параметров обработки Ds, Dm, Da, Dar на основе данного воздействия.

Таблица 1.5. База знаний ЭС

№№ п/п

Ds

Dm

Da

Dar

Управляющее воздействие

Достоверность

Прим.

1

10

1

1

Vr=A, Vm=10, T=0, I=1, G=tor

        0,98

2

10

2

2

Vr=B, Vm=10, T=1, I=1, G=line, Rm=40, J=80, S=60

        0,95

3

300

2

Vr=B, Vm=20, T=2, I=1, G=tor

        0,92

4

300

3

Vr=C, Vm=40, T=3, I=2, G=line, Rm=50, J=75, S=75

        0,97

5

800

2

2

1

Vr=B, Vm=60, T=4, I=2, G=line, Rm=60, J=70, S=70

        0,94

6

800

< 3

Vr=C, Vm=80, T=6, I=3, G=line, Rm=60, J=60, S=75

        0,90

7

800

3

Vr=B, Vm=40, T=6, I=3, G=line, Rm=60, J=60, S=75

        0,90

Достоверность правильности управляющего воздействия должна автоматически корректироваться по результатам изготовления детали. В табл. 1.5 приведен учебный пример базы знаний, упрощенный для целей реализации. Здесь не сформулированы задачи работы с базой данных. База целей (конфликтное множество правил) является внутренним для CLIPS механизмом. В общем случае, в процессе обработки производится измерение параметров, и управляющие воздействия задаются в зависимости от результатов измерений и БЗ управляющих воздействий. Например, в данном примере, пока точность детали Dar < 3, работает строка 6 таблицы 1.5, как только Dar достигло значения 3, начинает работать строка 7. Это и есть простейший пример работы ЭС в реальном времени.

Основы программирования в системе CLIPS

Отличительной особенностью CLIPS являются конструкторы для создания баз знаний (БЗ):

defrule

определение правил;

deffacts

определение фактов;

deftemplate

определение шаблона факта;

defglobal

определение глобальных переменных;

deffunction

определение функций;

defmodule

определение модулей (совокупности правил);

defclass

определение классов;

defintances

определение объектов по шаблону, заданному defclass;

defmessagehandler

определение сообщений для объектов;

defgeneric

создание заголовка родовой функции;

defmethod

определение метода родовой функции.

Конструкторы не возвращают никаких значений, в отличие от функций, например:

 (deftemplate person

(slot name)

(slot age)

(multislot friends))

(deffacts people

(person (name Joe) (age 20))

(person (name Bob) (age 20))

(person (name Joe) (age 34))

(person (name Sue) (age 34))

(person (name Sue) (age 20)))

Пример функции:

(deffunction factorial (?a)

  (if (or (not (integerp ? a)) (< ? a0)) then

     (printout t "Factorial Error!" crlf)

  else

     (if (= ? a0) then

        1

     else

        (*? a (factorial ($-$ ? a1))))))

Правила в CLIPS состоят из предпосылок и следствия. Предпосылки также называют ЕСЛИ-частью правила, левой частью правила или LHS правила (left-hand side of rule). Следствие называют ТО-частью правила, правой частью правила или RHS правила (right-hand side of rule).

Пример правила представлен ниже:

(deftemplate data (slot x) (slot y))

(defrule twice

(data (x ? x) (y =(*2 ? x)))

)

(assert (data (x2) (y4)); f-0

  (data (x3) (y9))); f-1

Здесь самая распространенная в CLIPS функция assert добавляет новые факты в список правил. В противоположность assert функция retract удаляет факты из списка фактов, например:

(defrule vis11

  ?doors < — (fit ? wdfit)

  (test (eq ? wdfit no))

 

  (assert (EVIDENCE OF MAJOR ACCIDENT))

  (retract ? doors))

В этом правиле проверяется наличие факта doors и в случае его отсутствия факт doors удаляется из списка фактов задачи.

Функция modify является также весьма распространенной. Она позволяет в определенном факте поменять значение слота, например,

(deftemplate age (slot value))

(assert (age (value young)))

(modify 0 (value old))

Следующий пример описывает представление данных в виде фактов, объектов и глобальных переменных. Примеры фактов:

(voltage is 220 volt)

(meeting (subject "AI") (chief "Kuzin") (Room "3240"))

В первой строке приведен упорядоченный факт, во второй - неупорядоченный, в котором порядок слотов не важен.

CLIPS поддерживает следующие типы данных: integer, float, string, symbol, external-address, fact-address, instance-name, instance-address.

Пример integer:

594

23

+51

−17

Пример float:

594e2

23.45

+51.0

−17.5e−5

String — это строка символов, заключенная в двойные кавычки.

Пример string: "expert", "Phil Blake", "состояние $-0$", "quote=\"

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

If

оператор ветвления;

While

цикл с предусловием;

loop-for-count

итеративный цикл;

prong

объединение действий в одной логической команде;

prong$

выполнение набора действий над каждым элементом поля;

return

прерывание функции, цикла, правила и т.д.;

break

то же, что и return, но без возвращения параметров;

switch

оператор множественного ветвления;

bind

создание и связывание переменных.

Функции CLIPS описываются в книгах. Среди логических функций (возвращающих значения true или false) следует выделить следующие группы:

  •  функции булевой логики: and, or, not 
  •  функции сравнения чисел: =, , >, , <,
  •  предикативные функции для проверки принадлежности проверяемому типу: integerp, floatp, stringp, symbolp, pointerp (относится ли аргумент к xternal-address), numberp (относится ли аргумент к integer или float), lexemerp (относится ли аргумент к string или symbol), evenp (проверка целого а четность), oddp (проверка целого на нечетность), multifildp (является ли аргумент составным полем).
  •  Функции сравнения по типу и по значению: eq, neq

Среди математических функций следует выделить следующие группы:

  •  Стандартные: +, -, *, /, max, min, div (целочисленное деление), abs (абсолютное значение), float (преобразование в тип float), integer (преобразование в тип integer)
  •  Расширенные: sqrt (извлечение корня), round (округление числа), mod (вычисление остатка от деления)
  •  Тригонометрические: sin, sinh, cos, cosh, tan, tanh, acos, acosh, acot, acoth, acsc, acsch, asec, asech, asin, asinh, atan, atanh, cot, coth, csc, csch, sec, sech, deg-grad (преобразование из градусов в секторы), deg-rad (преобразование из градусов в радианы), grad-deg (преобразование из секторов в градусы), rad-deg (преобразование из радиан в градусы)
  •  Логарифмические: log, log10, exp, pi

Среди функций работы со строками следует назвать функции:

str-cat

объединение строк,

sym-cat

объединение строк в значение типа symbol,

sub-string

выделение подстроки,

str-index

поиск подстроки,

eval

выполнение строки в качестве команды CLIPS,

build

выполнение строки в качестве конструктора CLIPS,

upcase

преобразование символов в символы верхнего регистра,

lowcase

преобразование символов в символы нижнего регистра,

str-compare

сравнение строк,

str-length

определение длины строки,

check-syntax

проверка синтаксиса строки,

string-to-field

возвращение первого поля строки.

Функции работы с составными величинами являются одной из отличительных особенностей языка CLIPS. В их число входят:

create$

создание составной величины,

nth$

получение элемента составной величины,

members

поиск элемента составной величины,

subset$

проверка одной величины на подмножество другой,

delete$

удаление элемента составной величины,

explode$

создание составной величины из строки,

implode$

создание строки из составной величины,

subseq$

извлечение подпоследовательности из составной величины,

replace$

замена элемента составной величины,

insert$

добавление новых элементов в составную величину,

first$

получение первого элемента составной величины,

rest$

получение остатка составной величины,

length$

определение числа элементов составной величины,

delete-member$

удаление элементов составной величины,

replace-member$

замена элементов составной величины.

Функции ввода-вывода используют следующие логические имена устройств:

stdin

устройство ввода,

stdout

устройство вывода,

wclips

устройство, используемое как справочное,

wdialog

устройство для отправки пользователю сообщений,

wdisplay

устройство для отображения правил, фактов и т.,п.,

werror

устройство вывода сообщений об ошибках,

wwarning

устройство для вывода предупреждений,

wtrase

устройство для вывода отладочной информации,

Собственно функции ввода-вывода следующие:

open

открытие файла (виды доступа r, w, r+, a, wb),

close

закрытие файла,

printout

вывод информации на заданное устройство,

read

ввод данных с заданного устройства,

readline

ввод строки с заданного устройства,

format

форматированный вывод на заданное устройство,

rename

переименование файла,

remove

удаление файла.

Среди двух десятков команд CLIPS следует назвать основные команды при работе со средой CLIPS:

load

загрузка конструкторов из текстового файла,

load+

загрузка конструкторов из текстового файла без отображения,

reset

сброс рабочей памяти системы CLIPS,

clear

очистка рабочей памяти системы,

run

выполнение загруженных конструкторов,

save

сохранение созданных конструкторов в текстовый файл,

exit

выход из CLIPS.

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

В завершение следует иметь в виду, что CLIPS может не удовлетворительно работать в реальном времени, когда потребуется время реакции менее 0,1 сек. В этом случае надо исследовать на разработанном прототипе механизмы вывода для всего множества правил предметной области на различных по производительности компьютерах. Как правило, современные мощные компьютеры Intel обеспечивают работу с продукционными системами объемом 1000–2000 правил в реальном времени. Веб-ориентированные средства на базе JAVA (системы Exsys Corvid, JESS) являются более медленными, чем, например, CLIPS 6.0 или OPS-2000. Поэтому CLIPS – лучший на сегодня выбор для работы в реальном времени среди распространяемых свободно оболочек ЭС, разработанных на C++.

Программирование в CLIPS экспертной системы управления технологическим процессом

Программа ЭС управления ТП по обработке деталей сложной формы, разработанная на основе табл. 7.1 и табл. 7.2, выглядит следующим образом.

;;;===========================================

;;; Control Expert System of technological process

;;;

;;; This expert system administers technological process

;;; of creations of details of the complex form

;;;

;;; CLIPS Version 6.0 Example

;;;Author: Vladimir Makushkin, vmakushkin@mail.ru

;;;

;;; To execute, merely load, reset and run.

;;;===========================================

(deffacts initial-state

     (Ds 800)

     (Dm 2)

     (Da 2)

(Dar 1))

(defrule rule1

  (declare (salience 9098))

     (Ds 10)

     (Dm 1)

     (Da 1)

(printout t "Rule1: Vr=A, Vm=10, T=0, I=1, G=tor" crlf))

(defrule rule2

  (declare (salience 9095))

     (Ds 10)

     (Dm 2)

     (Da 2)

(printout t "Rule2: Vr=B, Vm=10, T=1, I=1, G=line, Rm=40, J=80, S=60" crlf))

(defrule rule3

  (declare (salience 9092))

     (Ds 300)

     (Dm 2)

(printout t "Rule3: Vr=B, Vm=20, T=2, I=1, G=tor" crlf))

(defrule rule4

  (declare (salience 9097))

     (Ds 300)

     (Da 3)

  

(printout t "Rule4: Vr=C, Vm=40, T=3, I=2, G=line, Rm=50, J=75, S=75" crlf))

(defrule rule5  

  (declare (salience 9094))

     (Ds 800)

     (Dm 2)

     (Da 2)

     (Dar 1)

     

(printout t "Rule5: Vr=B, Vm=60, T=4, I=2, G=line, Rm=60, J=70, S=70" crlf))

(defrule rule6_7  

  (declare (salience 9090))

     (Ds 800)

     (Dar ? num)

     (if (< ? num 3)

           then

      (printout t "Rule6: Vr=B, Vm=40, T=6, I=3, G=line, Rm=60, J=60, S=75" crlf)

           else

      (printout t "Rule7: Vr=C, Vm=80, T=6, I=3, G=line, Rm=60, J=60, S=75" crlf)))

Листинг 7.1. Программа ЭС управления ТП

по обработке деталей сложной формы (html, txt)

Эта программа сохраняется в виде файла с именем, например, robot.clp, далее в среде CLIPS выполняются команды: clear; load robot.clp; reset и run. Эта программа начинает работать. Входные воздействия заданы в данном примере через deffacts initial-state.

Активизация правил БЗ для конкретных воздействий, заданных в программе, дает конфликтное множество (базу целей) – правила rule5 и rule6_7, а затем по критерию максимальной достоверности первым выбирается управляющее воздействие на систему низшего уровня:

Rule5: Vr=B, Vm=60, T=4, I=2, G= line, Rm=60, J=70, S=70

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

(defrule Dar_parameter

(declare (salience 9101))

  (Dar ? num)

(printout t "Ds parameter has value "crlf"

1) 10 "crlf" 2) 300 "crlf" 3) 800 "crlf" Choose 1—3 ")

  (assert (Dar =(read))))

Читателю предлагается самостоятельно дописать правила останова программы (halt) по условиям Da=Dar или достижению заданного значения Ds, а также правила для проверки граничных условий. Дотошный читатель, разобравшийся в программе, может спросить, зачем мне CLIPS, если такую простую программу я могу написать на любом языке программирования. Во-первых, это учебный пример с простейшей базой знаний. Во-вторых, в реальной жизни база знаний содержит сотни правил, управляющие параметры постоянно считываются с датчиков и видеокамер, и сразу же отрабатывается поиск в сети продукций новых управляющих воздействий. Простой программой в таком случае не обойтись.

Примером более сложной программы для решения задачи планирования последовательности действий робота (лекция 3, рис. 3.4) является фрагмент программы Д. Грим-шоу (www.ryerson.ca/~dgrimsha). Эта программа управления роботом по перекладыванию кубиков. Начальное состояние положения кубиков в стеке 1 и стеке 2 определяется путем перечисления кубиков сверху вниз. Задавая различные комбинации в deffacts initial-state, мы получим конкретные последовательности действий робота.

(deftemplate goal

  (slot move)

  (slot on-top-of))

(deffacts initial-state

  (stack A B C)

  (stack D E F)

  (goal (move C) (on-top-of E)))

(defrule move-directly

  ?goal < — (goal (move ?block1) (on-top-of ?block2))

  ?stack-1 < — (stack ?block1 $?rest1)

  ?stack-2 < — (stack ?block2 $?rest2)

  

(retract ?goal ?stack-1 ?stack-2)

  (assert (stack $?rest1))

  (assert (stack ?block1 ?block2 $?rest2))

  (printout t ?block1 "moved on top of" ?block2 crlf))

(defrule move-to-floor >

?goal < — (goal (move ?block1) (on-top-of floor))

?stack-1 < — (stack ?block1 $?rest)

  

  (retract ?goal ?stack-1)

  (assert (stack ?block1))

  (assert (stack $?rest))

  (printout t ?block1 "moved to the floor." crlf))

(defrule clear-upper-block

  (goal (move ?block))

  (stack ?top $? ?block $?)

  

  (assert (goal (move ?top) (on-top-of floor))))

(defrule clear-lower-block

  (goal (on-top-of ?block))

  (stack ?top $? ?block $?)

  

  (assert (goal (move ?top) (on-top-of floor))))

Результат работы CLIPS в данном случае будет следующий:

CLIPS$>$ (run)

A moved to the floor.

B moved to the floor.

D moved to the floor.

C moved on top of E

CLIPS$>$

В завершение лекции читателю может быть рекомендована книга Ж. Гурратано [94], содержащая множество примеров программирования ЭС на основе CLIPS.

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

Список литературы 

  1.  Попов Э.В. Экспертные системы: Решение неформализованных задач в диалоге с ЭВМ. – М.: Наука. Гл. ред. физ.-мат. лит., 1987.
  2.  Марселлус Д. Программирование экспертных систем на Турбо Прологе: Пер. с англ. – М.: Финансы и статистика, 1994.
  3.  Попов Э. В., Фоминых И. Б., Кисель Е. Б., Шапт М. Д.Статические и динамические экспертные системы. – М.: Финансы и статистика, 1996.
  4.  Муромцев Д.И. Введение в технологию экспертных систем. – СПб: СПб ГУ ИТМО, 2005.

PAGE  8




1. тема АС УВД СИНТЕЗАР2 эксплуатируемая службой УВД РУП Белаэронавигация представляет собой совокупност
2. задание Наименьшей адаптационной способностью обладают рецепторы следующих анализаторов 1
3.  Выбор схемы очистных сооружений
4. Реферат- Психоаналитические идеи и представления в терапевтическом анализе
5. Доклад- Мозаїки Київської Русі
6. РЕФЕРАТ дисертації на здобуття ученого ступеня кандидата технічних наук Краматорськ 2007 Ди
7. тема диагностики которая впервые позволит врачам легко и безболезненно исследовать ткань на наличие раковы
8. Партия власти снова у власти Игорь Саначев Одним из важных итогов выборов в Пр
9. ЗВІТ З ЛАБОРАТОРНОЇ РОБОТИ 2 з дисципліни ldquo;Статистикаrdquo; Виконала студентка 2 курсу
10. ИжГТУ имени МТКалашникова Воткинский филиал Автор- Уразбахтина А
11. Тема 11 Общая характеристика виды и субъекты туроперейтинга Тема 1
12. НА ТЕМУ- ФОРМЫ ПОЛУЧЕНИЯ ОБРАЗОВАНИЯ И ФОРМЫ ОБУЧЕНИЯ В РФ Выполнила- студентка группы
13. Эффективная технология работы с растущими потоками несистематизированной текстовой информации
14. педагогов и учащихся в сторону усиления субъектности последних.
15. А вдруг я беременна живот растет а мама ей отвечала- Не говори ерунды у тебя наверное просто запор пойди
16. Юридическая природа и содержание дееспособности граждан3 2
17. Сердечная садхана гуру устраняющая все препятствия Молитва коренному ламе ОГ МИН ЧО КЬИ ЙИНГ КЬИ ПХО
18. Обучение монологической речи будущих педагогов профессионального образования
19. Компютерна графіка
20. . Понятие о темпераменте и его физиологические основы 2