Dominosa NP-Hard mı?


26

Dominosa nispeten yeni bir bulmaca oyunudur. Bir (n+1)x(n+2) ızgarasında oynatılır . Oyun başlamadan önce domino kemikleri (0,0),(0,1),,(n,n) ızgaraya yerleştirilir (mükemmel bir döşeme oluşturur). Bir sonraki adımda domino kemikleri gizlenir ve sadece sayıları gösterir. Oyunun amacı domino kemiklerinin orjinal düzenlemesini düzeltmektir. Oyunu burada oynayabilirsiniz:http://www.puzzle-dominosa.com/ :

Kurallar:

Kurallar basit. Izgaradaki tüm dominoların yerini bulmak zorundasın. Bir domino bir çift sayıdır. Her bir çiftten sadece bir tane alabilirsin.

Bulmacanın nispeten küçük bir bölümünü çözen bazı polinom algoritmaları var. Ayrıca, tipik Dominosa ızgaralarının en az 2 n olduğunu gösterebilirim.2n2+O(n)çözeltileri.

Dominosa NP-Hard mı?


“Bulmaca kolayca SAT veya ILP problemine indirgenebilir.” NP-bütünlüğünü kanıtlamak için, başka bir yol istemez miydiniz?
Dennis Meng,

1
@DennisMeng Soruda bahsi geçen azaltmaların amacı, sorunun NP'de olduğunu tespit etmektir. Yani geriye kalan tek şey NP'nin zor olduğunu kanıtlamak. Bu arada, sorunun NP'de olduğunu görmek için azaltmalara ihtiyaç duyulmaz. Dominoların düzenlemesinin kendisi çözülebilirliğe karşı çok boyutlu bir tanıktır.

NP-eksiksizliği söz konusu olan sorunun, bir sayı dizilimi verildiğinde, domino dizilimi olduğunu sanıyorum. Sorun aslında dominoların düzenini sergilemekse (var olduğunda), o zaman sorun bir karar sorunu değildir ve "NP tamamlandı" anlamsızdır.

Verilmiş: @AndreasBlass Bir de daha büyük bir sorun düşünebiliriz k gelen domino alt-gruplar elemanı 1 ile n , ve bir grafiktir G, ile 2k köşe etiketli 1 için n , verilen domino ile örtün mümkün olup olmadığını belirler. Bu sorun P ise, o zaman orijinal döşemeyi kurtarmak için bir P-zaman algoritması vardır, çünkü bir kenarı kaldırmayı deneyebilir ve P-zamanında ızgarayı tamamlamanın mümkün olup olmadığını test edebilirsiniz.

1
G. Nordh tarafından jeneralize çoklu Skolem sekanslarının NP eksiksizliği olarak adlandırılan bir makaleye göre, aşağıdaki benzer problem NP tamamlamaktır. Örnek: Bir grafik , ayrık kümeler halinde bir kenar bölümü: E 1 , E 2 , . . . , E m , | m | | V | / 2 ile | E i | 2 , i = 1G,=(V,E)E1,E2,...,Em,|m||V|/2|Eben|2, ben=1,...,möyle ki, aynı etikete sahip iki kenar bir tepe noktası paylaşmaz. SORU: ile bir altküme var mı | M | = | V | / 2 M hiçbir iki kenar M'den her biri, en bir kenarında içeren ortak bir tepe noktası ve bu paylaştığını örneğin E I , i = 1 , ... , m ? ME|M|=|V|/2Eben, ben=1,...,m
Yoav bar sinai 14:13

Yanıtlar:


9

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)x(n+2)n

Yani ızgarası için sadece n değişken kullanabiliriz .(n+1)x(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)x(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)x(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.

  1. 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.
  2. 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)111

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)13231

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.23
  • Merkezin döşenmesi muhtemel 3 durum .1

görüntü tanımını buraya girin

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.

görüntü tanımını buraya girin

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.3x23x2

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)T123
  • 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)F123
  • 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)F1T(F,T)23T23

görüntü tanımını buraya girin

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.birxx'

  • 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.22p+3pA1

