ВЕБ-ПРИЛОЖЕНИЕ ДЛЯ ПОСТРОЕНИЯ КРАТЧАЙШИХ МАРШРУТОВ В ЗДАНИЯХ Макарчук Р.С.1, Шатрова Е.К.2 Em ail: Makarchuk655@scientifictext.ru
'Макарчук Роман Сергеевич — кандидат физико-математических наук, доцент, кафедра математики, физики и информационных технологий, Кемеровский государственный сельскохозяйственный институт;
2Шатрова Елена Константиновна — учитель математики, Муниципальное автономное общеобразовательное учреждение Средняя общеобразовательная школа № 36, г. Кемерово
Аннотация: статья посвящена разработке веб-приложения, предоставляющего сервис построения кратчайших маршрутов на этажах зданий между двумя заданными пользователем точками с использованием графического пользовательского интерфейса. Приложение, в первую очередь, рассчитано на использование в информационных терминалах, расположенных на территории организации, однако с равным успехом используется на мобильных устройствах при наличии подключения к сети Интернет. Для построения кратчайшего пути между вершинами графа, предварительно построенного для каждого этажа с учетом наличия стенок, входов и выходов из помещений, используется реализации популярного алгоритма А* на языке JavaScript.
Ключевые слова: веб-приложения, клиент-серверная архитектура, поиск кратчайших путей в графах, алгоритм А*.
WEB APPLICATION PROVIDING A SERVICE FOR GENERATION OF SHORTEST PATHS INSIDE THE BUILDINGS Makarchuk R.S.1, Shatrova E.K.2
'Makarchuk Roman Sergeevich — PhD in Physics and Mathematics, Associate Professor, DEPARTMENT OF MATHEMATICS, PHYSICS AND DATA ENGINEERING, KEMEROVO STATE AGRICULTURAL INSTITUTE; 2Shatrova Elena Konstantinovna — Teacher of Mathematics, MUNICIPAL AUTONOMOUS EDUCATIONAL INSTITUTION SECONDARY SCHOOL № 36,
KEMEROVO
Abstract: the article dwells upon development of a web application providing a service for generation of shortest paths between two user-defined points on building floors within a graphic user interface. The application is primarily meant to be used on information terminals located in the organization premises, however it can be equally used on Internet-connected mobile devices. For generation of the shortest path between nodes of the graph, preliminarily drawn for each floor considering walls, entrance and exit doorways, popular А* algorithm in JavaScript implementation is used. Keywords: web applications, client-server architecture, shortest path searching in graphs, А* algorithm.
УДК 004.422
В современном мире, в связи с глубоким проникновением информационных технологий во все сферы жизнедеятельности человека, все большее количество организаций дает возможность своим клиентам использовать в качестве справочных систем интерактивные информационные терминалы, расположенные на их территории. Кроме того, важно, чтобы доступ к таким информационным системам можно было осуществлять через сеть Интернет с использованием веб-браузеров или мобильных приложений. Одними из таких организаций являются современные школы в новых жилых районах, обладающие большой вместимостью и, соответственно, наличием нескольких корпусов или, как минимум, большими площадями.
Вопрос о предоставлении ученикам и их родителям простых и удобных сервисов, позволяющих осуществлять навигацию по этажам зданий, относящихся к учебному заведению, является крайне актуальным.
Имеющиеся на рынке решения, как правило, включают в себя специализированные информационные терминалы, а также маячки, позволяющие в реальном времени отслеживать
свое местоположение. Такие системы стоят крайне дорого, а их огромные возможности не всегда востребованы.
В связи с этим возникает задача о разработке сервиса, позволяющего, в первую очередь, строить кратчайшие маршруты от одной точки здания до другой и, возможно, обладающего некоторым дополнительным функционалом.
Настоящая работа посвящена разработке такого сервиса для общеобразовательных учреждений, который, однако, может использоваться и в любых других случаях, например, в крупных торговых центрах.
В основу разрабатываемого информационного сервиса положена трехзвенная клиент-серверная архитектура с тонким клиентом, в качестве которого можно использовать любой из современных веб-браузеров.
Набор используемых технологий и программных средств включает следующие:
• на стороне сервера баз данных: СУБД MySQL. В базе данных MySQL хранится информации о корпусах, этажах и кабинетах зданий, фотографические изображения помещений, а также графы, между вершинами которых осуществляется поиск кратчайших путей с использованием известных алгоритмов. Каждый граф соответствует одному этажу здания;
• на стороне веб-сервера: Apache HTTP Server. С точки зрения парадигмы MVC (ModelView-Controller) веб-приложение, написанное на языке PHP в рамках настоящего проекта и расположенное на веб-сервере Apache выполняет функции контроллера, т. е., по сути, осуществляет передачу необходимых данных из базы данных в веб-браузер клиента;
• на стороне клиента: любой современный веб-браузер (Mozilla Firefox, Google Chrome, Opera и др.), поддерживающий технологии HTML 5, CSS 3, а также исполняющий сценарии, написанные на языке JavaScript (ECMAScript v.5). Основная работа приложения осуществляется на стороне клиента.
Использование в проекте клиент-серверной архитектуры, а также вышеперечисленных технологий и программного обеспечения является современным решением и позволяет решить следующие задачи:
• гибкая масштабируемость системы с точки зрения размещения новых информационных терминалов;
• централизованное обновление используемого программного обеспечения, в том числе и созданного в рамках настоящей работы;
• возможность использования на мобильных устройствах без дополнительной установки каких-либо мобильных приложений.
Для функционирования разработанного приложения используются графы, предварительно построенные для каждого этажа здания и хранящиеся в базе данных MySQL, а также графические растровые изображения планов этажей, используемые в приложении в качестве подложки, поверх которой отображается построенный маршрут.
Для поиска кратчайшего пути между двумя вершинами графа по первому наилучшему совпадению используется алгоритм А* (А звездочка) [1]. Алгоритм A* является результатом последовательных улучшений известного алгоритма Дейкстры [2], которые предлагались в работах Н. Нильсона, Б. Рафаэля и П.Э. Харта [3]. Алгоритм использует эвристическую функцию, состоящей из двух частей:
• функции стоимости достижения текущей вершины графа из начальной;
• функции эвристической оценки расстояния от текущей вершины до конечной.
В качестве значения функции эвристической оценки расстояния между вершинами графа можно использовать эвклидову, чебышевскую, манхэттенскую или любую другую подходящую метрику. В настоящей работе вершины графа располагаются в центрах равномерной прямоугольной сетки, которая полностью покрывает подложку (растровое изображение плана этажа). В силу того, что соседние вершины графа могут располагаться лишь в строго горизонтальном или вертикальном направлении от текущей, наиболее подходящим вариантом в настоящем случае является использование манхэттенской метрики для эвристической функции.
«• о euiui
Рис. 1. Построение кратчайшего маршрута между кабинетами здания
На рис. 1 представлен результат определения кратчайшего расстояния по первому наилучшему совпадению между двумя кабинетами первого этажа здания школы.
Разработанное в рамках представленной работы веб-приложение и база данных внедрены в общеобразовательной школе № 36 Рудничного района г. Кемерово.
Список литературы / References
1. Рассел С., Норвиг П. Искусственный интеллект: современный подход, 2-е изд. Пер. с англ. М.: Издательский дом «Вильямс», 2006. 1408 с.
2. Dijkstra E.W. A note on two problems in connexion with graphs // Numer. Math — Springer Science+Business Media, 1959. Vol. 1. Iss. 1. P. 269-271. ISSN 0029-599X; 0945-3245 -doi:10.1007/BF01386390.
3. Hart P.E., Nilsson N.J., Raphael B.A. Formal Basis for the Heuristic Determination of Minimum Cost Paths // IEEE Transactions on Systems Science and Cybernetics SSC4, 1968. № 2. С. 100-107.