稀疏化相似矩阵并行分析及MapReduce并行实现

稀疏化相似矩阵并行分析及MapReduce并行实现
稀疏化相似矩阵并行分析及MapReduce并行实现

(2)基于Hadoop MapReduce并行优化算法性能:目前,基于Hadoop MapReduce并行计算近似谱聚类算法研究刚起步,国内外学者基于Hadoop MapReduce并行计算主要侧重于优化聚类算法性能,提高聚类算法的加速比与可扩展性,以解决不能求解海量算数据聚类问题。研究k-means聚类算法特点,为获得加速比与扩展性,利用MapReduce并行化后部署到Hadoop集群运行[50]与利用Hadoop集群Mapreduce编程模型实现k-means聚类算法降低大数据聚类的时间复杂度[51],以及利用Combine函数减少网络流量改进基于MapReduce传统的并行k-means聚类算法,用以分析和挖掘海量数据[52];Plaza等人[53]结合高光谱图像中空间和谱信息,在基于商业用途的集群上(包括高性能并行计算体系结构:欧洲巴塞罗那并行计算中心的分布式存储、多指令多数据的多机组等)并行化使用多信道波形变换的无监督技术提出并行数据分析策略;Lv Z等人[54]基于MapReduce并行编程模型并行k-means 聚类算法聚类远程传感图像。

文献[55]是该领域的理论专著,文献[56]和[57]分别是MapReduce并行大规模高维数据集研究的专著和最新的云计算分布式并行研究专著。目前,国内外基于Hadoop MapReduce并行聚类与谱聚类算法研究都处于刚起步状况,其发展趋势:向并行大规模高维数据的近似谱聚类方向发展。

第三节论文工作量及主要贡献

本文在确保谱聚类聚类质量(或准确性)的前提下,为聚类大规模高维数据,对k-means 聚类中心初始化位置选择、距离相似度近似法、相似矩阵稀疏化方法、拉普拉斯矩阵特征向量分解、k-means聚类算法以及Apache Hadoop系统MapReduce并行框架进行了深入研究,介绍了谱聚类算法及其近似法研究现状,此外,简单介绍了基于Hadoop MapReduce谱聚类的发展趋势,Hadoop MapReduce平台架构与编程模型等,并从以下三个方面开展了相关研究工作。

一、稀疏化相似矩阵并行分析及MapReduce并行实现

相似矩阵中元素直接决定谱图矩阵中元素的构成,因此影响谱聚类准确性。基于国内外研究现状及发展趋势,本文在前人研究基础上,提出一种新的相似矩阵优化法---使用稀疏化Euclidean距离矩阵并调整为对称矩阵后,对相似矩阵列向量的离群点进行优化,并在优化引理的前提下理论证明该方法最优解的存在,并说明其时间复杂度。论文使用该方法应用于构建相似矩阵并基于Hadoop集群系统下MapReduce并行编程框架,对上述优化后的稀疏相似矩阵进行并行算法设计与并行编程实现,在设计的过程中,分析Hadoop MapReduce并行前后稀疏化近似相似矩阵的时间复杂度,以及通过大规模高维数据实验验证所设计的Hadoop MapReduce并行算法加速比,使用实验结果阐述应用该方法的ASC并行后的性能。

二、特征向量分解并行分析及MapReduce并行实现

相对于聚类而言谱聚类必须对拉普拉斯矩阵进行特征向量分解,否则,得不到数据集的低阶表示,即维简约。谱聚类算法时间复杂度正是由于其特征分解过程所产生的。针对大规模数据集而言,从理论分析可得出:k-means聚类的时间杂度()相对于拉普拉斯矩阵特征向量分解几乎可忽略不计。因此,本文在前人研究基于MapReduce编程框架Tall and Skinny QR矩阵分解[58]的基础上对其进行修改,使其能够计算由近似相似矩阵求得的近似拉普拉斯近似矩阵的特征向量分解。并设计基于Hadoop集群系统下MapReduce并行编程框架的并行算法与并行编程实现,在设计的过程中,分析Hadoop MapReduce并行前后特征向量分解的时间复杂度,以及通过大规模高维数据实验验证所设计的Hadoop MapReduce并行算法加速比,使用实验结果阐述应用该设计的ASC并行后的性能。

三、k-means聚类算法并行分析及MapReduce并行实现

k-means聚类中心初始化位置决定其算法收敛时迭代次数,直接影响谱聚类计算时间。基于国内外研究现状及发展趋势,本文基于Hadoop集群系统下MapReduce并行编程框架对适合

聚类大规模数据集的粗糙集模型框架下基于数据密度Astrahan 的k-means聚类中心初始化位置选择方法进行算法时间复杂度及方法中迭代步骤之间依赖性进行分析,设计基于该方法的k-means聚类算法并行策略并编程实现。在设计的过程中,分析Hadoop MapReduce并行前后特征向量分解的时间复杂度,以及通过大规模高维数据集实验验证所设计的Hadoop MapReduce并行算法加速比,使用实验结果阐述应用该设计的ASC并行后的性能。在设计的过程中,分析Hadoop MapReduce并行前后k-means聚类算法的时间复杂度,以及通过大规模高维数据集实验验证所设计的Hadoop MapReduce并行算法加速比,使用实验结果阐述应用该设计的ASC并行后的性能。

论文基于Hadoop MapReduce谱聚类发展趋势文献综述,对Hadoop集群系统下MapReduce 并行编程框架下k-means聚类进行设计,以上述粗糙集模型框架下基于数据密度Astrahan 的k-means聚类中心初始化位置并行计算结果的分布式文件为其初始化中心位置,同时设计Combine函数减少网络通信,实现本地相同Map任务中同一key值归并的功能。论文分析该并行算法,并通过理论证明与并行算法加速比和可扩展性实验结果阐述并行化后该方法的性能。

第四节论文结构

第一章,绪论。阐述论文研究背景与意义;综述谱聚类算法及其近似法的研究现状及基于Hadoop MapReduce谱聚类发展趋势;并叙述论文研究的工作量及主要贡献。

第二章,Hadoop MapReduce技术框架概述与谱聚类近似法基本概念与理论分析。详细阐述分布式文件系统HDFS系统架构与MapReduce并行编程模型;探讨了谱聚类近似法基本概念理论,涉及近似谱聚类算法基本理论、k-means聚类中心初始化方法、谱聚类常用近似技术研究与特征向量分解。

第三章,近似谱聚类算法研究与设计。详细论述了近似谱聚类算法的设计思路,同时,证明了所提出的优化近似相似矩阵最优解的存在;描述了应用优化近似相似矩阵后谱聚类算法步骤;最后,通过小数据集的Matlab实验验证所提出的近似谱聚类算法的性能和与经典近似谱聚类的对比实验,以及与其它近似谱聚类算法的对比分析。

第四章,MapReduce并行计算近似谱聚类算法研究与设计。分析了Hadoop MapReduce并行算法设计理念及算法中迭代步骤的分解;根据分析结果,详细研究了稀疏化近似相似矩阵、基于MapReduce的拉普拉斯特征向量分解和k-means及其初始化聚类中心并行策略,及其Hadoop MapReduce并行编程框架下Mapper和Reducer阶段的设计(或Combiner阶段设计)。第五章,实验与结果评估分析。概述了实验的目的与设计;详细叙述了实验平台搭建和Hadoop MapReduce分布式环境配置;阐述了实验评估标准;描述了实验过程中所使用的大规模高维数据并进行了并行近似谱聚类算法的实验;本章最后,通过阐述的实验评估标准对基于Hadoop MapReduce近似谱聚类算法实验的聚类质量和加速比性能进行分析。

第六章,总结与展望。总结了论文主要研究内容与贡献,同时,指出论文基于Hadoop MapReduce并行近似谱聚类算法研究的不足之处;展望进一步工作与未来研究的发展趋势。第二章Hadoop MapReduce技术框架概述与谱聚类近似法基本概念与理论分析

第一节Hadoop MapReduce技术框架概述

Hadoop MapReduce是使用分布式文件系统HDFS执行MapReduce并行编程框架的开源软件,其基本架构由HDFS和MapReduce并行计算编程模型组成,数据以HDFS文件格式分布式存储在Hadoop集群系统中,是目前进行大规模数据分析主流技术框架[59]。HDFS主要负责分布式存储大规模海量数据;MapReduce则负责并行计算存储在Hadoop分布式文件系统中的分块数据。

一、分布式文件系统HDFS系统架构

(1)HDFS系统架构简介

HDFS分布式文件系统基础架构采用主从式,其设计灵感最初来自Google文件系统[60],旨在利用部署在廉价机器上Hadoop集群系统,可靠地分布式存储大规模数据文件且以流式读写为主,具有数据吞吐量访问的容错功能。如图2.1 HDFS系统基础架构图所示,HDFS系统架构主要组件包括NameNode、SecondNameNode、DataNode与JobClient,一个Hadoop 集群系统中只有一个NameNode节点与一定数目的DataNode节点。

