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

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

.pdf
Скачиваний:
77
Добавлен:
09.03.2016
Размер:
3 Мб
Скачать
☆

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