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。

  • 相关阅读:
    day15内置函数
    day14生成器进阶
    day13迭代器、生成器
    day12装饰器进阶
    day11装饰器
    day10函数进阶
    day9函数
    day8文件操作
    正则表达式
    初识递归
  • 原文地址:https://www.cnblogs.com/sipin/p/4361127.html
Copyright © 2011-2022 走看看