Метод комплексов

Алгоритм:

Заданы границы значений всех переменных xiL, xiU, i=1,2,..., N (размерность задачи), допустимая точка xo, параметр отображения a (рекомендуется a =1,3) и параметры окончания вычислений e и d.

Шаг 1. Построение начального комплекса, состоящего из P допустимых точек (рекомендуется P=2N). Для каждой точки p = 1, 2,...,P-1

o случайным образом определить координаты xp;

    • если xp - недопустимая точка, то найти центр тяжести xцт уже найденных точек и положить xp = xp + (xцт - xp); повторять процедуру до тех пор, пока xp не станет допустимой;
    • если xp - допустимая точка, повторять до тех пор, пока p=P;
    • вычислить W(xp) для p=0,1,...,P-1.

Шаг 2. Отражение комплекса:

o выбрать точку xR, для которой W(xR) = max W(xp) = Wmax (решается задача минимизации);

    • найти центр тяжести xцт и новую точку xm = xцт + a (xцт - xR);
    • если xm - допустимая точка и W(xm)< Wmax, уменьшить в два раза расстояние между xm и центром тяжести xцт, продолжать поиск, пока W(xm)<Wmax;
    • если xm - допустимая точка и W(xm)<Wmax, то перейти к шагу 4;
    • если xm - недопустимая точка, то перейти к шагу 3.

Шаг 3. Корректировка для обеспечения допустимости:

· если xim<xiL(нижняя граница допускаемой области), то положить xim = xiL;

  • если xim>xiU(верхняя граница допускаемой области), то положить xim = xiU;
  • если xm - недопустимая точка, то уменьшить в два раза расстояние до центра тяжести; продолжать до тех пор, пока xm не станет допустимой точкой.

Шаг 4. Проверка условий окончания вычислений:

положить и ;

если и , то вычисления прекратить; в противном случае перейти к шагу 2a.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: