Рефераты - Афоризмы - Словари
Русские, белорусские и английские сочинения
Русские и белорусские изложения
 

Метод деформируемого многогранника

Работа из раздела: «Программирование и комп-ры»

                Государственный комитет Российской Федерации
                           по высшему образованию

            НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
                                    [pic]
                                 Кафедра АСУ

Реферат по дисциплине
                            ИССЛЕДОВАНИЕ ОПЕРАЦИЙ
на тему
                     МЕТОД ДЕФОРМИРУЕМОГО МНОГОГРАННИКА



Студент                Борзов Андрей Николаевич
Группа                 АС–513
Преподаватель    Ренин Сергей Васильевич



                              Новосибирск 1997

                    Поиск по деформируемому многограннику


      Впервые метод деформируемого многогранника был  предложен  Нелдером  и
Мидом. Они предложили метод поиска, оказавшийся весьма эффективным  и  легко
осуществляемым на ЭВМ. Чтобы можно было оценить стратегию  Нелдера  и  Мида,
кратко опишем симплексный поиск Спендли, Хекста и  Химсворта,  разработанный
в  связи  со  статистическим  планированием  эксперимента.   Вспомним,   что
регулярные многогранники в En являются симплексами. Например, как  видно  из
рисунка 1, для  случая  двух  переменных  регулярный  симплекс  представляет
собой равносторонний треугольник  (три  точки);  в  случае  трёх  переменных
регулярный симплекс представляет собой тетраэдр (четыре точки) и т.д.

                                    [pic]

                                                                  Рисунок 1.

 Регулярные симплексы для случая двух (а) и трёх (б) независимых переменных.

    ( обозначает наибольшее значение f(x). Стрелка указывает направление

                          наискорейшего улучшения.


      При поиске минимума целевой функции f(x) пробные векторы x могут  быть
выбраны  в  точках  En,  находящихся  в   вершинах   симплекса,   как   было
первоначально предложено Спендли, Хекстом  и  Химсвортом.  Из  аналитической
геометрии   известно,   что   координаты   вершин   регулярного    симплекса
определяются следующей матрицей D,  в  которой  столбцы  представляют  собой
вершины, пронумерованные от 1 до (n+1), а строчки – координаты, i  принимает
значения от 1 до n:

                         [pic] – матрица n X (n+1),

где
      [pic],
      [pic],

      t –  расстояние  между  двумя  вершинами.  Например,  для  n=2  и  t=1
треугольник, приведённый на рисунке 1, имеет следующие координаты:


|Вершина            |x1,i               | x2,i              |
|1                  |0                  |0                  |
|2                  |0.965              |0.259              |
|3                  |0.259              |0.965              |


      Целевая функция может быть вычислена в каждой из вершин симплекса;  из
вершины, где целевая функция максимальна (точка A на рисунке 1),  проводится
проектирующая  прямая  через  центр  тяжести  симплекса.   Затем   точка   A
исключается и строится новый симплекс, называемый отражённым, из  оставшихся
прежних точек и одной новой точки B, расположенной на  проектирующей  прямой
на надлежащем расстоянии от центра тяжести. Продолжение  этой  процедуры,  в
которой каждый раз вычёркивается вершина, где целевая  функция  максимальна,
а также использование правил уменьшения размера симплекса  и  предотвращения
циклического движения в окрестности экстремума позволяют осуществить  поиск,
не использующий производные и в котором  величина  шага  на  любом  этапе  k
фиксирована, а направление поиска можно изменять.  На  рисунке  2  приведены
последовательные  симплексы,  построенные   в   двумерном   пространстве   с
«хорошей» целевой функцией.

                                    [pic]

                                                                  Рисунок 2.

  Последовательность регулярных симплексов, полученных при минимизации f(x).

                                                              ----- проекция

      Определённые практические трудности, встречающиеся  при  использовании
регулярных симплексов, а именно отсутствие ускорения поиска и трудности  при
проведении  поиска  на  искривлённых  «оврагах»  и  «хребтах»,   привели   к
необходимости  некоторых  улучшений  методов.  Далее  будет  изложен   метод
Нелдера и Мида, в  котором  симплекс  может  изменять  свою  форму  и  таким
образом  уже  не  будет  оставаться   симплексом.   Именно   поэтому   здесь
использовано более подходящее название «деформируемый многогранник».

       В  методе  Нелдера  и  Мида  минимизируется  функция  n   независимых
переменных с использованием n+1 вершин деформируемого  многогранника  в  En.
Каждая вершина может быть идентифицирована вектором  x.  Вершина  (точка)  в
En, в которой значение f(x) максимально, проектируется через  центр  тяжести
(центроид) оставшихся вершин. Улучшенные  (более  низкие)  значения  целевой
функции находятся последовательной заменой точки  с  максимальным  значением
f(x) на более «хорошие точки», пока не будет найден минимум f(x).

      Более подробно этот алгоритм может быть описан следующим образом.

      Пусть [pic], является i-й вершиной (точкой) в En на k-м этапе  поиска,
k=0, 1, …, и пусть значение целевой функции в x(k)i  равно  f(x(k)i).  Кроме
того, отметим те  векторы  x  многогранника,  которые  дают  максимальное  и
минимальное значения f(x).

      Определим
                                    [pic]
[pic]
                                    [pic]
[pic] Поскольку многогранник в En состоит из (n+1) вершин x1, …,xn+1,  пусть
xn+2 будет центром тяжести всех вершин, исключая xh.

      Тогда координаты этого центра определяются формулой
                            [pic]            (1)
где индекс j обозначает координатное направление.

      Начальный многогранник обычно выбирается в виде регулярного  симплекса
(но это не обязательно) с  точкой  1  в  качестве  начала  координат;  можно
начало координат поместить в центр тяжести. Процедура  отыскания  вершины  в
En, в которой f(x) имеет лучшее значение, состоит из следующих операций:

1. Отражение – проектирование x(k)h через центр  тяжести  в  соответствии  с
  соотношением

            [pic]                            (2)

  где  (>0  является  коэффициентом  отражения;  [pic]  –  центр   тяжести,
  вычисляемый по формуле (1); [pic]  –  вершина,  в  которой  функция  f(x)
  принимает наибольшее из n+1 значений на k-м этапе.

2. Растяжение. Эта операция заключается в следующем: если [pic],  то  вектор
  [pic] растягивается в соответствии с соотношением

            [pic]                            (3)

  где (>1 представляет собой коэффициент растяжения. Если [pic],  то  [pic]
  заменяется на [pic] и процедура  продолжается  снова  с  операции  1  при
  k=k+1.  В  противном  случае  [pic]   заменяется   на   [pic]   и   также
  осуществляется переход к операции 1 при k=k+1.

3. Сжатие. Если [pic] для всех i(h, то вектор [pic] сжимается в
  соответствии с формулой

            [pic]                            (4)

  где 0<(<1 представляет собой коэффициент сжатия. Затем [pic] заменяем на
  [pic] и возвращаемся к операции 1 для продолжения поиска на (k+1)-м шаге.

4. Редукция. Если [pic], все векторы [pic] уменьшаются в 2 раза  с  отсчётом
  от [pic] в соответствии с формулой

            [pic]           (5)


  Затем возвращаемся к операции 1 для продолжения поиска на (k+1)-м шаге.


      Критерий окончания поиска, использованный Нелдером и Мидом, состоял  в
проверке условия

                         [pic]                  (6)

где ( – произвольное малое число, а  [pic]  –  значение  целевой  функции  в
центре тяжести [pic].

       На  схеме  1  приведена  блок-схема  поиска  методом   деформируемого
многогранника,  а  на  рисунке  3  показана  последовательность  поиска  для
функции Розенброка, начиная их x(0)=[-1,2 1,0]T. Деформируемый  многогранник
в противоположность жёсткому симплексу  адаптируется  к  топографии  целевой
функции,   вытягиваясь   вдоль   длинных   наклонных   плоскостей,   изменяя
направление в изогнутых впадинах и сжимаясь в окрестности минимума.
                                    Пуск


                        Вычислить начальные значения
                     xi(0), i = 1, 2, …, n+1, и f(x(0))
                            начального симплекса


                            Вычислить xh и xl и c


                            Отражение: вычислить
                         xn+3 = xn+2 + ((xn+2 - xn)


                                  Вычислить
                                   f(xn+3)


                               Выполняется ли
                                 неравенство
                              f(xn+3) < f(xh) ?



                            Растяжение: вычислить
                        xn+4 = xn+2 + ((xn+3 - xn+2)



                              Вычислить f(xn+4)


                               Выполняется ли
                                 неравенство
                              f(xn+4) < f(xl) ?



                                  Заменить
                                 xh на xn+4

                               Выполняется ли
                         неравенство f(xn+3) < f(xi)
                              для всех i ( h ?



                                  Заменить
                                 xh на xn+3



                                    [pic]

                                                                    Схема 1.
      Информационная блок-схема поиска методом деформируемого многогранника.
                               Выполняется ли
                                 неравенство
                              f(xn+3) < f(xh) ?



                                                                    Заменить
                                                                  xh на xn+3


                              Сжатие: вычислить
                         xn+5 = xn+2 + ((xh - xn+2)



                              Вычислить f(xn+5)


                               Выполняется ли
                                 неравенство
                              f(xn+5) > f(xh) ?



Заменить
xh на xn+5


                                                          Редукция: заменить
                                                 все xi на xl + 1/2(xi - xl)



                                   Останов
                                    [pic]

                                                                  Рисунок 3.

     Поиск минимума функции Розенброка методом деформируемого многогранника,
              начиная с точки x(0)=[-1,2 1,0]T (числа указывают номер шага).

      Коэффициент отражения (  используется  для  проектирования  вершины  с
наибольшим значением f(x) через центр тяжести деформируемого  многогранника.
Коэффициент  (  вводится  для  растяжения  вектора  поиска  в  случае,  если
отражение даёт вершину со значением f(x), меньшим, чем  наименьшее  значение
f(x),  полученное  до  отражения.  Коэффициент  сжатия  (  используется  для
уменьшения вектора поиска, если операция отражения не привела к  вершине  со
значением  f(x),  меньшим,  чем  второе  по  величине  (после   наибольшего)
значение f(x), полученное до отражения. Таким образом,  с  помощью  операций
растяжений  или  сжатия  размеры  и   форма   деформируемого   многогранника
масштабируются так, чтобы они удовлетворяли топологии решаемой задачи.
      Естественно возникает вопрос, какие  значения  параметров  (,  (  и  (
должны быть выбраны. После того как  деформируемый  многогранник  подходящим
образом промасштабирован, его  размеры  должны  поддерживаться  неизменными,
пока изменения в топологии  задачи  не  потребуют  применения  многогранника
другой формы. Это возможно реализовать только при (=1. Кроме того, Нелдер  и
Мид показали, что при решении задачи  с  (=1  требуется  меньшее  количество
вычислений функции, чем при (<1. С другой стороны, ( не  должно  быть  много
больше единицы, поскольку
1) деформируемый многогранник легче  адаптируется  к  топологии  задачи  при
  меньших значениях  (,  особенно  когда  необходимо  изменять  направление
  поиска, столкнувшись с изогнутой впадиной, и
2) в области локального минимума размеры многогранника должны уменьшаться  и
  большое ( в этих условиях замедлит сходимость.
Таким образом, значение (=1 выбирается как компромисс.
      Чтобы выяснить, какое влияние на процедуру поиска имеет выбор (  и  (,
Нелдер и Мид (а также Павиани) провели решение  нескольких  тестовых  задач,
используя большое число различных комбинаций значений  (  и  (.  В  качестве
удовлетворительных значений этих параметров при оптимизации без  ограничений
Нелдер и Мид рекомендовали (=1, (=0,5 и (=2. Размеры и ориентация  исходного
многогранника в некоторой степени влияли на время решения, а значения  (,  (
и ( оказывали значительно большее  влияние.  Павиани  отмечает,  что  нельзя
чётко решить вопрос относительно выбора ( и ( и  что  влияние  выбора  (  на
эффективность  поиска  несколько  более  заметно,  чем  влияние  (.  Павиани
рекомендует следующие диапазоны значений для этих параметров:
                               0,4 ( ( ( 0,6,
                               2,8 ( ( ( 3,0.
При 0<(<0,4 существует вероятность того, что из-за  уплощения  многогранника
будет иметь  место  преждевременное  окончание  процесса.  При  (>0,6  может
потребоваться  избыточное  число  шагов  и  больше  машинного  времени   для
достижения окончательного решения.

                                   Пример

                 Поиск методом деформируемого многогранника.
      Для иллюстрации метода Нелдера и Мида  рассмотрим  задачу  минимизации
функции f(x)=4(x1–5)2+(x2–6)2, имеющей минимум в точке x*=[5 6]T.  Поскольку
f(x) зависит от двух переменных, в начале поиска используется  многоугольник
с тремя вершинами. В этом примере в качестве начального  многогранника  взят
треугольник с вершинами x1(0)=[8 9]T, x2(0)=[10 11]T и x3(0)=[8  11]T,  хотя
можно было бы использовать любую другую конфигурацию из трёх точек.
      На нулевом этапе поиска,  k=0,  вычисляя  значения  функции,  получаем
f(8,9)=45, f(10,11)=125 и f(8,11)=65. Затем отражаем  x2(0)=[10  11]T  через
центр тяжести точек x1(0) и x3(0) [по формуле (1)], который обозначим  через
x4(0):
                                   [pic],
                                    [pic]
с тем, чтобы получить x5(0).
                                   [pic],
                                   [pic],
                                 f(6,9)=13.
Поскольку f(6,9)=13
ref.by 2006—2022
contextus@mail.ru