图2.1 HDFS系统基础架构图

(2)NameNode、DataNode与SecondNameNode

JobClient(用户作业MapReduce应用程序,通常包括Map、Reduce和JobConf函数)通过负责管理文件系统的NameNode与负责数据存储的DataNode交互实现HDFS中分布式文件的访问。其中,NameNode配置在masters节点上,主要维护HDFS系统目录树和管理存储子系统控制单元(如图2.1所示的Block)的元数据信息,以及监控Hadoop集群中所有DataNode节点运行状态并根据配置文件备份失效DataNode节点上的数据文件;DataNode 配置在sladves节点上,主要负责分布式数据文件存储并通过周期性地向NameNode发送心跳包汇报其存储信息状态。SecondNameNode通常也配置在masters上,其设计目的是减少NameNode负载,主要负责合并HDFS中元数据镜像文件(fsimage)与HDFS中改动的日志文件(editlog)并将其最终结果传输给NameNode。

(3)HDFS容错性机制

HDFS通过冗余备份存放机制、心跳检验机制等容错性机制确保在故障条件下分布式文件存储的完整性与可靠性。Hadoop系统集群通过交换机通信部署在多个机架上。就带宽而言,显然,不同机架节点通信带宽小于机架内节点的通信带宽,且考虑到机架与节点的可靠性,冗余备份存放机制分别将副本存储在同一节点、机架内不同节点以及不同机架中;心跳检验机制是指DataNode定期向NameNode发送心跳包并汇报其存储状态(空闲、处理中、完成)。如果心跳包发生丢包现象,NameNode就标记DataNode宕机,NameNode不再向其发送访问请求且存储在宕机DataNode上的所有数据将被复制到其它节点。

二、MapReduce并行编程模型

(1)MapReduce简介

MapReduce是Hadoop MapReduce引擎在集群中分布式分配作业的关键算法[61]。MapReduce 诞生于搜索领域,由Google在2004年首次提出[62],主要解决搜索引擎抓取网页和索引过程中面临海量大规模数据文件存储需求和索引问题,以及数据计算能力与存储能力可扩展性差问题,因此,受到并行处理密集型数据计算和大规模高维数据分析领域青睐。MapReduce 并行计算存储在HDFS中的分布式数据文件,其并行编程模型采用主从式架构,其主要组件包括JobTracker、TaskTracker和Task(Map Task和Reduce Task),在MapReduce并行编程模型中只有一个JobTracker节点和一定数目的TaskTracker节点。

(2)Map和Reduce编程模型

MapReduce并行编程模型中,MapReduce应用程序JobClient包含若干Job(作业),每个Job 分解成一定数目的Map Task(任务)和Reduce Task。MapReduce基于对,Map Task阶段map函数映射输入分布式文件每行的key/value对(键/值)转换为输出key/value对,即:调用map函数后,其返回包含零个或多个中间值对,如下Map定义:

Map:

其中列表中对可以出现相同键值的不同对和不同键值的对两种情况。

Reduce Task阶段reduce对Map Task阶段输出列表中每个不同的键,合并后转换为输出列表对,即:调用reduce函数后,其返回包含零个或多个相同键的对,如下Reduce定义:Reduce:

(3)MapReduce并行编程模型流程

MapReduce编程模型易于编程,简化了数据输入分片、Hadoop集群节点间通信等并行分布式程序设计,优化了Hadoop集群磁盘损坏数据丢失、节点间通信失败、Map Task和Reduce Task失败等容错性能。其并行编程模型流程图如图2.2所示,其系统执行分成以下6个阶段。1)输入数据分片阶段:输入HDFS中的数据文件,根据Hadoop配置文件中Map Task数目平均自动分割成n个固定大小的分片后,再依据配置文件中副本配置数目向集群中创建n 个分片的副本;

2)Map Task阶段:若干maper并行遍历输入的n个split,迭代将其解析成对,调用MapReduce 应用程序定义的map函数后,返回若干个中间值对并缓存在本地内存中,其中间值称为partition,将传递给Shuffle/Combine阶段或Reduce Task阶段进行处理;

图2.2 MapReduce并行编程模型流程图

3)Shuffle/Combine阶段:Hadoop MapReduce为减少网络通信设计Shuffle/Combine阶段,预先迁移本地Map Task中相同key的,以避免遭遇繁重的数据密集型计算时所引起的网络通信不均衡负载。

4)排序阶段:为减少Reduce Task阶段reducer计算量,排序阶段对Shuffle/Combine阶段迁移后的中间值对进行分组,组间和组内分别按key、value升序排列;

5)Reduce Task阶段:若干reducer并行遍历排序后的中间值对分组,合并所有相同的列表,并将其结果返回给MapReduce应用程序中定义的reduce函数;

6)数据输出结果阶段:当Map Task阶段和Reduce Task阶段中maper和reducer结束后,MapReduce应用程序对所有reduce函数调用返回,其最终存储在HDFS中。

(4)MapReduce编程模型作业生命周期

图2.3给出MapReduce编程模型作业生命周期,涉及JobClient、JobTracker、TaskTracker、HDFS 4个实体和作业提交与初始化、任务调度与监控、任务执行环境、任务运行与任务完成5个步骤。

JobClient在作业生命周期作用:把MapReduce应用程序打jar包并存储到HDFS中,作业配置、作业路径提交与作业请求;

图2.3 MapReduce编程模型作业生命周期

JobTracker在作业生命周期作用:作业初始化、作业调度与作业监控;

TaskTracker在作业生命周期作用:Java虚拟机器JVM(Java Virtual Machine)启动、Map Task 与Reduce Task任务执行及资源隔离;

HDFS在作业生命周期作用:存储作业配置信息、MapReduce应用程序与待并行计算的分布式文件、作业运行输出结果等。

1)作业提交与初始化:JobClient把MapReduce应用程序打jar包并存储到HDFS中后,通过远程过程调用RPC(Remote Procedure Call)向JobTracker提出作业请求并告知其作业的提交路径与配置,由作业调度模块创建新的作业号并自动对作业进行初始化(①②③④⑤);2)任务调度与监控:MapReduce应用程序对应若干作业,每个作业被分解成若干个Map Task 和Reduc Task,JobTracker通过TaskTracker定期发送的心跳包判断DataNode节点信息状态,负责Map Task和Reduce Task运行速度及资源使用信息等监控和Tasktracker失败后任务调度(⑥⑦);

3)任务执行环境:TaskTracker负责准备作业任务运行环境及任务执行过程中资源隔离,它给所有Map Task和Reduce Task都启动独立的JVM,以避免其在运行过程中相互影响与Hadoop集群资源滥用(⑧⑨);

4)任务运行:任务执行环境准备好后,TaskTracker启动Map Task和Reduce Task(⑩);5)作业完成:所有Map Task和Reduce Task结束后,JobTracker把作业运行结果存储到HDFS 中并通知JobClient作业完成。

(5)MapReduce容错机制

Hadoop MapReduce相对于其它并行编程模型(如:消息传递接口MPI ( Message Passing Interface))具备计算迁移或者数据迁移等容错机制,因而提高了JobTracker和TaskTracker 容错性以及Job和Task容错等,虽然其不如MPI提供高性能互联通信,但Hadoop MapReduce 在处理大规模高维数据并行计算时其容错机制使其更胜一筹。

JobTracker和TaskTracker容错:JobTracker节点失败后作业运行时状态信息将全部丢失,JobClient必须再次提交未完成作业,造成Hadoop集群资源浪费,为此,Hadoop MapRedcue 采用设置断点的任务级别恢复机制,只把未完成任务恢复到尚未处理的断点处,而不再重新提交整个作业;TaskTracker失败主要是心跳包丢包、延迟等问题,JobTracker将会把其节点上尚未完成的Map Task和Reduce Task迁移到其它TaskTracker节点执行,造成reduce函数无法获取失败TaskTracker节点map函数中间结果,为此,Hadoop MapRedcue提出超时机制、灰名单与白名单机制等动态地调整Hadoop集群中TaskTracker数量优化MapReduce的并行计算能力。

Job和Task容错:当Hadoop MapRedcue处理大规模高维数据时,丢弃几乎可忽略不计的部分数据,不会影响最终结果的精确度与准确率,因此,MapReduce允许部分Task错误存在以确保Job成功运行完成,以提高Hadoop集群的容错性。

第二节谱聚类近似法基本概念

谱聚类是基于待聚类数据集的半正定相似矩阵特征向量的聚类。本节详细研究谱聚类近似法概念与理论,为方便阅读,现将本节出现的符号标记列表如下:

表2.1 本章使用的符号标记及其含义

