Uploaded by anmstaff

Экономико-математические методы: задача ЛП, транспортная задача, динамическое программирование.

advertisement
Методы принятия решений.
Контрольная работа. Вариант №19 (M = 1, N = 9).
Задача 1. Общая задача линейного программирования.
Дана математическая модель задачи
Z = 33·x1 + 44·x2  max;
1·x1 + 1·x2 ≤ 5;
1·x1 + 2·x2 ≤ 8;
x1, x2 ≥ 0.
Задание:
1. Предложите
содержательную
интерпретацию
задачи,
представленную моделью.
2. Решите задачу графически.
3. Решите задачу симплексным методом; решение оформите в
таблицах.
4. Составьте математическую модель двойственной задачи и решите ее
графически.
5. Запишите найденные значения неизвестных и оптимальные значения
целевых функций прямой и двойственной задач.
6. Приведите формулировку теоремы теории двойственности, условиям
которой удовлетворяет решение задачи.
Решение.
1. Возможная содержательная интерпретация задачи, представленной
моделью.
Фирма ежедневно производит два вида изделий A и B. Для выпуска
каждого вида изделий требуется определенное время обработки на двух
устройствах I и II. На выпуск одного изделия вида A требуется одна единица
времени обработки на устройстве I и одна единица времени обработки на
устройстве II. На выпуск одного изделия вида B требуется одна единица
времени обработки на устройстве I и две единицы времени обработки на
устройстве II. Ежедневные ресурсы времени работы устройств I и II
составляют 5 и 8 единиц времени соответственно. Прибыль, получаемая от
реализации одного изделия вида A и B равна 33 и 44 денежных единицы
соответственно. Необходимо определить план ежедневного выпуска изделий
видов A и B таким образом, чтобы прибыль от их реализации была бы
максимальной.
2. Решаем задачу графически.
Задача имеет две переменные, поэтому ее можно решать графическим
методом.
В системе координат x1Ox2 строим область допустимых решений (ОДР)
системы неравенств. Для этого неравенства системы заменяем равенствами и
получаем уравнения прямых, образующих границу ОДР. При построении
прямые выделяем цветом.
Определяем множество решений первого неравенства 1·x1 + 1·x2 ≤ 5.
Решением уравнения 1·x1 + 1·x2 = 5 являются точки (–2; 7) и (7; –2). По этим
точкам строим прямую, выделенную синим цветом. Множество решений
строгого неравенства 1·x1 + 1·x2 < 5 определяем при помощи контрольной
точки (0; 0), координаты которой подставляем в неравенство. Так как
неравенство выполняется, то стрелки на прямой направляем в сторону точки
(0; 0).
Определяем множество решений второго неравенства 1·x1 + 2·x2 ≤ 8.
Решением уравнения 1·x1 + 2·x2 = 8 являются точки (–2; 5) и (10; –1). По этим
точкам строим прямую, выделенную оранжевым цветом. Множество
решений строгого неравенства 1·x1 + 2·x2 < 8 определяем при помощи
контрольной точки (0; 0), координаты которой подставляем в неравенство.
Так как неравенство выполняется, то стрелки на прямой направляем в
сторону точки (0; 0).
Прямые ограничений x1 ≥ 0 и x2 ≥ 0 означают, что ОДР лежит в первой
четверти декартовой системы координат.
Общую область для всех неравенств на рисунке закрашиваем. Таким
образом, получаем замкнутую область допустимых решений в виде
выпуклого многоугольника OABC.
Строим линию уровня, уравнение которой 33·x1 + 44·x2 = var. Здесь var
означает возможность перемещения линии уровня параллельно самой себе.
На рисунке линия уровня представлена для случая var = 130 и проведена
через точки (–1; 163/44) и (5; –35/44).
r
Строим также вектор-градиент  = 33· i + 44· j .
Для максимизации целевой функции перемещаем линию уровня в
направлении вектора-градиента. Предельной точкой при таком перемещении
линии уровня является точка B, которая образована пересечением синей
прямой, соответствующей первому ограничению задачи, и оранжевой
прямой, соответствующей второму ограничению задачи. Координаты точки
пересечения можно определить, решив совместно уравнения этих прямых:
1·x1 + 1·x2 = 5; 1·x1 + 2·x2 = 8, откуда x1 = 2, x2 = 3.
Таким
образом,
целевая
функция
максимальное значение Zmax = 33·2 + 44·3 = 198.
Ответ: Zmax = 198 при x1 = 2, x2 = 3.
Z = 33·x1 + 44·x2
принимает
3. Решаем задачу табличным симплексным методом.
Для решения задачи симплекс-методом применяется каноническая
форма её записи. В такой задаче осуществляется поиск неотрицательных
значений переменных, для которых линейная целевая функция достигает
максимума. При этом неравенства исходной задачи преобразуют в равенства
с неотрицательной правой частью за счет введения дополнительных
неотрицательных переменных.
Получаем:
Z = 33·x1 + 44·x2 + 0·(x3 + x4)  max;
1·x1 + 1·x2 + 1·x3 = 5;
1·x1 + 2·x2 + 1·x4 = 8;
x1, x2, x3, x4 ≥ 0.
Здесь дополнительные переменные x3 и x4 введены для перехода от
неравенств к равенствам. Они включены в целевую функцию с нулевыми
коэффициентами.
Переменные x3, x4 образуют естественный базис. Начальное опорное
решение (0; 0; 5; 8) допустимо.
Приступаем к этапу построения начальной (нулевой) симплекстаблицы.
Построение нулевой симплекс-таблицы состоит в её заполнении
данными на основании канонической записи задачи и найденного базиса:
Начальная (нулевая) симплекс-таблица:
Базис
C
x3
x4
0
0
Z0
33 44 0 0
x1
x2 x3 x4
5 1
1
1 0
8 1
2
0 1
0 –33 –44 0 0
B
Оценочные
отношения
5
4 – min
–
В данной таблице:
1) первая строка постоянна и содержит коэффициенты целевой
функции;
2) вторая строка постоянна и содержит обозначения переменных;
3) первый столбец содержит обозначения базисных переменных;
4) второй столбец C содержит коэффициенты целевой функции для
базисных переменных;
5) третий столбец B содержит свободные члены системы ограничений;
6) матрица (строки 3 – 4, столбцы 4 – 7), содержащая в столбцах
векторы коэффициентов при переменных системы ограничений;
7) нижняя строка – оценочная; первое число в оценочной строке –
текущее
значение
целевой
функции;
вычисляется
как
скалярное
произведение векторов C и B;
8) остальная часть оценочной строки содержит оценочные элементы
переменных; их значения определяются как скалярное произведение вектора
C на векторы коэффициентов при переменных за вычетом значения
соответствующего коэффициента целевой функции.
Работа с симплекс-таблицей состоит в следующем:
1) среди оценочных элементов переменных находим наибольший по
модулю отрицательный; этот столбец будет разрешающим; соответствующая
переменная может быть переведена в разряд базисных;
2) для выбранного разрешающего столбца вычисляются значения
оценочных отношений как результат деления соответствующих элементов
вектора B на положительные элементы разрешающего столбца; из всех
оценочных
отношений
выбирается
минимальное,
и
при
этом
соответствующая строка будет разрешающей;
3) на
пересечении
разрешающих
столбца
и
строки
находится
разрешающий элемент.
В соответствии с нашей начальной симплекс-таблицей разрешающий
столбец (выделен цветом) соответствует переменной x2, которая переводится
в разряд базисных. Разрешающей строкой (выделена цветом) выбираем
строку, соответствующую переменной x4, которая выводится из состава
базисных. Разрешающий элемент равен 2.
На основании начальной (нулевой) симплекс-таблицы приступаем к
построению новой (первой) симплекс таблицы.
Получение каждой новой симплекс-таблицы на основании предыдущей
выполняется по одной и той же схеме:
1) в разрешающей строке все элементы (включая и элемент вектора B)
делятся на разрешающий элемент;
2) элементы разрешающего столбца (за исключением разрешающего
элемента, который стал равным единице) обнуляются;
3) все остальные элементы матрицы (в том числе и элементы вектора B,
а также оценочной строки) пересчитываются по правилу прямоугольника
(новое значение равно старому значению за вычетом произведения
соответствующих элементов из разрешающей строки и столбца, поделенного
на разрешающий элемент);
сформулированное правило условно представим на фрагментах
предыдущей и новой симплекс-таблиц, на которых разрешающий столбец и
разрешающая строка делят область симплекс-таблицы на четыре подобласти,
и укажем при этом необходимые вычислительные формулы:
d1
a1
a2
Предыдущая симплекс-таблица
b1
d2
b2
b3
a3
r a4
a5
d3
b4
b5
b6
a6
d4
Новая симплекс-таблица
0
d2 – a5·b1/r
d1 – a2·b2/r
0
0
a1/r
a2/r
a3/r
1 a4/r
a5/r
a6/r
d3 – a3·b4/r 0
0
0
d4 – a6·b6/r
4) в первом столбце старая базисная переменная заменяется новой, а
также обновляется соответствующее значение в столбце C.
Таким образом, получена новая (первая) симплекс-таблица:
Базис
x3
x2
33 44 0
0
x1 x2 x3 x4
0
1
1/2 0 1 –1/2
44 4
1/2 1 0 1/2
Z1 176 –11 0 0 22
C
B
Оценочные
отношения
2 – min
8
–
В оценочной строке среди оценочных элементов переменных имеется
отрицательный, следовательно, результат не оптимален.
Определяем разрешающие столбец и строку, в соответствии с
которыми переменная x1 переводится в разряд базисных, а переменная x3
выводится из состава базисных.
Таким образом, получаем новую (вторую) симплекс-таблицу:
Базис
x1
x2
В оценочной
33 44 0 0
x1 x2 x3 x4
33 2
1 0 2 –1
44 3
0 1 –1 1
Z1 198 0 0 22 11
C
B
строке
Оценочные
отношения
среди оценочных
–
элементов переменных
отсутствуют отрицательные. Это значит, что в столбце B получены
оптимальные значения базисных переменных x1 = 2; x2 = 3 и оптимальное
значение целевой функции Zmax = 198. При этом значения свободных
переменных x3 = 0; x4 = 0.
Окончательно для исходной задачи имеем: x1 = 2; x2 = 3; Zmax = 198.
4. Составляем математическую модель двойственной задачи и решаем
ее графически.
Прямая задача имеет вид:
Z = 33·x1 + 44·x2  max;
1·x1 + 1·x2 ≤ 5;
1·x1 + 2·x2 ≤ 8;
x1, x2 ≥ 0.
Правила формирования двойственной задачи таковы:
1). Прямая задача должна быть задана в стандартной форме; при этом,
если целевая функция прямой задачи максимизируется, то все знаки
неравенств должны быть “  ”.
2). Каждому неравенству в системе ограничений прямой задачи
соответствуют переменные y1 и y2 двойственной задачи.
3). Каждой из переменных x1 и x2 прямой задачи соответствует
неравенство в системе ограничений двойственной задачи.
4). Коэффициенты
неравенствах
при
системы
какой-либо
ограничений
конкретной
прямой
переменной
задачи
в
становятся
коэффициентами при переменных в неравенствах системы ограничений
двойственной задачи. Иными словами говоря, матрицы коэффициентов при
переменных
в
системах
ограничений
обеих
задач
являются
прямой
задачи
становятся
транспонированными друг относительно друга.
5). Коэффициенты
целевой
функции
свободными членами неравенств системы ограничений двойственной задачи.
6). Свободные члены неравенств системы ограничений прямой задачи
становятся коэффициентами целевой функции двойственной задачи.
7). Так как целевая функция прямой задачи стремится к максимуму, то
целевая функция двойственной стремится к минимуму.
8). В
двойственной
задаче
знаки
между
левой
и
правой
частями ограничений меняются на противоположные (с “≤” на “≥”).
9). Условия
неотрицательности
переменных
прямой
задачи
сохраняются и для двойственной задачи.
Двойственная задача имеет вид:
F = 5·y1 + 8·y2  min;
1·y1 + 1·y2 ≥ 33;
1·y1 + 2·y2 ≥ 44;
y1, y2 ≥ 0.
Полученную двойственную задачу решаем графически.
В системе координат y1Oy2 строим область допустимых решений (ОДР)
системы неравенств. Для этого неравенства системы заменяем равенствами и
получаем уравнения прямых, образующих границу ОДР. При построении
прямые выделяем цветом.
Определяем множество решений первого неравенства 1·y1 + 1·y2 ≥ 33.
Решением уравнения 1·y1 + 1·y2 = 33 являются точки (–2; 35) и (36; –3). По
этим точкам строим прямую, выделенную синим цветом. Множество
решений строгого неравенства 1·y1 + 1·y2 > 33 определяем при помощи
контрольной точки (0; 0), координаты которой подставляем в неравенство.
Так как неравенство не выполняется, то стрелки на прямой направляем в
сторону от точки (0; 0).
Определяем множество решений второго неравенства 1·y1 + 2·y2 ≥ 44.
Решением уравнения 1·y1 + 2·y2 = 44 являются точки (–2; 23) и (46; –1). По
этим точкам строим прямую, выделенную оранжевым цветом. Множество
решений строгого неравенства 1·y1 + 2·y2 > 44 определяем при помощи
контрольной точки (0; 0), координаты которой подставляем в неравенство.
Так как неравенство не выполняется, то стрелки на прямой направляем в
сторону от точки (0; 0).
Прямые ограничений y1 ≥ 0 и y2 ≥ 0 означают, что ОДР лежит в первой
четверти декартовой системы координат.
Общую область для всех неравенств на рисунке закрашиваем. Таким
образом,
получаем
незамкнутую
область
допустимых
ограниченную снизу и слева ломаной линией ABCDE.
решений,
Строим линию уровня, уравнение которой 5·y1 + 8·y2 = var. Здесь var
означает возможность перемещения линии уровня параллельно самой себе.
На рисунке линия уровня представлена для случая var = 200 и проведена
через точки (–2; 65/2) и (48; 5/4).
r
Строим также вектор-градиент  = 5· i + 8· j .
Для минимизации целевой функции перемещаем линию уровня в
направлении, противоположном вектору-градиенту. Предельной точкой при
таком перемещении линии уровня является точка C, которая образована
пересечением синей прямой, соответствующей первому ограничению задачи,
и оранжевой прямой, соответствующей второму ограничению задачи.
Координаты точки пересечения можно определить, решив совместно
уравнения этих прямых: 1·y1 + 1·y2 = 33; 1·y1 + 2·y2 = 44, откуда y1 = 22,
y2 = 11.
Таким
образом,
целевая
функция
F = 5·x1 + 8·x2
принимает
минимальное значение Fmin = 5·22 + 8·11 = 198.
5. Таким образом, найдены следующие значения неизвестных и
оптимальные значения целевых функций прямой и двойственной задач:
а) прямая задача Zmax(X*) = 198 при x1* = 2, x2* = 3;
б) двойственная задача Fmin(Y*) = 198 при y1* = 22, y2* = 11.
6. Теоремы теории двойственности, условиям которых удовлетворяет
решение задачи.
С помощью теорем двойственности устанавливается связь между
оптимальными решениями пары двойственных задач.
Первая
(основная)
теорема
двойственности.
Для
взаимно
двойственных задач имеет место соблюдение следующего условия: если в
прямой и двойственных задачах имеются оптимальные решения, то при этом
значения целевых функций совпадают, то есть Z(X*) = F(Y*).
Для нашей задачи имеем: Zmax(X*) = Fmin(Y*) = 198.
Соотношения
второй
теоремы
двойственности
(теорема
о
дополняющей нежесткости) позволяют, зная оптимальное решение одной из
взаимно двойственных задач, найти оптимальное решение другой задачи.
Вторая теорема двойственности формулируется следующим образом:
Пусть X = (x1, x2, …, xn) – допустимое решение прямой задачи, а
Y = (y1, y2, …, ym) – допустимое решение двойственной задачи. Для того,
чтобы эти решения были оптимальными, необходимо и достаточно, чтобы
n
m
j1
i 1
выполнялись соотношения: yi · (  a ij  x j – bi) = 0; xj · (  a ij  yi – cj) = 0.
Наша прямая задача имеет вид:
Z = 33·x1 + 44·x2  max;
1·x1 + 1·x2 ≤ 5;
1·x1 + 2·x2 ≤ 8;
x1, x2 ≥ 0.
Известно ее оптимальное решение Zmax = 198 при x1 = 2, x2 = 3.
Наша двойственная задача имеет вид:
F = 5·y1 + 8·y2  min;
1·y1 + 1·y2 ≥ 33;
1·y1 + 2·y2 ≥ 44;
y1, y2 ≥ 0.
Находим оптимальное решение двойственной задачи по второй
теореме двойственности. Записываем условия дополняющей нежесткости:
y1 · ((1·x1 + 1·x2) – 5) = 0;
y2 · ((1·x1 + 2·x2) – 8) = 0;
x1 · ((1·y1 + 1·y2) – 33) = 0;
x2 · ((1·y1 + 2·y2) – 44) = 0.
Подставляем в составленную систему известное оптимальное решение
исходной задачи x1 = 2, x2 = 3:
y1 · (1·2 + 1·3 – 5) = 0;
y2 · (1·2 + 2·3 – 8) = 0;
2 · (1·y1 + 1·y2 – 33) = 0;
3 · (1·y1 + 2·y2 – 44) = 0.
Отсюда получаем:
y1 · 0 = 0;
y2 · 0 = 0;
2 · (1·y1 + 1·y2 – 33) = 0;
3 · (1·y1 + 2·y2 – 44) = 0.
Так как произведение равно нулю, если хотя бы один из сомножителей
равен нулю, то отсюда следует:
1·y1 + 1·y2 – 33 = 0;
1·y1 + 2·y2 – 44 = 0.
Результат решения: y1 = 22; y2 = 11.
Оптимальное решение двойственной задачи:
Fmin = 5·22 + 8·11 = 198 при y1 = 22; y2 = 11.
Задача 2. Транспортная задача.
Найти оптимальный план перевозок при заданной матрице стоимости
перевозки единицы продукции (строки – данные поставщиков, столбцы –
данные потребителей).
Задание:
1. Рассчитайте
значение
неизвестного
объема
продукции
для
потребителя так, чтобы задача была сбалансированной.
2. Решите задачу методом потенциалов, используя оценки свободных
клеток.
3. Выполните
первоначальное
распределение
поставок
методом
наименьших затрат.
4. Сформулируйте понятие цикла пересчета и оценки свободной
клетки.
b
6
12
13
20
?
30
5
16
13
2
29
24
28
5
9
14
4
6
5
6
25
15
7
26
8
1. Рассчитываем
значение
a
16
15
14
15
Решение.
неизвестного
объема
продукции
для
потребителя так, чтобы задача была сбалансированной.
В общем случае условие разрешимости транспортной задачи состоит в
том, что сумма запасов поставщиков в пунктах отправления (ПО) должна
быть равна суммарной потребности потребителей в пунктах назначения (ПН)
m
n
i 1
j1
 a i   b j , то есть транспортная задача должна быть закрытой.
