А. А. Лавров 1, А. А. Липатов 1, Д. М. Когель 1 1 зао «ИнтеллиТек (Интеллектуальные технологии)» 125190, Москва, а/я 85 a lipat@aha ru тел: (495) 757-20-71, факс: (499) 158-94-30 Настоящий доклад

Вид материалаДоклад

Содержание


Технология активных объектов
Новый этап
Представление недоопределённых моделей в системе ТАО-2
Программная реализация конструктора активных объектов и пример использования технологии активных объектов
Подобный материал:
ТЕХНОЛОГИЯ АКТИВНЫХ ОБЪЕКТОВ – НОВАЯ РЕАЛИЗАЦИЯ*

А.А. Лавров1, А.А. Липатов1, Д.М. Когель1

1ЗАО «ИнтеллиТек (Интеллектуальные технологии)»
125190, Москва, а/я 85
a_lipat@aha.ru
тел: (495) 757-20-71, факс: (499) 158-94-30


Настоящий доклад посвящён вопросам развития технологии активных объектов (ТАО), интегрирующей подходы объектно-ориентированного программирования и программирования в ограничениях. В докладе поставлен ряд новых задач развития ТАО, которые решаются на основе использования современных технологий программирования. Рассматривается подход к решению этих задач на примере разрабатываемого авторами конструктора активных объектов ТАО-2.


Введение

Моделирование сложных реальных объектов, например таких, как экономика корпорации, летательный аппарат и др., требует адекватных средств спецификации моделей. Мощным средством анализа и проектирования систем, характеризующихся сложной структурой и большой размерностью, является объектно-ориентированный подход [1].

В то же время, во многих реальных системах присутствуют элементы недоопределённости. Как отмечается в работе [2], недоопределённость – это свойство данных и знаний, определяемое как частичная информация о сущности x, ограниченная знанием того, что x является одной из альтернатив, заданных некоторым конкретным множеством Х. Уточнение относящихся к x знаний или данных приводит к сокращению множества альтернатив Х, стягивающемуся в потенциале до одного элемента, определяющего x однозначно. Представление и обработка недоопределённых данных и знаний встречаются практически в каждой задаче проектирования, планирования, поддержки разработок пользовательских интерфейсов и др. Для решения таких задач активно применяются методы программирования в ограничениях (constraint programming).

Таким образом, интеграция подходов программирования в ограничениях и объектно-ориентированного программирования (ООП) является одним из перспективных направлений развития программирования в ограничениях и привлекает к себе внимание многих исследователей. В частности, работы в этом направлении ведутся и в рамках исследований, связанных с аппаратом недоопределённых моделей (Н-моделей) и методом недоопределённых вычислений (Н-вычислений) [3], который зарекомендовал себя как одни из наиболее эффективных методов программирования в ограничениях для решения задач в условиях недоопределенности. Эти работы привели к созданию технологии активных объектов (ТАО), которая была реализована в ряде экспериментальных систем [4-6].

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

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

  1. Технология активных объектов
    1. Предыстория проекта

Рассмотрим основные принципы ТАО на примере его реализации в системах Semp-TAO [4] и ТАО-Kit [5] (Российский НИИ искусственного интеллекта). Основными компонентами модели предметной области (ПО) в этих системах являются объекты. Объекты могут представлять любые сущности ПО.

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

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

Активные объекты также включают в себя методы графического отображения своего состояния, что позволяет называть такие объекты активными графическими объектами.

Активный объект может независимо реагировать на поведение других, «видимых» из него объектов и сигналы, поступающие из внешних источников (мышь, клавиатура, другие программы и др.), и тем самым изменять своё состояние. Взаимодействие активных объектов является асинхронным и основано на механизме управления по данным.

Объекты, имеющие одинаковый состав и возможные значения слотов, а также одинаковое поведение, объединяются в классы. Для классов реализован механизм множественного наследования.

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

    Отметим, что для спецификации модели ПО в системах Semp-TAO [4] и ТАО-Kit [5] реализованы высокоуровневые языки представления и обработки знаний. В то же время в системе ТАО-М [6] используются элементы визуального конструирования классов.


    1. Новый этап

Развитие технологий разработки программного обеспечения позволяет поставить и решить новые задачи развития ТАО. Среди таких перспективных направлений можно отметить следующие.
  1. Вывод информации, порождённой активным объектом, не только на монитор, но в некоторый внешний обобщённый приёмник (поток), например, файл, другая программа, физическое устройство и т.п. Это позволяет активным объектам не только реагировать на события, происходящие во внешней среде, но и воздействовать на неё.
  2. Переход от активных графических объектов к интерактивным графическим объектам, обеспечивающим не только отображение своего состояния, но и поддерживающим взаимодействие с пользователем.
  3. Переход от описания активных объектов и их классов на формальном языке к конструированию классов на основе графического языка недоопределённого моделирования в рамках технологии, аналогичной технологиям, основанным на использовании Unified Modeling Language [7]. Создание соответствующей среды конструирования.
  4. Введение динамических типов данных (массив, множество), отсутствующих в современных реализациях ТАО.
  5. Введение значений истинности объектов и отношений.
  6. Введение дизъюнкции объектов и отношений (недоопределённые типы).

