Автор работы: Пользователь скрыл имя, 04 Ноября 2013 в 21:49, курсовая работа
Целью данной работы является обзор основ логистики, а также изучение методов оптимизации, применяемых в данной области. В настоящее время производственная и экономическая сферы достигли высокого уровня развития, что делает задачи снабжения и распределения особенно актуальными. В данной работе особое внимание будет уделено Транспортной задаче. Будут рассмотрены несколько методов её решения и создана программа, реализующая один из них.
Введение 4
1.1. Основы логистики 5
2. Задача о нахождение кратчайшего пути 7
2.1. Описание задачи и способы решения 7
2.2. Формальное определение 8
2.3. Неформальное объяснение 8
3. Транспортная задача 9
3.1. Определение 9
3.2. Историческая справка 10
3.3. Балансировка задачи 11
3.4. Поиск начального решения 12
3.5. Метод северо-западного угла 12
3.6. Метод минимальных тарифов 13
3.7. Метод Фогеля 17
3.8. Метод Потенциалов 18
3.9. Решение транспортной задачи симплекс-методом 24
4. Реализация программы 26
Список использованных источников 28
ПРИЛОЖЕНИЕ A 29
Метод минимальных тарифов (правило минимальных затрат, правило «самая дешёвая продукция реализуется первой») — алгоритм получения допустимого начального решения транспортной задачи. В отличие от более простого метода северо-западного угла, в этом методе расчетчик записывает отгрузки, в первую очередь, в те ячейки, где тариф на перевозку груза минимален. Этот метод позволяет получить более приближенное к оптимальному решение, которое, однако, может потребовать дальнейшей оптимизации методом потенциалов. Метод минимальных тарифов с его модификациями (минимальный тариф по строке или минимальный тариф по столбцу) был описан Данцигом в работе 1951 г.
В данном примере стоимость доставки в рублях за кг записана в ячейках в квадратных скобках.
Потребитель B1, |
Потребитель B2, |
Потребитель B3, |
Потребитель B4, | |
Поставщик A1, |
[2 руб./кг] |
[3 руб./кг] |
[2 руб./кг] |
[4 руб./кг] |
Поставщик A2, |
[3 руб./кг] |
[2 руб./кг] |
[5 руб./кг] |
[1 руб./кг] |
Поставщик A3, |
[4 руб./кг] |
[3 руб./кг] |
[2 руб./кг] |
[6 руб./кг] |
В эти же ячейки транспортной таблицы следует вписать объемы перевозки, чтобы распределить запасы поставщиков по потребителям.
Находим ячейку с минимальной ценой.
В нашем примере это ячейка X24
Потребитель B1, |
Потребитель B2, |
Потребитель B3, |
Потребитель B4, | |
Поставщик A1, |
[2 руб./кг] |
[3 руб./кг] |
[2 руб./кг] |
[4 руб./кг] |
Поставщик A2, |
[3 руб./кг] |
[2 руб./кг] |
[5 руб./кг] |
[1 руб./кг] 10 кг |
Поставщик A3, |
[4 руб./кг] |
[3 руб./кг] |
[2 руб./кг] |
[6 руб./кг] |
Потребитель B1, |
Потребитель B2, |
Потребитель B3, |
Потребитель B4, | |
Поставщик A1, |
[2 руб./кг] |
[3 руб./кг] |
[2 руб./кг] 30 кг |
[4 руб./кг] |
Поставщик A2, |
[3 руб./кг] |
[2 руб./кг] |
[5 руб./кг] |
[1 руб./кг] 10 кг |
Поставщик A3, |
[4 руб./кг] |
[3 руб./кг] |
[2 руб./кг] |
[6 руб./кг] |
Находим в оставшихся незакрашенными серым (см. таблицу выше) ячейку с минимальной ценой. В нашем примере это ячейка X22 (2-й поставщик, 2-й потребитель) с ценой доставки 2 руб./кг. Вписываем в эту ячейку максимальный объем, который позволяет (см. таблицу выше) запас поставщика и спрос потребителя (30 кг). Поскольку спрос потребителя полностью удовлетворен, закрашиваем соответствующий столбец в серый цвет. Поскольку возможности поставщика также были исчерпаны, закрашиваем в серый цвет и соответствующую строку.
Потребитель B1, |
Потребитель B2, |
Потребитель B3, |
Потребитель B4, | |
Поставщик A1, |
[2 руб./кг] |
[3 руб./кг] |
[2 руб./кг] 30 кг |
[4 руб./кг] |
Поставщик A2, |
[3 руб./кг] |
[2 руб./кг] 30 кг |
[5 руб./кг] |
[1 руб./кг] 10 кг |
Поставщик A3, |
[4 руб./кг] |
[3 руб./кг] |
[2 руб./кг] |
[6 руб./кг] |
Потребитель B1, |
Потребитель B2, |
Потребитель B3, |
Потребитель B4, | |
Поставщик A1, |
[2 руб./кг] |
[3 руб./кг] |
[2 руб./кг] 30 кг |
[4 руб./кг] |
Поставщик A2, |
[3 руб./кг] |
[2 руб./кг] 30 кг |
[5 руб./кг] |
[1 руб./кг] 10 кг |
Поставщик A3, |
[4 руб./кг] 20 кг |
[3 руб./кг] |
[2 руб./кг] |
[6 руб./кг] |
Результат = 4*20 + 2*30 + 2*30 + 1*10 = 210 р.
3.7. Метод Фогеля
Данный метод генерирует наиболее приближенное к оптимальному начальное решение. Это решение, однако, также может потребовать окончательной оптимизации при помощи метода потенциалов.
Метод Фогеля состоит в вычислении для каждой строки транспортной таблицы разницы между двумя наименьшими тарифами. Аналогичное действие выполняют для каждого столбца этой таблицы. Наибольшая разница между двумя минимальными тарифами соответствует наиболее предпочтительной строке или столбцу (если есть несколько строк или столбцов с одинаковой разницей, то выбор между ними произволен). В пределах этой строки или столбца отыскивают ячейку с минимальным тарифом, куда пишут отгрузку. Строки поставщиков или столбцы потребителей, которые полностью исчерпали свои возможности по отгрузке или потребности которых в товаре были удовлетворены, вычеркиваются из таблицы (в примерах ниже они закрашиваются серым цветом), и вычисление повторяются до полного удовлетворения спроса и исчерпания отгрузок без учета вычеркнутых («серых») ячеек.
3.8. Метод Потенциалов
Метод потенциалов позволяет за несколько шагов (итераций) найти полностью оптимальное решение транспортной задачи. Перед решением задачи этим методом нужно найти допустимое начальное решение одним из методов, описанных в разделе выше.
Эта проверка не входит в алгоритм метода потенциалов, но может потребоваться для исключения арифметических ошибок (при ручном расчете на бумаге) или самопроверки алгоритма при компьютерных вычислениях. Особенностью распределения груза по транспортной таблице является совпадение суммы объемов по строкам с запасами соответствующего поставщика, а суммы объемов по столбцам — с потребностями соответствующих потребителей.
В показанном выше примере,
Этот шаг также не входит в сам алгоритм метода потенциалов, но он полезен для распечатки результатов и показа, что алгоритм движется в правильном направлении, уменьшая на каждом (или не на каждом) шаге общую себестоимость перевозки. Для всех ячеек цена умножается на объем перевозки и полученный результат суммируется.
B1, 20 кг |
B2, 30 кг |
B3, 30 кг |
B4, 10 кг | |
A1, 30 кг |
С11=2 руб./кг, |
С12=3 руб./кг, |
С13=2 руб./кг |
С14=4 руб./кг |
A2, 40 кг |
С21=3 руб./кг |
С22=2 руб./кг, |
С23=5 руб./кг, |
С24=1 руб./кг |
A3, 20 кг |
С31=4 руб./кг |
С32=3 руб./кг |
С33=2 руб./кг, |
С34=6 руб./кг, |
В данном примере, сумма затрат на перевозку груза составляет
2×20 + 3×10 + 2×20 + 5×20 + 2×10 + 6×10 = 290 руб.
Ячейки (клетки) транспортной таблицы
с ненулевыми перевозками называются базисны
Базисных ячеек таблицы должно быть не менее m+n−1, где m и n — соответственно, число поставщиков и потребителей, иначе решение считается вырожденным и требует введения в базис одной из ячеек с нулевой перевозкой (чтобы алгоритм не впал в бесконечный цикл, эта ячейка должна быть случайной). Для исключения ситуаций с вырожденностью к объемам потребления добавляют небольшие возмущения — числа, заведомо ничтожные при перевозках (такие как 0.00001), при этом к объему поставки одного из поставщиков добавляют их сумму (или наоборот).
Каждому поставщику Ai соответствует потенциал Ui, а каждому потребителю Bj соответствует потенциал Vj. Данциг называет потенциалы Ui и Vj симплекс-
Ui + Vj = Cij
для всех занятых (базисных) ячеек таблицы (отмечены зеленым).
V1 |
V2 |
V3 |
V4 | |
U1=0 |
С11=2 руб./кг |
С12=3 руб./кг |
||
U2 |
С22=2 руб./кг |
С23=5 руб./кг |
||
U3 |
С33=2 руб./кг |
С34=6 руб./кг |
U1+V1=2. Поскольку U1=0, 0+V1=2, следовательно, V1=2 руб./кг
U1+V2=3. Поскольку U1=0, 0+V2=3, следовательно, V2=3 руб./кг
U2+V2=2. Поскольку V2=3, U2+3=2, следовательно, U2=–1 руб./кг
U2+V3=5. Поскольку U2=–1, –1+V3=5, следовательно, V3=6 руб./кг
U3+V3=2. Поскольку V3=6, U3+6=2, следовательно, U3=–4 руб./кг
Информация о работе Оптимизация в логистике. Транспортная задача