符号标记含义描述符号标记含义描述

数据点数

Nystr?m低阶近似子矩阵抽样法样本点列数

数据维数

闵科夫斯基距离公式中数据属性数

最近邻数

数据点

待聚类数

对称半正定相似矩阵

Arnoldi迭代次数

拉普拉斯矩阵

k-means聚类迭代次数

无向图节点的度

特征求解中Arnoldi长度

近似谱聚类算法ASC致力于解决大规模高维数据对称半正定矩阵特征值与特征向量求解的

时间复杂度瓶颈问题,设半正定相似矩阵为表示数据点与的相似度,其高斯距离函数定义如下:

(2.1)

其中调和参数指控制与之间距离相似度伸缩比例,在算法设计中,为减少计算量,通常对进行稀疏化处理,针对相似图只保对留()有显著影响的强连接数据点,而忽略对其不影响或影响几乎可忽略不计的弱连接数据点,例如:Song Y等人在文献[46]采用方法对进行稀疏化处理。由公式(2.1)计算数据点标准化拉普拉斯矩阵,其常用的两种计算公式如下:

(2.2)

(2.2)式中表示构建用于求解相似矩阵最小特征向量的标准化拉普拉斯矩阵;表示构建用于求解相似矩阵最大特征向量的标准化拉普拉斯矩阵。其中度矩阵计算公式:,是对称半正定矩阵。考虑无向图(),定理对称半正定矩阵的推论也是对称半正定矩阵,其证明如下:

设无向图顶点集的子集,其指标向量的构建表示为:,则对于中每个顶点定义如下:证明:对于有

(2.3)

又是对称对角矩阵,则也是对称矩阵。故推论是对称半正定矩阵得证。

设待聚类数目为k,不同聚类的非零元素仅出现在对角块上,其形式如下:

Chen W Y等人在文献[47]指出对称半正定矩阵有k个最小非零特征特征量,则对应的特征向量矩阵定义如下:

(2.4)

其中是单位向量,,是单位矩阵。

则特征向量矩阵矩阵的标准化矩阵的定义如下:

(2.5)

则对的n行数据进行k-means聚类易得出k个聚类。对上述谱聚类算法时间复杂度分析,可得出:使用方法对进行稀疏化处理的计算时间是、空间复杂度是;计算数据点与相似度时间复杂度是,则构建整个整个数据集相似度矩阵时间复杂度是,使用方法稀疏化需迭代地重构最大堆,其时间复杂度是;计算的k个最小非零特征特征量的时间复杂度是:(其中),计算特征向量的时间复杂度是;Arnoldi每次迭代矩阵分解需步,且每步稠密矩阵的时间复杂度是、稀疏矩阵的时间复杂度是;执行k-means聚类的时间是:。综上所述,谱聚类聚类大规模高维数据将遇到计算瓶颈和内存使用瓶颈问题。

一、近似谱聚类算法基本理论

(1)近似谱聚类算法简介

ASC算法主要侧重于对谱聚类算法谱特征分解过程近似方法的研究,即研究距离相似度近似法和相似矩阵其稀疏化方法降低谱图矩阵特征分解的时间复杂度,最经典ASC算法距离相似度近似法和相似矩阵其稀疏化方法有稀疏化矩阵法和低阶子矩阵抽样法,前者最具代表性的有:基于(最近邻)的ASC算法和基于(最近邻)的ASC算法以及基于随机稀疏化法的ASC算法等;后者最具代表性的有:基于Nystr?m的ASC算法;基于列抽样的ASC 算法以及基于随机抽样、选择抽样和概率抽样的ASC算法[18]。

(2)图的标准化拉普拉斯矩阵性质

ASC算法谱特征分解近似方法研究距离相似度近似法和相似矩阵其稀疏化方法降低谱图矩阵特征分解的时间复杂度,即研究降低求解图的拉普拉斯矩阵特征值与特征向量的时间复杂度。

的非标准化定义公式如下:

(2.6)

的标准化定义公式如下:

或(2.7)

本文所有算法拉普拉斯矩阵标准化均使用(2.7)式中的公式,有上述证明结果(2.3)知:是对称半正定矩阵;设的特征值与特征向量分别是:和且满足,则的特征值和特征向量分别是:和;有n个半正定实特征值;考虑无向图,图的标准化拉普拉斯矩阵是图中连通分量的数目,即中特征值为0的个数,其特征空间由标识向量伸缩构成。

(3)近似谱聚类算法中相似度度量

ASC算法中相似度度量与谱聚类算法中相似度度量的区别是使用基于距离(Euclidean距离、Minkowski距离、Chebyshev距离等)或密度等相似度计算函数构建相似度矩阵后,再使用稀疏化技术方法,如、或设置阈值等,抛弃相似度矩阵中弱连接点,在尽量保留相似度矩阵中对聚类质量有显著影响数据点同时,试图减少中对聚类精确度和准确度影响几乎可忽略的非零元素数目,进而减少有其构建的矩阵中非零元素数目。

二、k-means聚类中心初始化研究

k-means初始化聚类中心位置选择决定公式(2.5)中中k个标准化最小非零特征特征量矩阵聚类成k组的迭代次数,由其时间复杂度可知,直接影响谱聚类算法的计算时间。本文基于参考文献[63]的研究结果,选用基于(最近邻)的k-means初始化聚类中心位置选择方法。该方法的思想步骤:通过闵可夫斯基距离(Minkowski Distance)函数计算与之间距离:

(其中,信息函数映射,(属性集)则)。标准化后计算中阈值:

对计算其内聚度:

(其中,,,),按递减方式排列数据点内聚度并选取最大内聚点为第一个初始数据中心位置,即:当满足时,被选作第一个初始化聚类中心,同时更新和,找到下一个使其满足。对于计算其耦合度(其中),遍历已排序数据点并选取与先前选中的第一个初始数据中心位置的耦合度小于的数据点为第个聚类初始数据中心位置(),即:如果,则,迭代上述过程,直至。

初始化k-means聚类中心位置选择方法的优势在于:其非常适合大规模高维数据集聚类中心位置选择;其次,确保k-means聚类初始化位置中心的唯一性,进而提高聚类的质量、降低产生非最佳聚类结果或空聚类的概率。

三、谱聚类常用近似技术研究与特征向量分解

本节研究稀疏化相似矩阵方法近似谱聚类相关技术。

谱聚类使用近似技术主要是减少相似矩阵内存使用和特征分解计算复杂度,本文主要研究用近似技术和Nystr?m低阶近似子矩阵抽样法。

稀疏化矩阵法:

稀疏化矩阵法是减少特征分解计算量较好的方法之一,其基本思想是:如果在的最近邻范围内,则连接与,按(2.1)计算其相似度;否则与之间无通路,即;最后,调整且或且的相似矩阵中的元素为且得到近似相似矩阵,将其应用于(2.7)即可得到近似的拉普拉斯矩阵。例如,取,则数据点是的最近邻,则其相似度是,而数据

点不在最近邻范围内,则得出与之间无通路。

图2.4 稀疏化矩阵法示例图

低阶近似子矩阵抽样法:Nystr?m子矩阵抽样法

Nystr?m低阶近似子矩阵抽样法适用于大规模高维数据集相似矩阵抽样,该方法不仅减少了特征分解计算量,而且降低了相似矩阵内存使用。其基本思想是:对相似矩阵进行抽样得到维数较低的子矩阵,用维数较低的子矩阵去尽可能地近似整个相似矩阵,进而近似实施特征分解。Nystr?m低阶近似子矩阵抽样法步骤如下:

按重新排列相似矩阵,其中,,,则当o远小于n时,的规模将会很大,该部分就是Nystr?m低阶近似子矩阵抽样法希望近似表示的。

设相似矩阵的第一个抽样的列:

(2.8)

计算相似矩阵的近似相似矩阵的公式如下:

(2.9)

把(2.9)应用于公式(2.7)可得近似的拉普拉斯矩阵如下:

(2.10)

针对(2.10)需要计算,而必须计算,即需要计算,其时间复杂度是,Fowlkes等人在文献[28]中在将Nystr?m低阶近似子矩阵抽样法应用于标准化割NCut(Normalized Cut)时,把计算的时间复杂度降到,其计算步骤如下:

(2.11)

(2.11)式中、、分别表示、、列向量,表示全1的列向量。则可重新表示如下:

其中:(且是半正定,证明参见参考文献[28]),依据与存在相同特征空间,因此,可通过特征分解计算的k个近似特征值与特征向量如下:

(2.12)

(2.12)式中的列向量并不是正交的,Fowlkes等人如下方法得到列向量正交的特征向量(证明参见参考文献[28])。

设(2.13)

则的特征分解如下:

则:

(2.14)

依据(2.14)可计算的第k个近似特征向量。按公式(2.5)可计算的标准化,则对的n 行数据进行k-means聚类易得出k个聚类。

