Статья опубликована в рамках: VI Международной научно-практической конференции «Физико-математические науки и информационные технологии: проблемы и тенденции развития» (Россия, г. Новосибирск, 25 сентября 2012 г.)
Наука: Информационные технологии
Секция: Системный анализ, управление и обработка информации
Скачать книгу(-и): Сборник статей конференции
- Условия публикаций
- Все статьи конференции
дипломов
МОДУЛЬ АКТИВНЫХ ИНТЕЛЛЕКТ-КАРТ
Рубан Иван Анатольевич
аспирант ИСОиП (филиал) ДГТУ г. Шахты
E-mail: ivcgl@yandex.ru
Введение
В настоящее время существует огромное количество массового программного обеспечения для офиса, дома, мобильных устройств и т. д. Но массовая продукция не ориентирована на конкретного потребителя и поэтому часто возникает необходимость небольших усовершенствований существующего программного обеспечения. Безусловно, разработчики стараются предоставить такие возможности по средствам встраивания плагинов, поддержки скриптовых языков, которые позволяют подстроить функциональность программ под собственные нужды. Но такие правки по силу лишь программистам.
Целью работы является найти метод, позволяющий обычным пользователям конфигурировать программное обеспечение. Кроме того, требуется разработать интерфейс взаимодействия с любым приложением. Поэтому метод должен выполнять функцию категоризации информации и передавать результат приложению через поддерживаемый интерфейс.
Поиск метода
Метод интеллект-карт является практическим приложением концепции радиантного мышления [2]. Он является удобным и интуитивно понятным средством по работе с информацией. Интеллект-карты являются пассивными структурами, то есть они не предназначены для категоризации потоков информации.
Существует множество методов категоризации информации, например, метод на основе искусственных нейронных сетей, статистический, вероятностный метод на основе теоремы Байеса и т. д. Наиболее схожим с методом интеллект-карт и гармонично дополняющим является метод деревьев решений.
Деревья решений — это способ представления правил в иерархической, последовательной структуре, где каждому объекту соответствует единственный узел, дающий решение [3]. Деревья решений способны работать с потоками информации с целью ее категоризации. Синтезировав оба метода мы получим «активные» интеллект-карты как инструмент управления информацией.
Активная интеллект-карта является ориентированным графом, состоящим из узлов ввода/вывода и узлов проверки условий. В качестве типа передаваемого значения используется число с двойной точностью — для удобства и универсальности представления данных.
Условия узла позволяют формировать на выходе конкретное значение в случае выполнения результатов проверки входных значений. В случае если ни одно условие не выполняется, то на выходе узла формируется нулевое значение.
Узлы ввода/вывода осуществляют взаимодействие с приложением. В зависимости от получаемого значения, приложение может установить параметр, вызвать функцию или ничего не сделать.
Вычисления выполняются от узлов ввода до оконечных узлов графа по степени получения необходимых данных. Проверка условий и передача значения от узла к узлам происходит только после получения всех входных значений.
Особенности программирования предполагают передачу параметров в функцию, после чего происходит ее вызов. Поэтому узлы вывода являются «сквозными», то есть значения направленные на вывод так же передаются последующим узлам. Данная особенность позволяет управлять последовательностью установки параметров и вызова функций приложения.
Память является важнейшей функцией информационных систем. Но граф не имеет функций хранения данных, поэтому важнейшей и необходимой функциональностью метода является возможность редактирования собственной структуры.
Используемое преимущество интеллект-карт предполагает всеобъемлющее описание. Поэтому необходима возможность хранить описания узлов и используемых значений графа во время его построения.
Реализация метода
Российские разработчики отдают предпочтение среде разработки Delphi [7]. Кроме того, внедрение средств поддержки активных интеллект-карт должно быть наиболее простым и наименее затратным. Поэтому программный модуль был разработан в виде библиотеки классов платформы .Net Framework 4.0 [8], что упрощает подключение модуля для современных высокоуровневых языков. Кроме того, используемая в модуле платформа Hydra [6], позволяет комбинировать управляемый и неуправляемый код в рамках приложения, а так же использовать модуль в приложении, написанном в популярной версии Delphi 7.
Интеграция модуля реализуется через следующие интерфейсы:
1.IAMMPluginEvents — интерфейс событий модуля. Используется для взаимодействия модуля с приложением.
2.IAMMPluginController — интерфейс главного модуля. Используется приложением для управления модулем.
3.IAMMValueRepresentation — интерфейс представления чисел двойной точности в текстовой форме. Используется для интерпретации параметров полученных от приложения.
Модуль содержит необходимый минимум для работы активных интеллект-карт:
1.Интерфейс редактирования и запуска. Возможность редактирования и просмотра графов обеспечивается компонентом GraphSharp [4], который использует современную графику и является удобным, быстрым и бесплатным компонентом представления графов.
2.Управляемый конвейер, имеющий интерфейс управления и реализующий исполнение активных интеллект-карт.
3.База данных, которая хранит активные интеллект-карты и дополнительные описания. Реализована она по средствам бесплатно распространяемой библиотеки sqlite.Net [1].
4.Группа встроенных объектов интерпретации значений даты и времени, идентификаторов объектов активных интеллект-карт.
От разработчиков интегрирующих модуль требуется обеспечить поддержку соответствующих интерфейсов, тем самым обеспечить не только связь модуля и основных сущностей приложения, но и их описательность.
Интерфейс позволяет включать/отключать сохраненные активные интеллект-карты по степени необходимости, что значительно увеличивает удобство использования конфигураций программного обеспечения.
Результаты эксперимента
В качестве эксперимента решено было проверить возможности метода по решению простейшей задачи, а именно вызвать функцию оповещения пользователя в случае, если дело пользователя, сохраненное по средствам тестового приложения, является просроченным. Тестовое приложение представляет собой средство назначения и выполнения дел пользователя. Каждое дело содержит:
1. Уникальный идентификатор ID, являющийся индексом записи в базе данных.
2. Планируемое время начала выполнения дела.
3. Планируемое время окончание выполнения дела.
4. Статус завершенности дела.
В тестовом приложении, как и в любой типичной электронной записной книжке, каждую минуту выполняется проверка сроков выполнения дела. При проверке в модуль передается идентификатор дела, который поступает на вход активной интеллект-карты представленной на рисунке 1.
Рисунок 1. Активная интеллект-карта оповещения пользователя о просроченном деле
Приложение передает идентификатор проверяемого дела на узел «ID дела», который имеет соответствующее имя интерфейса. Полученное значение устанавливается в выделенную приложением переменную для использования функцией получения и установки параметров дела. Затем если значение проходит проверку узла «Целевое дело?», то на его выходе формируется индекс функции получения текущей даты в виде числа с двойной точностью. «АИК. Параметр. Условие. Значение ввода» получает текущую дату и время. В случае если полученное время больше нуля, тогда «Время получено?» передает идентификатор условия проверки времени начала дела узла «Дело просрочено?» узлу «Конвейер АИК. Параметр. Условие. ID». Таким образом, «Дело просрочено?» сверяет время начала дела не с нулевым значением, а с текущим временем. Такая сложность обуславливается тем, что граф выполняет только распознавание — соотносит входные данные с шаблоном, и поэтому для точного сравнения двух входных значений потребуется сверить все возможные комбинации, что не приемлемо. «Параметры установлены?» в случае безошибочных входных данных формирует на выходе индекс функции установки параметра условия узла «Дело просрочено?», иначе индекс ничего не выполняющей функции. Последующие узлы проверяют просроченное ли дело. В случае если дело просрочено вызывается функция оповещения пользователя использующее идентификатор текущего дела для отображения его названия, в противном случае ничего не выполняется.
В таблице 1 представлены условия узлов проверки входных значений.
Таблица 1.
Условия узлов
Имя узла |
Предшествующий узел |
Условие |
Значение |
Текстовое представление |
Вывод |
Целевое дело? |
Дело. Параметр. ID дела |
= |
2095295 |
Важное дело |
1 |
Время получено? |
Время. Параметр. Дата Время |
> |
0 |
Не выбрано |
3 |
Параметры установлены? |
Конвейер АИК. Параметр. Условие.ID |
> |
0 |
идентификаторы в базе данных начинаются с единицы |
1 |
АИК. Параметр. Условие. Значение ввода |
> |
0 |
Текущее время не может быть равно 0 |
||
Функция была вызвана? |
Конвейер АИК. Вызвать функцию |
> |
0 |
Ничего не делать |
1 |
Дело просрочено? |
Дело.Параметр. Время начала |
< |
0 (изменяемое) |
Не выбрано |
2 |
Дело.Параметр. Статус |
= |
0 |
Запланировано |
Заключение
Удобный и интуитивно понятный метод разработки интеллект-карт дает возможность обычному пользователю выстроить свою функциональность, не вникая в особенности языков программирования и скриптов. Простота внедрения модуля заключается в написании кода взаимодействия и описания основных функций и параметров приложения, что снимает с разработчиков необходимость решать нечеткие и слабоструктурированные задачи, поставленные пользователем.
В дальнейшем планируется исследовать возможности генерации активных интеллект-карт на основе входных данных. Данная возможность подобна шаблонному программированию [5], когда программист частично выражает свое умение писать часто повторяемые конструкции языка в более абстрактные описатели. Но какой бы ни был уровень абстракции языка, он не позволяет создавать новые описатели во время выполнения приложения, то есть заставить приложение само генерировать нужный код в зависимости от поступающих данных.
Список литературы:
1.Библиотека управления базой данных System.Data.SQLite. [Электронный ресурс] — Режим доступа. — URL: http://sqlite.phxsoftware.com/ (дата обращения: 09.09.2012).
2.Бьюзен Т. и Б. Супермышление/Пер. с англ. Е.А. Самсонов, Мн.: ООО «Попурри», 2003. 304 с.
3.Дюк В. Data Mining — Интеллектуальный анализ данных. http://www.iteam.ru/publications/it/section_92/article_1448 (дата обращения: 09.09.2012).
4.Модуль отображения графов GraphSharp. [Электронный ресурс] — Режим доступа. — URL: http://graphsharp.codeplex.com/ (дата обращения: 09.09.2012).
5.Остерн М.Г. Обобщенное программирование и STL: использование и наращивание стандартной библиотеки шаблонов C++ / Пер. с англ. под ред. А. Махоткина и И.В. Романовского. СПб.: Невский Диалект, 2004. — 544 с.
6.Платформа Hydra 4. [Электронный ресурс] — Режим доступа. — URL: http://www.remobjects.com/hydra/ (дата обращения: 09.09.2012).
7.Фленов М.Е. Библия Delphi. СПб.: БХВ-Петербург, 2008. — 799 с.
8.Шеферд Дж. Программирование на Microsoft Visual C++ .NET. СПб.: Питер, 2007. — 928 с.
дипломов
Оставить комментарий