Представление кодированными деревьями сценариев системы управления интеллектуального здания::Журнал СА 4.2017
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

Как часто мы легко повторяем, что не надо бояться совершать ошибки, мол,

 Читать далее...

Принципы проектирования  

Dependency Inversion Principle. Принцип инверсии зависимостей в разработке

Мы подошли к последнему принципу проектирования приложений из серии SOLID – Dependency

 Читать далее...

Рынок труда  

Вакансия: Администратор 1С

Администратор 1С – это специалист, который необходим любой организации, где установлены программы

 Читать далее...

Книжная полка  

Книги для профессионалов, студентов и пользователей

Книги издательства «БХВ» вышли книги для тех, кто хочет овладеть самыми востребованными

 Читать далее...

Принципы проектирования  

Interface Segregation Principle. Принцип разделения интерфейсов в проектировании приложений

Эта статья из серии «SOLID» посвящена четвертому принципу проектирования приложений – Interface

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 10800
Комментарии: 0
Потоковая обработка данных

 Читать далее...

19.03.2018г.
Просмотров: 9045
Комментарии: 0
Релевантный поиск с использованием Elasticsearch и Solr

 Читать далее...

19.03.2018г.
Просмотров: 9095
Комментарии: 0
Конкурентное программирование на SCALA

 Читать далее...

19.03.2018г.
Просмотров: 5738
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6435
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 3738
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2733
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3531
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3522
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6018
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

Друзья сайта  

 Представление кодированными деревьями сценариев системы управления интеллектуального здания

Архив номеров / 2017 / Выпуск №4 (173) / Представление кодированными деревьями сценариев системы управления интеллектуального здания

Рубрика: Наука и технологии

Без фото НИКОЛАЕВ П.Л., преподаватель, Московский авиационный институт (национальный исследовательский университет), г. Москва, npavel89@gmail.com

Без фото ХОРОШКО Л.Л., к.т.н., доцент, Московский авиационный институт (национальный исследовательский университет), г. Москва, khoroshko@mati.ru

Представление кодированными деревьями сценариев системы
управления интеллектуального здания

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

Введение

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

В современных домах применяется все больше интеллектуальных устройств, но из-за разнообразия программирование их всех становится трудной задачей [1].

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

Наилучшим способом для этого является визуальное программирование. Под этим термином подразумевается способ образного графического представления (используются графические элементы и фигуры) разрабатываемого алгоритма, который более естественен для восприятия человека [2, 3].

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

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

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

Структура сценариев

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

При уменьшении температуры в помещении до определенного значения (допустим, T1 <= 15) и присутствии в комнате человека (срабатывает датчик присутствия, S1 == истина) необходимо выполнить несколько действий:

  1. Дляначала нужно проверить состояния окна (A1) икондиционера (A2). Если окно открыто, очем свидетельствует состояние геркона (S2== истина) иливключен кондиционер (A2== истина), тонеобходимо выполнить еще ряд действий.
    • Проверить состояние штор, и если они закрыты (A3 == ложь), то открыть их (A3 = истина), иначе невозможно будет закрыть окно, а затем уже закрыть окно (A1 = ложь).
    • Выключить кондиционер (A2 = ложь).
  2. В ситуации, когда окно закрыто и кондиционер выключен, следует проверить состояние обогревателя (A4), и если он выключен, то включить его (A4 = истина).

На псевдокоде данный сценарий можно записать так:

сценарий 1

если (T1<= 15 и S1) то

если (S2 или A2) то

если (не A3) то A3 = истина;

A1 = ложь;

A2 = ложь;

иначе

если (не A4) то A4 = истина;

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

  • условная конструкция «если-то-иначе»;
  • переменные (логические, числовые и текстовые), отображающие состояния устройств и передаваемые ими данные;
  • логические операторы (и, или, не, исключающее или);
  • операторы сравнения (больше, меньше, больше/меньше или равно, равно, не равно);
  • операторы циклов;
  • специальные функции (таймер, вывод текстового сообщения, вывод изображения).

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

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

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

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

Представление сценариев

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

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

Для рассмотренного выше примера сценария построено дерево, представленное на рис. 1.

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

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

Порядок нумерации вершин совершенно неважен, будем присваивать номера автоматически в порядке добавления элементов.

Кодирование деревьев

Согласно [4, 5] существует несколько способов представления деревьев: представление с помощью матрицы смежности, представление с помощью списков смежности, представление с помощью списка ребер и кода Прюфера, уровневый код, десятичная кодировка. Наиболее оптимальным способом кодировки деревьев является код Прюфера [4, 5]. Рассмотрим принцип работы данного способа кодирования.

Дерево T, состоящее из множества вершин {ν12,...,νn}, где n – количество вершин, задается списком ребер (νij), где νi и νj – связанные вершины, i,j ∈ [1,n] i≠j. Код Прюфера – это последовательность P(T) = [a1,a2,…,a(n-2)], которая формируется по следующему алгоритму [5, 6]:

