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

2к4с Исследование операций / МУ к практической работе 2

.pdf
Скачиваний:
6
Добавлен:
27.11.2024
Размер:
450.97 Кб
Скачать

Апробация

РЕШЕНИЕ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ С ПОМОЩЬЮ СИМПЛЕКСМЕТОДА

Методические указания к выполнению практической работы для студентов направления

230400 очной, заочной и заочно-сокращенной форм обучения

Цель работы: формирование навыков решения задач линейного программирования симплекс-методом.

ОСНОВНЫЕ ТЕОРЕТИЧЕСКМЕ СВЕДЕНИЯ

Определение 1. Задача линейного программирования – это задача оптимизации линейной функции в области, задавае-

мой линейными ограничениями.

В общем виде задача линейного программирования вы-

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

f (x) (c, x)

 

max (min)

 

 

 

 

 

 

 

 

 

 

(Ai , x) bi , i 1, m1

 

 

 

 

 

 

 

 

 

 

 

(Ai , x) bi , i m1

1,m2

(1)

 

 

 

 

 

 

 

 

(Ai , x) bi , i m2

 

1,m

 

 

 

 

 

 

 

x j

0 ,

j 1, n1

 

 

 

 

 

 

x j

, j

n1

1, n

Определение 2. Оптимизируемая функция f(x) называется критерием, функцией цели или целевой функцией задачи.

Определение 3. Допустимым решением задачи называет-

ся точка x (x1, x 2 ,..., x n ) , удовлетворяющая всем ограниче-

ниям задачи. Допустимые решения образуют область допусти-

мых решений задачи (ОДР).

2

Определение 4. Оптимальным решением задачи называ-

ется допустимое решение, доставляющее целевой функции наи-

большее (наименьшее) значение.

Указанное в определении наибольшее (наименьшее) зна-

чение называется оптимальным значением целевой функции.

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

1) если задача разрешима, то необходимо найти среди до-

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

2) если задача неразрешима, то требуется установить при-

чину неразрешимости задачи.

Решение задачи линейного программирования сим-

плексметодом

Таблица 1

Эквивалентные преобразования

Название пре-

До преобразования

После преобразования

образования

 

 

 

 

 

Преобразование

n

n

неравенства в

ai, jx j bi

ai, jx j ui bi ,

j 1

j 1

 

равенство

 

u i 0

 

 

 

 

 

3

Преобразование

n

 

n

 

 

 

 

 

неравенства

в

ai, jx j

bi

 

 

ai, jx j

ui

bi ,

 

j 1

 

j 1

 

 

 

 

 

 

 

 

 

 

равенство

 

 

 

u i

0

 

 

 

 

 

 

 

 

 

 

 

Переход

от

ре-

n

 

 

 

n

 

 

 

шения

задачи

c jx j

min

 

 

c jx j

 

max

 

j 1

 

 

j 1

 

 

 

 

 

 

 

 

 

 

 

минимизации к

 

 

 

 

 

 

 

 

решению

зада-

 

 

 

 

 

 

 

 

чи максимиза-

 

 

 

 

 

 

 

 

ции

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Переход

 

от

x j

 

x

j

x1

x 2

, x1

0, x 2

 

 

 

 

 

 

j

j

j

j

свободной

пе-

 

 

 

 

 

 

 

 

ременной к пе-

 

 

 

 

 

 

 

 

ременным,

ог-

 

 

 

 

 

 

 

 

раниченным по

 

 

 

 

 

 

 

 

знаку

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Использование перечисленных преобразований (табл. 1)

позволяет любую задачу линейного программирования

свести к следующему виду:

1)требуется максимизировать целевую функцию,

2)все ограничения, кроме ограничений на знак, имеют вид равенств,

4

3) все переменные предполагаются неотрицательными.

Математическая модель такой задачи выглядит сле-

дующим образом

f (x) (c, x)

 

max (min)

 

 

 

 

 

 

 

 

 

( 2)

(Ai , x)

bi

, i

 

1,m

 

 

 

 

 

 

 

x j

0 ,

j

1, n

 

Этот вид задачи линейного программирования

