Pytanie:
Strategia rozwiązywania zagadki „Lights Out”
Denilson Sá Maia
2010-11-18 05:44:24 UTC
view on stackexchange narkive permalink

Lights Out to układanka oparta na siatce, w której każda komórka ma dwa stany: włączony / wyłączony. Możesz zamienić stan dowolnej komórki, ale gdy to zrobisz, sąsiednie komórki (poziomo lub pionowo) również zostaną zamienione. Biorąc pod uwagę początkową siatkę z losowymi stanami, celem jest wyłączenie wszystkich komórek.

Jednak nigdy nie byłem w stanie opracować strategii rozwiązywania (ręcznie) tego typu łamigłówki . Zwykle losowo przełączam komórki. Jakie rodzaje strategii są dostępne do rozwiązania tej gry?

Istnieje wiele odmian tej układanki, ale interesuje mnie tylko ta klasyczna.

Ta układanka jest dostępna w wielu rozmiarach siatki. Pożądane jest, ale nie jest wymagane, aby proponowane strategie działały na wszystkich rozmiarach siatki.

Moja zwykła (i wadliwa) strategia polega na czyszczeniu wiersza po wierszu, od góry do dołu. Niestety, nie mogę wyczyścić ostatniego wiersza, a potem po prostu zaczynam losowo zamieniać komórki lub po prostu ragequit w ogóle.


Jest open-source i wieloplatformowa implementacja o nazwie flip jako część Simon Tatham's Portable Puzzle Collection.

