8387
.pdfИспользование процедур
В традиционных языках программирования при вызове модуля или процедуры используется имя процедуры. При разработке систем искусственного интеллекта выбор модуля осуществляется на основе текущего состояния проблемной области.
Совокупность правил, реализованных в управляющей структуре в соответствии с алгоритмом на основе исходной структуры данных, выполняется процедурами различного вида:
•
•
•
•
семантического и синтаксического контроля; моделирования;
обработки и изменения структур данных и сред их сопровождения; поиска решений.
Экспертная система должна выполнять процедуры, позволяющие реализовать процессы таким же образом, как это делает человек при использовании собственного опыта экспертных знаний и рассуждений. Важной особенностью является способность вырабатывать грамотные решения, опираясь на явно неполный или противоречивый набор данных. Таким образом, в полноценной ЭС должны быть реализованы процедуры обработки неопределенностей.
Представление неопределенности в информационных приложениях с базами
знаний |
Неопределенность |
|
|
Неопределенность можно определить как |
|
степень соответствия процесса или состояния характеристикам реального мира.
Неполнота |
… |
Недостоверность |
Для исключения семантической неопределенности слов используются вероятностные характеристики и аппарат нечетких множеств.
Неопределенность |
Неопределенность смысла |
|
смысла слова |
фраз |
|
Неточное и размытое |
Синтаксическая |
Синтаксическая |
понятие и отношения |
неопределенность |
неопределенность |
( далеко, близко, |
( искажения |
( содержание, |
рядом и т.д.) |
гра мматической |
контекст) |
|
фразы) |
|
Неопределенность смысла фраз идентифицируется с использованием лингвистического анализатора текста, причем отдельно анализируется синтаксическая неопределенность и семантическая.
Оценка семантической составляющей неопределенности может быть получена с помощью вероятностных показателей различного рода, коэффициентов уверенности
и мощности правил в методе редукции, введения интервалов значений и вероятностей попадания в заданный интервал, использованием формулы Байеса, использованием лингвистических переменных, использованием переменных неопределенности и др.
Инструментальная оболочка разработки экспертных систем CLIPS
CLIPS (С Language Integrated
Production System)
1.Общие сведения о CLIPS
Первая версия инструментальной оболочки CLIPS была разработана весной 1985 г. Особое внимание было уделено созданию инструмента, совместимого с известными системами искусственного интеллекта. Таким образом, синтаксис CLIPS очень близок к синтаксису подмножества С. CLIPS является одним из распространенных инструментальных средств разработки экспертных систем. В оболочке реализуется продукционная модель знаний. В основе разработки - три компонента: список фактов, база знаний в виде правил, блок логического вывода. Система полностью реализована на С. Кроме процедурной,
поддерживает |
и |
объектно-ориентированную |
парадигму |
|
программирования. |
Аспекты |
объектно-ориентированного |
программирования в пособии не рассматриваются. Из-за мобильности, расширяемости, широты возможностей CLIPS получила широкое распространение и в правительстве, промышленности, и университетах. Всем желающим доступен как сам CLIPS последней версии, так и его исходные коды. CLIPS состоит из интерактивной среды – ЭО со своим способом представления знаний, гибкого языка и нескольких вспомогательных инструментов.
2.Представление знаний
В системе CLIPS одной из основных форм представления информации являются факты. Каждый факт представляет фрагмент информации, который был помещен в текущий список фактов, называемый fact-list. Факт представляет собой основную единицу данных, используемую правилами.
Одним из основных методов представления знаний в CLIPS являются правила. Правила используются для представления эвристик, определяющих ряд действий, которые необходимо выполнить в определенной ситуации. Разработчик экспертной системы определяет совокупность правил, которые используются совместно для решения проблемы. Правило состоит из двух частей: антицедента (условия), который является аналогом условия в if-then операторе и записывается слева, и консеквента (заключения), который является аналогом then части этого оператора и записывается справа.
3.Логический вывод
CLIPS включает язык представления порождающих правил
иязык описания процедур. Основными компонентами языка описания правил являются база фактов (fact base) и база правил (rule base). На них возлагаются следующие функции:
−база фактов представляет собой исходное состояние проблемы;
−база правил содержит операторы, которые преобразуют состояние проблемы, приводя его к решению.
Машина логического вывода CLIPS сопоставляет эти факты
иправила и выясняет, какие из правил можно активизировать. Это выполняется циклически, причем каждый цикл состоит из трех шагов:
1.сопоставление фактов и правил;
2.выбор правила, подлежащего активизации;
3.выполнение действий, предписанных правилом.
Такой трехшаговый циклический процесс иногда называют «циклом распознавание – действие»
4.Программирование в CLIPS
4.1.Основные элементы программирования.
CLIPS предоставляет три основных элемента для написания программ:
•простые типы данных;
•функции для манипулирования данными;
•конструкции для пополнения базы знаний.
Простые типы данных
Для представления информации в CLIPS предусмотрено восемь простых типов данных: float, integer, symbol, string, external-address, instance-name и instance-address.
Для представления числовой информации используются типы float и integer, символьной - symbol и string.
При записи числа могут использоваться только цифры (0-9), десятичная точка (.), знак (+) или (-) и (е) при экспоненциальном представлении. Число сохраняется либо как целое, либо как действительное. Любое число, состоящее только из цифр, перед которыми может стоять знак, сохраняется как целое.
Функции
Под функцией в CLIPS понимается фрагмент исполняемого кода, с которым связано уникальное имя и который возвращает полезное значение или имеет полезный побочный эффект (например, вывод информации на экран).
Существует несколько типов функций. Пользовательские и системные функции - это фрагменты кода, написанные на внешних языках (например, на С) и связанные со средой CLIPS. Системными называются те функции, которые были определены изначально внутри среды CLIPS.
Хотя CLIPS и не ориентирована на вычислительные операции, в ней предусмотрен ряд стандартных арифметических и математических функций.
Функции
Конструкция deffunction позволяет пользователю определять новые функции непосредственно в среде CLIPS с использованием синтаксиса CLIPS. Функции, определенные таким образом, выглядят и работают подобно остальным функциям, однако они выполняются не напрямую, а интерпретируются средой CLIPS.
Вызовы функций в CLIPS имеют префиксную форму: аргументы функции могут стоять только после ее названия. Вызов функции начинается с открывающейся скобки, за которой следует имя функции, затем идут аргументы, каждый из которых отделен одним или несколькими пробелами. Аргументами функции могут быть данные простых типов, переменные или вызовы других функций. В конце вызова ставится закрывающаяся скобка.