Domanda:
Strategia per risolvere il puzzle "Lights Out"
Denilson Sá Maia
2010-11-18 05:44:24 UTC
view on stackexchange narkive permalink

Lights Out è un puzzle basato su una griglia in cui ogni cella ha due stati: acceso / spento. Puoi scambiare lo stato di qualsiasi cella, ma quando lo fai, vengono scambiate anche le celle adiacenti (orizzontalmente o verticalmente). Data la griglia iniziale con stati casuali, l'obiettivo è impostare tutte le celle in stato off.

Tuttavia, non sono mai stato in grado di sviluppare una strategia su come risolvere (a mano) questo tipo di puzzle . Di solito finisco per cambiare cella a caso. Che tipo di strategia sono disponibili per risolvere questo gioco?

Ci sono molte varianti di questo puzzle, ma a me interessa solo quello classico.

Questo puzzle è disponibile in molte dimensioni della griglia. È auspicabile, ma non obbligatorio, che le strategie proposte funzionino su tutte le dimensioni della griglia.

La mia strategia usuale (e imperfetta) è cercare di cancellare riga dopo riga, dall'alto verso il basso. Sfortunatamente, non riesco a cancellare l'ultima riga, quindi inizio a scambiare celle a caso, o semplicemente ragequit del tutto.


C'è un open-source e implementazione multipiattaforma denominata flip come parte della Portable Puzzle Collection di Simon Tatham.

Onestamente questo suona come un adattamento migliore per il sito di matematica che per noi.
Gah, stavo per indicarti l'implementazione di Lights Out per ulteriori informazioni. È in grado di darti una soluzione per qualsiasi configurazione valida che puoi inventare.
@StrixVaria - Ho pensato la stessa cosa. Questa è la teoria dei giochi, credo.
Informazioni sullo spostamento di questo in Math ... Si ritiene che alcune domande siano valide in più di un sito Stack_something. Ad esempio, questo ha senso sia in matematica che in giochi. - @badp: se riesci a estrarre una sorta di strategia dal codice sorgente, sentiti libero di descriverla in un inglese semplice! (sì, posso guardare la fonte, ma non la guarderò adesso)
@Raven: ahaha questo è certamente legato alla matematica (algoritmi), ma non ha nulla a che fare con [la teoria dei giochi] (http://en.wikipedia.org/wiki/Game_theory). Probabilmente è la soluzione migliore per [stackoverflow] (http://www.stackoverflow.com) (o anche il nuovo [sito CS teorico] (http://cstheory.stackexchange.com/)), ma sicuramente non qui.
@BlueRaja-DannyPflughoeft (Come faccio a taggarti anche in un post? Oo) Certo, la mia conoscenza della teoria dei giochi è scarsa, ma avevo l'impressione che "questa è una posizione vincente, qual è la mossa che ti porterà più vicino al finale vincente "* era * teoria dei giochi.
@BlueRaja: Non voglio implementare un algoritmo, voglio solo un qualche tipo di strategia per risolverlo a mano. Quindi, non è per StackOverflow e certamente non per Theorical CS.
@Raven: Hai solo bisogno delle prime quattro lettere per taggare qualcuno. La teoria dei giochi cerca di modellare le interazioni uomo / animale in varie situazioni usando la matematica. L'esempio di fatto è il [dilemma del prigioniero] (http://en.wikipedia.org/wiki/Prisoner%27s_dilemma). @Denilson: `una sorta di strategia per risolverlo a mano` Quello che stai chiedendo è chiamato algoritmo o, se vuoi solo suggerimenti generali, un euristico; in ogni caso, le persone che studiano questo tipo di problema per vivere si troverebbero nel sito teorico di CS.
@Denilson Onestamente, se dovessi scrivere un gioco del genere, girerei solo alcune tessere a caso e memorizzerei _that_ come soluzione. ;) (No, non è quello che fa il gioco.)
È applicabile al sito? : http://gaming.stackexchange.com/questions/10204/what-are-some-advantages-of-different-usages-of-jokers
Otto risposte:
Chad Birch
2010-11-18 06:42:38 UTC
view on stackexchange narkive permalink

Il metodo che sto per spiegare tecnicamente funziona per griglie di qualsiasi dimensione, ma richiede alcune conoscenze che non so come determinare da zero. Se vuoi fare delle ricerche online ad esso correlate, il metodo viene generalmente indicato come "inseguire le luci" o "inseguire le luci".

