Конспект_лекц_Кишкурно
.pdfЛЕКЦИЯ 10
РЕШЕНИЕ ИНЖЕНЕРНО-ЭКОНОМИЧЕСКИХ ЗАДАЧ НА БАЗЕ MATHCAD
Задачи поиска условного экстремума функции многих переменных часто встречаются в экономических расчетах для минимизации издержек, финансовых рисков, максимизации прибыли и т. п. Целый класс экономических задач оптимизации описывается системами линейных уравнений и неравенств. Они называются задачами линейного программирования. Для решения задач линейного программирования разработан целый ряд эффективных методов, алгоритмов и программ с использованием системы MathCAD.
Общей задачей линейного программирования называется задача,
которая состоит в определении максимального (минимального) значения функции
n |
|
|
F |
c j x j |
(1) |
j 1 |
|
|
при условиях |
|
|
n |
|
|
aij xi |
bi ; |
|
i =1 |
|
|
(2) |
|
|
xi ≥ 0, |
|
(3) |
где aij , bi , cj – заданные постоянные величины.
Функция (1) называется целевой функцией (или линейной формой) за-
дачи (1)–(3), а условия (2)−(3) – ограничениями данной задачи. Совокупность чисел X = (x1, x2, …, xn), удовлетворяющих огра-
ничениям задачи (2)–(3), называется допустимым решением (или
планом).
План X* = (x1*, x2*, …, xn*), при котором целевая функция задачи (1) принимает свое максимальное (минимальное) значение, называ-
ется оптимальным.
В пакете MathCAD для поиска экстремума функции многих переменных y = f (x1, x2, , xn ) имеются встроенные функции Minimize и
Maximize. С помощью этих функций решается задача поиска ло-
81
кальных экстремумов функции. Рассматриваемые встроенные
функции имеют следующий синтаксис: Minimize( f , x1, x2 , , xn ) |
и |
||
Maximize( f , x1, x2 , |
, xn ) . |
|
|
Здесь f |
– имя |
функции, для которой находится экстремум, |
а |
x1, x2 , , xn |
– имена переменных, по которым выполняется поиск. При |
этом необходимо указать начальное приближение к искомой точке экс-
тремума в виде: x |
x0 |
, |
x |
x0 |
, …, |
x |
x0 |
. Указанное требование в об- |
1 |
1 |
|
2 |
2 |
|
n |
n |
|
щем случае может оказаться весьма непростой задачей для функции многих переменных.
Рассмотрим задачу поиска экстремума функции двух перемен-
ных F = c1x1 + c2x2 при условиях ai1x1 + ai2x2 ≤ bi, i = (1, …, m), xj ≥ 0, j = (1; 2) на примере.
Для производства двух видов изделий – А и В – лесхоз использует три вида сырья (доска, брус, бревно). Нормы расхода сырья каждого вида на изготовление единицы продукции данного вида приведены в табл. 10.1. В ней указана прибыль от реализации одного изделия каждого вида и общее количество сырья данного вида, которое может быть использовано лесхозом.
|
|
|
Таблица 10.1 |
|
Данные для расчета оптимального плана выпуска продукции в лесхозе |
||||
|
|
|
|
|
|
Нормы расхода сырья |
Общее |
||
|
на одно изделие, м3 |
|||
Виды сырья |
количество |
|||
|
|
|||
|
А |
B |
сырья, м3 |
|
|
|
|||
|
|
|
|
|
Доска |
12 |
4 |
300 |
|
|
|
|
|
|
Брус |
4 |
4 |
120 |
|
|
|
|
|
|
Бревно |
3 |
12 |
252 |
|
|
|
|
|
|
Прибыль, у. е. |
30 |
40 |
– |
|
|
|
|
|
Учитывая, что изделия А и В могут производиться в любых соотношениях (сбыт обеспечен), требуется составить такой план их выпуска, при которых прибыль от реализации всех видов изделий является максимальной.
Решение: предположим, что лесхоз изготовит х1 изделий вида А и х2 изделий вида В. Поскольку производство продукции ограничено имеющимися в распоряжении лесхоза сырьем каждого вида и количество изготавливаемых изделий не может быть отрицательным, должны выполняться неравенства:
82
12x1 + 4x2 ≤ 300 |
|
|
4x1 |
+ 4x2 ≤ 120 |
x1, x2 > 0 |
3x1 |
+ 12x2 ≤ 252 |
|
Общая прибыль от реализации x1 изделий вида А и x2 изделий вида В составит: F = 30x1 + 40x2. Таким образом, мы приходим к следующей математической задаче: среди всех неотрицательных решений требуется найти такое, при котором функция принимает максимальное значение.
Для поиска экстремума функции в пакете MathCAD необходимо использовать блок Given, как показано ниже.
Запишем целевую функцию:
F(x1 x2) |
30 x1 |
40 x2 |
|
||
x1 |
10 |
x2 20 |
|
–- начальные приближения; |
|
Given |
|
|
|
|
|
x1 |
0 |
x2 |
0 |
|
|
12 x1 |
4 x2 |
300 |
|
|
–- блок решений и ограничений; |
4 x1 |
4 x2 |
120 |
|
|
|
|
|
|
|||
3 x1 |
12 x2 |
252 |
|
|
|
R |
Maximize(F x1 x2) |
12 |
|||
|
|
|
|
|
R |
F R0 R1 |
1.08 |
10 |
3 |
18 |
|
– |
|||||
|
|
|
|
- максимальная прибыль. |
Чтобы получить максимальную прибыль 1080 усл. ед., необходимо произвести изделия А (х1) 12 шт., изделия В (х2) – 18 шт.
Рассмотрим другую задачу линейного программирования, используемую в экономических и производственных расчетах.
Цех предприятия должен изготовить 100 изделий трех типов (табл. 10.2). Каждого изделия нужно не менее 20 штук. На изделие уходит соответственно 4, 5 и 2 кг однородного металла при его общем запасе 340 кг, а также по 5, 9 и 2 кг пластмассы при ее общем запасе 700 кг. Сколько изделий каждого типа надо выпустить для получения максимального объема в денежном выражении, если цена изделия составляет по калькуляции 4, 3 и 2 усл. ед.?
Данная производственная задача тоже сводится к задаче вычисления максимума функции с ограничениями.
83
Таблица 10.2
Данные для расчета оптимального плана выпуска продукции на предприятии
|
Нормы расхода сырья на |
Общее количество |
|||
Виды сырья |
одно изделие, м3 |
||||
|
|
|
сырья, м3 |
||
Тип 1 |
Тип 2 |
Тип 3 |
|||
|
|
||||
|
|
|
|
|
|
Металл |
4 |
5 |
2 |
340 |
|
|
|
|
|
|
|
Пластмасса |
5 |
9 |
2 |
700 |
|
|
|
|
|
|
|
Цена изделий, тыс. руб. |
4 |
3 |
5 |
– |
|
|
|
|
|
|
|
Количество изделий |
>20 |
>20 |
>20 |
100 |
|
|
|
|
|
|
Обозначим как х1, х2 и х3 количество изделий 1-го, 2-го и 3-го видов.
Запишем целевую функцию:
f (x1 x2 |
x3) |
4 x1 |
3 x2 |
2 x3 |
|
||||||
x1 |
1 |
|
x2 |
1 |
x3 |
1 |
– |
|
|||
|
|
|
|
|
|
|
|
|
- н ачальные приближения; |
||
|
Given |
|
|
|
|
|
|
||||
x1 |
20 |
|
x2 |
20 |
|
x3 |
20 |
|
|||
4 x1 |
5 x2 |
2 x3 |
340 |
|
|
|
|||||
5 x1 |
9 x2 |
2 x3 |
700 |
|
–- блок решений и ограничений; |
||||||
x1 |
x2 |
x3 |
|
|
100 |
|
|
|
40 |
||
|
|
|
|
|
|||||||
|
|
|
|
|
|||||||
R |
Maximize(f x1 x2 x3) |
|
|||||||||
R |
20 |
||||||||||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
40 |
|
f R0 |
|
R1 R2 |
300 |
–-максимальная прибыль. |
Полученное решение: изделия х1 должно быть 40 шт., изделия х2 – 20 шт., изделия х3 – 40 шт., чтобы получить максимальную прибыль в 300 усл. ед.
Транспортная задача – еще одна задача линейного программирования. Общая постановка транспортной задачи состоит в определении оптимального плана перевозок некоторого однородного груза из m пунктов отправления А1, A2, ..., Аm в n пунктов назначения В1, В2, …, Вn. При этом в качестве критерия оптимальности обычно берется либо минимальная стоимость перевозок всего груза, либо минимальное время его доставки.
84
Рассмотрим транспортную задачу, в качестве критерия оптимальности которой взята минимальная стоимость перевозок всего груза. Обозначим через сij тарифы перевозки единицы груза из i-го пункта отправления в j-й пункт назначения, через аi – запасы груза в i-м пункте отправления, через bj – потребности в грузе в j-м пункте назначения, а через xij – количество единиц груза, перевозимого из i-го пункта отправления в j-й пункт назначения. Тогда математическая постановка задачи состоит в определении минимального значения функции
m |
n |
m |
n |
F |
c x , |
xij bj , |
xij ai |
|
ij ij |
|
|
i 1 |
j 1 |
i 1 |
i 1 |
при условиях |
|
|
|
(i = 1…m), (j = 1…n), |
xij ≥ 0. |
|
Поскольку переменные хij удовлетворяют записанным системам линейных уравнений и условию неотрицательности, всякое неотрицательное решение этих систем линейных уравнений обеспечивает доставку необходимого количества груза в каждый из пунктов назначения, вывоз имеющегося груза из всех пунктов отправления; исключаются обратные перевозки.
План, при котором целевая функция F принимает свое мини-
мальное значение, называется оптимальным планом транспорт-
ной задачи. Обычно исходные данные транспортной задачи записывают в виде табл. 10.3. Очевидно, общее наличие груза у по-
|
m |
|
ставщиков равно |
a i , |
а общая потребность в грузе в пунктах |
|
i 1 |
|
|
|
n |
назначения составляет |
bj . Если общая потребность в грузе в |
|
|
|
j 1 |
пунктах назначения равна запасу груза в пунктах отправле ния,
m |
n |
|
т. е. |
ai = |
bj , то модель такой транспортной задачи называется |
i 1 |
j |
1 |
закрытой. Если же указанное условие не выполняется, то модель транспортной задачи называется открытой.
85
|
|
|
|
|
|
|
Таблица 10.3 |
Исходные данные для решения транспортной задачи |
|
||||||
|
|
|
|
|
|
|
|
Пункты |
|
Пункты назначения |
|
|
Запасы |
||
отправления |
B1 |
… |
Bj |
… |
Bn |
|
|
|
|
||||||
A1 |
c11 |
… |
c1j |
… |
c1n |
|
a1 |
… |
… |
… |
… |
… |
… |
|
… |
Ai |
ci1 |
… |
cij |
… |
cin |
|
ai |
… |
… |
… |
… |
… |
… |
|
… |
Am |
cm1 |
… |
cmj |
… |
cmn |
|
am |
Потребности |
b1 |
… |
bj |
… |
bn |
|
– |
Рассмотрим простую закрытую транспортную задачу с не-
большим числом неизвестных: m = 2, n = 3. На две базы поступил однородный груз в количествах, соответственно равных 40 и 50 ед. Этот груз требуется перевезти в три пункта назначения В1, В2, В3 в количествах, соответственно 40, 30 и 20 ед. Тарифы перевозок единицы груза с каждого из пунктов отправления в соответствующие пункты назначения указаны в таблице.
Составить план перевозок, обеспечивающий минимальную общую стоимость перевозок.
Исходные данные закрытой транспортной задачи представим в виде табл. 10.4.
|
|
|
|
|
|
Таблица 10.4 |
Исходные данные для решения закрытой транспортной задачи |
||||||
|
|
|
|
|
|
|
Пункты |
|
Пункты назначения |
|
Запасы |
||
отправления |
B1 |
|
B2 |
|
B3 |
|
|
|
|
||||
A1 |
8 |
|
6 |
|
7 |
40 |
A2 |
3 |
|
5 |
|
9 |
50 |
Потребности |
40 |
|
30 |
|
20 |
– |
Для набора листинга решения исходной задачи необходимы две палитры: Булево и Вычисления. Запись транспортной задачи в окне редактора MathCAD имеет следующий вид:
Тарифы – стоимости перевозки единицы продукта от первого поставщика (A1) потребителям 1, 2, 3 (B1, B2, B3):
с11:=8 с12:=6 c13:=7
Тарифы – стоимости перевозки единицы продукта от второго поставщика (A2) потребителям 1, 2, 3 (B1, B2, B3):
c21:=3 c22:=5 c23:=9
86
Количество продукта у 1-го и 2-го поставщиков: a1:=40 a2:=50
Потребности потребителей 1-го, 2-го, 3-го: b1:=40 b2:=30 b3:=20
Общие затраты на перевозку (целевая функция):
f(x11,x12,x13,x21,x22,x23):=c11∙x11+c12∙x12+c13∙x13+c21∙x21+
+c22∙x22+c23∙x23
Начальные приближения:
x11:=40 x12:= 0 x13:=0 x21:=0 x22:=30 x23:=20
Блок решений и ограничений:
Given
Условие равенства вывозимого продукта запасам у 1-го и 2-го поставщиков:
x11+x12+x13═a1
x21+x22+x23═a2
Условие равенства доставленного продукта потребностям 1-го, 2-го и 3-го потребителей:
x11+x21═b1
x12+x22═b2
x13+x23═b3
Физический смысл транспортной задачи: x11≥0 x12≥0 x13≥0 x21≥0 x22≥0 x23≥0
Минимизация: c:=Minimize(f,x11,x12,x13,x21,x22,x23)
0
20
В результате мы получим вектор решений: c
20
40
10
0
87
Учитывая следующее соответствие коэффициентов: x11:= c0 x12:=c1 x13:=c2 x21:=c3 x22:=c4 x23:=c5
Транспонируем вектор решений: cT ( 0 20 20 40 10 0 )
Минимальные затраты на перевозку: f c0 c1 c2 c3 c4 c5 430
D=430
Оптимальный план представлен в табл. 10.5.
Таблица 10.5
Оптимальный план перевозок
Пункты |
|
Пункты назначения |
|
Запасы |
||
|
|
|
|
|
||
отправления |
B1 |
|
B2 |
|
B3 |
|
|
|
|
||||
|
|
|
|
|||
A1 |
0 |
|
20 |
|
20 |
40 |
A2 |
40 |
|
10 |
|
0 |
50 |
Потребности |
40 |
|
30 |
|
20 |
90 |
|
|
|
|
|
|
|
При решении транспортных задач с большим числом переменных целесообразно использовать матрицы. В них с помощью палитры матричных операций размещаются тарифы перевозок, начальные приближения для объемов перевозок, запасы поставщиков и потребности потребителей. Целевая функция записывается с помощью шаблона суммы (панель Матанализ). В качестве примера рассмотрим задачу, исходные данные которой представлены в виде табл. 10.6.
|
|
|
|
|
Таблица 10.6 |
|
Исходные данные для решения закрытой транспортной задачи |
||||||
|
|
|
|
|
|
|
Пункты |
|
Пункты назначения |
|
Запасы |
||
отправления |
B1 |
B2 |
B3 |
B4 |
||
|
||||||
А1 |
2 |
3 |
5 |
4 |
30 |
|
A2 |
3 |
2 |
4 |
1 |
40 |
|
A3 |
4 |
3 |
2 |
6 |
20 |
|
Потребности |
20 |
25 |
35 |
10 |
90 |
На три базы поступил однородный груз в количествах, соответственно равных 30, 40 и 20 ед. Этот груз требуется перевезти в четыре
88
пункта назначения В1, В2, В3, B4 соответственно в количествах 20, 25, 35 и 10 ед. Тарифы перевозок единицы груза с каждого из пунктов отправления в соответствующие пункты назначения указаны в следующей табл. 10.6. Составить план перевозок, обеспечивающий минимальную общую стоимость перевозок.
Решение закрытой транспортной задачи с тремя поставщиками и четырьмя потребителями имеет следующий вид.
Тарифы – стоимости перевозки единицы продукта от трех поставщиков (Ai) четырем потребителям (Bj):
|
2 |
3 |
5 |
4 |
|
30 |
|
c |
3 |
2 |
4 |
1 |
a |
40 |
– количество продукта у поставщиков; |
|
4 |
3 |
2 |
6 |
|
20 |
|
|
20 |
|
|
|
|
|
|
b |
25 |
|
– потребности потребителей. |
||||
35 |
|
||||||
|
|
|
|
|
|
||
|
10 |
|
|
|
|
|
Общие затраты на перевозку (целевая функция):
2 3
f (x)
i 0 k 0
Начальное приближение:
20 10 0 0
x |
0 15 25 0 |
0 0 10 10
Для решения задачи необходимо создать вспомогательную единичную матрицу:
|
|
|
|
|
|
|
1 |
1 |
1 |
|
i |
0 2 |
k |
0 3 |
ek i |
1 |
e |
1 |
1 |
1 |
|
1 |
1 |
1 |
||||||||
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
1 |
1 |
1 |
89
Given – блок решения и ограничений;
(x e) 0 |
|
a |
– равенство |
вывозимого продукта запасам по- |
|||||
|
|||||||||
|
|||||||||
|
|
|
|
|
ставщиков; |
|
|
||
|
T |
0 |
|
|
– равенство вывозимого продукта равно по |
||||
|
|
|
|
|
|||||
(e x) |
|
|
|
b |
|||||
|
|
|
|||||||
|
|
|
потребителей; |
||||||
x |
|
|
|
|
|
||||
0 |
|
|
|
|
– условие неотрицательности объема поставок; |
||||
y |
Minimize(f |
x) |
– минимизация; |
||||||
|
20 |
5.833 |
4.167 |
|
0 |
|
|||
y |
0 |
19.167 |
10.833 |
10 |
– результат. |
||||
|
0 |
0 |
|
20 |
|
0 |
|
||
Минимальные |
затраты |
на |
перевозку: f (y) 210 . |
90