Not: Bu, diğer cevabımın devamı ve tekrarı .
Azaltma ile ilgili sorunlar
Karar problemini hatırlayın:
Belirli bir ızgarayı n benzersiz karolarla kaplayan mükemmel bir döşeme var mı ?(n+1)×(n+2)n
Yani ızgarası için sadece n değişken kullanabiliriz .(n+1)×(n+2)n
Fakat:
- Bizim azalma bir gerektiren çok çok daha fazla, eşsiz değişkenlerin .O(n)
- Ayrıca, tellerimiz açık uçludur ve bu da aşağıdakilere yol açar:
- Açık alanları döşeyebileceğimizi nereden biliyoruz?
İlk sorunu çözmek için yapay olarak oyun tahtasını daha büyük hale getiriyoruz; aslında gerçekten ihtiyacımız olan değişken sayısına eşit yapıyoruz, sonra bir boyut ızgarası oluşturuyoruz ( n + 1 ) × ( n + 2 )n(n+1)×(n+2) ve ızgaramızı sol alt köşeye yerleştiriyoruz. Bu, kuadratik patlamaya yol açacaktır.
İkinci sorun için, gadget'larımızı biraz yeniden düşünmeliyiz.
Kurulun geri kalanını kurallara göre başarılı bir şekilde döşeyebileceğimizi kanıtlamak biraz korkutucu görünebilir. Böylece, aslında bir oyun tahtası oluşturmak için kullanacağımız stratejiyle başlıyoruz (n+1)×(n+2) :
İlk önce olası tüm fayanslardan oluşan bir set üretiyoruz. Tüm bu karoların tahtaya yerleştirilmesi gerekecek. Sonra döşemeleri çıkardık ve karelerinin arkasına bıraktık.
Ancak, cihazlarımız belirli bir karo grubunun yerleştirileceğini garanti etmez; yerleştirilen fayans duruma göre değişir. Bu nedenle , hangi eyalet seçilirse seçilsin, belirli döşemelerin kaldırılmasını garantilemek için gadget'ları dikkatlice değiştirmeliyiz .
O zaman aletlerimizi gözden geçirelim.
Tel ve yan tümce iki nedenden dolayı sorunlu.
- Bir teli veya yan tümce geçidi çevreleyen karelerin doğru döşenebileceğini bilmiyoruz; Sonuçta, bazı teller sola, diğerleri sağa itilebilir ve kalan beyaz boşluk karelerinin döşenmesi önemsiz hale gelir. Bu soruna "akış" sorunu olarak değineceğiz.
- Fayans setinden hangi fayansların çıkarılacağını bilmenin bir yolu yoktur ; bir durumda tel veya yan geçitte bir kare küme döşenir, başka bir durumda tamamen farklı bir kareler dizisi döşenir.
Bu sorunları çözmek için:
- İlk önce, tüm olası fayanslardan oluşan bir set oluşturuyoruz. Bu çinilerin hepsinin tahtaya yerleştirilmesi gerekecek; onları tahtaya koyarken döşemeyi setten kaldıracağız. Biz ilk bilmesi de olmayabilir Gerçi , biz tam formülasyonu tarif etmek için henüz beri artırmak olarak, hepimiz yeni karo olanaklarını ekleyebilir n gerektiği gibi. Bu setten çıkardığımız tüm fayansların yerleştirilebilir olması garanti edilmelidir (en azından formül uygunsa, yerleştirilebilir olması garanti edilir). Oyun parkuruna yerleştirme yükümlülüğümüzü boşaltır gibi, parke döşemesinden bir döşemenin kaldırılmasını, döşemeyi döşemeden "boşaltmak" diyoruz.nn
- Hangi durumun seçildiğine bakılmaksızın, belirli döşemelerin kaldırılmasını garanti etmek için gadget'ları dikkatlice tasarlamalıyız .
- Aletlerimizi, durumlarına bağlı olarak tahtanın etrafına fayans itmemeleri için kapatmalıyız; Aksine, bütün devletlerinin yalnızca belirli bir iyi tanımlanmış alanı ele alması gerekir.
- Alternatif olarak, bütün devletlerinin iyi tanımlanmış bir alana girebilmeleri için garanti altına alınmalıdır ; bu tatmin edici bir fayans garanti eder ancak belirli bir fayans oluşacağını garanti etmez. Bu bir Dominosa oyununun yapıldığı şekildedir:
- İlk önce karolar bir küme halinde üretilir;
- Sonra fayans rastgele bir yapılandırmada yerleştirilir,
- Her döşeme yerleştirilirken, döşeme kümesinden kaldırılır.
- Sonra karolar tahtadan kaldırılarak karelerinin gerisinde kalıyor.
- Bu amaçlanan yapılandırma garanti etmez edecek , seçilecek
- Daha ziyade, amaçlanan yapılandırma olduğunu garanti edebilmek seçilmiş ve böylece bir çözüm var olması. Burada da aynı şeyi yapabiliriz.
- Formülasyonun tüm araçlarını yerleştirdikten sonra, varsayılan olarak benzersiz kareleri, yani tüm "boşluklara" yerleştirmek yerine , boşlukların tek boyutlu bir dikdörtgen alana sahip olmasını sağlarız ya da boşlukları tek boyutlu bir dikdörtgene ayırırız. ve biz boşlukları sadece karo setinde kalan fayanslarla döşeriz.⋆
- Tüm döşemeleri setten yerleştirdikten sonra her şeyin yerleştirilebilir olduğunu biliyoruz.
- Bazı fayanslar, duvarlardakiler gibi açıkça yerleştirilebilir, diğerleri ise, araçlar arasındaki ilişkilerin doğası gereği, ancak formül tatmin edilebiliyorsa yerleştirilebilir.
- Sonra döşemeleri çıkardık ve karelerinin arkasına bıraktık.
O zaman aletlerimizi gözden geçirelim.
Gadget'ı zorlamak
Her birinin kendileriyle eşleştirilemeyeceğinden emin olarak keyfi sayıda yapı taşı yapabiliriz.
Örneğin, bize bir zorlamak istiyoruz diyelim kullanabileceğimiz böylece, karo 1 ⋆ bir yapı taşı olarak. (not, 1 ⋆ daha önce 1 değeri kullandığımız gibi bir yapı taşı değil, kendisiyle eşleştirmek istediğimiz keyfi bir değişkendir )(1⋆,1⋆)1⋆1⋆1
Garanti etmek bizim o -Bina-blok rezervleri ( 1 ⋆ , 1 ⋆ ) , aşağıdaki konfigürasyonda alt duvara karşı yerleştirecektir: Biz ayrılmış numarasını yerleştirir, bize diyelim 1 ⋆ bir gibi duvara karşı yukarı-tack (şeklindeki ⊥ ); Duvara 3 , ortada 2. sırada yer alıyor. Sonra iki sayı daha koyalım, onlara 2 ⋆ ve 3 ⋆ diyelim ; bunlar bu gadget'a özgüdür. Bunları sol ve sağ 1 ⋆ üzerine yerleştirdik .1 ⋆( 1 ⋆ , 1 ⋆ )1 ⋆⊥32 ⋆3 ⋆1 ⋆
Aşağıda gösterilen, paylaşılan siyah kenarlık oyun tahtasının alt kısmı, soldan sağa açıklama.
- Gadget'ın yapılandırması. Her ve 3 ⋆ burada bu gadget özeldir.2 ⋆3 ⋆
- Merkezin döşenmesi muhtemel 3 durum .1 ⋆
Bunu yaptıktan sonra, bizim alet garanti edemez olabilir gadget garanti ederken, fayans oluşan belirli bir ile kaplanacaktır gerekir zorlamak çifti.( 1 ⋆ , 1 ⋆ )
- Bunu biliyoruz , gerçekleşmesi gerekir çünkü alt orta her 3 olası fayans devletler 1 ⋆ olarak, karo ( 1 ⋆ , 1 ⋆ ) yukarıda sağda şekilde gösterildiği gibi,.( 1 ⋆ , 1 ⋆ )1 ⋆( 1 ⋆ , 1 ⋆ )
- Kalan fayans olabilir olarak fayans ve ( 1 ⋆ , 3 ⋆ ) aygıtı kapsayan. Böylece, bu karoları global karo setimizden çıkarabiliriz. Aşağıda gösterilmiştir.( 1 ⋆ , 2 ⋆ )( 1 ⋆ , 3 ⋆ )
Açıklama, soldan sağa:
- Sol, üst: Sol durum, Sol, alt: Kalan karelerin geçerli döşemesi.
- Orta, üst: Orta durum, Orta, alt: Kalan karelerin geçerli döşemesi.
- Sağ, üst: Sağ durum, Sağ, alt: Kalan karelerin geçerli bir döşemesi.
Kalan karelerin döşenmesinin zorunlu olmadığına dikkat edin , çünkü yerine yakındaki komşularla döşeyebilirler , ancak oyun tahtasının tüm eyaletlerde geçerli bir döşemesi olduğundan, bunları tüm alanlardan kaldırabiliriz. çini kümesi ve tam olarak bu şekilde döşeneceğini varsayalım. Geçerli bir döşeme olduğunu bildiğimiz için, formül tatmin ediciyse, oyun tahtası için mümkün olan en az bir döşeme vardır. Bu bu şekilde döşenecektir garantisi yoktur olmasına rağmen, o bir garantisi yoktur ( 1 ⋆ , 1 ⋆ ) kiremit zorlanacak.1 ⋆( 1 ⋆ , 1 ⋆ )
Not: Bundan memnun değilseniz ya da "kiremit yapabilme" ile "kiremitlemeye zorlanma" arasındaki farkla karıştıysanız, aynı şekilde, gadget'ının etrafına bir duvar yerleştirebilirsiniz. bir hale 3 x 2 şarttan bir araç için aşağıdaki duvar.3 × 23 × 2
Bu gadget kapalı değil, çünkü olması gerekmiyor (ama istersen yapabilirsin). Olmasına gerek yok, çünkü fayans setinden kaldırabileceğimiz uygulanabilir bir konfigürasyona sahip. Farklı bir konfigürasyon yapmak mümkün olsa da, bu problemin karşılanabilirliğini etkilememektedir.
Aşağıdaki karoların döşenmesi garanti edilir (böylece karo setinden çıkarılabilir): ( 1 ⋆ , 1 ⋆ )
Aşağıdaki fayans olmasını garanti altına alınmıştır mümkün fayans için (dolayısıyla kiremit kümesinden çıkarılabilir): ( 1 ⋆ , 2 ⋆ ) , ( 1 ⋆ , 3 ⋆ )
Bu gadget'ı bir duvarla kapatmayı seçerseniz, o zaman de garanti altına alınacaktır.( 1 ⋆ , 2 ⋆ ) , ( 1 ⋆ , 3 ⋆ )
Yeni tel ve yan tümce kapıları
Akma sorunları ve karo setinin boşaltılması nedeniyle, teli biraz yeniden tasarlamamız gerekir.
Akış problemini çözmenin bir yolu, teli sadece basit sağ-sol durumlar yerine bir devre yapmaktır; yani, bir çizgi yerine dairesel olacaktır ve bu nedenle dairenin üst kısmı sağa itilirse, taban sola itilir. Bu akış problemini çözer.
Bu rotadan sonra, her iki sorunu çözmek için tel ve fıkra kapısını değiştirebiliriz.
Rezervasyonu ve KTF
Bize iki yeni evrensel değerleri, tanıştırayım ve F . Bu iki değer evrenseldir; ızgaradaki gerçek değerler, örneğin 2 ve 3 gibi kare değerler (kurallara göre, 1'i duvarlar için bir yapı taşı olarak ayırdık) veya ne seçerseniz. Sırasıyla doğru ve yanlış temsil ederler.TF231
Fayansları , ( T , T ) , ( F , F ) 'yi aşağıdaki gibi zorla ayırırız; aşağıdaki resimde, soldan sağa açıklama:( T, F)( T, T)( F, F)
- Biz herhangi bir zorlama ile aynı şema kullanabilirsiniz kullanarak, karo T olarak 1 ⋆ . Her 2 ⋆ ve 3 ⋆ burada bu gadget özeldir.( 1 ⋆ , 1 ⋆ )T1 ⋆2 ⋆3 ⋆
- Herhangi bir karoyu zorlamakla aynı düzeni kullanıyoruz, F'yi 1 ⋆ olarak kullanıyoruz. Her 2 ⋆ ve 3 ⋆ bu aygıt için benzersizdir.( 1 ⋆ , 1 ⋆ )F1 ⋆2 ⋆3 ⋆
- Biz zorlama ile aynı şema kullanabilirsiniz , karo kullanılarak F olarak 1 ⋆ merkezinde ve kullanma T yukarı-tack diğer konumlarda. Bu ( F , T ) döşemeye zorlar . 2 ⋆ ve 3 ⋆ ile karo edebiliyoruz T biz karo-kümesinden kaldırmak, böylece. Her 2 ⋆ ve 3 ⋆ burada bu gadget özeldir.( 1 ⋆ , 1 ⋆ )F1 ⋆T( F, T)2 ⋆3 ⋆T2 ⋆3 ⋆
Tel
Her tel başlayıp bir değerle sonu olacak, bize diyelim tel özgüdür. Her bir madde için, tel katılır, tel iki telli-değerlerine sahip olacaktır X ⋆ ve X ' ⋆ , her bir tel için benzersizdir ve aynı madde katılmak olan. Aşağıdaki resim, soldan sağa doğru açıklama ile.A ⋆x ⋆x'⋆
- Bir maddeye katılan bir tel. Telin yüksekliği ve uzunluğu 2 ∗ p + 3'tür ; burada p , telin katıldığı madde sayısıdır. Tel, solda iki A ⋆ karesi ve sağda iki ⋆ kareyle doldurulur . Elbette, mavi kenarlıkla gösterilen her tarafta bir duvarla çevrilidir. Not ki 1 ⋆ bu telin özgüdür ve yalnızca tel kullanılacak ve fıkra o katılmaktadır.22∗p+3pA⋆1⋆
Aşağıda gösterilenler, soldan sağa açıklamalar olan iki durumdur.
- Gerçek durumda, bir maddeye katılan bir tel. Tel zaman, doğru kabul edilir kareler eşleştirilmiş t kareler ve X ' ⋆ kareler ile eşleştirilmiş F kareler. Döşemenin tersine çevrildiği diğer eyalette sahte olarak kabul edilir. Fayans kez zorlanır nasıl Not A ⋆ : karo seçilir ( T , F ) zaten böylece çini geri kalanı yatay olmalıdır, daha önce zorlanmaktadır.x⋆Tx′⋆FA⋆(T,F)
- Sahte halde aynı tel.
Daha maddeleri katılan, orada daha fazla değer ve X ' ⋆ , her madde için bir çift. Bunlar üst ve altta alternatif bir varlık olarak yapar tel katılır , T ve K , her ayrı kareler x ⋆ , x ' ⋆ çift.x⋆x′⋆TFx⋆,x′⋆
Karşılık gelen iki durum.
Bu gadget kapalı , bu nedenle "akış sorunu" yok.
Her iki durumda da, durum ne olursa olsun aşağıdaki döşemeleri nasıl topladığımızı not edin: , ( A ⋆ , T ) , ( A ⋆ , F ) .(A⋆,A⋆)(A⋆,T)(A⋆,F)
Ancak emin olamadığımız bazı karolar var; bir halde çıkarabiliriz Döşeme grubundan, başka bir durumda ( 1 ⋆ , F ) , ( 1 ′ ⋆ , T ) , ( 2(1⋆,T),(1′⋆,F),(2⋆,T),(2′⋆,F)...Döşeme setinden hangi döşemeleri kaldırabiliriz? Cevap şu: fıkra kapısı aynı problemi taşıyor, ancak bunun tersi çinilerle aynı. Bir sonraki bölümde göreceğimiz gibi, her zaman kalan, zıt ve toplanmamış döşemeleri toplayacaktır. Bunların her biri bir yan tümce ile eşleştirildiğinden, her ikisini de kaldırabiliriz.(1⋆,F),(1′⋆,T),(2⋆,F),(2′⋆,T)...
fıkra
Ardından yeni yan tümce kapısının ilk yinelemesini yaratacağız. Duvarlarla çevrili cihazdan oluşur . Gadget'ın içine, üst merkeze bir F , alt köşelere iki T karesi yerleştiririz; biri sol altta, diğeri sağ altta. Kalan kareler, üç farklı telin tel değişkenlerini temsil eden değerler olacaktır. Bize bu Arayalım bir ⋆ , b ⋆ , ve c ⋆ . F tel değişkenlerden biriyle eşleşmeye zorlanır, ve geri kalan tel değişkenler ile eşlenir T değerleri. Aşağıdaki resimler, soldan sağa açıklamalar.2×3FTa ⋆ , b ⋆,c ⋆FT
- Sol: Yeni yan tümce geçidinin ilk yineleme için yapılandırma.
- Sağ döşemenin üç olası durumu .F
Bu üç durum üç olası yatırıma yol açar. Aşağıdaki resimde, soldan sağa açıklamalar.
- Sol, üst : sola döşenir, Sol, alt: Kalan kareleri döşer.F
- Orta, üst : sağ döşenir, Orta, alt: Kalan kareleri döşer.F
- Sağ, üst : aşağı eğildi, Sağ, alt: Kalan karelerin döşenmesi.F
Yana tel değişkenlerden biriyle eşleştirilmiş olacak maddesinde tel değişken artık ile eşlenebilir, F tel ; Böylece teli doğruya zorlamak. Bunun tersine, T ile döşenen geri kalan tel değişkenleri telleri içinde F ile döşemek zorunda kalır . Bu tam olarak 1- in- 3 - S A T deyimi ile aynı kısıtlar .FF TF1 General Papulas 3 - S A T
Not, ve c ⋆ tel değişkenler, ancak her biri, bir ilgili olabilir , x ⋆ veya X ' ⋆ tel değişken; Bir x ′ kullanarak wire tel değişkenini olumsuz yönde etkiliyor .a ⋆ , b ⋆ ,c ⋆x ⋆x'⋆x'⋆
Bir ek: kiremit setinden hangi kiremitlerin çıkarılabileceğini bilme zorunluluğunu ortadan kaldırmak için, maddeyi "iki katına ve çelişkili" hale getirmeliyiz. Bu kastım, bir yapmaktır ile, aracı 3 negations temsil ek değişken bir ⋆ , b ⋆ , ve c ⋆ . Bize bu Arayalım bir ' ⋆ , b ' ⋆ , ve c ' ⋆ . Bunlar bir ⋆ , b ⋆ ' nın negatif telli değerleri olmalıdır3 × 23a ⋆ , b ⋆ ,c ⋆bir'⋆ , b'⋆ ,c'⋆ Ve c ⋆ . Bu 3 × 2 gadget farklıdır,çünkü merkezdebir T ve köşelerdeiki F değeri vardır; şu ana kadar tarif edilen fıkra gadget'ının tam tersi. Maddeyi bu şekilde "iki katına çıkartarak" yukarıda açıklanan gadget ile aynı kısıtları yeniden ekleriz. Ancak, aynı zamanda ( T , x ⋆ ) , ( T , x ′ ⋆ ) , ( F , x ⋆ ) , ( F , xa ⋆ , b ⋆ ,c ⋆3 × 2TF her değişken için karo seti, (ve dolayısıyla için bir ⋆ , b ⋆ , ve c ⋆ yanı, hepsi sonra oldukları için, tel değişkenler). Aşağıda, soldan sağa açıklamalar.( T, x ⋆ ) , ( T, x'⋆ ),( F, x ⋆ ) , ( F, x'⋆)a⋆,b⋆,c⋆
- Bir "çifte ve çelişkili" yan tümce. Alt kısım yukarıda açıklanan maddedir; Üst kısım, yeni tanımlanan contrapositive fıkra. Yeni fıkra tamamen aynı mantıksal kısıtlamalara sahip; alt fıkranın zıtıdır. Birlikte, bu birleşik aygıtlar ve tel, ' in tüm kombinasyonlarını karo setinden boşaltır . maddeye katılan her bir tel değişkeni.(T,x⋆),(F,x⋆),(T,x′⋆),(F,x′⋆)
- En soldaki şeklin ortasındaki mavi çizgi, görüntüleme kolaylığı için var; gerçekte daha fazla devlete izin verilmeksizin kaldırılabilir.
Öyleyse, tüm döşemelerin söz verildiği gibi boşaltıldığını göstermek için bir örnek verelim. Aşağıda gösterilmiştir, soldan sağa açıklama.
- Tek bir maddeye katılan bir telin figürü; fıkra için bir durum seçildi. Burada biz kullanarak iken, bir ⋆ ve b ⋆ bu madde de başka bir tel değerleri temsil etmektedir.1⋆=b⋆a⋆b⋆
- Maddede verilen durum için, değeri komşu T ile eşleştirilmeye zorlanır .1 ⋆T
- Bu, telin gerçek değerli olmaya zorlanmasına neden olur (telin pozitif değişkeninin ile eşleşmeye zorlandığını ve negatif değişkenin yukarıda açıklandığı gibi F ile eşleşmeye zorlandığını söyleyebilirsiniz ).TF
- Bu kuvvetler çelişki maddesinde (maddesinin üst kısmı) ile eşleştirilmesi T maddesi içinde. Şimdi kabloya bakarsanız, tel içindeki her döşemenin boşalması garanti edilir: ya telin içinde ya da ilgili madde-gadget'ta boşalır. Bu durumda, ( A ⋆ , A ⋆ ) , ( A ⋆ , T ) , ( A ⋆ , F ) , ( 1 ⋆ , T ) , ( 1)1'⋆T( A ⋆ , A ⋆ )( A ⋆ , T)( A ⋆ , F)( 1 ⋆ , T) , ( 1 ′ ⋆ , F ) ve ( 1 ′ ⋆ , T ) .( 1 ⋆ , F)( 1'⋆ , F)( 1'⋆ , T)
Diğer durumu denemek için aşağıdaki resme ve açıklamaya soldan sağa bakın.
- Madde diğer durumda, döşeme iki yoldan biriyle).( 1 ⋆ , T
- Bu nedenle, kabloya zorlanır,( 1 ⋆ , F
- Kablonun geri kalanını uygun şekilde döşemeye yönlendirin ve teli yanlış olarak değerlendirin.
- Son olarak, yan tümce aygıtının kontrapositif / üst bölümünde, karo gerekir, çünkü ( 1 ′ ⋆ , T ) tel içine alınır. Bu durumda, ( A ⋆ , A ⋆ ) , ( A ⋆ , T ) , ( A ⋆ , F ) , ( 1 ⋆ , T ) , ( 1 ⋆ , F( 1'⋆ , F)( 1'⋆ , T)( A ⋆ , A ⋆ )( A ⋆ , T)( A ⋆ , F)( 1 ⋆ , T) , ( 1 ′ ⋆ , F ) ve ( 1 ′ ⋆ , T ) . Bunlar diğer durumda olduğu gibi taburcu edilen taşlarla aynıdır.( 1 ⋆ , F)( 1'⋆ , F)( 1'⋆ , T)
Böylece her iki durumda da aynı karoları boşaltırız. Bu nedenle, tel ve madde birlikte tatmin edici bir atama varsa, belirli karoları başarıyla boşaltır.
Bu gadget kapalı , bu nedenle bir akış sorunu olmayacak.
Tel -gadget ile birlikte cümle-gadget’ın her zaman aynı karo çifti değerlerini boşaltacağı garanti edilir ve bu nedenle hangi yolu döşeyeceğini bilmesek bile bunları boşaltabiliriz.
Şimdi tüm cihazlarımız kriterleri yerine getiriyor.
Formülasyon
Son formülasyonumuzda, her biri yatay bir duvarla ayrılmış üç satır gadget'ı oluşturuyoruz.
- En altta, iki karo uzunluğundaki zorlama aletlerini yerleştiriyoruz. Yapı taşı ve ve F kombinasyonları için bir zorlama aracına ihtiyacımız var . Zorlama aletlerini doğrudan yan yana yerleştiririz.TF
- Orta sıraya, yatay olarak, iki kiremit uzunluğunda olan tel gadget'ları yerleştiriyoruz. Tel aletler birbirinden dikey duvarla ayrılmalıdır.
- En üst sırada, dört karo uzunluğunda cümle gadget'ı yerleştirdik. Yan tümce araçları birbirlerinden dikey duvar ile ayrılmalıdır.
Çizimler, her bir rakamın üzerindeki açıklamaları takip eder. Tam çözünürlük için resimlere tıklayınız. Görüntüleri çoğaltmak / oluşturmak için kaynak kodu sayfanın altında listelenmiştir.
Formül kullanılarak , örnek olarak, elimizdeki bir tatmin edici bir çözüm ( ¬ x 1 , x 2 , x 3 , ¬ x 4 )Φ ( x ) = ( x1, ¬ x2, x3) ∧ ( x2, ¬ x3, x4) ∧ ( x1, x2, ¬ x4)( ¬ x1, x2, x3, ¬ x4) tanık olarak
İlk önce araçların sıralarını ayıran yatay duvarlarla başlıyoruz. Kareleri ve duvarları döşemek zorunda kalan çiftleri gösteririz.
Sonra, araçları göstereceğiz. Mavi anahat, araçların sınırlarını temsil eder; zorlama aletlerinin mavisi kesildi, çünkü duvarlarla çevrili olmayacaklardı. Fıkra gadget'ının ortasındaki çizginin bir duvarla çevrili olmadığını unutmayın; izleme kolaylığı için var; çizgiyi almak, yukarıda açıklandığı gibi, maddede daha fazla durumun olmasına izin vermez, ancak bu gösteri için mavi çizgiyi gösteririz. Not: Sayılara, gerektiğinde anlamsal okunabilirlik sağlamak için kare isimleri kullanıyoruz. Her isim sayısal bir değeri temsil eder.
Burada dikey duvarları dolduruyoruz.
Burada tanık çözümünü dolduruyoruz; yani, eğer SAT çözümünü üretmek için kullanıyorsanız, döşeme çözümü budur.
n
Burada kalan kareleri önemsiz bir geçerli döşemeyle dolduruyoruz.
Burada ızgaranın sağ alt köşesini gösteriyoruz.
Burada ızgaranın sağ üst köşesini gösteriyoruz. Dikey döşemelerin artık nasıl sığmadığına dikkat edin; bu yüzden gerekirse üst satırı yatay olarak döşeriz.
Ve nihayet sol üst köşede.
Tüm oyun tahtasını bir kerede TeX aracılığıyla oluşturmak, pdflatex'te yetersiz bellek hatasıyla başarısız oluyor, bu nedenle görmek istiyorsanız, klipler oluşturmanız ve bunları birbirine bağlamanız gerekir. Notebook görüntüleyiciyi kontrol ettiğinizden emin olun .
TikZ kaynakları
Oyun üreteci:
graphtex.py
Pdflatex, pdfcairo (poppler) ve rsvg-convert (libsvg) kullanarak TeX'i svg'ye dönüştürür
dominosa.py
Dönüşüm mantığını, oyun çözümü doğrulamasını ve çizim mantığını içerir
dominosa_demo.py
Yukarıdaki cevapta kullanılan görüntüleri üreten yürütülebilir bir demo. Görüntüleri geçerli çalışma dizinine aktarır.
dominosa_demo.ipynb
Yukarıdaki cevapta kullanılan görüntüleri üreten bir ipython demosu.