Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Комплексный метод Бокса




Этот метод представляет модификацию метода деформируемого многогранника и предназначен для решения задачи нелинейного программирования с ограничениями-неравенствами. Для минимизации функции n переменных f(x) в n-мерном пространстве строят многогранники, содержащие q п+1 вершин. Эти многогранники называют комплексами, что и определило наименование метода.

Введем следующие обозначения:

х[j, k] (х1[j, k], …, хi[j, k], …, хn[j, k])T, (7.50)

где j 1, ..., q; k 0, 1, 2, ... - j-я вершина комплекса на k-м этапе поиска;

х[h, k] - вершина, в которой значение целевой функции максимально, т. е. f(x[h, k]) max{f(x[l, k]), ..., f(x[q, k])}; x[h, k]- центр тяжести всех вершин, за исключением х[h, k] . Координаты центра тяжести вычисляются по формуле

, i l, ..., n.(7.51)

Алгоритм комплексного поиска состоит в следующем. В качестве первой вершины начального комплекса выбирается некоторая допустимая точка х[1, 0]. Координаты остальных q-1 вершин комплекса определяются соотношением

хj[j, 0] аi + ri(bi - ai), i 1, ..., п; j 2, ..., q.(7.52)

Здесь аi, bi - соответственно нижнее и верхнее ограничения на переменную хi', ri - псевдослучайные числа, равномерно распределенные на интервале [0, 1]. Полученные таким образом точки удовлетворяют ограничениям а х b , однако ограничения hj(x) 0 могут быть нарушены. В этом случае недопустимая точка заменяется новой, лежащей в середине отрезка, соединяющего недопустимую точку с центром тяжести выбранных допустимых вершин. Данная операция повторяется до тех пор, пока не будут выполнены все ограничения задачи. Далее, как и в методе деформируемого многогранника, на каждой итерации заменяется вершина х[h, k], в которой значение целевой функции имеет наибольшую величину. Для этого х[h, k] отражается относительно центра тяжести х[l, k] остальных вершин комплекса. Точка х[р, k], заменяющая вершину х[h, k], определяется по формуле

x[p, k] (a+1)х[l, k] + ax[h, k],(7.53)

где а 0 - некоторая константа, называемая коэффициентом отражения. Наиболее удовлетворительные результаты дает значение а 1,3. При этом новые вершины комплекса отыскиваются за небольшое количество шагов, а значения целевой функции уменьшаются достаточно быстро.

Если f(x[р, k]) f(x[h, k]), то новая вершина оказывается худшей вершиной комплекса, В этом случае коэффициент а уменьшается в два раза. Если в результате отражения нарушается какое-либо из ограничений, то соответствующая переменная просто возвращается внутрь нарушенного ограничения. Если при отражении нарушаются ограничения hj(x) 0. то коэффициент а каждый раз уменьшается вдвое до тех пор, пока точка х[р, k] не станет допустимой. Вычисления заканчиваются, если значения целевой функции мало меняются в течение пяти последовательных итераций: |f(х[l, k+1]) – f(х [l, k])| e, k 1, ..., 5, где e - заданная константа. В этом случае центр тяжести комплекса считают решением задачи нелинейного программирования.

Достоинствами комплексного метода Бокса являются его простота, удобство для программирования, надежность в работе. Метод на каждом шаге использует информацию только о значениях целевой функции и функций ограничений задачи. Все это обусловливает успешное применение его для решения различных задач нелинейного программирования.

Выбор начальной точки допустимой области

Для применения прямых методов решения задач нелинейного программирования требуется знание некоторой допустимой начальной точки области G . Если структура этой области сложная, отыскание такой точки представляет серьезные трудности. Произвольно выбранная начальная точка в общем случае может удовлетворять только части ограничений. Следовательно, необходим алгоритм, приводящий из произвольной точки в допустимую область. На практике для получения начального вектора применяют тот же метод, которым решают исходную задачу нелинейного программирования. Рассмотрим один из способов отыскания такого вектора.

Пусть ‑ произвольная точка, в которой часть ограничений не удовлетворяется. Обозначим через J1 множество индексов ограничений, выполняющихся в точке , и через J2 - множество индексов ограничений, не выполняющихся в ней, т.е.

J1 {j|hj( ) 0, j 1, …, m};(7.54)

J2 {j|hj( ) 0, j 1, …, m};(7.55)

Введем дополнительную переменную z и сформулируем задачу поиска допустимой точки следующим образом: найти минимум функции z z при ограничениях:

hj(х) 0, j J1;

hj(х) - z 0, j J2;(7.57)

Допустимый вектор этой задачи находится довольно просто. Действительно, если положить

,(7.58)

то точка является допустимым решением сформулированной задачи. Так как область G исходной задачи не пуста, то существует такая точка , что

h(x) 0, j 1, …, m. (7.59)

Следовательно, минимальное значение z меньше нуля. В силу этого после конечного числа шагов некоторого прямого алгоритма будут получены x[0], z, такие, что z 0, и условия задачи удовлетворяются. Точка х[0] и принимается в качестве начальной для исходной задачи нелинейного программирования.


Поделиться:

Дата добавления: 2015-04-05; просмотров: 556; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты