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

УМ_Пособие_09

.pdf
Скачиваний:
34
Добавлен:
01.06.2015
Размер:
1.46 Mб
Скачать

81

24х10,94 + 6х20,93 16000,

8x10,88 + 14x20,89 5050

и, кроме того, они связаны соотношением x1+x2=1000.

Требуется найти значения параметров х1>0 и х2>0,

соответствующие минимальному значению целевой функции

W = 140x10,93 + 150x20,86.

Прежде всего отметим, что достаточно найти оптимальное значение одной переменной, например x1, поскольку значение х2 можно получить из соотношения x1+x2=1000.

Учитывая, что 0r 1, а 0x1 1000, в качестве первого значения x1 принимаем x1=10000r1, а x2 вычислим.

Далее, для полученных значений x1 и х2 проверяем на соответствие системе ограничений, при выполнении которых вычисляем значение целевой.

Результаты расчетов сводим в табл. 5.1.

x1(i)

x2(i)

Выпол-

W(i)

x1(i)

x2(i)

Выпол

W(i)

 

 

 

нение

 

 

 

 

нение

 

 

 

 

ограни

 

 

 

 

ограни

 

 

 

 

чений

 

 

 

 

чений

 

 

 

 

(призна

 

 

 

 

(призн

 

 

 

 

к 1)

 

 

 

 

ак 1)

 

1

100

900

0

 

31

196

804

0

 

2

973

27

1

86704

32

450

550

0

 

3

253

747

0

 

33

930

70

1

86482

4

376

624

0

 

34

323

677

0

 

5

520

480

0

 

35

209

791

0

 

6

135

865

0

 

36

25

975

0

 

7

863

137

1

85589.6

37

601

399

0

 

8

467

533

0

 

38

595

405

0

 

9

354

646

0

 

39

334

666

0

 

10

876

124

1

85800.5

40

764

236

1

83674

11

809

191

1

84616

41

990

10

1

86253

12

590

410

0

 

42

190

810

0

 

13

911

89

1

86281

43

252

748

0

 

14

737

263

1

83077.5

44

909

91

1

86253

15

542

458

0

 

45

376

624

0

 

16

48

952

0

 

46

707

293

1

82371

 

 

 

 

 

 

 

 

 

.6

17

56

944

0

 

47

153

847

0

 

82

x1(i)

x2(i)

Выпол-

W(i)

x1(i)

x2(i)

Выпол

W(i)

 

 

 

нение

 

 

 

 

нение

 

 

 

 

ограни

 

 

 

 

ограни

 

 

 

 

чений

 

 

 

 

чений

 

 

 

 

(призна

 

 

 

 

(призн

 

 

 

 

к 1)

 

 

 

 

ак 1)

 

18

489

511

0

 

48

831

169

1

85021

 

 

 

 

 

 

 

 

 

.5

19

474

526

0

 

49

131

869

0

 

20

296

704

0

 

50

165

835

0

 

21

248

752

0

 

51

886

114

1

85951

22

52

948

0

 

52

767

233

1

83745

23

403

597

0

 

53

439

561

0

 

24

720

280

1

82682.2

54

712

288

1

82492

25

636

364

1

80585

55

807

193

1

84561

26

104

896

0

 

56

999

1

1

86390

27

20

980

0

 

57

708

292

1

82397

28

842

158

1

85231.4

58

15

985

0

 

29

268

732

0

 

59

736

264

1

83052

30

953

47

1

86659

60

147

853

0

 

В данной серии испытаний наилучший результат получен в 25-м испытании: W1(25)=80585, х1(25) =636,

х2(25)=364.

Эффективность метода значительно снижается в связи с тем, что около 60% всех испытаний оказываются неудачными из-за невыполнения ограничений.

Используя систему ограничений, можно установить, что допустимое значение x1 лежит в пределах 634x11000, а

0x2366.

