- •Постановка задачи линейного программирования, условия существования и свойства оптимальных решений задачи линейного программирования
- •Постановка задачи линейного программирования
- •Стандартная задача лп
- •Каноническая задача лп
- •Общая задача лп
- •Двойственная задача линейного программирования.
- •Понятия о системном подходе, системном анализе, его основные методологические принципы
- •С сайта (http://b-I.Narod.Ru/sys.Htm)
- •По Вентциль
- •Системы и закономерности их функционирования и развития, управляемость, достижимость, устойчивость
- •Постановка и классификация задач принятия решений, этапы решения задач
- •Допустимое множество и целевая функция в задачах математического программирования, классификация, формы записи
- •Классификация задач математического программирования
- •Основные виды иерархических структур. Модель функционирования иерархической системы
- •Из интернетов
- •По википедии
- •Структурная часть иерархической модели
- •Управляющая часть иерархической модели
- •По лекциям из интернетов
- •Основные понятия теории иерархических систем и их формализация
- •Координация
- •Декомпозиция
- •Агрегация
- •Проблема равенства классов p и np
- •Метод динамического программирования. Принцип оптимальности Беллмана
- •Методы и задачи дискретного и целочисленного программирования. Метод ветвей и границ
- •Решение задачи линейного программирования симплекс-методом
- •Симплекс-таблица, стандартный алгоритм симплекс-преобразования
- •Алгоритм отыскания опорного решения задачи лп
- •Алгоритм отыскания оптимального решения задачи лп
- •Алгоритм получения первого базисного решения с использованием симплекс — процедуры (метод искусственного базиса)
- •Вырожденная задача лп
Методы и задачи дискретного и целочисленного программирования. Метод ветвей и границ
Метод ветвей и границ (англ. branch and bound) — общий алгоритмический метод для нахождения оптимальных решений различных задач оптимизации, особенно дискретной и комбинаторной оптимизации. По существу, метод является вариацией полного перебора с отсевом подмножеств допустимых решений, заведомо не содержащих оптимальных решений.
Метод ветвей и границ впервые предложили в 1960 году Ленд и Дойг для решения задач целочисленного программирования.
Общая идея метода может быть описана
на примере поиска минимума функции
на множестве допустимых значений
переменной
.
Функция
и переменная могут быть произвольной
природы. Для метода ветвей и границ
необходимы две процедуры: ветвление и
нахождение оценок (границ).
Процедура ветвления состоит в разбиении множества допустимых значений переменной на подобласти (подмножества) меньших размеров. Процедуру можно рекурсивно применять к подобластям. Полученные подобласти образуют дерево, называемое деревом поиска или деревом ветвей и границ. Узлами этого дерева являются построенные подобласти (подмножества множества значений переменной ).
Процедура нахождения оценок заключается в поиске верхних и нижних границ для решения задачи на подобласти допустимых значений переменной .
В основе метода ветвей и границ лежит
следующая идея: если нижняя граница
значений функции на подобласти
дерева поиска больше, чем верхняя граница
на какой-либо ранее просмотренной
подобласти
,
то
может быть исключена из дальнейшего
рассмотрения (правило отсева). Обычно
минимальную из полученных верхних
оценок записывают в глобальную переменную
,
любой узел дерева поиска, нижняя граница
которого больше значения
,
может быть исключён из дальнейшего
рассмотрения.
Если нижняя граница для узла дерева совпадает с верхней границей, то это значение является минимумом функции и достигается на соответствующей подобласти.
Метод используется для решения некоторых NP-полных задач, в том числе задачи коммивояжёра и задачи о ранце.
Решение задачи линейного программирования симплекс-методом
Рассмотрим ОЗЛП, где базисные переменные
разрешены относительно свободных
.
Например,
– вершина, при этом базисные переменные
,
,
.
В ОЗЛП все переменные должны быть
,
следовательно, эта вершина недопустима.
Признаком недопустимости вершины
является наличие отрицательных
свободных членов в ограничениях
равенствах. Если отрицательный
свободный член есть, то надо перейти в
другую вершину, для чего одну базисную
переменную сделать свободной и приравнять
к нулю, а какую-то свободную превратить
в базисную. Следовательно, переход из
одной вершины в другую осуществляется
путем замены базисной переменной на
свободную. Это называется
симплекс-преобразованием. Если мы
будем переходить из вершины в вершину
«в сторону ОДР», то за конечное число
таких переходов попадем в допустимую
вершину. Назовем ее опорной вершиной,
а соответствующее решение опорным
решением. Пусть получено опорное
решение, например, для следующей задачи.
Проверим, оптимально оно или нет.
,
,
,
;
;
;
.
Видно, что если все коэффициенты при
свободных переменных в целевой
функции положительны, то никакие
увеличения свободных переменных от 0
вверх не уменьшают
,
следовательно, это
является оптимальным значением. Если
же есть отрицательные коэффициенты при
свободных переменных (в нашем примере
при
),
то ее надо сделать базисной, т.к. если
она будет положительной, то
будет меньше. Но
может увеличиваться не бесконечно, так
как в ограничениях есть отрицательный
коэффициент при
.
Видно, что увеличивать
можно только до
,
так в противном случае
будет отрицательным, а это невозможно.
Так мы нашли базисную переменную
,
которую надо поменять со свободной
.
Поиск этой пары для симплекс-преобразования
и является основным элементом
симплекс-метода.
Таким образом, симплекс-метод – это метод решения задач ЛП, который основывается на процедуре перехода от одной вершины к другой до тех пор, пока не придем в оптимальную вершину. Он состоит из трех алгоритмов:
Алгоритм перехода из одной вершины в другую, когда известна пара пре образования. Он пересчитывает коэффициенты системы уравнений для нового базиса. Назовем его алгоритмом симплекс-преобразования.
Алгоритм нахождения такой пары преобразования, чтобы при переходе в новую вершину мы приближались к ОДР. Это алгоритм отыскания опорного решения.
Алгоритм нахождения такой пары преобразования, чтобы новая опорная вершина давала лучшее значение целевой функции. Это алгоритм отыскания оптимального решения.
В
симплекс-методе начинают со стандартной
вершины (все свободные переменные равны
нулю), т.е. с точки 1 (это недопустимая
вершина, смотри рисунок справа). Дальше
последовательно переходим из одной
вершины в другую (2,3) и попадаем в опорную
вершину 4.
Найдя опорное решение, мы движемся по вершинам ОДР так, чтобы целевая функция улучшалась, и при этом эти вершины были опорными (5 и 6 – оптимальная). Эти три алгоритма гарантируют либо отыскание оптимального решения, либо доказательство отсутствия допустимого решения, либо доказательство отсутствия оптимального решения.
