waeshall算法原理和实现
传递闭包Warshall方法简要介绍
① 在集合X上的二元关系R的传递闭包是包含R的X上的最小的传递关系。R的传递闭包在数字图像处理的图像和视觉基础、图的连通性描述等方面都是基本概念。一般用B表示定义在具有n个元素的集合X上关系R的n×n二值矩阵,则传递闭包的矩阵B+可如下计算: B+ = B + B2 + B3 + ……+ (B)n
② 式中矩阵运算时所有乘法都用逻辑与代替,所有加法都用逻辑或代替。上式中的操作次序为B,B(B),B(BB),B(BBB),……,所以在运算的每一步我们只需简单地把现有结果乘以B。
warshall算法的运算规则
其具体过程如下,设在n个元素的有限集上关系R的关系矩阵为M:
(1)置新矩阵A=M;
(2)置k=1;
(3)对所有i如果A[i,k]=1,则对j=1..n执行:
A[i,j]←A[i,j]∨A[k,j];
(4)k增1;
(5)如果k≤n,则转到步骤(3),否则停止。
所得的矩阵A即为关系R的传递闭包t(R)的关系矩阵。
warshall算法的实现
public class Warshall {
     static int[][] warshall={
             {0,1,1,0},
             {0,0,1,0},
             {0,0,0,1},
             {0,0,1,0}
     };
    public static void main(String[] args) {
        display(warshall);
        setWarshell(warshall);
        System.out.println("经过算法闭包之后输出");
        display(warshall);
    }
    //打印矩阵
    public static void display(int[][] warshall){
        for (int i = 0; i < warshall.length; i++) {
            for (int j=0;j<warshall.length;j++){
                System.out.print(warshall[i][j]+" ");
            }
            System.out.println();
        }
    }
    //warshall算法实现
    public static void setWarshell(int[][]warshall){
        for (int k = 0; k < warshall.length; k++) {
            for (int i = 0; i < warshall.length; i++) {
                for (int j = 0; j < warshall.length; j++) {
                    warshall[i][j]|=warshall[i][k]*warshall[k][j];
                }
            }
        }
    }
}
waeshall算法原理和实现的更多相关文章
- Bagging与随机森林算法原理小结
		在集成学习原理小结中,我们讲到了集成学习有两个流派,一个是boosting派系,它的特点是各个弱学习器之间有依赖关系.另一种是bagging流派,它的特点是各个弱学习器之间没有依赖关系,可以并行拟合. ... 
- RSA算法原理
		一直以来对linux中的ssh认证.SSL.TLS这些安全认证似懂非懂的.看到阮一峰博客中对RSA算法的原理做了非常详细的解释,看完之后茅塞顿开,关于RSA的相关文章如下 RSA算法原理(一) RSA ... 
- LruCache算法原理及实现
		LruCache算法原理及实现 LruCache算法原理 LRU为Least Recently Used的缩写,意思也就是近期最少使用算法.LruCache将LinkedHashMap的顺序设置为LR ... 
- MySQL索引背后的数据结构及算法原理【转】
		本文来自:张洋的MySQL索引背后的数据结构及算法原理 摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持 ... 
- OpenGL学习进程(13)第十课:基本图形的底层实现及算法原理
		本节介绍OpenGL中绘制直线.圆.椭圆,多边形的算法原理. (1)绘制任意方向(任意斜率)的直线: 1)中点画线法: 中点画线法的算法原理不做介绍,但这里用到最基本的画0<=k ... 
- 支持向量机原理(四)SMO算法原理
		支持向量机原理(一) 线性支持向量机 支持向量机原理(二) 线性支持向量机的软间隔最大化模型 支持向量机原理(三)线性不可分支持向量机与核函数 支持向量机原理(四)SMO算法原理 支持向量机原理(五) ... 
- 分布式缓存技术memcached学习(四)—— 一致性hash算法原理
		分布式一致性hash算法简介 当你看到“分布式一致性hash算法”这个词时,第一时间可能会问,什么是分布式,什么是一致性,hash又是什么.在分析分布式一致性hash算法原理之前,我们先来了解一下这几 ... 
- Logistic回归分类算法原理分析与代码实现
		前言 本文将介绍机器学习分类算法中的Logistic回归分类算法并给出伪代码,Python代码实现. (说明:从本文开始,将接触到最优化算法相关的学习.旨在将这些最优化的算法用于训练出一个非线性的函数 ... 
- GBDT算法原理深入解析
		GBDT算法原理深入解析 标签: 机器学习 集成学习 GBM GBDT XGBoost 梯度提升(Gradient boosting)是一种用于回归.分类和排序任务的机器学习技术,属于Boosting ... 
随机推荐
- 蒲公英 · JELLY技术周刊 Vol.25 · Webpack 5 正式发布,你学废了么
			蒲公英 · JELLY技术周刊 Vol.25 阔别两年,Webpack 5 正式发布了,不仅清理掉很多冗余的功能,同样也为我们带来了很多新鲜的能力,不论是默认开启的持久缓存,还是反病毒保护,亦或者被其 ... 
- DM9000裸机驱动程序设计
			对于任何一个硬件模块的设计,首先第一步都是要先了解硬件本身后,再开始程序的软件设计.而由于DM9000的芯片文档内容很多,要驱动好网卡,需要很长时间,特别对于新手比较困难,所以可以参考linux内核代 ... 
- day47 Pyhton 数据库Mysql 04
			# 表结构 # 建表 - 表的增加 # create table # 删表 - 表的删除 # drop table # 改表 - 表的修改 # alter table 表名 # rename 新表名 ... 
- C++ concurrent_queue
			ConcurrentQueue 用C++11提供的多线程类实现一个线程安全的队列: #include <queue> #include <mutex> #include < ... 
- centos8平台使用rz/sz上传下载文件
			一,rz/sz的用途 1,rz,sz是Linux/Unix服务器同客户端通过ZModem进行文件传输的命令行工具 说明:客户端需要使用支持ZModem的telnet/ssh客户端(比如windows平 ... 
- lumen 添加配置
			app同级目录新建config目录 添加配置文件 bootstrap/app.php里面加载 $app->configure('options');使用 $router->get('/', ... 
- 纯CSS+HTML自定义checkbox效果[转]
			<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ... 
- 第十一章  LNMP架构基础介绍
			一.LNMP架构 1.简介 oLNMP是一套技术的组合,L=Linux.N=Nginx.M~=MySQL.P~=PHP不仅仅包含这些,还有redis/ELK/zabbix/git/jenkins/ka ... 
- wifi - 无线相关命令
			1.Linux环境下的无线相关操作命令 interface 指代当前网卡 一般是 wifi0 , eth0 , ath1等 ifconfig - 常用查看网络设定及控制网卡(Windows下是ip ... 
- 企业级RPC框架zRPC
			近期比较火的开源项目go-zero是一个集成了各种工程实践的包含了Web和RPC协议的功能完善的微服务框架,今天我们就一起来分析一下其中的RPC部分zRPC. zRPC底层依赖gRPC,内置了服务注册 ... 
 
			
		