будем называть канонической формой.

Алгоритм 1 - построение начальной симплекс-

таблицы

1)Используя преобразования таблицы 1, свести за-

дачу к каноническому виду (2).

2)Преобразовать все ограничения–равенства к виду,

при котором правая часть ограничения – неотри-

цательное число.

3)Выписать матрицу ограничений и проверить,

есть ли в этой матрице набор столбцов, образую-

щих единичную матрицу.

5

4) Если такого набора нет, то перейти к пункту 7.

5) Набор есть. Разбейте переменные x j ( j 1, n)

на две группы: базисные переменные и небазис-

ные переменные. Базисные переменные – это те,

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

Полагая всякую небазисную переменную равной нулю, а базисную правой части ограничения, в

котором эта переменная присутствует, получаем опорное решение.

6)Построить симплекс-таблицу, отвечающую по-

лученному опорному решению. Базисные пере-

менные записать в крайнем левом столбце, а не-

базисные – в самой верхней строке. Завершить работу алгоритма 1.

7)Сделать вывод: для построения начальной сим-

плекс-таблицы необходимо применить метод ис-

кусственного базиса.

6

8) Завершить работу алгоритма 1.

Алгоритм 2 - решение симплекс-методом зада-

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

Начальная симплекс-таблица построена.

1)Если оценки симплекс-таблицы неотрица-

тельны, то таблица оптимальная, и соответствующее ей опорное решение оптимальное.

Полагая всякую небазисную переменную равной нулю, а базисную равной элементу из столб-

ца свободных членов, получаем оптимальное опор-

ное решение.

Алгоритм завершает работу.

2) Если в таблице есть столбец с отрицательной оценкой, и все элементы в нем не положительны, то оп-

тимальное решение не существует, так как целевая функция неограниченна сверху в ОДР (Неразреши-

мость 2). Алгоритм завершает работу.

3)Если в таблице есть столбец с отрицатель-

ной оценкой, и в нем есть положительные элементы,

то среди этих элементов выбираем главный. Для этого

7

находим для каждого такого элемента частное от деле-

ния правой части ограничения на этот элемент. Полу-

ченные частные сравним для того, чтобы главным эле-

ментом выбрать тот, которому соответствует наимень-

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

сечении.

4)Выполним жордановы преобразования сим-

плекс-таблицы относительно выбранного главного эле-

мента и перейдем к пункту 1.

Жордановы преобразования симплекс-таблицы

относительно выбранного главного элемента

1)Поменять местами переменные, стоящие в главной строке и главном столбце.

2)Главный элемент заменить ему обратным.

3)Все остальные элементы главной строки раз-

делить на главный элемент.

8

4)Все остальные элементы главного столбца разделить на главный элемент и поменять у них знаки на противоположные.

5)Все оставшиеся элементы пересчитать по правилу, сходному с правилом вычисления определите-

ля второго порядка (в качестве главной диагонали нуж-

но брать ту, на которой стоит главный элемент), и раз-

делить на главный элемент.

Замечание. Во всех перечисленных действиях ис-

пользуйте числа из старой таблицы, а результаты вы-

числений записывайте в новую таблицу.

Метод искусственного базиса

Алгоритм 3 - построение начальной симплекс-

таблицы с помощью метода искусственного базиса.

1) Используя эквивалентные преобразования,

преобразовать задачу к каноническому виду (I).

2) Преобразовать все ограничения–равенства к виду, когда правая часть – неотрицательное число.

9

3) Построить вспомогательную задачу. Для

этого из исходной преобразованной задачи возьмем только ограничения. Прибавим по необходимости к

левым

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

новые переменные

Wi ( Wi

0) , которые назовем искусственными. Необ-

ходимость диктуется желанием иметь в матрице огра-

ничений столбцы, образующие единичную матрицу. В

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

симизировать.

4) Используя алгоритм 1 построения начальной симплекс-таблицы, построить для вспомогательной

задачи начальную симплекс-таблицу.

5) Используя алгоритм 2 решения симплекс-

методом, решить вспомогательную задачу.

6) Если оптимальное значение целевой функции

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

10