美文网首页
java最短路径(jgrapht)

java最短路径(jgrapht)

作者: 淡看江湖等雨 | 来源:发表于2019-07-08 10:13 被阅读0次

基于jgrapht求最短路径的算法,有向图/无向图,加权图

/**
     * 主方法
     * 
     * @param args
     */
    public static void main(String[] args) {
        String v1 = "v1";
        String v2 = "v2";
        String v3 = "v3";
        String v4 = "v4";
        String v5 = "v5";

        DefaultDirectedWeightedGraph<String, DefaultWeightedEdge> graph=new DefaultDirectedWeightedGraph<>(DefaultWeightedEdge.class);
        graph.addVertex(v1);
        graph.addVertex(v2);
        graph.addVertex(v3);
        graph.addVertex(v4);
        graph.addVertex(v5);

        DefaultWeightedEdge edge1 = graph.addEdge(v1, v2);
        graph.setEdgeWeight(edge1, 3);

        DefaultWeightedEdge edge2 = graph.addEdge(v1, v3);
        graph.setEdgeWeight(edge2, 8);

        DefaultWeightedEdge edge3 = graph.addEdge(v1, v4);
        graph.setEdgeWeight(edge3, 5);

        DefaultWeightedEdge edge4 = graph.addEdge(v1, v5);
        graph.setEdgeWeight(edge4, 2);

        DefaultWeightedEdge edge5 = graph.addEdge(v2, v3);
        graph.setEdgeWeight(edge5, 4);

        DefaultWeightedEdge edge6 = graph.addEdge(v2, v4);
        graph.setEdgeWeight(edge6, 3);

        DefaultWeightedEdge edge7 = graph.addEdge(v2, v5);
        graph.setEdgeWeight(edge7, 4);

        DefaultWeightedEdge edge8 = graph.addEdge(v3, v4);
        graph.setEdgeWeight(edge8, 1);

        DefaultWeightedEdge edge81 = graph.addEdge(v4, v3);
        graph.setEdgeWeight(edge81, 1);

        DefaultWeightedEdge edge9 = graph.addEdge(v3, v5);
        graph.setEdgeWeight(edge9, 4);

        DefaultWeightedEdge edge10 = graph.addEdge(v4, v5);
        graph.setEdgeWeight(edge10, 2);

        DefaultWeightedEdge edge11 = graph.addEdge(v5, v4);
        graph.setEdgeWeight(edge11, 2);

        DijkstraShortestPath<String, DefaultWeightedEdge> dijkstraShortestPath = new DijkstraShortestPath<>(graph);
        GraphPath<String, DefaultWeightedEdge> path = dijkstraShortestPath.getPath(v1, v3);

        System.out.println(path.getEdgeList());
    }

相关文章

  • java最短路径(jgrapht)

    基于jgrapht求最短路径的算法,有向图/无向图,加权图

  • Hanlp中使用纯JAVA实现CRF分词

    Hanlp中使用纯JAVA实现CRF分词 与基于隐马尔可夫模型的最短路径分词、N-最短路径分词相比,基于条件随机场...

  • 图的应用-最短路径求解

    图的最短路径   图的最短路径是一个起点到一个终点之间最短的路径。  用于解决最短路径问题的算法被称做“最短路径算...

  • Yen的K条最短路径算法(KSP)

    一、问题介绍 1.求K条最短路径的必要性 最短路径问题分为: 单源最短路径 所有顶点对间的最短路径 共同的缺陷:这...

  • 最短路径算法

    最短路径算法可以分为两类:单源最短路径问题:从某固定源点出发,求其到所有其他顶点的最短路径。多源最短路径问题:求任...

  • 最短路径 之 Dijkstra 算法

    • 最短路径 之 Floyd 算法• 最短路径 之 Bellman 算法 Dijkstra算法是用于求解单源最短路...

  • 数据结构第二季 Day11 图 Kruskal算法、Dijkst

    一、最短路径基础知识 1、最短路径的定义是什么? 最短路径(Shortest Path):两顶点之间权值之和最小的...

  • 图 求解最短路径 时间复杂度 空间复杂度 单源最短路径 多源最短路径 条数最短(点权为1) 边权之和最小或最大(花...

  • 最短路径问题

    无权图单源最短路径 有权图单源最短路径 有权图单源最短路径和无权图最短路径不一样,不能单从节点数来看,比如上图中,...

  • 最短路径

    最短路径 最短路径:http://baike.baidu.com/view/349189.htmDijkstra算...

网友评论

      本文标题:java最短路径(jgrapht)

      本文链接:https://www.haomeiwen.com/subject/axinhctx.html