Chciałbym wiedzieć, czy wcześniej zbadano następujący prosty problem i czy znane jest jakieś rozwiązanie.
Niech G będzie siatką skończoną (MxN), S podzbiorem komórek G („okruchy”). Mówi się, że dwie okruchy są (lokalnie) połączone, jeśli ich współrzędne różnią się co najwyżej o jeden (tj. Jeśli narysowane jako kwadraty, dzielą co najmniej jeden punkt narożny).
Teraz można spróbować połączyć okruchy (ich zestaw jako całość), permutując linie i kolumny siatki. Innymi słowy, celem jest opracowanie permutacji linii i permutacji kolumn, tak aby dowolne dwie okruchy w wynikowej siatce były połączone łańcuchem (lokalnie) okruchów.
Pytanie: czy zawsze istnieje rozwiązanie?
Nie bardzo wiem, jak go zaatakować. Z braku lepszego pomysłu napisałem surowy program, który szuka rozwiązań brutalną siłą (generuje losowo permutacje i sprawdza, czy wynikowa siatka ma połączone okruchy). Program do tej pory zawsze znajdował rozwiązania na małych (10 x 10 lub 7 x 14) siatkach, a większe siatki wyraźnie nie są w zasięgu jego uproszczonej strategii (zbyt długo losowe natknięcie się na rozwiązanie) byłoby zbyt długie.
Oto przykład siatki rozwiązanej przez program:
Początkowa siatka (okruchy są oznaczone X, puste komórki kropkami):
0 1 2 3 4 5 6 7 8 9
0 X . X X . X . X X .
1 X . . . . X . . . .
2 . . X . . . . X . X
3 . X . . X . X . . X
4 . . . X . . . . . .
5 X X . . . X X . X .
6 . . . X . . . . X .
7 X . X . . X . . . .
8 X . . . X . . X X .
Rozwiązanie:
6 1 4 7 8 2 9 3 5 0
1 . . . . . . . . X X
4 . . . . . . . X . .
5 X X . . X . . . X X
8 . . X X X . . . . X
7 . . . . . X . . X X
0 . . . X X X . X X X
3 X X X . . . X . . .
6 . . . . X . . X . .
2 . . . X . X X . . .
Oczywiście problem można z łatwością uogólnić na dowolny wymiar d> 2. Podejrzewam, że można by rozważyć inne uogólnienia.
Z góry dziękuję,
Yann David