Научная статья на тему 'Экспертный компонент системы автоматизированного исследовательского проектирования'

Экспертный компонент системы автоматизированного исследовательского проектирования Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
91
29
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Иванов Ю. К., Табаков В. М.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Экспертный компонент системы автоматизированного исследовательского проектирования»

Каркасная модель корпуса содержит следующие данные:

* семейство шпангоутов;

* семейство ватерлиний;

* линия разреза по диаметральной плоскости;

* линии обвода бортов;

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

* ширина по конструктивной ватерлинии;

* углубление по конструктивной ватерлинии;

* наибольшая длина;

* наибольшая ширина;

* высота борта при мидель-шпангоуте.

Для сокращения затрат на разработку проблемно-ориентированных моделей ИСМ снабжена обширными библиотеками по статике корабля и геометрическим функциям (функциями надкаркасной модели корпуса).

В состав ИСМ входит отдельная подсистема для работы с геометрической моделью корабля (ГМК). Основными составляющими ГМК являются:

* совокупность параметрических моделей элементов размещения;

* каркасная модель корпуса для надводных кораблей и параметрическая модель корпуса для подводных лодок;

* модель архитектурно-компоновочного облика корабля.

Для разработки геометрических моделей (трехмерных) элементов размещения система предоставляет удобный интерактивный редактор элементов размещения. Элемент размещения составляется из примитивов - предопределенного набора трехмерных фигур (шар, цилиндр, параллелепипед и т.д.).

ГМК представляется в виде взаимосвязанного набора данных специального вида - таблиц, которые могут заполняться в расчетных проблемных модулях ВМ. В этом случае архитектурный облик корабля будет представлен лишь теми элементами, комплексами и подсистемами, характеристики которых рассчитывались в данном исследовании (вычислительном эксперименте). Подсистема геометрического моделирования представляет возможности по изображению следующих видов корабля: схемы общего расположения, вида сбоку и сверху, продольного разреза, плана главной палубы, разреза по палубе и по переборке, изометрической проекции, произвольного вида, теоретического чертежа.

Кроме отображения спроектированного в ходе вычислительного эксперимента корабля, подсистема позволяет корректировать ГМК в интерактивном режиме, добавляя в нее элементы размещения из библиотеки элементов размещения, изменяя положение элементов размещения или удаляя их.

Данные ГМК могут быть переданы в программный комплекс "Удаленная графика", предназначенный для качественного визуального анализа и документирования архитектурного облика корабля. Этот комплекс реализован на базе графического редактора AutoCad.

Предоставляется возможность ввести в систему ГМК, разработанную другими средствами. При этом таблицы, составляющие ГМК, должны быть представлены в виде таблиц Excel, а каркасная модель корпуса - в текстовом формате (заданной структуры).

На базе ИСМ разработаны системы автоматизированного проектирования надводных кораблей и подводных лодок, которые успешно эксплуатируются в I ЦНИИ МО РФ.

ЭКСПЕРТНЫЙ КОМПОНЕНТ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ИССЛЕДОВАТЕЛЬСКОГО ПРОЕКТИРОВАНИЯ

Ю.К. Иванов, В.М. Табаков

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

Одним из типов прикладных ЭС являются системы проектирования. Системы проектирования строят конфигурации, которые удовлетворяют огра-

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

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

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

В системе автоматизированного исследовательского проектирования (САИПР) "Чертеж-4" реализована продукционная схема представления знаний. Язык продукций, наряду с алгоритмическими языками, представленными в оболочке САИПР, является равноправным средством описания моделей. Этот язык является гибридным, так как допускает использование языковых конструкций алгоритмического языка С .

Экспертный компонент состоит из следующих подсистем:

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

- компилятор наборов правил;

- интерпретатор знаний - механизм логического вывода (механизм аргументации) со средствами объяснения и трассировки логического вывода.

Процесс построения исполняемого модуля системы представлен на рисунке.

Редактор наборов правил встроен в основную среду разработки и представляет собой стандартный

Библиотепа функций механизма логического вывода

Исходный набор правил

КОМПИЛЯТОР НАБОРОВ ПРАВИЛ

в заключении, не выполняются, а рассматривается другое правило.

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

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

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

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

Дополнительные систем ные и пользовательские функции А

ФИИИЛ ПРОЕКТА MS VC**

Комеилироварный набор правил

КОМПИЛЯТОР и СБОРЩИК MS VC**

ИСПОЛНЯЕМАЯ

(DLL) ЭКСПЕРТНАЯ СИСТЕМА

Сгенерероманн ый из наЛо ра правил модуль C**

Процесс построения исполняемой мкспертной системы

.m-сБя«сивЛР

Рсу щясивлйяисй-с I LiiigLij; I Н1Н.Ч,!-j ии.чи-

разработки Microsoft Visual C++.

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

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

В механизме логического вывода реализованы три метода вывода - прямой, обратный и смешанный.

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

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

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

Основные конструкции наборов правил

Набор правил состоит из обязательных и необязательных разделов. Имена разделов записываются прописными буквами и заканчиваются двоеточием (:). Порядок разделов в наборе правил не имеет значения для компилятора и может быть произвольным. Допускается пересечение разделов, например, раздел инициализации можно вставлять между правилами или описанием переменных. Порядок расположения правил является определяющим в приоритете выбора для механизма логического вывода.

Обязательные разделы набора правил:

- раздел цели (ЦЕЛЬ:);

- раздел правила (ПРАВИЛО:);

- раздел окончания набора (КОНЕЦ:).

Необязательные разделы:

- раздел переменной (ПЕРЕМЕННАЯ:);

— раздел инициализации (ИНИЦИАЛИЗАЦИЯ:);

— раздел вывода результатов (ВЫВОД:).

Раздел цели представляется ключевым словом

ЦЕЛЬ: и следующим за ним идентификатором имени переменной, которая является явной или условной целью данного набора правил. Раздел цели является обязательным разделом, поэтому всегда одна переменная должна быть объявлена как переменная цели.

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

Если необходимо при консультации с набором правил получить одновременно несколько целей, например, получить комплексную оценку научного эксперимента по нескольким обязательным несвязанным критериям, то можно создать искусственную цель: например, КОМПЛЕКСНАЯ_ ОЦЕНКА, которая будет являться только индикатором того, получены ли все составляющие цели или нет.

При этом формируется специальное правило, которое представляет собой неявный фрейм, слотами которого являются составляющие цели.

Например:

ПРАВИЛО: ЦЕЛЬ

ЕСЛИ: цель_1 & цель_2 & цель_3 & цель_4

ТО: КОМПЛЕКСНАЯ_ОЦЕНКА=ИСТИНА

ОБЪЯСНЕНИЕ: комплексная оценка достигается при определении составляющих целей 1-4.

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

В случае когда вам требуется использовать несколько независимых наборов правил в одном приложении, следует использовать другой способ задания цели. Так как в готовый продукт может быть встроен только один откомпилированный набор правил, то следует разместить ваши независимые наборы правил в один файл набора, задав в разделе ЦЕЛЬ: имя цели одного из них. Для других наборов никаких дополнительных целей задавать не надо. Для вывода других целей при вызове механизма логического вывода следует воспользоваться параметрической настройкой.

В системе предусмотрена глобальная переменная, которой можно присвоить значение имени переменной, отличной от объявленной в разделе ЦЕЛЬ:. Если значение этой переменной задано, то вывод будет осуществляться исходя из вновь назначенной цели. Это позволяет в одном наборе правил размещать множество разнородных наборов, активизируя нужный заданием соответствующей цели.

Раздел инициализации представляется ключевым словом ИНИЦИАЛИЗАЦИЯ: и следующим за ним процедурным блоком.

ИНИЦИАЛИЗАЦИЯ: <процедурный блок>

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

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

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

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

ВЫВОД: <процедурный блок>

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

Раздел вывода результатов условно называется так, поскольку после выполнения консультации может не понадобиться выводить результаты, например на экран, а просто передавать их другим компонентам интегрированной системы. Этот раздел является необязательным. Вывод или передачу данных можно организовать и другими способами, например, из процедурных блоков предложений ТО: или ЗАВЕРШЕНИЕ: правила, в котором определяется переменная цели.

Раздел правил представляет собой одну или множество конструкций следующего вида: ПРАВИЛО: <идентификатор имени правила> ЕСЛИ: <логическое выражение> ТО: <процедурный блок> НАЧАЛО: <процедурный блок> ЗАВЕРШЕНИЕ: <процедурный блок> ОБЪЯСНЕНИЕ: <текст>

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

Конструкция ЕСЛИ: <логическое выражение> совместно с предложением ТО: является основным носителем знаний ЭС. Предложение ЕСЛИ: называется посылкой правила, или его левой частью. Логическое выражение представляет собой один или множество фактов, отображенных идентификатора-

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

Например:

ЕСЛИ: (а=5 & с=Ь*0.25) ! (а & £>3)

Запись, представленная здесь, подобна записи логических выражений в языках программирования или языках инструментальных систем. Если логическое выражение принимает значение ИСТИНА, то это означает активизацию правила, то есть начинают выполняться процедурные действия из процедурного блока предложения ТО: данного правила.

Когда логическое выражение, представленное в предложении ЕСЛИ: принимает значение ИСТИНА, то говорят, что правило активизируется и начинают выполняться действия, представленные в предложении

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

ТО: <процедурный блок>

По аналогии с тем, что ЕСЛИ: еще называют левой частью правила, ТО: иногда называют правой частью правила, а в случае когда о ЕСЛИ: говорят, как о "посылке" правила, ТО: называют заключением правила.

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

Предложение ТО: - это одно из основных предложений, через которое организуется интеграция с использованием конструкции СИ:[...]. Так как действия в предложении ТО: выполняются в результате активизации правила, то очевидно, что действием правила достигаются какие-то временные и основные цели, и это, возможно, потребует передачи значений этих целей (подцелей) в другие блоки системы, например, в базы данных или в расчетные блоки.

Предложения НАЧАЛО: и ЗАВЕРШЕНИЕ: представляют собой процедурные блоки, выполняющиеся перед и после попытки активизации правила соответственно, и выполнением которых можно управлять с помощью специальных управляющих параметров.

Конструкция ОБЪЯСНЕНИЕ: <текст> играет двоякую роль в системе.

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

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

Цель определяется, как правило, путем последовательной активизации какого-либо количества пра-

вил, каждое из которых имеет свое смысловое предназначение в цепочке логического вывода и выводит значения каких-либо подцелей. Текст из предложения ОБЪЯСНЕНИЕ: и должен позволить воссоздать логическую цепочку объяснения действий всего набора. Этот текст выводится только для активизированных правил совместно со значениями фактов, которые использовались в предложениях ЕСЛИ: и ТО: наборов правил на момент активизации конкретного правила. Система объяснений может быть запрошена заданием соответствующего параметра режима консультации с ЭС.

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

В момент запроса значения в стандартном окне запроса нажатием кнопки "ПРАВИЛО" можно запросить текст из предложения ОБЪЯСНЕНИЕ: того правила, которое рассматривается в данный момент механизмом логического вывода.

Раздел переменной представляет собой необязательную конструкцию, состоящую из следующих необязательных предложений: ПЕРЕМЕННАЯ: <идентификатор_переменной>

ТИП: { ЧИС[ЛО], СТР[ОКА], ЛОГ[ИЧЕСКИЙ],

ЦЕЛ[ЫЙ], ССЫЛКА } ОПРЕДЕЛЕНИЕ: <процедурный блок> МЕТКА: <текст метки> РАЗМЕР: <число символов (1-255)> КОЛИЧЕСТВО: <число (1-255)> ЗНАЧЕНИЯ: <значения переменной (1-20)> Предложение ПЕРЕМЕННАЯ: <идентификатор> предназначено для именования заголовка блока набора правил, задающего дополнительные (уточняющие) характеристики данной переменной, в частности значения, которые могут быть присвоены переменной, или процедурные действия, приводящие к нахождению значений данной переменной.

Предложение МЕТКА: <текст> содержит текст, который описывает суть данной переменной. Поскольку правила записи идентификаторов переменных допускают размер идентификаторов до 31 символа, суть переменной можно выразить в самом идентификаторе, в результате в предложении МЕТКА: отпадет необходимость.

Предложение ОПРЕДЕЛЕНИЕ: <процедурный блок> может содержать процедурный блок, в котором выполняются действия по нахождению и присвоению значения (значений) данной переменной.

Предложение ЗНАЧЕНИЯ: предназначено для задания возможных значений переменной. При необходимости определения значения переменной пользователю будет предложена форма для выбора из данного набора значений, отображаемого в виде списка. Использование этого предложения допустимо

для списка, число элементов которого не превышает 255.

Предложением ТИП: <спецификатор типа>