Повторять от 1 до n-2 раза (пока не останется одно ребро):

  1. Найти висячую вершину (лист) с минимальным номером νi.
  2. Записать в код Прюфера вершину νj, смежную с νi.
  3. Удалить вершину νi и ребро (νij) из дерева.

На основе вышеизложенного сформируем алгоритм создания сценария:

  1. Сценарий записывается как множество ребер дерева T = {ν12,...,νn}.
  2. Создается последовательность B = {b1,b2,...,bn}, куда записываются значения вершин дерева (блоков) в порядке, соответствующем номерам вершин.
  3. Дерево кодируется кодом Прюфера, который записывается в последовательность P(T).
  4. Итоговыми выходными данными после завершения процесса создания сценария будут две последовательности: B со значениями блоков, из которых состоит сценарий, и P(T), где записан код Прюфера для этого сценария.

Список ребер дерева для сценария из нашего примера:

  • (1, 2)
  • (2, 5)
  • (3, 1)
  • (4, 1)
  • (5, 6)
  • (6, 7)
  • (7, 8)
  • (5, 9)
  • (3, 10)
  • (10, 11)
  • (11, 12)
  • (11, 13)
  • (3, 14)
  • (14, 15)
  • (14, 18)
  • (15, 16)
  • (16, 17)
  • (18, 19)
  • (19, 20)
  • (20, 21)
  • (14, 22)
  • (22, 23)
  • (23, 24)
  • (14, 25)
  • (25, 26)
  • (26, 27)
  • (4, 28)
  • (28, 29)
  • (29, 30)
  • (4, 31)
  • (31, 32)
  • (32, 33)
  • (33, 34)

Список значений вершин:

  • сценарий 1
  • если
  • то
  • иначе
  • и
  • T1
  • <=
  • 15
  • S1
  • если
  • или
  • S2
  • A2
  • то
  • если
  • не
  • A3
  • то
  • A3
  • =
  • истина
  • A1
  • =
  • ложь
  • A2
  • =
  • ложь
  • если
  • не
  • A4
  • то
  • A4
  • =
  • ложь

Для нашего сценария код Прюфера будет следующим

  • 7
  • 6
  • 5
  • 5
  • 2
  • 1
  • 11
  • 10
  • 3
  • 16
  • 15
  • 14
  • 20
  • 19
  • 18
  • 14
  • 23
  • 22
  • 14
  • 26
  • 25
  • 14
  • 3
  • 1
  • 4
  • 29
  • 28
  • 4
  • 32
  • 32
  • 33

Далее при помощи специального парсера можно раскодировать дерево и сгенерировать код для интеграции сценария на том языке программирования, на котором реализовано программное обеспечение системы управления интеллектуального здания. Также дерево можно раскодировать для редактирования сценария.

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

Во-первых, передача данных об алгоритме и его хранение в закодированном виде в базе данных позволят сократить объем передаваемых и хранимых данных. Кодировка деревьев относится к задаче сжатия информации, а компактная запись дерева, полностью описывающая его структуру, может существенно упростить передачу информации о дереве и работу с ним [5].

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

  1. Serna M., Sreenan C., Fedor S. A visual programming framework for wireless sensor networks in smart home applications. // Proceedings of the 2015 IEEE Tenth International Conference on Intelligent Sensors, Sensor Networks and Information Processing (ISSNIP), Singapore, 7-9 April 2015. – P. 1-6.
  2. Visual Programming Language (VPL) [Электронный ресурс]. – URL: https://www.techopedia.com/definition/22855/visual-programming-language-vpl.
  3. Коварцев А.Н. Методы и средства визуального параллельного программирования. Автоматизация программирования: учеб. / А.Н. Коварцев, В.В. Жидченко. – Самара: Изд-во Самар. гос. аэрокосм. ун-та, 2011. – 168 с.
  4. Касьянов В. Н., Евстигнеев В. А. Графы в программировании: обработка, визуализация и применение. – СПб.: БХВ-Петербург, 2003. – 1104 с.
  5. Кирсанов М. Н. Графы в Maple. Задачи, алгоритмы, программы. – М.: Издательство ФИЗМАТЛИТ, 2007. – 168 с.

Ключевые слова: умный дом, интеллектуальное здание, визуальное программирование, кодирование деревьев, код Прюфера.


Representation of scenarios of intelligent building management system by coded trees

Nikolaev P.L., Lecturer of Moscow Aviation Institute (National Research University), Moscow, npavel89@gmail.com

Khoroshko L.L., Ph.D, associate professor of Moscow Aviation Institute (National Research University), Moscow, khoroshko@mati.ru

Abstract: In this paper the model of representation scenarios (control algorithms) which are implementing the work of intelligent building management system is offered. On the basis of the proposed model a software implementation of the environment for visual programming of algorithms for the operation of smart home systems is planned further. In this research the definition and structure of the scenarios based on the example are analyzed in detail. Also the way of representation scenarios in the form of trees coded by Prufer code is considered.

Keywords: smart home, intelligent building, visual programming, tree coding, Prufer code.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru