Язык моделирования многоагентных систем на основе UML

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

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 19.01.2018
Размер файла 85,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

МГТУ им. Н.Э. Баумана

Язык моделирования многоагентных систем на основе UM

Г.Б. Евгенев, докт. техн. наук, проф.

Аннотация

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

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

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

В рамках ООП был разработан унифицированный язык моделирования (UML), который фактически стал стандартным инструментом для создания "чертежей" программного обеспечения [1].

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

Для структурного моделирования многоагентных систем могут быть использованы диаграммы классов UML. Диаграммы классов соответствуют статическому виду системы с точки зрения проектирования. Если такие диаграммы, включают активные классы, то они соответствуют статическому виду системы с точки зрения процессов [1]. Однако модели классов UML не в полной мере удовлетворяют потребностям моделирования многоагентных систем. Классическая модель агента представлена на рис.1 а [2]. На рис.1 б приведена модифицированная модель класса объектов в нотации UML. Из рисунка следует, что процессор агента соответствует операциям класса, память агента - значениям атрибутов класса. Несоответствие заключается в том, что агент имеет импортируемые и экспортируемые свойства, а в нотации класса UML это не предусмотрено. Знаком плюс в UML отмечаются свойства видимые извне. Простейшим решением этой проблемы может быть пометка импортируемых свойств знаком >, а экспортируемых - знаком <, как это показано на рис.1 б.

Рис.1. Модели агента

На рис. 2 приведена диаграмма классов, соответствующая многоагентной метасистеме проектирования электромеханических приводов. Корневым агентом этой диаграммы является активный класс «Привод». Он имеет набор публичных, то есть видимых другими агентами атрибутов, помеченных знаком +, и операцию проектирования. Атрибуты включают техническое задание на проектирование привода (вращающий момент и частоту вращения на выходе, а также расположение входной и выходной осей и режим эксплуатации). Эти атрибуты являются импортируемыми, как это отмечено на рис.1 б. На основе этих данных метод проектирования, встроенный в этого агента, определяет значения остальных экспортируемых атрибутов, на основе которых производится проектирование редуктора.

Рис.2. Метамодель многоагентной метасистемы

Агент «Привод» связан отношениями агрегации со своими частями: основанием, электродвигателем, муфтой и редуктором. Основание, муфта и редуктор имеют встроенные методы и поэтому являются активными классами, то есть агентами. Электродвигатель как покупное изделие не проектируется, а выбирается из базы данных. Поэтому он является пассивным объектом и определяет структуру данных.

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

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

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

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

В интеллектуальных системах метод реализуется с помощью баз знаний продукционного типа. Метод представляет собой систему, состоящую из множества правил-продукций R, связанных в семантическую сеть N , которая определяет структуру метода M= R, N . Определение выходных атрибутов агента при его функционировании осуществляется посредством логического вывода на этой сети. Метод агента, функционирующего в решающей сети, может состоять из трех подфункций: восприятия, решения и трансформирования. Подфункция восприятия связана с выбором информации из баз данных или из публичных свойств других агентов, решение - преобразование информации, трансформирование - занесение информации в базу данных или передачу ее другим агентам.

Применительно к интеллектуальным системам в качестве правил-продукций целесообразно принять объект-функцию, соответствующую функциональному блоку стандарта IDEF0 (рис.3).

Рис. 3. Объект-функция

Объект-функция F представляет собой следующую шестерку

F = < No, Name, I, O, C, M>,

где No обозначение F; Name =<D, G, H> наименование, включающее D отглагольное существительное, определяющее действие, выполняемое F, существительное G, задающее объект, на который направлено действие D, и H, задающее ограничение, при котором выполняется действие D; I - входы F; O - выходы F; C - условия выполнения F; M - механизм реализации F. Входы и выходы показывают, что делается объект - функцией, управление - почему это делается, а механизмы - с помощью чего делается.

Использование объект - функций для разработки программ на основе соответствующих этим объект - функциям модулей знаний (МЗ) получило название экспертного программирования [3, 4].

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

Рис.4. Графическое представление объект - функции

Имя заносится в верхний раздел и состоит из идентификатора, отделенного двоеточием от наименования. Наименование строится по правилам IDEF0. Оно содержит описание действия (на рис.4 - Расчет), предмета, на который направлено действия (на рис.4 - числа), и дополнительной информации (на рис.4 - передаточного).

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

Наименования атрибутов, как это принято в интеллектуальных системах, должны выбираться из словаря системы, также как и их имена - идентификаторы, необходимые для написания формул. Условие, как это требует IDEF0, представляет собой ограничения, накладываемые на входные и управляющие параметры и определяющие область определения функции, реализуемой данным модулем действий. Условия отделяются от наименования атрибута вертикальной чертой, как это принято в математике. На рис.4 переменная «Вид СЕ» должна иметь значение «Редуктор», чтобы данный модуль выполнил свое действие. Это - управляющая переменная. Другим условием выполнения модуля является то, что «Частота вращения на выходе, об/мин» должна быть больше нуля. Тогда выходная переменная «Передаточное число» может быть рассчитана по формуле

Urz = nh / nt

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

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

Модули знаний, представляющие собой элементарные порождающие системы, объединяют в методы объектов. Из числа средств UML для представления методов, построенных на базе объект-функций, наиболее подходят диаграммы состояний. Диаграммы состояний - это один из пяти видов диаграмм в языке UML, используемых для моделирования динамических аспектов системы. Диаграмма состояний (Statechart diagram) показывает автомат, фокусируя внимание на потоке управления от состояния к состоянию. Автомат (State machine) - это описание последовательности состояний, через которые проходит объект, реагируя на события, - в том числе на выполнение объект-функций. Состояние (State) представляет собой ситуацию в жизни объекта, на протяжении которой он удовлетворяет некоторому условию, осуществляет определенную деятельность или ожидает какого-то события. Событие (Event) - это спецификация существенного факта, который происходит во времени и пространстве. В контексте автоматов событие - это стимул, способный вызвать срабатывание перехода. Переход (Transition) является отношением между двумя состояниями, показывающим, что объект, находящийся в первом состоянии, должен выполнить некоторые действия и перейти во второе состояние, как только произойдет определенное событие и будут выполнены заданные условия. Деятельность (Activity) - это продолжающееся неатомарное вычисление внутри автомата. В данном случае деятельность заключается в выполнении метода объекта, включающего множество объект-функций. Действие (Action) - это атомарное вычисление, которое приводит к смене состояния или возврату значения. Каждая объект-функция реализует определенное действие. Диаграмма состояний изображается в виде графа с вершинами и ребрами (рис.5). В вершинах располагаются графические представления объект - функций (часто в сокращенной форме, содержащей только названия). Ребра соответствуют переходам от выполнения одной объект - функции к другой.

Рис.5. Диаграмма состояний метода проектирования привода

На рис.5 представлена диаграмма состояний метода агента «Привод» из рис.1. Она включает описанную выше объект-функцию расчета числа передаточного (рис.4). В экспертном программировании такие модели строятся автоматически на основе анализа функциональных связей объект-функций. По сути дела это означает автоматизацию генерации алгоритмов применительно к конкретному множеству объект-функций.

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

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

агент моделирование метамодель привод

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

D. Rumbaugh, A. Jacobson, G. Booch. The Unified Language Reference Manual - Addison-Wesley, 1999.

Тарасов В.Б. От многоагентных систем к интеллектуальным организациям: философия, психология, информатика. - М.: Эдиториал УРСС, 2002. 352с.

Евгенев Г.Б. Системология инженерных знаний: учеб. пособие для вузов - М.: Изд-во МГТУ им. Н.Э. Баумана, 2001. 520с.

Евгенев Г.Б., Кобелев А.С., Борисов С.А. Технология экспертного программирования. Информационные технологии, №3, 2002, с.2 - 9

Размещено на Allbest.ru


Подобные документы

  • Характеристика UML как унифицированного графического языка моделирования для описания, визуализации, проектирования и документирования объектно-ориентированных систем. Диаграмма программного обеспечения, деятельности, последовательности и реализации UML.

    курсовая работа [439,9 K], добавлен 05.06.2014

  • Основные элементы объектной модели. Сущность и преимущества объектно-ориентированного подхода, понятие объекта и класса. Унифицированный язык моделирования UML. Диаграммы классов и взаимодействия: назначение, построение и примеры использования.

    реферат [273,2 K], добавлен 09.06.2009

  • История развития языков программирования; создание и распространение языка С++; новый подход к разработке объектно-ориентированного программного обеспечения. Применение моделирования предметных областей для структуризации их информационных отражений.

    реферат [29,1 K], добавлен 06.12.2010

  • Теория и основные этапы моделирования бизнес-процессов. Метод объектно-ориентированного анализа и проектирования. Особенности методологии ARIS. Метод, используемый в технологии Rational Unified Process. Связь функционального и имитационного моделирования.

    презентация [531,0 K], добавлен 22.10.2014

  • Язык GPSS как один из наиболее эффективных и распространенных языков моделирования сложных дискретных систем. Транзакт - элемент системы массового обслуживания. Решение задач на основе моделирования с применением языка GPSS, создание имитационной модели.

    курсовая работа [54,7 K], добавлен 25.11.2010

  • Особенности разработки информационных систем с использованием унифицированного языка моделирования UML. Основные этапы рационального унифицированного процесса разработки информационных систем с примерами и иллюстрациями. Реализация информационной системы.

    методичка [950,2 K], добавлен 23.01.2014

  • Основные принципы объектно-ориентированного подхода в построении модели АИС унифицированного языка моделирования. Диаграммы моделей системы. Анализ больничного комплекса Алексеевской ЦРБ и создание информационной системы его кардиологического отделения.

    курсовая работа [715,4 K], добавлен 20.11.2010

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

    реферат [515,6 K], добавлен 25.01.2011

  • Основные теоретические положения объектно–ориентированной технологии программирования. Характеристика языка и словарь моделирования UML. Представление управления моделью. Построение диаграммы классов и описание функционирования предметной области.

    курсовая работа [859,4 K], добавлен 11.05.2015

  • Основы систематизации языков имитационного моделирования, моделирование систем и языки программирования. Особенности использования алгоритмических языков, подходы к их разработке. Анализ характеристик и эффективности языков имитационного моделирования.

    курсовая работа [1,4 M], добавлен 15.03.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.