算法三级项目-2016软件工程解析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法三级项目-2016软件工程解析

1、什么是流行? 流形,也就是 Manifold 。球面是一个很典型的流形的例子,而地球就是一个很典型的“球面”。 1、什么是流行? 实际应用中的数据,怎么知道它是不是一个流形呢? 从球面说起,如果我们事先不知道球面的存在,那么球面上的点,其实就是三维欧氏空间上的点,可以用一个三元组来表示其坐标。但是和空间中的普通点不一样的是,它们允许出现的位置受到了一定的限制,具体到球面,可以可以看下面的参数方程。 可以看到,如果已知点在球面上,这些三维的坐标实际上可以由两个变量生成,也可以说成是它的自由度是2,也正好对应了它是一个二维的流形。 1、什么是流行? “嵌入在高维空间中的低维流形”的例子。高维的数据对于我们来说总是难以想像。这是三维空间的一个曲面,但实际上曲面上点之间的关系可以用二维坐标表示。即一个二维的图形嵌入到了一个三维的空间中。 三维空间(XYZ)中的点的集合(xi,yi,zi) 1in。用n个点抽样表示图形。 实际上:应该是二维空间(XY)中的点的集合(xi,yi) 1in。用n个点抽样表示图形。 1、什么是流行? 直观上来讲,一个流形好比是一个 d 维的空间,在一个 m 维的空间中 (m d) 被扭曲之后的结果。需要注意的是,流形并不是一个“形状”,而是一个“空间”,如果你觉得“扭曲的空间”难以想象,那么请再回忆之前一块布的例子。 例如:广义相对论似乎就是把我们的时空当作一个四维流(空间三维加上时间一维)形来研究的,引力就是这个流形扭曲的结果。当然,这些都是直观上的概念。 2、怎样计算流行 地球—这个在三维空间中的二维流形。假设我们要在三维空间中计算北极点和南极点的距离,这很容易,就是两点相连的线段的长度,可是,如果要在这个流形上算距离就不能这样子算了。 要沿着地球表面走才行。当然,如果随便沿着什么路线走一遍,然后数出总共走了多少步作为距离,这是不成的,因为这样一来如果我沿着不同的路线走,岂不是会得到不同的距离值? 总而言之,我们现在需要一个新的定义在地球表面(流形)上的距离度量。 2、怎样计算流行 还记得初中学的“两点之间,线段最短”吗?现在,我们反过来说,把线段的概念推广一下,变成“两点之间最短的曲线是线段”,于是流形上的距离定义也就等同于欧氏空间了:流形上两个点之间的距离就是连接两个点的“线段”的长度。虽然只是置换了一个概念,但是现在两者统一起来了,不过,在流形上的线段大概就不一定是“直”的了(于是直线也变成不一定是“直”的了),通常又称作是“测地线”。对于球面这个简单的流形来说,任意一条线段必定是在一个“大圆”上的。 2、怎样计算流行 流行算法主要做了一件事情,就是把 原始空间中距离的计算从欧氏距离换为了流形上的测地距离。当然,如果流形的结构事先不知道的话,这个距离是没法算的。于是 我们通过将数据点连接起来构成一个邻接 Graph 来离散地近似原来的流形,而测地距离也相应地通过 Graph 上的最短路径来近似了。 图的最短距离计算。 图1 2、怎样计算流行 通常的计算步骤:? 1、任意两点之间的欧式距离。 2、最近邻域确定。大于最小邻域的距离改为无穷大(保证连通图)。 3、计算任意两点最短距离,即测地线距离(保证了点与点之间的原有关系不变)。 4、根据测地线距离将三维空间的点映射到二维平面上(mds多尺度映射)。 流行算法的典型例子 ?Isomap?论文里的一个结果 。流行算法的一个应用。 3、简化的流行(任务) 一、构造曲面上的点集合(原始数据集) 1、x,y平面上,过原点的一条曲线。如 y=x*x; 2、在0x10区间上随机取1000个点,计算xi,yi; 3、z轴。对每一个点xi,yi,对应在区间0z2上随机取200个点;即将XY平面上的一个点(xi,yi)扩展成了XYZ三维空间的200个(xi,yi,zi)点。 4、通过1,2,3,获得1000*200个点的集合。这个集合是我们构造的一个特殊曲面上的点集合。这个曲面通过三维坐标的原点(0,0,0),且垂直XY平面。 5、阶段成果:一个数据文件first.dat[i,xi,yi,zi,color]。 前面只是背景知识,我们的任务简单:一个简化的三维到二维的映射。构造一个类似于图1的图形,然后将其从三维空间映射到二维空间。 3、简化的流行 二、映射 1、读入first.dat[i,xi,yi,zi,color] ; 2、对于XYZ空间上的n个点(例如上例n=1000*200),计算任意两点之间的欧式距离。有n*(n-1)/2个距离;写入文件second.dat[i,j,d]; 3、设定一个小邻域值e。n*(n-1)/2个距离中,大于e的距离设为无穷大;写入文件: third.dat[i,j,d]; 4、计算从原点(0,0,

文档评论(0)

little28 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档