Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Система компьютерной математики Octave. Лабораторный практикум
.pdf
Значения полей
lambda
и
redcosts
используются при анализе чувствительности решения к изменению параметров задачи. Анализ чувствительности
позволяет получить ответ на вопрос: как изменится найденное оптимальное
решение задачи линейного программирования при незначительном изменении
исходных данных. Как правило, пользователя интересует следующее:
– как изменится решение, если изменится количество ресурса – значения
вектора правых частей?
– как изменится решение, если изменятся коэффициенты целевой функции?
Разберем эти моменты на примере решения следующей задачи.
Условие. Али-Баба пришел в пещеру, где есть золото, алмазы и сундук,
в котором их можно унести. Полный сундук золота весит 200 кг, полный сундук алмазов – 40 кг, пустой сундук ничего не весит. Килограмм золота стоит на
рынке 20 динаров, килограмм алмазов – 60 динаров. Али-Баба может поднять и
унести не более 100 кг. Какое максимальное количество денег он сможет получить за сокровища, принесенные из пещеры за один раз?
Решение. Предположим, что Али-Баба смог унести из пещеры x кг золота и
y кг алмазов. В этом случае он сможет получить 20x + 60y динаров. Поскольку
Али-Баба может поднять не более 100 кг, то x + y <= 100.
Кроме того, 1 кг золота занимает 1/200 часть сундука, а 1 кг алмазов занимает 1/40 часть сундука. Значит, взятые Али-Бабой сокровища займут x/200 +
y/40 часть сундука. В распоряжении Али-Бабы только один сундук, поэтому
получаем новое ограничение на количество взятого им сокровища:
x/200 + y/40 <= 1
или, умножив последнее неравенство на 200,
x + 5y <= 200.
Итак, получаем задачу линейного программирования: найти максимум целевой функции F(x,y) = 20x + 60y при ограничениях
x + y <=100;
x + 5y <=200;
x >= 0; y >= 0.
Составим программу для Octave:
C = [20; 60];
A = [1,1; 1,5];
B = [100; 200];
[xopt, fmax, errnum, extra] = ...
glpk(C, A, B, [], [], 'UU','CC', -1)
Получим
xopt =
75
25
fmax = 3000
errnumM = 0
extra =
scalar structure containing the fields:
60

lambda =
10
10
redcosts =
0
0
time = 0
status = 5
Ненулевые значения
lambda
означают, что для каждого ограничения решение находится на границе полуплоскости, задаваемой этим ограничением. Если
какой-то компонент вектора
lambda
равен нулю, то это означает, что соответ-
ствующее ограничение не влияет на результат.
Кроме того, значение lambda(i) равно величине изменения целевой
функции в точке экстремума при изменении правой части i-того ограничения на
1. В нашем случае, если бы Али-Баба смог унести сундук весом 101 кг, то он
выручил бы на 10 динаров больше. Решение в этом случае имело бы вид:
xopt =
76.250
24.750
fmax = 3010
errnum = 0
Если же увеличить допустимый вес сундука до 110 кг, то результат будет
равен 3100 динаров, т. е. приращение составит 10·10 = 100 динаров. Новое решение имеет вид:
xopt =
87.500
22.500
fmax = 3100
errnum = 0
Т. е. мы видим, что выигрыш достигается за счет увеличения количества
взятого золота и уменьшения количества алмазов (несмотря на то, что они дороже!). Если же Али-Баба сможет поднять только 90 кг, то он должен взять
меньше золота и больше алмазов:
xopt =
62.500
27.500
fmax = 2900
errnum = 0
Заметим, что указанная зависимость справедлива, пока при изменении правых частей ограничений не изменяется структура решения, т. е. набор ограничений с ненулевыми значениями
Рассмотрим теперь поле
lambda
redcosts
.
(сокращение от reduced costs – приве-
денные затраты/цены). Приведенная цена redcosts(i) – это величина, на ко-
61

