Сайт Иванова Ю.К.
Инструментальные экспертные системы
Главная Инструментальные ЭС Прикладные ЭС Страница загрузки Написать мне
ИНСТРУМЕНТАЛЬНЫЕ СИСТЕМЫ ДЛЯ ПОСТРОЕНИЯ ЭКСПЕРТНЫХ ПРИЛОЖЕНИЙ В MS WINDOWS И UNIX-ПОДОБНЫХ ОС -
COMP-C и COMP-Pascal

    Системы COMP-P[ascal] и COMP-C (Expert Components for Pascal and С++ oriented tools) поддерживают продукционное представление знаний и различные методы аргументации логического вывода. Их открытая архитектура позволяет встраивать средства использования знаний в прикладные программы и системы, обеспечивая тем самым внутреннюю возможность принятия решений. Системы разрабатывалась, во многом, с расчетом на пользователей, знакомых с системой GURU фирмы mdbs, США и как альтернатива этой системе.
    Система GURU в операционной системе DOS была очень интересным интегрированным продуктом, предоставляя разработчику средства построения интерфейса и обработки данных и знаний.
    С появлением современных средств визуальной разработки типа Microsoft Visual C++, Borland Delphi, Borland C++ Builder с развитыми механизмами построения интерфейсов и доступа к различным СУБД и получением оптимизированного, быстро исполняемого кода, основной особенностью системы GURU, практически, остается только работа со знаниями, но значительная стоимости системы ($7000), впрочем, как и других инструментальных экспертных систем, делает ее малодоступной.
    COMP системы предоставляют разработчикам возможность встраивания компоненты работы со знаниями в ваши проекты в виде библиотеки функций языков Object Pascal Delphi/Kylix и С++ Microsoft Visual и Borland C++ Builder, интегрируя взаимодействие внутренних фактов базы знаний с переменными модулей, написанных в этих средах разработки.
    Базы знаний организуются в виде наборов правил, состоящих из идентификационных, логических и процедурных разделов и предложений.
    Язык представления знаний в системах близок к языку системы GURU.

    Следующие предложения представляют перечень основных разделов набора правил, причем некоторые из них могут быть необязательными:

ЦЕЛЬ: (GOAL:)

ПРАВИЛО: (RULE:)

ЕСЛИ: (IF:)
ТО: (THEN:)
НАЧАЛО: (READY:)
ЗАВЕРШЕНИЕ:(FINISH:)
ОБЪЯСНЕНИЕ: (REASON:)


ВЫВОД: (DO:)

СИ: (C:) для COMP-C
ИНИЦИАЛИЗАЦИЯ: (INITIAL:)

ПЕРЕМЕННАЯ: (VAR:)
МЕТКА: (LABEL:)
ТИП: (TYPE:) ССЫЛКА (REFER)
КОЛИЧЕСТВО: (LIMIT:)
ОПРЕДЕЛЕНИЕ: (FIND:)
РАЗМЕР: (SIZE:)
ЗНАЧЕНИЯ: (VALUES:)



ПАСКАЛЬ: (PASCAL:) для COMP-P

КОНЕЦ: (END:)
В процедурные разделы и предложения для организации интеграции обработки данных и знаний и построения интерфейса могут вставляться блоки исходного текста на языках Object Pascal и С++, которые в процессе компиляции набора правил преобразуются в отдельный, корректно построенный модуль. Особенностью языка представления знаний систем является возможность использования в правилах арифметических и логических выражений общего вида, аналогичных выражениям языков программирования и необходимых для описания инженерных и естественно-научных баз знаний.Интеграция языка представления знаний с алгоритмическими языками снимает любые ограничения на обработку данных любого типа - если Вам не хватает возможностей системы - Вы "уходите" в Delphi или С++, выполняете любые операции и затем возвращаете результат в базу знаний.