Inizia premendo i pulsanti sulla seconda riga corrispondente al celle sulla riga superiore, quindi i pulsanti sulla terza riga corrispondenti alle celle illuminate nella seconda riga, ecc. Questo è esattamente quello che stavi già facendo, inseguendo le luci fino alla riga inferiore, da cui deriva il nome .

Ora, come sai, la parte difficile arriva quando hai una griglia vuota ad eccezione della riga inferiore. A questo punto, il modo per finalizzarlo è premere alcuni pulsanti specifici sulla prima riga corrispondente alle celle illuminate nella riga inferiore, quindi inseguire nuovamente le luci dall'alto. Se hai premuto i pulsanti della prima riga a destra, quando completi la seconda sequenza, il puzzle sarà risolto.

Per quanto ne so, devi solo sapere quali pulsanti per spingere sulla riga superiore per corrispondere a un modello specifico che è stato lasciato sulla riga inferiore dopo la sequenza iniziale. Se riesci a trovare un metodo per determinare quelli giusti da spingere in alto, probabilmente puoi utilizzare un metodo molto simile per generalizzarlo a una griglia di qualsiasi dimensione. Non conosco un metodo per questo, quindi, uh, lo lascerò come esercizio al lettore.

Per la classica versione 5x5 del puzzle, risulta che ci sono solo 7 possibili schemi nella riga inferiore dopo la sequenza iniziale, quindi elencherò solo i 7 possibili schemi ei corrispondenti pulsanti della prima riga da premere per ciascuno. I pulsanti sono numerati da sinistra a destra.

  | -------------------- + ---------- ------- || A sinistra nella riga inferiore | Spingere sulla riga superiore || -------------------- + ----------------- || 1, 2, 3 | 2 || 1, 2, 4, 5 | 3 || 1, 3, 4 | 5 |
| 1, 5 | 1, 2 || 2, 3, 5 | 1 || 2, 4 | 1, 4 || 3, 4, 5 | 4 || -------------------- + ----------------- |  

È possibile trovare tabelle di ricerca simili online per le altre dimensioni.