торую должен измениться коэффициент c(i), чтобы стало выгодным увеличение
значения x(i). Заметим, что ненулевые значения приведенной цены всегда соответствует нулевым значениям x(i) в точке оптимума.
Изменим условия задачи. Предположим, что цена на золото на рынке снизилась до 10 динаров за кг. Изменим программу:
C = [10; 60];
A = [1,1; 1,5];
B = [100; 200];
[xopt, fmax, errnum, extra] = ...
glpk(C, A, B, [], [], 'UU','CC', -1)
и посмотрим на результат:
xopt =
0
40
fmax = 2400
errnum = 0
extra =
scalar structure containing the fields:
lambda =
0
12
redcosts =
-2
0
time = 0
status = 5
Мы видим, что в этом случае Али-Баба должен взять полный сундук алмазов (40 кг). Переменной x(1) соответствует ненулевое значение redcosts(1),
равное -2. Это значит, что если x(1) увеличить на единицу, то значение целевой
функции уменьшится на 2. Чтобы компенсировать это уменьшение, нужно увеличить цену золота (коэффициент c(1)) по крайней мере на 2. Проверим это.
При C = [12; 60] значение x(1) еще равно нулю, но redcosts(1) уже равно
нулю. Оптимальное решение в этом случае теоретически может быть неоднозначным – это отрезок прямой, соединяющий точки (0; 40) и (75; 25). Однако
Octave "выдает" решение
xopt =
0
40
fmax = 2400
errnum = 0
extra =
scalar structure containing the fields:
lambda =
0
62

+
3
12
redcosts =
0
0
При C = [12.01; 60] решение "перескакивает" на другой конец отрезка:
xopt =
75
25
fmax = 2400.8
errnum = 0
extra =
scalar structure containing the fields:
lambda =
0.012500
11.997500
redcosts =
0
0
Варианты заданий к лабораторной работе № 4
Вариант 1
А) Найти точки локальных экстремумов для
23
.
179)(
++= xxxP
Б) Построить график и найти значения глобального минимума и глобального максимума функции
2
на отрезке [1; 4].
)2cos21()(
xxxf −=
yx
В) Для функции двух переменных
),(
yxf
=
++
найти точки ло
24
21
yx
кальных экстремумов и соответствующие значения целевой функции на прямо
угольнике
Г) Решить задачу линейного программирования
[-1; 1]x[0; 2],
включая его границу
.
.
Турист, собираясь в поход, решает взять с собой следующие продукты
мясные консервы, крупу, сухое молоко и сахар. Вес и объем продуктов не
должны превышать: вес
приведены в таблице
Характеристики
Объем, дм
/кг 1 1,5 2 1
Калорийность, ккал/кг
.
1500 3000 5000 4000
– 20 кг,
объем
Мясо
– 30
3
дм
.
Продукты
Крупа
Характеристики продуктов
Молоко
Сахар
Сколько и каких продуктов нужно положить в рюкзак, чтобы суммарная ка
лорийность продуктов была наибольшей, если турист хочет взять не менее
мясных консервов и не менее
*
Дополнительно исследовать чувствительность оптимального решения
к изменению параметров задачи
Вариант
2
10 кг
.
крупы
?
4 кг
-
-
:
-
63

)3sin2()(xxxf
+
=
−
xxx
f
3
cos)sin1()(
+
=
А) Найти точки локальных экстремумов для
24
Б) Построить график и найти значения глобального минимума и глобального максимума функции
на отрезке
[1; 2].
.
2425122)(
++−= xxxxP
В) Для функции двух переменных
),(
yxf
=
++
найти точки ло
44
31
yx
кальных экстремумов и соответствующие значения целевой функции на круге
xy
радиуса
Первый экскаватор за час вынимает
Второй экскаватор
2 с
центром в точке
x=1; y=-2 (
включая его границу
Г) Решить задачу линейного программирования
Для рытья котлована объемом
– 10
3
м
грунта и
1080
4 л
3
м
строители получили три экскаватора
22,5
3
м
грунта и расходует
бензина, третий
.
– 5
).
3
м
грунта и
10 л
бензина
2 л
бен
зина. Экскаваторы могут работать все одновременно, не мешая друг другу. За
пас бензина у строителей ограничен и равен
пользовать имеющуюся технику, чтобы выполнить работу как можно скорее
*
Дополнительно исследовать чувствительность оптимального решения
к изменению параметров задачи
.
460 л.
Каким образом следует ис
?
Вариант 3
А) Найти точки локальных экстремумов для
34
.
2845)(
++−= xxxP
Б) Построить график и найти значения глобального минимума и глобально
x
го максимума функции
−
+=
на
отрезке
xexf
2sin)1()(
[-2; 2].
-
.
.
-
-
-
-
В) Для функции двух переменных
),(
yxf
=
1
найти точки локаль
22
yx
++
ных экстремумов и соответствующие значения целевой функции на прямо
yx
угольнике
Г) Решить задачу линейного программирования
[-2; 1]x[0; 3],
включая его границу
.
.
Цех выпускает трансформаторы двух типов. На трансформатор типа А рас
ходуется
трат. На трансформатор типа В
затрат. Прибыль от реализации трансформатора типа А составляет
трансформатора типа В
5 кг
трансформаторного железа
– 130
– 4 кг
руб. Какие трансформаторы и в каком количестве
железа
, 3 кг
, 2 кг
проволоки и
проволоки и
4
чел-час трудоза
3
чел-час трудо
190
руб
., а
следует изготовить, чтобы получить максимальную прибыль, если цех имеет в
наличии
к изменению параметров задачи
500 кг
*
Дополнительно исследовать чувствительность оптимального решения
железа
, 290 кг
проволоки и не более
400
чел-час
?
.
Вариант 4
А) Найти точки локальных экстремумов для
24
.
76958)(
+++−= xxxxP
Б) Построить график и найти значения глобального минимума и глобально
го максимума функции
на
отрезке
[-2; 1].
-
-
-
-
-
-
64