Основными функциями COMP систем являются:
  • решение задач в режиме интерактивной консультации с возможностью интерактивной отладки баз знаний (установка режима трассировки с выводом процесса трассировки на экран или в файл);
  • интеграция на уровне функций языков Delphi Object Pascal или С++ различных программных продуктов и информационного обеспечения в единый программно-методический комплекс (эффективное сочетание традиционного программного обеспечения и интеллектуального компонента);
  • решение задач с использованием баз знаний в не интерактивном режиме в составе прикладной программной системы.

Системы снабжены средствами объяснения логического вывода.

В COMP-C и COMP-P версии 1 на уровне отдельных переменных допускается работа с нечеткими знаниями - использование факторов уверенности в диапазоне 0-100.
В COMP-Pascal версий 2 и 3 реализовано полнофункциональное манипулирование результирующими факторами уверенности - в логических выражениях, в алгебраических выражениях, между посылкой и заключением правила, между фактами в разных правилах. Переменные наборов правил могут быть множествами - принимать до 255 значений одновременно.

Системы состоят из следующих компонентов:

  • среда редактирования и компиляции наборов правил;
  • компилятор наборов правил с возможностью компиляции из командной строки;
  • библиотека с механизмом логического вывода и специальными функциями для построения готовых Run-Time продуктов;
  • утилита отображения диаграммы зависимостей правил и переменных из откомпилированных наборов правил;
  • утилита отображения процесса логического вывода после консультации (для COMP-C);
  • демонстрационные примеры.
Откомпилированный набор правил полностью встраивается в исполняемый EXE или DLL модуль и готовая система представляет собой полностью отторгаемый от среды разработки продукт.
Вызов экспертного компонента осуществляется через вызов соответствующей функции.

В системе присутствуют настроечные переменные, позволяющие управлять механизмом логического вывода и средствами отладки. Вызов функции может вставляться в циклы, что позволяет использовать экспертный компонент в системах мониторинга. На тестовых прогонах циклических вызовов экспертного компонента, состоящего из 20 правил производительность при обратной аргументации составляет от 200 (Windows NT) до 550 (Windows 95) консультаций в секунду (ПЭВМ Р-200 ММХ с 32 Мб). Время выполнения тестового набора из 30 000 элементарных правил при обратном методе аргументации на той же ПЭВМ составляет от 1 до 2 секунд. Данные примеры включены в состав дистрибутива.
Скоростные характеристики COMP-C примерно на 5% выше, чем у COMP-P.

Требования к конфигурации технических средств определяются требованиями операционных систем Windows 9х/NT/2000/XP и сред разработки приложений. Системы поставляется в двух вариантах: Master и small.

Все варианты поставляется с эксплуатационной документацией и с полнофункциональным HELP.

В настоящее время ведётся разработка системы COMP-C версии 3.0, функционально аналогичной COMP-P версии 3.5.

Некоторые характеристики систем:
Характеристика
Значение
Максимальное количество правил
65 535 (для версий small - 50/127 - для COMP-P 2 и выше)
Максимальное количество переменных
65 535 (для версий small - 50/127 - для COMP-P 2 и выше)
Максимальное количество констант
65 535 (для версий small - 50/127 - для COMP-P 2 и выше)
Cреды разработки
(поставляемые варианты библиотек)
для COMP-P



для COMP-C



Borland Delphi 5, 6, 6 CLX, 7, 7 CLX, 2005, 2006, 2006 TURBO, CodeGear Delphi 2007, Borland Kylix 3

Microsoft Visual C++ 4.2 - 6.0
Borland C++ Builder 3 - 6
Механизмы аргументации
Прямой, Обратный, Смешанный
Диапазон используемых факторов уверенности
0 - 100
Количество значений для отдельной переменной
до 255
Размер имени переменной (символов)
до 31 (до 255 - для COMP-P 3 и выше)
Размер имени правила (символов)
до 8 (до 255 - для COMP-P 3 и выше)
Размер текста метки переменной (символов)
до 240 (до 255 - для COMP-P 3 и выше)
Допустимые типы переменных
Символьный, Числовой, Целочисленный, Логический
Допустимые типы констант
Символьный, Числовой, Логический

Начиная с COMP-P версия 2 появились следующие новые возможности по сравнению с COMP-P 1 и COMP-C 2:

А. Разработана новая CASE-среда разработки наборов правил. Разрабатывать наборы можно как прежде - в редакторе наборов правил, так и структурированно - редактируя правила, переменные и данные других процедурных и служебных блоков в соответствующих окнах. Появился новый тип файлов - проект, в котором сохраняются все исходные данные проектирования и на основе которого строится текст набора правил для последующей компиляции.

Б. Разработан новый быстрый компилятор наборов правил. Скорость компиляции увеличилась более, чем в 3 раза.

В. В среду разработки и компиляции вставлен блок для выполнения консультации без использования среды разработки Delphi. Это позволяет производить отладку наборов правил значительно быстрее. Естественно, что все блоки ПАСКАЛЬ:[] через которые организуется интерфейс к возможностям Delphi должны отсутствовать на этом этапе отладки. Эти блоки можно написать и временно заключить в комментарии. Все основные параметры управления процессом исполнения доступны и настраиваются в режиме настройки.

Г
. Работа с неопределенностью качественно изменилась. Если в версии 1 использование факторов уверенности допускалось на уровне отдельных переменных, то в версии 2 можно вычислять и учитывать результирующую уверенность логических и арифметических выражений с участием нечетких переменных, выражений в заключении правила, в зависимости от уверенности посылки и результирующую уверенность переменных, получающих значения в различных правилах. Для этого имеются 8 встроенных алгебр для каждого из 5 случаев взаимодействия нечетких переменных. Кроме этого, вы можете подключить свой собственный метод расчета результирующей уверенности для любого случая.

Д. В комплект поставки master версии и в новую среду разработки включен декомпилятор наборов правил, который позволяет формировать проект и исходный набор правил из готовых экспертных приложений, размещенных в EXE или DLL модулях. Автономное использование декомпилятора предполагается, в первую очередь, для отладочных целей - в сформированном тексте пронумерованы внутренними номерами системы все переменные, правила и блоки ПАСКАЛЬ:[], а также представлены все параметры переменных, даже если вы их и не задавали в исходном наборе. Естественно, что декомпилятор полезен и в случае невосполнимых потерь исходных текстов наборов правил.

Е. Добавлены новые параметры управления процессом исполнения. Во первых, это параметры для новых возможностей по работе с факторами уверенности:

  • esSetResultCF - разрешает или запрещает подсчет результирующего фактора уверенности;
  • esSetResultCFMode - задает режимы выбора алгебр подсчета результирующего фактора уверенности. Позволяет задать как встроенные варианты алгебр, так и установить режим использования пользовательского варианта;
  • esSetCFNumExp - содержит указатель на пользовательскую функцию подсчета результирующего фактора уверенности для числовых выражений;
  • esSetCFLogExp - содержит указатель на пользовательскую функцию подсчета результирующего фактора уверенности для логических выражений;
  • esSetCFRule - содержит указатель на пользовательскую функцию подсчета результирующего фактора уверенности выражений в заключении правила, в зависимости от фактора уверенности посылки;
  • esSetCFVar - содержит указатель на пользовательскую функцию подсчета результирующего фактора уверенности для переменных, получающих нечеткие значения в различных правилах.

Во вторых, для большей функциональности, в частности, циклических консультаций, введен параметр esSetReasonFileName. Он позволяет оперативно задавать имя файла, в котором сохраняется информации объяснения логического вывода, в отличии от версии 1, где это имя автоматически формировалось из имени исполняемого модуля экспертной системы.

Ж. Расширены возможности работы с функциями системы. В частности, добавлена специальная функция, позволяющая работать со значениями переменных наборов правил из среды Delphi напрямую, без дополнительной передачи значений. Для этого введена функция cmp_sea_numbvar, возвращающая номер переменной в наборе правил. В связи с появлением параметра управления esSetReasonFileName модифицирована процедура CMPR. Добавлены функции для получения в RUN-TIME количества используемых правил переменных и констант.