görüntü tanımını buraya girin

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.xTxFA(T,F)
  • Sahte halde aynı tel.

görüntü tanımını buraya girin

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.xxTFx,x

görüntü tanımını buraya girin

Karşılık gelen iki durum.

görüntü tanımını buraya girin

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,cFT

  • Sol: Yeni yan tümce geçidinin ilk yineleme için yapılandırma.
  • Sağ döşemenin üç olası durumu .F

görüntü tanımını buraya girin

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

görüntü tanımını buraya girin

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-içinde-3-SbirT

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 .bir,b,cxx'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ır3x23bir,b,cbir',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 , xbir,b,c3x2TF 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.

görüntü tanımını buraya girin

Ö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=bab
  • Maddede verilen durum için, değeri komşu T ile eşleştirilmeye zorlanır .1T
  • 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(bir,bir)(bir,T)(bir,F)(1,T) , ( 1 , F ) ve ( 1 , T ) .(1,F)(1',F)(1',T)

görüntü tanımını buraya girin

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)(bir,bir)(bir,T)(bir,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)

görüntü tanımını buraya girin

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.

görüntü tanımını buraya girin

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.

görüntü tanımını buraya girin

Burada dikey duvarları dolduruyoruz.

görüntü tanımını buraya girin

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.

görüntü tanımını buraya girin

n

görüntü tanımını buraya girin

Burada kalan kareleri önemsiz bir geçerli döşemeyle dolduruyoruz.

görüntü tanımını buraya girin

Burada ızgaranın sağ alt köşesini gösteriyoruz.

görüntü tanımını buraya girin

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.

görüntü tanımını buraya girin

Ve nihayet sol üst köşede.

görüntü tanımını buraya girin

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.


1
Bu, uzaylı, çok teşekkür ederim ..
Yoav bar sinai,

2
Lütfen bunun arXiv versiyonuna sahip olduğunuzu söyleyin. Bu olabilir bu platform tam kağıda kaba bir taslak ve bağlantı eklemek için daha makul ol.
Raphael

22

DOMbenN-OSbir


Oyunu oynamak bir optimizasyon sorunudur; tüm kareleri kapsayacak şekilde geçerli bir domino fayansı bulmak. Bu sorunun karar versiyonu:

Belirli bir ( n + 1 ) × ( n + 2 ) ızgarayı n benzersiz karolarla kaplayan mükemmel bir döşeme var mı (n+1)x(n+2)n

Açıkçası, optimizasyon problemi, oyuna gerçekte bir çözüm bulma problemi, karar probleminden daha az zor ya da daha zor.

1-3-içinde-SbirT

P=N-PDOMbenN-OSbir

1-3-içinde-SbirTDOMbenN-OSbir

Giriş

3-SbirTCbenR,CUbenTSbirT

CbenR,CUbenTSbirTPLbirN-birR,-CbenR,CUbenTSbirT

çoğu3-SbirTPLbirN-birR,-CbenR,CUbenTSbirT3-SbirTPLbirN-birR,-CbenR,CUbenTSbirT

PLbirN-birR,-3-SbirTPLbirN-birR,-CbenR,CUbenTSbirT

3-SbirT

1-içinde-3-SbirT1-içinde-33-SbirT

MON-OTON-E-1-içinde-3-SbirT

MON-OTON-E-1-içinde-3-SbirTPLbirN-birR,-MON-OTON-E-1-içinde-3-SbirTCbenR,CUbenTSbirT

PR,OBLEMMON-OTON-EPLbirN-birR,1-içinde-3N-P-hbirrd3-SbirTYok hayırYok hayırYok hayırEvetMON-OTON-E-3-SbirTEvetYok hayırYok hayırYok hayır1PLbirN-birR,-3-SbirTYok hayırEvetYok hayırEvet21-içinde-3-SbirTYok hayırYok hayırEvetEvet3PLbirN-birR,1-içinde-3-SbirTYok hayırEvetEvetEvet4MON-OTON-E-1-içinde-3-SbirTEvetYok hayırEvetEvet5PLbirN-birR,-MON-OTON-E-3-SbirTEvetEvetYok hayırEvet!6PLbirN-birR,-MON-OTON-E-1-içinde-3-SbirTEvetEvetEvetEvet7
  1. Saf edebi eleme
  2. Schaefer'in ikilemi teoremi
  3. Uyumlu Temsilciler Sorunu
  4. Minimum Ağırlık Üçgeni NP Zor
  5. Schaefer'in ikilemi teoremi
  6. Mükemmel Otomatik Bölümleri Bulmak NP-zordur
  7. Düzlemde Optimal İkili Uzay Bölümleri

