2013-04-23 2 views
0

나는 가지고있는 모서리 세트 (4000K 모서리 및 4K 노드)로 그래프를 만들었습니다. 이제 코퍼스에서 가장자리의 10 %를 취하여 열차를 만들고 테스트 데이터 세트를 만들고 싶습니다.jGraphT의 그래프에서 무작위로 정점 또는 가장자리를 선택하는 방법

임의로 가장자리를 선택하고이 가장자리의 꼭지점에 임의의 꼭지점이 있는지 확인하고 싶습니다. 그렇다면 그래프에서 해당 가장자리를 제거하고 해당 가장자리를 테스트 파일에 작성합니다. 그러면 나중에 필자는 유사점 기능을 사용하여 테스트 파일의 가장자리를 예측할 것입니다.

논리는 A-> B 및 B-> C가 주어지면 A-> C를 예측하려고합니다.

이제 문제는 가장자리를 임의로 선택하고 임의로 JGraphT에서 정점을 선택하는 방법을 얻을 수 없다는 것입니다. 내 정점 이름은 임의의 숫자가있는 문자열입니다.

어느 누구나 해결 방법이 있습니까?

답변

1

가능성이 있습니다. 먼저 예제를 참조하십시오 :

DirectedGraph<String, DefaultEdge> graph = new DefaultDirectedGraph<String, DefaultEdge>(DefaultEdge.class); 
Object[] vertexSet = graph.vertexSet().toArray(); 
Object[] edgeSet = graph.edgeSet().toArray(); 
String someRndNode = (String) vertexSet [ getSomeRandomNumberBetween(0, vertexSet.length)]; 
DefaultEdge someRndEdge = (DefaultEdge) edgeSet [ getSomeRandomNumberBetween(0, edgeSet.length)]; 

그래프의 모서리와 노드 집합을 얻습니다. 배열을 기반으로 임의의 숫자를 결정하십시오. 너가 그것에서 필요로하는 재료를 얻으 십시요.

관련 문제