З'єднання комірок за перестановкою рядків та стовпців у кінцевій сітці


10

Мені хотілося б знати, чи вивчалася раніше така проста проблема і чи відоме якесь рішення.

Нехай G - кінцева (MxN) сітка, S - підмножина клітин G ("крихти"). Як кажуть, дві крихти (локально) з'єднані, якщо їх координати відрізняються щонайбільше однією (тобто, якщо вони намальовані як квадрати, вони поділяють принаймні одну кутову точку).

Тепер можна спробувати з'єднати крихти (їх набір у цілому), переставляючи лінії та стовпчики сітки. Іншими словами, мета - придумати перестановку ліній та перестановку стовпчиків, щоб будь-які дві крихти в отриманій сітці були з'єднані ланцюжком (локально) з'єднаних крихт.

Питання: чи завжди є рішення?

Я не знаю, як це напасти. Через відсутність кращої ідеї я написав необроблену програму, яка шукає рішення грубою силою (вона генерує перестановки навмання та перевіряє, чи є в отриманій сітці підключені крихти). Програма до цих пір завжди знаходила рішення для малих (10x10 або 7x14) сіток, а більші сітки явно поза межами її спрощеної стратегії (потрібно було б занадто багато часу, щоб випадково натрапити на рішення).

Ось приклад сітки, вирішеної програмою:

Початкова сітка (крихти позначаються символами X, порожні клітини крапками):

   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 .

Рішення:

   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 . . .

Природно, проблему можна легко узагальнити до будь-якого виміру d> 2. Я припускаю, що інші узагальнення можна розглянути.

Спасибі заздалегідь,

Yann David


2
цікава проблема. є якась програма?
Суреш Венкат

@Tsuyoshi: ти прав, фігурка, яку я опублікував, має рішення (таке, яке ти вказав). Я її видалив.
Marzio De Biasi

2
Одночасне перехресне перешкоджання. math.stackexchange.com/questions/83231/…
Tsuyoshi Ito

Відповіді:


7

Спробуємо спробувати аналогічний аргумент підрахунку, ніж той, що був у попередній версії моєї відповіді.

n225qn25qn225q(n!)2

c(nc)ncexp(cnlognO(n))q=cnexp(2nlogn+O(cn))c>2


Встановлюючи і нехтуючи умовами, я переслідував вашу нерівність, щоб знайти точку "беззбитковості", отримуючи . Останнє значення дивовижно близьке до 26608.c=3o(n)n>6215/e2
hardmath

Це цікавий числовий збіг. Я запитав про це на сайті mathoverflow.net/questions/81368/…
Девід

1
Це справді елегантний і переконливий доказ. (Я трохи зайняв мене, щоб детально наблизити на власну користь.) Залишається побачити, чи вдасться комусь придумати конкретний зустрічний приклад. @ коментар hardmath вище припускає, що це може бути важко (СЕ був би потворним звіром); тепер не потрібно мати однакову кількість крихт у всіх рядах СЕ.
Янна Девіда
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.