www.samag.ru
      Get it on Google Play
Поиск  
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Сетевой агент
О журнале
Журнал «БИТ»
Информация для ВАК
Звезды «СА»
Подписка
Где купить
Авторам
Рекламодателям
Магазин
Архив номеров
Мероприятия
Форум
Опросы
Ищу/Предлагаю работу
Спроси юриста
Игры
Контакты
   

Конференция DevOops

Слайд шоу  
Представляем работы Виктора Чумачева
Виктор Чумачев – известный московский художник, который сотрудничает с «Системным администратором» уже несколько лет. Именно его забавные и воздушные, как ИТ, иллюстрации украшают многие серьезные статьи в журнале. Работы Виктора Чумачева хорошо знакомы читателям в России («Комсомольская правда», «Известия», «Московские новости», Коммерсант и др.) и за рубежом (США, Германия). Каждый раз, получая новый рисунок Виктора, мы в редакции улыбаемся. А улыбка, как известно, смягчает душу. Поэтому смотрите на его рисунки – и пусть у вас будет хорошее настроение!

  Опросы
Дискуссии  
17.09.2014г.
Просмотров: 14327
Комментарии: 3
Красть или не красть? О пиратском ПО как о российском феномене

Тема контрафактного ПО и защиты авторских прав сегодня актуальна как никогда. Мы представляем ...

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

03.03.2014г.
Просмотров: 18526
Комментарии: 1
Жизнь под дамокловым мечом

Политические события как катализатор возникновения уязвимости Законодательная инициатива Государственной Думы и силовых структур, ...

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

23.01.2014г.
Просмотров: 26493
Комментарии: 3
ИТ-специалист будущего. Кто он?

Так уж устроен человек, что взгляд его обращен чаще всего в Будущее, ...

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

1001 и 1 книга  
16.02.2017г.
Просмотров: 3469
Комментарии: 0
Опоздавших не бывает, или книга о стеке

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

17.05.2016г.
Просмотров: 6529
Комментарии: 0
Теория вычислений для программистов

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

30.03.2015г.
Просмотров: 8635
Комментарии: 0
От математики к обобщенному программированию

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

18.02.2014г.
Просмотров: 10352
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

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

13.02.2014г.
Просмотров: 7182
Комментарии: 0
Читайте, размышляйте, действуйте

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

Друзья сайта  

Форум системных администраторов  

sysadmins.ru

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

Архив номеров / 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