3-SbirT

"Gadget" nedir? Bir gadget, sorundaki bir kısım yapıdır; bu, kapılar / teller / maddeler oluşturmak için yapı taşı olarak faydalıdır. Bazı gadget'ların sınırlı bir durum kümesi olur; örneğin, iki durumlu bir gadget değişken olarak kullanılabilir; bir devlet "gerçek" diğeri "yanlış" dır. "Uzun" olabilen iki durumlu bir aygıt bükülebilir ve bölünebilir, bir tel olarak yararlıdır - eğer bir değişkenle etkileşime girebilir ve değişkenin durumunu başka bir konuma genişletmek için kısıtlanırsa. Tam olarak üç durumlu bir gadget belki bir fıkra olarak kullanılabilir; "üçten birini" telleri üç durumunun her biriyle sınırlamak için kullanılabilirse. Benzer şekilde, biri gadget değil, gadget veya xor gadget gibi her türlü mantık kapısını isteyebilir;

Bir yapı taşı

  • 11
  • 11
  • 1

görüntü tanımını buraya girin

3   1(1,1) (1,1)

ile duvara karşı bir numara ayırmanın alternatif yolları vardır45(1,1)

Bir duvar

4

Aşağıdaki resimler, soldan sağa:

  1. 1 s .
  2. 1 kare karenin döşemesi.
  3. (Neredeyse) tüm olası tek döşeme 1
  4. Vurgu için çizilen duvar çizgisi.

görüntü tanımını buraya girin

Bir teldeki ilk deneme

Şimdi, birbirlerinin karşısına iki "duvar" koyarak ve boşluk bırakarak1 ve duvarların arasına , belki de "tel" benzeri bir araç bulabiliriz.

Sadece duvar sınırlarını göstererek, aşağıdaki şekillerde elde ettiğimiz şey budur (soldan sağa):

  • İki duvarın birbirine zıt olarak yerleştirilmesi.
  • İçine benzersiz numaralar koymak.
  • En sağdaki iki: Telin iki olası durumu.

görüntü tanımını buraya girin

Nasıl çalışır:

Boruda / telde delik olamaz, bu nedenle, fayans yukarı kaydırılırsa, bunlar tüm bütün boru boyunca yukarı kaydırılmalıdır; aşağı kaydırılırlarsa, hepsini "emecek". Böylece, telin bir tarafından diğerine bir "sinyal" gönderebiliriz; Başka bir deyişle, bir değeri yayar.

Böylece şimdi uzun mesafelerde bir değer üretebiliriz!

Kalan sınırlamalar:

  • Kabloyu bükemiyoruz.
  • Bir teli bölemeyiz,
  • Kabloları geçemeyiz,
  • Can sıkıcı düzen sorunlarımız olabilir, çünkü kablo uzunluğu paritesine dikkat etmeliyiz.

Tel Bükme , Bölüm 1: Altındaki Duvar

Sıradaki sorun, bir teli bükebilmemiz gerek, sadece dümdüz gitmemeliyiz ...

Yani. Bükme parçasını iki parçaya ayıracağız; üst kısım ve alt kısım. İlk önce alt kısım. Viraj üst kısmını yoksay, bunu daha sonra yapacağız.

Aşağıdaki rakamlar biraz bükülme problemini göstermektedir; telin üst kısmı "gevşek", 90 derece keskin dönen bir duvar yapmak zor görünüyor.

Soldan sağa:

  • Bir telin üstü "gevşek" tir.
  • Bükmeye çalışırsak ne olur; mavi çizgiler arasında olmak istiyoruz. Tekrar, virajın üst kısmını görmezden gelin, bunu daha sonra yapacağız.
  • 1

görüntü tanımını buraya girin

Bir çözüm aşağıdaki gibidir:

  • (x,1)xqx1 ile eşlendiğinden, bir ile eşleştirilemez.1tekrar. Bu nedenle, onu en sağdan en üste yerleştiririz1. Şimdi, açıkça görebiliyoruz, bunun için eşleşecek tek seçenek1 sağında ve bu nedenle duvarı sağlamlaştıracak.

Aşağıdaki resim, soldan sağa açıklama:

  • Sorunlu durum.
  • Bir kare seç, bırak q virajdaki herhangi bir karenin kare değeri (elbette ki 1s olsa).
  • En sağdan en üste iki geçiş 1tilings; bu sefer, onlardan sadece biri geçerli.

görüntü tanımını buraya girin

Ancak, bundan nasıl emin olabiliriz? qteli mahvetmeyecek mi? Aşağıda telin durumlarını veq onunla engel olmaz.

Soldan sağa:

  • Mevcut inşaat.
  • En sağdaki iki rakam: Telin halleri; ampirik olarak, onlar tanıtımı tarafından engellenmezq.

görüntü tanımını buraya girin

Şimdi hala bir şeyimiz yok 1üstte; en soldan en üste1.

Aynı şeyi yapacağız; bir çift seç(r,1) bu zaten bend-kiremit eşleştirilmiş ve yer r en soldan tepeye-1.

Aşağıdaki resimde soldan sağa:

  • Mevcut inşaatımız.
  • Sorun: en soldan en üste-1teldeki bir sayı ile veya duvarla eşleşebilir; biz istiyoruz o kadar yalnızca duvar ile eşleştirmek.
  • Seçme rve aynı sayıyı en soldan en üste kullanarak-1.

görüntü tanımını buraya girin

Ve nihayet alt virajımızı alıyoruz. Aşağıdaki resim, açıklamalar, soldan sağa:

  • Sol: Bir viraj için son yapımız.
  • Sağ: Kabloyu sola doğru devam ettirme.

görüntü tanımını buraya girin

Bir Telin Bükülmesi , Bölüm 2: Duvar Üstü

Bükülmenin üst köşesini oluşturan duvarlar çok daha basittir. Dikey bir duvarı yatay bir duvarla hizalayabilirsiniz. Aşağıdaki resim, soldan sağa açıklama:

  • Yapmak istediğimiz tel bükme.
  • Duvarın düşey bölümünü aşağı doğru yerleştirin.
  • Dikey duvarın karelerinin döşenmesi.
  • Yatay duvarın yerleştirilmesi ve döşenmesi; düşey duvarı karşılayabilir ve bir köşe oluşturabilir.

görüntü tanımını buraya girin

Şimdi kabloları yerleştirip bükebileceğimize ikna olmalısınız. Yine de daha sonra, hala kabloları ayıramaz veya kabloları geçemeyiz.

Kalan sınırlamalar:

  • Kabloyu bükemiyoruz.
  • Bir teli bölemeyiz,
  • Kabloları geçemeyiz,
  • Can sıkıcı düzen sorunlarımız olabilir, çünkü kablo uzunluğu paritesine dikkat etmeliyiz.

Değerli Bir Tel

Şimdi kablolarımız var, bir devre kartındaki bir LED gibi bir kablonun değerini görebileceğimiz değerli bir kabloya sahip olmak güzel olurdu. Yani yaptığımız şey, bir tel almak, uzunluk demek.7, ve bir ismini tanıttı kare diyeceğiz T, ve başka bir kare denir, biz buna F. Bunların her ikisi de her bir değerli tel bölümüne özgüdür. sadece iki kez ve sadece tek bir değerli tel içerisinde tekrar kullanılacaklar . İki çift halinde yerleştirilirler.T birbirlerine bitişik kareler ve iki F tek tek kareler onları ayıran kare. Aşağıda gösterilmiştir, soldan sağa açıklama:

  • Sol: Bir tel.
  • Sağ: Kare konfigürasyonu.

