Разработка алгоритмов для работы с маршрутами
Автоматизированная система, осуществляющая сбор, обработку, хранение информации о достопримечательностях и обеспечивающая доступ к ним. Применение генетического алгоритма для решения проблемы поиска лучшего маршрута. Разработка интерфейса, бизнес–логики.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 14.12.2019 |
Размер файла | 3,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Введение
В наше время люди ценят свое время и пытаются оптимизировать его для того, чтобы успеть сделать больше дел. Для этой цели многие используют программное обеспечение. Обычно у многих под рукой есть смартфон, в который можно установить тысячи разных приложений. Вследствие чего, разработка приложений под мобильные платформы является актуальной и пользуется спросом. Используя мобильный интернет или беспроводную сеть можно не беспокоиться о том, что какие - то функции приложения будут недоступны вне дома.
Сейчас немалая часть программистов создают разнообразные приложения для многих мобильных платформ, таких как:
- Android;
- IOS;
- Windows phone;
Разработанные приложения используют для разных целей, таких как:
- Общение с людьми;
- Прохождение обучающих материалов;
- Онлайн покупки;
- Игровые развлечения;
- Чтение книг и новостей;
- Ведение системы напоминаний;
- Поиск мест для посещения.
Если приглядеться, то можно выделить две группы мобильных приложений:
- Для работы;
- Для развлечений.
Приложения для работы помогают людям вести бизнес, быть на связи с коллегами, мониторить ресурсы.
Приложения для развлечения помогают людям расслабиться, отдохнуть.
Сейчас многие компании понимают актуальность написания мобильных приложений и выделяют много средств на их написание, ведь эти приложения смогут облегчить им:
- Производство;
- Общение с клиентами;
- Разработку;
- Бизнес - процессы.
На данный момент большая часть людей имеет у себя смартфон, благодаря чему возможно сделать вывод, что мобильная разработка является актуальной и целесообразной.
Моё приложение помогает людям создать:
- Встречи;
- Мероприятия;
- Экскурсии;
- Маршруты для прогулки.
с помощью геолокации, позволяет строить маршруты для экскурсий и одиночных прогулок на основе API 2 Гис и Google.
Целью диссертационной работы является:
- Построение автоматизированной системы, осуществляющей построение маршрута для прогулки или экскурсии на основе данных, полученных из геосервисов;
- Анализ работы генетического алгоритма в поиске наиболее длинного маршрута.
Объектом исследования являются автоматизированная система, осуществляющая сбор, обработку, хранение информации о достопримечательностях, а также обеспечивающая доступ к ним.
Предметом исследования является применение генетического алгоритма для решения проблемы поиска лучшего маршрута.
Практическая ценность полученных результатов заключается в реализации востребованной конечными пользователями автоматизированной системы.
Научная ценность полученных результатов заключается в адаптации подходящего алгоритма поиска пути в данных условиях.
Работа состоит из введения, трех глав, заключения, библиографического списка и приложений.
Апробация работы:
- Ежегодная сессия аспирантов и молодых ученых 2017 год;
- Ежегодная сессия аспирантов и молодых ученых 2018 год;
- ПОКОЛЕНИЕ БУДУЩЕГО: Взгляд молодых ученых-2018.
1. Аналитический обзор
1.1 Описание программного продукта
интерфейс маршрут генетический алгоритм
Разработанное мною приложение - социальная сеть для людей, которые не хотят сидеть и скучать дома. Приложение предоставляет возможность:
- Поиска людей для похода в интересующее пользователя место;
- Создания мероприятия;
- Организации экскурсий;
- Построения прогулки по интересным местам.
Приложение может помочь решить проблемы:
- отсутствия компании друзей, для похода в интересующее пользователя место;
- подбора маршрута для интересных экскурсий;
- поиска событий, мероприятий, арт-объектов поблизости;
- составления маршрута для прогулки.
Go Meet - это удобное мобильное приложение, которое позволяет пользователю:
- Найти место и компанию для встреч;
- Организовать вечеринку, прогулку, отдых, развлечение;
- Индивидуально подобрать интересную встречу (работает по указанным в профиле интересам);
- Вести поиск мест для встреч поблизости;
- Удобно следить за встречами, в которых участвует пользователь;
- Видеть новостную ленту с мероприятиями;
- Формировать собственные маршруты для экскурсий.
Приложение должно выполнять следующие функции:
- Создание, изменение, удаление встречи;
- Создание, изменение, удаление мероприятия;
- Работа с чатом;
- Создание, изменение, удаление маршрута;
- Возможность перестроить маршрут;
- Возможность автоматически формировать маршрут для экскурсий;
- Интеграция с социальными сетями;
- Интеграция с открытыми данными по мероприятиям.
Инструменты разработки
Android Studio
IDE была анонсирована 15 июня 2013 в компании Google, является средой для разработки (IDE) применяется в написании кода приложений Android.
Мое мобильное приложение разрабатывалось при помощи android studio, она выбиралась исходя из того, что это официальная IDE, поддерживаемая компанией Google. Сейчас это самая популярная среда из всех предлагаемых разработчикам Android приложений IDE полностью бесплатна, имеет множество встроенных функций для работы с Android приложениями, такими как:
- Google play services;
- Google maps;
- Json parser;
- Materialized components;
- Sql drivers;
- Diagrams designer;
- Git support;
- Debug terminal;
- Unit tests support;
- Android UI support;
- Gradle builder.
Начиная, с июня 2013 находилась в свободном доступе, после чего стала активно тестироваться бета-тестерами. Первая из стабильных версий (1.0) выпустилась в ноябре 2014, после чего перестал поддерживаться плагин Android Development Tools (ADT) в среде разработки Eclipse.
Разработкой ПО для android studio занималась известная компания - Jet Brains. За основу была взята такая среда разработки, как IntelliJ IDEA(на данный момент официальная среда для Android приложений)
Можно пользоваться этой IDE на таких платформах, как:
- Windows 7,8,10;
- OSX;
- Ubuntu;
- Mac OS.
Особенности
Постоянно в среде добавляются и новые и дорабатываются старые функции. Сейчас можно использовать такие функции, как:
- Редактор (WYSIWYG) для макетов который помогает создавать интерфейсные компоненты, предварительно показывая их. Поддерживает возможность DragAndDrop, и показывает разнообразные макеты при разных разрешениях экрана;
- Сборщик приложений, который собирает apk файл при помощи Maven или Gradle;
- Разнообразные варианты сборок и генерация нескольких установочных файлов (например, под разные версии Android или разные разрешения экранов);
- Возможность быстро рефакторить код;
- Линтер кода, который статически анализирует ошибки в коде и помогает искать проблемы с производительностью, отсутствием нужных пакетов и различие версий;
- Подпись кода с использованием Pro Guard и различных сторонних утилит;
- Примеры разных макетов, интерфейса и прочих компонентов Android;
- Возможность создания приложений для разных девайсов, таких как андроид-телевизоры и андроид часы;
- Поддержка платформы Google, в которую интегрированы сервисы облачных сообщений Google и AppEngine;
- Текущая версия IDE имеет AndroidN PreviewSDK, благодаря чему можно легко разрабатывать приложения для этой новой мобильной платформы;
- В новой версии IDE можно работать с новым компилятором Jack, который позволяет проводить более быструю компиляцию APK файла
- Начиная с Android Studio 2.1, вводится улучшенная поддержка Java8;
- Доступна функция Instant Run, Позволяющая повторно запускать приложение без компиляции, только с накатом изменений и без перезагрузки приложения;
- Новые PlatformTools 23.1.0 для Ubuntu доступны только на 64 разрядной ОС, а при попытке запустить их на 32 битной ОС, выдает ошибку. А это значит, что теперь Android Studio не будет работать на 32-битных линукс машинах.
Microsoft visual studio
Для серверной части приложения используется язык программирования С#
Microsoft Visual Studio -- это среда разработки от компании Microsoft, включающая в себя компилятор для таких языков, как:
- С;
- С++;
- С#;
- Basic;
- J;
- J++;
- .net;
- Sql.
В этой среде разработки можно разрабатывать разные виды приложений:
- Консольные;
- Веб-сайты;
- Веб-приложения;
- Веб-службы;
- С графической оболочкой(поддерживают windows forms).
Приложения поддерживают множество платформ, такие как:
- Windows;
- .NETCompact Framework;
- Windows Mobile;
- WindowsCE;
- .NET Framework;
- X box;
- Windows Phone;
- Silver Light.
IDE включает редактор кода, поддерживающий IntelliJ Sense и позволяющий быстро проводить рефакторинг программного кода. Так же в среду разработки встроен отладчик, работающий на машинном уровне.
Так - же к встраиваемым инструментам можно отнести
- Редактор форм;
- Web-редактор;
- Class Designer;
- Дизайнер схемы БД.
Как и во многих других средах разработки в Visual Studio имеется возможность подключения большого количества плагинов, которые могут очень сильно расширить функциональность среды, например:
- Поддержка системы контроля версий (Git, Mercurial);
- Поддержка новых возможностей, таких как визуальное построение диаграмм классов или визуализация методов АПИ;
- Поддержка СУБД, таких, как Oracle, MySQL, PostgreSQL , SQLite, Redis, MongoDB.
В моей работе для сервера приложения используется язык С#, благодаря чему можно получать данные из БД при помощи GET запросов.
PostgreSQL
СУБД PostgreSQL располагается на сервере вместе с серверным приложением написанном на языке программирования С#, она хранит в себе:
- Данные пользователей;
- Сведения о мероприятиях;
- Построенные маршруты для экскурсий;
- Справочную информацию.
Postgres -- свободно распространяемая реляционная система для управления базами данных (СУБД). Поддерживается многими платформами, такими, как:
- Linux;
- macOS;
- Solaris/OpenSolaris;
- Tru64;
- QNX;
- Windows 7,8,10.
- Основа СУБД - язык SQL , PostgreSQL может использовать многие из существующих возможностей стандарта SQL2011;
Сильные стороны PgSQL:
- Присутствие таких механизмов, как:
1. Транзакции;
2. Репликации;
- Возможность расширить встроенные языки программирования, такие, как:
1. PL \ pgSQL;
2. PL \ Perl;
3. PL \ Python;
4. PL \ Tcl;
5. PL \ Java;
6. PL\PHP;
7. PL \ Py;
8. PL \ R;
9. PL \ Ruby;
10. PL \ Scheme;
11. PL \ sh;
12. PL \ V8;
- Механизмы наследования;
- Легкая масштабируемость.
PostgreSQL базируется на языке SQL и поддерживает многие из возможностей стандарта SQL:2011. В PostgreSQL версии 9.5.3 есть следующие параметры, приведенные в таблице 1.1:
Прочие возможности:
- Соблюдение принципов ACID;
- Соответствие стандартам ANSI SQL-92 и SQL-98;
- Поддержка запросов с OUTER JOIN, UNION, UNION ALL, EXCEPT, INTERSECT и подзапросов;
- Последовательности;
- Контроль целостности;
- Репликация;
- Общие табличные выражения и рекурсивные запросы;
- Аналитические функции;
- Поддержка Юникода (UTF-8);
- Поддержка регулярных выражений в стиле Perl;
- Встроенная поддержка SSL, SELinux и Kerberos;
- Протокол разделяемых блокировок;
- Подгружаемые расширения, поддерживающие SHA1, MD5, XML;
- Расширения для написания сложных выборок, отчётов и т. д. (API открыт);
- Средства для генерации совместимого с другими системами SQL-кода и импорта из других систем;
- Автономные блоки на доступных языках, а не только SQL.
Так же данная СУБД была выбрана, поскольку является бесплатной и совместимой с Android приложениями.
Redis
Redis (расшифровывается как Remote Dictionary Server) - это быстрое хранилище данных типа «ключ-значение» в памяти с открытым исходным кодом для использования в качестве базы данных, кэша, брокера сообщений или очереди. Проект возник, когда Сальваторе Санфилиппо, первоначальный разработчик Redis, пытался улучшить масштабируемость стартапа в Италии. Redis обеспечивает время отклика на уровне долей миллисекунды и позволяет приложениям, работающим в режиме реального времени, выполнять миллионы запросов в секунду. Такие приложения востребованы в сфере игр, рекламных технологий, финансовых сервисов, здравоохранения и IoT. Redis широко применяется для кэширования, управления сеансами, разработки игр, создания таблиц лидеров, аналитики в режиме реального времени, работы с геопространственными данными, поддержки служб такси, чатов и сервисов обмена сообщениями, потоковой передачи мультимедиа и приложений с отправкой сообщений по модели «издатель - подписчик» (Pub/Sub).
Все данные в Redis хранятся в памяти, а не на дисках или твердотельных накопителях, как в других базах данных. Поскольку Redis, как и другие хранилища данных в памяти, не нуждается в доступе к диску, это исключает задержки, связанные с поиском, и обеспечивает доступ к данным за микросекунды. В число возможностей Redis входит поддержка разнообразных структур данных, обеспечение высокой доступности, работа с геопространственными данными, создание скриптов Lua, проведение транзакций, постоянное хранение данных на диске и поддержка кластеров. Все это упрощает создание приложений, работающих в режиме реального времени в масштабе всего Интернета.
В отличие от упрощенных хранилищ на основе пар «ключ - значение», которые поддерживают ограниченный набор структур данных, Redis поддерживает огромное разнообразие структур данных, позволяющее удовлетворить потребности разнообразных приложений. Типы данных Redis включают:
- строки - текстовые или двоичные данные размером до 512 МБ;
- списки - коллекции строк, упорядоченные в порядке добавления;
- множества - неупорядоченные коллекции строк с возможностью пересечения, объединения и сравнения с другими типами множеств;
- сортированные множества - множества, упорядоченные по значению;
- хэш-таблицы - структуры данных для хранения списков полей и значений;
- битовые массивы - тип данных, который дает возможность выполнять операции на уровне битов;
- структуры HyperLogLog - вероятностные структуры данных, служащие для оценки количества уникальных элементов в наборе данных.
Redis упрощает код, позволяя писать меньше строк для хранения, использования данных и организации доступа к данным в приложениях. К примеру, если приложение содержит данные, хранящиеся в хэш-таблице, и требуется сохранить эти данные в хранилище, можно просто использовать структуру данных хэш-таблицы Redis. Решение подобной задачи с использованием хранилища данных, не поддерживающего структуры хэш-таблиц, потребует написания серьезного объема кода для преобразования данных из одного формата в другой. Redis уже оснащен встроенными структурами данных и предоставляет множество возможностей их комбинирования и взаимодействия с данными клиента. Разработчикам под Redis доступны более ста клиентов с открытым исходным кодом. Поддерживаемые языки программирования включают
- Java;
- Python;
- PHP;
- C;
- C++;
- C#;
- JavaScript;
- Node.js;
- Ruby;
- R;
- Go.
Работа с геопространственными данными:
Redis предлагает специально разработанные операторы и структуры данных в памяти для управления поступающими в режиме реального времени геопространственными данными в нужном масштабе и с высокой скоростью. Такие команды, как
- GEOADD;
- GEODIST;
- GEORADIUS;
- GEORADIUSBYMEMBER.
предназначенные для хранения, обработки и анализа геопространственных данных в режиме реального времени, позволяют Redis просто и быстро выполнять геопространственные операции. Redis можно использовать для добавления в приложение разнообразных возможностей на основе данных о местоположении, например чтобы определять время в пути, рассчитывать расстояние до пункта назначения и предоставлять информацию о достопримечательностях.
В моем приложении с помощью Redis реализована работа с координатами.
API Открытых данных Вологодской области
Ежегодно на формирование государственных информационных ресурсов затрачивается значительная часть бюджетных средств. Информация, собранная и сформированная трудом многочисленных государственных служащих, после использования по назначению в системе государственного управления за редким исключением вовлекается в общественное использование.
Сведения постепенно устаревают, утрачивают свою ценность.
Будучи своевременно опубликованы, эти сведения могли бы послужить обществу, превратившись в ценное сырье для экономики, науки и техники, лечь в основу для создания новых услуг, выступить основой для совершения разумного жизненного выбора граждан.
До недавнего времени о крайне низком значении «коэффициента полезного действия» государственной информации задумывались единицы.
Но осознание недопустимости такого положения пришло, и за относительно короткий срок ситуация с открытыми данными в России изменилась в корне - сегодня ни государство, ни общество не готовы мириться со столь низким КПД государственных данных:
- на государственном уровне признана актуальность задачи повышения «коэффициента полезного действия» государственной информации;
- сформирована и последовательно реализуется государственная политика в области публикации открытых государственных данных;
- приняты ключевые нормативные правовые акты, обязывающие государственные органы раскрывать сведения неограниченного распространения в форме открытых данных;
- развивается государственная информационно-технологическая инфраструктура открытых данных;
- постепенно формируется культура и экосистема открытых данных.
Портал открытых данных Российской Федерации - это один из ключевых инструментов реализации государственной политики в области открытых данных, которому отводится роль системообразующего элемента, ядра экосистемы открытых данных Российской Федерации.
Здесь, на Портале, сосредотачиваются наиболее актуальные сведения об открытых данных федеральных органов власти, органов региональной власти и иных организаций, размещаются документированные наборы данных, ссылки и метаданные опубликованных наборов данных, информация о созданных на основе открытых данных программных продуктах и информационных услугах. Здесь же публикуются нормативные правовые акты, регламентирующие деятельность государственных органов по раскрытию данных, методические и публицистические ресурсы. Здесь же реализованы коммуникационные интерфейсы для взаимодействия с организациями, выступающими в качестве владельцев социально-значимых данных.
На сегодня основными возможностями Портала открытых данных являются:
- возможность отбора и поиска наборов открытых данных по заданным критериям и ключевым словам;
- возможность ознакомления с паспортами и содержимым наборов открытых данных без предварительной загрузки;
- возможность оперативной визуализации данных с использованием инструментов построения диаграмм, графиков и отображения картографических данных;
- возможность автоматической загрузки актуальных наборов открытых данных с сайтов организаций;
- возможность участия в государственно-гражданском диалоге по определению предметных приоритетов раскрытия данных;
- возможность размещения наборов данных и ссылок на наборы данных, размещенные на сайтах организаций;
- возможность паспортизации наборов данных и преобразования форматов данных в «открытые форматы»;
- возможность реализации запросов к API источников данных (поиска, выгрузки наборов данных заданным критериям отбора, исполнения SPARQL - запросов).
В моем проекте используются открытые данные по культурным мероприятиям в Вологодской области. Приложение получает список данных и выводит их в удобной для пользователя форме.
Для получения данных использовано HTTP соединение, которое открывается в отдельном потоке и портал возвращает данные в виде массива JSON, который сохраняется и используется в программе.
API Социальных сетей
Социальные сети - мощный инструмент для раскрутки и ведения бизнеса, включающий обширную базу потенциальных клиентов, как говорится «из коробки». Помимо ведения бизнеса непосредственно в интерфейсе социальных сетей (от надоедливого спама до рекламных инструментов), существует также вариант использования функциональности и мощностей социальных сетей в своих внешних проектах (веб-сайты и веб-сервисы, мобильные приложения и др.). Такого рода возможности реализуются посредством API (Application Programming Interface) - набора готовых программных методов, предоставляемых тем или иным сервисом, той или иной системой. Некоторые социальные сети также предоставляют специальные виджеты, основанные на API, для интеграции в свои проекты. Кроме того, уже существует ряд программных продуктов для автоматизации операций, программная реализация которых основана как раз на использовании API.
Виджет - готовый программный модуль, предоставляющий определенные функциональные возможности пользователю. В привязке к социальным сетям - это могут быть следующие виджеты:
- «форма комментирования»;
- «подписчики группы»;
- «авторизация через социальную сеть»;
- «кнопка - Подписаться»;
- «Запись группы».
Виджеты в основном используются, как вспомогательный инструмент и могут быть полезны для привлечения к проекту людей, активно пользующихся социальными сетями. К примеру, форма комментирования позволяет тому или иному пользователю оставить комментарий на Вашем сайте без необходимости регистрироваться на нем. Виджет «Подписчики группы» (в некоторых случаях - «Последние новости группы») позволит привлечь подписчиков сайта в Вашу группу. Применяемость того или иного виджета будет зависеть от Ваших нужд и тематики Вашего бизнеса.
Группы API
В общем виде API социальных сетей можно разделить на несколько групп. Однако, следует помнить, что каждая социальная сеть индивидуальна и дает свой индивидуальный набор API, накладывая при этом свои индивидуальные ограничения.
-API «Авторизация»
Программные методы в рамках данного раздела API позволяют внешнему пользователю «авторизоваться» на Вашем ресурсе через социальную сеть. Следует помнить, что помимо «авторизации» со стороны социальной сети, также требуется программная обработка полученных от сервера данных на Вашей стороне (авторегистрация пользователя на основе полученных данных, автоматическая авторизация и т.п.)
-API «Пользователи», «Друзья»
Программные методы в рамках данных разделов API обычно позволяют удаленно получить некоторую информацию о пользователях или в автоматическом режиме выполнить некоторые действия, так или иначе связанные с пользователем (например, отправить запрос на добавление в друзья)
-API «Группы»
Программные методы в рамках данного раздела API позволяют удаленно получать информацию о группе/группах социальных сетей, управлять публикациями, настройками и комментариями в Вашей группе.
-API «Фотографии», «Фотоальбомы», «Видео», «Видеоальбомы», «Аудиозаписи»
Программные методы в рамках данного раздела API позволяет, соответственно, удаленно управлять медиа-материалами пользователя или группы.
-API «Сообщения»
Программные методы в рамках данного раздела API позволяют удаленно управлять личными сообщениями в Вашем аккаунте в социальной сети.
-API «Реклама»
Программные методы в рамках данного раздела API позволяют удаленно управлять рекламными материалами, рекламными кампаниями в социальной сети.
-API «Товары», «Маркет»
Некоторые социальные сети дают пользователю возможность упрощенной продажи товаров непосредственно в группе. Программные методы в рамках данных разделов API позволяют удаленно управлять продаваемыми товарами и условиями их продажи.
-Специфичное API
Некоторые социальные сети предоставляют специфичные только для них методы API, например, API «Платежи», API «Обсуждения», API «Страницы» и т.п. В некоторых случаях их также можно применять для ведения бизнеса и раскрутки в социальных сетях.
С помощью API социальных сетей в моем приложении реализована регистрация, авторизация и возможность делиться мероприятиями в социальных сетях.
1.2 Анализ существующих решений
Обзор приложений со схожей функциональностью
Проанализируем приложения из Play market, которые имеют схожие функции и выясним:
- Чем они отличаются от приложения, разработанного мною;
- Какие они проблемы решают;
- Их недостатки;
- Количество пользователей;
- Рейтинг этих приложений.
Рассмотрим приложения, для организации встреч, которые схожи с разработанным мною по тематике:
А) Приложение (Рисунок 1.1).
Более 1 млн. пользователей
Рейтинг 3,6/5
Рисунок 1.1 - Внешний вид приложения MyFriends
Б) Приложение GotYou (Рисунок 1.2).
500 тыс. пользователей
Рейтинг 3,9/5
Рисунок 1.2 - Внешний вид приложения GotYou
У этих приложений много общего с разрабатываемым мною. Тоже имеется:
- Геолокация;
- Элементы социальных сетей;
- Назначение встреч.
Но также в разработанном мною приложении есть функции, которые отсутствуют в аналогах:
- Назначение встреч с группой людей;
- Создание маршрутов для экскурсий;
- Создание приватных встреч;
- Создание напоминаний о встречах;
- Возможность делиться встречами в социальных сетях;
- Возможность формировать собственные маршруты для экскурсий;
- Вывод ближайших мероприятий с помощью открытых данных.
Еще у разработанного мною приложения существует несколько косвенных аналогов:
- Swarm (Рисунок 1.3);
- Foursqare (Рисунок 1.4).
В) Приложение swarm (Рисунок 1.3).
Более 10 млн. пользователей
Рейтинг 3,8/5
Рисунок 1.3 - Внешний вид приложения Swarm
Эти приложения объединяет то, что они похожи на справочник мест и отзывов об этих местах.
Г) Приложение Foursqare (Рисунок 1.4).
Более 10 млн. пользователей
Рейтинг 4,1/5
Рисунок 1.4 - Внешний вид приложения Foursqare
Эти приложения позволяют:
- Искать места поблизости;
- Читать отзывы о местах поблизости;
- Смотреть, кто из пользователей находится в этих местах на данный момент времени;
- Пользоваться геолокацией.
Но эти приложения не позволяют:
- Организовывать встречи в этих местах;
- Двигать свой маркер местонахождения по карте;
- Искать пользователей поблизости;
- Общаться в общем чате.
Также в приложениях для геолокации, таких, как:
- Goggle maps;
- Yandex maps;
- 2 Gis.
Существует поиск достопримечательностей
Д) Приложение Яндекс карты (Рисунок 1.5).
Более 50 млн. пользователей
Рейтинг 4,3/5
Рисунок 1.5 - Внешний вид приложения Яндекс карты
Е) Приложение Google карты (Рисунок 1.6).
Более 5 млрд. пользователей
Рейтинг 4,3/5
Рисунок 1.6 - Внешний вид приложения Google карты
Ж) Приложение 2гис карты (Рисунок 1.7).
Более 5 млрд. пользователей
Рейтинг 4,3/5
Рисунок 1.7 - Внешний вид приложения 2гис
В этих приложениях имеются сведения о достопримечательностях, мероприятиях, но отсутствует возможность строить маршруты по достопримечательностям (для прогулок или для организации экскурсий)
1.3 Постановка задачи
Необходимо разработать Android приложение с возможностью формировать маршрут для экскурсий.
Сервис будет состоять из Веб-приложения и клиента на Android. Основной задачей Веб-приложения является сбор, хранение маршрутов и событий и предоставление API для клиентского приложения.
Требования, предъявляемые к разрабатываемой ИС:
- поддержка актуальной информации;
- предоставление API, позволяющего получать всю необходимую информацию о событиях и маршрутах;
- профиль пользователя с возможностью сохранения понравившихся мероприятий и маршрутов;
- рекомендация мероприятий пользователю;
- все приватные данные клиента должны храниться в защищенном хранилище, и не передаваться по сети в открытом виде;
Отдельно к Android-приложению можно выделить следующие требования:
- удобный UI (Material Design);
- адаптивный UI - пользовательский интерфейс должен работать одинаково на устройствах с разным расширением экрана, и оптимизирован под большие экраны (планшеты), а также должен поддерживать альбомную и портретную ориентацию;
- поддержка Android устройств, начиная с версии 4.1.
Вывод по главе 1
В ходе первой главы был проведен аналитический обзор предметной области, рассмотрены языки и средства разработки, с помощью которых было сделано Android приложение, рассмотрены существующие аналоги и поставлена задача на разработку.
2. Разработка алгоритмов
2.1 Разработка алгоритмов для работы с маршрутами
На практике не всегда требуется поиск строго оптимального маршрута. Существуют алгоритмы поиска приближенных решений для метрической задачи за полиномиальное время и нахождения маршрута максимум вдвое длиннее оптимального. До сих пор не известен ни один алгоритм с полиномиальным временем, который бы гарантировал точность лучшую, чем 1,5 от оптимальной.
Метод перебора
Общепризнанно, что задача коммивояжёра в общем случае гарантированно решается оптимально только полным перебором всех вариантов.
В алгоритмической реализации полного перебора возможно применение двух условий, сокращающих время перебора и отсекающих заведомо неоптимальные пути, а именно:
1. При построении очередного варианта пути, подсчитывать его длину и если эта длина превышает уже найденный локальный минимум длины - пропускать этот вариант и все те, которые он порождает.
2. Если следующее выбранное ребро пересекает одно из ранее построенных рёбер - пропустить этот вариант и все те, которые он порождает.
Поскольку коммивояжёр в каждом из городов встает перед выбором следующего города из тех, что он ещё не посетил, существует:
маршрутов для асимметричной задачи коммивояжёра. Таким образом, размер пространства поиска зависит экспоненциально от количества городов.
Метод ветвей и границ
Алгоритм Литтла является частным случаем МВиГ, т.е. в худшем случае его сложность равна сложности полного перебора. Теоретическое описание выглядит следующим образом:
Имеется множество S всех гамильтоновых циклов графа. На каждом шаге в S ищется ребро (i, j), исключение которого из маршрута максимально увеличит оценку снизу. Далее происходит разбиение множества на два непересекающихся S1 и S2. S1 -- все циклы, содержащие ребро (i, j) и не содержащие (j, i). S2 -- все циклы, не содержащие (i, j). Далее вычисляется оценка снизу для длины пути каждого множества и, если она превышает длину уже найденного решения, множество отбрасывается. Если нет -- множества S1 и S2 обрабатываются так же, как и S.
Генетический алгоритм эвристический алгоритм поиска, используемый для решения задач оптимизации и моделирования путём случайного подбора, комбинирования и вариации искомых параметров с использованием механизмов, аналогичных естественному отбору в природе. Является разновидностью эволюционных вычислений, с помощью которых решаются оптимизационные задачи с использованием методов естественной эволюции, таких как наследование, мутации, отбор и кроссинговер. Отличительной особенностью генетического алгоритма является акцент на использование оператора «скрещивания», который производит операцию рекомбинации решений-кандидатов, роль которой аналогична роли скрещивания в живой природе.
В итоге, в результате сравнения данных методов была составлена таблица, в которой учитываются все плюсы и минусы каждого алгоритма.
Таблица 2.1- итоги сравнения
способ |
сложность |
память |
точность |
|
перебор |
(n - 1)! |
n |
100% |
|
генетический алгоритм |
Зависит от числа итераций |
n |
99% |
|
Метод ветвей и границ |
(n - 1)! |
n |
100% |
На основе сравнения методов был выбран генетический алгоритм, поскольку его сложность значительно меньше, чем у других алгоритмов.
На рисунке 2.1 изображена блок-схема получившегося алгоритма.
Рисунок 2.1 - Блок-схема генетического алгоритма
В разработанном алгоритме особью является маршрут, популяцией - группа особей, слияние особей (первая половина от первого родителя, вторая от второго) - скрещивание, добавление или удаление случайной точки в маршруте - мутация. Условия остановки алгоритма - прохождение 10000 итераций.
Чем больше итераций делает алгоритм, тем точнее получается результат, но расходуется больше времени.
2.2 Разработка интерфейса
В Android studio файлы интерфейса описываются на языке XML[4]. XML -файл содержит информацию о расположении элементов и их идентификаторах. Данная информация нужна для вызова элементов из кода приложения. Очень важно правильно разметить интерфейс, поскольку у всех android - устройств разное разрешение экрана. Если разметить интерфейс плохо, то интерфейс будет отображаться некорректно. В ходе разработки был спроектирован интерфейс (На рисунках фон интерфейса белый, чтоб не возникло трудностей при печати). В список разработанных файлов разметки входит:
- Восемь файлов разметки экрана;
- Один файл разметки пункта списка.
Перечень файлов интерфейса приведен на рисунке 2.2.
Рисунок 2.2 - Перечень файлов интерфейса
Рассмотрим более подробно разработанный интерфейс. В самую важную часть интерфейса входят:
- Окно логина;
- Главное окно с тремя вкладками;
- Вкладка «Профиль»;
- Вкладка «Карта»;
- Вкладка «Новости».
Окно логина
Первое что увидит пользователь, зайдя в приложение - окно логина. Оно имеет:
- Два текстовых поля (для логина и пароля);
- Кнопку для входа в приложение;
- Кнопку для регистрации;
- Анимацию при загрузке данных.
В окне логина, при нажатии кнопки «войти» идет проверка правильности введенных данных, которая сопровождается анимацией ожидания.
Рисунок 2.3 - Окно логина
Главный экран
Когда пользователь заходит в приложение под своим логином и паролем, то он видит главное окно приложения. Это окно содержит элемент, в котором помещаются три главные вкладки (в разметке интерфейса они не показываются, но их будет видно при тестировании):
- Профиль;
- Карта;
- Новости.
-
Рисунок 2.4 - Главное окно приложения
Эта активность является коренной активностью приложения, при ее закрытии закрывается все приложение.
Профиль
Вкладка профиль - одна из главных вкладок приложения, она содержит информацию о пользователе:
- Имя;
- Фамилия;
- Фотография;
- Возраст;
- Информация о ближайшем событии;
- Cписок друзей.
Рисунок 2.5 - Вкладка профиль
Карта
Вкладка с картой тоже важная часть приложения, на ней отображаются все встречи, в которых пользователь может принять участие, а так - же кнопка создания собственной встречи.
Пользователь может:
- Передвигать карту;
- Поворачивать карту;
- Находить свое местоположение;
- Нажимать на маркеры.
Рисунок 2.6 - Вкладка с картой
Кнопка «+» позволяет пользователю добавить на карту свою встречу, при помощи нового открывшегося окна с созданием встречи.
Новости
Последняя из главных вкладок - вкладка мероприятий, она содержит список с ближайшими мероприятиями, которые берутся с портала открытых данных Вологды. Если нажать на пункт этого списка, то откроется информация об этом мероприятии.
В пункте списка содержится информация:
- Название мероприятия;
- Дата проведения мероприятия;
- Возрастная категория мероприятия.
Рисунок 2.7 - Вкладка с мероприятиями
На каждый из пунктов списка пользователь может нажать для того чтобы открыть окно с описанием данной новости.
Вкладка создания встречи
На данной вкладке пользователь может сам создать встречу, для этого есть:
- Поле с вводом названия встречи;
- Карта, на которой можно установить место встречи.
Программно запрещено вводить пустое имя встречи.
Рисунок 2.8 - Вкладка создания встречи
При открытии окна на карте, в месте, в котором сейчас находится пользователь, появляется маркер. Этот маркер можно передвигать по карте с помощью удержания. Когда пользователь вводит название встречи и выбирает координаты встречи с помощью маркера, то нужно нажать кнопку «Создать встречу», после этого откроется карта и на ней можно будет найти только что созданную встречу.
Вкладка описания встречи
Когда пользователь нашел на карте нужную встречу и нажал на ее маркер, то открывается информация о данной встрече:
- Название;
- Дата встречи;
- Число участников;
- Кнопка «Присоединиться к встрече».
Рисунок 2.9 - Вкладка описания встречи
Посмотрев информацию о выбранной встрече, пользователь может решить, будет ли он к ней присоединяться.
Если пользователь захочет присоединиться к встрече, то он должен нажать кнопку «Присоединиться».
Если встреча пользователю не интересна, то он может вернуться на карту.
Вкладка описания мероприятия
Данная вкладка открывается, когда пользователь нажимает на мероприятие из списка мероприятий. Тут расположена информация о:
- Название мероприятия;
- Дата мероприятия;
- Описание мероприятия;
- Изображение, связанное с мероприятием;
- Кнопка «Поделиться» и кнопка «Присоединиться».
Рисунок 2.10 - Вкладка описания мероприятия
Посмотрев информацию о мероприятии, пользователь может решить пойдет он на него или нет.
Пользователь может нажать кнопку «Поделиться», кнопку «Я пойду на встречу» или кнопку «Назад».
Вкладка создания маршрута
Вкладка, которая позволяет пользователю построить маршрут для прогулки или экскурсии, пользователь может задать:
- Желаемую дистанцию;
- Стартовую точку маршрута;
- Сделать ли маршрут кольцевым.
Рисунок 2.11 - Вкладка описания маршрута
После ввода желаемых настроек пользователь может нажать кнопку «создать маршрут» и перейдет к окну просмотра маршрута
Окно просмотра маршрута для прогулки/экскурсии
На данной вкладке пользователь может увидеть созданный программой маршрут для экскурсии и может:
- Исключить точку из маршрута;
- Сохранить маршрут.
Программно запрещено вводить пустое имя маршрута.
Рисунок 2.12 - Вкладка создания маршрута
При открытии окна на карте, появляется маршрут, созданный программой. Любую точку маршрута можно исключить с помощью нажатия на нее. Когда пользователь вводит название маршрута, то он может нажать кнопку «Создать маршрут», после чего маршрут будет сохранен.
Окно регистрации
Для того чтобы пользователь мог пользоваться приложением, его нужно зарегистрировать. Данная активность отвечает за регистрацию пользователя. Пользователь должен ввести:
- Имя;
- Фамилию;
- Логин;
- Пароль;
- Возраст;
- Свою фотографию.
Рисунок 2.13 - Вкладка регистрации
Когда пользователь введет все данные, можно будет нажать кнопку «Зарегистрироваться» и вернуться в меню логина.
Разметка пункта списка
Для того чтобы список мероприятий у пользователя отображался красиво, нужно разметить пункт списка так, чтобы он отличался от стандартного списка.
Будем выводить в пункте списка:
- Название мероприятия;
- Дату мероприятия;
- Возрастную категорию.
Рисунок 2.14 - Внешний вид пункта списка
Для того чтобы пользователю было легче определиться с выбором мероприятия не открывая подробного описания, было решено сделать собственную разметку пункта списка.
Разметка кнопки «создать маршрут»
Рисунок 2.15 - Внешний вид пункта списка
Чтобы создать маршрут пользователю нужно нажать кнопку « >> » и выбрать начальную и конечную точку маршрута.
2.3 Разработка бизнес - логики
Архитектура приложения
Архитектура разрабатываемого приложения будет базироваться на концепции слоев[5] и включит в себя работу с картами от google и элементы социальной сети.
Критерии описания архитектуры приложения:
- Компоненты системы и их взаимодействие;
- Самые важные классы и функции;
- Организация данных (какие именно будут данные и где их хранить);
- Структура пользовательского интерфейса (примерное описание, какие компоненты содержит);
- Обработка исключительных ситуаций и сбоев;
- Безопасность;
- Использование технологий и стороннего программного обеспечения;
- Использование ресурсов (сколько людей будет заниматься разработкой и какие машинные ресурсы потребуются);
- Способы развития системы.
За основу архитектуры приложения было решено использовать трехслойный шаблон, из концепции слоев, который включает в себя:
- Представление (Как пользователь видит приложение);
- Домен (Бизнес логика);
- Источник данных (Работа с данными);
Представление пользователя - полностью содержится в мобильном приложении.
Бизнес логика - частично находится в приложении (на клиенте), частично на сервере.
Данные пользователя хранятся на сервере.
Рисунок 2.16 Компоненты приложения
Работа этих слоев в основном обеспечивается программными средствами, которые можно представить в виде взаимосвязанных компонентов (рисунок 2.16), где:
- Компонент представления отвечает за пользовательский интерфейс;
- Прикладной компонент реализует алгоритм решения конкретной задачи;
- Компонент управления ресурсом обеспечивает доступ к необходимым ресурсам;
Компонент представления(gui) содержит:
- Форму для регистрации;
- Tabed activity с тремя вкладками: профиль, карта, новости;
- Кнопку с настройками.
В бизнес логику будут входить классы:
- Работа с Google maps;
- Работа со встречами;
- Работа со списком друзей;
- Работа с локальной базой данных;
- Работа с новостями;
- Классы всех activity;
- Работа с чатом;
- Работа с пользовательскими аккаунтами.
Для доступа к ресурсам будет использоваться:
- Стандартный класс DBHelper, для SQLite;
- JDBC драйвер, для PostgreSQL.
Доступ к данным будет работать через Интернет с:
- API Google maps;
- API базы данных;
- API социальных сетей.
Приложение будет отправлять все данные пользователя на удаленный сервер, и сохранять их в базе данных.
Все исключительные ситуации и сбои будут записываться в логи приложения, которые будут просматриваться для поиска ошибок.
Для безопасности пользователя используется HTTPS соединение, пароли хранятся в кэшированном виде.
Разработкой приложения и веб-сервера занимаются двое человек, один отвечает за интерфейс и приложение, второй за связь с сервером и проектирование базы данных.
Программный код
Самая важная часть приложения - программный код. Код приложения разработан на языке JAVA, с использованием библиотек поддержки Android[6].
Все файлы классов и активностей приложения изображены на рисунке 2.17.
Рисунок 2.17 - Файлы программного кода
Рассмотрим подробнее за что отвечает каждый класс:
MainActivity -Класс главной активности приложения, содержит в себе работу с TabHost, который содержит три вкладки:
- Профиль;
- Карта;
- Новости.
ProfileActivity - Класс для работы с вкладкой профиля, позволяет работать с информацией пользователя, выводить:
- Имя;
- Фамилию;
- Возраст;
- Рейтинг;
- Информацию о VIP;
- Счет пользователя;
- Список друзей;
- Информация о ближайшем событии.
MapActivity - Класс для работы с вкладкой каты, позволяет работать с Google картой, загружает из БД координаты маркеров и отображает их на карте, так же позволяет сфокусироваться на текущем местоположении пользователя.
AddMarkerActivity - Класс для работы с добавлением на карту маркера. Позволяет создавать маркер на карте, используя название встречи и выбранные на карте координаты.
ExcursionActivity - Класс, позволяющий пользователю работать с автоматически построенными маршрутами для экскурсий/прогулок
LoginActivity - Данная часть кода отвечает за вход или регистрацию пользователя в системе.
MarkerPressActivity - Этот класс вызывается, при нажатии на надпись на маркере из вкладки «карта», позволяет просмотреть полное название встречи, её дату и количество участников.
NewsActivity - В данном классе реализовано подключение к банку открытых данных Вологодской области и получение оттуда списка новостей, их сортировка по дате и занесение в список.
AppData - Статический класс, использующийся как локальное хранилище данных. В классе хранится информация о текущем пользователе и его логине.
DBHelper - Данный класс создает локальную базу данных SQLite на телефоне. В этой базе хранятся настройки приложения.
FriendsListActivity - Данная активность отображает список друзей пользователя.
ListRecord и MyNewsListAdapter - Эти классы нужны для того, чтобы разметить пункт списка по своему шаблону, в классе ListRecord хранятся поля, для переноса в список, с помощью адаптера.
RegisterActivity - Этот класс работает с данными пользователя, при регистрации, введенные данные отправляются в базу данных.
Выводы по главе 2
В главе была рассмотрена реализация приложения: Его архитектура состоящая из 3х слоев (бизнес логика, интерфейс, работа с данными), интерфейс приложения состоящий из activity и layout, реализации алгоритмов с поиском маршрута для экскурсии или прогулки.
3. Результаты исследований
В ходе выполнения работы был проведен анализ следующих приложений и были выявлены их достоинства и недостатки:
- MyFriends;
- GotYou;
- Swarm;
- Foursqare;
- Яндекс карты;
- Google maps;
- 2 Гис.
Эти приложения можно разделить на 3 группы:
- Приложения для знакомств (MyFriends, GotYou);
- Агрегаторы мест и мероприятий (Swarm, Foursqare);
- Сервисы карт (Яндекс карты, Google maps, 2 Гис).
Приложения для знакомств позволяют пользователям:
- Создавать встречи (но только с ограниченным количеством человек).
Не позволяют:
- Создавать маршруты для прогулок или экскурсий;
- Искать места поблизости.
Агрегаторы мест и мероприятий позволяют пользователям:
- Находить интересные места;
- Оценивать места;
- Писать комментарии к местам.
Не позволяют:
- Строить маршруты по найденным местам;
- Создавать встречи.
Онлайн карты и маршруты позволяют пользователям:
- Искать интересные места;
- Строить маршруты вручную.
Не позволяют:
- Строить маршруты автоматически;
- Назначать встречи.
С учетом этих достоинств и недостатков было разработано мое приложение, оно позволяет:
- Создавать встречи;
- Находить встречи поблизости;
- Создавать маршруты для прогулок или экскурсий автоматически;
- Находить интересные места.
Оно не позволяет:
- Строить маршруты вручную;
- Оставлять комментарии к местам.
После проведенного анализа можно сказать, что приложение является уникальным благодаря возможности автоматически формировать маршруты для прогулок или экскурсий, и оно поддерживает многие полезные функции близких по идее приложений.
Приложение написано с использованием технологий:
- Android Studio;
- PostgreSQL;
- Redis;
- API Открытых данных Вологодской области;
- API Социальных сетей.
На данный момент приложение является готовым продуктом на этапе альфа тестирования, активно дописываются небольшие фитчи, такие как:
- Документация приложения для GooglepPlay;
- Возможность выводить описание каждой точки маршрута;
- Возможность ставить оценки местам.
Рисунок 3.1 Окно приложения с построенным маршрутом
В ходе выполнения работы было проведено сравнение возможных алгоритмов для построения маршрута экскурсий или прогулок:
- Метод перебора;
- Метод ветвей и границ;
- Генетический алгоритм.
В таблице 3.1 приведен итог расчета количества включенных в маршрут точек, при использовании каждого из алгоритмов с одной и той же стартовой точки, и пришедшем количестве достопримечательностей поблизости - 41.
Таблица 3.1- итоги сравнения
Длинна маршрута |
Метод перебора |
Метод ветвей и границ |
Генетический алгоритм |
|
3км |
10 точек |
13 точек |
14 точек |
|
5км |
14 точек |
15 точек |
17 точек |
|
7км |
16 точек |
19 точек |
19 точек |
|
10км |
19 точек |
20 точек |
21 точек |
Исходя из результатов исследования, для построения маршрута был выбран генетический алгоритм
Алгоритм имеет 4 стадии:
- Генерация нового поколения;
- Скрещивание;
- Отбор подходящих особей;
- Мутация.
Построение маршрута в приложении происходит с применением генетического алгоритма, что позволяет формировать его за приемлемое время с минимальными потерями точности.
Используя приложение, пользователь может выбрать, длину маршрута, и вариант пути:
- Кольцевой;
- От одной точки до другой.
Заключение
В ходе работы было сформулировано описание программного продукта, произведен анализ приложений - аналогов, также было разработано мобильное приложение, разработан его интерфейс, программный код и документация пользователя.
Так же был написан алгоритм, позволяющий приложению эффективно формировать маршрут для прогулок и экскурсий, основанный на генетике, что позволило приложению выполнять уникальные функции.
На данный момент все функции, которые должна содержать программа - реализуемы встроенными в Android studio классами и подключаемыми к java библиотеками.
Список использованных источников
1) Суконщиков А.А. Построение и анализ модели сети АСУП на базе аппарата модифицированных нечетких сетей Петри: / А.А. Суконщиков, Д.В. Кочкин - Монография / Вологда: 2015.
2) Кочкин Д.В. Модель генератора трафика на базе аппарата модифицированных нечетких сетей Петри: / Информатизация процессов формирования открытых систем на основе СУБД, САПР, АСНИ и систем искусственного интеллекта / Вологда: 2015. С. 77-81.
3) Герман О.В. Введение в веб-технологии. Учебное пособие. Мн.: ДизайнПро, 1995. - 456 с.
Приложение 1
Руководство пользователя
- Назначение системы.
«Мобильное приложение GoMeet предназначено для помощи в организации встреч, для организации экскурсий или мероприятий, для поиска интересных мест поблизости и для участий во встречах с другими пользователями.
Основной целью Приложения является создание социальной сети для людей, которым не хочется сидеть дома, интересно знакомиться с новыми людьми, хочется интересно проводить своё время.
- Условия применения системы.
Требования к аппаратному обеспечению:
- Смартфон с операционной системой Android 4.0 и выше.
- Наличие стабильного интернет соединения.
- 512мб и более оперативной памяти.
Квалификация пользователя:
- Пользователь должен владеть базовыми навыками работы с ОС Android 4.0 или выше.
- Возраст пользователя должен быть достаточен для того, чтоб принять пользовательское соглашение.
- Подготовка системы к работе.
Для запуска приложения необходимо:
- Подключиться к интернету.
- Зайти в Play market под своим аккаунтом
- Найти с помощью поиска приложение GoMeet.
- Нажать кнопку «Установить».
- Согласиться на предоставление программе прав на геолокацию и выход в интернет.
- Зарегистрировать аккаунт, через приложение.
- Войти со своего аккаунта в приложение.
- Описание операций.
- Для просмотра своего профиля нужно нажать на вкладку «Профиль».
- Чтобы просмотреть события на карте нужно нажать вкладку «Карта» и передвигать карту касанием одного пальца.
- Чтобы построить маршрут для прогулки или экскурсии нужно открыть вкладку «Карта», найти там кнопку «Создание маршрута» и нажать на нее.
- Для создания собственной встречи нужно открыть вкладку «Карта», найти там кнопку «+» и нажать на нее. В открытом окне передвинуть маркер на желаемое место и дать название встречи. После этого нажать кнопку «Создать».
- Для просмотра новостей нужно нажать на вкладку «Новости». На открывшейся странице будет доступен список новостей, которые можно просмотреть.
- Для просмотра отдельной новости нужно зайти на вкладку «Новости», выбрать интересующую новость из списка и нажать на нее. После этого возможно присоединиться к встрече или поделиться данной новостью.
- Для удаления своего профиля необходимо написать администрации.
- Аварийные ситуации.
При отказах или сбоях в системе, необходимо обратиться к администрации приложения, на почту: GoMeet@gmail.com.
Приложение 2
Пользовательское соглашение
1. Термины, используемые в настоящих Правилах
1.1. Мобильное приложение GoMeet(или Приложение) - социальная сеть и доступная Пользователю через мобильное приложение и иные ресурсы, представляющая собой результат интеллектуальной деятельности в форме программы для ЭВМ. Социальная сеть представлена в объективной форме совокупностью данных и команд, и порождаемых аудиовизуальных отображений (включая входящие в ее состав графические изображения и пользовательский интерфейс), (далее - данные и команды), предназначенных для функционирования ЭВМ и мобильных устройств в целях получения определенного результата в виде организации функционала социальной сети. Совокупность данных и команд состоит из активированных и неактивированных данных и команд.
1.2. Неактивированные данные и команды - данные, команды и порождаемые аудиовизуальные отображения, позволяющие увеличить количество виртуальных ценностей, используемых в рамках функциональных возможностей Приложения. Условия предоставления Администрацией Пользователю права на использование неактивированных данных и команд определены в лицензионном соглашении, заключаемом Администрацией с Пользователем.
2. Статус Правил пользования Приложением
Подобные документы
Описание алгоритмов поиска пути. Диаграмма объектов предметной области. Разработка структурной схемы. Проектирование интерфейса пользователя. Выбор и обоснование комплекса программных средств. Разработка пользовательского меню. Диаграмма компонентов.
курсовая работа [3,5 M], добавлен 10.04.2015Выбор алгоритма решения задачи. Разработка программы, обеспечивающую эффективную обработку и хранение информации с использованием линейных списков. Написание программы на псевдокоде и на языке программирования высокого уровня. Результаты работы программы.
курсовая работа [2,1 M], добавлен 21.04.2012Основные принципы классификации программного обеспечения. Географическая информационная система, обеспечивающая сбор, хранение, доступ пространственно-координированных данных. DAK как программа для ввода новой цифровой информации и обновления старой.
реферат [44,9 K], добавлен 28.04.2011Описание принципа работы генетического алгоритма, проверка его работы на функции согласно варианту на основе готовой программы. Основные параметры генетического алгоритма, его структура и содержание. Способы реализации алгоритма и его компонентов.
лабораторная работа [20,2 K], добавлен 03.12.2014Обзор алгоритмов распознания объектов на двумерных изображениях. Выбор языка программирования. Обнаружение устойчивых признаков изображения. Исследование алгоритмов поиска объектов на плоскости. Модификация алгоритма поиска максимума дискретной функции.
дипломная работа [1,0 M], добавлен 16.06.2013Этапы работы генетического алгоритма, область его применения. Структура данных, генерация первоначальной популяции. Алгоритм кроссинговера - поиск локальных оптимумов. Селекция особей в популяции. Техническое описание программы и руководство пользователя.
реферат [1014,2 K], добавлен 14.01.2016Основные типы электронных путеводителей, предназначение их мультимедийной разновидности. Применение электронного путеводителя для ГОУ ВПО "МГТУ им. Г.И. Носова". Выбор алгоритма поиска оптимального маршрута. Функциональные схемы работы программы.
дипломная работа [3,7 M], добавлен 13.04.2014Оптимизация показателей эффективности функционирования технологического контура системы управления космическим аппаратом, исследование свойств его показателей. Настройка нейронной сети, гибридизация генетического алгоритма с алгоритмами локального поиска.
дипломная работа [4,5 M], добавлен 02.06.2011Выбор технологии, языка и среды программирования. Анализ процесса обработки информации и оценка структур данных для ее хранения. Разработка основных алгоритмов решения и структурной схемы программного продукта. Проектирование интерфейса пользователя.
курсовая работа [449,8 K], добавлен 14.01.2011Реализация приложения, которое выполняет считывание, обработку, визуализацию и аппроксимацию экспериментальных данных полиномиальной функции. Блок схема алгоритма аппроксимации методом наименьших квадратов. Разработка интерфейса и листинга программы.
курсовая работа [1,1 M], добавлен 07.07.2013