Алгоритм метода ветвей и границ для решения одномерных задач целочисленного программирования
МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ (Национальный Исследовательский Университет) Факультет №3«Системы управления, Кафедра №308«Информационные технологии»
Курсовая работа по курсу «Технический контроль и диагностика систем ЛА» Вариант II (2) Выполнила: Пахомова Вероника Юрьевна Группа: 03-417 Проверил:доцент, к.т.н. Пискунов Вячеслав Алексеевич
Москва 2012 г. Содержание
Постановка задачи Определить набор параметров контроля из десяти непересекающихся параметров для получения максимального значения выражения при ограничении двумя методами: · метод ветвей и границ; · метод динамического программирования. Написать программы для реализации решения поставленной задачи. Сравнить результаты при ручном расчёте и программном. Сделать выводы.
Алгоритм метода ветвей и границ для решения одномерных задач целочисленного программирования 1.1 Теоретическая часть В математическом анализе рассматривается класс задач, объединенных понятием задачи целочисленного программирования. В общем виде они могут быть сформулированы как максимизация некоторого выражения в условиях ограничений. Рассмотрим следующую задачу целочисленного программирования. Требуется максимизировать выражение (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.5) (1.6) Условия (1.5), (1.6) означают, что в множество S без нарушения неравенства (1.2) можно дополнительно ввести элементы хк+1, хк +2,..., хl-1. При введении в множество S элементов хк+1, хк +2,..., хl неравенство (1.2) не выполняется. Для определения верхней границы решения может быть использовано (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.
1.2 Практическая часть Дано: Нормированные вероятности отказов для элементов Qi, затраты на контроль i-ого параметра C(xi).
Найти: Выбрать такие параметры, чтобы C≤18 при Q=Qmax. Решение: Для удобства расчетов проранжируем таблицу 4 в порядке убывания и присвоим новые номера элементам, следующим образом:
Значение l определяет сумма q1+ q2+ q3+ q4+ q5+ q6+ q7 + q8 =17, отсюда l=9 при l = 9, , ,
Первый шаг Выбор очередной переменной для включения в множество S производится с помощью условия:
Второй шаг
Третий шаг Выбираем очередную переменную:
Четвертый шаг Выбираем очередную переменную:
Пятый шаг Выбираем очередную переменную:
Шестой шаг Выбираем очередную переменную:
Седьмой шаг Выбираем очередную переменную:
Восьмой шаг Выбираем очередную переменную:
Девятый шаг Во множестве GS нет элементов, которые могут быть введены в множество S без нарушения ограничения , то полученное решение Ls принимается в качестве первого приближенного решения L0. Так как все вершины дерева, для которых выполняется условие Qs£ L0, из дальнейшего рассмотрения исключаются, а так же данный набор параметров обеспечивает максимальную вероятность, то процесс расчета прекращается. Результаты всех расчетов приведены в табл. 1. Таблица 1
Таким образом, в состав контролируемых параметров входит набор X1; X2; X3: X4; X5; X6; X7; X8 или, если смотреть первоначальную нумерацию X2; X3; X4; X6; X7; X8; X9; X10. 1.3 Программные расчеты и сравнение результатов Наряду с ручным расчётом, решение задачи реализовано с помощью программного алгоритма, написанного на языке программирования Delphi 7.0. Листинг программы представлен в приложении 1. Результаты программного расчёта сохраняются в текстовый файл kr1.txt и представлены на рисунке 1 для первых 4-ёх шагов, а итоговое решение на рисунке 2.
Результаты программы и результаты ручного расчета совпали.
Популярное: Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (818)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |