Mi piacerebbe sapere se il seguente semplice problema è stato studiato prima e se è nota una soluzione.
Sia G una griglia finita (MxN), S un sottoinsieme di celle di G (le "briciole"). Si dice che due briciole siano collegate (localmente) se le loro coordinate differiscono al massimo di uno (cioè, se disegnate come quadrati, condividono almeno un punto d'angolo).
Ora, si può provare a connettere le briciole (il loro insieme nel suo insieme) permutando le linee e le colonne della griglia. In altre parole, l'obiettivo è quello di elaborare una permutazione delle linee e una permutazione delle colonne in modo che due briciole nella griglia risultante siano collegate da una catena di briciole (localmente) connesse.
Domanda: c'è sempre una soluzione?
Non so proprio come attaccarlo. Per mancanza di un'idea migliore, ho scritto un programma grezzo che cerca soluzioni con la forza bruta (genera casualmente le permutazioni e verifica se la griglia risultante ha le sue briciole collegate). Finora il programma ha sempre trovato soluzioni su griglie più piccole (10x10 o 7x14) e le griglie più grandi sono chiaramente fuori portata dalla sua strategia semplicistica (impiegherebbe troppo tempo a inciampare a caso in una soluzione).
Ecco un esempio di una griglia risolta dal programma:
Griglia iniziale (le briciole sono indicate da X, le celle vuote da punti):
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 .
Soluzione:
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 . . .
Naturalmente, il problema può essere prontamente generalizzato a qualsiasi dimensione d> 2. Suppongo che potrebbero essere prese in considerazione altre generalizzazioni.
Grazie in anticipo,
Yann David