zoukankan      html  css  js  c++  java
  • [工具]toolbox_graph_Floyd算法

    Floyd:计算图的最短路径。更详细的C++实现代码可参考:http://www.cnblogs.com/twjcnblog/archive/2011/09/07/2170306.html

    在这里我们只描述在MATLAB中对三维模型检索的作用。

    perform_floyd_algorithm.m:实现Floyd算法求解最短路径。

      function D1 = perform_floyd_algorithm(D, verbose)

      参数说明:D——邻接矩阵,不同于dijkstra算法中的邻接矩阵,这里当顶点i到顶点j没有相连时,D(i,j)= Inf;

        verbose——设定是否显示滚动条的参数

      输出:D1——v*v的邻接矩阵,保存最短路径。

    以下是MATLAB代码:

    % perform a propagation on a 2D grid
    m = 20;
    [A,vertex] = gen_square_graph( m );
    n = size(A,1);

    % add little jitter to impose uniqueness
    A = A + A .* rand(n,n) * 0.01;

    for i = 1:size(A,1)
    for j = 1:size(A,2)
    if(A(i,j) == 0)
    A(i,j) = Inf;
    end
    end
    end

    D1 = perform_floyd_algorithm(A);

    相比于dijkstra算法,多了将D(i,j)== 0的顶点转换为inf。

  • 相关阅读:
    centos7安装pycharm
    centos7 mysql数据库安装
    删除MySQL服务
    计组第三章预习
    攻防世界web新手练习区
    原码补码预习
    第一次总结
    第三章预习
    数据结构十进制数表示
    预习原码补码
  • 原文地址:https://www.cnblogs.com/sipin/p/4361127.html
Copyright © 2011-2022 走看看