В отношении последних двух пунктов необходимо сделать следующее пояснение. Вычислительную модель объекта или отношения можно рассматривать как конъюнкцию ограничений, входящих в данную модель. Это позволяет сопоставить объекту или отношению значение истинности, равное конъюнкции ограничений его модели. Таким образом, объект может использоваться как переменная в логическом выражении. Это позволяет ввести понятие объекта недоопределённого типа. Такой объект можно представить с помощью дизъюнкции некоторого набора разнотипных суб-объектов. В процессе Н-вычислений модель какого-то из этих суб-объектов может стать несовместной (его значением истинности станет ЛОЖЬ). При этом тип данного суб-объекта будет исключен из диапазона возможных значений недоопределённого типа. Если в результате Н-вычислений только один член дизъюнкции получит значение ИСТИНА, а все остальные будут иметь значение ЛОЖЬ, то тип недоопределённого объекта определится точно.

Авторами ведётся работа по реализации в рамках ТАО перечисленных выше новых возможностей. Для этой цели разрабатывается экспериментальный конструктор активных объектов ТАО-2. Ниже будут рассмотрены основные принципы представления объектно-ориентированной Н-модели в данной системе.

  1. Представление недоопределённых моделей в системе ТАО-2

Следует отметить, что средства представления активных объектов в системе ТАО-2 не включают в себя таких элементов, как продукционные правила и императивные операторы, реализованные в системе Semp-TAO [4], так как для решения поставленной задачи на текущем этапе они не являются необходимыми. По той же причине в ТАО-2 реализован более узкий набор типов данных, чем в системе Semp-TAO.

Работа с объектной моделью ПО, начиная от создания модели и заканчивая решением прикладных задач, включает в себя три основных фазы, для каждой из которых характерен свой тип пользователя. Рассмотрим эти фазы подробнее.
  1. Разработка набора классов объектов и отношений (структурных типов), отображающих некоторые сущности и отношения ПО. Эта работа выполняется инженером знаний – специалистом высокой квалификации, обеспечивающим анализ всей ПО и проектирование структурных типов.
  2. Разработка модели ПО, состоящей из объектов классов, созданных на предшествующей фазе, и связывающих их отношений. Эта работа выполняется инженером проектировщиком, обеспечивающим анализ конкретного фрагмента ПО и построения её модели (модель предприятия, технического устройства и т.п.).
  3. Постановка конкретной задачи путём задания начальных приближений значений слотов объектов и её решение. Решение задачи находится в виде уточнённых значений слотов объектов с помощью метода Н-вычислений [3], выполняемых на вычислительной модели. Процесс решения может включать несколько итераций подбора и уточнения входных значений задачи. Эта работу выполняет конечный пользователь – человек, использующий систему только для вычислений (бухгалтер, инженер, аналитик и т.д.).

Для поддержки всех трёх фаз работы в системе ТАО-2 выделены три составляющие объектной Н-модели, обеспечивающие разные возможности доступа к данной Н-модели для разных типов пользователей, которые называются библиотека типов, модель и проект.

Библиотека типов – это набор описаний структурных типов (классов объектов и\или отношений). Между двумя библиотеками типов может существовать отношение вложенности. Это значит, что структурные типы одной библиотеки (охватывающей) могут быть потомками структурных типов, описанных в другой библиотеке (вложенной), или иметь слоты этих типов.

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

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

  1. Программная реализация конструктора активных объектов и пример использования технологии активных объектов

Конструктор активных объектов состоит из двух основных программных компонентов: редактора типов и редактора моделей. Редактор типов поддерживает разработку библиотек типов, а редактор моделей разработку и отладку моделей. Кроме того, редактор моделей должен поддерживать режим работы конечного пользователя с проектом (с ограничением доступа к модели).

Для отображения и редактирования библиотеки типов и модели в конструкторе реализованы элементы визуального конструирования классов и моделей.

В качестве вычислительного ядра системы применяется недоопределённый решатель UniCalc [8] (Российский НИИ искусственного интеллекта).

