मैं एक मिश्रित निर्वाचन क्षेत्र / निर्भरता ग्राफ (एक भाषाई अनुप्रयोग के लिए) आकर्षित करने के लिए एक एल्गोरिथ्म की तलाश कर रहा हूं। इस तरह के ग्राफ में दो अलग-अलग प्रकार के कोने (टोकन, नोड्स) और दो अलग-अलग प्रकार के किनारे (पदानुक्रमित, गैर-पदानुक्रमित) होंगे।
मैं सामान्य रूप से ग्राफ सिद्धांत और एल्गोरिदम के लिए नया हूं, और मुझे आशा है कि यह प्रश्न इस साइट के अनुसंधान-स्तर की आवश्यकताओं के साथ नहीं है। यह हालांकि आम तौर पर cstheory के दायरे में होना चाहिए ।
ग्राफ को नीचे-ऊपर (मुझे लगता है) खींचना होगा, क्योंकि सभी टोकन को एक ही y-निर्देशांक के साथ प्रदर्शित किया जाना चाहिए, और घटकों में टोकन और / या नोड्स को समूहीकृत करने वाले नोड्स के y-निर्देशांक को गतिशील रूप से गणना करना होगा, उदाहरण के लिए, एक टोकन के लिए उनके सबसे लंबे रास्ते के माध्यम से।
पदानुक्रमित किनारों (घटक में नोड्स / नोड्स को समूहीकृत करने के लिए उपयोग किया जाता है) में न्यूनतम संख्या में बेंडपॉइंट्स (आदर्श रूप से 0) होना चाहिए, लेकिन यदि आवश्यक हो तो पूर्व आवश्यकता को लिखकर, क्रॉसिंग की न्यूनतम संख्या भी होनी चाहिए।
गैर-पदानुक्रमित किनारों (निर्भरता के लिए प्रयुक्त) में क्रॉसिंग की न्यूनतम संख्या होनी चाहिए, और बेज़ियर घटता के रूप में तैयार किया जाना चाहिए।
अगली सबसे अच्छी बात जो मुझे पता चली है वह है अल्चाइम एट अल द्वारा वर्णित एल्गोरिदम । , रैखिक समय में चलने के लिए वाकर के एल्गोरिथ्म में सुधार।
कृपया मुझे बताएं कि मेरे प्रश्न को सुधारने की कोई आवश्यकता होनी चाहिए, और किसी भी संकेत के लिए अग्रिम धन्यवाद।
संपादित करें:
जैसा कि एक टिप्पणी में कहा गया है, मुझे यह उल्लेख करना चाहिए कि मैं मूल रूप से एक एल्गोरिथ्म द्वारा डिफ़ॉल्ट ग्राफ़ लेआउट चाहता हूं, जिसे मैं - लंबे समय में - ग्रहण जीईएफ संभावनाओं के भीतर संपादित और संशोधित करना चाहता हूं । मैंने पहले GEF के साथ काम करने के लिए ग्राफविज़ प्राप्त करने के लिए विकल्पों पर गौर किया है, लेकिन ऐसा कोई समाधान नहीं है जो GEF से विरासत में मिली सभी संपादन कार्यक्षमता को संरक्षित करता है।