Пока что я вижу только два вида алгоритма, для программы Дизайнер:
Линейный алгоритм.
На примере всем известного алгоритма выбора шрифта.
Агентурный алгоритм.
Тут задача разбивается на ключевые опции, которые нужно выполнить обязательно. Например, чтобы фон сайта был светлым, чтобы форма заказа была заметна, чтобы текст был читаемым и т.д.
Каждая такая опция в задаче - это агент. Каждый агент следит за своей штукой - выполняется она или нет. Если не выполняется, то агент вносит свои правки. Коррекции одного агента могут навредить другому агенту.
Так они долго, долго друг с другом договариваются, пока не придут к общему знаменателю и гармонии. Только тогда задача считается решенной. После чего человек как арт-директор бракует, наносит коррективы или сохраняет результат.
Набор агентов бесконечно велик и пополняется людьми по своему вкусу.