
- •Введение
- •1.Теоретическая часть
- •1.1 Линейное программирование
- •1.2 Общий вид задач линейного программирования
- •1.3 Транспортная задача
- •1.3.1 Общий вид транспортной задачи
- •1.3.2 Опорный план транспортной задачи
- •1.3.3 Метод северо- западного угла
- •1.3.4 Минимальной стоимости по строке
- •1.3.5 Минимальной стоимости по столбцу
- •1.4 Распределительный метод оптимального плана
- •1.5 Метод потенциалов.
- •1.5.1Формулировка транспортной задачи
- •1.5.2 Алгоритм решения метода потенциалов
- •1.5.3 Вычисление общей стоимости транспортировки
- •1.5.4 Разделение ячеек на базисные и свободные
- •1.5.5 Проверка плана на вырожденность
- •1.5.6 Вычисление потенциалов
- •1.5.7 Проверка решения на оптимальность
- •1.5.8 Построение цикла
- •1.5.9 Перераспределение поставок по циклу
- •1.5.10 Зацикливание решения
- •1.6 Пример решения задачи
- •2. Практическая часть
- •2.1 Постановка задачи
- •2.2 Аналитическое решение задачи
- •2.3 Алгоритм решения транспортной задачи
- •2.3.1 Построение опорного плана методом северо-западного угла
- •2.3.2 Построение опорного плана методом Фогеля
- •2.3.3 Построение оптимального плана методом потенциалов
- •2.4 Программная реализация задачи
- •Заключение
- •Список литературы
Оглавление
Введение 6
1.Теоретическая часть 7
1.1 Линейное программирование 7
1.3 Транспортная задача 9
1.3.1 Общий вид транспортной задачи 9
1.3.2 Опорный план транспортной задачи 11
1.3.3 Метод северо- западного угла 12
1.3.4 Минимальной стоимости по строке 13
1.3.5 Минимальной стоимости по столбцу 14
1.4 Распределительный метод оптимального плана 16
1.5 Метод потенциалов. 20
1.5.1Формулировка транспортной задачи 21
1.5.2 Алгоритм решения метода потенциалов 22
1.5.3 Вычисление общей стоимости транспортировки 23
1.5.4 Разделение ячеек на базисные и свободные 24
1.5.5 Проверка плана на вырожденность 24
1.5.6 Вычисление потенциалов 24
1.5.7 Проверка решения на оптимальность 25
1.5.8 Построение цикла 27
1.5.9 Перераспределение поставок по циклу 28
1.5.10 Зацикливание решения 28
1.6 Пример решения задачи 29
2. Практическая часть 44
2.1 Постановка задачи 44
2.2 Аналитическое решение задачи 46
2.3 Алгоритм решения транспортной задачи 46
2.3.2 Построение опорного плана методом Фогеля 48
2.3.3 Построение оптимального плана методом потенциалов 58
2.4 Программная реализация задачи 63
ЗАКЛЮЧЕНИЕ 65
СПИСОК ЛИТЕРАТУРЫ 66
Введение
Транспортная задача линейного программирования получила в настоящее время широкое распространение в теоретических обработках и практическом применении на транспорте и в промышленности. Особенно важное значение она имеет в деле рационализации постановок важнейших видов промышленной и сельскохозяйственной продукции, а также оптимального планирования грузопотоков и работы различных видов транспорта.
Кроме того, к задачам транспортного типа сводятся многие другие задачи линейного программирования - задачи о назначениях, сетевые, календарного планирования.
Формальным признаком транспортной задачи является то, что каждая переменная входит лишь в два ограничения, причем с коэффициентами, равными единице. Если при этом критерий оптимальности (сумма расходов, общий пробег) прямо пропорционален значениям переменных (транспортных потоков), возникает линейная транспортная задача. В других случаях рассматривается нелинейная транспортная задача, решаемая другими методами.
Метод потенциалов – первый точный метод решения транспортной задачи – был предложен в 1949 г. Л.В. Канторовичем и М. К. Гавуриным. По существу этот метод является детализацией метода последовательного улучшения плана применительно к транспортной задаче. Однако он был изложен вне связи с общими методами линейного программирования. Несколько позднее аналогичный алгоритм был разработан Данцигом, который исходил из общих идей линейного программирования. В американской литературе метод потенциалов принято называть модифицированным распределительным методом. Метод потенциалов позволяет, отправляясь от некоторого опорного плана перевозок, построить решение транспортной задачи за конечное число итераций (шагов).
1.Теоретическая часть
1.1 Линейное программирование
Линейное программирование – это направление математического программирования, изучающее методы решения экстремальных задач, которые характеризуются линейной зависимостью между переменными и линейным критерием.
Необходимым условием постановки задачи линейного программирования являются ограничения на наличие ресурсов, величину спроса, производственную мощность предприятия и другие производственные факторы.
Сущность линейного программирования состоит в нахождении точек наибольшего или наименьшего значения некоторой функции при определенном наборе ограничений, налагаемых на аргументы и образующих систему ограничений, которая имеет, как правило, бесконечное множество решений. Каждая совокупность значений переменных (аргументов функции F), которые удовлетворяют системе ограничений, называется допустимым планом задачи линейного программирования. Функция F, максимум или минимум которой определяется, называется целевой функцией задачи. Допустимый план, на котором достигается максимум или минимум функции F, называется оптимальным планом задачи.
Система ограничений, определяющая множество планов, диктуется условиями производства. Задачей линейного программирования (ЗЛП) является выбор из множества допустимых планов наиболее выгодного (оптимального).
1.2 Общий вид задач линейного программирования
В общей постановке задача линейного программирования выглядит следующим образом:
Имеются какие-то переменные х = (х1 , х2 , … хn ) и функция этих переменных f(x) = f (х1 , х2 , … хn ), которая носит название целевой функции. Ставится задача: найти экстремум (максимум или минимум) целевой функции f(x) при условии, что переменные x принадлежат некоторой области G:
В зависимости от вида функции f(x) и области G и различают разделы математического программирования: квадратичное программирование, выпуклое программирование, целочисленное программирование и т.д. Линейное программирование характеризуется тем, что а) функция f(x) является линейной функцией переменных х1 , х2 , … хn б) область G определяется системой линейных равенств или неравенств.
Математическая модель любой задачи линейного программирования включает в себя:
нахождения минимума линейной целевой функции (линейной формы) вида:
задача в которой фигурируют ограничения в форме неравенств, называется — основной задачей линейного программирования (ОЗЛП)
,
.
Задача линейного программирования будет иметь канонический вид, если в общей задаче вместо первой системы неравенств имеет место система уравнений с ограничениями в форме равенства.
,
Основную задачу можно свести к канонической путём введения дополнительных переменных.
Задачи линейного программирования наиболее общего вида (задачи со смешанными ограничениями: равенствами и неравенствами, наличием переменных, свободных от ограничений) могут быть приведены к эквивалентным (имеющим то же множество решений) заменами переменных и заменой равенств на пару неравенств.
Легко заметить, что задачу нахождения максимума можно заменить задачей нахождения минимума, взяв коэффициенты с обратным знаком.
максимум или минимум целевой функции (критерий оптимальности);
систему ограничений в форме линейных уравнений и неравенств;
требование неотрицательности переменных.