В первой главе были проанализированы уже существующие аналоги картографических сервисов и визуализаторов алгоритмов. Приведены сравнительные характеристики разных методов решения задачи коммивояжера. В результате анализа был выбран для реализации метод ветвей и границ, как наиболее результативный и быстрый. В качестве основных визуальных инструментов – интерактивная карта и визуализатор алгоритма.
Во второй главе были созданы модели системы. Описаны постановка задачи, инструменты для программирования, нарисованы информационно-функциональные модели приложения. В процессе проектирования системы важно уделить внимание конкретным деталям: сформулировать не только основные функции, но и дополнительные с учетом целевой аудитории и ее интересов.
Исследования показывают достоинства визуальных средств для сжатия, фильтрации большого объема данных, которые обрабатывает практически каждый день современный человек. Поэтому для осуществления поставленных задач были выбраны: интерактивная карта, визуализатор пошагового исполнения алгоритма, анимация, демонстрация метода ветвей и границ на конкретном примере (в текстовом документе – подробно, в презентации – наглядно, сжато). Ограничения, накладываемые на сервис, возникли из стремления к наглядности и учета возможностей используемых инструментов программирования. Требования к разным аспектам приложения основаны на теоретическом и практическом опыте разработчиков. Это базовая подготовка к программированию, которая повышает качество продукта.
В третьей главе рассказано, как было реализовано задуманное на языке C# с применением HTML, CSS, Java Script. Для работы СУБД был выбран Microsoft SQL и технология Entity Framework. Для развертывания веб-сервера было использовано программное обеспечение IIS, ASP.NET.
Особой находкой являются сервисы Openrouteservice JavaScript API, OpenLayers для построения интерактивной карты. Эти сервисы с открытым кодом, что дает дополнительных бонусов. Такое программное обеспечение имеет высокое качество, обладает гибкостью, доступностью на разных устройствах и операционных системах. Недочет быстро устраняются сообществом заинтересованных программистов.
Алгоритмы реализации, функционал программы, демонстрация работоспособности системы – содержание этой части диплома. Метод Литтла сложен для программирования, непрозрачен для понимания новичкам, труден для визуализации. Выполнение целей данной работы – амбициозная задача.
Разработанный сервис может быть использован обычными людьми, отправляющимися в путешествие и желающими сэкономить свои ресурсы. Другой пример применения сервиса – студент, изучающий метод ветвей и границ, может с помощью анимации понять суть метода, на примере разобраться, как работает алгоритм, ввести количество городов и расстояния между ними и получить пошаговое объяснение алгоритма с помощью созданного визуализатора. Преподаватели также могут применять продукт как наглядное средство.
Тестирование web-приложения проводилось на примере построения оптимальных маршрутов демонстрационного пользователя tourist (пароль: 100). Tourist собирается посетить достопримечательности г. Томска, затем г. Москвы, ввел точки на карте, нажал кнопку, получил минимальный по длине путь. Сохранить созданный маршрут в текстовый документ. В пункте личного кабинета под названием «История» накапливаются все созданные потребителем маршруты.
На примере демонстрационного пользователя student (пароль: 100), осуществив вход, можно ввести исходную информацию в визуализатор и получить «расшифровку» исполнения алгоритма по этим данным. «История» этого студента отображает все задания, которые выполнял он с помощью приложения «Visual Letter», кроме того, там обозначено и время исполнения метода для конкретных значений.
Спроектированное и запрограммированное приложение успешно прошло тестирование.
Выводы.
Запрограммированное приложение реализует задуманный функционал. Целевая аудитория: путешественники и мотивированные студенты, стремящиеся вникнуть, как алгоритм Литтла. Но есть, куда развивать приложение, улучшать его.
Направления развития решения «Visual Letter»:
- расширение функционала личных кабинетов пользователей;
- добавление графики и управляемой анимации в модуль визуализации шагов алгоритма;
- вставка дополнительных возможностей управление сайтом на панель администратора.
Метод ветвей и границ – сложный, визуализировать его было трудно, но тем интереснее была работа.
Проделана большая работы. Метод ветвей и границ представляет не столько метод, сколько подход к решению задач оптимизации. Применение и изучение этого метода, особенно для молодых людей, имеет и практическое и теоретическое значение.
Визуализация алгоритмов позволяет сделать процесс обучения более интересным, наглядным.
Соединение разных сервисов с достижениями искусственного интеллекта – перспективное направление. Улучшение картографических сервисов за счет более ювелирной обработки запросов пользователя уже реальность. Машинное обучение и методы оптимизации позволяют решать проблемы и в ценообразовании, и в обучении людей, и в решении управленческих вопросов, и даже в творчестве.