ПРОГРАММНЫЕ ПРОДУКТЫ И СИСТЕМЫ
Архив статей журнала
В статье предлагается алгоритм, который развивает идею кластеризации беспроводных сенсорных сетей с целью снижения энергопотребления сенсорными узлами. Выбор способа организации информационного взаимодействия является одной из актуальных научных задач при развертывании работы интернета вещей. В свою очередь, беспроводная сенсорная сеть, составляющая физическую основу интернета вещей, имеет серьезное ограничение - требование низкого энергопотребления. От энергопотребления зависит срок службы сети - времени, в течение которого она будет выполнять свои функции. Энергия сенсорных устройств расходуется на прием и передачу данных, их обработку, вычисление маршрута. Требуются новые алгоритмы, направленные на снижение количества операций обработки данных, длины маршрута и т.д. без потери функциональности сети. Одним из таких механизмов является кластеризация беспроводной сенсорной сети, позволяющая снизить энергопотребление за счет передачи части функций на головные узлы кластеров. Предложенный в работе алгоритм роя пчел развивает идею поиска головных узлов кластеров беспроводной сенсорной сети. Согласно ему, в начале цикла определяются сразу глава кластера текущего раунда и потенциальные главы кластеров для остальных раундов цикла. Таким образом, со второго раунда цикла фаза выбора головного узла кластера становится лишней, а сенсорные узлы избавляются от некоторых вычислений, связанных с выбором главы кластера. Результаты имитационного моделирования показали превосходство алгоритма роя пчел в сравнении с известным алгоритмом адаптивной кластеризации с низким потреблением энергии LEACH по показателю продолжительности функционирования беспроводной сенсорной сети.
В работе определена актуальность задачи кластеризации данных в реальном масштабе времени в виде динамически встраиваемой библиотеки для СУБД PostgreSQL с открытым исходным кодом. Сформулированы условия для выполнения кластеризации в реальном времени, заключающиеся в обеспечении достаточной производительности, при которой время определения кластеров не превышает время записи данных в таблицу и ограниченное количество данных для кластеризации. Методы PostgreSQL доступны в devel-библиотеке, что позволяет использовать их для взаимодействия с данными на уровне внутреннего представления и других языков программирования, выполняющих некоторые операции быстрее, чем язык запросов SQL. Схема взаимодействия между элементами для кластеризации включает БД, в которую установлены динамически встраиваемая библиотека и расширение TimescaleDB для организации хранения данных сервером БД; интерпретатор - программная прослойка для перевода данных из внутреннего представления в типы используемого языка перед кластеризацией и, наоборот, перевода результатов кластеризации во внутренний формат для их сохранения в БД; кластеризатор - программа, выполняющая кластеризацию переданных данных согласно алгоритму. Предлагаемая библиотека представляет собой реализацию триггерной функции, которая по сути является интерпретатором, связывающим кластеризатор с БД. Если это первое срабатывание функции для таблицы, то производится выбор начальных центроидов способом, заданным пользователем. В противном случае происходит считывание данных о центроидах из таблицы. Приведена демонстрация работы библиотеки. Набор данных для кластеризации сгенерирован случайным образом с концентрацией около заданных координат центроидов. Библиотека не ограничивает пользователя как в размерности точек, которые необходимо распределить по кластерам, так и в количестве таблиц, в которые может производиться вставка данных. Ввиду вычислительной сложности алгоритмов имеется ограничение на максимальное число данных для кластеризации.