Wszystkie kolory będą na powierzchni kostki RGB, chyba że się mylę, z tego samego powodu, dla którego cały ładunek elektryczny pojawia się na powierzchni przewodów elektrycznych. Sugeruje to następującą metodę określania kolorów:
- interpretować przestrzeń kolorów RGB jako przestrzeń kartezjańską XYZ;
- interpretować kolory kandydujące jako naładowane cząstki, np. elektrony;
- znaleźć stan niskiego zużycia energii przez system, np. przez symulowane wyżarzanie;
n ∼ 15
Kiedy cząstki się zbiegną, masz układ kolorów, interpretując punkty jako kolory. Początkowo cząstki mogą być rozmieszczane losowo na powierzchni sześcianu, z niewielkimi odstępami (pomaga to w kwestiach zbieżności i stabilności). Umieszczanie małych grup na powierzchniach sześcianu powinno działać.
Aby uniknąć utknięcia w lokalnym (a nie globalnym) minimum, możesz „pulsować” jakieś małe przypadkowe pole elektryczne po konwergencji i zobaczyć, czy system powraca do tej samej konfiguracji, czy innej. Jest mało prawdopodobne, aby losowo rozmieszczone cząstki zrobiły to w tym scenariuszu, ale jest to możliwe.
EDYTOWAĆ:
Jak wskazano w komentarzach, założenie, że optymalne rozwiązania powinny leżeć tylko na powierzchni, prawdopodobnie nie dotyczy wszystkich geometrii w przypadku dyskretnym.
Na szczęście ma to niewielki wpływ na resztę opisanej powyżej techniki. Cząstki można początkowo umieścić w dowolnym miejscu; po prostu zostaw trochę miejsca między parami cząstek dla stabilności i pokrycia, a następnie iteruj system do zbieżności, a następnie pulsuj kilka razy (być może ze wzrostem intensywności), aby sprawdzić, czy możesz doprowadzić system do konwergencji do jakiejś innej (być może lepszej) konfiguracji .
Zauważ też, że uważam, że ta metoda zmaksymalizuje coś w rodzaju „(harmonicznej?) Średniej odległości między parami cząstek”. Jeśli chcesz zmaksymalizować minimalną odległość między parami cząstek lub inną średnią (geometryczną?) Między parami cząstek, może to nie dać najlepszego rozwiązania.
W każdym razie uważam, że ta technika da ci łatwy sposób wymyślenia dobrych, w przybliżeniu optymalnych zestawów kolorów ... uzyskanie rzeczywistych „optymalnych” rozwiązań prawdopodobnie nie jest wymagane w twoim przypadku użycia. Oczywiście, jeśli pożądane jest dokładne i możliwe do udowodnienia optymalne rozwiązanie, symulacja numeryczna prawdopodobnie nie jest najlepszym rozwiązaniem.