görüntü tanımını buraya girin

Peki bir telin doğru veya yanlış olduğunu nasıl anlarız? Bir telin iki durumu vardır. Bu eyaletlerin her birindeT veya Faynı döşemede eşlenecek; eşleştirilen değer telin değeridir. Aşağıdaki resim, soldan sağa soyunma:

  • Sol, sağ: İki durum Değerli kablonun ;
  • Sol: Tel, gerçek değer olarak yapıldıT kareler tek bir döşemeyi paylaşıyor
  • Sağ: Tel, yanlış olarak değerlenirF kareler tek bir döşemeyi paylaşıyor.

görüntü tanımını buraya girin

Şimdi, bizim 3-SbirTızgara üzerindeki değişkenler. İki değerli kabloyu bağlayabiliriz ve aynı değere sahip olmaları için zorlayabiliriz veya bunları tek bir uzunlukla birleştirirsek, farklı değerlere sahip olmaları için zorlayabiliriz; ve telleri kullanarak bu uzun mesafeyi ızgara boyunca yapabiliriz. Kabloları kullanarak, adlandırılmış değişkenlerin değerlerini her yere yayabiliriz.

Kalan sınırlamalar:

  • Bir teli bölemeyiz,
  • Kabloları geçemeyiz,
  • Can sıkıcı düzen sorunlarımız olabilir, çünkü kablo uzunluğu paritesine dikkat etmeliyiz.

Değil kapısı

Bir geçit kapalı olması gereksizdir: sadece birer birer kablo uzunluğu kullanarak telin değerini düşürebiliriz.

Bir Cümle Kapısı

Şimdi basit bir cümle gadget'ı gösterebilirim; bağlanacak3telleri ve birini "çekilme" durumuna zorla, diğer ikisini "itilmiş" duruma zorla. Bunu kullanabiliriz, bu tam olarak üçte bir ilişki; tek telli durumu "doğru", diğer iki telli durumu "yanlış" olarak ayarladık ve ayarlandık.

Aşağıdaki resimler, soldan sağa açıklamalar:

  • Yan tümce aracının tel yerleşimi. Bir "artı" işareti yapar; 3 telin bir noktada birleştirilmesi.
  • Teli benzersiz ile doldurun kareler.
  • Merkez karenin üç hali. Bu devletlerin her biri, tam olarak bir teli, kapının temel noktası olan merkeze “çeker”; gibi davranmak1-içinde-3-SbirT fıkra.

görüntü tanımını buraya girin

Şimdi farklı durumlara bir göz atalım. Aşağıdaki resim, soldan sağa açıklama:

  • Sol tel merkeze çekilir; diğer ikisi itilir.
  • Alt tel merkeze çekilir; diğer ikisi itilir.
  • Sağ alt tel merkeze çekilir; diğer ikisi itilir.

görüntü tanımını buraya girin

Şimdi, bu kapının sonuna doğru uzunluk-eşit (hatta veya tek uzunluk) kablolar bağlarsanız, bunlardan sadece biri doğru olabilir, diğer ikisi yanlış (bunları garip bir şekilde takmanıza bağlı olarak, bit). Böylece bağlanabiliriz3 değerler içine 1-içinde-3 CNF maddesi.

Kalan sınırlamalar:

  • Bir teli bölemeyiz,
  • Kabloları geçemeyiz,
  • Can sıkıcı düzen sorunlarımız olabilir, çünkü kablo uzunluğu paritesine dikkat etmeliyiz.

Bir Tel Bölme

Bir kabloyu bölmek için, önce yan yana iki kablo yerleştiririz. Sonra, görsel bir yardımcı olarak, her bir kabloyu ikiTbirbiri ardına kareler. Bu, kablonun ne zaman "doğru" olduğunu görmemizi sağlayacaktır:TBir telin kareleri tek bir karoda, o zaman doğru olacak, aksi takdirde yanlış. Her tel kendi çiftini almalıdırT çiftler, o yüzden bir çift isimlendirelim. T1 ve diğer T2. O zaman benzersiz üç yeni isim verdik: değerler, bir,b,c. Bu üçünü bir telin üzerine, birer birer yan yana koyacağız. Ancak, bir telde, bir tane bekletme arasındaki kareler bir,b,c kareler ve Tçift. Diğer kabloya iki tane koyun arasındaki kareler bir,b,c kareler.

