В теории линейного программирования, базовое возможное решение (BFS ) - решение с минимальным набором ненулевых переменных. Геометрически каждая BFS соответствует углу многогранника возможных решений. Если существует оптимальное решение, то существует оптимальная BFS. Следовательно, чтобы найти оптимальное решение, достаточно рассмотреть BFS-ы. Этот факт используется симплексным алгоритмом, который по существу перемещается от одного BFS к другому, пока не будет найден оптимальный.
Чтобы определить BFS, мы сначала представляем линейную программу в так называемой эквациональной форме:
где:
Любую линейную программу можно преобразовать в форму уравнения путем добавления переменных резервирования.
В качестве предварительного шага очистки мы проверяем, что:
Обычно m
Пусть B - подмножество m индексов из {1,..., n}. Обозначим через квадратную матрицу m на m, составленную из m столбцов проиндексированных на B. Если равно неособое число, столбцы, проиндексированные B, являются базисом пространство столбца из . В этом случае мы называем B базой ЛП. Поскольку ранг равен m, он имеет по крайней мере одно основание; поскольку имеет n столбцов, он имеет не более базы.
Для базиса B мы говорим, что допустимое решение является базовым допустимым решением с базисом B если все его ненулевые переменные проиндексированы B, т. е. для всех .
1. BFS определяется только ограничениями LP (матрица и вектор ); это не зависит от цели оптимизации.
2. По определению, BFS имеет не более m ненулевых переменных и не менее n-m нулевых переменных. BFS может иметь менее m ненулевых переменных; в этом случае он может иметь множество различных баз, каждая из которых содержит индексы его ненулевых переменных.
3. Возможное решение является базовым, если и только если столбцы матрицы линейно независимы, где K - это набор индексов ненулевых элементов .
4. BFS однозначно определяется базисом B: для каждого базиса B из m индексов существует не более одного BFS с базой B. Это потому, что должен удовлетворять ограничению , и по определению основы матрица неособая, поэтому ограничение имеет уникальный решение. Обратное неверно: каждая BFS может происходить из разных баз.
Если уникальное решение удовлетворяет ограничениям неотрицательности, тогда базис называется допустимым базисом .
5. Если линейная программа имеет оптимальное решение (т. Е. Допустимое решение, а набор возможных решений ограничен), то она имеет оптимальную BFS. Это следствие принципа максимума Бауэра : цель линейной программы - выпуклая; множество допустимых решений выпукло (это пересечение гиперпространств); поэтому цель достигает своего максимума в крайней точке множества возможных решений.
Поскольку количество BFS-ов конечно и ограничено , оптимальное решение для любого LP можно найти за конечное время, просто оценив целевую функцию во всех BFS-s. Это не самый эффективный способ решить ЛП; симплексный алгоритм исследует BFS-файлы гораздо более эффективно.
Рассмотрим линейную программу со следующими ограничениями:
Матрица A:
Здесь m = 2, а всего 10 подмножества 2 индексов, однако, не все из них являются базами: набор {3,5} не является базисом, поскольку столбцы 3 и 5 линейно зависимы.
Множество B = {2,4} является базисом, поскольку матрица неособое число.
Уникальный BFS, соответствующий этому основанию, равен .
Множество всех возможных решений является пересечением гиперпространств. Следовательно, это выпуклый многогранник. Если он ограничен, то это выпуклый многогранник.
. Каждой BFS соответствует вершина этого многогранника.
симплексный алгоритм сохраняет в каждой точке своего выполнения «текущий базис» B (подмножество m из n переменных), «текущая BFS» и «текущая таблица». Таблица представляет собой представление линейной программы, где основные переменные выражены через неосновные:
где - вектор из m базовых переменных, - вектор из n неосновных переменных, и - цель максимизации. Поскольку неосновные переменные равны 0, текущая BFS - это , а текущая цель максимизации - .Если все коэффициенты в отрицательны, то является оптимальным решением, поскольку все переменные (включая все неосновные переменные) должно быть не менее 0, поэтому вторая строка подразумевает .
Если некоторые коэффициенты в положительны, тогда можно будет увеличить цель максимизации. Например, если не является базовым, а его коэффициент в положительный, тогда увеличение его выше 0 может увеличить . Если это возможно сделать без нарушения других ограничений, то увеличенная переменная становится базовой (она «входит в базовую»), в то время как другая небазовая переменная уменьшается до 0 для сохранения ограничений равенства и, таким образом, становится не базовой (она «выходит с базы»).
Если этот процесс проделан осторожно, то можно гарантировать, что увеличивается до тех пор, пока не будет достигнута оптимальная BFS.