Bir ağaç veri yapısına benzer yarı elemanlar için bir veri yapısı var mı?


13

Bir ağacı kısmi sıralı bir küme olarak ele alırsak, bu bir birleştirme-yarı-kafesin özel bir durumu haline gelir. Birleştirme-yarı-dili için, iki elemanın (benzersiz) en az üst sınırını (az ya da çok) verimli bir şekilde hesaplamak istiyoruz. Bir ağaç söz konusu olduğunda, bunu etkinleştirecek bir veri yapısı, karşılık gelen düğümdeki her eleman için ana öğeye bir işaretçi ve kök için bir mesafe ölçüsü saklamak olacaktır. (Aslında, genellikle "köke olan bir uzaklık ölçüsü" için kullanılan topolojik türe dayanan bir etiketleme, etkin bir şekilde ihtiyaç duyulan tek şey, verimli bir şekilde değerlendirilebilen uyumlu bir kısmi düzendir).

Her sonlu birleştirme-yarı-kafes, en az üst sınırın kümelerin birleşmesi tarafından verilecek şekilde düzen içeren bir sonlu kümenin alt kümeleri olarak temsil edilebilir. Dolayısıyla, her bir öğeyi sınırlı sayıda etiketle temsil etmek ve karşılık gelen etiketlerin birleşmesi ile en az üst sınırı hesaplamak olası bir veri yapısı olacaktır. (Tamamlayıcıya bakıldığında, karşılık gelen etiketlerin kesişimi olarak en az üst sınırı tanımlamanın da mümkün olabileceği görülür.) Çok daha yaygın bir veri yapısı, "a <= b "veya" join (a, b) "nin tüm sonuçları bile.

Ancak böyle bir veri yapısını bir ağacı temsil etmek için kullanmak biraz garip olurdu. Birleştirme yarı-uçları için, iki öğenin (benzersiz) en az üst sınırının (az ya da çok) verimli bir şekilde hesaplanmasına izin veren daha fazla ağaç benzeri veri yapısı var mı? (Belki de ağacın köküne olan uzaklık ölçüsüne benzer şekilde düğümlerde ek bilgiler içeren bir tür yönlendirilmiş asiklik grafik?)


Yanıtlar:


9

Kafes teorisi hakkındaki bu blog yazısı , Vijay K. Garg tarafından yazılan "Uygulamalarla Kafes Teorisi" ni içeren faydalı bir referans bölümüne sahiptir. Bölüm 2 "Posetleri Temsil Etme", posetleri temsil etmeye yönelik bazı veri yapılarını açıklar ve böyle bir veri yapısını kullanarak birleştirme (x, y) 'nin nasıl hesaplanacağını tartışır.

Tartışılan ilk iki veri yapısı, geçişli indirgeme grafiğinin (= Hasse diyagramı / kapak ilişkisi) ve geçişli kapatma grafiğinin (= poset ilişkisi) bitişiklik listesi temsilidir. Düğümleri etiketlemek için topolojik bir sıralama kullanmanın avantajları hakkında bir açıklama bu tartışmadan önce gelir. Topolojik sıralama etiketlerinin, söz konusu bir ağaç için veri yapısının bir parçası olan "köke uzaklık ölçüsü" olarak yeterince iyi olacağını unutmayın.

Tartışılan diğer temsiller "İskelet Temsili", "Matris Temsili" ve "Boyut Bazlı Temsilidir". "İskelet Temsili" ilginç ve kullanışlıdır, ancak postanın (= herhangi bir) zincir ayrışmasına dayanır. "Matris Temsili" önemsiz görünebilir, ancak muhtemelen en pratik sorunların en iyi temsili olabilir. "Boyut Tabanlı Temsil", postayı doğrusal siparişlerin Kartezyen ürününün alt kümesi olarak temsil eder, ancak bu tür minimal temsili hesaplamak NP-zordur.

Sonuç olarak, bunların en treelike temsili, geçişlerin azaltılmasının bitişik liste gösterimi ile birlikte düğümlerin topolojik bir sıralama ile etiketlenmesi ("köke bir mesafe ölçüsü" yerine). Bu aslında Sage tarafından kullanılan temsillerden biridir (diğeri "Matris Temsilidir").

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.