Todas as cores estarão na superfície do cubo RGB, a menos que eu esteja enganado, pelo mesmo motivo que toda a carga elétrica aparece na superfície dos condutores elétricos. Isso sugere o seguinte método para determinar as cores:
- interpretar o espaço de cores RGB como um espaço cartesiano XYZ;
- interpretar cores candidatas como partículas carregadas, por exemplo, elétrons;
- encontre o estado de baixa energia do sistema através, por exemplo, de recozimento simulado;
n∼15
Depois que as partículas convergem, você tem o arranjo das cores interpretando pontos como cores. Inicialmente, as partículas podem ser dispostas aleatoriamente na superfície do cubo, com um pequeno espaçamento (ajuda a problemas de convergência e estabilidade). Colocar pequenos grupos nas faces do cubo deve funcionar.
Para evitar ficar preso em um mínimo local (em vez de global), você pode "pulsar" algum pequeno campo elétrico aleatório após a convergência e verificar se o sistema volta à mesma configuração ou diferente. É um pouco improvável que partículas colocadas aleatoriamente façam isso neste cenário, mas possível.
EDITAR:
Como apontado nos comentários, a suposição de que soluções ótimas deveriam estar apenas na superfície provavelmente não vale para todas as geometrias no caso discreto.
Felizmente, isso tem pouca influência no restante da técnica descrita acima. Partículas podem ser inicialmente colocadas em qualquer lugar; deixe algum espaço entre pares de partículas para estabilidade e cobertura e, em seguida, itere o sistema para convergência, em seguida, pulsar algumas vezes (possivelmente com intensidade crescente) para ver se você pode fazer com que o sistema converja para uma configuração diferente (possivelmente melhor) .
Observe também que acredito que esse método irá maximizar algo como "(harmônica?) Distância média entre pares de partículas". Se você deseja maximizar a distância mínima entre pares de partículas ou alguma outra média (geométrica?) Entre pares de partículas, isso pode não lhe proporcionar a melhor solução.
De qualquer forma, acho que essa técnica fornecerá uma maneira fácil de criar bons conjuntos de cores aproximadamente ótimos ... obter soluções "ideais" reais provavelmente não é necessário para o seu caso de uso. Naturalmente, se uma solução exata e comprovadamente ótima é desejada, a simulação numérica provavelmente não é o melhor caminho a percorrer.