Учитывая эти ограничения, значение x1 можно разыгрывать по формуле x1=634+366ri, что позволит значительно сократить число испытаний.

Рассмотрим теперь пример направленного случайного

поиска.

Пример. В качестве иллюстрации практического применения метода направленного случайного поиска вернемся к предыдущему примеру.

Примем сначала за длину рабочего шага a=100, а за координаты исходной точки поиска х1(0) = 990, x2(0) = 10. Значение целевой функции в исходной точке определяем по формуле W(0) = 86625.

83

Для реализации метода направленного случайного поиска нужно получить последовательность случайных чисел ζ, равномерно распределенных в интервале (-1, 1). Воспользуемся случайными числами, равномерно распределенными в интервале (0, 1). Пусть получена последовательность случайных чисел: -0,6; -0,28; 0,48; 0,1; 0,98; -0,25; 0,6.

Первый шаг поиска осуществляется в случайном направлении. Вычисляем координаты точки X(1): х1(1) = х1(0) - а∙ζ1

=990 - 100.0,6 = 930; х2(1) =1000-930 = 70

После проверки на выполнение ограничений вычисляем

значение целевой функции: W(1) = 86482.

Поскольку ∆W=W(1) - W(0) <0, шаг следует считать удачным. Поэтому следующие шаги делаются в том же направлении до первого неудачного шага. Результаты расчетов сведены в табл. 5.2.

Таблица 5.2.

Значение

х1(i)

х2(i)

Выполнение

W(i)

 

шага a

 

 

ограничений

 

 

 

 

(признак 1)

 

 

 

 

 

 

0

-100.0.6

990

10

1

8

 

 

 

 

 

6626

1

-100.0.6

930

70

1

8

 

 

 

 

 

6482

2

-100.0.6

870

130

1

8

 

 

 

 

 

5702

3

-100.0.6

810

190

1

8

 

 

 

 

 

4633

4

-100.0.6

750

250

1

8

 

 

 

 

 

3369

5

-100.0.6

690

310

1

8

 

 

 

 

 

1960

6*

-100.0.6

630

370

0

 

7

-100.0.28

662

338

1

8

 

 

 

 

 

1244

8

-100.0.28

634

366

1

8

 

 

 

 

 

0529

9*

-100.0.28

606

394

0

 

84

10*

-100.0.48

682

318

1

8

 

 

 

 

 

1751

11*

100.0.1

644

356

1

8

 

 

 

 

 

0790

12*

10.0.98

643.8

356.2

1

8

 

 

 

 

 

0780

13*

-10.0.25

631.5

368.5

0

 

14*

10.0.6

640

360

1

8

 

 

 

 

 

0685

15*

1

635

365

1

8

 

 

 

 

 

0555

Как видно из табл. 5.2, каждый неудачный шаг ―наказывается‖ введением случайности (неудачные шаги отмечены звездочкой). После трех неудачных шагов подряд длина шага уменьшается в 10 раз. Наилучший результат получен в 8-м испытания: W(8) = 80529, х1(8) = 634, x2(8) = 366.

Из сравнения примеров видно, что при направленном случайном поиске для нахождения оптимального решения потребовалось гораздо меньшее число испытаний, чем при ненаправленном случайном поиске.

85

ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ

Задача линейного программирования заключается в изучении способов отыскания наибольшего или наименьшего значения линейной функции при наличии линейных ограничений. Задача линейного программирования заключается в изучении способов отыскания наибольшего или наименьшего значения линейной функции при наличии линейных ограничений.

Cовокупность значений переменных, при которых достигается наибольшее или наименьшее значение функции, определяет оптимальное решение. Всякая же другая совокупность значений переменных, удовлетворяющая ограничениям, определяет допустимое решение задачи.

Формы записи задач линейного прогаммирования

В общем случае задача линейного программирования (ЗЛП) формулируется следующим образом: найти величины х1,…, хn, доставляющие минимум (максимум) функции

