- •Введение. Классификация математических моделей.
- •Раздел: Линейное программирование Построение математических моделей
- •Анализ математической модели на чувствительность после нахождения оптимального решения.
- •Алгебраический метод решения задач лп. Стандартная форма линейных оптимизационных моделей
- •Симплекс-метод
- •Раздел: Двойственная задача лп. Тема: Взаимосвязь прямой и двойственной задачи.
- •Матричные вычисления.
- •Тема: Анализ построенной математической модели на чувствительность с использованием обратной матрицы и соотношений двойственности.
- •Раздел: Транспортная модель Тема: Методы получения начального решения
- •Тема: Метод потенциалов
- •Тема: Связь в транспортной задаче между методом потенциалов и симплекс-методом
- •Усложненные задачи транспортного типа.
- •Модели на сетях (графах). Теория графов.
- •Минимизация сети
- •Алгоритм нахождения кратчайшего пути для сетей без циклов
- •Определение кратчайшего расстояния для сетей с циклами
- •Представление задачи о кратчайшем пути в виде транспортной задачи с промежуточными пунктами.
- •Тема: Максимальный поток Алгоритм определения максимального потока
Тема: Связь в транспортной задаче между методом потенциалов и симплекс-методом
Потенциалы Ui и Vj представляют собой двойственные переменные. Сформулируем двойственную задачу из условий исходной транспортной задачи для m=2 и n=3:
|
|
|
|
Объем |
|||||||
|
x11 |
c11 |
x12 |
c12 |
x13 |
c13 |
a1 |
|
|||
|
|
|
|
||||||||
|
x21 |
c21 |
x22 |
c22 |
x23 |
c23 |
a2 |
|
|||
|
|
|
|
||||||||
спрос |
b1 |
b2 |
b3 |
|
n m
min Z = Σ Σ Cij xij
j=1 i=1
{ |
n____ . .__ Σ хij = ai ; i=1,2 j=1 m .___.____ Σ хij = bj ; j=1,3 i=1 |
xij ≥ 0
Пусть для ограничений, соответствующих исходным пунктам, двойственные переменные обозначим U1 и U2 , а для пунктов назначения - через V1 , V2 и V3 . Тогда двойственная задача запишется в следующем виде:
m n
max w = Σ ai Ui + Σ bj Vj
i=1 j=1
Ui + Vj ≤ Cij для всех i и j , Ui , Vj не имеют ограничений в знаке
Чтобы определить коэффициенты при небазисной переменной xij в Z уравнении, необходимо найти разность между левыми и правыми частями в соответствующих уравнениях двойственной задачи.
Uj + Vj - Cij = Ĉij
На заключительной итерации потенциалы непосредственно дают оптимальные значения двойственных переменных.
Потенциалы на заключительной итерации:
U1 = 0 ; U2 = 3 ; U3 = 2 ;
V1 = 1 ; V2 = - 2 ; V3 = 2 ;
w = (90*0 + 400*3 + 110*2) + (110*1 + 300*(-2) + 160*2) = 1280 денежных единиц
Задача: требуется распределить n работ по m станкам. Работа i, выполняемая на станке j связана с затратами Сij. Задача состоит в таком распределении по станкам которое соответствует минимуму суммарных затрат.
i |
Станки |
|
|||||
|
|
1 |
2 |
… |
n |
|
|
Виды работ |
1 |
С11 |
С12 |
… |
С1n |
1 |
|
2 |
С21 |
С22 |
… |
С2n |
1 |
||
… |
… |
… |
|||||
m |
Сm1 |
Сm2 |
… |
Сmn |
1 |
||
|
|
1 |
1 |
… |
1 |
|
Если какую-либо работу нельзя выполнить, то стоимость Сij берется равной очень большому числу М или 0. Если количество работ m не равно количеству станков n, то модель нужно сбалансировать
X ij = { |
0, если работа i не выполняется на станке j |
1, если работа i выполняется на станке j |
n m
Z = Σ Σ Cij xij
j=1 i=1
{ |
m____ Σ хij = 1 i=1 n Σ хij = 1 j=1 |
xij ≥ 0
Оптимальное решение задачи не изменится, если к любой строке или столбцу матрицы стоимостей прибавить или вычесть постоянную величину. Если можно построить новую Cij матрицу с нулевыми элементами, то эти нулевые элементы или их подмножества будут соответствовать оптимальному решению. Нулевые элементы получаются вычитанием наименьшего элемента в каждой строке и в каждом столбце матрицы.
Пример:
|
|
1 |
2 |
3 |
|
Cij = |
1 |
5 |
7 |
9 |
Р1= 5 |
2 |
14 |
10 |
12 |
Р2 = 10 |
|
|
3 |
15 |
13 |
16 |
Р3 = 13 |
С ’ij= |
0 |
2 |
4 |
4 |
0 |
2 |
|
2 |
0 |
3 |
|
|
q1 = 0 |
q2 = 0 |
q3 = 2 |
С ’ij= |
0 |
2 |
2 |
4 |
0 |
0 |
|
2 |
0 |
1 |
↑ Нули в каждой строке и столбце
Z = C11 + C23 + C32 = 5 + 12 + 13 = Σ pi + Σ qj = 5 + 10 + 13 +2
Пример:
|
|
1 |
2 |
3 |
4 |
Р |
Cij = |
1 |
1 |
4 |
6 |
3 |
1 |
2 |
9 |
7 |
10 |
9 |
7 |
|
3 |
4 |
5 |
11 |
7 |
4 |
|
4 |
8 |
7 |
8 |
5 |
5 |
С ’ij= |
0 |
3 |
5 |
2 |
2 |
0 |
3 |
2 |
|
0 |
1 |
7 |
3 |
|
3 |
2 |
3 |
0 |
|
q |
0 |
0 |
3 |
0 |
С ’ij= |
0 |
3 |
2 |
2 |
2 |
0 |
0 |
2 |
|
0 |
1 |
4 |
3 |
|
3 |
2 |
0 |
0 |
В данном случае невозможно сразу найти оптимальное решение.
Проводим минимальное число прямых, чтобы все нули оказались вычеркнуты.
Выбирается наименьший не вычеркнутый элемент. Он вычитается из каждого не вычеркнутого элемента и прибавляется к каждому элементу стоящему на пересечении проведенных прямых. Если оптимальное решение не найдено, то процедуру проведения следует повторить пока не будет получено оптимальное решение.
С ’ij= |
0 |
2 |
1 |
1 |
3 |
0 |
0 |
2 |
|
0 |
0 |
3 |
2 |
|
4 |
2 |
0 |
0 |
↑ нули в каждой строке (столбце)
Z = 1 + 5 + 10 + 5 = 21