Genel grafiklerdeki üçgenleri saymak zamanında önemsiz bir şekilde yapılabilir ve daha hızlı yapmanın zor olduğunu düşünüyorum (referanslar hoş geldiniz). Düzlemsel grafikler ne olacak? Aşağıdaki basit prosedür, O ( n log n ) zamanında yapılabileceğini göstermektedir. Sorum iki katlıdır:
- Bu prosedür için referans nedir?
- Zaman doğrusal hale getirilebilir mi?
Lipton-Tarjan'ın düzlemsel ayırıcı teoreminin algoritmik kanıtından, zaman içinde grafiğin boyutunda lineer olarak, grafiğin köşe noktalarını üç set ayırabiliriz, böylece bir uç noktası olan kenarlar olmaz A ve diğeri B , , O ( √ve ikisi de 2 ile sınırlandırılmış boyutlara sahiptirKöşe sayısı 3 . Grafikteki herhangi bir üçgenin ya tamamenAiçindeya da tamamenBiçindeya daSen az bir tepenoktasınıA∪S'denya da her ikiB∪S'denheriki köşe ile kullandığına dikkat edin. Bu nedenle, ilgili grafik üçgenler sayısını saymak için yeterliSve komşuSolarakA(ve benzer şekilde, içinB). Bildirim buSvebir-neighbours geçırılen birk-Dış düzlemsel bir grafiktir (grafik çapında bir düzlemsel grafik bir alt grafiğinin bahsedilen4). Böylece, böyle bir grafikteki üçgenlerin sayımı doğrudan dinamik programlama veya Courcelle teoreminin bir uygulamasıyla yapılabilir (Elberfeld ve arkadaşları tarafından Logspace dünyasında böyle bir sayım versiyonunun var olduğundan eminim ve ayrıca var olduğunu tahmin ediyorum) bir yönsüz bir üçgen oluşturan bir yana) doğrusal zamanda dünyanın özelliği ve yana sınırlı bir genişlik ağaç ayrışma gömülü dan elde etmek kolaydır k -Dış düzlemsel grafiktir.
Böylece problemi, her biri doğrusal bir zaman prosedürü pahasına sabit bir fraksiyondan daha küçük olan bir çift probleme indirdik.
Prosedürün zamanında bir girdi grafiğinde sabit bağlı herhangi bir grafiğin örnek sayısını bulmak için genişletilebileceğine dikkat edin .