Вы находитесь на странице: 1из 11

МОДУЛЬ 1.

МОДЕЛИ И МЕТОДЫ ЛИНЕЙНОГО


ПРОГРАММИРОВАНИЯ

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


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

1.1. Математическая модель общей задачи линейного


программирования
Общая задача линейного программирования (ОЗЛП) формулируется
следующим образом: найти максимум (или минимум) линейной (целевой)
функции F(x) = C1X1 + C2X2 + ... +CnXn
при линейных ограничениях :
а11 х1 +а 12 х 2 + ¿⋅¿ +а1 n х n ⊗b1

{ а 21 х 1 +а22 х 2 + ¿⋅¿ +а2n х n ⊗b2


¿⋅¿⋅¿⋅¿⋅¿⋅¿⋅¿⋅¿⋅¿⋅¿⋅¿⋅¿⋅¿ ¿аm1 х 1 +аm2 х2 + ¿⋅¿ +аmn хn ⊗bm
, (1.1)

где ⊗ - один из знаков « = », «  », «  » и на часть или все переменные


наложено условие не отрицательности : хj  0 при j = 1,r , r  n.
Большая часть прикладных программ сводится к стандартной задаче
n

ЛП: F(X) = CjXj  max ( min )
j=1

при ограничениях А Х  B ; ( A X≥B ) (1.2)


Хj  0 , j = 1,n , где
Х = (х1,х2,х3,. . . ., хn) - вектор переменных;
С = (с1, с2, с3,. . . , сn) - вектор коэффициентов линейной функции;
B = (b1, b2, b3,. . . . , bm) - вектор ограничений;
A = аij - матрица коэффициентов.
Основные вычислительные схемы симплекс - метода и его
модификации разработаны для решения задач линейного программирования
в канонической форме, т. е.
n

F(X) = j=1 CjXj  max (min)
А Х = B , (1.3)
Хj  0, j= 1,n

1.2. Симплекс - метод решения задач линейного программирования

Любая задача линейного программирования (ЛП) независимо от вида


записи может быть приведена к стандартной и канонической форме и решена
симплексным методом (СМ), который в определенном смысле является
универсальным методом в ЛП. Алгоритм С- метода носит итерационный
характер.
Допустимым решением задачи ЛП назовем всякое решение системы
ограничений (1.3), удовлетворяющее условиям не отрицательности
Хj  0 , j = 1,n .
В производственных задачах, математические модели которых
исследуются методами ЛП, всегда на переменные Xj (j = 1,n ) накладывается
требование не отрицательности переменных .
Симплекс - метод основан на том, что если в матрице ограничений
имеется m строк и они линейно независимы, то существует набор из m
столбцов, называемых базисными, которые также линейно независимы.
Совокупность значений переменных, соответствующих базисным столбцам,
называется базисным решением (опорным решением, опорным планом). Если
в системе ограничений - уравнений содержится n переменных Xj ( j = 1,n )
и ранг ее равен m, то в симплексном методе на каждой итерации
отыскиваются значения m базисных переменных, удовлетворяющих m
линейным ограничениям, а остальные n - m переменных называются
свободными и полагаются равными нулю.
Симплексный метод позволяет переход от одного базисного решения к
другому посредством замены за каждую итерацию одного столбца в базисе
на один небазисный столбец до тех пор, пока не будет найдено допустимое
решение, удовлетворяющее max (min) целевой функции. Это решение
называется оптимальным.
Геометрическая интерпретация симплекс – метода: если условия задачи
ЛП непротиворечивы, то область ее допустимых решений образует выпуклый
многогранник в n-мерном пространстве. При этом оптимальное решение,
если оно существует, обязательно достигается в некоторой вершине
многогранника. Чтобы найти решение задачи ЛП, достаточно перебрать лишь
планы, соответствующие вершинам многогранника допустимых решений
(опорные, базисные планы).
С - метод позволяет осуществить упорядоченный перебор вершин
многогранника. После определения одной из вершин этот метод помогает
установить, является ли найденный план оптимальным, т. е. достигнут ли в
этой вершине экстремум целевой функции. Если план неоптимален, то
производится переход к такой соседней вершине многогранника, которая
обеспечивает не меньшее (не большее) значение целевой функции.
Рабочим аппаратом С - метода являются симплексные таблицы.
Последовательно переходя от одной таблицы к другой, в итоге получим
оптимальное решение.
Чтобы решить задачу табличным симплекс-методом, необходимо
представить ее в канонической форме, т. е. в системе ограничений должны
быть знаки «равно», правые части неотрицательными числами и на все
переменные наложено требование не отрицательности.
Если в системе ограничений содержатся неравенства, то каждое
неравенство нужно преобразовать в уравнение путем введения
дополнительных или балансовых переменных. Они вводятся по одной
переменной в каждое неравенство со знаком «+», если неравенство имеет
знак , и со знаком «-», если неравенство имеет знак . Обычно нумерация
балансовых переменных продолжает нумерации основных переменных
задачи. Эти же переменные с нулевыми коэффициентами вводятся в
целевую функцию.
Исходную систему уравнений полезно записать в векторной форме:

А 1Х1 + А 2Х2 + .... + А nXn = B , где


а11 а12 а1 n b1

( ) ( )
А̄ 1 = а21 ,

аm 1
А̄ 2 = а22 , . ..

аm 2
() ()
А̄n = а2 n ,

а mn
B̄= b2 ,

bm

Для построения первой симплексной таблицы из векторов А j нужно


выбрать несколько векторов, компоненты которых образуют единичную
матрицу Е.
1 0 0 ⋯ 0
0
E= 0

0
( 1
0

0
0
1

0




0
0

1
)
Если нет таких векторов, то можно использовать один из следующих
способов:
1. Произвести m преобразований по схеме Жордана - Гаусса системы
ограничений (1.3) для разрешения относительно m любых переменных. В
результате получим в матрице системы (1.3) m базисных вектор - столбцов
А j, т.е. векторов, у которых одна координата равна 1, а другие - нулю,
причем единицы находятся в различных строках матрицы. Соответствующие
базисные переменные записывают в столбец Х баз первой симплексной
таблицы.
2. Если исходная система ограничений задачи ЛП содержит
неравенства со знаком , то при введении дополнительных неотрицательных
переменных для преобразования неравенств в уравнения мы сразу получаем
те базисные векторы, которые и образуют первый базис в симплексной
таблице.
3. Если в исходной системе ограничений неравенств имеются знаки ,
то балансовые переменные вводятся в левую часть неравенства со знаком
«-». Соответствующий вектор - столбец такой переменной будет иметь
следующие координаты:
0
0

0
−1
0

0
В этом случае будет недоставать векторов, координаты которых могут
образовать единичную матрицу Е для первого базиса. В каждое такое
неравенство вместе с балансовой переменной вводится еще одна переменная
(искусственная): Хα1, Хα2 , .... .
На эти переменные тоже налагается требование не отрицательности: Хα1
 0, Хα2  0, ... .
В целевую функцию в этом случае вводится дополнительное слагаемое
вида:  М (Хα1 + Хα2+ ... + Хαm), где знак « + » используется в задачах на
минимум (Fmin), знак « - » в задачах на максимум (Fmax). М >0 - очень
большое число. В расчетах на ЭВМ обычно принимают М = 1017 .
Способ решения этой задачи называется симплекс - методом с
использованием искусственного базиса (расширенная задача). Симплексные
таблицы заполняются, как и в обычном симплекс - методе. Справедливо
утверждение: если опорное решение (опорный план) является оптимальным,
то все искусственные переменные равны нулю:
Хα1 = 0 , Хα2 = 0 , ... , Хαm = 0.
Последовательность расчетов по симплексному методу рассмотрим на
следующем примере.
Предприятие располагает ресурсами сырья, оборудованием и рабочей
силой, необходимыми для производства любого из четырех видов
пользующихся спросом товаров.
Известны затраты ресурсов на изготовление единицы каждого вида
товара, запасы ресурсов, а также величина прибыли, получаемая
предприятием за единицу товара (табл. 1.1).
Таблица 1.1
Исходная информация задачи
Вид товара Объем
А Б В Г ресурс
Вид ресурса ов
Сырье 1 вида, кг. 3 5 2 4 360
Сырье 2 вида, кг. 20 14 20 30 400
Оборудование, станко – ч. 10 14 8 12 134
Рабочая сила, ч. 6 9 12 3 96
Прибыль на единицу
30 25 50 40
товара, ден. ед.

Определить оптимальный ассортимент товаров, максимизирующий


прибыль и оценки всех четырех видов ресурсов относительно оптимального
ассортимента.
Решение
Введем переменные х1, х2, х3, х4, - соответственно количество
производимого товара вида А, Б, В, Г, тогда математическая модель
запишется в виде
П = 30 х1 + 25 х2 + 50 х3 + 40 х4  max
3 х 1 +5 х2 +2 х 3 + 4 х 4 + х 5 ≤360 ,

при ограничениях
{ 20 x 1 +14 x 2 + 20 x 3 + 30 x 4 ≤400 ,
10 x 1 +14 x 2 + 8 x3 +12 x 4 ≤134 ,
6 x 1 + 9 x 2 + 12 x 3 +3 x 4 ≤96 ,

хj  0, j = 1,4
Для решения задачи симплекс - методом преобразуем неравенства в
уравнения, получим:
П = 30 х1 + 25 х2 + 50 х3 + 40 х4 + 0 х5 + 0 х6 + 0 х7 + 0 х8  max
3 x 1 + 5 x 2 + 2 x 3 + 4 x 4 + х5 =360 ,

при ограничениях
{
20 x 1 +14 x 2 + 20 x 3 + 30 x 4 + х 6 =400 ,
10 x 1 +14 x 2 + 8 x3 +12 x 4 + х 7 =134 ,
6 x 1 + 9 x2 +12 x 3 +3 x 4 + х 8 =96 ,

хj  0, j = 1,8
По экономическому содержанию переменные х5, х6, х7, х8 обозначают
неиспользуемое количество соответствующего ресурса каждого вида,
поэтому в целевую функцию эти дополнительные переменные входят с
нулевыми коэффициентами.
Первую симплексную таблицу заполняют следующим образом :
1. В верхней строке таблицы выписывают коэффициенты при неизвестных
переменных целевой функции исходной задачи.
2. В столбцы А 1, А 2, ..., А n выписывают коэффициенты при
переменных х1, х2, ...., хn в уравнениях системы ограничений.
3. В столбец B записывают правые части уравнений системы
ограничений.
4. В столбец А баз вписывают те векторы, координаты которых образуют
единичную матрицу Е (базис.).
5. В столбец C баз вписывают коэффициенты при базисных переменных из
целевой функции.
6. Нижняя строка таблицы Zj - Cj = С jбаз∙ А j - Cj называется индексной
строкой или строкой оценок и служит для проверки полученного в
очередной таблице решения на оптимальность.
Первый план симплексной таблицы - первый опорный план задачи:
х1 = 0, х2 = 0, х3 = 0 , х4 = 0, х5 = 360, х6 = 400, х7 = 134, х8 = 96
Это соответствует тому, что ничего не производится, ресурсы не
используются, прибыль - целевая функция равна нулю и не основные
переменные принимают свои предельные значения. С геометрической точки
зрения получены координаты вершины многогранника (0, 0, 0, 0, 360, 400,
134, 96).
Решение задачи заключается в последовательном введении в план
основных переменных, по одной на каждом этапе расчета, пока не будет
получено оптимальное решение.
Сначала определяется, какая именно из четырех переменных вводится
в базис. Так как задача решается на максимум, то целесообразнее начать с
более прибыльного товара. Самым прибыльным является товар В, в
индексной строке симплексной таблице ему соответствует наибольше по
абсолютной величине число (50).
Определим, в каком количестве предусмотрен выпуск товара В, это
зависит от объема ресурсов и нормативов их затрат. Сырья 1 вида достаточно
на 180 единиц товара В (360 кг : 2 кг). Сырья 2 вида - на 20 единиц товара В
(400 : 20). Фонда времени оборудования хватит на 16 (134 : 8) единиц,
рабочей силы - 8 (96 : 12 ) единиц товара В. Очевидно, что больше 8 единиц
товара В изготовить не удастся. Поэтому переменная х3 в плане равна 8 и
вводится на место переменной х8, которая исключается из базиса и
принимает нулевое значение. Отметим число 12, находящееся на
пересечении столбца А 3 вводимой переменной х3 и строки х8 выводимой
переменной.
Это число называется разрешающим, ключевым, направляющим
элементом.
Рассмотрим второй этап расчета таблицы 1.2. Прежде всего,
рассчитывается строка вводимой переменной, отмеченная в таблице
стрелкой. Эта строка получается из строки х8 исходного варианта путем
деления всех элементов на направляющий элемент, так как в этом отношении
(1 : 12) переменная х3 замещает переменную х8. В столбце j баз C
проставляется прибыль за единицу товара В (50).
Таблица 1.2
Решение задачи симплексным методом
Баз. 30 25 50 40 0 0 0 0
Cjбаз В
пер. А1 А2 А3 А4 А5 А6 А7 А8
х5 0 360 3 5 2 4 1 0 0 0
х6 0 400 20 14 20 30 0 1 0 0
х7 0 134 10 14 8 12 0 0 1 0
х8 0 96 6 9 12 3 0 0 0 1
Пj - Cj 0 - 30 -25 - 50 - 40 0 0 0 0
х5 0 344 2 3,5 0 3,5 1 0 0 - 1/ 6
х6 0 240 10 -1 0 25 0 1 0 - 5/ 3
х7 0 70 6 8 0 10 0 0 1 - 2/ 3
→х3 50 8 0,5 0,75 1 0,25 0 0 0 1/12
Пj – Cj 400 -5 12,5 0 - 27,5 0 0 0 25/ 6
х5 0 319,5 - 0, 1 0,7 0 0 1 0 - 0,35 1/ 15
х6 0 65 -5 -21 0 0 0 1 - 2,5 0
→х4 40 7 0,6 0,8 0 1 0 0 0,1 - 1/ 15
х3 50 6,25 0,35 0,55 1 0 0 0 - 0,025 0,1
Пj - Cj 592,5 11, 5 34, 5 0 0 0 0 2,75 7/3

После расчета строки х3 пересчитывается столбец ресурсов B .


Сырье 1 вида уменьшится, первоначально оно составляло 360 кг, на каждую
единицу сырья товара В затрачивается 2 кг , всего производится (96 : 12) 8
единиц товара В, следовательно, остающееся неиспользованное сырье 1 вида
составит 344 кг, т.е. 360 - 96/12∙2 = 344 .
Аналогично: 400 - 96/12∙20 = 240 кг - неиспользованное сырье 2 вида,
134 - 96/12∙8 = 70 станко - ч. - остающийся неиспользованным фонд времени
оборудования.
После столбца ресурсов B пересчитываются остальные столбцы
симплексной таблицы .
Схема пересчета (правило Жордана - Гаусса)
------ аij------------------ аis------ i – строка

------ аrj------------------ аrs------ r – разрешающая строка


j – столбец s– столбец
Элемент аij после пересчета по правилу Жордана - Гаусса превращается
' a'rj⋅ais
aij =aij −
в элемент а’ , где ars .
ij
При этом все элементы разрешающего столбца становятся нулями,
кроме разрешающего элемента, который становится равным единице.
Элементы в индексной строке можно рассчитывать либо
непосредственно по формуле C jбаз∙ А j – Сj, либо по правилу Жордана -
Гаусса. Одно из правил следует использовать для расчета, другое - в качестве
контроля. В результате получим второй опорный план: х 1 = 0, х2 = 0, х3 = 8 ,
х4 = 0, х5 = 344, х6 = 240, х7 = 70, х8 = 0 и значение прибыли - 400 д. ед. С
геометрической точки зрения совершен переход в вершину многогранника с
координатами (0,0,8,0,344,240,70,0). Затем необходимо проверить данный
план на оптимальность. Для этого просматривается индексная строка и, если
она содержит отрицательные элементы, то план можно улучшить. Как видим,
она содержит два отрицательных числа, которые указывают что прибыль
может быть увеличена введением в базис переменной х1 или х4. Переменная
х4 вводится в базис, так как ей соответствует наибольшее по абсолютной
величине отрицательное число – 27,5.
Если по индексной строке определен ключевой столбец А j, в
котором все элементы отрицательны, то задача ЛП не имеет решения.
После построения очередного 3 этапа симплексной таблицы
индексная строка содержит только нули и положительные числа. Это
означает, что третий план не может быть улучшен и является оптимальным:
х1 = 0, х2 = 0, х3 = 6,25, х4 = 7, х5 = 319,5, х6 = 65, х7 = 0, х8 = 0, т.е. в
данных условиях производства нельзя получить прибыли более 592,5 д. ед.
При этом выпуск товара В должен составлять 6,25 единицы и товара Г- 7
единиц, остаток сырья первого вида 319,5 кг и второго вида - 65 кг.

1.3. Двойственность в линейном программировании

Двойственная задача заключается в минимизации общей оценки всего


имеющегося количества ресурсов, т.е.
Z = 360 y1 + 400 y2 + 134 y3 + 96 y 4 min
3 y 1 +20 y 2 +10 y 3 +6 y 4 ≥30

при условиях
{5 y 1 + 14 y 2 +14 y 3 +9 y 4 ≥25 ,
2 y 1 +20 y 2 +8 y 3 +12 y 4 ≥50 ,
4 y 1 +30 y 2 +12 y 3 +3 y 4 ≥40

y1  0, y2  0, y3  0, y4  0,
где y1, y2, y3, y4 - условные оценки единицы соответствующего ресурса.
Взаимосвязь оптимальных решений пары двойственных задач
определена следующими теоремами:
Теорема 1. Если одна из задач двойственной пары имеет оптимальное
решение, то другая задача также имеет оптимальное решение, причем
максимальное значение целевой функции исходной задачи и минимальное
значение целевой функции двойственной задачи численно совпадают. Если
же одна из задач не имеет оптимального решения, то система ограничений
двойственной задачи противоречива.
Теорема 2. (равновесия). Если в оптимальном плане значение какой -
либо переменной строго больше нуля, то соответствующее ограничение
двойственной задачи при подстановке в него оптимального плана становится
равенством.
Оптимальное решение двойственной задачи находится в последней
индексной строке симплексной таблицы 5.2. в четырех последних столбцах
дополнительных переменных:
y1 = 0 , y2 = 0 , y3 = 2, 75 , y4 = 2, 333 .
Переменные yi являются объективно-обусловленными оценками одной
единицы ресурса.
Величина двойственной оценки того или иного ресурса показывает,
насколько возросло бы максимальное значение целевой функции, если бы
объем данного ресурса увеличился на одну единицу. Так, если фонд времени
работы оборудования увеличить на один станко-час, то можно построить
новый оптимальный план, в котором общая прибыль будет на 2, 75 д. ед.
выше. Если увеличить на одну единицу рабочую силу, то общая прибыль
возрастет на 2, 333 д. ед. Нулевая оценка, полученная для сырья 1 и 2 вида,
показывает, что сырье 1 и 2 вида используется не полностью и дальнейшее
увеличение его количества не повлияет на оптимальный план выпуска товара
и суммы прибыли.
Двойственные оценки измеряют эффективность малых приращений
объемов ресурсов в конкретных условиях данной задачи.
Если целью является расширение производства и повышение
эффективности плана путем привлечения дополнительных ресурсов, то
анализ оценок поможет выбрать правильное решение. Прирост различных
ресурсов будет давать неодинаковый эффект, т.е. оценки позволяют с
большой точностью выявить узкие места, сдерживающие рост
эффективности производства. С учетом всех конкретных условий задачи
оценки показывают, какие ресурсы более дефицитны, какие менее
дефицитные, какие избыточны. Дефицитные ресурсы имеют самые высокие
оценки. В рассматриваемой задаче фонд времени работы оборудования и
рабочая сила - дефицитные ресурсы. Следующая таблица позволяет
облегчить постановку двойственной задачи
Таблица 1.3
Постановка двойственной задачи.
x1 x2 ... xj ... xn В
y1 a 11 a 12 ... a 1j ... a1n b1
y2 a 21 a 22 ... a 2j ... a2n b2
... ... ... ... ... ... ... ...
ym a m1 a m2 ... a mj ... a mn bm
c1 c2 ... cj ... cn

При использовании теоремы равновесия для отыскания оптимального


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

Табличный процессор EXCEL позволяет упростить расчеты


необходимые для решения оптимизационных задач. Этот программный
продукт предназначен для автоматизации обработки данных различной
формы.
Оптимизационные задачи позволяет решать надстройка EXCEL –
поиск решения.
Рассмотрим технологию решения, используя условия примера из п.1.2.
П = 30 х1 + 25 х2 + 50 х3 + 40 х4  max
3 х 1 +5 х 2 +2 х 3 + 4 х 4 ≤360 ,

при ограничениях
{20 x 1 +14 x 2 + 20 x 3 + 30 x 4 ≤400 ,
10 x 1 +14 x 2 + 8 x3 +12 x 4 ≤134 ,
6 x 1 + 9 x 2 + 12 x 3 +3 x 4 ≤ 96 ,

хj  0, j = 1,4
Решение:
1. Указать адреса ячеек, в которые будет помещен результат
решения (изменяемые ячейки)

А B C D E F
1 x1 x2 x3 x4
2
3 30 25 50 40
4 3 5 2 4 360
5 20 14 20 30 400
6 10 14 8 12 134
7 6 9 12 3 96

Рис. 1.1. Введены исходные данные

Переменные х1, х2, х3, х4 соответственно количество производимого


Х =( х 1 , х 2 , х 3 , х 4 )
товара. В нашей задаче оптимальные значения вектора
будут помещены в ячейках A2:D2, оптимальное значение целевой функции в
ячейке Е3.
2. Ввести исходные данные, как показано на рис. 4.1
3. Ввести зависимость для целевой функции.
Поместить курсор в ячейку Е3.
Поместить курсор на кнопку Мастер функций, расположенную на
панели инструментов.
Ввести Enter. На экране появится диалоговое окно Мастер функций.
В окне категория выберем – Математические.
В окне функции выберем строку СУММПРОИЗВ. На экране появится
диалоговое окно СУММПРОИЗВ.
В строку Массив 1 ввести A2:D2.
В строку Массив 2 ввести A3:D3.
4. Ввести зависимости для ограничений.
5. Запустить команду Поиск решения.
6. Назначить ячейку для целевой функции, указать адреса изменяемых
ячеек.
Поместить курсор в строку Установить целевую ячейку.
Ввести тип целевой функции (максимальное значение, минимальное
значение).
Поместить курсор в строку Изменяя ячейки. Ввести адреса искомых
переменных $A$2:$D$2.
7. Ввести ограничения.
Поместить указатель мышки на кнопку Добавить. Появляется
диалоговое окно Добавление ограничения.
В строке Ссылка на ячейку ввести адрес $E$4. Ввести знак
ограничения. В строке Ограничение ввести адрес $F$4.
Поместить указатель мышки на кнопку Добавить. На экране вновь
появится диалоговое окно Добавление ограничения. Ввести остальные
ограничения задачи.
После введения последнего ограничения нажать на кнопку ОК.
На экране появится диалоговое окно Поиск решения с введенными
условиями.
8. Ввести параметры для решения задач линейного программирования.
В диалоговом окне поместить указатель мышки на кнопку Параметры.
На экране появится диалоговое окно Параметры поиска решения. Установить
флажки в окнах Линейная модель (это обеспечит применение симплекс-
метода) и Неотрицательные значения.
Поместить указатель мышки на кнопку Выполнить.
Через некоторое время появятся диалоговое окно Результаты поиска
решения и исходная таблица с заполненными ячейками значений xi и ячейка
Е3 с максимальным значением целевой функции.
Если указать тип отчета Устойчивость, то можно получить
дополнительную информацию об оптимальном решении.