−
+
В) Для функции двух переменных
),(
yxf
=
++
xy
найти точки ло
24
21
yx
-
кальных экстремумов и соответствующие значения целевой функции на круге
радиуса
1 с
центром в точке
x=-1; y=0 (
включая его границу
Г) Решить задачу линейного программирования
).
.
Чаеразвесочная фабрика выпускает чай сортов А и Б, смешивая три ингре
диента: индийский, грузинский и краснодарский чай. В таблице приведены
нормы расхода и запасы каждого ингредиента, а также прибыль от реализации
1 т
чая каждого сорта
Ингредиенты
Индийский чай
Грузинский чай
0,5 0,2 600
0,2 0,6 870
Краснодарский чай
Прибыль от реализации
.
Нормы расхода (т/т
А
Б
)
Объем
запаса (т
0,3 0,2 430
1 т 320 290
)
Требуется составить такой план производства чая сортов А и Б, чтобы по
лучить максимальную суммарную прибыль
*
Дополнительно исследовать чувствительность оптимального решения
к изменению параметров задачи
.
.
Вариант 5
А) Найти точки локальных экстремумов для
34
.
37367)(
+++= xxxxP
-
-
Б) Построить график и найти значения глобального минимума и глобально
го максимума функции
В) Для функции двух переменных
xxxf
2sin)4()( −= на
отрезке
),(
yxf
=
1
[0; 2].
)21(
yx
24
yx
++
найти точки локаль
ных экстремумов и соответствующие значения целевой функции на прямо
угольнике
Г) Решить задачу линейного программирования
[-1; 2]x[-3; 0],
включая его границу
.
.
Цех выпускает три вида деталей, которые изготавливаются на трех станках
На рисунке показана технологическая схема изготовления детали каждого вида
с указанием времени ее обработки на станках. Суточный ресурс рабочего вре
мени станков
одной детали вида
1, 2 и 3
Станок
составляет соответственно
1, 2 и 3
1
равна соответственно
Станок
2
Станок
890, 920 и 840
30, 10 и 20
3
мин. Стоимость
руб
.
1
мин
3
мин
1
мин
Деталь
1
2
мин
4
мин
Деталь
2
1
мин
2
мин
Деталь
3
-
-
-
.
-
65