第三章近似谱聚类算法研究与设计

第一节近似谱聚类算法研究

为避免存储大规模高维数据的相似矩阵而引起的内存使用瓶颈问题(例如:假设存储个双精度浮点数,则需要80G的内存),把稀疏化相似矩阵方法应用到谱聚类算法中的近似谱聚类算法研究近年来成为大规模高维数据谱聚类的研究热点。近似谱聚类算法使用相似矩阵稀疏化方法目的是摒弃相似矩阵中数据点之间存在弱连接关系,仅保留对聚类精确度和质量有显著影响的数据点之间的强连接关系,以减少相似矩阵中对聚类结果影响几乎可忽略不计的非零数据点的相似度以及特征分解的计算量。

首先,论文对近似谱聚类算法进行研究,按照是否维持矩阵的阶数不变,近似相似矩阵分为:

稀疏化近似相似矩阵(近似矩阵、近似矩阵、随机稀疏化近似矩阵等)和低阶近似子矩阵抽样近似相似矩阵(基于Nystr?m低阶子矩阵抽样近似矩阵、按列子矩阵抽样近似矩阵等)。最后,论文在前人研究的基础上提出一种新的基于相似矩阵稀疏化方法的扩展,并把该扩展方法应用于谱聚类算法,设计近似谱聚类算法。

第二节近似谱聚类算法设计与描述

一、近似谱聚类算法设计

研究基于稀疏相似矩阵方法后,发现其具有缺陷:由于最近邻参数是主观设置,因此存在把具有显著影响的强连接数据点摒弃(设置过大);扩大了稀疏化近似矩阵中离群点对聚类质量影响。基于上述分析,设置过大的情形,论文设计近似谱聚类算法基于提出一种新的基于相似矩阵稀疏化方法的扩展,即对近似相似矩阵稀疏化后离群点的优化处理,并把其应用于谱聚类算法。

近似谱聚类算法设计思路:首先,使用高斯函数公式构建数据集的半正定相似矩阵;其次,利用稀疏化相似矩阵方法处理得到近似相似矩阵,并对进行调整,把半正定近似相似矩阵调整成对称矩阵(由于可能存在数据点是的最近邻,但不是的最近邻);然后,对调整后的对称进行优化处理,稀疏化后的离群点以及丢失的具有显著影响的强连接数据点;最后,把优化处理后的近似相似矩阵应用于构建标准化拉普拉斯矩阵,接下来的步骤和第二章第二节所述(2.4)、(2.5)谱聚类的过程一样。

表3.1 本章使用的符号标记及其含义

符号标记含义描述符号标记含义描述

含离群点相似矩阵第列列向量

离群点相似度阈值

相似矩阵第列列向量

不全为零的线性组合系数

稀疏化后的第列离群点列向量

系数矩阵

对称半正定相似优化处理步骤:稀疏化后的离群点优化

稀疏化相似矩阵方法处理得到对称半正定近似相似矩阵,但是,该过程得到的第列列向量离群点对拉普拉斯矩阵特征分解的精确度产生干扰,进而影响近似谱聚类算法聚类的质量,论文基于此,对稀疏化后的离群点进行优化处理,使用范式约束进一步稀疏化离群点,降低离群点对近似谱聚类算法聚类的精确度的影响。

设相似矩阵第列列向量包含离群点,则

(3.1)

现对做出限定,向量仅含有少数离群点非零相似度值且。

由于对称半正定矩阵是实对称矩阵,所以其全部特征值非负、正惯性指数与秩相等,很明显第列列向量正惯性指数小于或等于中剩余列向量正惯性指数,故其秩也满足小于或等于关系,有向量线性表示相关结论得能由中剩余列向量线性表示。构造中第列列向量与第列列向量相似度线性表示:

(3.2)

则把(3.2)代入(3.1)得:

(3.2)

其中。

则含离群点近似相似矩阵矩阵表示:

(3.3)

其中,是线性表示系数矩阵且其对角线上元素为0,是稀疏化后离群点列向量矩阵。

由于范式约束产生较稀疏的解,具有特征选择功能,故对称半正定相似优化表示如下:

(3.4)

其中调和参数参考文献[63]Ehsan和René的设置,且(3.5)

下面对(3.4)存在最优解使得给出证明。在此,引入文献[63]中的优化引理如下:

优化引理:当时,,。

证明:设最优解为,参数表示近似相似矩阵中列向量元素的不全为零的线性组合系数;参数表示近似相似矩阵中向量含少数离群点的向量。

当时,

(3.6)

由向量模不等性质得:

(3.7)

由已知条件知:,为使用引理,不等式(3.7)两边同时乘以得:

由(3.5)与已知条件可知:

称半正定相似矩阵经过优化处理后丢失具有显著影响的强连接数据点。经过稀疏化相似矩阵方法处理得到对称半正定近似相似矩阵和优化处理步骤后,相似矩阵中具有对聚类精度有着显著的数据点相似度会被无意摒弃。由于时间与内容篇幅所限,论文不对丢失具有显著影响的强连接数据点进行深入研究,目前比较好的解决这一问题的方法,参见文献[63],本章第三节近似谱聚类Matlab辅助性实验基于该方法。

MapReduce海量数据并行处理总结

MapReduce海量数据并行处理 复习大纲 Ch. 1. 并行计算技术简介 1.为什么需要并行计算? 提高计算机性能有哪些基本技术手段 提高字长,流水线微体系结构技术,提高集成度,提升主频 迫切需要发展并行计算技术的主要原因 1)单处理器性能提升达到极限 2)爆炸性增长的大规模数据量 2)超大的计算量/计算复杂度 2.并行计算技术的分类 有哪些主要的并行计算分类方法? 1)按数据和指令处理结构:弗林(Flynn)分类 2)按并行类型

3)按存储访问构架 4)按系统类型 5)按计算特征 6)按并行程序设计模型/方法 1)按数据和指令处理结构:弗林(Flynn)分类 SISD:单指令单数据流 传统的单处理器串行处理 SIMD:单指令多数据流 向量机,信号处理系统 MISD:多指令单数据流 很少使用 MIMD:多指令多数据流 最常用,TOP500高性能计算机 基本都属于MIMD类型 2)按并行类型分类 位级并行(Bit-Level Parallelism) 指令级并行(ILP:Instruction-Level Parallelism) 线程级并行(Thread-Level Parallelism) 数据级并行:一个大的数据块划分为小块,分别由不同的处理器/线程处理 任务级并行:一个大的计算任务划分为子任务分别由不同的处理器/线程来处理 3)按存储访问结构分类 A.共享内存(Shared Memory) 所有处理器通过总线共享内存 多核处理器,SMP……

也称为UMA结构(Uniform Memory Access) B. 分布共享存储体系结构 各个处理器有本地存储器 同时再共享一个全局的存储器 C. 分布式内存(Distributed Memory) 各个处理器使用本地独立的存储器 B和C也统称为NUMA结构 (Non-Uniform Memory Access) 4)按系统类型分类 多核/众核并行计算系统MC(Multicore/Manycore) 或Chip-level multiprocessing, CMP 对称多处理系统SMP(Symmetric Multiprocessing) 多个相同类型处理器通过总线连接并共享存储器 大规模并行处理MPP(Massive Parallel Processing) 专用内联网连接一组处理器形成的一个计算系统 集群(Cluster) 网络连接的一组商品计算机构成的计算系统 网格(Grid) 用网络连接远距离分布的一组异构计算机构成的计算系统 5)按并行程序设计模型/方法分类 共享内存变量(Shared Memory Variables) 消息传递方式(Message Passing) MapReduce方式

用MATLAB求矩阵特征值

用matlab求矩阵的特征值和特征向量 我要计算的矩阵: 1 3 5 1/3 1 3 1/5 1/3 1 [v,d]=eig(A); A为你的矩阵,V为特征向量矩阵,D为特征值矩阵,然后对D求最大值即可得最大特征根! [V,D] = EIG(X) produces a diagonal matrix D of eigenvalues and a full matrix V whose columns are the corresponding eigenvectors so that X*V = V*D. V是特征向量,D是特征值 实例: 矩阵: 1 2/3 7/3 7/3 3/2 1 3/2 3/2 3/7 2/3 1 3/2 3/7 2/3 2/3 1 >> format rat >> A=[1 2/3 7/3 7/3 3/2 1 3/2 3/2 3/7 2/3 1 3/2 3/7 2/3 2/3 1] A = 1 2/3 7/3 7/3 3/2 1 3/2 3/2 3/7 2/3 1 3/2 3/7 2/3 2/3 1 >> [V,D]=eig(A)