Szczerze mówiąc, brzmi to lepiej dla strony Math niż dla nas.
Gah, właśnie miałem wskazać ci implementację Lights Out, aby uzyskać więcej informacji. Jest w stanie zapewnić rozwiązanie dla każdej prawidłowej konfiguracji, którą możesz wymyślić.
@StrixVaria - Myślałem o tym samym. Myślę, że to teoria gry.
O przeniesieniu tego do Math ... Uważa się, że niektóre pytania są poprawne w więcej niż jednej witrynie Stack_something. Na przykład ten ma sens zarówno w matematyce, jak i grach. - @badp:, jeśli możesz wyodrębnić jakąś strategię z kodu źródłowego, możesz ją opisać prostym angielskim! (tak, mogę spojrzeć na źródło, ale nie będę teraz patrzeć na to)
@Raven: ahaha, jest to z pewnością związane z matematyką (algorytmami), ale nie ma to nic wspólnego z [teorią gier] (http://en.wikipedia.org/wiki/Game_theory). Prawdopodobnie najlepiej pasuje do [stackoverflow] (http://www.stackoverflow.com) (lub nawet nowej [teoretycznej strony CS] (http://cstheory.stackexchange.com/)), ale na pewno nie tutaj.
@BlueRaja-DannyPflughoeft (Jak mogę cię w ogóle oznaczyć w poście? Oo) Wprawdzie moja wiedza na temat teorii gier jest niewielka, ale miałem wrażenie, że "to jest pozycja wygrywająca, jaki ruch przybliży cię do zwycięskiej końcówki „* była * teoria gier.
@BlueRaja: Nie chcę implementować algorytmu, po prostu chcę mieć jakąś strategię, aby rozwiązać go ręcznie. Dlatego nie jest przeznaczony dla StackOverflow i na pewno nie dla Theorical CS.
@Raven: Aby oznaczyć kogoś tagiem, potrzebujesz tylko pierwszych czterech liter. Teoria gier próbuje modelować interakcje człowiek / zwierzę w różnych sytuacjach za pomocą matematyki. Faktycznym przykładem jest [dylemat więźnia] (http://en.wikipedia.org/wiki/Prisoner%27s_dilemma). @Denilson: `jakaś strategia, aby rozwiązać ten problem ręcznie` To, o co prosisz, nazywa się algorytmem lub, jeśli potrzebujesz tylko ogólnych wskazówek, heurystyką; tak czy inaczej, ludzie, którzy zajmują się tego rodzaju problemami na życie, znajdą się w teoretycznej witrynie CS.
@Denilson Szczerze, gdybym miał napisać taką grę, po prostu odwróciłbym kilka kafelków na chybił trafił i zapisał _ to_ jako moje rozwiązanie. ;) (Nie, nie o to chodzi w grze.)
Czy dotyczy to witryny? : http://gaming.stackexchange.com/questions/10204/what-are-some-advantages-of-different-usages-of-jokers
Osiem odpowiedzi:
Chad Birch
2010-11-18 06:42:38 UTC
view on stackexchange narkive permalink

Metoda, którą mam zamiar wyjaśnić technicznie, działa dla siatki o dowolnym rozmiarze, ale wymaga pewnej wiedzy, której nie wiem, jak określić od zera. Jeśli chcesz poszukać w Internecie związanych z tym informacji, metoda ta jest ogólnie określana jako „pogoń za światłami” lub „pogoń za światłami”.

Zacznij od naciśnięcia przycisków w drugim rzędzie odpowiadającym komórki w górnym rzędzie, następnie przyciski w trzecim rzędzie odpowiadające podświetlonym komórkom w drugim rzędzie itd. To jest dokładnie to, co już robiłeś, ścigając światła do dolnego rzędu, skąd pochodzi nazwa .

Teraz, jak wiesz, najtrudniejsza część pojawia się, gdy masz pustą siatkę z wyjątkiem dolnego rzędu. W tym momencie sposobem na zakończenie jest naciśnięcie określonych przycisków w pierwszym rzędzie odpowiadającym podświetlonym komórkom w dolnym rzędzie, a następnie ponowne ściganie świateł z góry. Jeśli wcisnąłeś prawe przyciski w pierwszym rzędzie, po zakończeniu drugiego pościgu zagadka zostanie rozwiązana.

O ile wiem, musisz tylko wiedzieć , które przyciski nacisnąć górny rząd, aby odpowiadał konkretnemu wzorowi, który pozostał w dolnym rzędzie po początkowej fazie. Jeśli potrafisz wymyślić metodę określania tych właściwych do pchania na górze, prawdopodobnie możesz użyć bardzo podobnej metody, aby uogólnić to na siatkę dowolnej wielkości. Nie znam na to metody, więc zostawię to jako ćwiczenie czytelnikowi.

W klasycznej wersji układanki 5x5 okazuje się, że są tylko 7 możliwych wzorów w dolnym rzędzie po początkowym ściganiu, więc wymienię tylko 7 możliwych wzorów i odpowiadające im przyciski w pierwszym rzędzie do naciśnięcia dla każdego. Przyciski są ponumerowane od lewej do prawej.

  | -------------------- + ---------- ------- || Po lewej w dolnym rzędzie | Wciśnij górny rząd || -------------------- + ----------------- || 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 || -------------------- + ----------------- |  

Podobne tabele przeglądowe można prawdopodobnie znaleźć w Internecie dla innych rozmiarów.

Ponieważ natknąłem się na to jest to rozwiązanie, mam sposób na określenie tej tabeli: 1. wypróbuj każdą lokalizację w górnym rzędzie osobno i zobacz, do czego się ona rozprzestrzenia. 2. Ponieważ te rozwiązania się kumulują, możesz je następnie łączyć (możesz użyć ich jako wierszy na przykład w eliminacji Gaussa), aby rozwiązać równanie algebry liniowej odpowiadające rozwiązaniu dla potrzebnego zbioru. Na przykład (choć nie jest to użyteczne; Twoja tabela zawiera już minimalne rozwiązania), [1,5] jest rozwiązane przez (1,2), a [2,4] jest rozwiązane przez (1,4) (z stół). Zatem [1,2,4,5] jest rozwiązane przez (2,4).
badp
2010-11-18 06:11:49 UTC
view on stackexchange narkive permalink

Nie mam strategii, ale oto kilka faktów na temat planszy 5 × 5:

  • Zamówienie się nie liczy. Kliknięcie w kafelek A, a następnie kliknięcie płytki B jest dokładnie tym samym, co kliknięcie płytki B, a następnie kliknięcie płytki A - lub kliknięcie na płytkę A, potem na płytkę B, potem znowu na płytkę A, potem znowu na płytkę A, a potem na odwrócenie innej kafelek, a następnie kafelek B.
    Krótko mówiąc, kafelek jest lub nie jest częścią rozwiązania (nieuporządkowany zestaw kafelków, które musisz zamienić). Kręcenie się w kółko i powtarzanie tych samych ruchów nigdzie Cię nie prowadzi.

    1 unlit cell, 11 moves away.
    Tak blisko, a jednak tak daleko…

  • Mniej nie znaczy więcej. Próby zminimalizowania ilości zapalonych / nieoświetlonych komórek mogą przynieść efekt przeciwny do zamierzonego (patrz rysunek powyżej). Zamiast tego powinieneś spróbować doprowadzić grę do konfiguracji, którą możesz rozpoznać i rozwiązać za pomocą pamięci.
  • Gry symetryczne mają rozwiązania symetryczne. Pamiętaj: odzwierciedlaj swoje ruchy i grę złożoność znacznie się zmniejszy.
  • Rozwiązania nie są wyjątkowe, a środkowy kafelek nigdy nie jest wymagany. Chociaż może to ułatwić rozwiązanie łamigłówki, pojawia się że wszystkie gry do rozwiązania można rozwiązać bez środkowego kafelka.
„Gry symetryczne mają rozwiązania symetryczne” - przypomina mi to: Profesor matematyki wchodzi do swojej klasy i znajduje puste wiadro i pali się biurko. Ocenia sytuację, pstryka palcami i chwyta wiadro. Nauczyciel napełnia ją wodą i wystawia biurko. Następnego dnia ten sam nauczyciel matematyki wchodzi do środka i zastaje * znowu * * jego biurko w ogniu, z wyjątkiem tego, że wiadro jest już w nim woda. Zastanawia się chwilę, a potem kopie wiadro, opróżniając jego zawartość, redukując w ten sposób problem do tego, który już rozwiązał. Prof. napełnia wiadro wodą i oszczędza biurko.
@Raven - Interesująca odmiana żartu [inżynier / fizyk / matematyk] (http://www.farmdale.com/emp-jokes.shtml)
@badp Nie zgadzam się, że gry symetryczne mają rozwiązania symetryczne. W rzeczywistości nie ma on podstaw (patrz Ostatnie twierdzenie Fermata). Lights Out nie ma symetrycznego rozwiązania. Spójrz na http://orion.math.iastate.edu:80/burkardt/puzzles/lights_out_solution.html
@John Przepraszam, ale nie mogę znaleźć przykładu braku symetrii na tej stronie. Rozwiązania zerowe są same w sobie symetryczne (na szczęście!), A rozwiązanie dla pełnego kwadratu jest symetryczne wokół osi „wtórnej przekątnej”.
@John Powiedział, że jestem zdezorientowany. Biorąc pod uwagę te zerowe rozwiązania, jak rozwiążesz tę grę: [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], które można oczywiście rozwiązać, klikając środkową płytkę, rozwiązanie, którego nie można osiągnąć za pomocą kombinacji tych zerowych rozwiązań. (Nie mówię, że nie możesz. Zastanawiam się tylko, jakie jest inne rozwiązanie).
@badp Rozwiązanie od włączania wszystkich świateł do wyłączania świateł jest bardzo niesymetryczne. A może brakuje mi jakiejś innej definicji symetrii. Chodzi mi o to, że gry symetryczne niekoniecznie ** mają rozwiązania symetryczne. Mogliby, tak jak w twoim przykładzie, nigdy nie znaleźć rozwiązania obejmującego wszystkie światła, biorąc pod uwagę rozwiązania symetryczne. Musisz więc spojrzeć na możliwe niesymetryczne rozwiązania. (moja fermata chodzi o to, że rozwiązanie jest okropne, chociaż pytanie jest łatwe, każdy szukał ładnego eleganckiego rozwiązania)
@John oś symetrii dla rozwiązania z pełną płytą leży na tych komórkach: (5,1), (4,2), (3,3), (2,4), (1,5). --- czekaj, (3,3)? Komórka, która nigdy nie jest częścią rozwiązania w rozwiązaniach zerowych? WTF?
Ale spójrz, ile mniej symetrii ma rozwiązanie w porównaniu z pytaniem i odpowiedzią.
Myślę, że powodem, dla którego gasną światła 5x5, jest to, że ludzie szukają rozwiązań symetrycznych i zawodzą. Pozostałe wymiary mają większą symetrię.
Martin Thoma
2011-06-09 22:36:04 UTC
view on stackexchange narkive permalink

Poniższe rozwiązanie działa dla każdej siatki m × n:

Pomyśl o danej siatce jako wektorze w wymiarowej przestrzeni wektorowej m × n. Każda wartość to 1 (jeśli światło jest włączone) lub 0 (jeśli światło jest wyłączone). Teraz możesz myśleć o każdym wypchnięciu komórki jako wektorze w tej przestrzeni wektorowej. Ponieważ możesz wypchnąć m x n różnych komórek, masz m x n różnych wektorów. Jeśli coś zmienią w komórce, wartość wynosi 1, w przeciwnym razie 0.

Jak wspomniał badp, jest interesujące tylko wtedy, gdy musisz nacisnąć jeden przycisk, czy nie. Nie ma potrzeby patrzenia na kolejność, nie ma potrzeby wciskania przycisku więcej niż jeden raz, więc masz równanie

wektor dla swojej siatki = a_1 x cellvector1 + a_2 x cellvector_2 + ... a_mn x cellvector_mna_1, a_2, ..., a_mn wynosi 0 lub 1.

Ponieważ masz zmienne mxn (a_1 ... a_mn) i równania mxn (wiersze wektorów), możesz rozwiązać to za pomocą Eliminacja Gaussa.

Jeśli jesteś Niemcem, możesz przeczytać „ Aufgabe 2, 30. Bundeswettberwerb Informatik

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

Rozwiązanie problemu zgaśnięcia świateł 6x6:
Dolny rząd układanki 6x6 może zawierać dowolną możliwą kombinację świateł. Dlatego tabela, podobna do tej z Chad Birch dostarczonej powyżej dla układanki 5x5, zawierałaby 63 wiersze. Możesz jednak rozwiązać dowolną łamigłówkę 6x6 Lights Out za pomocą tego małego stolika:

  | -------------------- + ----------------- |
| Po lewej w dolnym rzędzie | Naciśnij górny rząd |
| -------------------- + ----------------- |
| 1 | 1, 3 |
| 2 | 4 |
| 3 | 1, 5 |
| 4 | 2, 6 |
| 5 | 3 |
| 6 | 4, 6 |
| -------------------- + ----------------- |
 

W przypadku dowolnej kombinacji świateł pozostawionych w dolnym rzędzie, po prostu połącz linie z powyższej tabeli, pamiętając, że dwukrotne naciśnięcie przycisku jest równoznaczne z całkowitym nie naciśnięciem przycisku. Na przykład, jeśli dolny wiersz zawiera
4, 5, 6
naciskałbyś
2, 6, 3, 4, 6
lub po prostu
2, 3, 4,
ponieważ dwie szóstki się anulowały.

dlaczego to działa?
To działa, ponieważ każdy przycisk w górnym rzędzie przełącza zestaw przycisków w dolnym rzędzie (1 przełącza 1 i 5; 2 przełącza 2, 4 i 6; 3 przełącza 5; 4 przełącza 2; 5 przełącza 1, 3 i 5i 6 przełącza 2 i 6).Z tego można łatwo wyprowadzić powyższą tabelę (np. Naciśnięcie 1 przełącza przełączniki 1 i 5 oraz naciśnięcie 3 przełączników 5, więc efektem netto naciśnięcia 1 i 3 jest przełączenie tylko 1).Tabela działa, ponieważ efekty każdego przycisku dodają i dwa przełączniki tej samej pozycji anulują się.
PaddingtonBear
2014-03-25 16:38:30 UTC
view on stackexchange narkive permalink

Bawiąc się różnymi rozmiarami gry, znalazłem kilka rzeczy, które wzbudziły moją ciekawość.

Po pierwsze, przypadek 4 x 4 jest trywialny - ścigaj oświetlone kwadraty w dół i rozwiązuje się przy pierwszym podaniu. Przypadki 2 x 2 i 3 x 3 są (co ciekawe) mniej trywialne, ale nie do końca trudne.

Po drugie, przypadek 9 x 9 jest prawie trywialny. Jeśli ponumerujemy kolumny od 1 do 9 (od lewej do prawej w mojej głowie, ale każdy z nich jest w porządku), to po pierwszym pościgu są tylko dwa wyniki - albo rozwiązuje się go przy pierwszym przejściu (jak w przypadku 4 x 4) lub alternatywnie podświetlone kwadraty w dolnym rzędzie to 1, 3, 5, 7, 9, a jeśli teraz klikniesz te kwadraty w górnym rzędzie i ścigasz je, rozwiązuje.

Przypadek 7 x 7 wydaje się poddaj się bardzo prostej strategii, która zajęła mi kilkanaście gier, aby dostrzec. Pierwszy pościg kończy się najróżniejszymi konfiguracjami w dolnej linii - zbyt dużą, aby rozsądnie skatalogować. Jednak po tym pierwszym pościgu mogę niezawodnie wybrać górną linię w następujący sposób: dla każdego podświetlonego kwadratu i w dolnym rzędzie należy kliknąć kwadraty górnego rzędu i-1, i, i + 1. Możesz po prostu kliknąć je zgodnie z tą zasadą lub wypisać je dla całego wiersza, a następnie kliknąć te pola, które pojawiają się nieparzystą liczbę razy - to samo, ale na papierze. Potem ścigaj kwadraty i zadanie jest skończone. Oczywiście, jeśli świeci się kwadrat 1 lub kwadrat 7, wyniki wynoszą 1, 2 lub 6, 7, ponieważ nie ma 0 ani 8. To nadal działa.

W tym momencie wypróbowałem tę strategię na innych wymiarach , 6, 8, 11, 12, 16 - i nie działa na nich, więc jest charakterystyczny dla przypadku 7 x 7 lub być może strategia 7 x 7 jest szczególnym przypadkiem bardziej ogólnej metody.

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

Teraz potrzebujemy tylko rozwiązań dla 4x4 z owijaniem. Przykład: {0000} {0000} {0000} {0000} Naciskając lewy górny róg, otrzymujesz: {1101} {1000} {0000} {1000} Tak, wiem, że zacząłem przy wyłączonych wszystkich światłach, ale tak było przykład. Ale aby postępować zgodnie ze wskazówkami, sprawdziłem kilka rozwiązań 7x7 inną podaną tutaj metodą, niektóre są nierozwiązywalne. Obecnie jestem w trakcie tworzenia tabeli dla macierzy 4x4, ponieważ otrzymałem taki, w którym musiałem dwukrotnie lub więcej „ścigać światła”.

  Oto przykład w postaci macierzy .0000000000000000 PRESS TOP LEFT1101100000001000  

Widzicie, co mam na myśli przez zawijanie? Po prostu zapytaj, a ja odpowiem na prasę z opakowaniem.

To może być za późno, by o to zapytać, ale czy masz coś przeciwko pokazaniu rozwiązania z opakowaniem (dla 5x5 byłoby jeszcze lepiej!)
Baud2death
2015-07-23 23:53:54 UTC
view on stackexchange narkive permalink

Ta łamigłówka jest pokazana w misji DDO jako całun i jest bardzo łatwa do rozwiązania dla 3x3 - 4x4 i 5x5

4x4 jest proste, ponieważ rozwiązuje się za jednym przejściem, 3x3 i 5x5 wymagają drugiego przejścia z kilkoma instrukcje

Najpierw dla każdego przejazdu, po prostu kliknij przełącznik bezpośrednio pod dowolnymi świecącymi punktami w górnym wierszu powtarzaj to, aż dojdziesz do dołu

W przypadku 4x4 twój problem zostanie rozwiązany

W przypadku 3x3 pozostawi to zapalone światła w dolnym rzędzie i bez względu na to, czy jest to 3x3 czy 5x5, skupiasz się tylko na dolnych punktach po lewej stronie (ignorując 2 punkty po prawej stronie 5x5)

Teraz najfajniejsza część

Wracasz do górnego wiersza w tej samej kolumnie, co podświetlone punkty w dolnych 3

W przypadku tych w kolumnie 1, naciskasz przełącz na 1 i 2

Dla jednego w kolumnie 3 to 2 i 3

Dla jednego w kolumnie 2 to 1, 2 & 3

Powtarzasz to dla każdego oświetlonego miejsca, nawet jeśli oznacza to powtórzenie w celu przełączenia tego samego

Więc XX 0 będzie 1, 2, następnie 1, 2, 3X 0 X będzie równe 1, 2, potem 2, 3

E. tc

A kiedy już to zrobisz, rozwiąż w dół, aby uzyskać ostatnie przejście i zadanie wykonane

W pełni ręczny sposób rozwiązywania zagadek 3x3 4x4 i 5x5

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

Z satysfakcją udowodniłem, że żadne z podanych tutaj rozwiązań nie jest ważne. W rzeczywistości istnieje 5x5 spraw, które są całkowicie nierozwiązywalne. Oto, jak możesz to sobie udowodnić: weź talię kart i rozdaj matrycę, używając czerwonych kartek, aby wskazać zapalone światło, i czarnych kart, aby wskazać, że światła są wyłączone. Zajmij się dowolną wielkością matrycy, a następnie wypróbuj podaną tutaj technikę. Wypróbowałem matrycę 5x5 i wymyśliłem dolny wiersz, który NIE pasuje do zamieszczonego tutaj. Oznacza to, że macierz 5x5 jest nierozwiązywalna przy użyciu algorytmu „follow the lights”. Inna witryna twierdzi, że macierz 6x6 zawsze można rozwiązać. Ponownie, używając metody opisanej powyżej - rozdawania kart w celu utworzenia matrycy i używając algorytmu „follow the lights”, znalazłem kilka macierzy 6x6, których nie można było rozwiązać tą techniką. Możesz umieścić całą matematykę, jaką chcesz, ale w praktyce PODANE TUTAJ ROZWIĄZANIA NIE DZIAŁAJĄ DLA WSZYSTKICH MATRYK.

Dzieje się tak, ponieważ tylko 25 procent wszystkich gier można rozwiązać. Te, które można rozwiązać, będą możliwe do rozwiązania tą metodą.

Mówisz, że strategia jest nieważna, ponieważ nie pozwoli Ci rozwiązać nierozwiązywalnych łamigłówek?Dobrze jest wyjaśnić, że niektóre konfiguracje wygaszenia świateł są nierozwiązywalne - a więc nie są one prawidłowymi łamigłówkami.Ale przypuszczalnie techniki proponowane do rozwiązywania łamigłówek bez światła są przeznaczone dla ważnych (tj. Rozwiązalnych).


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 2.0, w ramach której jest rozpowszechniana.
Loading...