Aşağıdaki resim, soldan sağa açıklama:

  • Tel düzeni. Duvarların biraz kalın olduğuna dikkat edin, bu nedenle kablolar örnekleme amacıyla birbirine yaklaştırılır; gerçekte, birbirlerinden biraz daha uzaktalar.
  • Kare değerler; T Üstteki değerler ve split-connectors bir,b,c altında.

görüntü tanımını buraya girin

Bunun yaptığı şey telleri farklı olmaya zorlamak; Eğerbir,b bir kabloya döşenirse, ikinci kablo birer birer kapatılamaz, çünkü o zaman bunun anlamı bir,b ikinci tel üzerine döşenir ve bir,biki kez döşenirdi. Aşağıdaki resim, soldan sağa açıklama:

  • Doğru olarak değerlendirilen sol kablonun örnek durumu.
  • İkinci telin kötü durumu; farklı bir şekilde değerlenmeye çalışır, fakat sonra bir çift alır.
  • İkinci telin durumu iyi, şimdi aynı değerde ve çiftleri yok.

görüntü tanımını buraya girin

Diğer iki olası durumla oynarsanız, bunun da bunlara uzandığını göreceksiniz ve her iki şekilde de işe yarıyor. Böylece bu iki tel şimdi aynıdır; bir kabloyu başarıyla ayırdık. Kabloyu her seferinde yeni bir set kullanarak istediğimiz kadar bölebilirizbir,b,c.

Kalan sınırlamalar:

  • Bir teli bölemeyiz,
  • Kabloları geçemeyiz,
  • Can sıkıcı düzen sorunlarımız olabilir, çünkü kablo uzunluğu paritesine dikkat etmeliyiz.

Bir Akülü Tel!

Pekala, zevkime göre, telin kablosuz olduğu ortaya çıktı! Yani, yukarıdaki resimlerde, telleri yan yana yerleştiriyorum, ama bunun için bir sebep yok! Telleri şebekenin herhangi bir yerine yerleştirebiliriz ve konuşmaları için hala "dolaşmış" olurlar. Bu bize çok sorun çıkarır:

  • Kabloları geçerken endişelenmemize gerek bile yok. Bu bize düzlemsel olmayan değişkenleri azaltmamızı sağlıyor.3-SbirT
  • Herhangi bir can sıkıcı düzen yapmak zorundayız, telleri bulundukları yerlere ulaştırmak çok kolay! Telsiz telefon gibi! Özgürlük!
  • Kablo uzunluğu paritesi / tek tek yerleşim düzeni hakkında endişelenmemize gerek yok.
  • Minimal boyutta küçültme yapabiliriz; değişkenlerin her biri, teller boyunca çok sayıda kablosuz bağlantıya sahip tek bir uzun tel şerit seti elde edecektir. Bu bağlantılar, ızgara üzerindeki kendi konumunda bulunan yan tümcelere yapılacaktır. Madde şimdi sadece yan tümce aygıtından ve bunun dışına yapışan üç kablosuz telden oluşacaktır.

Kalan sınırlamalar:

  • Kabloları geçemeyiz,
  • Can sıkıcı düzen sorunlarımız olabilir, çünkü kablo uzunluğu paritesine dikkat etmeliyiz.

Azaltma, ilk deneme

