Łączenie komórek za pomocą permutacji liniowych i kolumnowych w skończonej siatce

10

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

Yann David
źródło
2
ciekawy problem. czy jest jakaś aplikacja?
Suresh Venkat
@Tsuyoshi: masz rację. Postać, którą opublikowałem, ma rozwiązanie (podane przez ciebie). Usunąłem to.
Marzio De Biasi,
2
Jednoczesny crossspost jest odradzany. math.stackexchange.com/questions/83231/…
Tsuyoshi Ito

Odpowiedzi:

7

Spróbujmy bardziej dokładnie argumentu zliczającego jak we wcześniejszej wersji mojej odpowiedzi.

Biorąc pod uwagę wejściową macierz 0-1 z q nonzerami, zdefiniuj „rozwiązanie”, które będzie permutacją wierszy, permutacją kolumn i podłączoną macierzą 0-1, którą otrzymuje się jako wynik po wykonaniu permutacji. Ważną obserwacją jest tutaj to, że możliwe są co najwyżej różne macierze wyjściowe: po dokonaniu jednej z wyborów dla pozycji jednego z nonzerów, możemy zakodować resztę macierzy wyjściowej w bitach , wykonując przedpremierowe przejście drzewa opinającego nonzeros i rejestrując dla każdej krawędzi drzewa, czy idzie do liścia, czy jest ostatnią krawędzią od jego rodzica i jaki jest kierunek. Tak więc liczba rozwiązań wynosi łącznie maksymalnie . n 2 5 q n 2 2 5 q ( n ! ) 2n2)2)5qn2)5qn2)2)5q(n!)2)

Teraz każde rozwiązanie działa tylko dla pojedynczego wejścia, ponieważ możemy odwrócić permutacje, aby odzyskać dane wejściowe z macierzy wyjściowej. Liczba wejść, które mają dokładnie niezerowych wierszy w wierszu wynosi , a dla stałej można to przepisać . Ale dla liczba rozwiązań wynosi . Dla dane wejściowe przewyższają liczbę rozwiązań, więc jest dane wejściowe nierozwiązywalne.docexp(cnlogn-O(n))q=cnexp(2nlogn+O(cn))c>2(ndo)ndoexp(donlogn-O(n))q=donexp(2)nlogn+O(don))do>2)

David Eppstein
źródło
Ustawiając i zaniedbując warunki, goniłem za twoją nierównością, aby znaleźć punkt „rentowności”, otrzymując . Ta ostatnia wartość jest niezwykle bliska 26608.o ( n ) n > 6 2 15 / e 2do=3)o(n)n>62)15/mi2)
hardmath
To ciekawy numeryczny zbieg okoliczności. Zapytałem o to na stronie mathoverflow.net/questions/81368/…
David Eppstein,
1
To rzeczywiście elegancki i przekonujący dowód. (Zajęło mi to trochę czasu, aby wyszczególnić przybliżenia dla własnej korzyści). Pozostaje się przekonać, czy komukolwiek uda się wymyślić konkretny przykład. Powyższy komentarz @ hardmath sugeruje, że może to być trudne (CE byłaby brzydką bestią); teraz nie trzeba mieć takiej samej liczby okruchów we wszystkich rzędach CE.
Yann David,