Poiché mi sono imbattuto in questa soluzione, ho un modo per determinare questa tabella: 1. Prova individualmente ogni singola posizione nella riga superiore e vedi a cosa si propaga. 2. Poiché queste soluzioni si impilano, puoi combinarle (potresti usarle come righe in un'eliminazione gaussiana, per esempio) per risolvere l'equazione di algebra lineare corrispondente alla risoluzione per l'insieme di cui hai bisogno. Ad esempio (sebbene non utile; la tua tabella ha già le soluzioni minime), [1,5] è risolto da (1,2) e [2,4] è risolto da (1,4) (dal tavolo). Quindi, [1,2,4,5] è risolto da (2,4).
badp
2010-11-18 06:11:49 UTC
view on stackexchange narkive permalink

Non ho una strategia, ma ecco alcuni fatti sul tabellone 5 × 5:

  • L'ordine non conta. Fare clic su una tessera A, quindi fare clic su una tessera B è esattamente la stessa cosa che fare clic sulla tessera B, quindi fare clic sulla tessera A - o fare clic sulla tessera A, poi sulla tessera B, poi di nuovo sulla tessera A, poi di nuovo sulla tessera A, poi magari capovolgendone un'altra tessera, quindi tessera B.
    In breve, una tessera fa o non fa parte della soluzione (un insieme di tessere non ordinato che devi cambiare). Andare in tondo e provare le stesse mosse più e più volte non ti porta da nessuna parte.

    1 unlit cell, 11 moves away.
    Così vicino, eppure così lontano ...

  • Meno non è più. Tentare di ridurre al minimo la quantità di celle accese / spente può essere controproducente (vedi immagine sopra). Dovresti invece provare a portare il gioco a una configurazione riconoscibile e risolvibile dalla memoria.
  • I giochi simmetrici hanno soluzioni simmetriche. Ricordalo: rispecchia le tue mosse e il gioco la complessità diminuirà notevolmente.
  • Le soluzioni non sono uniche e la tessera centrale non è mai richiesta. Sebbene possa rendere più facile la risoluzione di un puzzle, appare che tutti i giochi risolvibili possono essere risolti senza la tessera centrale.
"I giochi simmetrici hanno soluzioni simmetriche" - mi ricorda questo: un professore di matematica entra nella sua classe per trovare un secchio vuoto e la sua scrivania in fiamme. Valuta la situazione, schiocca le dita e afferra il secchio. L'insegnante la riempie d'acqua e tira fuori la sua scrivania. Il giorno successivo, lo stesso insegnante di matematica entra e trova la sua scrivania in fiamme * di nuovo *, tranne che questa volta, il secchio contiene già dell'acqua. Pensa un po ', poi calcia il secchio, svuotandone il contenuto, riducendo così il problema a uno che aveva già risolto. Il prof. riempie il secchio d'acqua e salva la sua scrivania.
@Raven - Interessante variazione dello scherzo [ingegnere / fisico / matematico] (http://www.farmdale.com/emp-jokes.shtml)
@badp Ho problemi con il fatto che i giochi simmetrici hanno soluzioni simmetriche. Non ha alcuna base nella realtà (testimonia l'ultimo teorema di Fermat). Lights Out non ha una soluzione simmetrica. Guarda http://orion.math.iastate.edu:80/burkardt/puzzles/lights_out_solution.html
@John Mi dispiace, ma non riesco a trovare un esempio di non simmetria in quella pagina. Le soluzioni nulle sono esse stesse simmetriche (per fortuna!), E la soluzione per l'intero quadrato è simmetrica attorno all'asse "diagonale secondario".
@John Detto questo, sono confuso. Date queste soluzioni nulle, come risolvete questo gioco: [0,0,0,0,0], [0,0,1,0,0], [0,1,1,1,0], [0 , 0,1,0,0], [0,0,0,0,0], che puoi ovviamente risolvere cliccando sul riquadro centrale, soluzione che non può essere raggiunta dalla combinazione di quelle soluzioni nulle. (Non sto dicendo che non puoi. Mi chiedo solo quale sia l'altra soluzione.)
@badp La soluzione da tutte le luci accese a luci spente è molto non simmetrica. O forse c'è qualche altra definizione di simmetria che mi manca. Il punto è che i giochi simmetrici non ** necessariamente ** hanno soluzioni simmetriche. Potrebbero, come nel tuo esempio, la soluzione per tutte le luci non può mai essere trovata considerando soluzioni simmetriche. Quindi è necessario esaminare le possibili soluzioni non simmetriche. (Il mio punto fermo è che la soluzione è orribile anche se la domanda è facile, tutti cercavano una soluzione bella ed elegante)
@John l'asse di simmetria per la soluzione di pensione completa giace su queste celle: (5,1), (4,2), (3,3), (2,4), (1,5). --- aspetta, (3,3)? La cella che non fa mai parte della soluzione nelle soluzioni nulle? WTF?
Ma guarda quante meno simmetrie ha la soluzione rispetto alla domanda e alla risposta.
Penso che il motivo per cui il 5x5 si spegne sia così accattivante è che le persone cercano soluzioni simmetriche e falliscono. Le altre dimensioni hanno più simmetria.
Martin Thoma
2011-06-09 22:36:04 UTC
view on stackexchange narkive permalink

La seguente soluzione funziona per ogni griglia m × n:

Pensa alla griglia data come un vettore in uno spazio vettoriale dimensionale m × n. Ogni valore è 1 (se la luce è accesa) o 0 (se la luce è spenta). Ora puoi pensare a ogni spinta di cella come un vettore in questo spazio vettoriale. Dato che puoi spingere m x n celle diverse, hai m x n vettori diversi. Se cambiano qualcosa in una cella, il valore è 1, altrimenti 0.

Come accennato in precedenza, è interessante solo se devi premere un pulsante o meno. Non c'è bisogno di guardare l'ordine, non c'è bisogno di premere un pulsante più di una volta. Quindi hai un'equazione

vettore per la tua griglia = a_1 x cellvector1 + a_2 x cellvector_2 + ... a_mn x cellvector_mna_1, a_2, ..., a_mn è 0 o 1.

Dato che hai variabili mxn (a_1 ... a_mn) ed equazioni mxn (le righe dei vettori) puoi risolverlo con Eliminazione gaussiana.

Se sei tedesco, potresti leggere " Aufgabe 2, 30. Bundeswettberwerb Informatik"

John Herro
2018-10-05 06:16:37 UTC
view on stackexchange narkive permalink

Soluzione alle luci spente 6x6:
La riga inferiore di un puzzle 6x6 può contenere qualsiasi possibile combinazione di luci. Pertanto, una tabella, simile a quella Chad Birch fornita sopra per il puzzle 5x5, conterrebbe 63 righe. Tuttavia, puoi risolvere qualsiasi puzzle 6x6 Lights Out con questo tavolino:

  | -------------------- + ----------------- |
| A sinistra nella riga inferiore | Spingere sulla riga superiore |
| -------------------- + ----------------- |
| 1 | 1, 3 |
| 2 | 4 |
| 3 | 1, 5 |
| 4 | 2, 6 |
| 5 | 3 |
| 6 | 4, 6 |
| -------------------- + ----------------- |
 

Per qualsiasi combinazione di luci a sinistra nella riga inferiore, combina semplicemente le linee della tabella sopra, ricordando che premere un pulsante due volte equivale a non premerlo affatto. Ad esempio, se la riga inferiore contiene
4, 5, 6
spingeresti
2, 6, 3, 4, 6
o semplicemente
2, 3, 4,
poiché i due 6 si annullano.

perché funziona?
Questo funziona perché ogni pulsante sulla riga superiore alterna una serie di pulsanti sulla riga inferiore (1 alterna 1 e 5; 2 alterna 2, 4 e 6; 3 alterna 5; 4 alterna 2; 5 alterna 1, 3 e 5e 6 commutatori 2 e 6).Da ciò si ricava facilmente la tabella sopra (ad esempio, premendo 1 si commuta 1 e 5 e premendo 3 si cambia 5, quindi l'effetto netto della pressione di 1 e 3 è quello di alternare solo 1).La tabella funziona perché gli effetti di ciascun pulsante si aggiungono e due interruttori della stessa posizione si annullano.
PaddingtonBear
2014-03-25 16:38:30 UTC
view on stackexchange narkive permalink

Giocando con diversi formati di gioco ho trovato alcune cose che hanno stuzzicato la mia curiosità.

In primo luogo, il caso 4 x 4 è banale: insegui i quadrati illuminati e si risolve al primo passaggio. I casi 2 x 2 e 3 x 3 sono (curiosamente) meno banali ma non esattamente difficili.

In secondo luogo, il caso 9 x 9 è quasi banale. Se numeriamo le colonne da 1 a 9 (da sinistra a destra nella mia testa, ma va bene ovviamente), ci sono solo due risultati dopo il primo inseguimento: o è risolto al primo passaggio (come il caso 4 x 4) o in alternativa, i quadrati illuminati sulla riga inferiore sono 1, 3, 5, 7, 9 e se ora fai clic su quei quadrati nella riga superiore e insegui quelli verso il basso, si risolve.

Il caso 7 x 7 sembra cedere a una strategia molto semplice che mi ha richiesto circa una dozzina di giochi per individuare. Il primo inseguimento finisce con tutti i tipi di diverse configurazioni nella linea di fondo - troppe per catalogare in modo ragionevole. Tuttavia, dopo il primo inseguimento, posso scegliere in modo affidabile la riga superiore come segue: per ogni quadrato i sulla riga inferiore che è illuminata è necessario fare clic sui quadrati della riga superiore i-1, i, i + 1. Puoi semplicemente fare clic su di essi in base a quella regola o scriverlo per l'intera riga e quindi fare clic su quelle caselle che si verificano un numero dispari di volte - la stessa cosa ma sulla carta. Dopo di che inseguite le squadre e il lavoro è fatto. Chiaramente se il quadrato 1 o 7 è acceso, i risultati sono 1,2 o 6,7 poiché non c'è 0 o 8. Funziona ancora.

A questo punto ho provato questa strategia su altre dimensioni , 6, 8, 11, 12, 16 - e non funziona su di essi, quindi è peculiare del caso 7 x 7 o forse la strategia 7 x 7 è un caso speciale di un metodo più generale.

MASMC
2015-05-17 01:49:28 UTC
view on stackexchange narkive permalink

Ora abbiamo solo bisogno di soluzioni per un 4x4 con avvolgimento. Un esempio: {0000} {0000} {0000} {0000} Premendo l'angolo in alto a sinistra, ottieni: {1101} {1000} {0000} {1000} Sì, lo so che ho iniziato con tutte le luci spente, ma è stato un esempio. Ma, per seguire le linee guida, ho controllato alcune soluzioni 7x7 con un altro metodo dato qui, alcune sono irrisolvibili. Al momento sto creando una tabella per una matrice 4x4, poiché ne ho ricavate alcune in cui dovevo "inseguire le luci" due o più volte.

  Ecco l'esempio in forma di matrice .0000000000000000 PREMERE IN ALTO SINISTRA1101100000001000  

Vedi cosa intendo per avvolgimento? Basta chiedere e io risponderò con una risposta a una macchina da stampa con avvolgimento.

Potrebbe essere troppo tardi per chiedere, ma ti dispiace mostrare una soluzione con il wrapping (per un 5x5 sarebbe ancora meglio!)
Baud2death
2015-07-23 23:53:54 UTC
view on stackexchange narkive permalink

Questo enigma è mostrato nella missione DDO the shroud ed è molto facile da risolvere per 3x3 - 4x4 e 5x5

4x4 è semplice in quanto risolve con solo 1 pass3x3 e 5x5 richiede un secondo passaggio con alcuni istruzioni

1 ° per entrambi i passaggi, fai semplicemente clic sull'interruttore immediatamente sotto i punti illuminati sulla riga superiore e ripeti fino a raggiungere il fondo

Per 4x4 il tuo problema è risolto

Per 3x3 questo ti lascerà con le luci accese nella riga inferiore, e non importa se è 3x3 o 5x5 ti concentri solo sui punti in basso a sinistra (ignorando eventuali 2 punti a destra su 5x5)

Ora la parte divertente

Torni alla riga in alto nella stessa colonna dei punti illuminati in basso 3

Per quelli nella colonna 1, premi il tasto cambia tra 1 e 2

Per uno nella colonna 3, è 2 e 3

Per uno nella colonna 2, è 1, 2 & 3

Ripeti questo per ogni punto illuminato, anche se ciò significa ripetere per alternare lo stesso

Quindi XX 0 sarebbe 1, 2 quindi 1, 2, 3X 0 X sarebbe 1, 2 quindi 2, 3

E tc

Quindi, una volta terminato, risolvi per un passaggio finale e il lavoro è fatto

Un modo completamente manuale per risolvere puzzle 3x3 4x4 e 5x5

Fuk Hu
2014-07-25 06:17:33 UTC
view on stackexchange narkive permalink

Ho dimostrato con mia soddisfazione che nessuna delle soluzioni fornite qui è valida. In effetti, ci sono casi 5x5 totalmente insolubili. Ecco come puoi dimostrarlo a te stesso: prendi un mazzo di carte e distribuisci una matrice usando carte rosse per indicare una luce accesa e carte nere per indicare luci spente. Distribuisci la matrice di qualsiasi dimensione che ti piace, quindi prova la tecnica qui fornita. Ho provato una matrice 5x5 e ho trovato una riga inferiore che NON corrisponde a quella pubblicata qui. Ciò significa che la matrice 5x5 è insolubile utilizzando l'algoritmo "segui le luci". Un altro sito afferma che la matrice 6x6 è sempre risolvibile. Ancora una volta, usando il metodo descritto sopra - distribuire le carte per creare la matrice e usando l'algoritmo "segui le luci", ho trovato diverse matrici 6x6 che non erano risolvibili usando questa tecnica. Puoi posizionare tutti i calcoli che vuoi ma in pratica, LE SOLUZIONI QUI FORNITE NON FUNZIONANO PER TUTTE LE MATRICI.

Questo perché solo il 25% di tutti i giochi è risolvibile. Quelli che sono risolvibili saranno risolvibili con quel metodo.

Stai dicendo che una strategia non è valida perché non ti consente di risolvere enigmi irrisolvibili?È bene chiarire che alcune configurazioni a luci spente sono irrisolvibili e quindi non sono enigmi a luci spente validi.Ma presumibilmente le tecniche proposte per risolvere enigmi a luci spente sono intese per quelle valide (cioè risolvibili).


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 2.0 con cui è distribuito.
Loading...