- •Исследование операций и методы оптимизации
- •Введение
- •1. Общая постановка задачи линейного программирования. Графическое решение злп. Каноническая форма. Базисное решение
- •Основные определения
- •. Графический метод решения задачи линейного программирования
- •Лабораторная работа №1
- •1.3. Каноническая форма задачи линейного программирования. Приведение к канонической форме
- •1.4. Базисное решение злп
- •1.5. Перестроение базисного решения злп
- •Лабораторная работа № 2
- •2. Симплекс-метод
- •2.1. Основная теорема линейного программирования
- •2.2. Алгоритм симплекс метода
- •Лабораторная работа № 3
- •2.3. Симплекс-метод с искусственным базисом
- •Лабораторная работа №4
- •3. Двойственность в злп
- •Основные понятия и определения
- •3.2. Леммы и теоремы двойственности
- •Лабораторная работа № 5
- •4. Транспортная задача
- •4.1. Математическая модель транспортной задачи
- •4.2. Построение начального базисного решения
- •4.3. Метод потенциалов
- •4.4. Правило вычеркивания
- •4.5. Транспортные задачи, имеющие усложнения в постановке
- •Лабораторная работа № 6
- •5. Теория расписаний
- •5.1. Общие положения
- •5.2. Задача о назначениях
- •5.2.1. Постановка задачи
- •5.2.2. Способ задания задачи о назначениях и ее анализ
- •5.2.3. Венгерский метод
- •Лабораторная работа №7
- •5.4. Система конвейерного типа с двумя приборами
- •5.4.1 Постановка задачи
- •5.4.2. Диаграмма Гантта
- •5.4.3. Вычисление длины расписания
- •Достаточное условие оптимальности расписания
- •5.4.4. Алгоритм построения расписания минимальной длины
- •5.5. Конвейерная система с тремя и более приборами
- •5.5.1. Вычисление длины расписания для системы с тремя приборами
- •5.5.2. Системы, для которых возможно построение оптимального расписания
- •5.5.3. Эвристические алгоритмы
- •5.5.4. Оценки длины расписаний
- •Лабораторная работа № 8
- •Библиографический список
- •Исследование операций и методы оптимизации
- •230700 «Прикладная информатика»
- •3 94006 Воронеж, ул. 20-летия Октября, 84
1.4. Базисное решение злп
Рассмотрим ЗЛП в каноническом виде.
(1.4.1)
, где , .
Будем считать, что , то есть матрица А имеет m линейно независимых столбцов. Допустимое решение , называется базисным решением или опорным планом, если положительным значениям соответствуют линейно независимые столбцы матрицы А.
Базисное решение имеет не больше, чем m положительных компонент. Если число положительных компонент равно m, то решение называется невырожденным, и соответствующие столбцы матрицы А образуют базис в m-мерном пространстве. Если число положительных компонент меньше m, то решение называется вырожденным. Тогда, чтобы получить базис, к тем столбцам, которые соответствуют положительным компонентам, надо добавить столбцы с нулевыми компонентами.
Сформулируем без доказательства.
Утверждение 1: Если ЗЛП разрешима, то для нахождения оптимального решения достаточно перебрать только базисные решения, число которых конечно и не превосходит .
Рассмотрим сначала способ перестроения базисного решения системы без условия неотрицательности.
Пусть матрица А имеет вид
,
где Е – единичная матрица.
Обозначим через множество номеров единичных столбцов матрицы А и через множество остальных номеров столбцов. Вектор X представим в виде , где и Вектор представим в виде . Тогда система примет вид
.
Если положить , то получим базисное решение .
Будем получать новое базисное решение, заменяя один из базисных столбцов на столбец, ранее принадлежащий . Это можно сделать с помощью алгоритма Жордана-Гаусса.
Пусть выбрано (номер столбца, который будет вводиться в базис) и - направляющий элемент.
Шаг 1: l-строка делится на направляющий элемент.
В новой итерации эта строка будет иметь номер k.
,
,
.
Шаг 2: Для
,
.
Шаг 3: ,
.
1.5. Перестроение базисного решения злп
Алгоритм Жордана-Гаусса не учитывает условия неотрицательности переменных. Для того чтобы это условие было учтено, надо выбирать k, а также так, чтобы условие неотрицательности сохранилось.
Так как ЗЛП рассматривается в канонической форме, то начальное базисное решение - неотрицательно.
Заметим, что если столбец , то его нельзя вводить в базис, так как при любом выборе направляющего элемента , поэтому для введения в базис необходимо выбирать столбец , такой, что существует .
Кроме того, как следует из алгоритма Жордана-Гаусса, для . Следовательно, необходимо выбрать таким образом, чтобы выполнилось условие: для всех .
Если , то для любого .
Если , то существует максимальное , при котором . Его можно найти по правилу .
Алгоритм перестроения базисного решения ЗЛП
Пусть определен столбец с номером k, подлежащий введению в базис.
Шаг 1: Определить l (номер выводимого столбца) по правилу
.
Шаг 2: Переход к алгоритму Жордана-Гаусса.
Шаг 3: Вычислить значение целевой функции по формуле .
Из рассмотренного выше алгоритма следует, что перебрав с его помощью все базисные решения можно найти оптимальную точку.
Пример 1.4. Дана ЗЛП в канонической форме. Требуется найти оптимальное решение с помощью перебора базисных решений.
,
.
Решение. Оформим решение задачи в виде таблицы (табл. 1.4.). В первом столбце поместим текущие базисные переменные, во втором - их коэффициенты в целевой функции, в третьем - базисные координаты текущей точки . Далее переписываем элементы матрицы , помещая над каждым столбцом коэффициент соответствующей переменной в целевой функции. Последний столбец предназначается для определения значения . В последней строке под записывается значение целевой функции, остальные клетки этой строки пока не заполнены.
Таблица 1.4
|
|
|
5 |
2 |
-1 |
-2 |
1 |
|
Базисное решение |
|
|
|
|
|
|||||
|
-2 |
3 |
2 |
1 |
-1 |
1 |
0 |
3 |
|
|
1 |
5 |
1 |
1 |
2 |
0 |
1 |
5 |
|
|
-1 |
|
˅ |
|
|
|
|
||
|
2 |
3 |
2 |
1 |
-1 |
1 |
0 |
|
|
|
1 |
2 |
-1 |
0 |
3 |
-1 |
1 |
|
|
|
8 |
|
|
|
|
|
|
||
|
2 |
|
|
1 |
0 |
|
|
|
|
|
-1 |
|
|
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
-2 |
|
|
|
0 |
1 |
|
|
|
|
-1 |
|
|
|
1 |
0 |
|
5 |
|
|
|
˅ |
|
|
|
|
|
||
|
5 |
|
1 |
|
0 |
|
|
|
|
|
-1 |
|
0 |
|
1 |
|
|
|
|
|
|
|
|
|
|
˅ |
|
||
|
5 |
|
1 |
|
|
|
0 |
|
|
|
1 |
|
0 |
|
|
|
1 |
|
|
|
11 |
|
|
|
|
|
|
Перебраны все базисные точки, и оптимальной точкой является со значением .