Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Система компьютерной математики Octave. Лабораторный практикум

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Значения полей
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
++
).
найти точки локаль
.
-
-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]