можно специфицировать один из четырех основных допустимых типов переменной - числовой, символьный (строковый), логический и целый. Пятым допустимым типом является специальная конструкция ССЫЛКА.

Запись вида КОЛИЧЕСТВО: <число> предназначена для спецификации максимального числа значений, которое может принимать конкретная переменная. В системе предусмотрена возможность присвоения каждой переменной от 1 до 255 значений. Число, следующее за ключевым словом КОЛИЧЕСТВО:, указывает системе, какой объем памяти необходимо резервировать для хранения значений переменной. Если предложение КОЛИЧЕСТВО: отсутствует, то предполагается, что переменная может иметь одно значение.

Предложение РАЗМЕР: <число> предназначено для спецификации размера только для символьных переменных и может содержать за ключевым словом РАЗМЕР: число от 1 до 254.

Специальные конструкции для организации интеграции с другими компонентами САИПР

Специальная конструкция СИ:[...]

Элемент языка системы - конструкция СИ:[<фрагмент текста языка Си>] является основным интеграционным компонентом системы, с помощью которого организуется интеграция разнородных компонентов, обмен данными между ними и пользовательский интерфейс прикладной системы.

Конструкция <фрагмент текста языка Си> представляет собой исходный текст функционально самостоятельного блока программы на языке Си (Microsoft Visual С++), выполняющего какие-либо действия с использованием любых доступных операций языка Си и функций системных, инструментальных и пользовательских библиотек языка Си и его окружения.

Конструкция СИ:[...] может использоваться в следующих случаях:

- для передачи в систему значения из блока, реализованного на языке Си, и присвоения этого значения переменной набора правил;

- для передачи в блок программы на языке Си значения переменной из набора правил;

- для выхода в блок программы на языке Си с целью выполнения каких-либо действий без явного обмена данными;

- для выполнения действий, связанных с обработкой специальных функций обработки значений переменных и их факторов уверенности;

- для задания глобальных переменных и организации входа в исполняемый модуль прикладной системы.

Спецификатор типа ССЫЛКА

Тип ССЫЛКА используется для организации прямого использования внешних переменных (из других компонент САИПР) в наборах правил. Это предложение может записываться в двух вариантах.

Первый вариант - ТИП: ССЫЛКА().

В этом случае в качестве имени переменной ссылки используется <имя переменной>, указанное в предложении ПЕРЕМЕННАЯ: <имя переменной>.

Второй вариант - ТИП: ССЫЛКА(<имя переменной>), где имя переменной может не совпадать с именем, указанным в предложении ПЕРЕМЕННАЯ:.

По имени переменной посредством специальной функции, встроенной в компилятор, организуется прием данных о внешней переменной - ее тип, размерность, метка и признак (входная/выходная).

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

Возможности экспертного компонента были опробованы при построении прототипа ЭС выбора состава оборудования и размещения основных групп систем управления техническими средствами на корабле [2].

Экспертный компонент, встроенный в САИПР "Чертеж-4", представляет собой модифицированную инструментальную систему COMP-C 2.0, которая совместно с системой COMP-Pascal 1.0 образуют семейство COMP-систем для построения экспертных приложений в наиболее популярных средах программирования MS Visual C++, Borland (Inprise) C++ Builder и Delphi [3].

Более подробную информацию о COMP-систе-мах можно получить в Интернете на странице http://i7.da.ru

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

1. Построения экспертных систем: Пер. с англ./Под ред. Ф.Хейеса-Рота, Д.Уотермана, Д.Лената. - М.: Мир, 1987. - 441с.

2. Иванов Ю.К., Антипов В.В. Экспертная система исследовательского проектирования. - Научная сессия МИФИ-2000. //Сб. науч. тр.: В 13 т. - М.: МИФИ-2000. - Т.3. -228с.

3. Иванов Ю.К. Инструментальные системы для построения экспертных приложений в Windows-95/98/NT. - Научная сессия МИФИ-2000. //Сб. науч. тр.: В 13 т. - М.: МИФИ-2000. -Т.3. - 228с.

ОПЫТ СОЗДАНИЯ КОМПЬЮТЕРНЫХ ТРЕНАЖЕРОВ ДЛЯ ВОЕННО-МОРСКОГО ФЛОТА

М.А. Александров, В.К. Алтунин, В.Л. Захаров, А.С. Кадочников, О.Е. Чудаков

i Надоели баннеры? Вы всегда можете отключить рекламу.