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

Методы оптимизации. Учебное пособие-2

.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
1 Мб
Скачать

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

c1x1 + c2x2 max

при следующих ограничениях, записанных в виде неравенств:

a11 x1 + a12x2 b1 a21 x1 + a22x2 b2

a31 x1 + a32x2 b3

x1 ≥ 0, x2 ≥ 0

2. Задача оптимального использования производственных мощностей (производственных ресурсов)

Предприятие выпускает n видов продукции Pj (j = 1, 2,… n), используя m типов оборудования Ei, (i = 1, 2,… m). Известны нормы времени на обработку каждого из n видов продукции Pj на i-ом типе оборудования aij, и общий ресурс времени работы каждого типа оборудования bi. Прибыль предприятия от реализации j-го вида продукции Pj равна cj. Требуется составить план выпуска продукции, при котором прибыль предприятия будет максимальной.

Обозначим через xj количество единиц продукции Pj, которое предприятие планирует выпустить (j = 1, 2,… n). Тогда производственный план выпуска продукции может быть записан как n-мерный вектор x = (x1, x2, … xn).

На изготовление xj единиц Pj продукции на оборудовании Ei будет затрачено aijxj времени. Время работы оборудования Ei для изготовления всех видов продукции равно

ai1 x1 + ai2x2 + ... + ain xn.

Время работы оборудования Ei не может превышать ресурс времени работы i-го типа оборудования bi.

41

ai1 x1 + ai2x2 + ... + ain xn bi, (i = 1, 2,… m).

Прибыль предприятия будет равна c1 x1 + c2x2 + ... + cn xn.

Таким образом, приходим к следующей задаче линейного программирования:

c1x1 + c2x2 +… + cn xn max

a11 x1 + a12x2 + ... + a1n xn b1 a21 x1 + a22x2 + ... + a2n xn b2

……………………………..

am1 x1 + am2x2 + …+ amn xn bm x1 ≥ 0, x2 ≥ 0,… xn ≥ 0

среди всех неотрицательных решений системы неравенств найти решение максимизирующее линейную функцию.

Задачу линейного программирования можно записать в матричном виде:

F(X) = CX max

AX B

X ≥ 0,

 

a11

a12

...

a1n

b1

 

 

 

 

 

 

 

...

 

 

 

 

 

 

 

a21

a22

a2n

b2

 

,…, cn),

где A

 

...

...

...

,

B

