Dik bir çokgen kareler ile fayans


12

Dik bir çokgen (kenarları eksenlere paralel olan bir çokgen) göz önüne alındığında, birliği çokgene eşit olan en küçük iç-ayrık kareler kümesini bulmak istiyorum.

Biraz farklı sorunlara birkaç referans buldum, örneğin:

Kareler ile minimum döşeme için bir algoritma arıyorum .


mmm Bunun NP-zor olduğunu hayal edebiliyorum. Bir şey formüle etmeye çalışacağım.
Realz Slaw

1
İzin verilen deliklere sahip minimizasyon versiyonu NP-Hard'dur, ancak basitçe bağlı ortogonal çokgenler (yani deliksiz) için bir polinom algoritmasına sahiptir. Ancak, probleminizde boyutlar tamsayı ise ve gerçekten minimum bir kapak değil, minimum bir kapak anlamına gelirseniz, bu durumda bir polinom algoritması mümkündür.
Parham

Mmm, asgari karelerin rasyonel olarak konumlandırılacağını ve rasyonel boyutlara sahip olacağını kanıtlamak istiyorum; hatta daha da fazlası, eğer giriş tamsayı boyutunda ve tamsayı konumlandırılmışsa, minimum kareler de olacaktır (SAT'a azaltmak için). Sezgisel olarak, bunun doğru olduğuna inanıyorum, bunu kanıtlamak için herhangi bir fikriniz var mı?
Realz Slaw

@MahmoudAlimohamadi: Doğrusal çokgenleri (delikli veya deliksiz) karelerle döşeme sorununun incelendiği (ve çözüldüğü) makalelerin başlıklarını / yazarlarını sağlayabilir misiniz ?
Vor

2
btw, minim al yerine minim um demek istediğini sanıyordum .
Realz Slaw

Yanıtlar:


15

Ben bu sorunu göstermeye çalışacağı indirgeme ile NP-zor .Planar-3-SAT


Gelen azalma Planar-3-SAT

Bazı temel Gadget'lar

Alet bize azaltacak olan bir devre, kullanım için kapıları oluşturmak için sağlayacak geometri iç konfigürasyonları .Planar-3-SAT

4X3-Gadget

Bu gadget'ın iki geçerli minimum kare bölüm durumu vardır :

resim açıklamasını buraya girin         resim açıklamasını buraya girin         resim açıklamasını buraya girin

Sol A 4X3-Gadget . Orta ve sağ: İki olası asgari kare bölme durumu .

5x4-Gadget

Bu gadget, sadece daha büyük boyutlara sahip bir 4X3 gadget'a benziyor .

resim açıklamasını buraya girin         resim açıklamasını buraya girin         resim açıklamasını buraya girin

Sol A 5x4-Gadget . Orta ve sağ: İki olası asgari kare bölme durumu .

uç nokta-Gadget

TF

resim açıklamasını buraya girin

Sol: Uç nokta gadget'ının tel çerçevesi . Merkez: Gerçek değerli son nokta. Sağ: Yanlış değerli son nokta.

i-wire gadget'ı

Bir i-wire gadget , ima teli kısaltmasıdır .

Kurallar:

  • 22
  • 3

Misal:

resim açıklamasını buraya girin

72

İşte nasıl kullanılır:

resim açıklamasını buraya girin         resim açıklamasını buraya girin

Şekil 8,9 , Sol: iki uç nokta boyunca tel kafes i-teli . Sağ: Birlik.

Şimdi, bir uç nokta doğru durumdaysa, diğer noktayı itilmiş konuma zorlar . Misal:

resim açıklamasını buraya girin         resim açıklamasını buraya girin

Sol: Kare bölme diyagramı; sol anahtar aşağı, tüm kareleri i-teli aşağı iter ve son olarak diğer anahtarı ( son nokta ) iter . Sağ: Kare bölme diyagramı; sol nokta dolu, tüm kareleri i-teli aşağı doğru "itiyor" ve soldaki uç noktayı "yukarı" olmaya zorluyor .

A¬BAB

Ancak, bu kısıtlanmamış davayı bırakır:

resim açıklamasını buraya girin

İki i-teli birleştirirsek , iki yönlü bir sonuç elde edebiliriz, esasen bir boolean (in) eşitliği:

resim açıklamasını buraya girin         resim açıklamasını buraya girin

Yani, iki i-telleri pek bir devre gibi, tam bir eşitlik ilişkisi taşıyabilir - aslında, bu ise bir devre. Bu çiftleri kullanılabilir bir tel oluşturmak için kullanacağız .

l12+2

i-telleri gerektiği gibi yönlendirilebilir.

tel

Bir tel , her bir uç noktada aynı kapılara bağlanan bir çift i- telden oluşur .

  • İ-telleri kırmızı ve yeşil renklidir.
  • 3
  • Her kapı piminin yeşil ve kırmızı bir teması olacaktır; bir tel doğru şekilde bağlanmalıdır.
  • Değişmez kural: bir i-teli diğer i-teli ters yönde itilir, her kapı bunu kabul eder ve bundan emin olur (aksi belirtilmedikçe).
  • Her tel iki yönlü bir ima içerdiğinden, değerleri bir devrede bir tel gibi kapıdan kapıya taşır.
  • Her tel her iki uçtan bir kapıya bağlanmalıdır. . Bu başarısız olursa, tarif ettiğim bazı kapıların varsayımlarını ve yukarıdaki değişmez kuralı mahvedebilir; ancak, uçlar arasında uç noktaları olan kapılar güvenlidir - kapıyı bozması konusunda endişelenmeden başıboş kabloları bu uç noktalara bağlayabilirsiniz .
  • kablolar bağlandığı herhangi bir devreye giden kablolar da dahil olmak üzere tek uzunlukta olmalıdır ; ancak aşağıda, çift uzunlukta bir telin tek uzunlukta olmasına izin veren tek bir atlama geçidini tarif edeceğim.

Resimler :

resim açıklamasını buraya girin

Yukarıda: Bir tel .

resim açıklamasını buraya girin        resim açıklamasını buraya girin

Sol ve sağ: Bir telin iki olası minimum kare bölme durumu . Tel sadece bu uzunluktaysa, sağa veya sola kaymayacak ve bir kareyi daha küçük parçalara ayırmak zorunda kalacağını unutmayın.

teller gerektiği gibi yönlendirilebilir.

viraj kapısı : Bir telin bükülmesi

resim açıklamasını buraya girin       resim açıklamasını buraya girin

Sol: Tel çerçeve görünümü. Sağ: Birlik görünümü.

4X3 gadget'ının kullanımına dikkat edin . Kırmızı ucu tuhaf uzunluğa sabitlemek için kullanılır.

Aşağıda , virajın iki olası minimal kare bölümleme durumu bulunmaktadır:

resim açıklamasını buraya girin         resim açıklamasını buraya girin

Sol ve sağ: Bir bükme telinin iki olası minimum kare kare bölme durumu .

Kapı gerektiği gibi yönlendirilebilir. Açıkçası, bu kapı diğer yönde çalışmak üzere yansıtılabilir.

Tel bükme

Bir teli kaydırmak kolaydır. Tel kafes illüstrasyon:

resim açıklamasını buraya girin

adlı değerli kapısı

Bir adlı-değeri-geçidi , esasen bir tel kontaklı bir kapı gibi bir uç nokta:

resim açıklamasını buraya girin

tek atlama kapısı : Bir tel atlama tuhaf

Bazen sadece tek uzunlukta kablolara sahip olmak uygunsuz olabilir. Örneğin:

resim açıklamasını buraya girin

Gördüğünüz gibi, bu uzatma biraz sinir bozucu. İşte 4X3 geçidini kullanan karşılık gelen bir çözüm :

resim açıklamasını buraya girin

Yani, bunu bir kapıya dönüştürdüğümüzde, tek atlama kapısı (tel kafes içinde) elde edilir:

resim açıklamasını buraya girin

Kapı gerektiği gibi yönlendirilebilir.

twist-gate : Bir telin bükülmesi

Bazen bir kapı ile kullanmak için yanlış taraflardaki kırmızı ve siyah i-telleri alırsınız . Bu durumda, kırmızı ve siyah i-tellerini karşı taraflara bükmek için bir büküm kapısı sağlanır .

Tel kafes illüstrasyon:

resim açıklamasını buraya girin

Çalıştığına ikna edin:

resim açıklamasını buraya girin         resim açıklamasını buraya girin

A

Kapı gerektiği gibi yönlendirilebilir.

split-gate : Bir telin bölünmesi

Bir telin bölünmesi, tel kafes:

resim açıklamasını buraya girin

Kendinizi işe yaradığına ikna edin:

resim açıklamasını buraya girin

A

resim açıklamasını buraya girin

A

Not: Ayırıcıya giren ve çıkan her tel , değişmezi korumak için kesinlikle bir yerdeki uç noktaya bağlanmalıdır. Alternatif olarak, ayırıcının uç çiftlerinin her birine uç noktalar ekleyebilirsiniz.

Kapı gerektiği gibi yönlendirilebilir.

değil kapısı

Not gate bir tel alır ve ters etkileri olan bir tel çıkarır. Bu, tellerin renklerini yeniden etiketlemesi dışında temelde bir bükümlü geçittir. Not -gate şöyle görünür:

resim açıklamasını buraya girin

Ve iki olası durumun bir görüşü:

resim açıklamasını buraya girin         resim açıklamasını buraya girin

Kapı gerektiği gibi yönlendirilebilir.

şarttan kapısı

İçin şarttan kapısı , öncelikle tanıtmak şarttan gadget :

resim açıklamasını buraya girin

3

Kapı böyle görünüyor:

3

Açıklama:

  1. Clause-gadget ile başlayın ve okları takip edin.
  2. Ok çizgileri olmayan, bir devrenin parçası olduğu anlamına gelir, ancak kapı tarafından bir duruma zorlanmaz.
  3. Devlet şarttan Gadget uç noktaları güçleri birine değerli olması doğrudur .

3-CNF

Kapı gerektiği gibi yönlendirilebilir.

indirgeme

Φ(x)Planar-3-SAT

Φ(x)=inCi,C={(xjxkxl)}

Görsel bir yardım (orijinal kaynak: Terrain Guarding NP- Hard'dur (PDF) , tikz'de çoğaltılmıştır):

resim açıklamasını buraya girin

Sonra:

  1. xixxi¬xi
  2. Kapıları birbirine değil , birbirlerinin değerlerini mantıksal olarak reddedecekleri şekilde bir geçitle bağlayın .
  3. Değişkenlerin 'kapılar' çokgenlerini düzlemsel gömme yerlerine yerleştirin.
  4. Her bir cümle için, cümlenin düzlemsel gömme konumundaki konumuna bir cümle kapısı yerleştirin.
  5. Yukarıda açıklanan kapıları kullanarak tüm değişkenleri kendi cümlelerine bağlayın.
  6. Bir Run asgari kare paritioning-algoritma geçidin çokgen tüm sonuçlanan dikmesi (tüm devre).
  7. Algoritma, kapının tüm minimum kare bölümleme durumu boyutlarının (paylaşılan köşeler için çıkarma) toplamını döndürürse , tatmin edici olur. Eğer tatmin edici değilse, kısıtlanmış bir aygıtı daha küçük karelere ayırmaya zorlayacak ve böylece devreyi bölümlemek için gereken karelerin sayısını artıracaktır.

Neden çalışıyor?

  • Her aygıtın minimum kare bölüm durumu boyutu vardır; yani, bu gadget'ın minimal kare bölümü belirli bir boyuttadır.
  • Bazı gadget'ların bu boyutta birkaç durumu vardır; bu durumların her biri geçerli minimum kare bölümlerdir .
  • Gadget'lar yalnızca köşelerde birleştirildiğinde, gadget'ların minimal kare bölümleme durumlarının toplamı * hala bunların birleşmesinin minimUM-kare bölümleme durumudur ; bunu sezgisel olarak görebilirsiniz: köşeye katılmak, bir karenin başka bir gadget'tan bir kareyi genişletmesi / bağlanması için yeterli alan sağlamaz.
  • Köşesinde gadget'lar birleştirerek azaltmak etmese de toplam asgari kare bölüm boyutunu , bu mu ilgilidir ve her-diğer aygıtları sınırlamak.
  • Yukarıda gösterilen kapılarla, durumları yeterince kısıtlayabilirsiniz, böylece mantıksal formül tatmin edici değilse, bir veya daha fazla gadget daha da küçük karelere girmeli ve minimum kare bölüm boyutunu artırmalıdır .

grafik kaynakları

Ayrıca imgur URL'lerinin "s", "m", "l" soneklerini kaldırarak daha büyük görüntüler görebilirsiniz. Örneğin, http://i.stack.imgur.com/6CKlG.jpg adresine giderek bunun daha büyük bir resmini görebilirsiniz: http://i.stack.imgur.com/6CKlGs.jpg . Önce eksik "s" dikkat edin .jpg.


3
Vay canına, bu kesinlikle etkileyici. Ne yazık ki, indirgeme kontrol etmek için yeterince akıllı değilim, ama bunun için bir kelime almak :) Teşekkürler!
Erel Segal-Halevi

