이번 주에이 라이브러리를 발견했으며 첫 번째 프로젝트가 작동하여 간단한 비행 예약을 모델로 만듭니다. 내가 정점과 같은 비행 클래스 을 만든 가장자리JUNG : Custom DijkstraShortestPath
나는 공항 클래스
나는 각 비행 시간을 넣어 dijsktra 알고리즘 (DijkstraShortestPath)
class Airport {
String name;
}
class Flight {
String flight;
int duration;
}
g = new DirectedSparseMultigraph<Airport, Flight>();
Flight AXXX = new Flight("A57",3);
Flight AYYY = new Flight("A53",1);
ORY = new Airport("ORY");
LYS = new Airport("LYS");
g.addEdge(AXXX, ORY, LYS);
g.addEdge(AYYY, LYS, ORY);
Transformer<Flight, Integer> wtTransformer = new Transformer<Flight, Integer>() {
@Override
public Integer transform(Flight link) {
return link.duration;
}
};
DijkstraShortestPath<Airport, Flight> alg = new DijkstraShortestPath(g, wtTransformer);
Number dist = alg.getDistance(ORY, LYS);
이 간단한 사건을 연관 성공
을 만들었습니다 잘 작동하지만 이제는 지속 시간을 다음과 같이 계산합니다. Flight1 시작 12/01/13 12:00 및 도착 13/01/13 at 14h Flight2 시작 13/01/13 18:00 및 도착 13/01/13 at 20h이 경우 비행 기간과 비행 시간을 계산하고 싶습니다. 우리가 비행 시간과 비행 시간뿐만 아니라 비행 시간 사이를 기다릴 필요가있는 하나에서 다른 비행까지 최단 경로를 얻으려고합니다. 그러나 DiskstraShortestPath는 Transformer 만 다음과 같이 허용합니다. 전 비행 시간을 계산하기 위해 이전 비행에 대한 참조를 얻을 수 없습니다 (대기 + 비행).
제 질문은 : 제 경우에 가장 좋은 방법은 무엇입니까?) 당신은 사람을 대답 는 (... DirectedSparseMultigraph를 상속) (... DijsktraShortestPath을 상속) 새로운 GraphType 만들기
감사를 새로운 알고리즘을 만들어보세요!
일부 지연 .. 감사합니다;) – Zuzu