Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
В математическом анализе рассматривается класс задач, объединенных понятием задачи целочисленного программирования. В общем виде они могут быть сформулированы как максимизация некоторого выражения в условиях ограничений.
Рассмотрим следующую задачу целочисленного программирования. Требуется максимизировать выражение
(1.1)
при ограничениях
(1.2)
xj {0;1}, j =1,…,n, (1.3)
причем pj ≥0, cj ≥0.
Решение задачи может быть получено с помощью метода ветвей и границ.
Метод ветвей и границ использует последовательно-параллельную схему построения дерева возможных вариантов. Первоначально ищут допустимый план и для каждого возможного варианта определяют верхнюю границу целевой функции. Ветви дерева возможных вариантов, для которых верхняя граница ниже приближенного решения, из дальнейшего рассмотрения исключают.
Эффективность вычислительных алгоритмов зависит от точности и простоты способа определения верхней границы возможных решений и точности определения приближенного решения. Чем точнее способ определения верхней границы целевой функции, тем больше бесперспективных ветвей отсекается в процессе оптимизации. Однако увеличение точности расчета верхних границ связано с возрастанием объема вычислений. Например, если для оценки верхней границы использовать симплекс-метод, то результат будет достаточно точным, но потребует большого объема вычислительной работы.
Рассмотрим алгоритм решения задачи (1.1) — (1.3) методом ветвей и границ с простым и эффективным способом оценки верхней границы целевой функции.
Множество U переменных xj рассматривается как три множества.
S -множество фиксированных переменных, вошедших в допустимое решение; Es — множество зависимых переменных, которые не могут быть включены в множество S, так как для них выполняется неравенство
GS — множество свободных переменных, из которых производится выбор для включения в S очередной переменной.
Обозначим h1j = pj/cj и допустим, что xj S (j= 1,..., k < п), вычисляется указанное отношение и параметры номеруются (ранжируются) в соответствии с ранжировкой h1,k+1 ≥h1,k+2≥...≥h1l, l≤n, (1.4)
|
(1.6) |
Условия (1.5), (1.6) означают, что в множество S без нарушения неравенства (1.2) можно дополнительно ввести элементы хк+1, хк +2,..., хl-1. При введении в множество S элементов хк+1, хк +2,..., хl неравенство (1.2) не выполняется.
|
Рис. 1.1 Кусочно-линейная функция
Для определения верхней границы решения может быть использовано
выражение
(1.7)
где
(1.8)
(1.9)
Из условий (1.1)-(1.3) следует, что L's не меньше максимального значения величины
при ограничениях
Поясним процесс определения L'S графиком (рис. 1.1). Строим кусочнолинейную функцию L(с) с убывающим значением градиента h. Вычисляем с'1 и по графику находим L'S.
Выбор очередной переменной для включения в множество S производится с помощью условия
(1.10)
Для выбранной переменной хr определяются величины РS(xr) и РS(xr), т.е. в S включается хr = 1 или хr = 0.
Если в процессе решения окажется, что в множестве GS нет элементов, которые могут быть введены в множество S без нарушения ограничения (1.5), то полученное решение принимается в качестве первого приближенного решения L0.
Все вершины дерева возможных вариантов, для которых выполняются условия QS ≤ L0 из дальнейшего рассмотрения исключаются.
Из оставшихся ветвей выбирается ветвь с максимальным значением РS, и процесс поиска оптимального варианта продолжается. Если в процессе решения будет найдено , то полученное решение принимается в качестве нового приближенного результата. Вычислительная процедура заканчивается, если для всех оставшихся ветвей выполняется условие РS ≤ L0.
Дата публикования: 2014-11-03; Прочитано: 978 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!