Усі кольори будуть на поверхні куба RGB, якщо я не помиляюся, з тієї ж причини, що весь електричний заряд з’являється на поверхні електричних провідників. Це пропонує наступний метод визначення кольорів:
- інтерпретувати RGB кольоровий простір як декартовий простір XYZ;
- інтерпретувати кольори-кандидати як заряджені частинки, наприклад, електрони;
- знайти низько енергетичний стан системи, наприклад, через імітований відпал;
n ∼ 15
Після того як частинки сходяться, ви маєте розташування кольорів, інтерпретуючи точки як кольори. Спочатку частинки можуть розташовуватися випадковим чином на поверхні куба, з невеликим інтервалом (допомагає зближенню та стабільності). Нанесення невеликих груп на грані куба повинно працювати.
Щоб уникнути зациклювання на локальному (а не глобальному) мінімумі, ви можете «імпульсувати» якесь невелике випадкове електричне поле після конвергенції і побачити, чи повертається система до тієї ж конфігурації чи іншої. Дещо малоймовірно, що випадково розміщені частинки зроблять це в цьому сценарії, але можливо.
Редагувати:
Як зазначалося в коментарях, припущення, що оптимальні рішення повинні лежати лише на поверхні, ймовірно, не відповідає всім геометріям у дискретному випадку.
На щастя, це мало стосується решти описаної вище техніки. Частинки можна спочатку розмістити де завгодно; просто залиште деякий простір між парами частинок для стабільності та покриття, а потім повторіть систему до конвергенції, потім кілька разів пульсуйте (можливо, із збільшенням інтенсивності), щоб побачити, чи зможете ви змусити систему конвергуватися до якоїсь іншої (можливо кращої) конфігурації .
Також зауважте, що я вважаю, що цей метод максимізує щось на зразок "(гармонічного?) Середнього відстані між парами частинок". Якщо ви хочете максимально збільшити мінімальну відстань між парами частинок або якусь іншу середню (геометричну?) Між парами частинок, це може не дати вам найкращого рішення.
У будь-якому випадку, я відчуваю, що ця методика дасть вам простий спосіб придумати хороші приблизно оптимальні набори кольорів ... отримання фактичних "оптимальних" рішень, ймовірно, не потрібно для вашого використання. Звичайно, якщо потрібне точне і напевно оптимальне рішення, чисельне моделювання, мабуть, не найкращий шлях.