Реферат: Методы линейного программирования для решения транспортной задачи
Числа и называют потенциалами. В распределительную таблицу добавляют строку и столбец . Потенциалы и находят из равенства , справедливого для занятых клеток. Одному из потенциалов дается произвольное значение, а остальные потенциалы определяются однозначно. Если известен потенциал , то , если известен потенциал , то .
Обозначим , которую называют оценкой свободных клеток. Если все оценки свободных клеток , то опорное решение является оптимальным. Если хотя бы одна из оценок , то опорное решение не является оптимальным и его можно улучшить, перейдя от одного опорного решения к другому.
Наличие положительной оценки свободной клетки () при проверке опорного решения на оптимальность свидетельствует о том, что полученное решение не оптимально и для уменьшения значения целевой функции надо перейти к другому опорному решению. При этом надо перераспределить грузы, перемещая их из занятых клеток в свободные. Свободная клетка становится занятой, а одна из ранее занятых клеток - свободной.
Для свободной клетки с строится цикл (цепь, многоугольник), все вершины которого, кроме одной, находятся в занятых клетках; углы прямые, число вершин четное. Около свободной клетки цикла ставится знак (+), затем поочередно проставляют знаки (-) и (+). У вершин со знаком (-) выбирают минимальный груз, его прибавляют к грузам, стоящим у вершин со знаком (+), и отнимают от грузов у вершин со знаком (-). В результате перераспределения груза получим новое опорное решение. Это решение проверяем на оптимальность и т.д. до тех пор, пока не получим оптимальное решение. [7]
8. Распределительный метод
Распределительный метод решения транспортной задачи отличается от метода потенциалов некоторым изменением вычислительного процесса и иным (по форме) критерием оптимальности.
Алгоритм распределительного метода заключается в следующем.
1. Отыскиваем первоначальный ациклический план, содержащий (k +l -1) компонент (при недостатке компонент дописываем нули).
2. Включаем в набор свободную клетку, строим для нее цикл, означиваем его, приписывая свободной клетке знак плюс, и вычисляем по этим знакам алгебраическую сумму тарифов, стоящих во всех вершинах цикла. Полученное число с его знаком записываем внутри свободной клетки.
3. Проделываем указанную в п.2 операцию для каждой свободной клетки, строя всякий раз свой цикл пересчета. В результате в каждой свободной клетке появится число (положительное, отрицательное или нуль).
4. Если все полученные числа неотрицательны, то найдено оптимальное решение, минимизирующее функционал. Если эти числа неположительны, достигнут максимум функционала. При наличии чисел разных знаков включаем в план свободную клетку, в которой стоит наибольшее по модулю отрицательное число для минимума и положительное - для максимума.
5. В отрицательной полуцепи того цикла, который соответствует выбранной клетке, отыскиваем наименьшую перевозку и делаем сдвиг по циклу на это число. Находим новый допустимый план.
6. Испытываем этот план на оптимальность, т.е. для каждой свободной клетки строим цикл пересчета и вычисляем алгебраическую сумму тарифов. При неоптимальности плана снова включаем свободную клетку в план и делаем сдвиг по соответствующему циклу. Так продолжаем до тех пор, пока план не будет оптимальным.
Для ручного счета более удобен метод потенциалов. Однако на распределительном методе основаны некоторые другие способы решения задач, что и вызывает необходимость его изучения. [5]
9. Метод потенциалов
Решение транспортной задачи любым способом производится на макете. Макет для применения метода потенциалов имеет следующий вид.
Основная часть макета выделена двойными линиями. Она содержит k ×l клеток. Каждая клетка в этой части обозначается символом (i , j ). Например, клетка, стоящая во второй строке и первом столбце, будет обозначена (2, 1). Макет содержит в себе матрицу тарифов. Назначение строки vj и столбца ui будет выяснено в дальнейшем.
Прежде чем приступить к изложению метода, рассмотрим некоторые предварительные понятия.
Произвольную совокупность клеток в макете называют набором. Цепью называется последовательный набор клеток, в котором каждые две соседние клетки расположены в одном ряду (строке, столбце), причем никакие три клетки в одном ряду не располагаются.
Пример цепи приведен в табл.2.
Прямые, соединяющие взятые клетки, пересеклись, но так как клетку в пересечении мы не берем, правило цепи не нарушается.
Если последняя клетка цепи расположена в одном ряду с первой, то такая замкнутая цепь называется циклом. Некоторые разновидности циклов показаны в табл.3.
Теорема. Пусть в макете (или матрице) из k строк и l столбцов произвольно отмечено k+l клеток, причем k+l £ kl . В этом случае всегда можно построить цикл, вершины которого лежат в отмеченных клетках (может быть не во всех).
Замечание. Числа k и l целые, и для них не всегда будет выполнено неравенство k+l £ kl . Если одно из этих чисел - единица, это неравенство не выполняется. Например, при k =3, l =1 имеем 3 + 1 > 3·1. Однако при k =2 и l =2 будет 2+2 = 2·2, а при k и l , одновременно больших двух, неравенство всегда выполняется.
Условие k+l £ kl исключает случаи матриц с одной строкой или одним столбцом, в которых вообще цикла построить нельзя.
Доказательство. Рассмотрим минимальный возможный случай: k =2, l =2 (табл.4).
В макете надо выбрать k+l = 4, т.е. все 4 клетки. Для этого случая теорема справедлива: выбранные клетки образуют цикл.