(
)
+
+
(
)
+
Требуется так составить суточный план производства, чтобы стоимость выпущенной продукции была максимальной.
*Дополнительно исследовать чувствительность оптимального решения
к изменению параметров задачи.
Вариант 6
А) Найти точки локальных экстремумов для
23
.
11215)(
++= xxxP
Б) Построить график и найти значения глобального минимума и глобального максимума функции
В) Для функции двух переменных
2
13)( xxxf +−= на
),(
yxf
отрезке
=
1
[-1; 4].
21
++
yx
24
yx
найти точки локаль
-
ных экстремумов и соответствующие значения целевой функции на круге ра
диуса
2 с
центром в точке
x=-2; y=-1 (
включая его границу
Г) Решить задачу линейного программирования
).
.
Кондитерская фабрика для производства трех видов карамели А, В и С ис
пользует три вида основного сырья: сахар, патоку и фруктовое пюре. Нормы
расхода сырья каждого вида на производство
общее количество сырья каждого вида, а также прибыль от реализации
рамели конкретного вида приведены в таблице
1 т
карамели определенного вида
.
1 т ка-
Вид сырья
Сахар
Патока
Фруктовое пюре
0,8 0,5 0,6 800
0,4 0,4 0,3 600
– 0,1 0,1 120
Прибыль от реализации
тыс. руб
.
1 т
продукции
Нормы расхода сырья, т
на
1 т
карамели
А
,
54 56 63
В
,
Общее
С
кол-во
сырья, т
Составить такой план производства карамели, при котором будет дости
гаться максимальная прибыль
*
Дополнительно исследовать чувствительность оптимального решения
к изменению параметров задачи
Вариант
7
А) Найти точки локальных экстремумов для
.
.
35
.
1114173)(
+++−= xxxxP
-
-
,
-
Б) Построить график и найти значения глобального минимума и глобально
го максимума функции
В) Для функции двух переменных
3
−=
на
отрезке
xxxf 2cos1)(
),(
yxf
=
1
2
[1; 4].
yx
22
yx
++
найти точки локаль
ных экстремумов и соответствующие значения целевой функции на прямо
угольнике
Г) Решить задачу линейного программирования
[-2; 2]x[0; 2],
включая его границу
66
.
-
-
-

+
Из листового проката надо вырезать заготовки двух типов А и В для производства 60 штук изделий. На одно изделие требуются 3 заготовки типа А и 8 заготовок типа В. Имеются четыре варианта раскроя листового материала, характеристики которых (возможное количество заготовок каждого типа и величина
получающихся отходов) приведены в таблице.
Тип заготовки Количество заготовок для каждого варианта раскроя
1 2 3 4
А 4 3 2 1
В 0 4 6 10
Отходы, м2 8 5 3 0
Найти такой план раскроя, чтобы суммарные отходы были минимальными.
*Дополнительно исследовать чувствительность оптимального решения
к изменению параметров задачи.
Вариант 8
А) Найти точки локальных экстремумов для
24
.
216819)(
+−−= xxxxP
Б) Построить график и найти значения глобального минимума и глобального максимума функции
В) Для функции двух переменных
1)( −=xexf на
отрезке
),(
yxf
[-2; 1].
2
=
1
yx
22
yx
++
найти точки локаль
ных экстремумов и соответствующие значения целевой функции на круге ра
диуса
1 с
центром в точке
x=0; y=-1 (
включая его границу
Г) Решить задачу линейного программирования
).
.
Для серийного изготовления детали механический цех может использовать
пять различных технологий ее обработки на токарном, фрезерном, строгальном
и шлифовальном станках. В таблице указано время обработки детали на каж
дом станке в зависимости от технологического способа, а также общий ресурс
рабочего времени станков каждого вида за одну смену
Станки
Токарный
Фрезерный
Строгальный
2 1 3 1 0 3 000
1 0 2 3 1 2 000
1 2 0 4 2 6 000
Шлифовальный
Технологические способы
1 2 3 4 5
3 4 2 1 1 9 000
.
Ресурс времени, мин
Требуется указать, как следует использовать имеющиеся технологии, чтобы
добиться максимального выпуска продукции
*
Дополнительно исследовать чувствительность оптимального решения
к изменению параметров задачи
.
.
-
-
-
67