V = 1793/2855 504/3235 - 146/235i 504/3235 + 146/235i 1990/4773 670/1079 -3527/5220 -3527/5220 -509/959 4350/11989 1160/4499 + 287/3868i 1160/4499 - 287/3868i -350/647 838/2819 181/3874 + 1179/4852i 181/3874 - 1179/4852i 1238/2467 D = 810/197 0 0 0 0 -93/4229 + 455/674i 0 0 0 0 -93/4229 - 455/674i 0 0 0 0 -149/2201 ***************************************************************************************** 如何归一化求权重呢? >> a=[1 3 5;1/3 1 3; 1/5 1/3 1] a = 1.0000 3.0000 5.0000 0.3333 1.0000 3.0000 0.2000 0.3333 1.0000 >> [V,D]=eig(a) V = 0.9161 0.9161 0.9161 0.3715 -0.1857 + 0.3217i -0.1857 - 0.3217i 0.1506 -0.0753 - 0.1304i -0.0753 + 0.1304i D =

判断矩阵的最大特征值

项目六 矩阵的特征值与特征向量 实验1 求矩阵的特征值与特征向量 实验目的 学习利用Mathematica(4.0以上版本)命令求方阵的特征值和特征向量;能利用软件计算方 阵的特征值和特征向量及求二次型的标准形. 求方阵的特征值与特征向量. 例1.1 (教材 例1.1) 求矩阵.031121201??? ?? ??--=A 的特征值与特值向量. (1) 求矩阵A 的特征值. 输入 A={{-1,0,2},{1,2,-1},{1,3,0}} MatrixForm[A] Eigenvalues[A] 则输出A 的特征值 {-1,1,1} (2) 求矩阵A 的特征向量. 输入 A={{-1,0,2},{1,2,-1},{1,3,0}} MatrixForm[A] Eigenvectors[A] 则输出 {{-3,1,0},{1,0,1},{0,0,0}} 即A 的特征向量为.101,013??? ? ? ??????? ??- (3) 利用命令Eigensystem 同时矩阵A 的所有特征值与特征向量. 输入 A={{-1,0,2},{1,2,-1},{1,3,0}} MatrixForm[A] Eigensystem[A] 则输出矩阵A 的特征值及其对应的特征向量.

例1.2 求矩阵??? ?? ??=654543432A 的特征值与特征向量. 输入 A=T able[i+j,{i,3},{j,3}] MatrixForm[A] (1) 计算矩阵A 的全部(准确解)特征值, 输入 Eigenvalues[A] 则输出 {0, 426-,426+} (2) 计算矩阵A 的全部(数值解)特征值, 输入 Eigenvalues[N[A]] 则输出 {12.4807, -0.480741, -1.34831610-?} (3) 计算矩阵A 的全部(准确解)特征向量, 输入 Eigenvectors[A]//MatrixForm 则输出 1 2 1172422344220342234421172 42234 42 20342234 42 1 (4) 计算矩阵A 的全部(数值解)特征向量, 输入 Eigenvectors[N[A]]//MatrixForm 则输出 0.4303620.5665420.7027220.805060.111190.5826790.4082480.816497 0.408248 (5) 同时计算矩阵A 的全部(准确解)特征值和特征向量, 输入 OutputForm[Eigensystem[A]] 则输出所求结果 (6) 计算同时矩阵A 的零空间, 输入

逆矩阵的几种常见求法

逆矩阵的几种常见求法 潘风岭 摘 要 本文给出了在矩阵可逆的条件下求逆矩阵的几种常见方法,并对每种方法做了具体的分析和评价,最后对几种方法进行了综合分析和比较. 关键词 初等矩阵; 可逆矩阵 ; 矩阵的秩; 伴随矩阵; 初等变换. 1. 相关知识 1.1 定义1 设A 是数域P 上的一个n 级方阵,如果存在P 上的一个n 级方阵B ,使得AB=BA=E,则称A 是可逆的,又称A 是B 的逆矩阵.当矩阵A 可逆时,逆矩阵由A 唯一确定,记为1-A . 定义2 设()ij n n A a ?=,由元素ij a 的代数余子式ij A 构成的矩阵 11 2111222212n n n n nn A A A A A A A A A ?? ? ? ? ??? 称为A 的伴随矩阵,记为A *. 伴随矩阵有以下重要性质 AA *= A *A=A E. 注:注意伴随矩阵中的元素ij A 的排列顺序. 1.2 哈密尔顿-凯莱定理

设A 是数域P 上的一个n n ?矩阵,f A λλ=E-()是A 的特征多项式, 则 11122()10n n n nn f A A a a a A A E -=-++ ++ +-=()() (证明参见[1]) . 1.3 矩阵A 可逆的充要条件 1.3.1 n 级矩阵A 可逆的充分必要条件是A 0≠(也即()rank A n =); 1.3.2 n 级矩阵A 可逆的充分必要条件是A 可写成一些初等矩阵的乘积(证明参见[1]); 1.3.3 n 级矩阵A 可逆的充分必要条件是A 可以通过初等变换(特别只通过初等行或列变换)化为n 级单位阵(证明参见[1]); 1.3.4 n 级矩阵A 可逆的充分必要条件是存在一个n 级方阵B ,使得AB=E (或BA=E ); 1.3.5 n 级矩阵A 可逆的充分必要条件是A 的n 个特征值全不为0;(证明参见[2]); 1.3.6 定理 对一个s n ?矩阵A 作一初等行变换就相当于在A 的左边乘上相应的s s ?初等矩阵;对A 作一初等列变换就相当于在A 的右边乘上相应的n n ?初等矩阵.(证明参见[1]) 2.矩阵的求逆 2.1 利用定义求逆矩阵 对于n 级方阵A ,若存在n 级方阵B ,使AB=BA=E ,则1B A -=.

并行计算-实验二-矩阵乘法的OpenMP实现及性能分析

深圳大学 实验报告 课程名称:并行计算 实验名称:矩阵乘法的OpenMP实现及性能分析姓名: 学号: 班级: 实验日期:2011年10月21日、11月4日

一. 实验目的 1) 用OpenMP 实现最基本的数值算法“矩阵乘法” 2) 掌握for 编译制导语句 3) 对并行程序进行简单的性能 二. 实验环境 1) 硬件环境:32核CPU 、32G 存计算机; 2) 软件环境:Linux 、Win2003、GCC 、MPICH 、VS2008; 4) Windows 登录方式:通过远程桌面连接192.168.150.197,用户名和初始密码都是自己的学号。 三. 实验容 1. 用OpenMP 编写两个n 阶的方阵a 和b 的相乘程序,结果存放在方阵c 中,其中乘法用for 编译制导语句实现并行化操作,并调节for 编译制导中schedule 的参数,使得执行时间最短,写出代码。 方阵a 和b 的初始值如下: ????????? ? ??????????-++++=12,...,2,1,..2,...,5,4,31,...,4,3,2,...,3,2,1n n n n n n n a ???????? ? ???????????= 1,...,1,1,1..1,...,1,1,11,...,1,1,11,..., 1,1,1b 输入: 方阵的阶n 、并行域的线程数 输出: c 中所有元素之和、程序的执行时间 提示: a,b,c 的元素定义为int 型,c 中所有元素之各定义为long long 型。 Windows 计时: 用中的clock_t clock( void )函数得到当前程序执行的时间 Linux 计时: #include

矩阵特征值求解

