Задачи линейного программирования
Задачей линейного программирования называется задача исследования операций, математическая модель которой имеет вид:
; (5.2)
; (5.3)
; (5.4)
. (5.5)
При этом система линейных уравнений (5.3) и неравенств (5.4), (5.5), определяющая допустимое множество решений задачи W, называется системой ограничений задачи линейного программирования, а линейная функция f(X) называется целевой функцией или критерием оптимальности.
Вчастном случае, если , то система (5.3) - (5.4) состоит только из линейных неравенств, а если I=M, то – из линейных уравнений.
Если математическая модель задачи линейного программирования имеет вид:
; (5.6)
; (5.7)
, (5.8)
то говорят, что задача представлена в канонической форме.
Любую задачу линейного программирования можно свести к задаче линейного программирования в канонической форме. Для этого в общем случае нужно уметь сводить задачу максимизации к задаче минимизации; переходить от ограничений неравенств к ограничениям равенств и заменять переменные, которые не подчиняются условию неотрицательности. Максимизация некоторой функции эквивалентна минимизации той же функции, взятой с противоположным знаком, и наоборот.
Правило приведения задачи линейного программирования к каноническому виду состоит в следующем:
1) если в исходной задаче требуется определить максимум линейной функции, то следует изменить знак и искать минимум этой функции;
2) если в ограничениях правая часть отрицательна, то следует умножить это ограничение на –1;
3) если среди ограничений имеются неравенства, то путем введения дополнительных неотрицательных переменных они преобразуются в равенства;
4) если некоторая переменная хk не имеет ограничений по знаку, то она заменяется (в целевой функции и во всех ограничениях) разностью между двумя новыми неотрицательными переменными:
, где l – свободный индекс, .
Пример 5.1. Приведение к канонической форме задачи линейного программирования:
Решение. Введем в каждое уравнение системы ограничений выравнивающие переменные х4, х5, x6. Система запишется в виде равенств, причем в первое и третье уравнения системы ограничений переменные х4, x6 вводятся в левую часть со знаком «+», а во второе уравнение вводится х5 со знаком «–».
Итак:
Свободные члены в канонической форме должны быть положительными, для этого два последних уравнения умножим на – 1:
В канонической форме записи задач линейного программирования все переменные, входящие в систему ограничений, должны быть неотрицательными. Допустим, что
где .
Подставляя данное выражение в систему ограничений и в целевую функцию и записывая переменные в порядке возрастания индекса, получим задачу линейного программирования, представленную в канонической форме:
Примеры построения экономико-математических моделей задач линейного программирования
Рассмотрим процесс построения математических моделей задач линейного программирования на примерах.
Пример 5.2. Определение оптимального ассортимента продукции.
Предприятие изготавливает два вида продукции – П1, и П2, которая поступает в оптовую продажу. Для производства продукции используются два вида сырья – А и В. Максимально возможные запасы сырья в сутки составляют 9 и 13 единиц соответственно. Расход сырья на единицу продукции вида П1 и вида П2 дан в табл. 5.1.
Таблица 5.1. Расход сырья продукции
Сырье | Рас ход сырья на 1 ед. продукции | Запас сырья, ед. | |
П1 | П2 | ||
А | |||
В |
Опыт работы показал, что суточный спрос на продукцию П1 никогда не превышает спроса на продукцию П2 более чем на 1 ед. Кроме того, известно, что спрос на продукцию П2 никогда не превышает 2 ед. в сутки.
Оптовые цены единицы продукции равны: 3 д. е. – для П1 и 4 д. е. для П2.
Какое количество продукции каждого вида должно производить предприятие, чтобы доход от реализации продукции был максимальным?
Процесс построения математической модели для решения поставленной задачи начинается с ответов на следующие вопроса (Таха Х. Введение в исследование операций: В 2-х кн. – М.: Мир, 1985.).
1. Для определения каких величин должна быть построена модель, т. е. как идентифицировать переменные данной задачи?
2. Какие ограничения должны быть наложены на переменные,
чтобы выполнялись условия, характерные для моделируемой системы?
3. В чем состоит цель задачи, для достижения которой из всех
допустимых значений переменных нужно выбрать те, которые будут соответствовать оптимальному (наилучшему) решению задачи?
Ответы на вышеперечисленные вопросы могут быть сформулированы для данной задачи так: фирме требуется определить объемы производства каждого вида продукции в тоннах, максимизирующие доход в д. е. от реализации продукции, с учетом ограничений на спрос и расход исходных продуктов.
Для построения математической модели остается только идентифицировать переменные и представить цель и ограничения в виде математических функций этих переменных.
Предположим, что предприятие изготовит x1 единиц продукции П1 и х2 единиц продукции П2. Поскольку производство продукции П1 и П2 ограничено имеющимися в распоряжении предприятия сырьем каждого вида и спросом на данную продукцию, а также учитывая, что количество изготовляемых изделий не может быть отрицательным, должны выполняться следующие неравенства:
Доход от реализации хх единиц продукции П1 и х2 единиц продукции П2 составит .
Таким образом, мы приходим к следующей математической задаче: среди всех неотрицательных решений данной системы линейных неравенств требуется найти такое, при котором функция F принимает максимальное значения Fmax.
Рассмотренная задача относится к разряду типовых задач оптимизации производственной программы предприятия. В качестве критериев оптимальности в этих задачах могут быть также использованы: прибыль, себестоимость, номенклатура производимой продукции и затраты станочного времени.
Пример 5.3. Использование мощностей оборудования.
Предприятие имеет т моделей машин различных мощностей. Задан план по времени и номенклатуре: Т – время работы каждой машины; продукции j-го вида должно быть выпущено не менее Nj единиц.
Необходимо составить такой план работы оборудования, чтобы обеспечить минимальные затраты на производство, если известны производительность каждой i-й машины по выпуску j-го вида продукции bij и стоимость единицы времени, затрачиваемого i-й машиной на выпуск j-го вида продукции сij.
Другими словами, задача для предприятия состоит в следующем: требуется определить время работы i-й машины по выпуску j-го вида продукции хij, обеспечивающее минимальные затраты на производство при соблюдении ограничений по общему времени работы машин Т и заданному количеству продукции Nj.
По условию задачи машины работают заданное время Т, поэтому данное ограничение можно представить в следующем виде:
. (5.9)
Ограничение по заданному количеству продукции выглядит следующим образом:
. (510)
Задача решается на минимум затрат на производство:
. (5.11)
Необходимо также учесть неотрицательность переменных .
Задача поставлена так, чтобы израсходовать все отведенное время работы машины, т. е. обеспечить полную загрузку машины. При этом количество выпускаемой продукции каждого вида должно быть по крайней мере не менее Nj. Однако в некоторых случаях не допускается превышение плана по номенклатуре, тогда ограничения математической модели изменяются следующим образом:
. (5.12)
. (5. 13)
. (5.14)
Пример 5.4. Минимизация дисбаланса на линии сборки.
Промышленная фирма производит изделие, представляющее собой сборку из m различных узлов. Эти узлы изготавливаются на n заводах.
Из-за различий в составе технологического оборудования производительность заводов по выпуску j-го узла неодинакова и равна . Каждый i-ый завод располагает максимальным суммарным ресурсом времени в течение недели для производства m узлов, равного Величине Ti.
Задача состоит в максимизации выпуска изделий, что по существу эквивалентно минимизации дисбаланса, возникающего вследствие некомплектности поставки по одному или по нескольким видам узлов.
В данной задаче требуется определить еженедельные затрать времени (в часах) на производство j-го узла на i-м заводе, не превышающие в сумме временные ресурсы i-го завода и обеспечивающие максимальный выпуск изделий.
Пусть xij – недельный фонд времени (в часах), выделяемый на заводе i для производства узла j. Тогда объемы производства узла j будут следующими:
. (5. 15)
Так как в конечной сборке каждый из комплектующих узлов представлен в одном экземпляре, количество конечных изделий должно быть равно количеству комплектующих узлов, объем производства которых минимален:
. (5 16)
Условие рассматриваемой задачи устанавливает ограничение на фонд времени, которым располагает завод i.
Таким образом, математическая модель может быть представлена в следующем виде.
Максимизируем
. (5. 17)
. (5.18)
для всех i и j.
Эта модель не является линейной, но ее можно привести к линейной форме с помощью простого преобразования. Пусть Y – количество изделий:
. (5. 19)
Этому выражению с математической точки зрения эквивалентна следующая формулировка: максимизировать Z = Y при ограничениях
. (5. 20)
. (5.21)
для всех i и j;
Пример 5.5. Задача составления кормовой смеси, или задача о диете (Вентцель Е. С, Овчаров Л. А. Прикладные задачи теории вероятностей. - М.: Радио и связь, 1983).
Пусть крупная фирма (условно назовем ее «Суперрацион») имеет возможность покупать т различных видов сырья и приготавливать различные виды смесей (продуктов). Каждый вид сырья содержит разное количество питательных компонентов (ингредиентов).
Лабораторией фирмы установлено, что продукция должна удовлетворять по крайней мере некоторым минимальным требованиям с точки зрения питательности (полезности). Перед руководством фирмы стоит задача определить количество каждого i-го сырья, образующего смесь минимальной стоимости при соблюдении требований к общему расходу смеси и ее питательности.
Решение
Введем условные обозначения:
xi – количество /-го сырья в смеси;
т – количество видов сырья;
п – количество ингредиентов в сырье;
аij – количество ингредиента j, содержащегося в единице i-го вида сырья;
bij – минимальное количество ингредиента/, содержащегося в единице смеси;
сi - стоимость единицы сырья i;
q — минимальный общий вес смеси, используемый фирмой.
Задача может быть представлена в виде
. (5. 22)
при следующих ограничениях:
на общий расход смеси:
; (5. 23)
на питательность смеси:
; (5. 24)
на неотрицательность переменных:
. (5.25)
Пример 5.6. Задача составления жидких смесей.
Еще один класс моделей, аналогичных рассмотренным выше, возникает при решении экономической проблемы, связанной с из готовлением смесей различных жидкостей с целью получения пользующихся спросом готовых продуктов.
Представим себе фирму, торгующую различного рода химическими продуктами, каждый из которых является смесью нескольких компонентов. Предположим, что эта фирма планирует изготовление смесей m видов. Обозначим подлежащее определению количество литров i-го химического компонента, используемого для получения j-го продукта через хij. Будем предполагать, что
.
Первая группа ограничений относится к объемам потребляемых химических компонентов:
. (5.26)
где Si – объем i-го химического компонента, которым располагает фирма в начале планируемого периода.
Вторая группа ограничений отражает требование, заключающееся в том, чтобы запланированный выпуск продукции хотя бы в минимальной степени удовлетворял имеющийся спрос на каждый из химических продуктов, т. е.
. (5.27)
где Dj – минимальный спрос на продукцию у в течение планируемого периода.
Третья группа ограничений связана с технологическими особенностями, которые необходимо принимать во внимание при приготовлении смеси например, простое ограничение, определяемое некоторыми минимально допустимыми значениями, отношения между объемами двух химических компонентов в процессе получения продукта j:
или .
где r – некоторая заданная константа.
Обозначив через Рij доход с единицы продукции xij, запишем целевую функцию:
. (5.28)
Пример 5.7. Задача о раскрое или о минимизации обрезков.
Данная задача состоит в разработке таких технологических планов раскроя, при которых получается необходимый комплекс заготовок, а отходы (по длине, площади, объему, массе или стоимости) сводятся к минимуму.
Например, продукция бумажной фирмы выпускается в виде бумажных рулонов стандартной ширины L. По специальным заказам потребителей фирма поставляет рулоны других размеров, для этого производится разрезание стандартных рулонов. Типичные заказы на рулоны нестандартных размеров могут включать т видов шириной . Известна потребность в нестандартных рулонах каждого вида, она равна li. Возможны n различных вариантов построения технологической карты раскроя рулонов стандартной ширины L на рулоны длиной li.
Обозначим через aij количество рулонов i-го вида, получаемых при раскрое единицы стандартного рулона по j-му варианту. При каждом варианте раскроя на каждый стандартный рулон возможны потери, равные Рj. К потерям следует относить также избыточные рулоны нестандартной длины li, получаемые при различных вариантах раскроя .
В качестве переменных следует идентифицировать количество стандартных рулонов, которые должны быть разрезаны при j-м варианте раскроя. Определим переменную следующим образом: xj количество стандартных рулонов, разрезаемых по варианту j, .
Целевая функция
минимум отходов при раскрое
. (5.29)
Ограничение на удовлетворение спроса потребителя
. (5.30)
Пример 5.8. Многосторонний коммерческий арбитраж (Таха X.Введение в исследование операций: В 2-х кн. – М.: Мир, 1985.).
В сфере деятельности, связанной с валютными и биржевыми операциями, а также коммерческими сделками контрактного характера, возможны различного рода трансакции, позволяющие извлекать прибыль на разнице в курсе валют. Такого рода трансакции называются коммерческим арбитражем.
Представим себе коммерсанта (условно назовем его N), имеющего возможность реализовать многосторонний коммерческий арбитраж. Предположим, что число валютных рынков, вовлеченных в трансакционную деятельность коммерсанта N, равняется шести, а максимальное число возможных трансакций равняется девяти. Подробные данные, характеризующие рассматриваемую задачу, приведены в табл. 5.2.
При трансакции x1 продажа единицы валютного номинала (ценных бумаг) IIпозволяет приобрести r11единиц валютного номинала I. При трансакции x7 взамен единицы валютного номинала I можно получить r37 единиц валютного номинала IIIи r67единиц валютного номинала VI. Остальные трансакции расшифровываются аналогично. Значения rijмогут быть дробными. Заметим, что при любой трансакции xi (i = 1, 2, 3, 4, 5) каждый из валютных номиналов можно обменять на валютный номинал I. Следует обратить внимание на правило выбора знака перед показателями в табл. 5.2. Чтобы отличать куплю от продажи, будем соответственно использовать знаки «плюс» и «минус» перед показателями, характеризующими данную трансакцию.
Таблица 5.2. Многосторонний коммерческий арбитраж
Валютный номинал | Тип трансакции | Возмож-ность рынка | ||||||||
I | r11 | r12 | r13 | r14 | r15 | -1 | -1 | |||
II | -1 | r26 | r29 | |||||||
III | -1 | r37 | r38 | |||||||
IV | -1 | -1 | ||||||||
V | -1 | r58 | ||||||||
VI | -1 | r67 | -1 | |||||||
Размер транcакции | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x6 | x9 |
Рассмотрим идеализированный случай, когда все трансакции коммерсанта N выполняются одновременно. Ограничения определяются единственным требованием – трансакция возможна лишь при условии, если коммерсант N располагает наличными ценными бумагами. Другими словами, количество проданных ценных бумаг не должно превышать количество приобретенных. Данные ограничения имеют вид
Пусть целевая функция представляет собой чистый доход, выраженный в единицах валютного номинала I, т. е. задача состоит в том, чтобы
Пример 5.9. Транспортная задача.
Имеется три поставщика и четыре потребителя однородной продукции. Известны затраты на перевозку груза от каждого поставщика каждому потребителю. Обозначим их . Запасы грузов у поставщиков равны . Известны потребности каждого потребителя . Будем считать, что суммарные потребности равны суммарным запасам:
.
Требуется составить такой план перевозок, чтобы обеспечить минимальные суммарные затраты при полном удовлетворении потребностей.
Введем переменные хij – количество груза, перевозимого от i-го поставщика j-му потребителю.
Ограничения задачи выглядят следующим образом:
• потребности всех потребителей должны быть удовлетворены полностью:
(5.31)
или в общем виде:
;
• груз поставщика должен быть вывезен полностью:
(5.32)
или в общем виде:
;
• условие неотрицательности переменных:
.
Целевая функция – минимизировать суммарные затраты на перевозку:
. (5.33)
Количество поставщиков и потребителей в общем случае может быть произвольным ( ).
Мы рассмотрели девять примеров типовых задач линейного программирования. Обобщая их, можно сделать следующие выводы.
1. Ограничения в задачах линейного программирования могут
быть выражены как равенствами, так и неравенствами.
2. Линейная функция может стремиться как к максимуму, так
и к минимуму.
3.Переменные в задачах всегда неотрицательны.
Напомним, что от любой из вышеперечисленных задач можно
перейти к канонической (основной) задаче линейного программирования.
5.3. Графические методы решения задач линейного
программирования
Графический способ решения задач линейного программирования целесообразно использовать для:
решения задач с двумя переменными, когда ограничения выражены неравенствами;
решения задач со многими переменными при условии, что в их канонической записи содержится не более двух свободных переменных.
Запишем задачу линейного программирования с двумя переменными:
Ø целевая функция:
(5.34)
Ø ограничения:
; (5.35)
. (5.36)
Каждое из неравенств (5.35) - (5.36) системы ограничений задачи геометрически определяет полуплоскость соответственно с граничными прямыми . В том случае, если система неравенств (5.35) - (5.36) совместна, область ее решений есть множество точек, принадлежащих всем указанным полуплоскостям. Так как множество точек пересечения данных полуплоскостей – выпуклое, то областью допустимых решений является выпуклое множество, которое называется многоугольником решений. Стороны этого многоугольника лежат на прямых, уравнения которых получаются из исходной системы ограничений заменой знаков неравенств на знаки равенств.
Областью допустимых решений системы неравенств (5.35) — (5.36) может быть:
Ø выпуклый многоугольник;
Ø выпуклая многоугольная неограниченная область;
Ø пустая область;
Ø луч;
Ø отрезок;
Ø единственная точка.
Целевая функция (5.34) определяет на плоскости семейство параллельных прямых, каждой из которых соответствует определенное значение Z.
Вектор с координатами с1 и с2, перпендикулярный к этим прямым, указывает направление наискорейшего возрастания Z, а противоположный вектор – направление убывания Z.
Если в одной и той же системе координат изобразить область допустимых решений системы неравенств (5.35) – (5.36) и семейство параллельных прямых (5.34), то задача определения максимума функции Z сведется к нахождению в допустимой области точки, через которую проходит прямая из семейства Z = const, и которая соответствует наибольшему значению параметра Z.
Эта точка существует тогда, когда многоугольник решений не пуст и на нем целевая функция ограничена сверху. При указанных условиях в одной из вершин многоугольника решений целевая функция принимает максимальное значение.
Для определения данной вершины построим линию уровня , проходящую через начало координат и перпендикулярную вектору С = (с1;с2), и будем передвигать ее в направлении вектора до тех пор, пока она не коснется последней крайней (угловой) точки многоугольника решений. Координаты указанной точки и определяют оптимальный план данной задачи.
Заканчивая рассмотрение геометрической интерпретации задачи (5.34) – (5.36), отметим, что при нахождении ее решения могут встретиться случаи, изображенные на рис. 5.1 – 5.4. Рис. 5.1 характеризует такой случай, когда целевая функция принимает максимальное значение в единственной точке А. Из рис. 5.2 видно, что максимальное значение целевая функция принимает в любой точке отрезка АВ.
На рис. 5.3. изображен случай, когда максимум недостижим, а на рис. 3.4 – случай, когда система ограничений задачи несовместима.
Рис. 5.1. Оптимум функции Z достижим в точке А | Рис. 5.2. Оптимум функции Z достижим в любой точке АВ |
Рис. 5.3. Оптимум функции Z недостижим | Рис. 5.4. Область допустимых решений – пустая область |
Отметим, что нахождение минимального значения Z при данной системе ограничений отличается от нахождения ее максимального значения при тех же ограничениях лишь тем. что линия уровня Z передвигается не в направлении вектора , а в противоположном направлении. Таким образом, отмеченные выше случаи, встречающиеся при нахождении максимального значения целевой функции, имеют место и при определении ее минимального значения.
Для практического решения задачи линейного программирования (5.34) – (5.36) на основе ее геометрической интерпретации необходимо следующее.
1. Построить прямые, уравнения которых получаются в результате замены в ограничениях (5.35) - (5.36) знаков неравенств на знаки равенств.
2. Найти полуплоскости, определяемые каждым из ограничений задачи.
3. Определить многоугольник решений.
4. Построить вектор .
5. Построить прямую , проходящую через начало координат и перпендикулярную вектору С.
6. Передвигать прямую в направлении вектора С, в результате чего либо находят точку (точки), в которой целевая функция принимает максимальное значение, либо устанавливают неограниченность функции сверху на множестве планов.
Определить координаты точки максимума функции и вычислить значение целевой функции в этой точке.
Пример 5.10. Рассмотрим решение задачи об ассортименте продукции (Пример 5.2) геометрическим способом.
Решение
Построим многоугольник решений (рис. 5.5). Для этого в системе координат Х10Х2 на плоскости изобразим граничные прямые:
Взяв какую-либо точку, например начало координат, установим, какую полуплоскость определяет соответствующее неравенство. Полуплоскости, определяемые неравенствами, на рис. 5.5 показаны стрелками. Областью решений является многоугольник OABCD.
Для построения прямой строим вектор-градиент и через точку 0 проводим прямую, перпендикулярную ему. Построенную прямую Z = 0 перемещаем параллельно самой себе в направлении вектора . Из рис. 5.5 следует, что по отношению к многоугольнику решений опорной эта прямая становится в точке С, где функция принимает максимальное значение. Точка С лежит на пересечении прямых L1 и L3. Для определения ее координат решим систему уравнений:
Оптимальный план задачи х1 = 2,4; x2=1,4. Подставляя значения х1 и х2 в линейную функцию, получим:
Рис. 5.5. Решение задачи линейного программирования
геометрическим способом
Полученное решение означает, что объем производства продукции П1 должен быть равен 2,4 ед., а продукции П2 – 1,4 ед. Доход, получаемый в этом случае, составит: Z = 12,8 д. е.
Геометрическим способом можно также решать задачи линейного программирования с числом переменных более двух. Для этого исходную задачу преобразуют методом Жордана—Гаусса.
Пример 5.11.
Используя метод Жордана-Гаусса, произведем два полных исключения x1 и x4:
.
В результате приходим к системе
откуда
Подставляя эти значения в линейную функцию Z и отбрасывая в последней системе базисные переменные, получим задачу, выраженную только через свободные неизвестные х1 и x3. Найдем максимальное значение линейной функции
при следующих ограничениях:
Построим многоугольник решений и линейную функцию в системе координат Х20Х3 (рис. 5.6). Согласно рис. 3.6, линейная функция принимает максимальное значение в точке А, которая лежит на пересечении прямых L2 и Х2=0. Ее координаты (0;0,23).
Рис.5.6. Геометрическая интерпретация решения задачи
линейного программирования
Максимальное значение функции
Для отыскания оптимального плана исходной задачи подставляем в преобразованную систему х2 и x3. Окончательно получаем X=(1,078; 0; 0,23; 0,001).
Симплекс-метод
Общая идея симплекс-метода
Для начала работы требуется, чтобы заданная система ограничений выражалась равенствами, причем в этой системе ограничений должны быть выделены базисные неизвестные. Решение задачи при помощи симплекс-метода распадается на ряд шагов. На каждом шаге от данного базиса Б переходят к другому, новому базису с таким расчетом, чтобы значение функции Z уменьшалось, т. е. . Для перехода к новому базису из старого базиса удаляется одна из переменных и вместо нее вводится другая из числа свободных. После конечного числа шагов находится некоторый базис для которого есть искомый минимум для линейной функции Z, а соответствующее базисное решение является оптимальным либо выясняется, что задача не имеет решения.
Алгоритм симплекс-метода
Рассмотрим систему ограничений и линейную форму вида:
; (5.37)
(5.38)
. (5.39)
Используя метод Жордана – Гаусса, приведем записанную систему к виду, где выделены базисные переменные. Введем условные обозначения:
– базисные переменные;
свободные переменные.
; (5.40)
(5.41)
По последней системе ограничений и целевой функции Z построим табл. 5.3.
Таблица 5.3. Симплекс-таблица
Свободные неизвест- ные Базис- ные неизвестные | Свободный член | xr+1 | xr+1 | … | xr+1 |
x1 | β1 | a1r+1 | a1r+2 Наши рекомендации
|