З. Начиная с данной версии требуется регистрация системы на ПЭВМ пользователя.В COMP-P версия 3 появились новые возможности:

  1. Размеры имен переменных и правил увеличены до 255 символов.
  2. Добавлена проверка на уникальность имени правила.
  3. Изменены правила записи имен (идентификаторов) переменных и правил. Теперь проверка регистра символов игнорируется - как в языке Object Pascal. Разрешена запись без учета регистра типа переменной и обозначений фактора уверенности.
  4. Добавлена возможность прямой ссылки переменных набора правил на переменные, объявленные в Delphi. В связи с этим появилось новое зарезервированное слово ссылка (refer). В зависимости от того, где используется переменная - в посылке правила или только выводится в заключениях правил, вводится понятие "входная", "выходная" или "входная/выходная" переменная, если встречается в посылке правила и также выводится в заключении правил. Если в предыдущих версиях системы все переменные на момент начала консультации имели значение НЕИЗВЕСТНО, то в данной версии считается, что "входные" ссылочные переменные известны на начало консультации.
  5. Проведена оптимизация процесса активизации консультации с целью улучшения динамических характеристик при выполнении циклических консультаций. Некоторые операции вынесены из модуля активизации консультации в модуль инициализации, который выполняется один раз - при запуске программы. Только за счет этого быстродействие механизма логического вывода увеличилось примерно на 10%.
  6. В компиляторе набора правил добавлен анализатор возможных логических ошибок при построении набора правил. Проверяется присутствие одной и той же переменной в посылке правила и присвоение ей значения в заключении того же правила. При наличии такой ситуации выдается предупреждающее сообщение.
  7. В среду разработки добавлена возможность вызова вспомогательной формы с клавишами основных конструкций, операций и оперативно обновляемым списком переменных, при нажатии на которые соответствующий текст операции, ключевое слово или имя переменной перенесется в окно проекта или текст набора правил.
  8. Добавлена возможность представления форм среды разработки в стиле Windows XP (для других операционных сред).

В версии 3.2 произведены следующие изменения:
1) В small варианте отключена привязка готовых продуктов с встроенным механизмом логического вывода к машине, на которой компилировался набор правил.
2) Регистрация пакета разработки выполняется по-прежнему, но регистрационные данные сохраняются не в реестре, а в параметрическом файле, находящемся в том же каталоге, где среда разработки и компилятор из командной строки.
3) Подключена библиотека с механизмом логического вывода для построения экспертных систем в Borland Delphi 6, 7 CLX и в UNIX -подобных ОС в среде разработки Borland Kylix 3 .
4) В меню среды разработки включён флажок «Компиляция/ Kylix », сигнализируюший о необходимости компиляции набора правил для UNIX -подобной среды и включена вспомогательная функция для конвертирования модулей вашего CLX проекта в кодировку KOI -8 R для нормального отображения кириллистических лексем в ваших приложениях в Kylix . Все модули, сформированные при компиляции набора правил, перекодируются автоматически и не требуют дополнительного использования этой функции.
5) В среде разработке удалена панель поиска и подключены стандартные диалоги поиска и замены, доступные на закладке с текстом набора правил.

В версии 3.3 добавлены библиотеки с механизмом логического вывода для сред разработки Borland Delphi 2006 TURBO и CodeGear Delphi 2007

В версии 3.4 произведены следующие изменения:
1) Устранена ошибка в механизме логического вывода, возникающая для имён правил длиной более 20 символов при запросе объяснения правила на автоматически генерируемой форме для ввода значения переменной.
2) В дистибутив включён единый модуль с механизмом логического вывода, объединённый для Delphi 2006, Delphi 2006 TURBO и Delphi 2007 вместо 3-х отдельных модулей.

COMP-P версия 3.4 small доступна для скачивания на странице загрузки.

По вопросам приобретения систем COMP-P и COMP-C, технической поддержки и возможного сотрудничества обращаться к автору -
Иванову Юрию Константиновичу по E-mail адресам: ykivanov@mail.ru, ykivanov@gmail.com

Главная Инструментальные ЭС Прикладные ЭС Страница загрузки Написать мне
Copyright, 2012, Иванов Ю.К.
Последние изменения: май 2019 г.