Все цвета будут на поверхности куба RGB, если я не ошибаюсь, по той же причине, по которой весь электрический заряд появляется на поверхности электрических проводников. Это предполагает следующий метод определения цветов:
- интерпретировать цветовое пространство RGB как декартово XYZ-пространство;
- интерпретировать цвета кандидатов как заряженные частицы, например электроны;
- найти низкоэнергетическое состояние системы, например, путем имитации отжига;
n∼15
Как только частицы сходятся, вы получаете расположение цветов, интерпретируя точки как цвета. Первоначально частицы могут быть расположены случайным образом на поверхности куба с небольшим интервалом (помогает сходимости и проблемам стабильности). Помещение маленьких групп на лицах куба должно работать.
Чтобы не застрять в локальном (а не глобальном) минимуме, вы можете «пульсировать» некоторое небольшое случайное электрическое поле после схождения и посмотреть, возвращается ли система к той же конфигурации или к другой. Несколько маловероятно, что случайно расположенные частицы сделают это в этом сценарии, но возможно.
РЕДАКТИРОВАТЬ:
Как отмечено в комментариях, предположение, что оптимальные решения должны лежать только на поверхности, вероятно, не выполняется для всех геометрий в дискретном случае.
К счастью, это не имеет никакого отношения к остальной технике, описанной выше. Частицы могут быть изначально размещены где угодно; просто оставьте некоторое пространство между парами частиц для стабильности и покрытия, а затем итерируйте систему до сходимости, затем сделайте несколько импульсов (возможно, с увеличением интенсивности), чтобы увидеть, можно ли заставить систему сходиться к какой-то другой (возможно, лучшей) конфигурации ,
Также обратите внимание, что я считаю, что этот метод максимизирует что-то вроде «(гармоника?) Среднего расстояния между парами частиц». Если вы хотите максимизировать минимальное расстояние между парами частиц или какое-либо другое среднее (геометрическое?) Между парами частиц, это может не дать вам наилучшего решения.
В любом случае, я чувствую, что этот метод даст вам простой способ придумать хорошие приблизительно оптимальные наборы цветов ... получение реальных "оптимальных" решений, вероятно, не требуется для вашего варианта использования. Естественно, если требуется точное и доказуемо оптимальное решение, численное моделирование, вероятно, не лучший путь.