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

Экономические задачи линейного программирования и их решение с испол

..pdf
Скачиваний:
14
Добавлен:
15.11.2022
Размер:
2.4 Mб
Скачать

6x

3x

60,

l

 

1

2

 

1

1x1

2x2

20,

l2

0x

2x

20.

l

 

1

2

 

3

Координаты прямых приведены в табл. 1.2.

 

 

 

 

 

 

 

Таблица 1.2

 

 

 

 

 

 

 

 

 

 

l1

 

l2

 

l3

x1

 

x2

x1

 

x2

x1

 

x2

0

 

20

0

 

10

0

 

10

10

 

0

20

 

0

10

 

10

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

Построим вектор n (3; 2,5). Перпендикулярно к нему прово-

дим линию уровня α = 0. Параллельным перемещением прямой α в направлении вектора n находим крайнюю точку области определения Х*, в которой целевая функция достигает максимума (рис. 1.8).

Рис. 1.8

21

Решим совместно уравнения граничных прямых l1 и l2:

6x

3x

 

 

60,

 

6x

3x

 

60,

 

6(20

 

2x

 

) 3x

 

60,

 

 

 

1

 

2

 

 

 

 

 

1

 

 

2

 

 

 

 

 

 

2

 

2

 

 

x1 2x2

20

 

 

x1 20 2x2

 

 

 

x1 20 2x2

 

 

 

120 12x

2

3x

2

60,

 

 

9x

2

60,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1 20 2x2

 

 

x1 20 2x2 .

 

 

 

 

 

 

 

Получаем х1 = 6,6, х2 = 6,7.

Оптимальное решение: x1 = 6,6, x2 = 6,7, z = 6,6 · 3 + 6,7 · 2,5 = = 36,55.

Анализ

Для достижения максимальной прибыли необходимо производить продукцию А в количестве 6,6 ед. и продукцию В количестве 6,7 ед. Максимальная прибыль равна 36,55 руб.

1.4. Симплекс-метод

Симплекс-метод – это метод последовательного улучшения опорного плана. В соответствии с основной теоремой линейного программирования целевая функция достигает своего экстремального значения в одной из крайних точек области определения, поэтому, если найти какую-нибудь крайнюю точку многогранника решений, то можно перейти от нее к другой крайней точке, в которой значение целевой функции лучше (в смысле критерия оптимальности), чем в предыдущей. Продолжив целенаправленный перебор крайних точек, мы в конце концов найдем точку, в которой целевая функция примет экстремальное значение. Для этого нужно иметь признак того, что целевая функция в одной крайней точке лучше, чем в другой. Идея симплекс-метода – в переходе от одного опорного плана к не худшему (в смысле критерия оптимальности). Таким образом, дело сводится к перебору опорных планов задачи.

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

22

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

Опорное решение задано, если среди коэффициентов системы ограничений можно выделить единичный минор порядка ( m m ), где m – число уравнений. Допустим, что условия выполнены: задача имеет n переменных, m ограничений, и при первых m переменных коэффициенты составляют единичный минор ( m m ).

Таким образом, решение задач линейного программирования симплекс-методом состоит из двух этапов: 1) нахождение исходного опорного плана; 2) переход от исходного опорного плана к другому, более близкому к оптимальному опорному плану, затем к следующему, и так до тех пор, пока задача не будет решена.

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

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

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

z c1x1 c2 x2 ... cn xn max,

x1 ... a1,m 1xm 1 ... a1 j x j ... a1n xn b1,x2 ... a2,m 1xm 1 ... a2 j x j ... a2n xn b2 ,

... ... ... ... ... ... ... ... ... ... ... ... ... ...,

xm ... am,m 1xm 1 ... amj x j ... amn xn bm ,

x1, x2 , ..., xn 0.

Исходный опорный план: х1 = b1, x2 = b2, xm = bm, xm+1 = 0, xn = 0. Ненулевые переменные называют базисными, нулевые переменные –

свободными.

23

На практике для решения задач симплекс-методом используют симплекс-таблицы (каждой таблице соответствует свое опорное решение). Составим симплекс-таблицу (табл. 1.3):

Таблица 1.3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Базис-

 

 

 

 

 

P1

 

 

 

 

Pm

 

 

Pm 1

 

 

Pj

Pn

 

ные

План

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

С

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

перемен-

 

 

 

 

x1

 

 

xm

 

xm+1

 

xj

xn

bi/aij

ные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

b1

 

0

 

1

 

 

 

0

 

 

a1,

 

a1j

a1n

b1/a1j

 

 

 

 

 

 

 

m+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

b2

 

0

 

0

 

 

 

0

 

 

a2,

 

a2j

a2n

b2/a2j

 

 

 

 

 

 

 

m+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xi

bi

 

0

 

0

 

 

 

0

 

 

ai,

 

[aij]

ain

bi/aij

 

 

 

 

 

 

 

m+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xm

bm

 

0

 

0

 

 

 

1

 

 

