好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

物联网技术与应用课设.docx

16页
  • 卖家[上传人]:新**
  • 文档编号:486552834
  • 上传时间:2023-05-17
  • 文档格式:DOCX
  • 文档大小:737.82KB
  • / 16 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 物联网技术与应用课程设计报告班级 : 学号 : 姓名 : 老师 : 年 月 日目录一. 课程题目 1二. 需求分析 12.1具体功能 12.2设计思路 4三. 具体设计 53.1流程图 63.2模块设计 63.3文件中结点的数据 8四. 最终结果 9五. 源代码 9 TLRSP移动副本算法一. 课程题目道路网络中基于结点的静态聚类算法的实现java本次课程设计所使用的系统为windows7,编译器为Eclipse,所使用的编程语言为java二. 需求分析2.1具体功能基于密度的聚类算法, 首先任意选择一个对象执行e范围查询,如果该范围内至少包含MinPts(满足聚类条件的最小移动对象个数)个对象,则为这个对象创建一个聚类,并将该范围内的对象都归到这个聚类中然后,反复对聚类中新的对象执行范围查询,直到聚类不再扩张为止。

      基于结点的对象聚类本质上是一种基于密度的聚类算法,它利用网络的结点信息和网络拓扑结构进行扩展,避免了随意扩展带来的冗余距离计算,以及传统的基于密度算法中大量的范围查询算法按照对象与结点之间距离的顺序遍历边,以解决结点相邻边以及边上对象的重复访问问题基于结点的对象聚类首先从某个结点出发,把结点周围的对象聚类在一起,并扩展到相邻结点,将相邻结点周围满足条件的对象也包含到该聚类中,直到聚类不再扩张最后对网络边上未形成聚类的对象,根据对象的聚类条件来判断是否单独形成聚类基于结点的聚类过程实例:图2-1 基于结点类聚过程(a)图2-2 基于结点类聚过程(b)图2-2 基于结点类聚过程(c)2.2设计思路基于某个结点的聚类过程可以分为两步:初始化阶段和扩展阶段1) 初始化阶段:◆先判断每个相邻边上与结点相邻的对象与该结点距离是否小于等于阈值e,以此来过滤掉不必遍历的边;◆然后对满足条件的相邻边按照对象与结点的距离排序,将结点最邻近的对象作为初始聚类2) 扩展阶段:◆按顺序依次遍历相邻边上的对象来扩展初始聚类,继续扩展到相邻结点;◆再对相邻结点周围的相邻边进行排序,按顺序遍历相邻边上的对象,直到相邻对象之间的距离大于阈值e,聚类不能再扩展为止。

      三. 具体设计3.1流程图图3-1 整体流程图3.2模块设计 结点类的定义public class Point { private int x; private int y; private boolean isKey;结点的存储private static List pointsList=new ArrayList();//存储原始样本点,pointsList中存放一堆Pointprivate static List> resultList=new ArrayList>();//存储最后的聚类结果,resultList中存放一堆List列表,List中用存放一堆Point对象文件的读取 BufferedReader br=new BufferedReader(new FileReader("points.txt"));将文件中的字符串解析为数组public Point(String str){ //String[] p=str.split(" "); String[] p=str.split(",");//将字符窜解析为数组,以逗号来分割 this.x=Integer.parseInt(p[0]); this.y=Integer.parseInt(p[1]); }结点的聚类for(Iterator it=lst.iterator();it.hasNext();){//迭代器模式, hasNext(); 是否存在下一个数据 Point q=it.next();//next(); 返回当前值 if(getDistance(p,q)<=e){ ++count; if(!tmpLst.contains(q)){ tmpLst.add(q); } } }聚类合并for(int index=0;index> it=resultList.iterator();it.hasNext();){ List lst=it.next(); if(lst.isEmpty()){ continue; } System.out.println("-----第"+index+"个聚类-----"); for(Iterator it1=lst.iterator();it1.hasNext();){ Point p=it1.next(); System.out.println(p.print()); } index++; } }3.3文件中结点的数据图3-2 结点集合四. 最终结果图4-1 所给结点图4-2 聚类结果五. 源代码…………………………………………………………………………………….DBscan.javaimport java.io.IOException;import java.util.*; public class DBscan { private final static int e=2;//ε半径 private final static int minp=4;//密度阈值 private static List pointsList=new ArrayList();//存储原始样本点,pointsList中存放一堆Point private static List> resultList=new ArrayList>();//存储最后的聚类结果,resultList中存放一堆List列表,List中用存放一堆Point对象 private static void applyDbscan() throws IOException{ pointsList=Utility.getPointsList(); for(int index=0;index

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.