Научная статья на тему 'Аналитическое программное обеспечение прогнозирования потребления ресурсов в системе комплексного учета, регистрации и анализа потребления энергоресурсов и воды промышленными предприятиями и объектами ЖКХ'

Аналитическое программное обеспечение прогнозирования потребления ресурсов в системе комплексного учета, регистрации и анализа потребления энергоресурсов и воды промышленными предприятиями и объектами ЖКХ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
248
22
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
SOFTWARE / ENERGY RESOURCES ACCOUNTING / CONTEXTUALLY-PREDEFINED LANGUAGES / INTELLIGENT AGENTS / MACHINE LANGUAGES / ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ / УЧЕТ ЭНЕРГОРЕСУРСОВ / КОНТЕКСТНО-ДООПРЕДЕЛЯЕМЫЕ ЯЗЫКИ / ИНТЕЛЛЕКТУАЛЬНЫЕ АГЕНТЫ / МАШИННЫЕ ЯЗЫКИ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Подсвиров В.Н., Семенистая Е.С., Подопригора В.Б.

В данной работе рассматриваются вопросы разработки аналитического программного обеспечения, являющегося частью аппаратно-программного комплекса по учету, регистрации и анализа потребления энергоресурсов. Основной функцией аналитического программного обеспечения является прогнозирование расхода энергоресурсов и аварийных состояний, а также нештатных ситуаций. Для создания аналитического программного обеспечения предлагается использование контекстно-доопределяемых машинных языков. Рассмотрены вопросы реализации таких языков для интеллектуальных агентов (ИОА), которые используются для решения задач прогнозирования потребления ресурсов в сфере ЖКХ. Особое внимание уделяется методам поддержки изменения реализующих функций. Этот же подход может быть использован для решения и других задач. Основная идея состоит в вычленении частей алгоритма компонента и организации соответствующей связи между такой частью и контекстом, который может изменять ее прямо или косвенно.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Analytical software for resource consumption forecasting in the system of integrated accounting, registration and analysis of energy resources and water consumption by industrial enterprises and objects of housing and communal services

The submitted paper considers the issues of developing the analytical software which is the part of the hardware-software complex for energy accountability, reporting and analysis, and consumption. The main function of the analytical software is to predict the consumption of energy resources and emergency conditions, as well as non-routine events. To create analytical software, the use of contextually-predefined machine languages is suggested. The issues considered include the implementation of such languages for intelligent agents (IA), which are used to solve problems of resource consumption forecasting in the housing and communal services sector. Particular attention is paid to the methods for supporting the change in implementing functions. The same approach can be used to solve other problems. An intelligent agent features a complex behavior that changes as it interacts with the external environment and is determined by internal states. When creating intelligent agents, there are fundamental problems: search and formation of algorithms for the training of an intelligent agent, change and implementation of these algorithms within the agent itself. The work specially dwells on the second problem. The approach is that contextually-predefined languages and implementing systems are used as form-building (morphogenetic) ones. The productive element is the main part of the learning intelligent agent. There are six components of the productive element. They are considered within the context of contextually-predefined languages application. The basic idea is to isolate the parts of the component's algorithm and to arrange an appropriate connection between the particular part and the context that can change it directly or indirectly. As a result, the necessary adaptive change of algorithms is obtained on the basis of accumulated knowledge. One of the most urgent tasks is the form this process during the operation of the IA.

Текст научной работы на тему «Аналитическое программное обеспечение прогнозирования потребления ресурсов в системе комплексного учета, регистрации и анализа потребления энергоресурсов и воды промышленными предприятиями и объектами ЖКХ»

;

Аналитическое программное обеспечение прогнозирования потребления

ресурсов в системе комплексного учета, регистрации и анализа потребления энергоресурсов и воды промышленными предприятиями и