1
Bu nedenle, döşemedeki durum kaplamadaki durumun tersidir: kaplamada kare kaplama polinomdur ve dikdörtgen kaplama NP-zordur, döşemede kare kaplama NP-serttir ve dikdörtgen kaplama polinomdur.
Erel Segal-Halevi


8

NO(N3/2)

"Dik çokgenler kareler ile kaplama." Aupperle ve HE Conn ve JM Keil ve Joseph O'Rourke. Proc. 26. Allerton Konf. Commun. Denetim Bilgisayarı. 97-106, 1988. ( PDF taramasını indirme bağlantısı )

Bununla birlikte, elde edilen kaplama örtüşen kareler içerebilir. Karelerin çakışmasına izin verilmeyen bir fayans arıyorsunuz, bu yüzden probleminiz tamamen aynı değil.


lol Bir formülasyon boyunca yarı yoldaydım :(. Çok ilginç olsa da cs.SE.'ye hoş geldiniz
Realz

2
Doğru anlarsam, bu kağıt karelerin çakışmasına izin verir (yani bir kaplama problemidir). Karelerin üst üste binmesine izin verilmediği durumla ilgileniyorum (yani bir bölümleme / döşeme sorunu).
Erel Segal-Halevi

@ErelSegalHalevi: Oh, özür dilerim, sorunuzu dikkatle okumadım.
Joseph O'Rourke

2
Ah o zaman devam edeceğim: D
Realz Slaw
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.