F(X) = c1x1 + c2x2 +…+ cnxn

и удовлетворяющие ограничениям, которые могут быть только равенствами и неравенствами вида

ai1x1

+…+ainxn bi ,

i = i,…, k ,

ai1x1

+…+ainxn bi ,

i = (k+1),..., l,

ai1x1

+…+ainxn bi ,

i = (l+1),…, m.

Cреди ограничений часто встречаются условия не

отрицательности всех или части переменных

xj 0,

j=1, 2, … ,S.

 

Хотя

эти условия являются частным случаем

представленных выше условий общего вида, на практике их обычно выделяют в особую группу.

В более компактной записи общая задача линейного программирования имеет вид:

n

max (min)

 

Z=c1x1+c2x2+…+cnxn= ci xi

(6.1)

i 1

 

 

 

при условиях {a j1 x1 a j 2 x2 ... a jn xn

bj }

 

86

или {a j1 x1 a j 2 x2 ... a jn xn bj 0} (5.2)

Различаются еще две основные формы записи задач линейного программирования в зависимости от наличия ограничений разного типа:

а) стандартная форма ЗЛП

 

 

 

n

 

 

 

 

 

Z

c j x j max

 

 

 

j 1

при ограничениях

 

 

 

 

 

n

 

 

 

 

 

 

 

 

x

 

b , i 1, m

 

a

ij

j

 

 

i

j 1

 

 

 

 

 

 

 

 

x j 0, j 1, n.

 

б) каноническая форма ЗЛП

n

Z c j x j min(max)

j 1

при ограничениях

n

 

 

 

 

 

 

 

 

 

x

 

b , i 1, m

 

a

ij

j

 

 

 

i

j 1

 

 

 

 

 

 

 

 

 

x j 0, j 1, n.

 

 

Стандартная форма ЗЛП интересна тем, что большое число прикладных задач естественным образом сводится к этому виду моделей.

Каноническая форма ЗЛП важна ввиду того, что основные вычислительные методы решения ЗЛП разработаны именно для этой формы.

Указанные выше три формы ЗЛП эквивалентны в том смысле, что каждая из них с помощью несложных преобразований может быть приведена к любой из двух остальных.

Переход от задачи минимизации к задаче максимизации. Осуществляется путем изменения знака критериальной функции, т.е. задача

87

n

Z c j x j min

j 1

эквивалентна задача на поиск максимума

n

Z ( c j x j) max.

j 1

Изменения знаки свободного члена и коэффициентов в ограничениях – неравенствах, можно поменять знак этих неравенства на обратный. Например, ограничения

{a j1 x1 a j 2 x2 ... a jn xn bj }

можно заменить следующим:

{ a j1x1 a j2 x2 ... a jn xn b j }

Переход от ограничения - неравенства к равенству. осуществляется введением дополнительной неотрицательной переменной. Так, к примеру, условие

{a j1 x1 a j 2 x2 ... a jn xn bj }

эквивалентно двум ограничениям

{a j1x1 a j2 x2 ... a jn xn xn 1 b j } , xn+1 0.

Вводимые переменные типа xn+1 называют фиктивными или дополнительными.

Ограничения – равенства можно представить парой неравенств. Ограничение

{a j1x1 a j2 x2 ... a jn xn b j }

можно представить парой ограничений

{a j1x1 a j2 x2 ... a jn xn xn 1 b j }, где xn+1 0 или {a j1x1 a j2 x2 ... a jn xn xn 1 b j }, где xn+10

Если на знак переменной xj не наложено ограничений, можно заменить ее разностью двух неотрицательных переменных

xj = x'j – x"j , где x'j 0, x"j 0.

88

Если переменная ограничена снизу (сверху) xj с (xj с), то заменив ее по формуле xj = x'j +с, перейдем к задаче, в которой фигурирует неотрицательная переменная x'j 0.

