Научная статья на тему 'Виды задач линейного программирования, способы их решения'

Виды задач линейного программирования, способы их решения Текст научной статьи по специальности «Математика»

CC BY
4562
1535
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук

Аннотация научной статьи по математике, автор научной работы — Дунаев Д. Н.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Дунаев Д. Н.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Виды задач линейного программирования, способы их решения»

ВИДЫ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ, СПОСОБЫ ИХ РЕШЕНИЯ

© Дунаев Д.Н.*

Уфимский государственный авиационный технический университет,

г. Уфа

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

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

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

Общей задачей линейного программирования называется задача нахождения экстремума (максимума или минимума) линейной функции:

2(х) = С\Х\ + С2Х2 + ... + СгХп (1)

определенной на некотором выпуклом подмножестве п-мерного пространства. Данное подмножество задается системой уравнений и неравенств:

ацХ] + $12X2 + $13X3 + ... + а\пхп — Ь\ а2\Х\ + $22X2 + $23X3 + ... + а2пхп — Ь $31X1 + $32X2 + $33X3 + ... + а3пхп — Ь

(2)

am1X1 + am2X2 + am3X3 + . • • + amnxn — Ьп x1 , x2, x3, . • •, Хп

> о

Равенства и неравенства, входящие в систему уравнений, называются ограничениями. Функция называется функцией цели. Любое решение, удовлетворяющее системе (2) называется планом задачи. План задачи, при котором целевая функция принимает своем максимальное (минимальное) значение, называется оптимальным.

* Аспирант кафедры Автоматизированных систем управления.

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

- иметь единственное решение;

- иметь бесчисленное множество решений;

- не иметь решения:

• из-за несовместимости системы ограничений;

• из-за неограниченности функции цели на множестве планов. Методы решения задач линейного программирования:

1. Графический метод.

Графический способ решения ЗЛП может применяться, в случае если целевая функция содержит две, реже три, неизвестные переменные.

Рассмотрим на примере. Найти максимальное значение целевой функции:

2{х) = 3х1 + 2х2 (3)

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

х1 + 2х2 < 6 2x1 + 2x2 < 8 -х1 + х2 < 1 х1, х2 > 0

Система неравенств (4) образует многоугольник ОЛБСБ допустимых решений (рис. 1).

Рис. 1. Область допустимых решений

Вершины ОЛБСБ называются опорными планами. Если задача имеет единственное решение, то оптимальный план совпадает с одним из опорных планов. Линейная целевая функция на графике перпендикулярна целевому вектору (3; 2) и свое максимальное значение принимает в точке С (3,33; 1,33) = 12.66.

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

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

В 1949 году американский математик Джордж Бернард Данциг разработал эффективный метод решения задач линейного программирования (ЗЛП) -симплекс-метод. Основное свойство симплекс метода заключает в его ите-рационности. На каждом этапе алгоритм переходит к новому опорному плану, улучшая значение целевой функции. Когда улучшение целевой функции невозможно процесс останавливается. Решение задачи симплекс методом предполагает множество однотипных операций, поэтому компьютер становится незаменимым инструментом.

Симплекс метод применим только к задаче в канонической форме. Для перехода от стандартной задачи к канонической необходимо:

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

2. Все неравенства преобразуются в равенства путем добавления дополнительных переменных. Если знак неравенства «меньше либо равно», то дополнительная переменная включается со знаком «+», в противном случае со знаком «-».

В каноническом виде система примет вид:

ацх1 + а12х2 + а13х3 + ... + а1пхп + хп+1 = Ь1

а2х + а22х2 + а2эхэ + ... + а2«х« + х«+2 = Ь2

ат1х1 + ат2х2 + ат3х3 + . • • + атпхп + хп+т Ьт хЬ ^ хЪ хп+т > 0

Ьь Ь2, Ьэ, ..., Ьт > 0

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

1. Нахождение первоначально базисного решения.

2. Переход к лучшему плану путем преобразования Гаусса-Жордана.

3. Проверка решения на оптимальность.

М переменных системы т линейных уравнений с п переменными, коэффициенты при которых образуют единичную матрицу называют базисными переменными.

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

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

уравнения с условием «больше либо равно» вводятся искусственные переменные. В случае наличия искусственных переменных применяется двух-этапный симплекс метод или м-метод.

3. Метод Штифеля.

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

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

4. Методы целочисленного линейного программирования (ЦЛП).

ЦЛП предназначено для решения задач, в которых все или некоторые переменных должны принимать дискретные или целочисленные значения. Несмотря на интенсивные исследования известные вычислительные методы решения задач ЦЛП далеки от совершенства.

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

Методы решения задач ЦЛП основаны на использовании вычислительных возможностей методов линейного программирования. Обычно алгоритмы ЦЛП включают три шага [1]:

1. «Ослабление» пространства допустимых решений задачи ЦЛП путем замены любой двоичной переменной у непрерывным ограничением 0 < у < 1 и отбрасывания требования целочисленности для всех остальных переменных. В результате получается обычная задача линейного программирования;

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

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

Разработаны два общих метода генерирования специальных ограничений, о которых идет речь при реализации шага 3:

1. Метод ветвей и границ;

2. Метод отсекающих плоскостей.

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

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

1. TORA;

2. LIPS;

3. Стандартная надстройка «поиск решения» в MS Excel.

Среди коммерческих можно выделить AMPL, GAMS, LINGO и MPL.

В настоящей статье дается только поверхностный обзор методов решения и видов задач линейного программирования. Хорошее описание методов с многочисленными примерами дается в [1]. Детально познакомиться с методами линейного программирования можно в [4], с методами ЦЛП - в [2, 3].

Список литературы:

1. Таха Хемди А. Введение в исследование операций. - 7-е изд. - М.: Издательский дом «Вильямс», 2005. - 912 с.

2. Белоусов Е.Г. Введение в выпуклый анализ и целочисленное программирование. - М.: МГУ, 1977.

3. Корбут А.А., Филькельштейн Ю.Ю. Дискретное программирование. -М.: Наука, 1968.

4. Гольштейн Е.Г., Юдин Д.Б. Линейное программирование: Теория, методы и приложения. - М.: Наука, 1969.

5. LIPS. Linear Program Solver [Электронный ресурс]. - Режим доступа: http ://sourceforge. net/projects/lipside.

МЕТОД ШТИФЕЛЯ В РЕШЕНИИ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ

© Дунаев Д.Н.*

Уфимский государственный авиационный технический университет,

г. Уфа

В настоящей статье рассматривается решение задач линейного программирования методом Штифеля.

Наиболее простым методом преобразования линейных уравнений традиционно считается метод Гаусса-Жордана. На основе данного метода реализован симплекс метод решения задач линейного программирования. Однако

* Аспирант кафедры Автоматизированных систем управления.

i Надоели баннеры? Вы всегда можете отключить рекламу.