Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций ОСАУ.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
5.09 Mб
Скачать

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

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

Симплекс (обобщенный тетраэдр), отсекающий на осях координат единичные отрезки.

Видно, что в ограничениях стоят соотношения ≥, ≤, =. При решении задачи ЛП эту систему из «m» ограничений сводят к системе из m уравнений, что легко сделать введя добавочные переменные так, чтобы в зависимости от знака неравенства имело место одно из двух выражений:

Такие изменения просто приводят к увеличению числа переменных, что непринципиально.

Итак, ограничения запишутся виде:

Обозначим для удобства и задачу ЛП запишем:

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

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

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

Допустимые базисные решения дают неотрицательные значения базисных переменных. Допустимые базисные решения являются наиболее простыми из возможных решений системы (1).

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

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

Обозначим через расход ресурсов вида на единицу продукции вида , а через - доход от реализации единицы продукции вида . Все имеющиеся данные представим в виде таблицы, положив в конкретности .

Виды ресурсов

Расход ресурсов на ед. продукции

Запасы ресурсов

T1

T2

T3

T4

S1

а11

а12

а13

а14

b1

S2

а21

а22

а23

а24

b2

S3

а31

а32

а33

а34

b3

Доход от реализации ед. продукции

С1

С2

С3

С4

______

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

.

Эти ограничения легко превратить в уравнения, введя переменную которые можно трактовать как использованные ресурсы вида . При этом получим

Добавим сюда очевидное .

Доход от реализации выпускаемой продукции

Оптимальным планом выпуска продукции будет такое неотрицательное решение (2), при котором целевая функция будет максимальна.

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

Имеется система уравнений

Целевая функция . Требуется найти неотрицательные значения переменной удовлетворяющих (3) и максимизирующих целевую функцию (5).

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

Систему (3) можно разрешить относительно 3-х переменных, например, выразив их через и .

При это получим:

По условию задачи ЛП переменная может принимать только неотрицательные значения, т.е. областью допустимых значений переменной будут область определяемая условиями (4). Каждое из неравенств (4) определяет некоторую полуплоскость на плоскости . Так неравенство определяет правую полуплоскость, а неравенство определяет полуплоскость, лежащую по одну сторону от прямой а именно ту, которая содержит начало координат, что легко проверяется подстановкой в первое из соотношений (6) координат точку (0,0) область, соответствующая т.е. слева от является запрещенной. Из рисунка, приведенного ниже, видно, что допустимой областью значений переменной и является замкнутый выпуклый многоугольник o a b c d.

Рис.1

Проведенное построение позволяет дат геометрическую интерпретацию базисному решению. Т.к. каждая прямая на рисунке соответствует обращению в нуль одной из переменной, то в точках пересечения 2-х прямых будут обращаться в нуль две, т.е. в нашем случае переменных. Но есть число свободных переменных, обращения которых в нуль соответствует базисному решению. Таким образом, точки пересечения прямых определяют базисное решение задачи ЛП (т.т. о, a, b, c, d, e, f, g, n, k).

Среди базисных решений имеются такие, которые не принадлежат области допустимых решений. Это недопустимые базисные решения (т.т. , e, f, g, n, k). Области допустимых решений принадлежат только те точки пересечения прямых , которые являются вершинами многоугольника допустимых решений. Следовательно, вершины многоугольника допустимых решений соответствуют допустимым базисным решениям.

Рассмотрим теперь условия обращения в «max» и формулы (5) геометрически при любом . Выражение (5) определяет прямую, проведенную под углом 450 к оси абсцисс, причем увеличению соответствует перемещению прямой в направлении стрелки, показанной на рисунке 1. Это прямая будет совместна с допустимым решением задачи только в том случае, если она имеет общие точки с областью допустимых решений. Максимальное значение получается при крайнем положении прямой, когда она только касается многоугольника допустимых решений. Ясно, что такая прямая обязательно проходит хотя бы через одну из её вершин, которые, как мы видим, соответствует допустимым базисным решениям. (Отметим, что если бы, скажем, прямая , бала бы параллельной , то тогда бы линия целевой функции достигла max значения на линии , т.ею сразу двух вершин (a b n- мерном случае – и более) и решениями были бы бесчисленные множества точек на участке a b).

Таким образом, мы приходим к очень важному выводу, что решение задач ЛП, обращается в extr Ц.Ф. , обязательно лежит среди допустимых базисных решений. Кстати, этой вывод легко обобщается на случай произвольных и , когда . Полученный вывод позволяет наметить путь решения задачи ЛП. Поскольку решение должно находится среди допустимых базисных решений, число которых, то можно найти все допустимые базисные решения и для каждого из них вычислить значение . Окончательным решением явится то из найденных решений, для которого значения будет .

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

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

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

Разберем метод более подробно на рассмотренном ранее примере (3)-(5).

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

Положив их равными нулю, из (3) находим базисное решение , которое является допустимым и при котором

.

Проверку того, не достигнут ли при найденном решении extr (в данном случае max) целевой функции, можно сделать путем поиска нового базисного решения, при котором целевая функция будут больше. Для перехода к новому допустимому базисному решению одну из свободных переменных или следует сделать базисной. При этом, т.е. после перевода её из свободных, когда она была =0, в базисные, она согласно (4) будет отличной от нуля, т.е. возрастает. Следовательно, если какие-либо из свободных переменных входит в выражение для целевой функции со знаком «+», а значит при её увеличении целевой функции возрастает, то «max» целевой функции не достигнут и данную переменную следует превратить в базисную, сделать её отличной от нуля. Вместо этой переменной, переведенной из свободной в базисную, надо из старого базиса перевести одну из переменных в свободную. Но какую именно?

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

В рассматриваемом примере в выражении для целевой функции (5) со знаком «+» входит свободная переменная . Значит «max» целевой функции не достигнут и переменную следует сделать из свободной базисной. Для определения новой свободной переменной взамен , перешедшей в базисные, выразим старые базисные переменные через сиарые свободные и , приведя уравнение (5) к (6).

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

Для продолжения решения преобразуем (3) к виду, когда новые базисы переменных зависят от новых свободных переменных и . Из 2-го уравнения системы (6) сразу получаем:

Целевую функцию также выразим через новые свободные переменные и

Повторив приведенные ранее рассуждения, приходим к выводу, что «max» целевой функции не достигнут т.к. входит в (8) со знаком «+». Значит надо свободную переменную перевести в базисную, а какую базисную надо перевести в свободные вместо ?

Обратимся к (7) когда свободная переменная , то видно, что при возрастании новой базисной переменной переменные и не уменьшаются, а уменьшается. Её и переведем из базисных в свободные. Итак, новый базис , новые свободные переменные и . Разрешая (7) относительно новых базисных переменных и , получим

Целевая функция при этом принимает вид

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

При этом .

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