Вариант 9
А) Найти точки локальных экстремумов для
345
.
4544673)(
++−+= xxxxxP
Б) Построить график и найти значения глобального минимума и глобального максимума функции
В) Для функции двух переменных
3
на отрезке [-3; 2].
xxxf 5)(
−=
),(
yxf
=
2
yx
+
1
найти точки локаль-
42
yx
++
ных экстремумов и соответствующие значения целевой функции на прямоугольнике [-1; 2]x[0; 4], включая его границу.
Г) Решить задачу линейного программирования.
Нефтеперерабатывающий завод производит за месяц 1 500 000 л алкилата,
1 200 000 л крекинг-бензина и 1 300 000 л изопентона. В результате смешивания этих компонентов в пропорции 1 : 1 : 1 и 3 : 1 : 2 получается бензин сортов
А и В соответственно. Стоимость 1000 л бензина сорта А равна 7000 руб., сорта
В – 9000 руб. Определить месячный план производства бензинов так, чтобы
стоимость выпущенной продукции была максимальной.
*Дополнительно исследовать чувствительность оптимального решения
к изменению параметров задачи.
Вариант 10
А) Найти точки локальных экстремумов для
235
.
23626196)(
++−−= xxxxxP
Б) Построить график и найти значения глобального минимума и глобального максимума функции
В) Для функции двух переменных
2
3)(
−= xxf на
отрезке
),(
yxf
[1; 3].
=
1
2
yx
+
найти точки локаль
24
yx
++
ных экстремумов и соответствующие значения целевой функции на круге ра
диуса
2 с
центром в точке
x=-2; y=1 (
включая его границу
Г) Решить задачу линейного программирования
).
.
При откорме животных каждое животное должно ежедневно получать не
менее
60 ед.
питательного вещества А, не менее
50 ед.
вещества В и не менее
12
ед. вещества С. При этом используются три вида корма. Содержание питатель
ных веществ, а также цена для
в таблице
Питательные
.
вещества
А
1 3 4
В
2 4 2
С
1 4 3
Кол-во единиц питательных веществ в
I
1 кг
вид
II
каждого из видов корма приведены
1 кг
вид
III
корма вида
вид
Цена
1 кг,
руб
. 9 12 10
-
-
-
68

+
−
Составить дневной рацион, обеспечивающий получение необходимого количества питательных веществ при минимальных денежных затратах.
*Дополнительно исследовать чувствительность оптимального решения
к изменению параметров задачи.
Вариант 11
А) Найти точки локальных экстремумов для
245
.
14395)(
−−−+= xxxxxP
Б) Построить график и найти значения глобального минимума и глобально-
x
го максимума функции
)( =
В) Для функции двух переменных
3sin
на отрезке [1; 3].
exf
3
yx
),(
yxf
=
1
найти точки локаль-
22
yx
++
ных экстремумов и соответствующие значения целевой функции на прямоугольнике [-2; 2]x[-2; 0], включая его границу.
Г) Решить задачу линейного программирования.
В пекарне для выпечки четырех видов хлеба используется мука двух сортов,
маргарин и яйца. Имеющееся оборудование, производственные площади
и поставки продуктов таковы, что в сутки можно переработать не более 330 кг
муки первого сорта, 150 кг муки второго сорта, 80 кг маргарина и 1600 яиц. В
таблице приведены нормы расхода продуктов, а также прибыль от продажи 1 кг
хлеба каждого вида.
Наименование продукта Нормы расхода на 1 кг хлеба каждого вида
I вид II вид III вид IV вид
Мука первого сорта, кг 0.5 0.5 0 0
Мука второго сорта, кг 0 0 0.5 0.5
Маргарин, кг 0.125 0 0 0.125
Яйца, шт. 2 1 1 1
Прибыль, руб/кг 14 12 5 6
Требуется определить суточный план выпечки хлеба, максимизирующий
прибыль.
*Дополнительно исследовать чувствительность оптимального решения
к изменению параметров задачи.
Вариант 12
А) Найти точки локальных экстремумов для
234
.
26226)(
+++= xxxxP
Б) Построить график и найти значения глобального минимума и глобально-
го максимума функции
В) Для функции двух переменных
ных экстремумов и соответствующие значения целевой функции на круге ра
диуса
2 с
центром в точке
x=0; y=2 (
включая его границу
Г) Решить транспортную задачу линейного программирования
2
1cos)( xxxf += на
69
),(
yxf
отрезке
=
1
[-1; 2].
3
yx
22
yx
++
).
найти точки локаль
.
-
-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
