2010-03-14 17 views
27

क्या ग्राफ़ के लिए एक अच्छी लाइब्रेरी (या जावा लाइब्रेरी में रैपर) है, और स्केल में ग्राफ एल्गोरिदम है?स्काला के लिए ग्राफ लाइब्रेरी

This one काफी मृत लगता है। This स्कैला में डिजस्ट्रा एल्गोरिदम के लिए एक उदाहरण है, लेकिन मैं लाइब्रेरी ए-ला JGraphT की तलाश में हूं।

+3

हालांकि एक और जवाब में स्वीकार किया जाता, मैं दृढ़ता से scalax.collection.Graph सलाह देते हैं, http://www.assembla.com देखना/रिक्त स्थान/स्कैला-ग्राफ/विकी का उल्लेख दूसरे उत्तर में किया गया था, लेकिन यह अब काफी स्थिर है ... – Bastl

+1

मैं इस सवाल को ऑफ-विषय के रूप में बंद करने के लिए मतदान कर रहा हूं क्योंकि मुझे नहीं पता कि हमें क्यों पूछा जा रहा है प्राचीन इतिहास की समीक्षा करने के लिए। – Strawberry

उत्तर

6

हमने उपकरण परियोजना के लिए एक छोटी ग्राफ लाइब्रेरी विकसित की है। आप इसे here पर देख सकते हैं। यह पूरी तरह कार्यात्मक नहीं है और जिपर ग्राफ नहीं है बल्कि हमारे लिए अच्छा काम करता है। आप भी परिवर्तनीय और अपरिवर्तनीय ग्राफ प्राप्त करते हैं।

implicit val factory = DefaultEdge[String](_, _) 
val G = Graph(
    "Entry" -> "A", 
    "A" -> "B", 
    "B" -> "C", 
    "B" -> "D", 
    "D" -> "F", 
    "F" -> "E", 
    "E" -> "F", 
    "E" -> "C", 
    "C" -> "A", 
    "C" -> "Exit") 
G.dotExport to Console.out 

SCCS और उप-घटक

G.sccs foreach println 
G.sccs map { _.entry } foreach println 
G.sccs filter { _.canSearch } map { _.subcomponents } foreach { _ foreach println } 

Traversal

for(x <- G.topsort) println(x) 
for(x <- G.dft(y)) println(x) 

वर्तमान दोष यह है कि है पुस्तकालय केवल अपरिवर्तनीय समर्थन कर रहा है ढूँढना:

यहाँ ग्राफ निर्माण के लिए एक सरल उदाहरण है प्रकार और फीचर पूरे ग्राफ लाइब्रेरी के लिए पूर्ण नहीं है।

4

Jung क्यों नहीं? और ग्राफिक्स के लिए Piccolo2D भी? (दोनों जेवीएम आधारित)।

+0

@ एसडब्ल्यू: जंग के पास विशेष स्कैला बाइंडिंग नहीं है? कोई भी जावा ग्राफ लाइब्रेरी का उपयोग कर सकते हैं। –

+0

@Rex_Kerr आप प्रत्येक जावा क्लास आयात कर सकते हैं, आपको विशेष बाध्यकारी क्यों चाहिए? –

+5

@ एसडब्ल्यू क्योंकि उन बाइंडिंग्स स्कैला की संरचनाओं के साथ बेहतर बातचीत कर सकती हैं, जैसे कि लैम्ब्डा एक्सप्रेशन (उदाहरण के लिए g.nodes.forall (_। Weight> 10)) –

22

स्केल लाइब्रेरी में अंतर्निहित scala.collection.Graph बनाने के लिए current call-for-comments है।

इसके अलावा, जेजीआरटीटी के लिए स्कैला रैपर विकसित करने के बारे में कैसे?

अद्यतन

Graph for Scala चर्चा चरण से आगे है, और एक काम में प्रगति।

+0

अब https://github.com/scala-graph/scala- ग्राफ –

+0

धन्यवाद! - अद्यतन किया गया। – opyate

+1

https://github.com/twitter/cassovary से अलग क्या है? –

2

दुष्टात्मा-स्काला दुष्टात्मा, Neo4j, OrientDB, Dex, InfiniteGraph, टाइटन, Rexster ग्राफ सर्वर, और तिल 2.0 आज्ञाकारी RDF स्टोर सहित ग्राफ डेटाबेस के एक नंबर से गुजरने के लिए एक ग्राफ डीएसएल के लिए एक पतली पतली स्काला आवरण है।

https://github.com/mpollmeier/gremlin-scala

नोट: मैं पक्षपाती हूँ के रूप में मैं लेखक हूँ;)

संबंधित मुद्दे