, C = (c1, c2

 

...

 

 

 

 

 

a

m1

a

m2

...

a

 

 

b

 

 

 

 

 

 

 

mn

m

 

x1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

 

 

 

 

 

 

 

 

 

 

 

X

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xn

 

 

 

 

 

 

 

 

 

 

 

42

3.1.2. Различные формы задач линейного программирования

Общей задачей линейного программирования называется следующая задача: минимизировать функцию

F(x) = c1x1 + c2x2 +… + cn xn

при условиях

a11x1 a12x2 ...

a1n xn b1

a21x1 a22x2 ...

a2n xn b2

................................

am1x1 am2 x2 ...

an xn bm

am 11x1 am 12x2 ... am 1n xn bm 1 am 21x1 am 22x2 ... am 2n xn bm 2

................................

ak1x1 ak 2 x2

... akn xn bk

ak 11x1 ak 12x2 ...

ak 1n xn bk 1

ak 21x1 ak 22x2 ...

ak 2n xn bk 2

................................

al1x1 al 2 x2 ...

aln xn bl

Общая задача имеет ограничения в виде неравенств и в виде равенств.

Канонической задачей линейного программирования называется следующая задача: минимизировать функцию

F(x) = c1x1 + c2x2 +… + cn xn

при условиях

43

a11 x1 + a12x2 + ... + a1n xn = b1

a21 x1 + a22x2 + ... + a2n xn = b2

……………………………..

am1 x1 + am2x2 + …+ amn xn = bm x1 ≥ 0, x2 ≥ 0,… xn ≥ 0.

Каноническая задача линейного программирования имеет ограничения в виде равенств (при неотрицательных значениях переменных xk, ≥ 0, k = 1, 2,… n) и является частным случаем общей задачи линейного программирования.

Основной задачей линейного программирования называется следующая задача: минимизировать функцию

F(x) = c1x1 + c2x2 +… + cn xn

при условиях

a11 x1 + a12x2 + ... + a1n xn b1 a21 x1 + a22x2 + ... + a2n xn b2

…………………………….....

am1 x1 + am2x2 + …+ amn xn bm x1 ≥ 0, x2 ≥ 0,… xn ≥ 0.

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

44

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

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

Пример 18. Решить задачу линейного программирования

F(x) = –6x1 – 5x2 min

при следующих ограничениях в виде неравенств:

19 – 2x1 – 3x2 ≥ 0 13 – 2x1 x2 ≥ 0 18 – 3x1 ≥ 0.

x1 ≥ 0, x2 ≥ 0

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

19 – 2x1 – 3x2 = 0 13 – 2x1 x2 = 0 18 – 3x1 = 0.

x1 = 0, x2 = 0

В результате построений получим пятиугольник (см. рис. 10).

Координаты вершин пятиугольника: (0; 0); (0; 6⅓); (5; 3); (6; 1);(6;0).

45

Геометрическим местом точек, для которых линейная функция F(x1, x2) принимает постоянное значение C, является прямая, уравнение которой имеет вид: –6x1 – 5x2 = C.

Меняя значение C, получим семейство параллельных прямых, перпендикулярных вектору-градиенту целевой функции (–6, –5) .

x2

13

6⅓

(5,3)

6 6,5

9,5

x1

Рис. 10

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

Если у многоугольника решений нет сторон параллельных указанным прямым, то оптимальным решением будет одна из вершин многоугольника. В данном примере это вершина с координатами (5, 3), x1 = 5, x2 = 3, значение линейной функции в этой точке равно F = –45.

46

Пример 19. Решить задачу линейного программирования:

F(x) = 2x1 + x2 max

при следующих ограничениях в виде неравенств:

x2 ≥ 1

2x1 + x2 ≥ 4 x1 – 2x2 ≤ 4 2x1 + 4x2 ≤ 16 x1 ≥ 0, x2 ≥ 0

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

x2 = 1

2x1 + x2 = 4 x1 – 2x2 = 4 2x1 + 4x2 = 16 x1 = 0, x2 = 0

В результате построений получим треугольник ABC (cм. рис. 11). Координаты вершин треугольника: A(1,5; 1), B(0; 4); C(6; 1).

x2

B

A C

x1

Рис. 11

47

Геометрическим местом точек, для которых линейная функция F(x1, x2) принимает постоянное значение C, является прямая, уравнение которой имеет вид: 2x1 + x2 = C. Меняя значение C, получим семейство параллельных прямых, перпендикулярных вектору-градиенту целевой функции (2, 1). При переходе от одной прямой к другой в направлении, задаваемом градиентом (в направлении вектора (2, 1)), значение целевой функции увеличивается. Этот процесс продолжаем до тех пор, пока имеется хотя бы одна точка пересечения прямой и многоугольника решений. В данном примере это вершина с координатами C(6,1), x1 = 6, x2 = 1, значение линейной функции в этой точке равно F = 13.

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

3.1.4. Метод жордановых преобразований

Рассмотрим следующую задачу линейной алгебры: переменные y1, y2, y3 выражаются через переменные x1, x2, x3:

y1 = 4x1 + 3x2 + 2x3 y2 = 3x1 + 2x2 + x3 y3 = x1+ x2 + 2x3

Требуется найти выражения для x1, x2, x3 через y1, y2, y3.

Для решения этой задачи выразим из первого уравнения x1 через y1, x2, x3, и подставим это выражение во второе и третье уравнения системы. В результате этих преобразований получим следующую систему:

x1= 0,25y1 – 0,75x2 – 0,5x3 y2 = 0,75y1 – 0,25x2 – 0,5x3 y3 = 0,25y1 + 0,25x2 + 1,5x3

48

Из второго уравнения выразим x2 и подставим найденное выражение в первое и третье уравнения, тогда

x1= –2y1 + 3y2 + x3 x2= 3y1 – 4y2 – 2x3

y3= y1 y2 + x3

Для решения поставленной задачи достаточно из третьего уравнения выразить x3 через y1, y2, y3 и подставить в первое и второе уравнения системы. Окончательно получим:

x1 = –3y1 + 4y2 + y3 x2 = 5y1 – 6y2 – 2y3

x3 = – y1 + y2 + y3 .

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

y1 = a11x1 + a12x2 + … + a1nxn

y2 = a21x1 + a22x2 + … + a2nxn

………………………………

ym = am1x1 + am2x2 + … + amnxn

сопоставим таблицу:

Т

x1

x2

xn

y1

a11

a12

a1n

 

 

 

 

 

y2

a21

a22

a2n

 

 

 

 

 

ym

am1

am2

amn

 

 

 

 

 

Таблица образована коэффициентами при переменных x1, x2,… xn. Первый столбец и первая строка таблицы состоит из символов y1, y2,…, ym и x1, x2,… xn соответственно, остальные элементы являются элементами матрицы A = (aij), i = 1, 2,…m, j = 1, 2,…n, при этом i-ой

49

строке таблицы соответствуют коэффициенты i-го уравнения. Алгоритм жордановых преобразований таблицы состоит в следующем:

1)выбираем какой-либо ненулевой элемент ai0 j0 0 и называем его разрешающим. Строку и столбец, на пересечении которых стоит разрешающий элемент, называем разрешающей строкой

иразрешающим столбцом;

2)заменяем разрешающей элемент единицей;

3)меняем знаки элементов разрешающей строки за исключением разрешающего элемента на противоположные знаки;

4)элементы разрешающего столбца не изменяем;

5)элементы таблицы aij, находящиеся вне разрешающей строки

иразрешающего столбца, пересчитываем по ”правилу

определителя”. Элемент

aij

заменяем элементом

aijai0 j0 ai0 j aij0 .;

 

 

6)все элементы таблицы делим на разрешающий элемент;

7)меняем местами символы yi0 и x j0 .

Проведение жордановых преобразований таблицы с разрешающим элементом ai0 j0 приводит к новой таблице, которой соответствует линейная система m уравнений, выражающих переменные yi при i i0 и x j0 через n переменных xj при j j0 и yi0 .

Применим метод жордановых преобразований для решения сформулированной ранее задачи.

y1 = 4x1 + 3x2 + 2x3 y2 = 3x1 + 2x2 + x3 y3 = x1+ x2 + 2x3

Таблица, соответствующая рассматриваемой системе имеет вид:

50

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]