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

Методы оптимизации семинары

.pdf
Скачиваний:
173
Добавлен:
27.02.2016
Размер:
818.9 Кб
Скачать

изготовлением каждого из видов продукции П1 и П2 , чтобы затраты на

производство были минимальными при выполнении плана производства как по времени, так и по номенклатуре.

1.4. Совхоз отвел три земельных массива размерами в 5000, 8000 и 9000 га под посевы ржи, пшеницы и кукурузы. Средняя урожайность по массивам указана в табл. 1.8.

 

 

 

 

Таблица 1.8

Культура

 

Средняя урожайность массива, ц/га

 

1

 

2

3

Рожь

12

 

14

15

Пшеница

14

 

15

22

Кукуруза

30

 

35

22

За один 1 ц. ржи совхоз получает 2 руб. прибыли, за 1 ц. пшеницы – 2,5 руб., за 1 ц. кукурузы – 1,4 руб.

Сколько гектаров и на каких массивах совхоз должен отвести под каждую культуру, чтобы получить максимальную прибыль, если по плану он обязан сдать не менее 1900 т. ржи, 15800 т. пшеницы и 30000 т. кукурузы.

1.5. Три типа самолетов следует распределить между двумя авиалиниями. В табл. 1.9 заданы количество самолетов каждого типа, месячный объем перевозок каждым самолетом на каждой авиалинии и соответствующие расходы.

 

 

 

 

 

Таблица 1.9

Тип

Число

Месячный объем

Эксплутационные

самолета

самолетов

перевозок одним

расходы на один

 

 

самолетом по

самолет по авиалиниям

 

 

авиалиниям

 

 

 

 

1

2

1

2

1

50

15

10

15

20

2

20

30

25

70

28

3

30

25

50

40

70

Требуется распределить самолеты по авиалиниям так, чтобы при минимальных суммарных эксплуатационных расходах перевезти по каждой из них соответственно не менее 300 и 200 единиц груза.

2. Каноническая и стандартная формы задачи линейного программирования. Переход от одной формы к другой.

Каноническая форма:

z = c1 x1 + c2 x2

+ ... + cn xn

 

® min/ max ,

(2.1)

ì

a

x

+ a

x

2

+ ... + a

1n

x

n

= b

 

 

 

ï

 

11 1

 

12

 

 

 

 

1

 

 

ï a21 x1

+ a22 x2

+ ... + a2n xn

= b2

,

(2.2)

í

 

 

 

 

 

 

 

.......

 

 

 

 

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ïa

m1

x

+ a

m2

x

2

+ ... + a

mn

x

n

= b

m

 

 

î

 

1

 

 

 

 

 

 

 

 

 

 

 

 

x j ³ 0 (j=1,2,…,n).

 

 

(2.3)

Задача состоит в том, что требуется найти неотрицательные значения неизвестных x j , которые удовлетворяют системе уравнений-ограничений

(2.2) и минимизируют (максимизируют) линейную функцию (2.1). Стандартная форма:

 

z = c1 x1 + c2 x2

+ ... + cn xn

® max ,

 

 

 

 

ì

a

11

x

1

+ a

12

x

2

+ ... + a

x

n

£ b

 

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

1n

 

1

 

 

 

 

ï a21 x1

+ a22 x2

+ ... + a2n xn £ b2

,

 

 

 

í

 

 

 

 

 

 

 

 

 

 

 

.......

 

 

 

 

 

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ï

 

 

 

 

 

+ am2 x2

+ ... + amn xn £ bm

 

 

 

 

îam1 x1

 

 

 

 

 

 

 

x j

³ 0 (j=1,2,…,n).

 

 

 

или

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

® min ,

 

 

 

z = c1 x1 + c2 x2

+ ... + cn xn

 

ì

a

11

x

1

+ a

12

x

2

+ ... + a

x

n

³ b

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

1n

 

 

1

 

 

 

ï a21 x1

+ a22 x2

+ ... + a2n xn ³ b2

 

,

 

í

 

 

 

 

 

 

 

 

 

 

 

.......

 

 

 

 

 

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ï

 

 

 

 

+ am2 x2

+ ... + amn xn ³ bm

 

 

îam1 x1

 

 

 

 

 

 

 

 

x j

³ 0 (j=1,2,…,n).

 

 

 

(2.4)

(2.5)

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

Для перехода от стандартной формы к канонической нужно заменить ограничения-неравенства уравнениями. Достигается это введением дополнительных неотрицательных переменных

xn+1 , xn+2 ,..., xn+m ,

которые прибавляются к левым частям неравенства вида “£ ” и вычитаются из левых частей неравенства вида “³ ”, обращая их в равенства: для неравенств (2.4):

ì

a

x

1

+ a

12

x

2

+ ... + a

x

n

+ x

n+1

= b

 

 

ï

 

11

 

+ a

 

x

 

+ ... + a

1n

x

+ x

1

 

ï a

21

x

1

22

2

2n

n

n+2

= b

2

(2.4`)

í

 

 

 

 

.......

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

 

+ ... + amn xn + xn+m = bm

 

îam1 x1 + am2 x2

 

для неравенств (2.5):

ì

a x

1

+ a

12

x

2

+ ... + a

x

n

- x

n+1

= b

 

ï

11

 

 

1n

 

 

1

 

ï a21 x1

+ a22 x2

+ ... + a2n xn

- xn+2

= b2

(2.5`)

í

 

 

 

 

 

 

.......

 

 

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

 

 

ï

 

+ am2 x2

+ ... + amn xn - xn+m = bm

 

îam1 x1

 

В целевую функцию дополнительные переменные не входят или, иначе говоря, входят с нулевыми коэффициентами:

z = c1 x1 + c2 x2 + ... + cn xn + 0xn+1 + ... + 0xn+m

Чтобы перейти от канонической формы задачи к стандартной, нужно заменить ограничения-равенства неравенствами. Сделать это можно двумя способами.

1-й способ. Каждое уравнение системы ограничений (2.2) ai1 x1 + ai2 x2 + ... + ain xn = bi

записывается в виде двух неравенств

ì ai1 x1 + ai2 x2 + ... + ain xn £ bi

íî- ai1 x1 - ai 2 x2 - ... - ain xn £ -bi

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

2-й способ. Система уравнений (2.2) каким-либо методом, например методом полного исключения (Жордана-Гаусса), решается относительно некоторых m неизвестных:

ì

x

= b¢ - a¢

x

m+1

- ... - a¢

x

n

 

ï

1

1

1m+1

 

1n

 

 

ï x2

¢

¢

 

 

¢

 

 

 

= b2

- a2m+1 xm+1

- ... - a2n xn

(2.6)

í

 

 

......

 

 

 

ï

 

 

 

 

 

 

ï

 

¢

¢

 

 

¢

 

 

 

îxm

= bm

- amm+1 xm+1

- ... - amn xn

 

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

x1 ³ 0, x2 ³ 0,..., xm ³ 0 ,

из соотношений (2.6) получаем систему ограничений неравенств

ì

a¢

x

m+1

+ ... + a¢ x

n

£ b¢

ï

1m+1

 

1n

 

1

¢

 

 

¢

 

 

¢

ï a2m+1 xm+1

+ ... + a2n xn £

b2

í

 

 

 

......

 

 

 

ï

 

 

 

 

 

 

ï

¢

 

 

¢

 

 

¢

îamm+1 xm+1

+ ... + amn xn £

bm

С помощью равенств (2.6) неизвестные x1 , x2 ,..., xm исключаются из целевой функции, которая принимает тогда вид

z = c′m+1 xm+1 + ... + c′n xn + c0

При переходе от одной формы задачи линейного программирования к другой может потребоваться изменение вида неравенства, а также замена задачи минимизации на задачу максимизации или наоборот. Изменение вида неравенства, как известно, достигается умножением обеих его частей на (-1), например, неравенство

ai1 x1 + ai2 x2 + ... + ain xn ³ bi

эквивалентно неравенству

- ai1 x1 - ai 2 x2 - ... - ain xn £ -bi

Задача минимизации (максимизации) функции z = c1 x1 + c2 x2 + ... + cn xn

может быть заменена задачей максимизации (минимизации) функции

z = -z = -c1 x1 - ... - cn xn ,

поскольку min(z)=-min(-z).

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

Пример 1. Записать в канонической форме следующую задачу:

z = 3x1 - 2x2 - 5x4

+ x5 ® max ,

ì 2x1 + x3 - x4 + x5 £ 2

ï

