Buradaki üç yaklaşım, hepsi SAT'ın 2B geometrik lingua franca'sına indirgenmesini içeriyor: nonogram mantık bulmacaları. Mantık bulmacasındaki hücreler, SAT değişkenlerine, cümlecik kısıtlamalara karşılık gelir.
Tam bir açıklama için (ve lütfen hata kodumu inceleyin!) Program dışı çözüm alanındaki kalıplar hakkında bazı bilgiler edindim. Bkz. Https://codereview.stackexchange.com/questions/43770/nonogram-puzzle-solution-space. > 4 milyardan fazla bulmaca çözümü sıralamak ve bunları bir doğruluk tablosuna sığdırmak için kodlamak fraktal desenleri gösterir - kendi kendine benzerlik ve özellikle kendi kendine afinite. Bu yakınlık fazlalığı, çözüm üretmek için gereken hesaplama kaynaklarını azaltmak için kullanılabilecek, problemin içindeki yapıyı gösterir. Ayrıca, başarılı bir algoritma içerisinde kaotik geri beslemeye ihtiyaç duyulduğunu da gösterir. “Kolay” örneklerin kaba yapı boyunca uzanan olanlar olduğu aşama geçiş davranışında açıklayıcı bir güç vardır; “sert” örnekler ise normal sezgiselden oldukça gizli olan ince ayrıntılara daha fazla yineleme gerektirir. Bu sonsuz görüntünün köşesine yakınlaştırmak istiyorsanız (kodlanmış tüm <= 4x4 bulmaca örnekleri) http://re-curse.github.io/visualizing-intractability/nonograms_zoom/nonograms.html adresini ziyaret edin.
Yöntem 1. Kaotik haritalar ve makine öğrenmesi kullanarak nonogram çözüm uzay gölgesini hesaplayın (Mandelbrot Kümesini oluşturanlara benzer uydurma işlevlerini düşünün).
İşte indüksiyonun görsel bir kanıtı. Bu dört görüntüyü soldan sağa tarayabilir ve eksik olan 5. ... 6.… vb. Görüntüleri oluşturmak için iyi bir fikriniz olduğunu düşünürseniz, o zaman ben sizi nonogram çözümünün karar sorunu için NP kahinesi olarak programladım. varlığı. Lütfen ödülünüzü dünyanın en güçlü süper bilgisayarı olarak kabul etmek için adım atın. Her gün ve sonra dünya size hesapsal katkılarınız için teşekkür ederken, size elektrik sarsıntısı besleyeceğim.
Yöntem 2. Kullanın girişlerin boolean versiyonunda Fourier Transforms. FFT'ler bir örnek içindeki sıklık ve konum hakkında küresel bilgi sağlar. Büyüklük kısmı giriş çifti arasında benzer olsa da, faz bilgileri tamamen farklıdır - belirli bir eksen boyunca bir çözüm projeksiyonu hakkında yönlendirilmiş bilgi içerir. Yeterince akıllıysanız, çözümün faz görüntüsünü giriş fazı görüntülerinin bazı özel süperpozisyonları ile yeniden yapılandırabilirsiniz . Daha sonra ters faz ve ortak büyüklüğü çözümün zaman alanına geri dönüştürün.
Bu yöntem ne açıklayabilir? Boolean görüntülerin bitişik hareketler arasında esnek bir dolguyla birçok permütasyonu vardır. Bu, FFT'lerin zaman alanı <-> (frekans, faz) arasındaki çift yönlü, benzersiz haritalama özelliğini korurken, çokluğa özen gösteren girdi -> çözümü arasında bir eşlemeye izin verir. Aynı zamanda “çözüm yok” diye bir şey olmadığı anlamına da gelir. Söyleyeceği şey, sürekli bir durumda, geleneksel nonogram bulmacanın bilevel görüntüsüne bakarken göz önünde bulundurmayacağınız gri tonlamalı çözümler olmasıdır.
Neden yapmıyorsun Bugünün kayan nokta dünyasındaki FFT'ler büyük örneklerle oldukça yanlış olacağından, aslında hesaplamanın korkunç bir yolu. Hassasiyet çok büyük bir sorundur ve niceliksel büyüklük ve faz görüntülerinden görüntüleri yeniden oluşturmak, genellikle görsel olarak insan gözü eşikleri için olmasa da, çok yaklaşık çözümler oluşturur . Aynı zamanda bu üst üste binme işini yapmak çok zordur, çünkü şu anda bunu yapan işlevin türü bilinmemektedir. Basit bir ortalama şeması olur mu? Muhtemelen hayır ve sezgi dışında bulmak için belirli bir arama yöntemi yoktur.
Yöntem 3. Hücre dışı bir otomat kuralını bulun (von Neumann 2 durumlu kurallar için muhtemel ~ 4 milyar kural tablosundan) ve nonogram bulmacanın simetrik bir versiyonunu çözer. Sorunun, burada gösterilen hücrelere doğrudan gömülmesini kullanıyorsunuz.
Bu muhtemelen bilgisayar kullanımı için basitlik ve iyi etkiler açısından en zarif yöntemdir. Bu kuralın varlığı kanıtlanmamıştır, ancak onun var olduğuna dair bir fikrim var. İşte nedeni:
Nonogramlar, algoritmanın tam olarak çözülmesi için çok fazla kaotik geribildirim gerektirir. Bu Kod İnceleme ile bağlantılı kaba kuvvet kodu ile kurulur. CA, kaotik geri bildirimleri programlamanın en yetenekli dilidir.
O görünüyor görsel, doğru. Kural bir gömme yoluyla gelişir, bilgiyi yatay ve dikey olarak ilerletir, müdahale eder, daha sonra ayarlanan hücrelerin sayısını koruyan bir çözelti haline gelir. Bu ilerleme yolu, fiziksel bir nesnenin gölgesini orijinal yapılandırmaya yansıtırken normalde düşündüğünüz yolu (geriye doğru) izler. Nonogramlar özel bir ayrık tomografi olgusundan kaynaklanmaktadır, bu nedenle iki kitty-köşeli CT tarayıcıda eşzamanlı oturduğunuzu hayal edin. Elbette, sınır sorunları var - CA evreninin kenarları, bir toroidal evrene izin vermediğiniz sürece, bilgiyi sınırların ötesinde ilerletmeye devam edemez. Bu aynı zamanda bulmacayı periyodik sınır değer problemi olarak ortaya koyar.
Geçiş halindeki çoklu çözümleri, girdiler olarak takas çıktıları arasında sürekli salınan bir etki olarak ve bunun tersi olarak açıklar. Ayarlanan hücrelerin sayısını korumayan orijinal konfigürasyonlarda çözümü olmayan örnekleri açıklar. Böyle bir kural bulma gerçek sonuca bağlı olarak, hatta cep devletler yakından çözeltisi ile çözülemeyen örneklerini yaklaşımda bulunabilirler edilir korunmuş.