Pewnego dnia wygłupiałem się na tej stronie: http://regexcrossword.com/ i zastanawiałem się, jaki był najlepszy sposób rozwiązania tego problemu.
Czy potrafisz rozwiązać następujący problem w czasie wielomianowym, czy jest to trudne NP?
Biorąc pod uwagę siatkę NxM z N wyrażeniami regularnymi dla kolumn i M dla wierszy, znajdź dowolne rozwiązanie siatki, tak aby wszystkie wyrażenia regularne były spełnione, lub powiedz, że nie istnieje żadne rozwiązanie.
complexity-theory
np-hard
regular-expressions
Glen Takahashi
źródło
źródło
Odpowiedzi:
Problem jest trudny NP.
Pokazujemy to poprzez zmniejszenie pokrycia wierzchołków:
Wszystkie wiersze odpowiadają wierzchołkowi. Dostają regex, który pozwala na pisanie albo
Zgodność między rozwiązaniami krzyżówki wyrażeń regularnych a okładkami wierzchołków powinna być oczywista.
Przykład:
Znajdź okładkę wierzchołka o rozmiarze 2 dla następującego wykresu:
źródło
Pytanie pozostaje NP-kompletne, nawet jeśli wszystkie wyrażenia regularne są równe. http://arxiv.org/abs/1411.5437
źródło