Примеры построения математических моделей ЗЛП

Задача о рациональном использовании ресурсов

Имеются какие-то ресурсы (сырьѐ, рабочая сила, оборудование): R1, R2, .. Rm

в количествах соответственно b1, b2, .. bm.

С помощью этих ресурсов могут производиться товары:

T1, T2, .. Tn

Для производства одной единицы товара Tj необходимо aij единиц ресурса Ri по цене dj руб. Каждая единица товара Tj может быть реализована по цене Cj.

По каждому виду товара количество произведѐнных единиц ограничивается спросом: известно, что рынок не может поглотить более, чем kj единиц товара Tj.

Обозначим план производства товаров через вектор Х={x1, x2, .. xn}, где xj –планируемое количество товара Tj.

x j 0, x j k j , j 1, n.

Тогда условия спроса налагают на них ограничения. Ресурсов должно хватить, отсюда возникают

ограничения:

n

aij x j bi ,i 1, m. j 1

Выразим прибыль Z в зависимости от переменных x1, .. xn. Себестоимость sj единицы товара Tj равна

m

s j aij di, j 1, n. i 1

89

Чистая прибыль qj, полученная от реализации одной единицы товара Tj, равна разнице между еѐ продажной ценой cj и себестоимостью sj:

m

q j c j s j c j aij di, i 1

По этой формуле получим чистые прибыли на единицу всех товаров: q1, q2, .. qn.

Общая чистая прибыль от реализации всех товаров будет

n

z q

j 1

n

j x j (c j j 1

m

aij di) x j max,

i 1

которую требуется максимизировать.

Задача о смесях

Предположим, что нужно выбрать суточный рацион питания, имея в распоряжении n продуктов, содержащих m питательных веществ.

Пусть aij – количество i-го питательного вещества в единице j-го продукта, вi – суточная потребность организма в i- том питательном веществе, сj – цена единицы j-го продукта. При этом требуется, чтобы цена суточного рациона питания была минимальной.

Суточный рацион питания – вектор Х = {x1, x2, ..xn}, где через xi обозначено суточное потребление i-го продукта.

Цель решения задачи – минимальная стоимость суточного рациона питания:

n

Zci xi min.

i1

Из условия полного удовлетворения потребности организма в питательных веществах строится система ограничений:

n

aij x j bi ,i 1, m, j 1

Величина потребляемого j-го продукта должна быть, разумеется, неотрицательна:

x j 0, j 1, n,

90

Математическая модель представляет собой частный случай общей задачи линейного программирования в симметричном виде.

Задача о производстве сложного оборудования

Планируется производство сложного оборудования, каждый комплект которого состоит из n элементов: э1, э2, .. эn.

Заказы на производство этих элементов могут быть размещены на m разных предприятиях: П1, П2, .. Пm.

В течение заданного времени T на предприятии Пi: можно изготовить aij элементов типа Эj (i=1,m; j=1,n), т.е. на каждом предприятии Пi можно изготовлять любые элементы Эj.

Реализации подлежат только полные комплекты оборудования, состоящие из набора всех элементов Э1, Э2, … Эn.

Требуется распределить заказы по предприятиям так, чтобы число полных комплектов оборудования, изготовленных за время T, было максимально.

Планируя производство оборудования, мы должны для каждого предприятия Пi указать, какую часть имеющегося в его распоряжении времени оно должно отдать на производство элементов Эj. Обозначим через xij долю времени T, которую предприятие Пj будет уделять производству элементов Эj (если этот элемент на данном предприятии не производится, то xij = 0).

Мы должны соблюдать следующие ограничительные условия: количество времени, которое каждое предприятие затрачивает на производство всех элементов, не должно превышать общего запаса времени T ("доля" времени Т – единица):

n

xij 1,i 1, m.

j 1

Кроме того, накладывается естественное условие неотрицательности переменных:

xij 0,i 1, m, j 1, n.