มีโครงสร้างข้อมูลสำหรับ semilattices คล้ายกับโครงสร้างข้อมูลแบบต้นไม้หรือไม่?


13

หากเราถือว่าต้นไม้เป็นชุดสั่งบางส่วนมันจะกลายเป็นกรณีพิเศษของการเข้าร่วม semilattice สำหรับการเข้าร่วม semilattice เราต้องการให้สามารถคำนวณ (ไม่ซ้ำ) ขอบเขตบนน้อยที่สุดของสององค์ประกอบ (มากหรือน้อย) ได้อย่างมีประสิทธิภาพ ในกรณีของต้นไม้โครงสร้างข้อมูลที่จะเปิดใช้งานสิ่งนี้จะเก็บไว้สำหรับแต่ละองค์ประกอบในโหนดที่สอดคล้องกันตัวชี้ไปยังผู้ปกครองและวัดระยะทางไปยังราก (อันที่จริงแล้วการติดฉลากบนพื้นฐานของการจัดเรียงทอพอโลยีมักใช้สำหรับ "การวัดระยะทางไปยังราก" อย่างมีประสิทธิภาพสิ่งที่จำเป็นคือการสั่งซื้อบางส่วนที่เข้ากันได้ซึ่งสามารถประเมินได้อย่างมีประสิทธิภาพ)

การเข้าร่วม semilattice แต่ละอัน จำกัด สามารถแสดงเป็นเซตย่อยของเซต จำกัด ที่มีการบรรจุตามลำดับเพื่อให้ขอบเขตบนน้อยที่สุดได้รับจากการรวมกันของชุด ดังนั้นการแทนแต่ละองค์ประกอบด้วยจำนวน จำกัด ของแท็กและการคำนวณขอบเขตบนน้อยที่สุดโดยการรวมกันของแท็กที่เกี่ยวข้องจะเป็นโครงสร้างข้อมูลที่เป็นไปได้หนึ่ง (โดยการมองที่ส่วนประกอบเราเห็นว่าการกำหนดขอบเขตบนน้อยที่สุดในขณะที่จุดตัดของแท็กที่สอดคล้องกันก็อาจเป็นไปได้ด้วย) โครงสร้างข้อมูลทั่วไปที่ใช้กันทั่วไปก็คือใช้เมทริกซ์เพื่อเก็บผลลัพธ์ทั้งหมดของ "a <= b "หรือแม้แต่ผลลัพธ์ทั้งหมดของ" เข้าร่วม (a, b) "

อย่างไรก็ตามการใช้โครงสร้างข้อมูลดังกล่าวเพื่อเป็นตัวแทนของต้นไม้น่าจะแปลก มีโครงสร้างข้อมูลที่เหมือนต้นไม้มากขึ้นสำหรับ semilattices เข้าร่วมซึ่งยังอนุญาตให้มีการคำนวณที่มีประสิทธิภาพ (มากหรือน้อย) ของขอบเขต (ไม่ซ้ำ) ที่มีขอบเขตน้อยที่สุดของสององค์ประกอบ (อาจมีกราฟอะซิไซลิกกำกับด้วยข้อมูลเพิ่มเติมในโหนดที่คล้ายกับการวัดระยะทางถึงรากของต้นไม้)


2
ทฤษฎีบท 2.2 จากmath.hawaii.edu/~jb/math618/os2uh.pdfแสดงให้เห็นว่า semilattice สามารถแสดงเป็นชุดย่อย (ในทางที่ค่อนข้างน่ารำคาญ) ตามที่สันนิษฐานข้างต้น
โทมัสคลิมเพล

คำตอบ:


9

นี้blogpostในทฤษฎีขัดแตะมีส่วนอ้างอิงที่มีประโยชน์ซึ่งมีหมู่คนอื่น ๆ "ทฤษฎี Lattice กับโปรแกรม" โดยวีเจย์เค Garg บทที่ 2 "การแทนตำแหน่ง" อธิบายถึงโครงสร้างข้อมูลบางอย่างสำหรับการแทนตำแหน่ง posets และอธิบายวิธีคำนวณการเข้าร่วม (x, y) โดยใช้โครงสร้างข้อมูลดังกล่าว

โครงสร้างข้อมูลสองข้อแรกที่กล่าวถึงคือการแสดงรายการ adjacency ของกราฟการลดสกรรมกริยา (= Hasse แผนภาพ / ความสัมพันธ์ที่ครอบคลุม) และกราฟปิดสกรรมกริยา (= ความสัมพันธ์ poset) ข้อสังเกตเกี่ยวกับข้อดีของการใช้การเรียงลำดับโทโพโลยีเพื่อติดฉลากโหนดนำหน้าการสนทนานั้น โปรดทราบว่าฉลากของการจัดเรียงทอพอโลยีจะดีพอที่ "การวัดระยะทางไปยังราก" ซึ่งเป็นส่วนหนึ่งของโครงสร้างข้อมูลสำหรับต้นไม้ในคำถาม

การรับรองที่กล่าวถึงอื่น ๆ คือ "การแทนโครงกระดูก", "การแทนเมทริกซ์" และ "การแทนตามมิติ" "การเป็นตัวแทนโครงร่าง" น่าสนใจและมีประโยชน์ แต่ขึ้นอยู่กับการสลายตัวของโซ่ (= ใด ๆ ) ของ poset "การเป็นตัวแทนของเมทริกซ์" อาจดูเล็กน้อย แต่มันอาจจะเป็นสิ่งที่ดีที่สุดสำหรับปัญหาที่เกิดขึ้นจริง "การแทนตามมิติ" หมายถึง poset เป็นเซตย่อยของผลิตภัณฑ์คาร์ทีเซียนของคำสั่งเชิงเส้น แต่การคำนวณการแสดงที่น้อยที่สุดของประเภทนี้คือ NP-hard

โดยสรุปการแทนค่า treelike ที่มากที่สุดของเหล่านี้คือการแสดงรายการ adjacency ของการลดสกรรมกริยาพร้อมกับการติดฉลากของโหนดโดยเรียงลำดับทอพอโลยี (แทน "การวัดระยะทางไปยังราก") นี่เป็นหนึ่งในการรับรองที่ใช้โดย Sage (อีกอย่างคือ "การแทนเมทริกซ์")

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.