Аннотация: в данной работе рассматриваются вопросы разработки аналитического программного обеспечения, являющегося частью аппаратно-программного комплекса по учету, регистрации и анализа потребления энергоресурсов. Основной функцией аналитического программного обеспечения является прогнозирование расхода энергоресурсов и аварийных состояний, а также нештатных ситуаций. Для создания аналитического программного обеспечения предлагается использование контекстно-доопределяемых машинных языков. Рассмотрены вопросы реализации таких языков для интеллектуальных агентов (ИОА), которые используются для решения задач прогнозирования потребления ресурсов в сфере ЖКХ. Особое внимание уделяется методам поддержки изменения реализующих функций. Этот же подход может быть использован для решения и других задач. Основная идея состоит в вычленении частей алгоритма компонента и организации соответствующей связи между такой частью и контекстом, который может изменять ее прямо или косвенно.

Ключевые слова: программное обеспечение, учет энергоресурсов, контекстно-доопределяемые языки, интеллектуальные агенты, машинные языки.

Автоматизированные системы учета энергоресурсов на сегодняшний день все более активно внедряются в систему ЖКХ. Применение АСКУЭ дает множество преимуществ, как для потребителей энергоресурсов, так и ресурсоснабжающих организаций.

Практически все современные системы представляют собой многоуровневые аппаратно-программные комплексы, с гибкой настраиваемой структурой [1].

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

объектами ЖКХ

В.Н. Подсвиров1, Е.С.Семенистая1, В.Б. Подопригора'

1 Южный федеральный университет, Таганрог 2

ОАО «НППКП «Квант», Ростов-на-Дону

2

Введение

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

Программная часть аппаратно-программного комплекса учета расхода энергоресурсов и воды состоит из следующих классов программного обеспечения: клиентское ПО; сервисное ПО; аналитическое ПО.

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

Сервисное программное обеспечение (СПО) предназначено для решения следующих основных задач: настройка основных параметров функционирования приборов учета; аналитическое программное обеспечение предназначено для статистической обработки ранее собранных данных с целью прогнозирования потребления природного газа, электроэнергии и воды; упорядочивания выборок информации от приборов учета расхода ресурсов; формирования отчетной информации о потреблении природного газа, электроэнергии, горячей и холодной воды; выгрузки (передачи) информации о потреблении ресурсов в информационные системы организаций жилищно-коммунального хозяйства (ЖКХ) и ресурсоснабжающих организаций (РСО).

Аналитическое программное обеспечение (АПО) является частью сервисного программного обеспечения и состоит из следующих

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

Аналитическое ПО является изолированным модулем, его работа достаточно автономна, что позволяет выбрать алгоритмы отличные от применяемых в других частях системы. Принципы прогнозирования выбраны с учетом особенностей структуры аналитического ПО, в частности наличия в нем двух блоков: подсистемы статистической обработки и подсистемы прогнозирования потребления. Данное разделение допускает применение метода интеллектуальных агентов, однако помимо этих двух подсистем данный метод может быть применен и в подсистеме прогнозирования аварий [3].

Интеллектуальный агент — программа, самостоятельно выполняющая задание, указанное пользователем компьютера, в течение длительных промежутков времени. Такие агенты, как и любые прочие, имеют сложный, зачастую реализуемый нейросетями алгоритм [4].

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

Рассмотрим типовые компоненты ПЭ: 1. Средства прямого отображения условий в действия. 2. Средства логического вывода релевантных свойств мира из последовательности результатов восприятия. 3. Информация о том, как развивается внешний мир и какие результаты возможных действий могут быть получены агентом. 4. Информация о полезности, которая показывает, насколько желательными являются те или иные состояния мира. 5. Информация о ценности действий, показывающая

желательность действий. 6. Цели, описывающие классы состояний, достижение которых максимизирует полезность для агента.

Цели об I

Рис. 1 - Общая структура обучающего агента

Создание систем, реализующих контекстно-доопределяемые языки (КДЯ), требует особенного подхода, так как не все традиционные средства компиляции и интерпретации подходят для решения этой задачи. Разумеется, элементы контекстного доопределения имеются в современных языках программирования и средства их реализации проработаны в той или иной степени. Только решаемая ими задача является более частной, а потому и более простой [6].

