一、前言

在卫星和高端传感器的数据中。精通《设计模式》和算法,可以帮助您分析并做出更有力和知识渊博的决策,实现导航领域中搜索引擎的强大算法设计。

二、后端算法高级框架设计图

三、相关设计模式的类名词说明

1、蒙特卡罗树搜索 - 图形化模拟 Upper Confidence bound applied to Trees(UCT)

2、 calculation_time来控制时间

3、选举(selection)是根据当前获得所有子步骤的统计结果,选择一个最优的子步骤。

4、扩展(expansion)在当前获得的统计结果不足以计算出下一个步骤时,随机选择一个子步骤。

5、模拟(simulation)模拟决策过程,进入下一步。

6、反向传播(Back-Propagation)根据决策的结果,计算对应路径上统计记录的值。

7、置信区间(confidence intervals)是指由样本统计量所构造的总体参zhi数的估计区间,窄的置信区间比宽的置信区间能提供更多的有关总体参数的信息。越小的置信区间置信度就越高。

四、工具类设计

工具类存在了某一类事物的工具方法的类。

工具类存在的包:工具包  tools 。

工具类起名:表示一类事物。比如:在tools包下的Sampler为取样器工具类。

该Sampler工具方法全部使用static修饰, 只需要使用工具类名调用即可。

五、设计代码逻辑

注释:由于公开,已经去掉中文说明。该类为取样器,进行数据的计算逻辑封装。

package tools;import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Random;
import java.util.Set;import jdk.internal.dynalink.beans.StaticClass;public class Sampler {private static Random rng = new Random(Calendar.getInstance().getTimeInMillis() +Thread.currentThread().getId());public static Random getRandom() {return rng;}public static boolean sampleCoin() {return rng.nextBoolean();}public static double sampleBeta(double alpha, double beta) {double x, y;x = sampleGamma(alpha, 1);y = sampleGamma(beta, 1);return x / (x + y);}// Sample from the 1 - X where X ~ beta( alpha , beta)public static double one_minus_sampleBeta(double alpha, double beta) {double x, y;x = sampleGamma(alpha, 1);y = sampleGamma(beta, 1);return y / (x + y);}public static long nextPoisson(double lambda) {return (long) (-1.0 * Math.log(1.0 - rng.nextDouble() * 1.0) / lambda);}public static double nextExponential(double b) {double randx;double result;randx = rng.nextDouble();result = -1 * b * Math.log(randx);return result;}public static double sampleGamma(double k, double theta) {boolean accept = false;if (k < 1) {// Weibull algorithmdouble c = (1 / k);double d = ((1 - k) * Math.pow(k, (k / (1 - k))));double u, v, z, e, x;do {u = rng.nextDouble();v = rng.nextDouble();z = -Math.log(u);e = -Math.log(v);x = Math.pow(z, c);if ((z + e) >= (d + x)) {accept = true;}} while (!accept);return (x * theta);} else {// Cheng's algorithmdouble b = (k - Math.log(4));double c = (k + Math.sqrt(2 * k - 1));double lam = Math.sqrt(2 * k - 1);double cheng = (1 + Math.log(4.5));double u, v, x, y, z, r;do {u = rng.nextDouble();v = rng.nextDouble();y = ((1 / lam) * Math.log(v / (1 - v)));x = (k * Math.exp(y));z = (u * v * v);r = (b + (c * y) - x);if ((r >= ((4.5 * z) - cheng)) ||(r >= Math.log(z))) {accept = true;}} while (!accept);return (x * theta);}}public static Double[] subSampleNaive(List<Double> samples, int m) {int n = samples.size();int nm = Math.min(m, n);Double[] sub = new Double[nm];if (nm == n) {sub = samples.toArray(sub);return sub;}for (int k = 0; k < nm; k++) {int i = rng.nextInt(n);Double aux = samples.get(k);samples.set(k, samples.get(i));samples.set(i, aux);}sub = samples.subList(0, nm).toArray(sub);return sub;}public static Double[] subSample(List<Double> samples, int m) {//System.out.println(samples.size() +" " + m);int n = samples.size();int nm = Math.min(m, n);Double[] sub = new Double[nm];if (nm == n) {sub = samples.toArray(sub);return sub;}if (m < n / 2) {for (int k = 0; k < nm; k++) {int i = rng.nextInt(n);Double aux = samples.get(0);samples.set(0, samples.get(i));samples.set(i, aux);}sub = samples.subList(0, nm).toArray(sub);} else {for (int k = 0; k < n - nm; k++) {int i = rng.nextInt(n);Double aux = samples.get(0);samples.set(0, samples.get(i));samples.set(i, aux);}sub = samples.subList(n - nm, n).toArray(sub);}return sub;}}

定位导航算法高级框架设计相关推荐

  1. 九天创新智能科技有限公司诚招--SLAM/规划/控制/感知/定位/导航算法工程师

    公司团队:海归高层次人才团队创办,拥有国际领先的全栈式动驾驶核心技术.创始团队来自新加坡国立大学.新加坡南洋理工大学.中国科学技术大学等世界一流学府. 项目已经是面向园区---专注智慧清洁领域 一.控 ...

  2. 思岚科技完成B轮融资,自主定位导航助力机器人智能化

    行业的兴起,概念的普及,使得机器人行业的发展越来越迅速,要求越来越高. 日前,思岚科技完成1亿人民币B轮融资,助力机器人产业实现智能化.此轮融资由国科瑞华领投,国中基金.信中利跟投,势能资本担任首席财 ...

  3. 关于开发定位导航软件中间件的思考

    目前世界上正在运行的称得上全球定位导航卫星系统(Global Navigation Satellite System, GNSS)的只有4个,也就是美国的GPS系统,中国的北斗系统,俄罗斯的GLONA ...

  4. 产品经理内功修炼——产品的界面框架设计

    产品的界面框架设计 课程目标 1.掌握产品界面框架设计的类型 2.了解不同界面框架的优缺点 3.能够根据产品需求设计界面框架 前言 我们说界面的框架设计不仅仅是UI同学的设计,更多的是产品经理和交互设 ...

  5. 自动化测试:Selenium8种元素定位+unittest框架设计

    作者简介: 笔名,软件测试君.参与过汇丰银行,国家电网,中国电信等多个大型项目的研发和管理,擅长的技术领域为安全测试,性能测试,自动化框架搭建与维护,曾受南京航空航天大学邀请分享Linux.oracl ...

  6. Selenium自动化测试:8种元素定位+unittest框架设计

    作者简介: 笔名,唐米.参与过汇丰银行,国家电网,中国电信等多个大型项目的研发和管理,擅长的技术领域为安全测试,性能测试,自动化框架搭建与维护,曾受南京航空航天大学邀请分享Linux.oracle等测 ...

  7. 前沪江高级架构师学习笔记分享:分布式框架设计与实现

    1.分布式服务框架设计 分布式服务框架一般可以分为以下几个部分, (1)RPC基础层: 包括底层通信框架,如NIO框架.通信协议,序列化和反序列化协议, 以及在这几部分上的封装,屏蔽底层通信细节和序列 ...

  8. .NET框架设计(高级框架架构模式)—钝化程序、逻辑冻结、冻结程序的延续、瞬间转移

    1]开篇介绍 这一篇文章我早准备写的,迟迟未写的原因是它过于抽象不太容易表达,也很难掌握:之前对它的理解还处于比较简单的功能性上,但是最近随着对领域驱动设计及架构的研究,设计思想有了一个提升对它的理解 ...

  9. Maplab:一个用于视觉惯性建图和定位研究的开源框架

    摘要 鲁棒且精确的视觉惯性估计是当今机器人领域的重要挑战.能够用先验地图(prior map)进行定位(localize)并获得准确且无漂移的姿态估计,可以推动该系统的适应性.然而,目前大多数可用的解 ...

最新文章

  1. 新兴内存技术准备突围
  2. 压缩感知及应用 源代码_【DMD应用】基于压缩感知超分辨鬼成像
  3. sspi for NTLM or Kerberos
  4. 过滤XML数据中的非主流特殊字符
  5. Hadoop学习总结(3)——Hadoop伪分布式环境搭建
  6. linux物理网卡地址没有,Linux更改网卡物理地址
  7. Java SE (5)之 线程使用
  8. PYTHON博客记录0602
  9. 凸优化有关的数值线性代数知识四:分块消元与Schur补
  10. 解决Required String parameter xxx is not present异常
  11. 鸿蒙系统u盘制作,WINDOWS系列 篇二:【保姆级】Windows 10安装版原版系统U盘制作及系统安装教程...
  12. 一次性密码本(绝对无法破译)
  13. movielens 1m 的mysql_MovieLens电影数据分析
  14. Grain Timers and Reminders
  15. 内外盘期货市场的介绍(一)
  16. CATIA P3 V5-6R2018 软件下载
  17. Android设备root及xposedPrivacy的安装
  18. 轻松管好团队,就靠RACI模型|优思学院
  19. LSTM 长短期记忆循环神经网络(学习笔记)
  20. Mac OS安装NS 3

热门文章

  1. java高效获取内部类属性值_Java高级特性:内部类
  2. xp系统如可用计算机截图,我的是XP系统,用截图软件截取的图片,是如下显示。怎么处理??...
  3. Qt打包生成exe: 无法定位程序输入点
  4. C语言 extern的用法
  5. 比Postman更适合国人的接口调试工具
  6. ET框架---PlayerComponent学习笔记
  7. win11屏幕自动变暗的解决办法
  8. 【Anaconda+pycharm搭建pytorch】
  9. Flink CheckPoint机制简介
  10. 笔记本测试软件汇总-转