Sorun en azından NP-zor, 3-SAT azalması ile.
İlk bir yolunu bulma problemini dikkate Başlat için çıkış hiçbir yol bir maddenin üç (kare) düğümleri ziyaret edebileceklerini kısıtlama aşağıdaki yönettiği grafiğin:
( X1 ∨ X2 ∨ X3 ) ∧ ( X1 ∨ ¬ X2 ∨ X4 )
Bu grafikleri bir anahtar ağına dönüştürüyoruz. Bunun için üç gadget kullanıyoruz:
- Her daire düğümü ve çift yönlü kenar , anahtarlar arasındaki bağlantıları oluşturan bir Tel haline gelir .
- Yönlendirilen her kenar, tek bir anahtardan oluşan Tek yönlü bir araç haline gelir (aşağıya bakın).
- Her kare düğüm, bir Clause gadget'ının parçası olan üç anahtardan birini temsil eder (aşağıya bakın).
Aşağıdaki resimlerde, anahtarlar biri gelen (devre dışı) olan iki gelen ok olarak çizilir. Hedef yönü siyah bir daire ile çizilir (düz ok sonunda dairenin yanında olmalıdır).
Açıklama: Biz kullanacağız kalın karakter ayırt etmek Çık aygıtlarının çıkışlarından Grafiğin.
birBBbirX1X2X3X1'X2'X3'
Orijinal grafik için, Çıkış'a götüren ve herhangi bir yan tümcenin üç kare düğümünü de ziyaret etmeyen bir yol bulmanın NP-tamamlanmış olduğunu hatırlayın . Şimdi , anahtarların hedef konumları hakkında endişelenmeden dönüştürülmüş grafiğin Çıkışına ulaşma problemini düşünün .
Orijinal grafik sorununun çözümü olan herhangi bir yolun da dönüştürülmüş grafik için bir çözüm olduğunu gözlemleyin. Dönüştürülmüş grafik için bir yolun orijinal grafik için bir çözüm olmadığını varsayalım. Bu iki durumda olabilir:
- Bbir
- Bir yol, bazı Clause aracının üç yolunu da dolaşır .
İlk durumda, Tek yönlü gadget'ın ilk olarak istenen yönde geçmesi gerekir, bu durumda yol da ilk etapta onu geçmekten kaçınmış olabilir.
Bu nedenle, yolun bazı Clause gadget'larının üç anahtarının hepsinden geçtiği ikinci durumu düşünün . Ardından bu gadget'ın üç anahtarının tümü çevrilmiş olacaktır (aşağıya bakın). Hedef pozisyonları burada kullanıyoruz. Uyarı gri o omurga ve Madde gadget artık anahtarları hedef pozisyonlarına yönlendirilebilir artık Başka bir deyişle, ulaşılabilir. Bu durumda, bu Madde gadget'ının kurtarılamaz olduğunu söylüyoruz .
Orijinal grafik probleminin herhangi bir çözümü için, dönüştürülmüş grafiğin anahtarlarının hedef konumlarına yerleştirilebileceğini göstermek için kalır. Bunun için, Çıkış teline yalnızca bir çözüm olduğunda ulaşılabileceği veya bazı Clause araçlarının kurtarılamaz hale geldiği gerçeğinden yararlanıyoruz .
Anahtarları hedef konumlarına yerleştirmek için, artık Çıkış kablosundan mevcut tüm Tek Yönlü gadget'ların girişine ve ayrıca tüm Madde gadget'larının üç çıkış teline ek Tek Yönlü gadget'lar ekleyebiliriz . Daha sonra, belirteç Çıkış'a ulaştığında , tüm ek Tek Yönlü gadget'lar çaprazlanabilir (ve böylece hedef konumlarına yerleştirilebilir) ve ayrıca geri kalan anahtarları hedef konumlarına koyabilir (kurtarılamaz bir madde olmadığı sürece). Son olarak, jeton Exit'e geri dönebilir ve bulmaca çözülür.
Biz belirtmeliyiz Madde bir untraversed çıkışından girildiğinde gadget'lar geri alınabilirse; ve Clause gadget'ları ile sonraki değişken arasına yerleştirilmiş Tek yönlü gadget'lar nedeniyle , Çıkış teline ulaşılana kadar bu gerçekleşemez .
Bu nedenle, anahtar ağ sorunu NP-zordur.
Sorunun NP veya PSPACE zorluğunda olup olmadığı hala belirsizdir. Düzlemsel bir anahtar ağı oluşturan bir NP sertlik azaltmasının, Sokoban'ın kısıtlı varyantları için büyük etkileri olacaktır, çünkü tüm anahtarlar aşağıdaki Sokoban gadget'ına eşdeğerdir.