独立闭合环java实现_水准网独立最小闭合环、最短附合线生成算法
水准网独立最小闭合环、最短附合线生成算法
【技术领域】
[0001] 本发明涉及大地测量水准数据处理技术领域,特别涉及一种水准网独立最小闭合 环、最短附合线生成算法。
【背景技术】
[0002] 水准测量,是用水准仪和水准标尺测定地面两点间高差的方法,以海平面为基准, 测量物体的标高。它是高程测量的主要方法,用于建立国家水准网,监测地壳垂直运动和人 为原因引起的地面沉降,以及建立工程测量所需要的高程控制网。
[0003] 随着社会经济的发展,科技水平的进步,要求越来越高,由于水准测量中仪器误 差、观测误差以及外界的影响,使水准测量中不可避免地存在着误差,闭合差就是水准测量 观测误差中各误差影响的综合反映,计算水准网的环闭合差和附合线闭合差,是水准网数 据检核的重要手段。
[0004] 对于简单小型的水准网,可以人工组成闭合环、附合线,但是目前的现有技术中, 对于有数百条路线的大型国家水准控制网或者网型复杂凌乱的地方水准网,如果采用人工 作业,则工作量非常大,而且找出的闭合环、附合线是否独立又完备还无法保证。
【发明内容】
[0005] 针对现有技术中水准网的水准测量工作量非常大、质量无法保证且成本高昂的上 述缺陷和问题,本发明实施例的目的是提供一种更好的水准网独立最小闭合环、最短附合 线生成算法,思路简单明了、易于实现,结果准确可靠,可以缩短作业周期,不再需要大量的 人工作业,极大的降低了成本。
[0006] 为了达到上述目的,本发明实施例提供如下技术方案:
[0007] 一种水准网独立最小闭合环、最短附合线生成算法,其特征在于,步骤如下:
[0008] Q1 :将水准路线两端的端点称为结点,将水准路线的其它中间点称为过渡点;
[0009] Q2 :将水准路线存储进一个二维数组;
[0010] Q3 :对路线做初步检查与处理,将两端结点一样、累和距离也一样的不同路线做区 分,给路线距离加一数值;
[0011] Q4 :对水准网中结点统一编号,设有M个结点,编号从1到M;然后建立一个M行、 M列的数组,并给所有数组元素赋值9999 ;最后将路线信息赋给数组,即其中编号为I、J的 两个结点间有观测路线,其长度为S,则数组中两个元素(I,J)、(J,I)均赋值S,当有多条 两端结点一样的路线,则取距离最小者参与矩阵化;
[0012] Q5 :把这些路线按结点相邻特点划分成一个个独立连通小网,再对小网逐一进行 搜索,找出其独立最小闭合环和最短附合线;独立连通小网的划分仿照遥感图像分割中的 区域生长算法,每次随机取一条没有划分进小网的路线为种子,将与此路线两端点相连的 路线并入该小网,再以新并入的路线端点去合并其它相邻路线,不断扩展,直至所有相邻路 线并入一个网络;再重新选择新的种子,重复该操作,反复进行,直至将所有路线划分进各 自小网;
[0013] Q6 :闭合环调整方向:
[0014] Q61 :梳理组成每一个闭合环、附合线的路线方向,保证组成一个闭合条件的所有 路线结点首尾相接,给需要反向的路线线号加负号;利用顺时针走向与逆时针走向计算的 多边形面积正负号相反特点调整环走向,保证水准网所有环均为顺时针或逆时针。
[0015] 作为上述技术方案的优选,所述Q5步骤中找出一个独立连通水准网中的所有最 小独立闭合环的自动生成算法为,步骤如下:
[0016] Q511:基于上述步骤Q4中形成的矩阵查找最小生成树,在Q5步骤中得到的所有路 线中去掉组成:最小生成树的路线,剩下的路线即是多余观测路线,一条多余观测路线代表 着可形成一个闭合环;
[0017] Q512:由最小生成树生成一矩阵G,逐一寻找所有多余观测路线两端点在矩阵G中 的最短路径,组成闭合环,将其中最小闭合环输出,并将多余观测路线放回矩阵G,即将此多 余观测路线的长度赋给矩阵G中与其结点对应的元素,同时从多余观测路线中删除;反复 搜索、放回、删除,直到多余观测路线成空为止。
[0018] 作为上述技术方案的优选,所述Q5步骤中找出一个独立连通水准网中的最短附 合线的自动生成算法为,步骤如下:
[0019] Q521:用弗洛伊德算法求出每对结点之间最短路径的长度,
[0020] Q522:单独取出起算点组成矩阵,矩阵元素值为相应两个起算点间的最短路径的 长度,
[0021] Q523:接着在这个矩阵基础上搜索最小生成树,这个最小生成树就是总长度最短 的附合线组合,
[0022] Q524 :求出此最小生成树每条树枝两端点在水准路线形成的图中的最短路径。
[0023] 作为上述技术方案的优选,所述Q3步骤中对路线做初步检查与处理时,保证两端 结点一样的不同路线距离不一样,使结点、距离可唯一代表一条路线,注意路线不区分方 向,即起点A终点B的路线与起点B终点A的路线视为结点一样路线。
[0024] 作为上述技术方案的优选,所述Q4步骤应用于专门的图论算法搜索闭合环、附合 线。
[0025] 作为上述技术方案的优选,所述Q4步骤中的M为大于1的自然数;I、J为1-M之 间的自然数。
[0026] 本发明实施例提供的一种水准网独立最小闭合环、最短附合线生成算法,与传统 的技术相比,结构简单,算法思路清晰,基于此算法开发的程序运行速度快,同时可以保证 闭合环最小、附合线最短且相互独立又完备,闭合条件不遗漏不多余,自动生成水准网独立 最小闭合环、最短附合线,保证所有闭合环走向一致,均为顺时针或逆时针,提高效率,节约 成本,达到增效的目的。
【附图说明】
[0027] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可 以根据这些附图获得其他的附图。
[0028]图1为本发明实施例1的一种水准网独立最小闭合环、最短附合线生成算法的示 意图。
【具体实施方式】
[0029] 下面将结合本发明的附图,对本发明的技术方案进行清楚、完整地描述,显然,所 描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例, 本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发 明保护的范围。
[0030] 最小生成树:在一个连通图G中,如果取它的全部顶点和一部分边构成一个子图 g,若g中的边将图G中的所有点连通又不形成回路,则称子图g是原图G的一棵生成树;若 该生成树中的所有边权值之和是生成树中的最小,则称该生成树为图的最小生成树。
[0031] 最短路径:把图中两个互异顶点之间的一条路径上所经过的边权值之和定义为该 路径的带权路径长度,而两个顶点之间可能不止一条路径,把带权路径长度最短的那条路 径称为最短路径。
[0032] 实施例1
[0033] 1水准网的图论分析
[0034] 将水准路线两端的端点称为结点,将水准路线的其它中间点称为过渡点。
[0035] 图的实质就是一个二维矩阵,所以把水准网"图"化,也就是将其"矩阵"化,而矩 阵在计算机中是以数组形式存储的,所以需要将水准路线存储进一个二维数组。
[0036] 在将路线矩阵化之前,需要对路线做初步检查与处理,将两端结点一样、累和距离 也一样的不同路线做区分,给路线距离加一数值,保证两端结点一样的不同路线距离不一 样,使结点、距离可唯一代表一条路线,注意路线不区分方向,即起点A终点B的路线与起点 B终点A的路线视为结点一样路线。
[0037] 首先将水准网中结点统一编号,假设有M个结点,编号从1到M ;
独立闭合环java实现_水准网独立最小闭合环、最短附合线生成算法相关推荐
- 约瑟夫环 java代码_约瑟夫环算法的Java实现代码
相信大家都知道这是一个的算法问题,约瑟夫环的c语言实现是利用了指针链表的形式,java实现呢,我的这个是用了内部类. 算法描述:n个人围成一圈,每人有一个各不相同的编号,选择一个人作为起点,然后顺时针 ...
- 随机数写excel java代码_基于python实现在excel中读取与生成随机数写入excel中
搜索热词 具体要求是:在一份已知的excel表格中读取学生的学号与姓名,再将这些数据放到新的excel表中的第一列与第二列,最后再生成随机数作为学生的考试成绩. 首先要用到的数据库有:xlwt,xlr ...
- java推箱子随机地图的产生_为什么没有人研究推箱子地图自动生成算法?算法随机生成地图,不需要地图库!?...
其实是有的,可以参考 Ty Taylor 的 The Art and Science of Procedural Puzzle Generation,https://www.youtube.com/w ...
- 生成三角网算法java,一种低效但逻辑简单清晰的Delaunay三角网生成算法
由离散样本点生成Delaunay三角网有多种算法,每个算法的执行效率都不一样,这里介绍一种最简单,最低效,但是算法逻辑最清晰的一种. Delaunay三角网必须满足的一个条件是任何一个三角形的外接圆都 ...
- python写一个记单词程序_杨鹏记单词法安排表自动生成算法(Python实现)
这几天在寻思着要背托福词汇,找了个方法想试一试,这个方法就是杨鹏单词记忆法,是一种根据艾宾浩斯遗忘曲线的规律来制定的学习方法,有兴趣的可以点击https://www.douban.com/note/2 ...
- java程序编译成exe文件_将java程序编译成独立运行的exe文件
将java程序编译成独立运行的exe文件 众所周知java的程序可以"一次编译,到处运行",这个特性不错,但是实现这个特性的前提是当前的平台 必须有相应的jvm,而且如果当前平台的 ...
- 笔记本独显无输出_独立显卡无信号输出_电脑检测不到独立显原因及解决方法...
独立显卡无信号输出 电脑插上独立显卡没有信号,但是能听到进入系统的声音,主板开机也能自检,就是没有信号输出!主板也检测不到有显卡插到卡槽上.显卡风扇是转的.把接口换到集成显卡可以显示画面.把独立显卡插 ...
- java 有向无环图 树_拓扑排序-有向无环图(DAG, Directed Acyclic Graph)
条件: 1.每个顶点出现且只出现一次. 2.若存在一条从顶点 A 到顶点 B 的路径,那么在序列中顶点 A 出现在顶点 B 的前面. 有向无环图(DAG)才有拓扑排序,非DAG图没有拓扑排序一说. 一 ...
- 复习Java异常处理_异常分类_自定义异常_线程初步了解
复习Java异常处理_异常分类_自定义异常_线程 主要内容 异常.线程 教学目标 第一章 异常 1.1 异常概念 异常,就是不正常的意思.在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点 ...
最新文章
- Spring Data JPA 五分钟快速入门和实践
- 百度重磅发布云手机:低配置也可玩大型游戏 21
- docker笔记1_安装及常用命令
- 关于js封装函数的一些东西
- 什么是Linux系统调用system call?(Linux内核中设置的一组用于实现各种系统功能的子程序)(区别于标准C库函数调用)核心态和用户态的概念、中断的概念、系统调用号、系统调用表
- Koa 中实现 chunked 数据传输
- php magic quotes 选项为 on,PHP:当Magic Quotes为ON时,如何(正确)删除数组中的转义引号...
- 王道机试指南读后总结-5(迷宫深搜问题详解)
- 10行代码搞定移动web端自定义tap事件
- php服务器启动错误,服务器意外重启之后PHP-FPM不能启动
- 云小蜜知识库维护的流程和维护建议
- 【路径规划】全局路径规划算法——Dijkstra算法(含python实现)
- CISP考试真题,CISP测试题
- [Egret学习笔记 二]MovieClip的使用
- C# RSA、AES加密解密
- 店铺如何提升流量,抢占先机
- chatgpt在中国怎么使用
- python播放网页视频_python如何播放视频
- yii2框架_选择Yii 2框架的7个理由
- Centos7.9+mysql8.0开启指定IP远程连接数据库