am,

 

amj

amn

bm/amj

 

 

 

 

 

 

 

m+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j

0

0

 

0

 

 

 

0

–cm+1

 

–cj

–cn

 

 

 

 

 

 

j

 

 

 

 

 

( j 1, 2,

...,u),

 

 

 

 

(1.5)

 

 

 

 

 

PjC c j

 

 

 

 

где j – оценка j-й переменной;

x1, x2 , ..., xm – базисные переменные;

b1,b2 , ...,bm – значения базисных переменных, остальные переменные равны 0;

C – вектор коэффициентов целевой функции при базисных переменных;

P j – вектор коэффициентов системы ограничений при j-й переменной xj.

24

Алгоритм симплекс-метода состоит в следующем:

1.Анализ опорного плана на оптимальность. Если все оценки

j 0, то план оптимален. Если хотя бы одна оценка ∆j < 0, то необходим переход к другому плану, т.е. пересчет всех коэффициентов.

2.Выбор разрешающего элемента. Решаем вопрос о том, какую переменную ввести, а какую вывести из базиса: вводим переменную, у которой ∆j < 0. Если таких несколько, то вводим ту,

у которой j наибольшее по модулю. Допустим, это переменная xj. Рассматриваем отношение элементов вектора плана к соответствующим положительным коэффициентам вводимой переменной:

b1/a1j , b2/a2j , …, bm/amj (см. последний столбец табл. 1.3). Минимальное отношение покажет строку выводимой пере-

менной, например bi/aij – минимальное, тогда выводим хi, а вводим хj; аij – разрешающий элемент, находится на пересечении i-й строки j-го столбца.

3. Пересчет симплекс-таблицы. В новой таблице записываем новые базисные переменные (заменяем хi на хj) и новый вектор-

столбец C . Вектор-план P и векторы-коэффициенты Pj пересчи-

тываются следующим образом:

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

б) все остальные элементы таблицы пересчитываются по мнемоническому «правилу прямоугольника»;

в) оценочная строка пересчитывается двумя способами: по формуле (1.5) или по мнемоническому «правилу прямоугольника».

Затем переходим к п. 1 данного алгоритма.

Напомним мнемоническое «правило прямоугольника». По двум точкам (разрешающий элемент aij и пересчитываемый элемент akl ) строится прямоугольник (рис. 1.9).

25

Новое значение элемента равно старому значению элемента минус произведение элементов противоположной диагонали прямоугольника, деленное на разрешающий элемент:

Рис. 1.9

akl

akl

ail akj

, k i,

l j,

(1.6)

 

 

 

aij

 

 

где akl – старое значение элемента; akl – новое значение элемента.

Возможно возникновение различных ситуаций решения:

1)единственное решение: если в оптимальном плане для всех небазисных переменных оценки больше нуля;

2)множество решений: если все оценки неотрицательны, но для небазисных переменных есть хотя бы одна оценка, равная нулю, тогда эту переменную можно вводить в базис и получить другое оптимальное решение;

3)нет решений: если только одна переменная имеет отрица-

тельную оценку j , но среди коэффициентов вектора Pj нет ни

одного положительного, т.е. мы не можем перейти к другому опорному плану.

Исходное опорное решение не всегда задано, его можно найти, используя метод Гаусса решения системы линейных уравнений. Необходимо преобразовать систему линейных ограничений таким образом, чтобы коэффициенты при m переменных составляли единичный минор. Эти m переменных и будут базисными. Тогда исходное опорное решение следующее: базисные переменные равны свободным членам соответствующих уравнений, а остальные переменные равны нулю.

Решение оптимальной задачи рассмотрим на конкретном примере.

26

Пример Постановка задачи. Предприятие располагает ресурсами сы-

рья, рабочей силы и оборудованием, необходимым для производства любого из четырех видов производимых товаров – 1, 2, 3, 4. Затраты ресурсов на изготовление единицы данного вида товаров, прибыль, получаемая от реализации единицы товара, а также запасы ресурсов указаны в табл. 1.4.

Таблица 1.4

 

 

 

Затраты ресурса

 

Запас

Вид ресурса

 

на единицу товара

 

 

 

ресурса

 

1

 

2

3

 

4

 

 

 

 

Сырье, кг

5

 

7,5

2

 

1

126

Рабочая сила, ч

6

 

1

2

 

2

152

Оборудование, станко-часов

15

 

6,5

1

 

1

112

Прибыль от единицы

 

 

 

 

 

 

 

товара, руб.

20

 

18

26

 

30

 

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

Моделирование. Обозначим основные переменные прямой задачи:

х1 – количество выпускаемого товара 1,

х2 – количество выпускаемого товара 2,

х3 – количество выпускаемого товара 3,

х4 – количество выпускаемого товара 4. Тогда целевая функция

z = 20x1 + 18x2 + 26x3 + 30x4 → max.

(1.7)

Система ограничений:

 

 

 

 

5x

7,5x

2x

x

126,

 

 