В условиях реализации системы учета энергоресурсов и анализа потребления одной из типичных задач реализации КДЯ является обнаружение и правильная интерпретация контекста. То есть некоторая совокупность синтаксических правил выступает в качестве предиката, вычисление которого дает нам значение «истина» или «ложь». Соответственно значение «истина» запускает следующий этап распознавания и генерации (интерпретации), а значение «ложь» - возвращает процесс обратно, к дальнейшему разбору предложений входного текста [7].

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

Строка 1

Строка 2

Строка{

Строка п

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

Строка 1

Контекст 1 (Строка 2)\{ Строка 3 Строка 4

\}

Контекст 2 (Строка 5, Строка 6)\{ Строка 7

\}

Строка п

Скобочки "\{", "\}" определяют область действия контекста. В исходном тексте не присутствуют, условно расставляются системой распознавания. "Строка 2" распознается как "Контекст 1", а строки: "Строка 5"и "Строка 6" распознаются как "Контекст 2". "Контекст 1" и "Контекст 2"

;

являются условно независимыми, так как области действия их не пересекаются. Но может быть и так: Строка 1

Контекст 1 (строка 2)\{ Строка 3 Строка 4

Контекст 2 (Строка 5, Строка 6)\{

В этом случае "Контекст 2" можно рассматривать как дополняющий "Контекст 1" или заменяющий его действие в зависимости от алгоритма реализации контекста. По аналогии с обычными процедурными языками программирования, это могут быть циклы, вложенные друг в друга. В общем случае КДЯ позволяет оставить "Контекст 2" последействие для "Контекст 1": например, запретить выполнять область вложенного "Контекст 2" в цикле, образованном "Контекст 1" и предложить в рамках "Контекст 1" выполнить последействие "Контекст 2". Это принципиально отличается от традиционного подхода, обобщая его.

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

Строка 1

Контекст 1 (строка 2)\{ Строка 3 Строка 4

Строка 7

;

Контекст 2 (Строка 5, Строка 6)\{

\}

Строка п

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

Система, отличающая контекст от обычного текста, может содержать противоречивые и взаимоисключающие правила распознавания. Кроме того, может изменяться множество этих правил и последовательность их применения. В результате чего текущее состояние системы распознавания определяется кортежем {А, П}, содержащим ссылку на соответствующий алгоритм последовательности выборки правил А и массив ссылок на правила распознавания П [8]. Правила распознавания в общем случае могут воздействовать на общий алгоритм выбора правил и на множество выбираемых правил, что может порождать зацикливание при некорректном использовании.

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

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

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

Как пример, рассмотрим применение данного подхода для программы прогнозирования потребления энергоресурсов и воды, разрабатываемой в рамках проекта «Разработка и создание высокотехнологичного производства инновационной системы комплексного учета, регистрации и анализа потребления энергоресурсов и воды промышленными предприятиями и объектами ЖКХ»

Общая диаграмма логической структуры программы представлена на

рис.2.

Рисунок 2 - Общая диаграмма логической структуры программы

Класс Form3 имеет вспомогательное значение (создание окон программы, запуск программы создания рабочей БД, Web - клиента, Клиента предсказаний).

Класс DB_Action предназначен для формирования входной БД на основе рабочей БД. В процессе формирования происходит статистическая обработка данных и последующее сохранение результатов в создаваемых таблицах.

Класс DB_Queue содержит средства работы с очередью, он обеспечивает следующие функции:

InitQueueTable - обеспечивает создание и инициализацию таблицы очереди;

AddNewLine - добавляет новую строку в таблицу очереди;

GetNextLine - читает очередную строку из очереди;

DeleteQueueTable - удаляет все содержимое таблицы очереди;

ClearQueueTable - очищает таблицу, если такая имеется, от уже отправленных ответов;

PutOutXML - вставляет в указанную строку (определяется по UID) таблицы результат обработанного запроса;

GetWebString - получает у Web - сервера очередной пакет запросов; PutWebString - отправляет на Web - сервер очередную сформированную строку ответа на соответствующий запрос (идентифицируется их общим UID);

WaitQueue - позволяет приостановить обработку уже имеющихся в очереди запросов (ненулевое значение рассматривается как препятствующее обработке);

Класс IAgent имеет основную связь с обсуждаемым в статье вопросами, он обеспечивает формирование предсказаний. Этот класс, в свою очередь опирается на классы:

Learning_Element - обеспечивает "обучение" (динамическую адаптацию) используемых алгоритмов предсказаний.

Problem_Generator - отвечает за возможные проблемы функционирования алгоритмов предсказаний.

Critic - выявляет критические отклонения алгоритмов предсказаний. Собственно модификации грамматики КДЯ в зависимости от контекста реализуются именно в этом классе.

В качестве примера конкретной семантики ответа приведем вид пакета запросов, имеющий следующий формат:

<?xml version="1.0" encoding="utf-8"?> <req>

<server></server><!--Идентификатор сервера КПО --> <rq_tp>ana</rq_tp><!--Тип запроса. --> <ac_tp>get</ac_tp><!—Метод. --> <data> <row>

<id></id><!--глобальный идентификатор данного запроса--> <alhorytm_code></alhorytm_code><!--номер типа алгоритма -->

<репоё_Ь1;_81:га1:></регюё_Ь1:_81:га1:><! —начало периода исторических данных -->

<period_ht_end></period_ht_end> <!—окончание периода

исторических данных -- >

<prognoz_type></prognoz_type><!--вид прогнозирования --> <horizont_start></horizont_start><! —начало горизонта

прогнозирования >= -->

<horizont_end></horizont_end><! —окончание горизонта

прогнозирования <= -- >

<detail_code></detail_code><!--код вида детализации результата прогноза-- >

<resource></resource><!--вид (глобальный идентификатор) ресурса -->

<zone></zone><!--код (глобальный идентификатор) зоны (поддерева)->

^><М>

<id></id>

</org><!--код/коды (глобальный идентификатор) организации --> <pomeschenie>

<id></id>

<id></id>

</pomeschenie><!--код/коды (глобальный идентификатор) помещения

-- >

<id></id>

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

</client><!--код/коды (глобальный идентификатор) плательщиков --> <lic_schet>

^><М>

^><М>

</lic_schet><!--код/коды (глобальный идентификатор) лицевых счетов

<counter>

<id></id>

<id></id>

</counter><!--код/коды (глобальный идентификатор) приборов учета -

->

<balance_group>

балансовых групп -- > </row> </data> </req>

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

-- >

^><М> ^><М>

</balance_group><!--код/коды (глобальный идентификатор)

Основное отличие применения КДЯ - самообучение системы, т.е. получение новых знаний при много кратных применениях редукционных правил.

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

Результаты исследований, изложенные в данной статье, получены при финансовой поддержке Минобрнауки РФ в рамках реализации проекта «Разработка и создание высокотехнологичного производства инновационной системы комплексного учета, регистрации и анализа потребления энергоресурсов и воды промышленными предприятиями и объектами ЖКХ» по постановлению правительства №218 от 09.04.2010г. Исследования проводились в ФГАОУ ВО ЮФУ.

Литература

1. Корецкий А.А., Подопригора В.Б., Мирошниченко Е.П. Особенности разработки и внедрения системы учета энергоресурсов // Инженерный вестник Дона, №3. 2017. URL: ivdon.ru/ru/magazine/archive/N3y2017/4365.

2. Е. С. Семенистая, И.Г.Анацкий, Ю.А. Бойко Разработка программного обеспечения автоматизированной системы контроля и учета энергоресурсов

;

и воды // Инженерный вестник Дона, №4. 2016. URL: ivdon.ru/ru/magazine/archive/n4y2016/3897.

3. Podsvirov V.N. Context-Redefined Language Application for the Tasks of Intelligent Learning Agents (Resource Consumption Behavior Prediction Tasks). International Journal of Applied Engineering Research ISSN 0973-4562 Volume 11, Number 15 (2016) pp. 8471-8484.

4. Agent-Oriented Methodologies. Ed.by В.Henderson-Sellers and P.Giorgini. Idea Group Publishing, 2005. 413 p.

5. Подсвиров В.Н. Контекстно-доопределяемые языки и интеллектуальные агенты. Актуальные проблемы современной науки: Международная научно-практическая конференция. Алушта, 2015.С.192-194.

6. Рассел, Стюарт, Норвиг, Питер. Искусственный интеллект: современный подход, 2-е изд..: Пер. с англ. — М.: Издательский дом "Вильяме", 2006. — 1408 с.: ил. — Парал. тит. англ.

7. Franciso, M. Integrating Multi-Agent Systems: A Case Study. / Raymond, S. Staron, F. // IFIP International Federation for information Processing, Springer Verlag. 2005. vol. 159. pp. 99-108.

8. Brian Henderson-Sellers. Object-Oriented Metrics. Measures of Complexity. Prentice-Hall, Inc. Upper Saddle River, NJ, USA 1996. 234p.

9. Bauer B. UML Class Diagrams: Revisited in the Context of Agent-Based Systems: Agent-Oriented Software Engineering (AOSE) 2001, Montreal pp.l-8.

10. Barbosa, Fernanda, Cunha, Jos. A coordination language for collective

agent based systems: GroupLog//ACM Symposium on Applied computing SAC'2000 Villa Olmo, Como, Italy, 2000. pp. 189-195.

1. Koretskiy A.A., Podoprigora V.B., Miroshnichenko Ye.P. Inzenernyj

References

vestnik Dona (Rus), 2017,

ivdon.ru/ru/magazine/archive/N3y2017/4365.

№3.

URL:

2. Ye.S.Semenistaya, I.G.Anatskiy, YU.A. Boyko. Inzenernyj vestnik Dona (Rus), 2016, №4. URL: ivdon.ru/ru/magazine/archive/n4y2016/3897.

3. Podsvirov V.N. Context-Redefined Language Application for the Tasks of Intelligent Learning Agents (Resource Consumption Behavior Prediction Tasks). International Journal of Applied Engineering Research ISSN 0973-4562 Volume 11, Number 15 (2016) pp. 8471-8484.

4. Agent-Oriented Methodologies. Ed.by В.Henderson-Sellers and P.Giorgini. Idea Group Publishing, 2005. 413 p.

5. Podsvirov V.N. Kontekstno-doopredelyayemyye yazyki i intellektual'nyye agenty [Context-pre-defined languages and intelligent agents]. Aktual'nyye problemy sovremennoy nauki: Mezhdunarodnaya nauchno-prakticheskaya konferentsiya. Alushta, 2015. pp.192-194.

6. Russell, Stuart, Norvig, Peter. Iskusstvennyj intellekt: sovremennyj podhod [Artificial intelligence: a modern approach], 2nd ed. Trans. with English. M.: Publishing house "William", 2006. 1408 p.

7. Franciso, M. Integrating Multi. Agent Systems: A Case Study. Raymond, S. Staron, F. IFIP International Federation for information Processing, Springer Verlag. 2005. vol. 159. pp. 99-108.

8. Brian Henderson-Sellers. Object-Oriented Metrics. Measures of Complexity. Prentice-Hall, Inc. Upper Saddle River, NJ, USA 1996. 234p.

9. Bauer B. UML Class Diagrams: Revisited in the Context of Agent-Based Systems: Agent-Oriented Software Engineering (AOSE) 2001, Montreal pp.l-8.

10. Barbosa, Fernanda, Cunha, Jos. A coordination language for collective agent based systems: GroupLog. ACM Symposium on Applied computing SAC'2000 Villa Olmo, Como, Italy, 2000. pp. 189-195.

i Надоели баннеры? Вы всегда можете отключить рекламу.