В качестве примера использования ТАО рассмотрим следующую задачу: для торговой сети «Глобал» нужно рассчитать ряд параметров, в том числе оценить возможную прибыль. Сеть включает в себя десять юридических лиц разного типа: Первичная фирма (головная компания холдинга), Фирма (посредник) и Торговая компания. Каждый тип юридического лица имеет свою модель, которая описана в библиотеке типов. Также в библиотеке описаны отношения над юридическими лицами этого холдинга.

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

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

Таблица 1 – Размерность Н-модели торговой сети в разных формах представления.

Модель

Количество параметров

Количество связей

Всего элементов

Вычислительная модель

78

73

151

Аналитическая модель

70

63

133

Модель задачи

10

2

12


Здесь аналитическая модель – математическая модель, вычислительная модель – модель на языке решателя UniCalc (содержит некоторую избыточность по сравнению с аналитической моделью), модель задачи – модель, построенная в ТАО-2.

Из таблицы видно, что количество элементов в модели ТАО-2 в данном случае более чем в десять раз меньше чем в математической модели. Малое количество элементов модели уменьшает время разработки модели и делает модель более понятной для аналитика, что в свою очередь позволяет снизить риск его ошибок. Кроме того, данная технология позволяет решать как прямые, так и обратные задачи. Описание модели в интерфейсе системы ТАО-2 показано на рис. 1.

В левой части в виде «дерева» представлены элементы библиотеки типов. В правой части отображаются элементы модели «Схема В». Сверху вниз располагаются элементы модели: объекты (список десяти юридических лиц торговой сети), связи (описание взаимосвязей между юридическими лицами), далее идет инициализация параметров модели на языке решателя UniCalc.



Рис. 1. Отображение структуры активных объектов модели торговой сети.

Заключение

В докладе была поставлена задача разработки новой версии концепции ТАО на базе современных программных технологий, получивших за последние годы существенное качественное развитие. Были выделены следующие наиболее важные перспективные задачи развития ТАО.
  1. Придание активным объектам способности как реагировать на события, происходящие во внешней среде, так и воздействовать на неё.
  2. Переход от активных графических объектов к интерактивным графическим объектам, поддерживающим взаимодействие с пользователем.
  3. Реализация подхода визуального конструирования классов активных объектов взамен их описания на формальном языке.
  4. Реализация динамических типов данных (массив, множество) в рамках ТАО.
  5. Введение и использование значений истинности активных объектов.
  6. Введение дизъюнкции активных объектов и реализация на этой основе объектов недоопределённого типа.

В докладе представлен подход к решению некоторых из перечисленных задач. Показана реализация данного подхода в разрабатываемом авторами конструкторе активных объектов ТАО-2. Рассматривается применение данного подхода на примере моделирования торговой сети.


Список литературы
  1. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++, 2-е изд. / Пер. с англ. – М.: «Издательство Бином», СПб.: «Невский диалект», 1998. – 560 с.
  2. Нариньяни А.С. НЕ-факторы 2004 // 9-я Национальная конференция по искусственному интеллекту КИИ – 2004. Труды конференции. В 3-х т. Т. 1. – М.: Физматлит, 2004. С. 420-432.
  3. Нариньяни А.С. Недоопределенность в системе представления и обработки знаний // Изв. АН СССР. Техническая кибернетика. - 1986. № 5. С. 3-28.
  4. Загорулько Ю.А., Попов И.Г. Представление знаний в интегрированной технологической среде SemP-TAO // Проблемы представления и обработки не полностью определенных знаний / Под ред. И.Е. Швецова. – Москва – Новосибирск: Рос НИИ Искусственного Интеллекта, 1996. С. 59-73.
  5. Швецов И.Е., Нестеренко Т.В., Старовит С.А., Титова М.В. Технология активных объектов: от концепции к реализации // Проблемы представления и обработки не полностью определенных знаний / Под ред. И.Е. Швецова. – Москва – Новосибирск: Рос НИИ Искусственного Интеллекта, 1996. С. 88-98.
  6. Нариньяни А.С., Лавров А.А. Технология активных объектов на базе виртуальных процессоров Н-вычислений // Научная сессия МИФИ-2001. Сборник научных трудов. В 14 т. Т.3. Банки данных. Интеллектуальные системы. Программное обеспечение – М.: МИФИ, 2001. С. 80-81.
  7. Буч Г., Якобсон А., Рамбо Дж. UML. Классика CS. 2-е изд./ Пер. с англ.; Под общей редакцией проф. С. Орлова —СПб.: Питер, 2006. —736 с.
  8. Ботоева Е.Ю., Костов Ю.В., Петров Е.С. Универсальный решатель UniCalc // Информационный бюллетень рабочего семинара «Наукоемкое программное обеспечение» – Новосибирск: ИСИ СО РАН, 2006. С.42-45.

* Работа выполнялась при финансовой поддержке РФФИ (проект № 08-01-90018)