1

2

3

4

 

 

6x1

x2 2x3 2x4 152,

(1.8)

 

 

 

 

x4

112,

 

15x1 6,5x2 x3

 

x1, x2, x3, x4 ≥ 0,

где (1.7) – суммарная прибыль; (1.8) – ограничения на расход каждого вида ресурса, левая часть –

затратыресурса, праваячасть– запасресурса.

27

Приведем модель задачи к канонической форме, добавив в левую часть каждого ограничения (1.8) дополнительные переменные (допуск):

х5 – количество неиспользуемого сырья,

х6 – количество неиспользуемой рабочей силы,

х7 – количество неиспользуемого оборудования. Каноническая форма:

z = 20x1 + 18x2 + 26x3 + 30x4 → max.

(1.9)

5x

7,5x

2x

x

x

126,

 

 

1

2

3

4

5

 

 

6x1

x2 2x3 2x4 x6 152,

(1.10)

 

 

 

 

 

x7

112,

 

15x1 6,5x2 x3 x4

 

 

x1, x2, x3, x4, x5, x6, x7 ≥ 0.

(1.11)

Решение

Решим задачу симплексным методом, который представляет собой итерационный процесс. Каждая итерация позволяет перейти от одного решения системы (1.10),(1.11) к другому решению, дающему большее значение целевой функции (1.9).

Исходное опорное решение:

x1 0, x2 0, x3 0, x4 0, x5 126, x6 152, x7 112, или, в векторной форме: x (0, 0, 0, 0,126,152,112), z 0.

x5 , x6 , x7 – базисные переменные.

Построим первую симплекс-таблицу (табл. 1.5):

Таблица 1.5

Базис

 

 

 

 

20

18

26

30

0

0

0

Приме-

C

 

План

 

x1

x2

x3

x4

x5

x6

x7

нение

 

 

 

 

 

x5

0

 

126

5

7,5

2

1

1

0

0

126/1

x6

0

 

152

6

1

2

[2]

0

1

0

152/2

x7

0

 

112

15

6,5

1

1

0

0

1

112/1

j

 

 

 

 

–20

–18

–26

–30

0

0

0

 

28

В первой колонке приведены базисные переменные, во второй колонке – коэффициенты целевой функции при базисных переменных, в третьей колонке – значения базисных переменных в плане. Далее столько колонок, сколько переменных в задаче. В эти колонки заносятся коэффициенты при соответствующих переменных ограничения (1.10). Над переменными – коэффициенты целевой функции.

Пусть:

i – номер строки, i = 1, 2, 3, 4;

j – номер столбца (переменной), i = 1, 2, …, 7;

cj – коэффициент целевой функции при j-й переменной; p j – вектор коэффициентов при j-й переменной.

Каждая итерация содержит ряд действий. 1. Оценка переменных:

j C p j c j .

Оценка j-й переменной равна произведению вектора C и вектора коэффициентов при j-й переменной pj минус коэффициент

целевой функции при этой переменной. Например, оценка первой переменной x1:

 

 

 

 

 

 

 

0

 

5

 

 

 

 

 

 

 

c

0

 

 

 

 

 

 

 

C

 

p

 

6

20

20.

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

2.Выбор разрешающего элемента. Одну переменную вводим

вбазис и одну переменную выводим из базиса. Вводим в базис переменную, у которой отрицательная оценка наибольшая по абсо-

лютной величине. В нашем примере это x4.

Чтобы определить, какую переменную вывести из базиса, находим отношение плана к соответствующим положительным ко-

29

эффициентам вводимой переменной (x4), см. колонку «Примечание» табл. 1.5. Наименьшее отношение укажет строку с выводимой переменной. Пересечение столбца вводимой переменной и строки выводимой переменной – разрешающий элемент. В таблице он выделен рамкой.

3. Пересчет симплексной таблицы. Строим таблицу (как для итерации 1), а лучше продолжить вниз исходную таблицу. В первую колонку заносим новый базис, во вторую – коэффициенты целевой функции при этих базисных переменных.

Строку с разрешающим элементом делим на этот элемент, получаем новую строку (в примере все элементы второй строки разделим на 2 и результат запишем во второй строке новой таблицы). Для вводимой переменной x4 получим коэффициент, равный 1, остальные коэффициенты при этой переменной запишем в виде нулей.

Все оставшиеся элементы новой таблицы удобно рассчитывать, пользуясь «правилом прямоугольника» (см. рис. 1.9). Например, пересчитаем элементы первой строки:

126 1522 1 50,

5 6 1 2,

2

7,5 1 1 7,

220 302 6 70 и т.д.

Оценки j (последняя строка таблицы) можно пересчитать

двумя способами: по формуле (1.6) и по «правилу прямоугольника». Это важно для контроля.

На этом итерация заканчивается. Если есть отрицательная оценка, то переходим к следующей итерации, повторяем пп. 2, 3.

Если нет отрицательных оценок, то план оптимальный.

30

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