- x3 + 2x4

+ x5 £ 3

ï x1

í

+ x3 - x4

+ 2x5 £ 6

ï2x2

ï

x1 + x4 - 5x5 ³ 8

î

x1 , x2 , x3 , x4 , x5 ³ 0

Решение. Для перехода к канонической форме необходимо перейти от

ограничений-неравенств к ограничениям-равенствам. Система ограничений состоит из четырех неравенств, поэтому надо ввести четыре дополнительные переменные. К первым трем неравенствам прибавляем по одной

неотрицательной переменной, а из последнего – вычитаем. Система

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

ì 2x1 + x3 - x4

+ x5

+ x6 = 2

ï

- x3 + 2x4

+ x5

+ x7 = 3

ï x1

í

+ x3 - x4 + 2x5 + x8 = 6

ï2x2

ï

x1 + x4 - 5x5 - x9 = 8

î

x j ³ 0 (j=1,2,…,9).

Целевая функция остается прежней.

Пример 2. Записать в канонической форме задачу

z = -x1 + 2x2 - x3 + x4 ® min ,

ì 2x1 - x2

- x3 + x4 £ 6

ï

x1 + 2x2

+ x3

- x4 ³ 8

ï

í

3x - x

2

+ 2x

3

+ 2x

4

£ 10

ï

1

 

 

 

 

ïî- x1 + 3x2 + 5x3 - 3x4 =15 x j ³ 0 (j=1,2,…,4).

Решение.

z = -x1 + 2x2 - x3 + x4 ® min ,

ì 2x1 - x2

- x3 + x4 + x5

 

= 6

ï

x1 + 2x2

+ x3 - x4 - x6

= 8

ï

í

 

 

 

 

 

 

 

 

ï3x1 - x2 + 2x3 + 2x4 + x7 =10

ï

- x + 3x

+ 5x

3

- 3x

4

=15

î

1

2

 

 

 

 

x j ³ 0 (j=1,2,…,7).

Пример 3. В следующей задаче перейти от канонической формы к стандартной.

 

z = x1 + x2

- 2x3 + x4 ® max ,

(2.7)

ìx

+ x

 

+ x

 

- 0,5x

 

= 6

(2.8)

í

1

 

2

 

3

 

4

 

î

 

2x1 - 3x2 + 2x3 = 4

 

x j ³ 0 (j=1,2,3,4).

Решение. Поскольку задача на максимум, то в стандартной форме ограниченя должны быть неравенствами вида “”. Воспользуемся первым способом перехода к неравенствам; задача принимает вид

z = x1 + x2 - 2x3 + x4 ® max ,

ì

x

+ x

2

+ x

3

- 0,5x

4

£ 6

ï

1

 

 

 

 

 

 

ï- x1 - x2 - x3 + 0,5x4 £ -6

í

 

2x1 - 3x2 + 2x3 £ 4

ï

 

ï

- 2x + 3x

2

- 2x

3

£ -4

î

 

1

 

 

 

 

 

 

x j ³ 0 (j=1,2,3,4).

Количество переменных осталось прежним, а число ограничивающих условий возросло вдвое.

Применим теперь второй способ перехода к неравенствам. Здесь требуется разрешить систему уравнений (2.8) относительно каких-либо двух переменных, т.е. преобразовать систему так, чтобы одна из переменных была только в первом уравнении, а другая – только во втором. Одна такая переменная уже есть, это x4 в первом уравнении. Исключим теперь одну из

остальных переменных, скажем x3 , из первого уравнения, для чего умножим первое уравнение на 2 и вычтем из него второе, получаем:

ì

 

5x2

- x4 = 8

 

í

 

- 3x2 + 2x3 = 4

 

î2x1

 

или

 

 

 

 

 

 

 

 

 

ì

x

 

= 5x

 

- 8

 

 

ï

 

4

 

 

2

+ 3 x2

(2.9)

íx

= 2 - x

ï

3

 

 

 

1

 

2

 

 

î

 

 

 

 

 

 

 

С помощью этих равенств исключаем переменные x3 и x4 из целевой функции:

z = x1 + x2 - 4 + 2x1 - 3x2 + 5x2 - 8 = 3x1 + 3x2 - 12

Учитывая, что x3 ³ 0 и x4 ³ 0 , из равенств (2.9) получаем следующие неравенства

