Düzlemdeki üçgenleri öğrenme


13

Benim öğrencilere koleksiyonu ile tutarlı bir üçgen bulma sorunu atanan noktalar R 2 ile etiketlenmiş, ± 1 . (Bir üçgen T ise tutarlı ise etiketli örnek ile , T olumlu ve olumsuz noktaları hiçbiri tüm içerir, varsayım, örnek kabul ediyor en az 1 tutarlı üçgen).mR2±1TT

Onlar (veya I) yapabildikleri en iyi şey, zamanında çalışan bir algoritmadır , burada m örneklem büyüklüğüdür. Herkes daha iyisini yapabilir mi?O(m6)m


Sadece net olmak gerekirse: üçgenin köşelerinin koleksiyonun noktaları olması gerekmez, değil mi? Ve sınırda olumsuz noktalar olması kabul edilebilir mi?
ex0du5

(1) Soruyu kapatmak için oy vermiştim çünkü sorunu yanlış anlamıştım. Sistem oyumu iptal etmeme izin vermiyor, ancak neredeyse iptal ediyorum. (2) Sanırım bir O (m log m) -zaman algoritması var, ama şu anda doğrulamak için zamanım yok. Fikir, olumlu örneklerin dışbükey gövdesini hesaplamak ve istenen üçgeni oluşturan üç çizgi bulmak için bu dışbükey gövdeyi taramaktır.
Tsuyoshi Ito

@ ex0du5 - üçgenin köşelerinin örnek noktalardan oluşmasına gerek yoktur. Sınır sorunlarına gelince, bunlar önemsiz oldukları için burada göz ardı edilebilir. [Sınır üçgenin bir parçası olarak sayılırsa, sınırda negatif puanınız olmaz.]
Aryeh

@TsuyoshiIto: Ben de benzer şekilde düşünüyordum, ama üçgen kenarların dışbükey gövdenin kenarlarıyla aynı çizgide bulunamayacağı durumlar var, ama hala bir üçgen var. Üçgen hala dışbükey gövdeyi içerir, ancak sadece gövdenin çizgilerini uzatmak ve üçgeni bulmak değildir. Negatif noktaları önlemek için bazı köşelerin etrafında döndürülmüş çizgilere ihtiyacınız olabilir. Bu yüzden sınırdaki negatifleri sordum, gövdenin köşelerinden ayrı bir arama yapmak için negatiflere kadar çizgiler seçen bir arama algoritmasına izin vermek için.
ex0du5

@ ex0du5: Üçgenin kenarlarının pozitif örneklerin dışbükey gövdesinin bazı kenarlarına paralel olduğunu varsaymadım.
Tsuyoshi Ito

Yanıtlar:


14

@TsuyoshiIto'nun önerdiği gibi, Edelsbrunner ve Preparata nedeniyle bu sorun için bir -zaman algoritması vardır. Aslında, algoritmaları, iki nokta kümesini ayıran mümkün olan minimum kenar sayısına sahip dışbükey bir çokgen bulur. Ayrıca cebirsel karar ağacı modelinde daha genel problem için Ω ( n log n ) alt sınırını kanıtlarlar ; ancak, bu alt sınırın üçgen durum için geçerli olup olmadığı açık değildir.O(nlogn)Ω(nlogn)

Algoritmanın tam açıklaması burada yayınlanmak için çok uzun, ancak temel fikir. , pozitif noktaların dışbükey gövdesi olsun . Her bir olumsuz nokta için q yoluyla çizgiler dikkate q teğet olan C . Bu çizgiler, düzlemi biri C içeren dört kamaya böler ; W ( q ) ' un C içeren takozun karşısındaki kama olmasına izin verin . Son olarak, F ("yasak bölge") bütün kamaların W ( q ) birleşmesine izin verin . Herhangi bir ayırma üçgen ayırmak gerekir C den FCqqCCW(q)CFW(q)CF. Hem hem de F , O ( n log n ) zamanında oluşturulabilir.CFO(nlogn)

$ C $ ve $ F $ örneği

FFO(n)Fee

Daha fazla ayrıntı için orijinal kağıda bakın:


3

TT

tABtBCBC

t

  1. t
  2. ABtAABCABBCAC
  3. t

O(m2)

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.