में निर्धारित टोपोलॉजिकल ऑर्डर मैं दिशात्मक ग्राफ बनाने और टोपोलॉजिकल ऑर्डर में अपने नोड्स को पुनर्प्राप्त करने के लिए scala-graph लाइब्रेरी का उपयोग कर रहा हूं। चूंकि ग्राफ के स्थलीय क्रम के लिए कई संभावनाएं हो सकती हैं, इसलिए मुझे ग्राफ के लिए स्थलीय क्रम के लिए निर्धारक परिणाम होना चाहिए जो समान रूप से समान और निर्मित हैं।स्कैला ग्राफ
यह छोटा सा एप्लिकेशन समस्या
import scalax.collection.Graph
import scalax.collection.GraphEdge.DiEdge
import scalax.collection.GraphPredef._
object MainApp extends App {
// Creates new graph for every call
// val is not an option
def graph: Graph[String, DiEdge] = Graph(
"A" ~> "B",
"A" ~> "C",
"A" ~> "D",
"B" ~> "E",
"B" ~> "F",
"C" ~> "G",
"C" ~> "H",
"D" ~> "F",
"D" ~> "G"
)
val results = 1 to 20 map { _ =>
graph.topologicalSort.mkString("")
}
println(results.tail.forall(_ == results.head))
}
इस एप्लिकेशन को प्रिंट झूठी पर प्रकाश डाला गया।
क्या स्कैला-ग्राफ लाइब्रेरी के एपीआई का उपयोग करके ग्राफ के निर्धारक स्थलीय प्रकार का निर्माण करने का कोई तरीका है? ऐसा करने के खरोंच से एक एल्गोरिदम लिखना मेरा आखिरी विकल्प होगा।
मैंने प्रश्न पोस्ट करने से पहले इस दृष्टिकोण की कोशिश की और यह काम नहीं करता है। जैसा कि पीटर एम्पेन ने यहां बताया है https://github.com/scala-graph/scala-graph/issues/41, जैसे ही टोपोलॉजिकल सॉर्ट को पुस्तकालय में पूरी तरह से एकीकृत किया जाता है, –