Оптимизация работ маршрутного транспорта для ОАО «Маршруттранс» математическими методами
Начальное опорное решение не является оптимальным, так как в рассматриваемой задаче на минимум, векторам X1, X2, X3, X4, X5, X6 соответствуют отрицательные значения Дj = -1. Для нахождения ведущей строки найдем максимальный по модулю отрицательный свободный член bi = -12. Ведущая строка — X11. В строке X11 так же найдем максимальный по модулю отрицательный свободный член, равный -1. Столбец X5… Читать ещё >
Оптимизация работ маршрутного транспорта для ОАО «Маршруттранс» математическими методами (реферат, курсовая, диплом, контрольная)
Оптимизация работ маршрутного транспорта для оАо «Маршруттранс» математическими методами Орел, 2013
Линейное программирование — это направление математического программирования, изучающее методы решения экстремальных задач, которые характеризуются линейной зависимостью между переменными и линейным критерием.
Задачи линейного программирования относятся к задачам на условный экстремум функции. Казалось бы, что для исследования линейной функции многих переменных на условный экстремум достаточно применить хорошо разработанные методы математического анализа, однако невозможность их использования можно довольно просто проиллюстрировать.
Широкое распространение линейное программирование получило в экономике, так как исследование зависимостей между величинами, встречающимися во многих экономических задачах, приводит к линейной функции с линейными ограничениями, наложенными на неизвестные.
Для решения задач линейного программирования потребовалось создание специальных методов.
Целью данного курсового проекта является рассмотрение задачи линейного программирования, решения ее симплекс методом, а также с помощью табличного редактора MS Excel.
1. Постановка задачи
Управление городским автобусным парком решило провести исследование возможности более рациональной организации своей работы с целью снижения интенсивности внутригородского движения. Сбор и обработка необходимой информации позволили сделать вывод, что необходимое минимальное количество автобусов существенно меняется в течение суток. Длительность непрерывного использования автобусов на линии равна 8 ч в сутки (с учетом необходимых затрат времени на текущий ремонт и обслуживание). Необходимо узнать, какое количество автобусов нужно выпускать на линию в каждой из смен при условии, что общее количество автобусов, выходящих на линию в течение суток, должно быть минимальным (Таблица 1):
Таблица 1 — Расписание автобусов по сменам
Смены | Время смены | Количество автобусов | |
00:00 — 4:00 | |||
4:00−8:00 | |||
4:00 — 8:00 | |||
8:00 — 12:00 | |||
8:00 — 12:00 | |||
12:00 — 16:00 | |||
12:00 — 16:00 | |||
16:00 — 20:00 | |||
16:00 — 20:00 | |||
20:00 — 00:00 | |||
20:00 — 00:00 | |||
00:00 — 4:00 | |||
2. Построение математической модели задачи
Пусть X1 — смена 1, X2 — смена 2, X3 — смена 3, X4 — смена 4, X5 — смена 5, X6 — смена 6.
Получаем следующие уравнения:
X1 + X6?4,
X1 + X2?8,
X2 + X3?10,
X3 + X4?7,
X4 + X5?12,
X5 + X6?4,
X1, X2, X3, X4, X5, X6? 0.
После чего целевая функция имеет вид:
Z (x) = X1+X2+X3+X4+X5+X6 > min
Математическая модель задачи имеет вид:
Z (x) = X1+X2+X3+X4+X5+X6 > min
X1 + X6?4,
X1 + X2?8,
X2 + X3?10,
X3 + X4?7,
X4 + X5?12,
X5 + X6?4,
X1, X2, X3, X4, X5, X6? 0.
3. Основные теоретические сведения
Симплекс-метод Данный метод состоит в целенаправленном переборе опорных решений задачи линейного программирования. Он позволяет за конечное число шагов расчета либо найти оптимальное решение, либо устранить его отсутствие.
Симплекс-метод основывается на следующем:
Область допустимых решений задачи линейного программирования является выпуклым множеством с конечным числом угловых точек, т. е. многоугольным множеством.
Оптимальным решением ЗЛП является одна из угловых точек области допустимых решений.
Угловые точки области допустимых решений алгебраически представляют некоторые опорные решения системы ограничений задачи.
Алгоритм симплекс-метода:
Привести задачу к каноническому виду;
2. Определить число и состав базисных и свободных переменных;
3. Выразить базисные переменные через свободные. Число базисных переменных определяется по количеству ограничений. В общем случае, m любых переменных X1, X2,…, Xm можно выразить через оставшиеся Xm+1, Xm+2,…, Xn. Переменные X1,…, Xn называются базисными, а переменные Xm+1,…, Xn — свободными.
Выразить целевую функцию через свободные переменные.
Построить начальную симплекс-таблицу.
Проверить решение на оптимальность: если в Д-строке все значения? 0, то решение: X=(B1,…, Bm) является оптимальным. Если же существует Дj<0, то решение можно улучшить, но предварительно надо проверить факт существования решения.
Дj=? Ci — Aij (1)
Рассмотрим все столбцы, в которых Дj<0. Если существует хотя бы один такой столбец, у которого все коэффициенты Aij<0, то задача решения не имеет, т.к. множество допустимых решений неограниченно, и целевая функция неограниченно возрастает. Если же таких столбцов нет, то улучшаем решение.
Строим новую симплекс-таблицу. Выбираем свободную переменную, которую нужно ввести в базис (выбор разрешающей строки). Рассмотрим какой-либо k-й столбец и все его элементы, которые больше 0. Для всех этих элементов находим отношение bi / Aik и выбираем строку, которая соответствует минимальному значению этого отношения. Соответствующая i переменная выводится из базиса. При нескольких одинаковых отношениях берем любую строку. Элемент Aik называется разрешающим элементом (ключевым). Выбираем свободную переменную, которую надо ввести в базис. Выбор разрешающего (ключевого столбца). Это столбец с минимальным значением Дj. Начинаем заполнять новую k-ю строку, записывая в нее элементы i-строки, поделенные на ключевой элемент. Оставшиеся строки заполняем следующим образом: k-ю строку последовательно умножаем на такие числа, чтобы после сложения ее с каждой строкой таблицы в k-м столбце получить везде 0 (кроме 1 в k-й строке).
После заполнения новой симплекс-таблицы, возвращаемся к проверке оптимальности решения (пункт 6).
4. Решение задачи симплекс-методом
Приведем задачу к каноническому виду:
Каноническая задача линейного программирования отличается от других задач тем, что ее системой ограничений является система уравнений, а не неравенств, и все переменные не отрицательные. При необходимости перехода от неравенства к уравнению вводят дополнительные переменные:
автобус расписание симплекс математический
X1 + X6?4,
X1 + X2?8,
X2 + X3?10,
X3 + X4?7,
X4 + X5?12,
X5 + X6?4,
X1, X2, X3, X4, X5, X6? 0.
= >
X1 + X6 — X7 = 4,
X1 + X2 — X8 = 8,
X2 + X3 — X9 = 10,
X3 + X4 — X10 = 7,
X4 + X5 — X11 = 12,
X5 + X6 — X12 = 4,
X1, X2, X3, X4, X5, X6? 0.
Если система ограничений содержит знак «> «, то добавляется переменная со знаком «-». Если знак «<�», то к левой части неравенства добавляется дополнительная переменная со знаком «+».
Дополнительные переменные вводят в целевую функцию с нулевым коэффициентом: X7, X8, X9, X10, X11, X12.
Выражаем базисные переменные:
X7 = -4 + X1 + X6,
X8 = -8 + X1 + X2,
X9 = -10 + X2 + X3,
X10 = -7 + X3 + X4,
X11 = -12 + X4 + X5,
X12 = -4 + X5 + X6.
Для нахождения начального опорного решения строим начальную симплекс — таблицу (Таблица 2):
Таблица 2 — начальная симплекс-таблица
Ci | БП | Z (x) | |||||||||||||
X1 | X2 | X3 | X4 | X5 | X6 | X7 | X8 | X9 | X10 | X11 | X12 | bi | |||
X7 | — 1 | — 1 | — 4 | ||||||||||||
X8 | — 1 | — 1 | — 8 | ||||||||||||
X9 | — 1 | — 1 | — 10 | ||||||||||||
X10 | — 1 | — 1 | — 7 | ||||||||||||
X11 | — 1 | — 1 | — 12 | ||||||||||||
X12 | — 1 | — 1 | — 4 | ||||||||||||
Дj | — 1 | — 1 | — 1 | — 1 | — 1 | — 1 | |||||||||
Начальное опорное решение не является оптимальным, так как в рассматриваемой задаче на минимум, векторам X1, X2, X3, X4, X5, X6 соответствуют отрицательные значения Дj = -1. Для нахождения ведущей строки найдем максимальный по модулю отрицательный свободный член bi = -12. Ведущая строка — X11. В строке X11 так же найдем максимальный по модулю отрицательный свободный член, равный -1. Столбец X5 — ведущий. Выбираем базисную переменную, которую нужно вывести из базиса — (-1), разрешающий элемент, так как находится на пересечении ведущей строки и столбца. Соответственно Х11 выводим из базиса.
Заполняем строку переменной Х5, для этого записываем в нее элементы строки Х11 поделенные на разрешающий элемент.
После заполняем оставшиеся строки. Для этого строку Х5 последовательно умножаем на такие числа, чтобы после сложения ее с каждой строкой таблицы получить в столбце Х5 нули, кроме 1 в новой строке (Таблица 3):
Таблица 3 — Шаг 1
Ci | БП | Z (x) | |||||||||||||
X1 | X2 | X3 | X4 | X5 | X6 | X7 | X8 | X9 | X10 | X11 | X12 | bi | |||
X7 | — 1 | — 1 | — 4 | ||||||||||||
X8 | — 1 | — 1 | — 8 | ||||||||||||
X9 | — 1 | — 1 | — 10 | ||||||||||||
X10 | — 1 | — 1 | — 7 | ||||||||||||
X5 | — 1 | ||||||||||||||
X12 | — 1 | — 1 | |||||||||||||
Дj | — 1 | — 1 | — 1 | — 1 | — 1 | ||||||||||
Данное решение не является оптимальным, так как в рассматриваемой задаче на минимум, векторам X1, X2, X3, X4, X6 соответствуют отрицательные значения Дj = -1.Для нахождения ведущей строки найдем максимальный по модулю отрицательный свободный член (-10). Ведущая строка — X9. В строке X9 так же найдем максимальный по модулю отрицательный свободный член (-1), разрешающий элемент, так как находится на пересечении ведущей строки и столбца, поэтому X9 выводим из базиса. Столбец X3 — ведущий.
Заполняем строку переменной Х9, для этого записываем в нее элементы строки Х3 поделенные на разрешающий элемент.
После заполняем оставшиеся строки. Для этого строку Х9 последовательно умножаем на такие числа, чтобы после сложения ее с каждой строкой таблицы получить в столбце Х3 нули (Таблица 4):
Таблица 4 — Шаг 2
Ci | БП | Z (x) | |||||||||||||
X1 | X2 | X3 | X4 | X5 | X6 | X7 | X8 | X9 | X10 | X11 | X12 | bi | |||
X7 | — 1 | — 1 | — 4 | ||||||||||||
X8 | — 1 | — 1 | — 8 | ||||||||||||
X3 | — 1 | ||||||||||||||
X10 | — 1 | — 1 | |||||||||||||
X5 | — 1 | ||||||||||||||
Данное решение не является оптимальным, так как в рассматриваемой задаче на минимум, векторам X1, X6, X11 соответствуют отрицательные значения Дj = -1. Ведущая строка — X12. В столбце X6 так же найдем максимальный по модулю отрицательный свободный член (-1), разрешающий элемент, так как находится на пересечении ведущей строки и столбца, поэтому строку X12 выводим из базиса. Столбец X6 — ведущий. Заполняем строку переменной Х6, для этого записываем в нее элементы строки Х12 поделенные на разрешающий элемент.
После заполняем оставшиеся строки. Для этого строку Х12 последовательно умножаем на такие числа, чтобы после сложения ее с каждой строкой таблицы получить в столбце Х6 нули. Строим новую симплекс-таблицу (Таблица 5):
Таблица 5 — Шаг 3
Ci | БП | Z (x) | |||||||||||||
X1 | X2 | X3 | X4 | X5 | X6 | X7 | X8 | X9 | X10 | X11 | X12 | bi | |||
X7 | — 1 | — 1 | — 1 | — 12 | |||||||||||
X8 | — 1 | — 1 | — 8 | ||||||||||||
X3 | — 1 | ||||||||||||||
X10 | — 1 | — 1 | |||||||||||||
X5 | — 1 | ||||||||||||||
X6 | — 1 | — 1 | — 8 | ||||||||||||
Дj | — 1 | — 1 | — 1 | — 1 | — 1 | ||||||||||
Данное решение не является оптимальным, так как в рассматриваемой задаче на минимум, векторам X1, X4, X6, X11 соответствуют отрицательные значения Дj = -1. Ведущая строка — X10, в ней найдем максимальный по модулю отрицательный свободный член (-1), он является разрешающим элементом, так как находится на пересечении ведущей строки и столбца. Столбец X4 — ведущий. Заполняем строку переменной Х4, для этого записываем в нее элементы строки Х10 поделенные на разрешающий элемент.
После заполняем оставшиеся строки. Для этого строку Х10 последовательно умножаем на такие числа, чтобы после сложения ее с каждой строкой таблицы получить в столбце Х4 нули. Пересчитаем таблицу (Таблица 6):
Таблица 6 — Шаг 4
Ci | БП | Z (x) | |||||||||||||
X1 | X2 | X3 | X4 | X5 | X6 | X7 | X8 | X9 | X10 | X11 | X12 | bi | |||
X7 | — 1 | — 1 | — 1 | — 1 | — 1 | — 15 | |||||||||
X8 | — 1 | — 1 | — 8 | ||||||||||||
X3 | — 1 | ||||||||||||||
X4 | — 1 | — 1 | — 3 | ||||||||||||
X5 | — 1 | ||||||||||||||
X6 | — 1 | — 1 | — 1 | — 11 | |||||||||||
Дj | — 1 | — 2 | |||||||||||||
Данное решение не является оптимальным, так как в рассматриваемой задаче на минимум, векторам X1, X10 соответствуют отрицательные значения Дj. Ведущая строка — X8. В столбце X2 так же найдем максимальный по модулю отрицательный свободный член (-2), разрешающий элемент, так как находится на пересечении ведущей строки и столбца, поэтому строку X8 выводим из базиса. Столбец X2 — ведущий. Заполняем строку переменной Х8, для этого записываем в нее элементы строки Х2 поделенные на разрешающий элемент.
После заполняем оставшиеся строки. Для этого строку Х2 последовательно умножаем на такие числа, чтобы после сложения ее с каждой строкой таблицы получить в столбце Х8 нули (Таблица 7):
Таблица 7 — Шаг 5
Ci | БП | Z (x) | |||||||||||||
X1 | X2 | X3 | X4 | X5 | X6 | X7 | X8 | X9 | X10 | X11 | X12 | bi | |||
X7 | — 1 | — 1 | — 1 | — 7 | |||||||||||
X2 | — 1 | ||||||||||||||
X3 | — 1 | ||||||||||||||
X4 | — 1 | — 1 | |||||||||||||
X5 | — 1 | — 1 | |||||||||||||
X6 | — 1 | — 1 | — 1 | — 3 | |||||||||||
Дj | — 1 | — 2 | — 1 | ||||||||||||
Данное решение не является оптимальным, так как в рассматриваемой задаче на минимум, векторам X8, X10, X12 соответствуют отрицательные значения Дj. Ведущая строка — X7. В столбце X10 так же найдем максимальный по модулю отрицательный свободный член (-1), разрешающий элемент, так как находится на пересечении ведущей строки и столбца, поэтому строку X7 выводим из базиса. Столбец X10 — ведущий. Заполняем строку переменной Х10, для этого записываем в нее элементы строки Х7 поделенные на разрешающий элемент.
После заполняем оставшиеся строки. Для этого строку Х7 последовательно умножаем на такие числа, чтобы после сложения ее с каждой строкой таблицы получить в столбце Х10 нули (Таблица 8):
Таблица 8 — Шаг 6
Ci | БП | Z (x) | |||||||||||||
X1 | X2 | X3 | X4 | X5 | X6 | X7 | X8 | X9 | X10 | X11 | X12 | bi | |||
X10 | — 1 | — 1 | — 1 | ||||||||||||
X2 | — 1 | ||||||||||||||
X3 | — 1 | ||||||||||||||
X4 | |||||||||||||||
X5 | — 1 | — 1 | |||||||||||||
X6 | |||||||||||||||
Дj | — 1 | ||||||||||||||
Данное решение не является оптимальным, так как в рассматриваемой задаче на минимум, вектору X11 соответствует отрицательное значение Дj = -1. Ведущая строка — X5. В столбце X11 найдем максимальный по модулю отрицательный свободный член (-1), разрешающий элемент, так как находится на пересечении ведущей строки и столбца, поэтому строку X5 выводим из базиса. Столбец X11 — ведущий. Заполняем строку переменной Х11, для этого записываем в нее элементы строки Х5 поделенные на разрешающий элемент.
После заполняем оставшиеся строки. Для этого строку Х11 последовательно умножаем на такие числа, чтобы после сложения ее с каждой строкой таблицы получить в столбце Х5 нули. Строим итоговую симплекс-таблицу (Таблица 9):
Таблица 9 — Итоговая симплекс-таблица
Ci | БП | Z (x) | |||||||||||||
X1 | X2 | X3 | X4 | X5 | X6 | X7 | X8 | X9 | X10 | X11 | X12 | bi | |||
X10 | — 1 | — 1 | — 1 | — 6 | |||||||||||
X2 | — 1 | ||||||||||||||
X3 | — 1 | ||||||||||||||
X4 | |||||||||||||||
X11 | — 1 | — 1 | — 7 | ||||||||||||
X6 | |||||||||||||||
Дj | — 1 | — 1 | |||||||||||||
Так как Дj?0, то данное решение оптимально. В строке Z нет отрицательных элементов, следовательно, найдено оптимальное решение Z=26 при значениях переменных равных:
X2=8, X3=2, X4=12, X6=4.
Z (X) = 1*8 + 1*2 + 1*12 + 1*4 = 26
Ответ: снижение интенсивности внутригородского движения будет достигнуто, если во вторую смену добавить 8 автобусов, в третью — 2, в четвертую — 12, а в шестую — 4 автобуса. Общее количество автобусов равно 26.
5. Решение задачи в MS Excel
Для решения задачи необходимо ввести начальную информацию (Рисунок 1):
Рисунок 1 — Исходные данные Пусть X1 — смена 1, X2 — смена 2, X3 — смена 3, X4 — смена 4, X5 — смена 5, X6 — смена 6.
Получаем следующие уравнения:
X1 + X6?4,
X1 + X2?8,
X2 + X3?10,
X3 + X4?7,
X4 + X5?12,
X5 + X6?4,
X1, X2, X3, X4, X5, X6? 0.
В результате получена система линейных неравенств с шестью неизвестными. Требуется найти такие неотрицательные значения этих неизвестных, которые бы удовлетворяли системе неравенств.
Поскольку задача решается с помощью табличного редактора MS Excel, то и подготовку всей входной информации для построения математической модели необходимо осуществлять также с использованием этого табличного процессора. Это облегчает не только расчеты технико-экономических коэффициентов и других данных, но и дает в дальнейшем возможность автоматического обновления информации в экономико-математической модели.
Вся разработанная информация сводится в развернутую математическую модель и заносится в рабочий лист MS Excel.
Столбец I, названный «Сумма произведений», предназначен для определения суммы произведений значений искомых неизвестных (ячеек I5: I10). В ячейку I5 была записана формула =A5*A4+B5*B4+C5*C4+D5*D4+E5*E4+F5*F4+0, а в ячейку H3 — =B4*B2+C4*C2+D4*D2+E4*E2+F4*F2+G4*G2+H4, эта ячейка будет являться целевой.
Из всего следует вывод, что построен опорный план и получено первое допустимое решение.
Для оптимизации имеющегося плана воспользуемся инструментом «Поиск решения», которое имеет следующий вид (Рисунок 2):
Рисунок 2 — Поиск решения
Далее необходимо сохранить найденное решение (Рисунок 3):
Рисунок 3 — Сохранение результатов Получаем итоговую симплексную таблицу (Рисунок 4):
Рисунок 4 — Итоговая таблица
Z (X) = 1*4 + 1*4 + 1*6 + 1*6 + 1*6 = 26
Ответ: снижение интенсивности внутригородского движения будет достигнуто, если в первую и вторую смену добавить по 4 автобуса, а в третью, четвёртую и пятую по 6 автобусов. Всего необходимо добавить 26 автобусов.
Заключение
В курсовой работе изложены основные подходы и методы решения задачи симплекс-методом, являющейся одной из наиболее распространенных задач линейного программирования. В ходе проделанной курсовой работы было использовано несколько методов решения задачи: симплекс-метод и метод решения в табличном редакторе MS Excel.
Решение данной задачи позволяет разработать более рациональную математическую модель для оптимизации работ маршрутного транспорта. Снижение интенсивности внутригородского движения будет достигнуто, если во вторую смену добавят 8 автобусов, в третью — 2 автобуса, в четвертую — 12, и в шестую — 4 автобуса. Всего необходимо добавить 26 автобусов.
1. Гмурман В. Е Теория вероятностей и математическая статистика: учеб. пособие. — 12 — е изд., перераб. — М.: Высшее образование, 2008. — 479 с.
2. Гмурман В. Е. Руководство к решению задач по теории вероятностей и математической статистике: учебное пособие. — 11-е изд., перераб. — М.: Высшее образование, 2008. — 404 с.
3. Красс М. С., Чупрынов Б. П. Математические методы и модели для магистров экономики: учебное пособие. — СПб.: Питер, 2006. — 496 с.
4. Кутузов А. Л. Математические методы и модели исследования операций. Линейная оптимизация с помощью WinQSB и Exсel: Учеб. Пособие. СПб.: Изд — во Политехн. ун — та, 2007. — 88 с.
5. Сборник задач по высшей математике для экономистов: учебное пособие/ Под ред. В. И. Ермакова. — М.:ИНФРА — М, 2008. — 575 с.
6. Оуэн Г. Теория игр / Г. Оуэн; Пер. с англ. И. Н. Врублевской, Г. Н. Дюбина, А. Н. Ляпунова. — 2-е изд. — М.: Вузовская книга, 2007. — 216 с.