ì

5x

 

- 8 ³ 0

ï

 

2

 

3

 

 

 

í2 - x

 

+

x

 

³ 0

 

 

2

ï

1

2

 

 

î

 

 

 

 

 

Перенося свободные члены в этих неравенствах в правую часть и записывая неравенства со знаком “ ”, окончательно получаем стандартную форму данной задачи:

z = 3x1

+ 3x2 - 12 ® max ,

ì

- 5x

 

£ -8

ï

 

 

2

 

 

 

íx -

3

x

 

£ 2

 

2

ï

1

2

 

 

î

 

 

 

 

x1 , x2 ³ 0.

Теперь задача содержит две переменные и два ограничивающих условия.

Перейти к канонической форме.

 

 

 

 

ì4x1 + 2x2 + 5x3 £ 12

 

 

 

 

 

 

 

 

1.

z = -2x1 + x2

+ 5x3

® max , íï6x1

- 3x2

+ 4x3

=18 ,

x j

³ 0

(j=1,2,3).

 

 

 

 

ï

 

+ 3x2 - 2x3 ³16

 

 

 

 

 

 

 

 

 

 

 

 

î3x1

 

 

 

 

 

 

 

 

 

 

 

 

ì- x1 + x2 + x3 ³ 4

 

 

 

 

 

 

 

 

2.

z = 2x1 - 5x2

- 3x3

® max , íï2x1

- x2 + x3

£16, x j

³ 0

 

(j=1,2,3).

 

 

 

 

ï3x

+ x

2

+ x

3

³ 18

 

 

 

 

 

 

 

 

 

 

 

 

î

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Перейти к стандартной. форме.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ì 2x1 - x2 - 3x3 + x4 - x5 = 4

 

 

 

 

3.

z = x1

- x2 + 3x4 + x5 ® min , íïx1

+ 2x2

+ 3x3

+ 3x4

+ x5

=15, x j

³ 0

(j=1,2,…,5).

 

 

 

 

 

ï

2x1 - 2x2 - x3 + 2x5 = 8

 

 

 

 

 

 

 

 

 

î

 

 

 

 

 

 

 

 

 

 

 

 

ìx1 - x2 + 2x3 - 3x4 + x5 = -2

 

4.

z = x1

- 2x2 + 2x3 + x4 + 2x5 ® max ,

íï

 

 

2x1 + 3x2

+ x4

- x5

= 6

,

x j ³ 0

 

 

 

 

 

 

 

 

ï

 

- x + 2x

2

- x

3

+ 2x

4

= 3

 

 

 

 

 

 

 

 

 

 

î

 

 

1

 

 

 

 

 

 

(j=1,2,…,5).

3. Графический метод решения решения задачи линейного программирования.

Графическим методом можно решать задачу с двумя переменными с

ограничениями в виде неравенств. Пусть требуется решить задачу

 

z = c1 x1 + c2 x2 ® max ,

(3.1)

ì a

x + a x

2

£ b

 

 

ï

11

1

11

 

1

 

 

ï a21 x1 + a22 x2

£ b2

,

(3.2)

í

 

......

 

 

 

ï

 

 

 

 

 

 

ïa

x + a

m 2

x

2

£ b

 

 

î

m1

1

 

 

m

 

 

x1

³ 0, x2 ³ 0 .

 

 

(3.3)

т.е. найти такие значения x1 и x2 , или, иначе, говоря, такой вектор X = (x1 , x2 ) , который удовлетворяет системе ограничений (3.2),(3.3) и максимизирует линейную функцию (3.1).

Каждое неравенство (3.2)

ai1 + ai 2 x2 £ bi

определяет в плоскости Ox1 x2 полуплоскость с граничной прямой (рис. 3.1,а)

ai1 x1 + ai2 x2 = bi

т.е. точки (x1 , x2 ) , лежащие в этой полуплоскости, удовлетворяют данному неравенству.

рис 3.1

Неравенства (3.3) определяют соответственно правую и верхнюю полуплоскости (рис. 3.1,б).

Множество точек пересечения всех этих полуплоскостей образует многоугольник решений (область допустимых значений). Каждая точка этого многоугольника есть решение системы ограничений или план задачи линейного программирования. Многоугольник решений может быть и неограниченной многоугольной областью или вырождаться в прямую (луч, отрезок) или в точку (рис. 3.2).

