ฉันกำลังมองหาอัลกอริทึมในการวาดกราฟองค์ประกอบ / กราฟการพึ่งพา (สำหรับแอปพลิเคชันด้านภาษาศาสตร์) กราฟดังกล่าวจะมีจุดยอดสองประเภทที่แตกต่างกัน (โทเค็นโหนด) และขอบสองประเภทที่แตกต่างกัน (ลำดับชั้นไม่ใช่แบบลำดับชั้น)
ฉันยังใหม่กับทฤษฎีกราฟและอัลกอริทึมโดยทั่วไปและฉันหวังว่าคำถามนี้จะไม่ขัดแย้งกันเช่นกับข้อกำหนดระดับการวิจัยของไซต์นี้ มันควร แต่โดยทั่วไปจะอยู่ในขอบเขตของ cstheory
กราฟจะต้องวาดจากล่างขึ้นบน (ฉันคิดว่า) เนื่องจากโทเค็นทั้งหมดควรแสดงด้วยพิกัด y เดียวกันและพิกัด y ของโหนดที่จัดกลุ่มโทเค็นและ / หรือโหนดในองค์ประกอบจะต้องคำนวณแบบไดนามิก เช่นผ่านเส้นทางที่ยาวที่สุดไปยังโทเค็น
ขอบลำดับชั้น (ใช้สำหรับการจัดกลุ่มโทเค็น / โหนดในองค์ประกอบ) ควรมีจำนวนจุดดัดขั้นต่ำ (ตามอุดมคติ 0) แต่ควรมีจำนวนจุดข้ามขั้นต่ำโดยเขียนทับข้อกำหนดเดิมหากจำเป็น
ขอบที่ไม่เป็นลำดับชั้น (ใช้สำหรับการขึ้นต่อกัน) ควรมีจำนวนจุดข้ามขั้นต่ำและถูกวาดเป็นเส้นโค้งเบซิเยร์
สิ่งที่ดีที่สุดถัดไปที่ฉันเจอคืออัลกอริทึมที่อธิบายโดยBuchheim และคณะ ปรับปรุงอัลกอรึทึมของวอล์คเกอร์ให้ทำงานในเวลาเชิงเส้น
โปรดแจ้งให้เราทราบหากมีความจำเป็นต้องปรับปรุงคำถามของฉันและขอบคุณล่วงหน้าสำหรับคำแนะนำใด ๆ
แก้ไข:
ตามที่ระบุไว้ในความคิดเห็นฉันควรพูดถึงว่าฉันต้องการเลย์เอาต์กราฟเริ่มต้นโดยอัลกอริทึมซึ่งฉัน - ในระยะยาว - ต้องการแก้ไขและแก้ไขภายในEclipse GEF ที่เป็นไปได้ ก่อนหน้านี้ฉันได้พิจารณาตัวเลือกต่างๆเพื่อให้ Graphviz ทำงานกับ GEF ได้ แต่ดูเหมือนว่าจะไม่มีวิธีแก้ปัญหาการทำงานที่รักษาฟังก์ชันการแก้ไขทั้งหมดที่สืบทอดมาจาก GEF