Автор работы: Пользователь скрыл имя, 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
Если f (x) обозначает стоимость решения x, то f (xt+1) в метаэвристиках не обязательно меньше f (xt) [15]. Это является ключевым отличием метаэвристик от классических эвристик, применяемых для решения ЗМТ. В каждом случае такая возможность требует наличия дополнительного механизма защиты от возможного зацикливания процесса поиска.
Генетический алгоритм проверяет на каждом шаге популяцию решений. В нём каждая новая популяция наследуется от предыдущей путём комбинирования её наилучших решений и удаления неудачных. Поиск с исключениями, генетический алгоритм и алгоритм на основе муравьиных колоний накапливают информацию по мере работы и используют её в дальнейших вычислениях. Нейронные сети – это самообучающийся метод, в котором ведётся подгонка набора весовых коэффициентов до тех пор, пока не будет найдено подходящее решение.
Генетический алгоритм (genetic algorithm) – методика решения некоторых задач путём имитации процессов, наблюдаемых в ходе эволюции естественной природы. Впервые парадигма генетического алгоритма была предложена в [58], но понадобилось ещё почти десять лет, чтобы на неё обратили внимание в широких научных и исследовательских кругах. В чистом виде генетический алгоритм _ это общая методика решения задач, для реализации которой требуется относительно небольшое количество информации о предметной области. Как следствие этот подход может быть использован для достаточно большого числа плохо структурированных задач, где специализированные методы не показывают удачных результатов [19].
В своей работе генетический алгоритм пытается развивать популяцию битовых строк (bitstrings) или “хромосом”, где каждая хромосома кодирует некоторое решение задачи в некоторой её конкретной постановке. Такая эволюция реализуется путём применения нескольких операторов, имитирующих феномены живой природы (воспроизведение, видоизменение и. т. д.). Ниже приводится общее описание генетического алгоритма, а затем будет описано, как применить подобную стратегию к ЗМТ.
Опишем основную схему работы генетического алгоритма. Он начинает выполнение с некоторой начальной популяции хромосом X1 = , полученной при помощи датчика случайных чисел. На каждой итерации t = 1, . . ., T выполняются k раз шаги с 1 по 3, приведённые ниже (k 6 N/2), затем выполняется шаг 4.
В приведённом алгоритме параметр T – количество поколений, и k – количество выборок в поколении. Наилучшее решение, полученное за T поколений, является окончательным результатом работы алгоритма. На шаге 1 выбор родительских хромосом вероятностно склоняется к выбору наилучших вариантов. На шаге 2 потомок генерируется скрещиванием путем сочетания битовых строк, найденных у родителей. Каждый потомок может быть затем немного модифицирован на шаге 3 путём изменения значения битов в битовой строке с малой вероятностью для каждой битовой позиции. Ожидается, что первоначальное случайно построенное множество будет улучшено в ходе описанного процесса. Такого вывода придерживаются некоторые теоретические исследования [18, 16].
Классический подход генетического алгоритма, представленный ранее, не подходит для задач упорядочивания (sequencing problems), к которым относятся ЗК и ЗМТ. Прежде всего, для таких задач битовое представление решения не является естественным. Например, его можно заменить представлением путём использования цепочек чисел, где каждое число обозначает некоторую вершину. Положение каждого числа в строке представляет положение вершины в маршруте, предполагая, что последняя вершина замкнута с первой. Далее, должны быть разработаны новые специальные операторы скрещивания и мутации для получения потомков, которые учитывали бы порядок элементов.
Прямое применение классического алгоритма приводит и к другим подобным проблемам. Известны предложения специализированных вариантов операторов скрещивания и мутации для получения цепочек потомков на основе родительских решений [22]. Одно из них – предложение оператора “упорядоченное скрещивание” [21]. Сначала случайно выбираются две вершины для вырезания, и подстрока, находящаяся между ними, приписывается потомку. Оставшиеся позиции заполняются вершинами, начиная со второй выбранной, в таком порядке, как они встречаются во втором родительском решении, соблюдая циклическую замкнутость маршрута и отслеживая повторения. Второй потомок может быть получен тем же способом при помощи обмена роли родительских решений. В этом алгоритме потомок обычно наследует относительный порядок вершин от родительских строк. Другие операторы стараются сохранять порядок вершин или порядок дуг родительских решений [17, 30].
Литература по разработке алгоритмов для решения ЗМТ на основе генетического алгоритма довольно скудна в отличие от его применения для решения ЗК или от более сложных вариантов ЗМТ, где учитываются временные окна или есть ограничения предшествования [14, 24, 23, 28, 27, 29, 22]. Отставание по сравнению с ЗК объясняется тем, что ЗК_ это хорошо изученная каноническая комбинаторная задача, хорошо подходящая для исследования пробного применения новых идей вообще и генетического алгоритма в частности, а сложные ограничения тяжело обрабатывать общими алгоритмами. Генетический алгоритм хорошо подошёл для случаев со сложными ограничениями, т. к. он требует относительно небольшое количество информации о природе самой задачи. В настоящий момент можно говорить, что генетический алгоритм имеет хороший потенциал для создания быстрых методов поиска решений ЗМТ в сочетании с обработкой сложных видов ограничений. Это подтверждают существующие предложенные методы применения генетического алгоритма для решения ЗМТ в окнах времени. Выполнена работа в области решения ЗМТ с ограничениями по грузоподъёмности, где уделялось особое внимание влиянию различных параметров на качество получаемых результатов.
В ЗМТ решение содержит несколько маршрутов (в отличии от ЗК), поэтому представления цепочек для генетического алгоритма расширено и депо включается в них многократно. Каждое включение депо служит разделителем между двумя соседними маршрутами.
Применяемый классический оператор скрещивания, называемый PMX оператор мутации RAR, были адаптированы для использования в новых условиях [17]. На каждой итерации они применяются до тех пор, пока не будет получено требуемое количество решений, удовлетворяющих ограничениям, а остальные потомки отбрасываются. Автор применял специальный оператор локального спуска (local descent operator), основанный на четырёх различных типов изменения порядка выполняемых шагов, и вызывал его только для наилучших решений в текущей популяции. В работе показано, что применение оператора локального спуска даёт заметное улучшение производительности алгоритма. В целом, наилучшие решения, получаемые при помощи генетического алгоритма, моделируемого отжига и поиска с исключениями, сравнимы по качеству. Генетический алгоритм требует несколько больше процессорного времени для работы, чем два других подхода. Пока не приведено сравнительных результатов качества работы генетического алгоритма относительно алгоритма на основе муравьиных колоний и нейронных сетей.
Интересный вариант
Реализация алгоритма, предложенная в [26], использует оператор скрещивания OX и оператор мутации, который основан на обмене местами двух случайно выбранных вершин. Для повышения качества работы этот оператор в дальнейшем был заменён на использование алгоритма 2-опт, запускаемый для каждой вершины с вероятностью 0, 15.
В [13] предложена схема кодирования, основанная на случайных ключах.
В такой схеме каждый элемент задачи связывается со случайно сгенерированным ключом. Преобразование таких ключей в решение задачи можно выполнить при помощи операции сортировки. Непосредственно в ЗМТ каждая вершина–клиент связывается со случайным целым числом, обозначающим транспортное средство, которое будет обслуживать эту вершину, плюс число с плавающей точкой в интервале (0, 1). При сортировке этих чисел можно получить последовательности вершин для каждого маршрута. Подобное применение случайных чисел для решения ЗМТ приводится скорее для иллюстрации такой возможности, но оно не исследовалось достаточно детально.
Специфика ЗМТ на любом графе состоит в том, что на суммарный пройденный всем используемым транспортом путь, на время выполнения всех заказов влияют как качество разбиения множества клиентов по маршрутам, так и качество найденных циклов объезда клиентов транспортными единицами. Эта специфика особенно важна при моделировании сетей с большими колебаниями пропускной способности, что характерно для современных городов. В данной работе учитывается указанная специфика ЗМТ. Предлагаемая методика решения задачи маршрутизации состоит из нескольких этапов: преобразование исходного графа городской транспортной сети (ГДС) к графу определенного вида применением специально модифицированного алгоритма Дейкстры; построение маршрутов при помощи разработанной метаэвристики, реализованной на основе генетического алгоритма (ГА). В составе ГА предлагается комплекс мер, позволяющий эффективно находить схемы движения транспорта, минимизирующие стоимость доставки. Выбор метода обоснован тем, что задача маршрутизации является NP сложной, т. е. размер пространства поиска имеет экспоненциальную зависимость от количества переменных. В предложенном расширении она имеет большое и сложное пространство решений даже при сравнительно небольшом количестве клиентов. Существует ряд источников, где на тестах показана эффективность применения на графовых задачах метаэвристик, особенно ГА. С ростом размерности задачи качество получаемых в ГА решений, по сравнению с другими методами, растет.
В качестве модели ГДС использован динамический граф, который имитирует изменения пропускной способности улиц, существование участков с односторонним движением, постоянно и периодически запрещенные повороты, увеличение времени преодоления маршрута при использовании поворотов большой крутизны, связанное с необходимостью тормозить и снова набирать скорость. В условиях динамического графа целевым критерием принят баланс протяженности и продолжительности искомых маршрутов. Представим городскую дорожную сеть в виде ориентированного связанного графа G=<D,U>, где D={1,2...nD} – множество вершин графа мощностью n D, U – множество дуг, соединяющих вершины. Узлами графа считаются как различные точки реализации продукции, например магазины, столовые, больницы или детские сады, так и простые перекрестки автомобильных дорог. Выделим целевое подмножество вершин Pl={1,2...nl}, Pl⊂D, которое составляют только обслуживаемые клиенты. На рисунке 3.1 множество вершин D – все вершины графа, Pl – черные вершины, ui,j ∈U, i,j∈D – дуги между любыми соседними вершинами, причем ui,j≠uj,i . В левом верхнем углу обозначен склад готовой продукции. Предприятие выпускает продукцию циклически. Поэтому все множество клиентов Pl, при поступлении заявок, разносится по циклам производства. Тогда нашей задачей является планирование доставки для клиентов некоторого цикла производства. В качестве подмножества клиентов некоторого производственного цикла примем P, P⊂Pl. Тогда n – количество клиентов, соответствующее некоторому циклу, которое необходимо обслужить.
Рисунок 2.1. – Граф G – модель городской дорожной сети
Пропускная способность улиц является функцией времени и почти циклически изменяется каждые сутки. Поэтому весь суточный диапазон условно разобьем на T отрезков, внутри которых показатель постоянен. Тогда каждая дуга ui,j∈U графа G, соединяющая вершины i,j∈D и представляющая собой некоторую часть улицы, обладает протяженностью l(ui,j), км, и средней скоростью w(ui,j ,τ), τ=1...T, км/ч, в момент времени τ, где τ – дискретное время, определяющее номер суточного интервала. Номер интервала τ определяется как функция времени τ=τ(t), где t – текущее модельное время. В распоряжении транспортного цеха находится q автомобилей. Каждый автомобиль характеризуется грузоподъемностью – K, кг(м3). Заказ i-го клиента имеет вид: di=(div), i∈P, v∈S, где div – объем d товара v, который должен быть доставлен клиенту i, S – множество производимой на заводе продукции. Множество клиентов P требуется разбить по автомобилям так, чтобы суммарный объем заказов подмножества клиентов, назначенных конкретному автомобилю для перевозки, не превышал грузоподъемности этого автомобиля. Обозначим через y∈Y разбиение множества P на непересекающиеся подмножества p1∪...∪pk∪...∪pα так, что pk∩ps=q, где α – общее количество рейсов, Y – множество всех допустимых разбиений множества P. Например, на рисунке 2.1, p1={h,f,j,i}, p2={e}. Тогда загрузка автомобилей для перевозки товаров назначенным заказчикам определяется неравенством
Для каждого используемого автомобиля необходимо вычислить оптимальный маршрут объезда вершин назначенного подмножества pk разбиения y. Обозначим перестановкой zk=(i1...im...igk–1,igk) альтернативный порядок объезда автомобилем k вершин im∈pk, m=1...gk из множества всех возможных перестановок Zk. Здесь i1– отправная вершина, обозначающая начало маршрута, т. е. склад готовой продукции; gk–1=|pk| – количество целевых вершин на маршруте. На рис. 2.1 z1=(i1,h,i,j,f,i6). Завершение объезда происходит в исходной вершине, т. е. igk=i1. Маршруты должны охватывать вершины множеств pk в порядке, обеспечивающем минимальную суммарную стоимость доставки. Основными факторами, определяющими ее стоимость, являются продолжительность и протяженность маршрутов. Поэтому в качестве целевого критерия рассматривается их линейная комбинация по всем транспортным единицам, что ведет к оптимальному использованию транспортных ресурсов и, следовательно, к оптимизации затрат. Целевая функция имеет вид:
, (2.2)
Информация о работе Логистическое планирование доставки товаров