рис 3.2

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

Графическое решение задачи начинают с построения многоугольника решений. После построения многоугольника нужно найти такую его точку (x1* , x2* ) в которой целевая функция z достигает максимума.

рис 3.3

При фиксированном значении z = z0 равенство (3.1) представляет собой уравнений прямой c1 x1 + c2 x2 = z0 , так называемой линии уровня, для всех точек которой функция принимает одно и то же значение z0 . Если перемещать эту прямую в направлении вектора N = (c1 , c2 ) , являющегося градиентом функции z0 = c1 x1 + c2 x , то соответствующее значение функции

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

из этих опорных прямых соответствует минимуму функции z, а другая – максимуму z в области допустимых решений (рис.3.3). Соответствующая точка (x1* , x2* ) многоугольника решений или вектор X * = (x1* , x2* ) называется оптимальным планом, это и есть искомое решение задачи линейного программирования.

Очевидно, что опорная прямая обязательно проходит хотя бы через одну угловую точку многоугольника решений, поэтому оптимальному плану соответствует угловая точка. Линия уровня, соответствующая оптимальному плану, может совпасть со стороной многоугольника решений (рис. 3.4). В этом случае оптимальное решение не единственное – имеет место так называемый альтернативный оптимум.

Пусть векторы X1 = (x1(1) , x2(1) ) и X 2 = (x1(2) , x2(2) ) - оптимальные планы, соответствующие угловым точкам многоугольника решений, тогда любой вектор

X = λX1 + (1 - λ)X 2 (0 £ λ £1) ,

являющийся выпуклой линейной комбинацией векторов X1 и X 2 , также будет оптимальным планом, соответствующим некоторой точке отрезка AB.

рис. 3.4

Если многоугольная область допустимых решений неограниченна, то задача линеного программирования может иметь или не иметь решение (оптимальный план). Например, в случае, представленном на рис.3.4, задача на отыскание максимума не имеет решения, так как целевая функция не ограничена в области допустимых решений, а задача на отыскание минимума имеет решение.

Пример 1. Графическим методом решить задачу

z = -2x1

+ 5x2 ® min ,

(3.4)

ì7x

+ 2x

 

³14

 

ï

1

 

2

 

(3.5)

ïí5x1

+ 6x2

£ 30,

î3x1

+ 8x2

³ 24

 

x1 ³ 0, x2

 

 

³ 0 .

(3.6)

Решение. Строим вначале многоугольник решений. Для этого надо в

плоскости Ox x построить все полуплоскости, определяемые неравенствами

(3.5),(3.6), и выделить их общую область. Построим полуплоскость,

 

определяемую первым неравенством (3.5). Сначала строим границу

 

7x1 + 2x2 = 14 .

(3.7)

Полагая в этом уравнении x1 = 0 , находим x2 = 7 , затем, полагая x2

= 0,

находим x1 = 2 . По точкам (0;7) и (2;0) строим прямую (3.7) (рис. 3.5). Затем определяем, по какую сторону от этой прямой лежит область, задаваемая неравенством

7x1 + 2x2 ³14 .

рис 3.5

Это удобно сделать, подставив в левую часть неравенства точку (0;0). Получаем 0 ³14 , т.е. эта точка (начало координат) не удовлетворяет неравенству и, следовательно, определяемая этим неравенством область лежит справа от граничной прямой 1. Аналогично строим остальные полуплоскости. Их общая область образует треугольник ABC – многоугольник решений.

Чтобы построить линии уровня, строим из начала координат вектор N = (-2;5) и перпендикулярно ему проводим нулевую линию уровня. Поскольку решаем задачу на минимум, то смещаем линию уровня противоположно вектору N; она становится опорной по отношению к треугольнику ABC в точке C. Координаты точки C и есть компоненты оптимального плана; они могут приближенно определены из графика или найдены точно путем решения системы уравнений прямых 1 и 2.

ì5x1 + 6x2 = 30

íî3x1 + 8x2 = 24

Решая эту систему, находим x1 = 1148 , x2 = 1511 , т.е. оптимальный план

X * = (1148 , 1511)

Этому плану отвечает оптимальное значение целевой функции zmin = -2(1148) + 5(1511) = - 1121

Пример 2. Решить задачу