Skip to content

Оптимизация маршрутов, разработано во время участия в хакатоне IITIK HACK

Notifications You must be signed in to change notification settings

f0xeri/IITIK_HACK_Map

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Система расчета оптимального маршрута контролера посредствам интерактивной карты

Хакатон IITIK HACK, команда "Трам парарам team"

Описание задачи

Даны географические координаты точек маршрута. Необходимо:

  • минимизировать маршрут (найти самый короткий из возможных)
  • отразить маршрут на карте
Актуальность

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

Исходные данные:

• 100 точек контроля (массив географических координат - задан заранее); • 2 контролёра с географическими координатами изначального местоположения.

Задача:

• Построить близкий к оптимальному маршрут контролёров для обхода всех точек

Основной критерий оценки:

• Минимальная суммарная дистанция контролёров

Дополнительный критерий оценки:

• Количество обращений к ГИС на километр маршрута контролёра

Доп. требования:

• Система должна быть реализована в виде серверного приложения • В качестве ГИС системы может использоваться GoogleMap или OpenStreetMap (в нашем случае я выбрал Яндекс.Карты) • Результат должен быть выдан в виде маршрута на карте, последовательности адресов, длины маршрута и количества обращений к ГИС для каждого из контролёра

Реализация

Используемые технологии
  • HTML/CSS
  • ReactJS
  • Yandex.Maps API
  • ASP .NET 5 (по сути не использован, изначально предполагалось использование для сохранения маршрутов)
Решение задачи на оптимизацию маршрута

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

На разработку ушло 2 дня, в которые и проходил сам хакатон.

Разработчики

  • f0xeri - весь фронтенд и переписанные на Typescript алгоритмы
  • Rellik-git - алгоритмы, реализованные на C++

Live demo

Посмотреть и попробовать, что у нас получилось можно тут.

About

Оптимизация маршрутов, разработано во время участия в хакатоне IITIK HACK

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published