Рассматривается следующая многомерная задача локальной безусловной оптимизации: найти минимум критерия оптимальности (), определенного в -мерном евклидовом пространстве ,

 (1)

Комплексом называется многогранник с вершинами (не обязательно выпуклый). Рекомендуется . Вообще говоря, комплексом в комбинаторной топологии называется геометрическая фигура, которая может быть разбита на более элементарные фигуры. В нашем случае такими элементарными фигурами являются симплексы. Поэтому, говоря более строго, в данном параграфе рассматриваются симплициальные комплексы.
При решении задачи (1) методом комплексов используются следующие операции:
Генерация случайного комплекса. В пространстве координаты вершин случайного комплекса с вершинами могут быть найдены по формуле

 (2)

где - произвольная начальная точка, – номер вершины комплекса, - скаляр, определяющий размеры комплекса, - реализация -мерного случайного вектора, - некоторая векторная норма. Обычно в качестве координат вектора используют независимые случайные величины, равномерно распределенные в интервале

Отражение вершины комплекса с растяжением. Положим, что в пространстве тем или иным способом задан комплекс с вершинами , и его вершину необходимо отразить через центр тяжести комплекса с растяжением. В новом комплексе все вершины, кроме -ой, совпадают с соответствующими вершинами исходного комплекса , а -я вершина находится на прямой, проходящей через центр тяжести этого комплекса и его вершину (см. рис. 1). Обозначим координаты вершин нового комплекса . Тогда имеем

 (3)

где - коэффициент растяжения комплекса (рекомендуемое значение - ), - вектор координат центра тяжести комплекса :

 (4)

Рис. 1.  Отражение вершины X1r комплекса Cr через центр его тяжести с растяжением. Пунктиром показан новый комплекс Cr+1.
Сжатие комплекса. Положим, что в пространстве тем или иным способом задан комплекс с вершинами , и его вершину необходимо переместить ближе к центру тяжести комплекса - выполнить сжатие комплекса. В новом комплексе все вершины, кроме -ой, совпадают с соответствующими вершинами исходного комплекса , а -я вершина находится на прямой, проходящей через центр тяжести этого комплекса и его вершину (см. рис. 2). Обозначим координаты вершин нового комплекса , [1, ]. Тогда имеем

 (5)

где - коэффициент сжатия комплекса (рекомендуемое значение - 2), - вектор координат центра тяжести комплекса (см. (4)).
Рис. 2.  Сжатие комплекса Cr Пунктиром показан новый комплекс Cr.
Схема простейшего варианта метода комплексов.
  1. Задаем начальную точку , исходя из которой должен быть построен комплекс , начальное значение величины и полагаем счетчик числа итераций .
  2. Генерируем случайных векторов и по формуле (2) находим координаты вершин комплекса .
  3. Вычисляем значения () функции () во всех вершинах комплекса .
  4. Находим максимальное из значений функции () в вершинах комплекса

  5. По формулам (3), (4) для комплекса выполняем отражение вершины комплекса с растяжением - получаем вершину и новый комплекс .
  6. Вычисляем значение () функции () в вершине .
  7. Если , то полагаем =+1 и переходим к п.8. Иначе – по формулам (5), (4) выполняем сжатие симплекса в направлении , полагаем и переходим к п.6.
  8. Проверяем условие окончания поиска (см. ниже). Если условие окончания поиска выполнено, то в качестве точки полагаем вершину комплекса , к которой функция () имеет наименьшее значение и завершаем итерации. Иначе – переходим к п. 4
В качестве критерия окончания поиска может использоваться следующее условие: максимальная длина ребра комплекса не превышает - требуемую точность решения по . Может использоваться также следующее аналогичное условие: максимальная разность значений функции () в двух вершинах комплекса не превышает - требуемую точность решения по .
Могут использоваться также более сложные условия окончания поиска

 (6)


 (7)

В формуле (6) векторная норма означает расстояние вершины до центра тяжести комплекса , а сама формула (6) определяет среднее расстояние вершин комплекса до его цента тяжести.
В формуле (7) есть среднее значение функции () в вершинах комплекса , а сама формула (7) определяет среднее отклонение значений функции () в вершинах комплекса от этого среднего значения.
Метод комплексов иллюстрирует рис. 3, на котором показан фрагмент линий уровня функции Химмельблау. На рисунке исходный комплекс имеет вершины , [1, 4]. После отражения с растяжением вершины этого комплекса, в которой функция имеет максимальное значение, получаем комплекс с вершинами , [1, 4]. После отражения с растяжением вершины комплекса , в которой функция имеет максимальное значение, получаем комплекс с вершинами , [1, 4].
Рис. 3.  Траектория поиска минимума функции Химмельблау методом комплексов.
Известно множество модификаций рассмотренного метода комплексов, направленных, в частности, на преодоление «уплощения» комплекса в процессе поиска. С этой целью через фиксированное количество итераций находятся максимальная и минимальная диагонали комплекса и, если их отношение превышает заданное, то по рассмотренной схеме производится построение нового комплекса.