Согласно условию нашей задачи имеем:
m = 4; n = 5;
4
a
i 1
i
= a1 + a2 + a3 + a4 = 16 + 15 + 14 + 15 = 60.
Выражение для определения неизвестного значения b5 имеет вид:
4
b5 =
a
i 1
Таким
i
– b1 – b2 – b3 – b4 = 60 – 6 – 12 – 13 – 20 = 9.
образом,
условие
разрешимости
транспортной
задачи
выполнено.
Вводим обозначения: xij – объемы перевозок грузов между ПО Ai и ПН
Bj; cij – заданные стоимости перевозки единицы продукции между ПО Ai и
ПН Bj.
Математическая модель нашей транспортной задачи в виде задачи
линейного программирования формулируется так: найти совокупность
значений
переменных
xij ≥ 0,
минимизирующих
m
целевую
функцию
n
(суммарные затраты на перевозки) Z   cij  x ij  min при ограничениях
i 1 j1
n
по m = 4 поставщикам
 xij  a i , i  1,K ,m и n = 5 потребителям
j1
m
x
i 1
ij
 bj ,
j  1,K ,n .
2. Выполняем
первоначальное
распределение
поставок
методом
наименьших затрат.
Составляем рабочую таблицу представления числовых данных задачи:
ПН
ПО
A1 a1=16
A2 a2=15
A3 a3=14
A4 a3=15
B1
B2
B3
B4
B5
u
b1=6 b2=12 b3=13 b4=20 b5=9 i
30
2
5
6
15
5
29
9
5
7
16
24
14
6
26
13
28
4
25
8
vj
Выполняем первоначальное распределение поставок X(0) методом
наименьших затрат.
В соответствии с этим методом перевозки распределяются в первую
очередь
в
те
ячейки
распределительной
таблицы,
которые
имеют
наименьшую стоимость. Если же наименьшие стоимости совпадают, то
ячейку можно выбрать произвольно. Объем перевозки, вносимый в ячейку,
определяется
как
минимальное
значение
среди
значений
запаса
и
потребности xij = min(ai, bj). При этом исключается или только строка, или
только столбец. Соответственно, или в столбце, или в строке образуется
остаток (возможно, даже нулевой), который распределяется на последующих
шагах процесса распределения на общих основаниях.
а). Наименьшая стоимость 2 в ячейке (1, 2). Назначаем x12 = 12.
Столбец B2 исключаем. Остаток a1 = 4.
б). Наименьшая стоимость 4 в ячейке (4, 3). Назначаем x43 = 13.
Столбец B3 исключаем. Остаток b4 = 2.
в). Наименьшая стоимость 5 в ячейках (2, 1) и (2, 4). Выбираем и
назначаем x21 = 6. Столбец B1 исключаем. Остаток a2 = 9.
г). Наименьшая стоимость 5 в ячейке (2, 4). Назначаем остаток x24 = 9.
Строку A2 исключаем. Остаток b4 = 11.
д). Наименьшая стоимость 6 в ячейках (1, 4) и (3, 4). Выбираем и
назначаем остаток x14 = 4. Строку A1 исключаем. Остаток b4 = 7.
е). Наименьшая стоимость 6 в ячейке (3, 4). Назначаем остаток x34 = 7.
Столбец B4 исключаем. Остаток a3 = 7.
ж). Заполняем остатками x35 = 7 и x45 = 2 незаполненные ячейки (3, 5) и
(4, 5).
Все перевозки распределены.
Первоначальное распределение поставок X(0) транспортной задачи,
составленное по методу наименьших затрат, имеет вид:
X(0)
ПО
ПН
B1
B2
B3
B4
B5
u
b1=6 b2=12 b3=13 b4=20 b5=9 i
30
2
5
6
15
A1 a1=16
12
4
5
29
9
5
7
A2 a2=15
6
9
16
24
14
6
26
A3 a3=14
7
7
13
28
4
25
8
A4 a3=15
13
2
vj
Первоначальное распределение поставок содержит m + n – 1 = 4 + 5 –
1 = 8 занятых клеток, следовательно, опорное решение – невырожденное.
Значение целевой функции:
Z(X(0)) = 2·12+6·4+5·6+5·9+6·7+26·7+4·13+8·2 = 415.
3. Полученное
распределение
поставок
оптимизируем
методом
потенциалов, используя оценки свободных клеток.
Для проверки, является ли распределение поставок оптимальным,
строится система потенциалов поставщиков ui и потребителей vj.
Чтобы распределение поставок было оптимальным, необходимо
выполнение следующих условий:
1) для каждой занятой ячейки должно выполняться ui + vj + cij = 0;
2) для каждой свободной ячейки должно выполняться ui + vj + cij ≥ 0.
Проверяем, является ли найденное распределение поставок X(0)
оптимальным. Для этого строим систему потенциалов ui и vj из условия
выполнения равенства ui + vj + cij = 0 для каждой из занятых ячеек.
1). Полагаем u1 = 0 (1).
2). Для занятой ячейки (1, 2); v2 = –2 (2); u1 + v2 + c12 = 0 – 2 + 2 = 0.
3). Для занятой ячейки (1, 4); v4 = –6 (3); u1 + v4 + c14 = 0 – 6 + 6 = 0.
4). Для занятой ячейки (2, 4); u2 = 1 (4); u2 + v4 + c24 = 1 – 6 + 5 = 0.
5). Для занятой ячейки (2, 1); v1 = –6 (5); u2 + v1 + c21 = 1 – 6 + 5 = 0.
6). Для занятой ячейки (3, 4); u3 = 0 (6); u3 + v4 + c34 = 0 – 6 + 6 = 0.
7). Для занятой ячейки (3, 5); v5 = –26 (7); u3 + v5 + c35 = 0 – 26 + 26 = 0.
8). Для занятой ячейки (4, 5); u4 = 18 (8); u4 + v5 + c45 = 18 – 26 + 8 = 0.
9). Для занятой ячейки (4, 3); v3 = –22 (9); u4 + v3 + c43 = 18 – 22 + 4 = 0.
Найденные значения потенциалов заносим в рабочую таблицу (в
скобках указан номер шага их вычисления). В эту же таблицу во все
свободные ячейки заносим результаты вычисления оценок свободных ячеек
Δij = ui + vj + cij (выделены синим цветом).
ПН
ПО
A1 a1=16
A2 a2=15
A3 a3=14
A4 a3=15
B1
b1=6
24 30
6
10
25
5
B2
b2=12
2
12
28 29
16
22
13
44
24
B3
b3=13
–17 5
B5
b5=9
–11 15
–12
–18
ρ
–8
28
B4
b4=20
6
4
9
5
9–ρ
14
6
7+ρ
4
37 25
7
26
7–ρ
ui
u1=0(1)
u2=1(4)
u3=0(6)
8
u4=18(8)
13
2
vj
v1=–6(5) v2=–2(2) v3=–22(9) v4=–6(3) v5=–26(7)
Среди вычисленных оценок Δij есть отрицательные. Это значит, что
распределение поставок X(0) не оптимально.
Для
построения
очередного
распределения
поставок
выбираем
наибольшую по модулю отрицательную оценку Δ25 = –18, назначаем
перевозку x25 = ρ, по занятым ячейкам строим цикл пересчета (обозначен
красной линией) и находим такое максимальное ρ = 7, чтобы ни одна
перевозка не стала отрицательной.
В результате получаем очередное распределения поставок X(1):
ПН
X(1)
ПО
B1
B2
B3
B4
B5
u
b1=6 b2=12 b3=13 b4=20 b5=9 i
30
2
5
6
15
A1 a1=16
12
4
5
29
9
5
7
A2 a2=15
6
2
7
16
24
14
6
26
A3 a3=14
14
13
28
4
25
8
A4 a3=15
13
2
vj
Распределения поставок X(1) содержит восемь занятых клеток,
следовательно, оно – невырожденное. Значение целевой функции:
Z(X(1)) = 2·12+6·4+5·6+5·2+7·7+6·14+4·13+8·2 = 289.
Проверяем, является ли найденное распределения поставок X(1)
оптимальным. Для этого снова строим систему потенциалов ui и vj и
вычисляем оценки Δij.
ПН
ПО
A1 a1=16
A2 a2=15
A3 a3=14
A4 a3=15
B1
b1=6
24 30
5
B2
b2=12
2
12
28 29
6
10
16
22
24
7
13
26
28
B3
b3=13
5
1
6
10
9
14
4
B4
b4=20
6
4
5
2
6
14
19 25
B5
b5=9
7 15
7
7
18
26
8
ui
u1=0(1)
u2=1(4)
u3=0(7)
u4=0(8)
13
2
vj
v1=–6(5) v2=–2(2) v3=–4(9) v4=–6(3) v5=–8(6)
Среди вычисленных оценок Δij нет отрицательных. Это значит, что
распределение поставок X(опт) = X(1) оптимально: Z(X(опт)) = 289.
Оптимальный план перевозок от ПО до ПН с минимальными
суммарными затратами Zmin = 289 имеет вид:
X(опт)
ПО
ПН
B1
B2
B3
B4
B5
b1=6 b2=12 b3=13 b4=20 b5=9
30
2
5
6
15
A1 a1=16
12
4
5
29
9
5
7
A2 a2=15
6
2
7
16
24
14
6
26
A3 a3=14
14
13
28
4
25
8
A4 a3=15
13
2
4. Формулируем понятия цикла пересчета и оценки свободной клетки.
С использованием заполненных ячеек вычисляются потенциалы. При
этом к коэффициентам затрат таблицы поставок в каждой строке и столбце
прибавляются такие числа (потенциалы), чтобы коэффициенты затрат в
заполненных клетках стали равными нулю. Далее с использованием
потенциалов вычисляются оценки свободных клеток. Полученные данные
позволяют сделать вывод об оптимальности распределения поставок, а
именно: распределение поставок оптимально тогда и только тогда, когда
оценки всех свободных клеток неотрицательны.
Если очередное распределения поставок задачи не оптимально, то это
видно из того, что оценки некоторых свободных клеток отрицательны. В
этом случае для ячейки с максимальной по модулю отрицательной оценкой
следует по занятым ячейкам построить замкнутый цикл пересчета. В цикле
пересчета в ячейке с максимальной по модулю отрицательной оценкой
устанавливается поставка, равная по величине минимуму по ячейкам цикла
со знаком “минус”. После этого ячейка цикла, имевшая минимальное
значение, становится свободной, а свободная – занятой.
Задача 3. Задача динамического программирования.
Планируется распределение начальной суммы S0 = 80 усл. ед. между
четырьмя предприятиями, причем средства выделяются только в размерах,
кратных 20 усл. ед. Предполагается, что выделенные предприятию в начале
планового периода средства x приносят прибыль fk(x).
Считать, что:
1) прибыль fk(x), полученная от вложения средств в предприятие, не
зависит от вложения средств в другие предприятия;
2) прибыль, полученная от разных предприятий, выражается в
одинаковых условных единицах;
3) суммарная прибыль равна сумме прибылей, полученных от каждого
предприятия.
Функции fk(x) заданы в таблице:
x f1(x) f2(x) f3(x) f4(x)
20 14
2
2
10
40 15
5
4
11
60 18
6
8
16
80 19
7
12
22
Задание.
1. Определить, какое количество средств нужно выделить каждому
предприятию, чтобы суммарная прибыль была наибольшей (используйте
принцип оптимальности и уравнения Беллмана).
2. Приведите расчетные таблицы (возможно использование Excel).
3. Опишите особенности модели.
Решение.
Составляем математическую модель задачи. Пусть xk количество
средств, выделенных k-тому предприятию таким образом, что суммарная
4
прибыль F достигает максимума F =  f k (x k )  max при выполнении
k 1
условий
4
x
k 1
k
= 80, xk ≥ 0, xk  {20, 40, 60, 80}.
Распределение
средств
между
четырьмя
предприятиями
рассматривается как четырехшаговый процесс, на каждом шаге которого
выделяются средства xk соответствующему предприятию. При этом Sk –
нераспределенные средства после k-того шага. Первоначально S0 = 80, а
после четвертого шага все средства должны быть распределены, то есть
S4 = 0.
Для произвольного k (0 ≤ k ≤ 4) оставшиеся нераспределенными после
k-того шага средства Sk связаны с распределяемыми на этом шаге средствами
xk и
остатком средств
после предыдущего
шага
Sk–1
следующим
соотношением: Sk = Sk–1 – xk (k = 1,2,3,4).
Будем рассматривать Fk*(Sk–1) – условно оптимальную прибыль,
полученную от k-го, …, 4-го предприятий, если между ними оптимально
распределены средства Sk–1 (0 ≤ Sk–1 ≤ 80). Средства xk, распределяемые на kтом шаге, удовлетворяют условию 0 ≤ xk ≤ Sk–1 (k-тому предприятию либо
ничего не выделяется, либо выделяется не более того, что имеется к k-тому
шагу).
В соответствии с принципом оптимальности Беллмана, на каждом шаге
нужно выделять средства xk так, чтобы в совокупности с оптимальным
распределением на всех последующих шагах получить наибольшую
суммарную прибыль. Применение принципа оптимальности на каждом шаге
приводит к следующим уравнениям Беллмана:
(a) k = 4; S4 = 0; F4*(S3) = max {f4(x4)};
0 x 4 S3
(b) k = 3; F3*(S2) = max {f3(x3) + F4*(S3)};
0 x3 S2
(c) k = 2; F2*(S1) = max {f2(x2) + F3*(S2)};
0 x 2 S1
(d) k = 1; F1*(S0 = 80) = max {f1(x1) + F2*(S1)}.
0 x1 80
Эти уравнения следует решать последовательно, проводя условную
оптимизацию
предприятия.
на
каждом
шаге,
начиная
с
последнего
четвертого
Этап I. Условная оптимизация.
4-ый шаг; k = 4.
В исходной таблице f4(x) – возрастающая функция, поэтому все
средства, оставшиеся к четвертому шагу, необходимо для получения
максимальной прибыли вложить в это четвертое предприятие, то есть, в
соответствии с (a), имеем F4*(S3) = max {f4(x4)} = f4(S3); при этом x4*(S3) = S3.
0 x 4 S3
Распределяемые средства,
оставшиеся к четвертому шагу;
S3
Средства, выделяемые
четвертому предприятию;
x4
Остаток;
S4 = S3 – x4
Прибыль;
f4(x4)
F4*(S3)
x4*(S3)
0
20
40
60
80
0
20
40
60
80
0
0
0
0
0
0
10
11
16
22
0
10
11
16
22
0
20
40
60
80
3-ий шаг; k = 3.
Решаем уравнение (b). Делаем все предположения об остатках средств
S2 к третьему шагу. Остаток средств S2 может принимать значения 0, 20, 40,
60, 80. В зависимости от этого выбираем 0 ≤ x3 ≤ S2, находим S3 = S2 – x3 и
находим максимум выражения {f3(x3) + F4*(S3)}. Для каждого S2 наибольшее
из этих значений есть условно оптимальная прибыль, полученная при
оптимальном распределении средств S2 между третьим и четвертым
предприятиями.
S2
x3 S3 = S2 – x3 f3(x3) {f3(x3) + F4*(S3)} F3*(S2) x3*(S2)
0
0
0
0
0+0=0
0
0
20
0
20
20
0
0
2
0 + 10 = 10
2+0=2
10
0
0
40 20
40
40
20
0
0
2
4
0 + 11 = 11
2 + 10 = 12
4+0=4
12
20
0
20
60
40
60
60
40
20
0
0
2
4
8
0 + 16 =16
2 + 11 = 13
4 + 10 = 14
8+0=8
16
0
0
20
80 40
60
80
80
60
40
20
0
0
2
4
8
12
0 + 22 = 22
2 + 16 = 18
4 + 11 = 15
8 + 10 = 18
12 + 0 = 12
22
0
2-ой шаг; k = 2.
Решаем уравнение (c). Делаем все предположения об остатках средств
S1 ко второму шагу. Остаток средств S1 может принимать значения 0, 20, 40,
60, 80. В зависимости от этого выбираем 0 ≤ x2 ≤ S1, находим S2 = S1 – x2 и
находим максимум выражения {f2(x2) + F3*(S2)}. Для каждого S1 наибольшее
из этих значений есть условно оптимальная прибыль, полученная при
оптимальном распределении средств S1 между вторым, третьим и четвертым
предприятиями.
S1
x2 S2 = S1 – x2 f2(x2) {f2(x2) + F3*(S2)} F2*(S1) x2*(S1)
0
0
0
0
0+0=0
0
0
20
0
20
20
0
0
2
0 + 10 = 10
2+0=2
10
0
0
40 20
40
40
20
0
0
2
5
0 + 12 = 12
2 + 10 = 12
5+0=5
12
12
0
20
0
20
60
40
60
60
40
20
0
0
2
5
6
0 + 16 =16
2 + 12 = 14
5 + 10 = 15
6+0=6
16
0
0
20
80 40
60
80
80
60
40
20
0
0
2
5
6
7
0 + 22 = 22
2 + 16 = 18
5 + 12 = 17
6 + 10 = 16
7+0=7
22
0
1-ый шаг; k = 1.
Решаем уравнение (d). Учитывая то, что все средства должны быть
распределены полностью, расчетная таблица для этого шага упрощается. К
первому шагу размер средств равен S0 = 80. В зависимости от этого
выбираем 0 ≤ x1 ≤ S0, находим S1 = S0 – x1 и находим максимум выражения
{f1(x1) + F2*(S1)}. Для данного S0 = 80 наибольшее из этих значений есть
условно оптимальная прибыль, полученная при оптимальном распределении
средств S0 между всеми предприятиями.
S0
x1 S1 = S0 – x1 f1(x1) {f1(x1) + F2*(S1)} F1*(S0) x1*(S0)
0
20
80 40
60
80
80
60
40
20
0
0
14
15
18
19
0 + 22 = 22
14 + 16 = 30
15 + 12 = 27
18 + 10 = 28
19 + 0 = 19
30
20
Этап II. Безусловная оптимизация.
Из последней таблицы получаем:
а) F1*(S0) = F1*(80) = 30; это значение представляет собой наибольшую
суммарную
прибыль,
которую
можно
получить
при
распределении
начальной суммы S0 = 80 усл. ед. между четырьмя предприятиями.
б) наибольшей суммарная прибыль будет при x1*(S0) = x1*(50) = 20, то
есть при выделении первому предприятию средств в объеме 20 усл. ед.
После этого остаток средств составит 80 – 20 = 60 усл. ед.
Из
предпоследней
таблицы,
соответствующей
второму
шагу,
определяем, что максимальная прибыль при количестве средств 60 усл. ед.
равна 16. Из этой же таблицы получаем, что второму предприятию средства
не выделяются.
После этого остаток средств составит 60 – 0 = 60 усл. ед.
Из таблицы, соответствующей третьему шагу, определяем, что
максимальная прибыль при количестве средств 60 усл. ед. равна 16. Из этой
же таблицы получаем, что третьему предприятию средства не выделяются.
После этого остаток средств составит 60 – 0 = 60 усл. ед. Эти средства
выделяются четвертому предприятию.
Окончательный результат состоит в том, что для получения
наибольшей суммарной прибыли средства в объеме 80 усл. ед. следует
распределить между предприятиями следующим образом:
1) первому предприятию выделить 20 усл. ед.; прибыль 14 усл. ед.;
2) второму предприятию средства не выделять; прибыли нет;
3) третьему предприятию средства не выделять; прибыли нет;
4) четвертому предприятию выделить 60 усл. ед.; прибыль 16 усл. ед.
При этом наибольшая суммарная прибыль составит 30 усл. ед.
Download