Автор работы: Пользователь скрыл имя, 08 Декабря 2013 в 20:44, дипломная работа
Цель и задачи исследования. Целью дипломной работы бакалавра является повышение эффективности поиска оптимальных маршрутов и решение задачи маршрутизации транспорта с ограничением по грузоподъемности.
Для достижения поставленной цели были решены следующие задачи:
провести анализ методов и подходов к решению задач маршрутизации транспорта;
разработать или модифицировать существующий алгоритм решения задачи маршрутизации транспорта с ограничение по грузоподъемности;
разработать программный продукт, способный находить и оптимизировать маршруты доставки для 100 и более клиентов;
ВВЕДЕНИЕ3
АНАЛИЗ СУЩЕСТВУЮЩИХ ПРОБЛЕМ ТРАНСПОРТНОЙ ЛОГИСТИКИ5
1.1 Понятие транспорта и транспортной логистики 5
1.2 Транспортная экспедиция8
1.3 Основные принципы маршрутизации9
1.4 Задачи маршрутизации транспорта11
1.5 Разновидности ЗМТ13
1.6 Существующий инструментарий для решения ЗМТ18
1.7 Результаты анализа и постановка задачи20
МАТЕМАТИЧЕСКАЯ МОДЕЛЬ АЛГОРИТМА РЕШЕНИЯ ЗАДАЧИ МАРШРУТИЗАЦИИ ТРАСПОРТА В УСЛОВИЯХ ГОРОДСКОЙ ДОРОЖНОЙ СЕТИ21
2.1 Классификация алгоритмов для решения ЗМТ21
2.2 Генетический алгоритм23
2.2.1 Основной вид генетического алгоритма23
2.2.2 Применение генетического алгоритма для задач упорядочивания24
2.2.3 Применение алгоритма для решения ЗМТ25
2.3 Задача построение планов доставки для розничной клиентской сети26
МЕТОД РЕШЕНИЯ ЗАДАЧИ МАРШРУТИЗАЦИИ ТРАНСПОРТА В УСЛОВИЯХ ГОРОДСКОЙ ДОРОЖНОЙ СЕТИ31
3.1 Упрощение исходного графа городской дорожній сети31
3.2 Архитектура генетического алгоритма32
3.3 Сравнительные результаты и эффективность похода35
ВЫБОР ИНСТРУМЕНТАЛЬНЫХ СРЕДСТВ И ПОСТРОЕНИЕ БД36
4.1 Обоснование выбора используемого инструментального средства......36
4.1.1 Java36
4.1.2 MySql37
4.1.3 GoogleMaps API37
4.2 Создание базы данных38
5 ТЕСТОВЫЙ ЗАПУСК ПРИЛОЖЕНИЯ40
5.1 Руководство пользователя40
6 ЭКОНОМИЧЕСКАЯ ЧАСТЬ42
6.1 Описание изделия42
6.2 Расчет себестоимости и цены программного продукта42
6.3 Перечни работ для создания программного продукта42
ВЫВОДЫ ПО РАЗДЕЛУ45
7 ОХРАНА ТРУДА. 47
7.1 Выявление и анализ опасных и вредных производственных факторов, действующих в рабочей зоне проектируемого объекта47
7.2 Разработка мероприятий по предотвращению или ослаблению возможного воздействия опасных и вредных производственных факторов на работающих48
7.3 Расчет системы жизнеобеспечения48
ВЫВОДЫ ПО РАЗДЕЛУ51
где l(zk) и θ(zk) – протяженность и продолжительность маршрута zk соответственно, λ – весовой коэффициент. Протяженность l(zk) маршрута zk складывается из длин путей u~im,im+1(τ)∈U~(τ), соединяющих следующие друг за другом вершины im, im+1∈pk, m=1...(gk–1). На рисунке 2.1 u~im,im+1 (τ)=(i,1,2,3,4,5,j). Путь u~im,im+1 (τ) является функцией дискретного времени τ, поскольку с течением суток оптимальный маршрут, соединяющий вершины im,im+1, может существенно меняться, τ=τ(tim–1), где tim–1– время отъезда из вершины im–1. Подробней алгоритм построения множества U~(τ) описан ниже. Длительность θ(zk) маршрута zk определяется следующим образом. Пусть время отъезда из текущей вершины im рассчитывается по формуле
, (2.3)
где – момент прибытия в вершину im из вершины im–1; – время отправления со склада автомобиля k; – интервал времени, необходимый для разгрузки заказа клиента im∈pk, k=1...α. Величина складывается из времени отъезда из предыдущей вершины tim–1 и времени на преодоление расстояния l(u~im,im+1(τ)), τ=τ(tim–1) со средней скоростью w(u~im,im+1(τ)), τ возвращает номер суточного интервала, соответствующий текущему значению tim–1.
(2.4)
Время разгрузки заказа определяется по формуле
(2.5)
где – среднее количество времени для разгрузки 1 ед. продукции. Тогда время маршрута отдельно взятого автомобиля θ(zk) равно величине , определяющей время возвращения автомобиля k на склад – вершина минус время старта .
(2.6)
ГДС вместе с розничной сетью может насчитывать более тысячи точек. Следовательно, возможно большое количество вариантов соединения клиентов между собой. Разделим задачу организации маршрутов доставки на два основных этапа: упрощение исходного графа городской дорожной сети (построение сокращенного пространства поиска) и непосредственно нахождение маршрутов.
Для решения ЗМТ, в указанной постановке, строим новый граф G~=<Pl,U~(τ)>, Pl⊂D, τ=1...T на основании исходного G, где Pl – множество всех клиентов, U~(τ) – множество путей, соединяющих клиентов оптимальным для суточного интервала образом. Для построения множеств дуг U~(τ), τ=1...T применяем алгоритм Дейкстры, который специально модифицируем для этих целей [8]. В модифицированной форме алгоритм учитывает: протяженность l(ui,j), ui,j∈U, i,j∈Pl исходных дуг, среднюю скорость движения w(ui,j,t) в текущем интервале, запрещенные на момент τ повороты, дороги с односторонним движением, а также проводит штрафование за совершение поворотов большой крутизны. Алгоритм работает за линейное время. Применяя алгоритм nl (nl–1)T раз, строим упрощенный граф для каждого τ. В итоге совокупность множеств U~(τ), τ=1...T образует полностью допустимое, оптимально сокращенное пространство поиска, учитывающее специфику ГДС, где в каждый момент времени точно известно, каким маршрутом следует двигаться из одной целевой вершины в другую. Готовый граф G~ можно хранить в отдельной базе данных и проводить пересчет только при изменении списка постоянных клиентов – появлении новых или удалении пассивных на протяжении определенного срока клиентов. Поиск маршрутов. Решение задачи маршрутизации транспортных единиц для обслуживания клиентов реализовано в виде ГА.
Генетический алгоритм представляет собой методику случайного поиска [9, 10]. Метод кодирования решений подбирается под конкретный тип исследуемой задачи и должен обеспечивать адекватное представление любой точки пространства решений. В качестве альтернативного решения рассмотрим последовательность обслуживаемых клиентов, в которой выполняется доставка продукции. Например, первая альтернатива в популяции решений вида:
, (3.1)
…………………………………
говорит о том, что, если в первый автомобиль можно загрузить только трёх первых клиентов, не нарушая условие (2.1), то его маршрут будет следующим:
0–1–2–5–0; если все оставшиеся клиенты помещаются в следующий автомобиль, его маршрут будет: 0–11–7–4–6–0, где ноль является складом готовой продукции. Для запуска поискового процесса необходимо создать стартовую популяцию решений хромосом. В нашем случае применена смешанная схема инициализации. Часть популяции создана при помощи широко известного метода Ближайшего Соседа (Nearest Neighbour) [11]. При создании оставшихся особей используется генератор случайных чисел, выдающий допустимые последовательности на конечном множестве клиентов P. Подобная схема позволяет существенно улучшить поиск при выраженной кластеризованности клиентов.
Приспособленность альтернативных хромосом (качество решений) оценивается специально разработанной эвристической функцией, легко реализуемой на любом языке программирования. На рисунке 3.1 представлена функциональная схема алгоритма.
Рисунок 3.1 – Функциональная схема алгоритма оценки
При погрузке заказа корректируется свободное место в автомобиле на соответствующую заказу величину. При этом увеличиваются счетчики пройденного пути и затраченного на дорогу и разгрузку заказа времени на величины соответствующих характеристик дуг u~(τ), соединяющих соседних в решении клиентов (3–4). Также учитываем и дуги, соединяющие первого и последнего клиента со складом. Корректировка текущего времени t по окончании разгрузки приводит к смене τ, если текущее время вышло за границы интервала. Что позволяет выбрать оптимальный маршрут движения к следующему клиенту. Потенциальное количество заказов, которое можно загрузить, зависит от их объема, следовательно, количество вершин в одном автомобиле может варьироваться в широких пределах. Поэтому предложена система представления решений, кодирующая не транспортные единицы со списками обслуживаемых клиентов, а простую их последовательность. Это в сочетании с описанным алгоритмом оценки позволяет эффективно использовать выделенную память, максимально упростив при этом структуру кодируемых решений (3.1), и исключить отдельный блок контроля допустимости получаемых во время эволюции альтернатив. Недопустимые с точки зрения перегруза транспорта решения просто исключаются. С каждой оценкой на альтернативную последовательность клиентов накладываются в строго фиксированном для всей эволюции порядке емкости доступных автомобилей, то есть выполняется строго последовательная динамическая загрузка транспорта клиентами. Поэтому с течением эволюционного процесса лучшими решениями будут те альтернативы, где сравнительно близкие клиенты будут группироваться в соответствии с емкостями автомобилей и в последовательности, обеспечивающей минимум целевой функции (2.2). Сочетание в данном ГА системы представления решений и оценочной процедуры обладает ключевыми для задачи свойствами: в эволюционном процессе происходит параллельный поиск оптимального разбиения вершин по маршрутам и оптимального порядка объезда клиентов внутри каждого подмножества. Здесь использована стратегия отбора родителей по принципу колеса рулетки и стратегия элитизма. Таким образом, исключается потеря хороших решений при применении генетических операторов. При помощи генетических операторов производится создание новых, ранее не присутствовавших в популяции особей. Сканирование поискового пространства осуществляется операторами скрещивания (кроссинговера), мутации, инверсии. Применен частично – соответствующий оператор скрещивания. Выбор продиктован таким условием задачи, что любой клиент может быть обслужен только однажды и одним автомобилем: pk∩ps=q, k≠s,k,s=1...α. То есть потомок должен иметь тот же генный состав, что и исходные особи. Модификации проявляются лишь в порядке следования вершин. Существенно улучшить качество решений позволяет применение жадных мутаций – стратегий локального поиска, модифицирующих исходное решение на основе анализа целевой функции или ее некоторых параметров. Описание методов локального поиска и различных генетических операторов широко представлено в литературе и сети Интернет, например, в [9, 10].
Условия останова поиска:
Пробные расчеты на статических тестовых задачах, опубликованных в научной литературе и доступных в сети Интернет, показывают хорошие результаты, сопоставимые с лучшими достижениями, опубликованными в литературе [12]. По многим задачам отклонения достигают меньше 2 %. Стандартных задач на динамических графах не найдено. Следует отметить, что качество решений, в том числе их стабильность, существенным образом зависят от отведенного на поиск времени. Например, для задачи с 200 клиентами при LocN = 200 среднее время поиска составляет 40 с, а разброс результатов может достигать 5...7 % от лучшего найденного алгоритмом решения. При LocN = 2000 среднее время поиска уже равно 7 мин., и разброс составляет 2...3 %. Предложенный выше подход подразумевает такую стратегию поиска, что найденные на динамическом графе маршруты обеспечивают лучшие результаты при их использовании в реальных условиях, по с сравнению с маршрутами, найденными на статическом графе. Предложена следующая методика оценки эффективности поиска на динамическом графе. Пусть P1– решение задачи, найденное на статическом графе, P2 – на динамическом. Качество решения определенное по весам статического графа обозначим через L(P), где P – некоторое решение. Оценка решения P на динамическом графе – H(P). За оценку снизу примем L(P1), поскольку решение найдено в легких дорожных условиях. Очевидно, худшей оценкой является H(P1), т. к. решение P1 не учитывает особенностей динамического графа. Через Δ1=H(P1–L(P1) обозначим погрешность моделирования. Тогда эффективность метода решения определим формулой в предположении, что L(P1)≤H(P2)≤H(P1). Чем ближе Δ2 к единице, тем больше эффект от моделирования на динамическом графе. Расчеты показали, что Δ2≈0,6, т. е. моделирование на динамическом графе позволяет сократить примерно на 60 % ошибку моделирования Δ1, которая составляет 30 % по отношению к H(P1). Причем параметр существенно зависит от степени и структуры загрузки графа, количества и разброса клиентов.
При разработке приложения были использованы такие технологии: Java, СУБД MySql, а так же GoogleMaps API.
Java–технологии имеют много особенностей, отличающие их от других технологий разработки программного обеспечения:
Основные преимущества MySQL:
Существует множество способов встраивать в собственные приложения маршруты, сформированные приложением Карты Google. С помощью API матрицы расстояний пользователи найдут кратчайшие по протяженности и времени в пути автомобильные маршруты до конечной точки. С помощью функций просмотра улиц в API Google Карт пользователи смогут изучить место, в которое они направляются.
В ходе разработки была создана база данных включающая в себя 3 таблицы (рисунок 4.1):
Рисунок 4.1 – Структура базы данных.
Часть данных в таблицы поступает из формы, в которую пользователь вводит данные о депо и добавляет клиентов. Такие показатели как расстояние и время мы получаем из GoogleMaps API.
Так же в таблице route есть такие поля как interval и foul – это, на мой взгляд, и есть самая большая сложность всей программы. Задание этих параметров требует консультации специалиста, но в связи с тем что информационные технологии очень быстро развиваются и проникают практически во все сферы нашей деятельности, стоит ожидать, что очень скоро значение этих полей можно будет взять из того же GoogleMaps API.
На рисунке 4.2 представлен пример добавления в базу данных депо и клиента.
Рисунок 4.2 – пример добавления в БД депо и клиента
При запуске разработанного программного продукта появляется главная форма (рисунок 5.1)
Рисунок 5.1 – Форма ввода данных
На этой форме пользователю необходимо ввести адрес депо, количество машин в депо, а также грузоподъемность машин и нажать кнопку «Добавить депо» (предполагается, что все машины имеют одинаковую грузоподъемность). На рисунке 5.2 показан пример задания параметров депо.
Рисунок 5.2 – Пример задания параметров депо
После пользователю нужно ввести адрес каждого клиента, а так же объем заказа каждого из товаров и нажать кнопку «Добавить клиента» (рисунок 5.3).
Рисунок 5.3 – Пример задания параметров клиента
Информация о работе Логистическое планирование доставки товаров