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

Конспект_лекц_Кишкурно

.pdf
Скачиваний:
76
Добавлен:
09.03.2016
Размер:
2.88 Mб
Скачать

ЛЕКЦИЯ 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