2016-10-11 3 views
1

Ich versuche, ein Gelly Graph in ein Diagramm mit Kanten mit Tuple5 statt Tuple 3 zu erweitern. Dies ist nicht möglich, indem Sie ein Gelly-Diagramm erweitern, da der Konstruktor privat ist. Ich ging weiter und machte meine eigene Edge-Klasse, die Tuple5 statt Tuple 3 erweitert, aber ich bin mir nicht sicher, ob ich es an dieser Stelle leicht zu einem gelly-Graphen machen kann, da die API auf tuple3 oder tuple2 für Edge-Sets zeigt.Versuchen, Gelly Graph zu erweitern

Die Frage ist, ob dies leichter durchgeführt werden kann oder ob es überhaupt möglich ist, was ich

+0

Können Sie Ihren Anwendungsfall erklären, d. H. Warum möchten Sie die Kante zu einem Tuple5 erweitern? Könnten Sie nicht ein 'Tuple3' als Typ für das Wertfeld verwenden? –

+0

Ja, ich kann, ich möchte ein temporäres Diagramm machen, wo jede Kante 2 zusätzliche Werte hat, eine Startzeit und Endzeit. Ich denke, die Verwendung des Tuple3-Feldes als Wertfeld könnte auch funktionieren, das habe ich noch nicht versucht. Obwohl für die Algorithmen, die ich mit Tuple5 machen möchte, wäre es bequemer –

+0

Ich sehe. Ich denke, die meisten Operatoren und Algorithmen erwarten 'Tuple3'-Kanten. Ich bin also nicht sicher, wie viel man von Gelly wiederverwenden kann, wenn man die Kanten auf 'Tuple5' ausdehnt. Ich würde empfehlen, an die Flink-Benutzer-Mailingliste zu schreiben, um mit den Hauptmitwirkenden von Gelly in Kontakt zu treten, die Ihnen besser helfen können. –

Antwort

0

Gelly Algorithmen tun will nicht in der Lage sein, Informationen in der Tuple5 Kante in jedem Fall zu verwenden. Wenn Sie sie in Ihrem benutzerdefinierten-Funktionen nutzen möchten, können Sie stattdessen eine regelmäßige Edge-Klasse verwenden und Ihre Daten speichern (beliebigen Typs) in diesen Kanten:

Edge<Long, Double> e = new Edge<Long, Double>(1L, 2L, 0.5); 

Hier 1L und 2L sind ids von Eckpunkten und 0,5 sind beliebige Daten, die dieser Kante zugeordnet sind.

Wenn Sie Algorithmen grafisch darstellen möchten, um Daten in diesen Tuple5-Kanten zu verwenden, müssen Sie Ihre eigenen Graphalgorithmen implementieren.