矩阵特征值求解的分值算法 12组 1.1 矩阵计算的基本问题 (1)求解线性方程组的问题.即给定一个n 阶非奇异矩阵A 和n 维向量b ,求一个n 维向量x ,使得 b Ax = (1.1.1) (2)线性最小二乘问题,即给定一个n m ?阶矩阵A 和m 维向量b ,求一个n 维向量 x ,使得 },min{n R y b Ay b Ax ∈-=- (1.1.2) (3)矩阵的特征问题,即给定一个n 阶实(复)矩阵A ,求它的部分或全部特征值以及对应的特征向量,也就是求解方程 x Ax λ= (1.1.3) 一对解(λ,x ),其中)(),(n n C R x C R ∈∈λ,即λ为矩阵A 的特征值,x 为矩阵 A 的属于特征值λ的特征向量。 在工程上,矩阵的特征值具有广泛的应用,如大型桥梁或建筑物的振动问题:机械和机件的振动问题;飞机机翼的颤振问题;无线电电子学及光学系统的电磁振动问题;调节系统的自振问题以及声学和超声学系统的振动问题.又如天文、地震、信息系统、经济学中的一些问题都与矩阵的特征值问题密切相关。 在科学上,计算流体力学、统计计算、量子力学、化学工程和网络排队的马尔可夫链模拟等实际问题,最后也都要归结为矩阵的特征值问题.由于特征值问题在许多科学和工程领域中具有广泛的应用,因此对矩阵的特征值问题的求解理论研究算法的开发软件的制作等是当今计算数学和科学与工程计算研究领域的重大课题,国际上这方面的研究工作十分活跃。 1.2 矩阵的特征值问题研究现状及算法概述 对一个n n ?阶实(复)矩阵A,它的特征值问题,即求方程(I.1.3)式的非平凡解,是数值线性代数的一个中心问题.这一问题的内在非线性给计算特征值带来许多计算问题.为了求(l.1.3)式中的λ,一个简单的想法就是显式地求解特征方程 0)det(=-I A λ (1.2.1) 除非对于个别的特殊矩阵,由于特征方程的系数不能够用稳定的数值方法由行列式的计算来求得,既使能精确计算出特征方程的系数,在有限精度下,其特征多项式)det()(I A f λλ-=的根可能对多项式的系数非常敏感.因此,这个方法只能在理论上是有意义的,实际计算中对一般矩阵是不可行的.首先,若矩阵A 的阶数较大,则行列式)det(I A λ-的计算量将非常大;其次,根据Galois 理论,对于次数大于四的多项式求根不存在一种通用的方法,基于上述原因,人们只能寻求其它途径.因此,如何有效地!精确地求解矩阵特征值问题,就成为数值线性代数领

求矩阵特征值算法及程序

求矩阵特征值算法及程序简介 1.幂法 1、幂法规范化算法 (1)输入矩阵A 、初始向量)0(μ ,误差eps ; (2)1?k ; (3)计算)1()(-?k k A V μ; (4))max (,) max ()1(1)(--??k k k k V m V m ; (5)k k k m V /)()(?μ; (6)如果eps m m k k <--1,则显示特征值1λ和对应的特征向量)1(x ),终止; (7)1+?k k ,转(3) 注:如上算法中的符号)max(V 表示取向量V 中绝对值最大的分量。本算法使用了数据规范化处理技术以防止计算过程中出现益出错误。 2、规范化幂法程序 Clear[a,u,x]; a=Input["系数矩阵A="]; u=Input["初始迭代向量u(0)="]; n=Length[u]; eps=Input["误差精度eps ="]; nmax=Input["迭代允许最大次数nmax="]; fmax[x_]:=Module[{m=0,m1,m2}, Do[m1=Abs[x[[k]]]; If[m1>m,m2=x[[k]];m=m1], {k,1,Length[x]}]; m2] v=a.u; m0=fmax[u]; m1=fmax[v]; t=Abs[m1-m0]//N; k=0; While[t>eps&&k

m0=m1; m1=fmax[v]; t=Abs[m1-m0]//N; Print["k=",k," 特征值=",N[m1,10]," 误差=",N[t,10]]; Print[" 特征向量=",N[u,10]]]; If[k ≥nmax,Print["迭代超限"]] 说明:本程序用于求矩阵A 按模最大的特征值及其相应特征向量。程序执行后,先通过键盘输入矩阵A 、迭代初值向量)0(μ、精度控制eps 和迭代允许最大次数max n ,程序即可给出每次迭代的次数和对应的迭代特征值、特征向量及误差序列,它们都按10位有效数输出。其中最后输出的结果即为所求的特征值和特征向量序列。如果迭代超出max n 次还没有求出满足精度的根则输出迭代超限提示,此时可以根据输出序列判别收敛情况。 程序中变量说明 a:存放矩阵A ; u:初始向量)0(μ和迭代过程中的向量)(k μ及所求特征向量; v:存放迭代过程中的向量)(k V ; m1:存放所求特征值和迭代过程中的近似特征值; nmax:存放迭代允许的最大次数; eps:存放误差精度; fmax[x]: 给出向量x 中绝对值最大的分量; k:记录迭代次数; t1:临时变量; 注:迭代最大次数可以修改为其他数字。 3、例题与实验 例1. 用幂法求矩阵???? ? ??---=9068846544 1356133A 的按模最大的特征值及其相应特征向量,要求误差410-

并行计算-矩阵特征值计算 -

9 矩阵特征值计算 在实际的工程计算中,经常会遇到求n 阶方阵 A 的特征值(Eigenvalue)与特征向量(Eigenvector)的问题。对于一个方阵A,如果数值λ使方程组 Ax=λx 即(A-λI n )x=0 有非零解向量(Solution Vector)x,则称λ为方阵A的特征值,而非零向量x为特征值λ所对应的特征向量,其中I n 为n阶单位矩阵。 由于根据定义直接求矩阵特征值的过程比较复杂,因此在实际计算中,往往采取一些数值方法。本章主要介绍求一般方阵绝对值最大的特征值的乘幂(Power)法、求对称方阵特征值的雅可比法和单侧旋转(One-side Rotation)法以及求一般矩阵全部特征值的QR 方法及一些相关的并行算法。 1.1 求解矩阵最大特征值的乘幂法 1.1.1 乘幂法及其串行算法 在许多实际问题中,只需要计算绝对值最大的特征值,而并不需要求矩阵的全部特征值。乘幂法是一种求矩阵绝对值最大的特征值的方法。记实方阵A的n个特征值为λi i=(1,2, …,n),且满足: │λ1 │≥│λ2 │≥│λ3 │≥…≥│λn │ 特征值λi 对应的特征向量为x i 。乘幂法的做法是:①取n维非零向量v0 作为初始向量;②对于 k=1,2, …,做如下迭代: 直至u k+1 ∞ - u k u k =Av k-1 v k = u k /║u k ║∞ <ε为止,这时v k+1 就是A的绝对值最大的特征值λ1 所对应的特征向∞ 量x1 。若v k-1 与v k 的各个分量同号且成比例,则λ1 =║u k ║∞;若v k-1 与v k 的各个分量异号且成比例,则λ1 = -║u k ║∞。若各取一次乘法和加法运算时间、一次除法运算时间、一次比较运算时间为一个单位时间,则因为一轮计算要做一次矩阵向量相乘、一次求最大元操作和一次规格化操作,所以下述乘幂法串行算法21.1 的一轮计算时间为n2+2n=O(n2 )。 算法21.1 单处理器上乘幂法求解矩阵最大特征值的算法 输入:系数矩阵A n×n ,初始向量v n×1 ,ε 输出:最大的特征值m ax Begin while (│diff│>ε) do (1)for i=1 to n do (1.1)sum=0 (1.2)for j= 1 to n do sum=sum+a[i,j]*x[j] end for

幂法求矩阵最大特征值

幂法求矩阵最大特征值 摘要 在物理、力学和工程技术中的很多问题在数学上都归结为求矩阵特征值的问题,而在某些工程、物理问题中,通常只需要求出矩阵的最大的特征值(即主特征值)和相应的特征向量,对于解这种特征值问题,运用幂法则可以有效的解决这个问题。 幂法是一种计算实矩阵A的最大特征值的一种迭代法,它最大的优点是方法简单。对于稀疏矩阵较合适,但有时收敛速度很慢。 用java来编写算法。这个程序主要分成了三个大部分:第一部分为将矩阵转化为线性方程组;第二部分为求特征向量的极大值;第三部分为求幂法函数块。其基本流程为幂法函数块通过调用将矩阵转化为线性方程组的方法,再经过一系列的验证和迭代得到结果。 关键词:幂法;矩阵最大特征值;j ava;迭代

POWER METHOD TO CALCULATE THE MAXIMUM EIGENV ALUE MATRIX ABSTRACT In physics, mechanics and engineering technology of a lot of problems in math boil down to matrix eigenvalue problem, and in some engineering, physical problems, usually only the largest eigenvalue of the matrix (i.e., the main characteristics of the value) and the corresponding eigenvectors, the eigenvalue problem for solution, using the power law can effectively solve the problem. Power method is A kind of computing the largest eigenvalue of real matrix A of an iterative method, its biggest advantage is simple.For sparse matrix is right, but sometimes very slow convergence speed. Using Java to write algorithms.This program is mainly divided into three most: the first part for matrix can be converted to linear equations;The second part is the eigenvector of the maximum;The third part is the exponentiation method of function block.Its basic process as a power law function block by calling the method of matrix can be converted to linear equations, then after a series of validation and iteration to get the results. Key words: Power method; Matrix eigenvalue; Java; The iteration

并行计算矩阵分块乘法

目录 一、题目及要求 (1) 1、题目 (1) 2、要求 (1) 二、设计算法、算法原理 (1) 三、算法描述、设计流程 (2) 3.1算法描述 (2) 3.2设计流程 (4) 四、源程序代码及运行结果 (6) 1、超立方 (6) 1.1超立方的源程序代码 (6) 1.2运行结果 (11) 2、网孔连接 (11) 2.1源程序代码 (11) 2.2运行结果 (18) 3、在数学软件中的计算结果 (19) 五、算法分析、优缺点 (19) 1、简单的并行分块乘法的过程为 (19) 2、使用Cannon算法时的算法分析 (20) 3、算法的优缺点 (21) 六、总结 (22) 参考文献 (23)

一、题目及要求 1、题目 简单并行分块乘法:(1)情形1: 超立方连接;(2)情形2:二维环绕网孔连接 已知,177511195310135411274329,7563895712314 2120143321 ?????? ? ??----=??????? ??----=B A 求B A C ?=。 2、要求 (1)题目分析、查阅与题目相关的资料; (2)设计算法; (3)算法实现、代码编写; (4)结果分析和性能分析与改进; (5)论文撰写、答辩; 二、设计算法、算法原理 要考虑的计算问题是C=AB,其中A 与B 分别是n n ?矩阵。 ①A 、B 和C 分成p p p ?=的方块阵ij A ,ij B 和ij C ,大小均为p n p n ? ,p 个处理器编号为1 ,1, (1) 0,....,0,0---p p p p p p , ij P 存放ij A ,ij B 和ij C 。 ②通讯:每行处理器进行A 矩阵块的多到多播送(得到ik A , k=0~1-p ) 每列处理器进行B 矩阵块的多到多播送(得到kj B , k=0~ 1-p ) ③乘-加运算: ij P 做kj p k ik ij B A C ∑-== 1

矩阵特征值的意义

矩阵特征值的意义 数学里面的特征值和特征矩阵到底有什么用,它的物理意义在于什么?? 矩阵的特征值要想说清楚还要从线性变换入手,把一个矩阵当作一个线性变换在某一组基下的矩阵,最简单的线性变换就是数乘变换,求特征值的目的就是看看一个线性变换对一些非零向量的作用是否能够相当于一个数乘变换,特征值就是这个数乘变换的变换比,这样的一些非零向量就是特征向量,其实我们更关心的是特征向量,希望能把原先的线性空间分解成一些和特征向量相关的子空间的直和,这样我们的研究就可以分别限定在这些子空间上来进行,这和物理中在研究运动的时候将运动分解成水平方向和垂直方向的做法是一个道理! 特征值时针对方阵而言的。 两个向量只有维数相同时才能考虑相等的问题,才能有和、有差。 引入特征值与特征向量的概念 ? 引例 在一个n 输入n 输出的线性系统y=Ax 中,其中 ? 我们可发现系统A 对于某些输入x ,其输出y ? 恰巧是输入x 的 倍,即 ;对某些输入,其输出与输入就不存在这种按比例放大的关系。 ??????? ??=??????? ??=??????? ??=n n nn n n n n y y y y x x x x a a a a a a a a a A M M L L L L L L L 2121212222111211,,λx y λ=

? 例如,对系统 ,若输入 ? 则 ? ? 若输入 ,则 ? 所以,给定一个线性系统A ,到底对哪些输入,能使其输出按比例放大,放大倍数 等于多少?这显然是控制论中感兴趣的问题。 基于此给出特征值与特征向量的概念: ? 定义 设A 是一个n 阶方阵,若存在着一个数 和一个非零n 维向量x ,使得 则称 是方阵A 的特征值,非零向量x 称为A 对应于特征值 的特征向量,或简称为A 的特征向量 ???? ??=4312A ? ?? ? ??=31x x Ax y 5315155314312=???? ??=???? ??=???? ?????? ??==???? ??=52x x Ax y λ≠???? ??=???? ?????? ??==269524312λx Ax λ=λλ

矩阵的特征值和特征向量

第五章矩阵的特征值和特征向量 来源:线性代数精品课程组作者:线性代数精品课程组 1.教学目的和要求: (1) 理解矩阵的特征值和特征向量的概念及性质,会求矩阵的特征值和特征向量. (2) 了解相似矩阵的概念、性质及矩阵可相似对角化的充分必要条件,会将矩阵化为相似对 角矩阵. (3) 了解实对称矩阵的特征值和特征向量的性质. 2.教学重点: (1) 会求矩阵的特征值与特征向量. (2) 会将矩阵化为相似对角矩阵. 3.教学难点:将矩阵化为相似对角矩阵. 4.教学内容: 本章将介绍矩阵的特征值、特征向量及相似矩阵等概念,在此基础上讨论矩阵的对角化问题. §1矩阵的特征值和特征向量 定义1设是一个阶方阵,是一个数,如果方程 (1) 存在非零解向量,则称为的一个特征值,相应的非零解向量称为属于特征值的特 征向量. (1)式也可写成, (2) 这是个未知数个方程的齐次线性方程组,它有非零解的充分必要条件是系数行列式 , (3) 即 上式是以为未知数的一元次方程,称为方阵的特征方程.其左端是的 次多项式,记作,称为方阵的特征多项式.

== = 显然,的特征值就是特征方程的解.特征方程在复数范围内恒有解,其个数为方程的次数(重根按重数计算),因此,阶矩阵有个特征值. 设阶矩阵的特征值为由多项式的根与系数之间的关系,不难证明 (ⅰ) (ⅱ) 若为的一个特征值,则一定是方程的根, 因此又称特征根,若为 方程的重根,则称为的重特征根.方程的每一个非 零解向量都是相应于的特征向量,于是我们可以得到求矩阵的全部特征值和特征向量的方法如下: 第一步:计算的特征多项式; 第二步:求出特征方程的全部根,即为的全部特征值; 第三步:对于的每一个特征值,求出齐次线性方程组: 的一个基础解系,则的属于特征值的全部特征向量是 (其中是不全为零的任意实数). 例1 求的特征值和特征向量. 解的特征多项式为 =

求逆矩阵的方法

求逆矩阵的方法与矩阵的秩 一、矩阵的初等行变换 (由定理2.4给出的求逆矩阵的伴随矩阵法,要求计算矩阵A 的行列式A 值和它的伴随矩阵*A .当A 的阶数较高时,它的计算量是很大的,因此用伴随矩阵法求逆矩阵是不方便的.下面介绍利用矩阵初等行变换求逆矩阵的方法.在介绍这种方法之前,先给出矩阵初等行变换的定义.) 定义2.13 矩阵的初等行变换是指对矩阵进行下列三种变换: (1) 将矩阵中某两行对换位置; (2) 将某一行遍乘一个非零常数k ; (3) 将矩阵的某一行遍乘一个常数k 加至另一行. 并称(1)为对换变换,称(2)为倍乘变换,称(3)为倍加变换. 矩阵A 经过初等行变换后变为B ,用 A →B 表示,并称矩阵B 与A 是等价的. (下面我们把)第i 行和第j , ”;把第i 行遍乘k k ”;第j 行的k 倍加至第i 为“ + k ”. 例如,矩阵 A = ????? ?????321321321c c c b b b a a a ???? ? ?????321 3 21321 c c c a a a b b b ???? ??????32 1 321321c c c b b b a a a ???? ? ?????32 1321321 kc kc kc b b b a a a ???? ? ?????32 1 321321 c c c b b b a a a ??? ? ? ??? ??+++32 1 332 2113 21 c c c ka b ka b ka b a a a (关于初等矩阵内容请大家自己阅读教材) 二、运用初等行变换求逆矩阵 由定理2.7的推论“任何非奇异矩阵均能经过初等行变换化为单位阵”可知,对于任意一个n 阶可逆矩阵A ,经过一系列的初等行变换可以化为单位阵I ,那么用一系列同样的初等行变换作用到单位阵I 上,就可以把I 化成A -1.因此,我们得到用初等行变换求逆矩阵的方法:在矩阵A 的右边写上一个同阶的单位矩阵I ,构成一个n ?2n 矩阵 ( A , I ),用初等行变换将左半部分的A 化成单位矩阵I ,与此同时,右半部分的I 就被化成了1-A .即 ( A , I )初等行变换 ?→???( I , A -1 ) 例1 设矩阵 A = ???? ? ?????--23 2 311111 ③k ①,② ②+①k

MapReduce实验报告

硕士研究生实践报告 题目 作者姓名 作者学号 指导教师 学科专业 所在学院 提交日期 一题目要求 我们的项目背景是,可穿戴设备的实时数据分析。1.txt记录的是某一个用户的心跳周期数据,每一个数值表示一次心跳的周期,单位是秒。例如,0.8表示用户当时的心跳间隙是0.8秒。心跳间期按照顺序存储。 1.利用Hadoop的MapReduce框架编写程序,计算出总测量时间和平均心跳间期,即求和 与求平均。请写出程序,并在实验报告中简单描述你的思路。 2.探索Spark的Transformation中的mapPartition,写出示例程序,并思考何时会用到 mapPartition,为什么要用它? 3.探索Spark的Transformation中的flatMap,写出示例程序,并思考何时会用到它,为什 么要用到它。 4.(选做)SD1和SD2是表征心率变异性的一种指标。结合发给你们的论文,用Java或 者Scala实现SD1和SD2的计算(不用考虑并行化,普通的Java或Scala程序即可)。(选做)假设我们同时监控100个用户的心率,是否能够利用Spark的RDD的特性,并行地计算SD1和SD2?(提示:把每一个用户的心率数据作为RDD里面的一个元素,RDD中不同的元素表示不同用户的心率数据,利用map对每一个用户的心率数据进行并行分析)。请描述设计思路,并尽可能实现一个多用户心率监控的计算程序。 二题目实现 第一题: 本题就是利用Hadoop的MapReduce框架编写程序,计算出总测量时间和平均心跳间期,即求和与求平均,程序代码如下: package ; import ; import ; import ; import ;

(完整版)逆矩阵的几种求法与解析(很全很经典)

逆矩阵的几种求法与解析 矩阵是线性代数的主要内容,很多实际问题用矩阵的思想去解既简单又快捷.逆矩阵又是矩阵理论的很重要的内容, 逆矩阵的求法自然也就成为线性代数研究的主要内容之一.本文将给出几种求逆矩阵的方法. 1.利用定义求逆矩阵 定义: 设A 、B 都是n 阶方阵, 如果存在n 阶方阵B 使得AB= BA = E, 则称A 为可逆矩阵, 而称B 为A 的逆矩阵.下面举例说明这种方法的应用. 例1 求证: 如果方阵A 满足A k= 0, 那么EA 是可逆矩阵, 且 (E-A )1-= E + A + A 2+…+A 1-K 证明 因为E 与A 可以交换, 所以 (E- A )(E+A + A 2+…+ A 1-K )= E-A K , 因A K = 0 ,于是得 (E-A)(E+A+A 2+…+A 1-K )=E , 同理可得(E + A + A 2+…+A 1-K )(E-A)=E , 因此E-A 是可逆矩阵,且 (E-A)1-= E + A + A 2+…+A 1-K . 同理可以证明(E+ A)也可逆,且 (E+ A)1-= E -A + A 2+…+(-1)1-K A 1-K . 由此可知, 只要满足A K =0,就可以利用此题求出一类矩阵E ±A 的逆矩阵. 例2 设 A =? ? ?? ? ???? ???0000 30000020 0010,求 E-A 的逆矩阵. 分析 由于A 中有许多元素为零, 考虑A K 是否为零矩阵, 若为零矩阵, 则可以采用例2 的方法求E-A 的逆矩阵. 解 容易验证

A 2 =????????? ???0000000060000200, A 3=? ? ?? ? ? ? ?? ???00000000 00006000 , A 4=0 而 (E-A)(E+A+ A 2+ A 3)=E,所以 (E-A)1-= E+A+ A 2+ A 3= ? ? ?? ? ???????1000 31006210 6211. 2.初等变换法 求元素为具体数字的矩阵的逆矩阵,常用初等变换法.如果A 可逆,则A 可通过初等变换,化为单位矩阵I ,即存在初等矩阵S P P P ,,21Λ使 (1)s p p p Λ21A=I ,用A 1-右乘上式两端,得: (2) s p p p Λ21I= A 1- 比较(1)(2)两式,可以看到当A 通过初等变换化为单位矩阵的同时,对单位矩阵I 作同样的初等变换,就化为A 的逆矩阵A 1-. 用矩阵表示(A I )??? →?初等行变换 为(I A 1-),就是求逆矩阵的初等行变换法,它是实际应用中比较简单的一种方法.需要注意的是,在作初等变换时只允许作行初等变换.同样,只用列初等变换也可以求逆矩阵. 例1 求矩阵A 的逆矩阵.已知A=???? ? ?????521310132. 解 [A I]→??????????100521010310001132→???? ? ?????001132010310100521 → ??????????--3/16/16/1100010310100521→???? ??????-----3/16/16/110012/32/10103/46/136/1001

MapReduce源码分析完整版

一MapReduce概述 Map/Reduce是一个用于大规模数据处理的分布式计算模型,它最初是由Google工程师设计并实现的,Google已经将它完整的MapReduce论文公开发布了。其中对它的定义是,Map/Reduce是一个编程模型(programming model),是一个用于处理和生成大规模数据集(processing and generating large data sets)的相关的实现。用户定义一个map函数来处理一个key/value对以生成一批中间的key/value对,再定义一个reduce函数将所有这些中间的有着相同key的values合并起来。很多现实世界中的任务都可用这个模型来表达。 二MapReduce工作原理 1 Map-Reduce Map-Reduce框架的运作完全基于对,即数据的输入是一批对,生成的结果也是一批对,只是有时候它们的类型不一样而已。Key和value的类由于需要支持被序列化(serialize)操作,所以它们必须要实现Writable接口,而且key的类还必须实现WritableComparable接口,使得可以让框架对数据集的执行排序操作。 一个Map-Reduce任务的执行过程以及数据输入输出的类型如下所示: Map: ——> list Reduce:> ——> 2例子 下面通过一个的例子来详细说明这个过程。WordCount是Hadoop自带的一个例子,目标是统计文本文件中单词的个数。假设有如下的两个文本文件来运行WorkCount程序:Hello World Bye World Hello Hadoop GoodBye Hadoop 2.1 map数据输入 Hadoop针对文本文件缺省使用LineRecordReader类来实现读取,一行一个key/value对,key取偏移量,value为行内容。 如下是map1的输入数据: Key1 Value1 0 Hello World Bye World 如下是map2的输入数据: Key1Value1 0 Hello Hadoop GoodBye Hadoop 2.2 map输出/combine输入 如下是map1的输出结果

矩阵求逆方法大全-1

求逆矩阵的若干方法和举例 苏红杏 广西民院计信学院00数本(二)班 [摘 要] 本文详细给出了求逆矩阵的若干方法并给出相应的例子,以供学习有关矩阵方面 的读者参考。 [关键词] 逆矩阵 初等矩阵 伴随矩阵 对角矩阵 矩阵分块 多项式等 引 言 在我们学习《高等代数》时,求一个矩阵的逆矩阵是一个令人十分头痛的问题。但是,在研究矩阵及在以后学习有关数学知识时,求逆矩阵又是一个必不可缺少的知识点。为此,我介绍下面几种求逆矩阵的方法,供大家参考。 定义: n 阶矩阵A 为可逆,如果存在n 阶矩阵B ,使得E BA AB ==,这里E 是n 阶单位矩阵,此时,B 就称为A 的逆矩阵,记为1-A ,即:1-=A B 方法 一. 初等变换法(加边法) 我们知道,n 阶矩阵A 为可逆的充分必要条件是它能表示成一系列初等矩阵的乘积A=m Q Q Q 21, 从而推出可逆矩阵可以经过一系列初等行变换化成单位矩阵。即,必有一系列初等矩阵 m Q Q Q 21使 E A Q Q Q m m =-11 (1) 则1-A =E A Q Q Q m m =-11 (2) 把A ,E 这两个n 阶矩阵凑在一起,做成一个n*2n 阶矩阵(A ,E ),按矩阵的分块乘法,(1)(2)可以合并写成 11Q Q Q m m -(A ,E )=(11Q Q Q m m -,A ,E Q Q Q m m 11 -)=(E ,1-A ) (3) 这样就可以求出矩阵A 的逆矩阵1-A 。 例 1 . 设A= ???? ? ??-012411210 求1-A 。 解:由(3)式初等行变换逐步得到: ????? ??-100012010411001210→ ????? ??-100012001210010411 →???? ? ??----123200124010112001→

矩阵特征值的运算性质及推广

矩阵特征值的运算性质及推广 摘要:本篇论文主要从五方面来进行讲解:引言;矩阵特征值的性质;矩阵特征值的应用推广;分块矩阵的性质;分块矩阵特征值应用推广。 由于本篇论文是要以矩阵特征值性质的应用为主题,首先介绍总结了矩阵的一些基本概念及矩阵基本运算,然后在文中着重阐述了矩阵特征值性质,罗列出相关引理并予以证明,然后通过五种类型的矩阵特征值的应用例子将矩阵特征值的运算性质进行推广。将矩阵拓展到分块矩阵,讨论分块矩阵的性质及应用. 关键词:矩阵,特征值,特征向量,特征方程,特征多项式 The Operation Properties and Promotion of Eigenvalue Cui haiyang (Institute of Computer Science, Math) Abstract Three aspects to this thesis to explain: Introduction; matrix eigenvalue nature; promote the application of Matrix Eigenvalues. Because of this paper is a matrix eigenvalue to the application of the nature of the theme first introduced some basic concepts of matrix and the matrix of basic operations, and then in the text focuses on the eigenvalue properties, set out the relevant Yin Li, and to prove it. Finally, five types of application examples Eigenvalue Eigenvalue computation will be the nature of promotion. Key words:Matrix , Eigenvalue, Eigenvectors, Characteristic equation,Characteristic polynomial 1引言

相关文档
最新文档