let Φ(x)=benCben olmak 1-içinde-3-SbirT boolean formülü.

  • Her biri için xjx, tek bir uzun kabloyu, kılavuzun tabanına yakın, sıra halinde yerleştiriniz.
  • Her biri için CbenΦ(x), ızgara üstünde bir yan tümce kapısı yapmak; istediğiniz şekilde düzenleyebilirsiniz; en iyi şekilde kare bir alanda doldurun, ancak tek bir uzun satırda da yerleştirebilirsiniz.
  • Her biri için xj bir maddeye katılan değişken Cben, telsiz tellerden birine kablosuz tel yerleştirin. 3fıkra kapısının tel pimleri; diğerini yerleştirbir,b,cHer bir bağlantının karşılık gelen değişken tel / sıra üzerine bağlanması. Reddedilen terimler, kablosuz cümleyi sadece bir uzak mesafeye, kablo uzunluğu-paritesini değiştirerek ve değeri ihmal etmeli.

Neye benzeyebilir:

  • Şekil: Doğrudan kablosuz tellere bağlı bir madde. "Hotspots", simgeleştirme biçimimizdir.bir,b,cburadan itibaren. Bu sıcak noktaların her biri şebekedeki değişkenlere bağlanacaktır.

görüntü tanımını buraya girin

Ve işte ızgara gibi görünebilir:

  • Şekil: Ortaya çıkan oyun tahtası. Değişkenler altındaki satırlarda sıralanmıştır. Maddeler en üste yayılmıştır. Bu düzen, ikinci dereceden patlama veriyor; Daha akıllı bir düzen, ikinci dereceden patlamayı önleyebilir.

görüntü tanımını buraya girin

Son Dakika Detayları

Karar problemini hatırlayın:

Bir verilen bir kapsayan mükemmel bir döşeme var mı (n+1)x(n+2) ızgara n benzersiz fayans?

Yani bir (n+1)x(n+2) ızgara, sadece kullanabiliriz ndeğişkenler. Ama azalma bir gerektiren çok çok daha fazla benzersiz değişkenlerin,O(n). Bu sorunu çözmenin birkaç yolu var.

  • Bunun bir yolu, ızgara boyutunu her iki eksende kare yapmaktır. Yani şimdi bizimO(|x|x|Φ(x)|) ızgara sadece O(n)Bu, tüm benzersiz numaralarımızın sınırlandırılabileceği anlamına gelir. n. Ardından, benzersiz numaralar yeniden, ancak herhangi bir numara yerleştirmek için çok dikkatli olmak, ızgara geri kalanını doldurmak gerektiğini her-diğer bizim komşu bizim komşu dinlenme dolgu-uzayda her-diğerine, ızgara Izgara Bunu yapmanın birkaç yaratıcı yolu var, bunu bir egzersiz olarak bırakacağım. Bu yöntem açıkça, ek bir ikinci dereceden patlama yaratır.
  • Bir başka, daha özlü, daha karmaşık bir yol, çeşitlendirmektir. 1blok. Sadece bir yapı taşı yerine kullanabiliriz.O(n)yapı taşları ve eşleştirdikleri sayıları yeniden kullanabiliriz. Bu yöntem, ikinci dereceden patlamayı önlememize izin verir.

Grafik kaynakları


Güzel indirim! Sadece bir merak: Kayıp çiftlerin (teller-duvarlar-aletlerin tahtaya yerleştirilmesinden sonra) tahtaya (polinom zamanında) dikdörtgen (n + 1) x (n + 2) ızgaraya yerleştirilebileceğini nasıl kanıtlayabilirsiniz? Aklımda benzer bir düşüş vardı, ancak "kullanılmayan" çiftlerin (muhtemelen daha büyük) bir dikdörtgen şeklinde düzenlenebileceğini nasıl kanıtlayacağımı çözmedim (oyunun kuralları her kiremitin[birben,bben] ile birben,bben=1 ..ngeçerli bir dominosa tahtasında kullanılır)
Vor

Tüm bu yorumları cevabımın içine taşıyacağım ve bir sonraki büyük revizyonumda daha kapsamlı hale getireceğim.
Realz Slaw 17:13

tamam, bekleyeceğim!
Vor

@RealzSlaw, Çok teşekkür ederim! Bunu okumak için hala zamanım olmadı ama çok güzel görünüyor.
Yoav bar sinai 18:13

@RealzSlaw, doğrudan sizinle iletişime geçmenin bir yolu var mı?
Yoav bar sinai 24:13
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.