Базовое возможное решение
Эта статья в значительной степени или полностью опирается на один источник . ( декабрь 2018 г. ) |
В теории линейного программирования базовое допустимое решение ( BFS ) — это решение с минимальным набором ненулевых переменных. Геометрически каждая BFS соответствует вершине многогранника допустимых решений. Если существует оптимальное решение, то существует и оптимальная BFS. Следовательно, для поиска оптимального решения достаточно рассмотреть BFS-ы. Этот факт используется симплексным алгоритмом , который по сути перемещается от одной BFS к другой, пока не будет найдено оптимальное решение. [1]
Определения [ править ]
: эквациональная форма с линейно независимыми строками Предварительные сведения
Для приведенных ниже определений мы сначала представим линейную программу в так называемой эквациональной форме :
- максимизировать
- при условии и
где:
- и – векторы размера n (количество переменных);
- — вектор размера m (количество ограничений);
- представляет собой m матрицу размером × n ;
- означает, что все переменные неотрицательны.
Любая линейная программа может быть преобразована в эквациональную форму путем добавления слабых переменных .
В качестве предварительного этапа очистки мы проверяем, что:
- Система имеет хотя бы одно решение (иначе вся ЛП не имеет решения и делать больше нечего);
- Все m строк матрицы линейно независимы, т. е. его ранг равен m (в противном случае мы можем просто удалить лишние строки, не меняя ЛП).
Возможное решение [ править ]
ЛП Допустимым решением является любой вектор такой, что . Мы предполагаем, что существует хотя бы одно допустимое решение. Если m = n , то существует только одно допустимое решение. Обычно m < n , поэтому система имеет множество решений; каждое такое решение называется допустимым решением ЛП.
Основа [ править ]
Базисом неособая ЛП является подматрица A со всеми m строками и только m < n столбцами.
Иногда термин «базис» используется не для самой подматрицы, а для набора индексов ее столбцов. Пусть B — подмножество m индексов из {1,..., n }. Обозначим через квадратная m матрица размером на m, состоящая из m столбцов индексируется Б. Если несингулярен , , столбцы, B являются базисом пространства столбцов индексированные . В этом случае мы называем B базисом ЛП.
Начиная с ранга есть m , оно имеет хотя бы один базис; с имеет n столбцов, имеет не более базы.
Основное возможное решение [ править ]
Учитывая базис B , мы говорим, что допустимое решение является базовым допустимым решением с базисом B, если все его ненулевые переменные пронумерованы B , то есть для всех .
Свойства [ править ]
1. БФС определяется только ограничениями ЛП (матрица и вектор ); это не зависит от цели оптимизации.
2. По определению, BFS имеет не более m ненулевых переменных и не менее n - m нулевых переменных. BFS может иметь менее m ненулевых переменных; в этом случае он может иметь много разных оснований, каждая из которых содержит индексы ненулевых переменных.
3. Возможное решение является базовым тогда и только тогда, когда столбцы матрицы линейно независимы, где K — множество индексов ненулевых элементов . [1] : 45
4. Каждый базис определяет уникальную БФС: для каждого базиса B из m индексов существует не более одной БФС. с Б. базисом Это потому, что должно удовлетворять ограничению , и по определению базиса матрица не является сингулярным, поэтому ограничение имеет единственное решение:
Обратное неверно: каждый BFS может происходить из множества разных баз. Если единственное решение удовлетворяет ограничениям неотрицательности , то B называется допустимым базисом .
5. Если линейная программа имеет оптимальное решение (т. е. имеет допустимое решение и множество допустимых решений ограничено), то она имеет оптимальную БФС. Это следствие принципа максимума Бауэра : цель линейной программы выпукла; множество допустимых решений выпукло (оно является пересечением гиперпространств); следовательно, цель достигает своего максимума в крайней точке множества возможных решений.
Поскольку число BFS-ов конечно и ограничено оптимальное решение любой ЛП можно найти за конечное время, просто вычислив целевую функцию во всех БФС-с. Это не самый эффективный способ решения ЛП; симплексный алгоритм проверяет BFS гораздо более эффективным способом.
Примеры [ править ]
Рассмотрим линейную программу со следующими ограничениями:
Матрица А :
Здесь m =2 и имеется 10 подмножеств по 2 индекса, однако не все из них являются базисами: набор {3,5} не является базисом, поскольку столбцы 3 и 5 линейно зависимы.
Множество B ={2,4} является базисом, поскольку матрица не является особенным.
Единственная БФС, соответствующая этому базису, равна .
интерпретация Геометрическая
Множество всех возможных решений является пересечением гиперпространств . Следовательно, это выпуклый многогранник . Если он ограничен, то это выпуклый многогранник . Каждый BFS соответствует вершине этого многогранника. [1] : 53–56
решения двойной проблемы возможные Основные
Как упоминалось выше, каждый базис B определяет единственное базовое допустимое решение. . Аналогичным образом каждый базис определяет решение двойственной линейной программы :
- минимизировать
- при условии .
Решение .
Поиск оптимального BFS [ править ]
Существует несколько методов поиска оптимального BFS.
Использование симплексного алгоритма [ править ]
На практике самый простой способ найти оптимальную BFS — использовать симплексный алгоритм . В каждой точке своего выполнения он сохраняет «текущий базис» B (подмножество m из n переменных), «текущую BFS» и «текущую таблицу». Таблица представляет собой представление линейной программы, в которой базовые переменные выражаются через небазисные: [1] : 65
Если все коэффициенты в отрицательны, то является оптимальным решением, поскольку все переменные (включая все неосновные переменные) должны быть не ниже 0, поэтому вторая строка подразумевает .
Если некоторые коэффициенты в положительны, то можно увеличить цель максимизации. Например, если является неосновным и его коэффициент в положительно, то увеличение его выше 0 может привести к больше. Если это можно сделать, не нарушая других ограничений, то увеличенная переменная становится базовой («входит в базис»), а некоторая базовая переменная уменьшается до 0, чтобы сохранить ограничения равенства, и, таким образом, становится небазовой («выходит из базиса»). основа»).
Если этот процесс выполняется тщательно, то можно гарантировать, что увеличивается до тех пор, пока не достигнет оптимального значения BFS.
любого оптимального решения в оптимальную Преобразование BFS
В худшем случае для выполнения симплексного алгоритма может потребоваться экспоненциально много шагов. Существуют алгоритмы решения ЛП за слабо-полиномиальное время , такие как метод эллипсоида ; однако они обычно возвращают оптимальные решения, которые не являются базовыми.
Однако, учитывая любое оптимальное решение ЛП, легко найти оптимальное допустимое решение, которое также является базовым . [2] : см. также «внешние ссылки» ниже.
Нахождение базиса, который является как первично-оптимальным, так и двойственно-оптимальным [ править ]
Базис B ЛП называется дуально оптимальным, если решение является оптимальным решением двойной линейной программы, т. е. минимизирует . В общем, первично-оптимальный базис не обязательно является дуально-оптимальным, а дуально-оптимальный базис не обязательно является первично-оптимальным (фактически, решение первично-оптимального базиса может быть даже неосуществимо для двойственного, и наоборот ).
Если оба является оптимальным BFS исходной ЛП, а является оптимальной БФС двойственной ЛП, то базис B называется PD-оптимальным . Каждая ЛП с оптимальным решением имеет PD-оптимальный базис, и он находится с помощью алгоритма Simplex . Однако в худшем случае время его выполнения экспоненциально. Нимрод Мегиддо доказал следующие теоремы: [2]
- Существует строго полиномиальный алгоритм по времени, который вводит оптимальное решение для первичной ЛП и оптимальное решение для двойственной ЛП и возвращает оптимальный базис.
- Если существует алгоритм со строго полиномиальным временем , который вводит оптимальное решение только для первичной ЛП (или только для двойственной ЛП) и возвращает оптимальный базис, то существует алгоритм со сильно полиномиальным временем для решения любой линейной программы (последний представляет собой знаменитая открытая задача).
Алгоритмы Мегиддо могут быть выполнены с использованием таблицы, как и симплексный алгоритм.
Внешние ссылки [ править ]
- Как перейти от оптимального допустимого решения к оптимальному базовому допустимому решению . Пол Робин, Stack Exchange для исследования операций.
Ссылки [ править ]
- ^ Jump up to: Перейти обратно: а б с д Гертнер, Бернд; Матушек, Иржи (2006). Понимание и использование линейного программирования . Берлин: Шпрингер. ISBN 3-540-30697-8 . : 44–48
- ^ Jump up to: Перейти обратно: а б Мегиддо, Нимрод (1 февраля 1991 г.). «О нахождении первично- и дуально-оптимальных базисов» . Журнал ORSA по вычислительной технике . 3 (1): 63–65. CiteSeerX 10.1.1.11.427 . дои : 10.1287/ijoc.3.1.63 . ISSN 0899-1499 .