Институтом машиноведения Уральского отделения РАН разработана и успешно внедрена на Уральском турбинном заводе (г. Екатеринбург) интеллектуальная САПР технологического процесса ковки ступенчатых валов САПР ВАЛ [1]. Основной графической составляющей данной системы является графический редактор, осуществляющий ввод исходной геометрической информации о детали и отображение спроектированной поковки, а также поддерживающий постоянный диалог с пользователем во избежание принятия им неправильных решений.
Несмотря на наличие на рынке стандартных графических редакторов, таких как AutoCAD и Компас, было принято решение разработать собственный специализированный графический редактор для конкретной предметно-ориентированной области [2]. Это позволило повысить интеллектуальность редактора при решении графических задач, уменьшить объем программного кода системы и сделать графическое представление информации более дружественным.
Первоначально графический редактор разрабатывался в соответствии с принципами объектно-ориентированного программирования [3], согласно которым определены объекты – классы, их свойства и обработчики событий. Основными объектами редактора являются исходная деталь и поковка в процессе проектирования. Однако дальнейшее развитие графического редактора показало, что для повышения его интеллектуальности необходимо перейти к парадигме агентно-ориентированного подхода [4], при котором под агентом понимается единица модели, способная самостоятельно действовать, влиять на окружающую среду и общаться с другими агентами. Поведение агента определяется восприятием и частичным представлением внешней среды, наличием знаний, опыта и зависит от условий среды, целей и действий других агентов.
В отличие от объекта агент не обязан полностью выполнять распоряжения какого-либо другого агента или пользователя, он сам принимает решение выполнить задание или отказаться от работы из-за нехватки информации, занятости другой проблемой, из-за ограничений, налагаемых собственной базой знаний, и т.п. В процессе работы агент может порождать, заменять или удалять другие агенты, изменять сценарий своей деятельности, активизировать как собственные функции, так и функции других агентов, запоминать текущие состояния других агентов и пр. Разнообразное поведение агента показывает, что он является активным объектом, более того, искусственным деятелем, самостоятельно формирующим свое поведение, а агент- но-ориентированный подход находится на более высоком уровне сложности и интеллектуальности построения САПР по отношению к объектно-ориентированному подходу.
Согласно агентно-ориентированному подходу графический редактор строится как совокупность однородных агентов Ступень (являющихся единицей информации как для детали, так и для поковки в процессе проектирования), агента Управления и агента Настройки редактора (рис. 1). При этом редактор проявляет все свойства мультиагентной системы, к которым относятся автономность, гибкость, ситуативность и социальность.
Остановимся более подробно на агенте Ступень. Каждая Ступень является автономной, ей соответствуют набор геометрических характеристик (длина, диаметр ступени слева и справа) и совокупность свойств, связанных с работой функций изображения графических прототипов. К последним относятся вид изображения (прямоугольник для цилиндрической ступени, трапеция для конической ступени), тип и толщина линии, цвет, штриховка, стрелки, надписи и т.п.
На основе агента Ступень строятся мультиагенты различных типов объектов процесса проектирования, к которым относятся Деталь, Поковка, Отверстие детали и Отверстие поковки. Ступени одного типа объекта проектирования пристыковываются друг к другу, образуя единый мультиагент соответствующего типа. На рисунке 1 показаны существующие в редакторе мультиагенты Деталь, Отверстие детали, Поковка и Отверстие поковки. Прямоугольник, нарисованный штриховой линией, объединяет совокупность агентов Ступень мультиагента каждого типа.
Агенты Ступень детали и Ступень отверстия детали создаются при вводе начальной информации. На рисунке 2 показано сечение детали, состоящей из двух ступеней (конической и цилиндрической), и сквозного отверстия, состоящего из одной цилиндрической ступени. Агенты Ступень, входящие в мультиагент Деталь, заштрихованы в отличие от агентов Ступень, входящих в мультиагент Отверстие детали. При этом агенты Ступень для получения правильного изображения отслеживают последовательность наложения друг на друга.
Агенты Ступень поковки и Ступень отверстия поковки формируются в процессе проектирования. На рисунке 3 показано сечение поковки, состоящей из двух цилиндрических ступеней, пронумерованных цифрами 1 и 2, и отверстия, состоящего из цилиндрической ступени. Агенты Ступень, входящие в мультиагент Поковка, заштрихованы в отличие от агентов Ступень мультиагента Отверстие поковки. Штрихпунктирными линиями отмечены агенты Ступень мультиагентов Деталь и Отверстие детали. Агентами Ступень мультиагентов различных типов решаются воп- росы правильного изображения (последовательность рисования, смещение относительно друг друга и т.п.).
Агент Ступень определяет необходимость изображения размеров на чертеже. Для цилиндрической ступени выводится один диаметр, для конической – оба диаметра (см. рис. 2). Если соседние ступени имеют равные диаметры, то либо два агента Ступень объединяются в один, либо на чертеже показывается размер только одного агента Ступень. Мультиагент каждого типа получает свою характеристику – габаритную длину, равную сумме длин всех агентов Ступень, входящих в этот мультиагент. При изменении цепочки агентов Ступень, составляющих мультиагент данного типа, а именно, при удалении, добавлении, корректировке ступеней, габаритная длина мультиагента также меняется.
Агенты реагируют на изменение внешней среды. Для графического редактора внешней средой является процесс проектирования технологии ковки. В зависимости от условий внешней среды меняется характер простановки размеров: размер выводится для каждого агента Ступень либо размеры ставятся от базы (ступени с наибольшим диаметром). При изображении спроектированной поковки размеры агента Ступень детали ставятся в скобках под размерами агента Ступень поковки, при этом редактором решается вопрос об определении суммарной длины агентов ступеней детали, полностью или частично входящих в агент Ступень поковки (см. рис. 3).
Редактором решаются конфликтные вопросы, связанные с корректностью информации. Например, размер агента Ступень детали не должен превосходить размер соответствующего агента Ступень поковки, ступени отверстий не должны выходить за контур наружных ступеней и т.п. При наличии поковки изменение размеров агентов Ступень детали и Ступень отверстия детали становится невозможным.
Таким образом, при вводе информации редактором решаются вопросы простановки размеров детали и отверстия детали, штриховки, масштабирования и вписывания изображения в экран монитора, а также нахождения габаритного размера детали. При этом устраняются некоторые конфликтные ситуации, а именно, отверстие детали не выходит за пределы детали, габаритная длина сквозного отверстия не показывается на экране монитора, так как она совпадает с габаритной длиной детали. Аналогичные вопросы решаются при выводе спроектированной поковки, причем в зависимости от окружения редактор определяет необходимость изображения всей ступени целиком или части ее контура.
Гибкость в работе редактора заключается в том, что он чувствует собственное локальное окружение, умеет предвидеть различные ситуации. Например, в результате корректировки пользователем геометрии поковки размеры поковки могут выйти за пределы, диктуемые технологическими ограничениями. Такое изменение становится недопустимым. В редакторе существует режим работы, при котором изменение длины агента Ступень не приводит к изменению габаритной длины всего мультиагента, то есть изменение длины касается только двух соседних агентов Ступень. Возможно визуальное изменение графического представления объектов проектирования без изменения реальных размеров ступени в случае, когда длина одной из ступеней существенно больше длины остальных.
Ситуативность редактора означает, что он воспринимает окружение, в котором действует, и может изменять его путем диалога между агентами графического редактора и окружением. В частности, редактором определяется необходимость поворота спроектированной поковки в случае смещения центра тяжести от манипулятора; решается вопрос рациональной компоновки составной детали, состоящей из нескольких простых деталей; изменяется направление изображения объекта проектирования с горизонтального на вертикальное и наоборот.
Инструментом взаимодействия с окружением являются сообщения, содержащие исходные или измененные данные о геометрии агентов Ступень и набор дополнительных параметров, например, значения допусков. Механизм реализации обмена сообщениями между агентами может быть разным. Для организации агентной среды авторами используется программная платформа JADE [5], которая обеспечивает структуризацию и передачу сообщений между агентами.
К внешним действиям редактора относится взаимодействие его с пользователем, имеющим возможность непосредственно в редакторе скорректировать информацию, например, изменить количество ступеней и их размеры, удалить ступени, добавить новые, поменять местами, изменить расположение размеров, исправить текст надписей и их расположение, изменить масштаб и характер вписывания. При этом количество агентов меняется, добавляются или видоизменяются их функции, меняется среда обитания. Таким образом, внешние действия редактора определяют социальность его агентов.
Наряду с агентами Ступень в редакторе существует агент Управления, выполняющий функции создания агентов Ступень, удаления данных агентов, изменения местоположения агента Ступень в мультиагентах различных типов, изменения масштаба изображения, вписывания изображения в экран и т.п. В отличие от объектно-ориентированного подхода агент Управления отслеживает иерархию появления агентов Ступень. Так, агенты Ступень поковки и Ступень отверстия детали не могут существовать без наличия агента Ступень детали. Однако наличие агента Ступень отверстия поковки не является обязательным, если существует агент Ступень отверстия детали. В данном случае все определяется состоянием внешней среды, то есть процессом проектирования поковки.
Агент Настройки задает основные характеристики агентов Ступень, к которым относятся цвет, размер и тип линий, вид размерной цепи, точность вывода размеров и т.п. Причем агентам одного мультиагента могут задаваться разные значения характеристик. Например, у мультиагента Поковка агенты Ступень, отображающие пробу для вырезки образцов для механических испытаний и ступени поковки, имеют разные цвет, штриховку и тип линии. Изменения значений характеристик агентом Настройки возможно либо вследствие изменений состояния внутренней среды, либо по указаниям пользователя. В этих случаях агент Настройки находит требуемый мультиагент и передает ему сообщение с новыми значениями характеристик. Мультиагент пересылает сообщение об измененных характеристиках входящим в него агентам Ступень. Агенты Ступень получают сигнал об изменении настроек и в случае необходимости перерисовывают себя.
Базовый комплект агентов графического редактора может быть дополнен новыми агентами, что позволяет расширять возможности и область применения графического редактора. В отличие от ковки при проектировании штамповки на чертеже детали необходимо указывать шероховатости поверхностей, поэтому, если применять графический редактор для проектирования штамповок, данную возможность следует добавить с помощью нового агента, взаимодействующего с Управляющим агентом. Кроме того, в графический редактор могут быть добавлены агенты для работы с различными форматами данных с целью их экспорта и импорта. База знаний редактора может пополняться путем расширения класса решаемых им оптимизационных задач. Например, наряду с оптимизацией компоновки деталей в поковке по изгибающему моменту можно добавить оптимизацию их компоновки по расходу металла и т.п.
Таким образом, использование автономных агентов, взаимодействующих между собой в процессе проектирования на основе совместных знаний о предметной области, и их гибкие, социально организованные действия, направленные на решение заданных целей, позволяют строить графический редактор деталей и поковок как мультиагентную систему.
Литература
1. Коновалов А.В. [и др.]. Интеллектуальная САПР технологических процессов ковки валов на молотах // Заготовительные производства в машиностроении. 2010. № 1. С. 19–22.
2. Коновалов А.В. [и др.]. Объектно-ориентированный графический редактор системы проектирования поковок ступенчатых валов // Программные продукты и системы. 2003. № 2. С. 20–24.
3. Грэхем И. Объектно-ориентированные методы. Принципы и практика; [пер. с англ.]. М.: Издат. дом «Вильямс», 2004. 880 с.
4. Люгер Д.Ф. Искусственный интеллект: стратегии и методы решения сложных проблем. 4-е изд.; [пер. с англ.]. М.: Издат. дом «Вильямс», 2003. 864 с.
5. Fabio Bellifemine Developing multi-agent systems with JADE / Printed and bound in Great Britain by Antony Rowe Ltd., Chippenham, Wiltshear, 2007, 303 p.