算法

UWB定位算法

丶灬走出姿态 提交于 2020-01-10 20:28:15
超宽带技术是采用极窄的脉冲信号实现无线通信,被称为脉冲无线电,其信号相对带宽不小于 0.2,绝对带宽不小于 500 MHz。根据经典雷达成像理论,距离分辨率 δ x 与信号宽度 T m 有如下关系:δ x =vT m /2,其中 v 是信号在传播介质中的传播速度。由此宽带特性可知,超宽带定位技术有极高的测距精度。其采用的脉冲宽度为纳秒或亚纳秒级,理论上可以获得厘米甚至毫米级的测距精度。由于 UWB 系统发射的是持续时间极短且占空比很低的窄脉冲,因此其多径信号在时间上可分离。此外,UWB 采用跳时扩频信号,系统具有较宽阔的频带,根据香农公式,信道容量 C 一定的情况下,高带宽可以降低信噪比。因此,UWB 具有很强的抗干扰性。 1、三边定位算法 三边测量法适合三个参考节点对一个未知节点实行定位,其通过未知节点与参考节点的距离公式列出三个数学关系式,进而求解需要定位的节点坐标。未知节点的位置计算原理如图2所示。设三个参考节点的坐标分别为 A(x 1 , y 1 )、B(x 2 , y 2 )、C(x 3 , y 3 ),未知节点 D 的坐标为 (x, y),该节点到 A、B、C 的距离分别为 r 1 、r 2 、r 3 ,由此可得式(1): 2、质心算法 质心算法是依靠节点互相通信找出与距离定位节点较近的参考节点,将这些参考节点构成的多边形区域的质心作为定位节点的位置估计,如图 3 所示

排序算法的指标性能比较

孤者浪人 提交于 2020-01-10 20:22:16
表一 排序方法 平均时间复杂度 最好时间复杂度 最坏时间复杂度 辅助空间 稳定性 冒泡排序 O(n 2 ) O(n) O(n 2 ) O(1) 稳定 简单选择排序 O(n 2 ) O(n 2 ) O(n 2 ) O(1) 稳定 直接插入排序 O(n 2 ) O(n) O(n 2 ) O(1) 稳定 希尔排序   O(nlogn)~O(n 2 ) O(n 1.3 ) O(n 2 ) O(1) 不稳定 堆排序 O(nlogn) O(nlogn) O(nlogn) O(1) 不稳定 归并排序 O(nlogn) O(nlogn) O(nlogn) O(n) 稳定 快速排序 O(nlogn) O(n) O(n 2 ) O(logn)~O(n) 不稳定 一,七种排序算法的性能指标说明: (1)冒泡排序:最坏的情况,即为序列处于逆序的情况,此时需要比较的次数为n(n-1)/2;最好的情况就是序列本身有序,那么需要比较的次数为n-1次,平均o(n 2 ) (2)简单选择排序:无论最好最差情况,其比较次数均为n(n-1)/2,对于交换次数而言,最好的情况,交换0次,最差的情况,交换次数为n-1次,那么综合比较和交换的次数,平均时间复杂度为o(n 2 ) (3)直接插入排序:最好的情况,即排序表本身是有序的,比较了n-1次,时间复杂度为o(n);最坏的情况,即待排序为逆序,此时需要比较(n+2)*(n

lvs简介

*爱你&永不变心* 提交于 2020-01-10 19:41:32
lvs基础 lvs基础原理及实现 Linux Cluster: Cluster:计算机集合,为解决某个特定问题组合起来形成的单个系统 LB:Load Balancing,负载均衡 HA: High Availiablity,高可用 HP:High Performance,高性能 lvs集群的类型: lvs-nat(network address translation) 多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和port实现转发 RIP和DIP必须在同一个IP网络,且应该使用私网地址; 请求报文和响应报文都必须经过由Director转发,Director易于成为系统瓶颈 支持端口映射,可修改请求报文的目标port vs必须是linxu系统,rs可以是任意系统 发送的包 cip/vip --> vs cip/rip 返回的包 rip/cip --> vs vip/cip 支持端口映射 lvs-dr(direcrot routing直接路由) Director Routing:直接路由: //后端主机,改IP后不做通告,也不arp请求响应 通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标是某挑选出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目标IP/PORT均保持不变

Python里面几种排序算法的比较,sorted的底层实现,虽然我们知道sorted的实现方式,但是

半世苍凉 提交于 2020-01-10 18:45:58
算法与数据结构基础 原文链接: http://note.youdao.com/noteshare?id=7b9757930ce3cc9e0a5e61e4d0aa9ea2&sub=2726FFA02ADE4E74A302D8DA7646FB46 查找算法: 二分查找法: 简介 :二分查找法又被称为折半查找法,用于预排序的查找问题 过程 : 如果在列表a中查找元素t,先将列表a中间位置的项与查找关键字t比较,如果两者相等,则成功。 否则,将表分为前后两个子表 如果中间位置大于t,则进一步查找前一子表,否则,查找后一子表 重复上述过程 优劣 : 时间复杂度为O(log~2~N),比较快 缺点就是必须是有序列表 排序算法: 冒泡排序 简介 :两两比较大小,如果不满足升序关系,则交换 过程 :略 优劣: : 时间复杂度为O(N^2^),速度较慢 稳定 选择排序 简介 :找出最小值,然后放入一个新的列表中 过程 :略 优劣: : 时间复杂度为O(N^2^),速度较慢 稳定 插入排序法 简介 :依次检查需要排序的列表,每次取出一个元素放入另一个排好序的列表中的适当位置。 过程 :略 优劣: : 时间复杂度为O(N^2^) 速度不稳定,最佳情况为线性增长,最差情况为N^2^,所以速度实际上比前两种快 归并排序 简介 :分而制之的思想 过程 : 将包含N个元素的列表分为两个含N/2元素的子列表.

四种GC算法

陌路散爱 提交于 2020-01-10 17:46:38
四种GC算法 GC垃圾回收,首先需要判断哪些对象需要回收 判断对象存活 可达性分析 : ​ 从GC Roots开始向下查询,如果一个对象到任何一个GC Root对象都没有一个引用链相连的话,说明此对象不可用。 ​ 四个GC Root对象 JVM栈中引用的对象 方法区静态属性引用的对象 方法区中常量引用的对象 本地栈中JNI中引用的对象 四种GC算法 引用计数 : ​ 每个对象都有一个引用计数属性,多一个引用+1,少一个引用-1,为0的时候代表可以回收。 ​ 致命缺点:无法解决循环引用 复制算法 : ​ 将内存分为两块,当一块内存用完了,就将存活的对象复制到另一块内存中。 ​ 优点:空间连续,没有内存碎片,运行效率高。 ​ 缺点:占用内存,如果复制长期生存的对象,会导致效率低。 ​ 主要用在新生代,因为新生代对象存活率低。 标记-清除 : ​ 先标记出需要清除的对象,再将标记的对象回收。 ​ 优点:占用内存小 ​ 缺点: ​ (1)需要进行两次动作,标记和清除,所以效率低。 ​ (2)回收完之后,内存不连续,会有内存碎片 标记-压缩 : ​ 先标记出需要清除的对象,但是不进行回收,而是让所有存活对象都向一段移动,然后清除边界之外的内存空间。 ​ 优点:占用内存小,没有内存碎片 ​ 缺点:效率低 分代收集 : ​ 根据Java堆的新生代和老年代的特点,选用不同的回收算法

深度强化学习泡沫及路在何方?

泄露秘密 提交于 2020-01-10 15:52:00
一、深度强化学习的泡沫 2015年,DeepMind的Volodymyr Mnih等研究员在《自然》杂志上发表论文Human-level control through deep reinforcement learning[1],该论文提出了一个结合深度学习(DL)技术和强化学习(RL)思想的模型Deep Q-Network(DQN),在Atari游戏平台上展示出超越人类水平的表现。自此以后,结合DL与RL的深度强化学习(Deep Reinforcement Learning, DRL)迅速成为人工智能界的焦点。 过去三年间,DRL算法在不同领域大显神通:在视频游戏[1]、棋类游戏上打败人类顶尖高手[2,3];控制复杂的机械进行操作[4];调配网络资源[5];为数据中心大幅节能[6];甚至对机器学习算法自动调参[7]。各大高校和企业纷纷参与其中,提出了眼花缭乱的DRL算法和应用。可以说,过去三年是DRL的爆红期。DeepMind负责AlphaGo项目的研究员David Silver喊出“AI = RL + DL”,认为结合了DL的表示能力与RL的推理能力的DRL将会是人工智能的终极答案。 RL论文数量迅速增长[8] 1.1 DRL的可复现性危机 然而,研究人员在最近半年开始了对DRL的反思。由于发表的文献中往往不提供重要参数设置和工程解决方案的细节,很多算法都难以复现

JVM垃圾回收算法

守給你的承諾、 提交于 2020-01-10 13:48:11
转:https://www.cnblogs.com/godoforange/p/11552865.html 如何判断对象是否为垃圾对象? 1)引用计数法 在对象中添加一个引用计数器,当有地方引用这个对象的时候,引用技术器得值就+1,当引用失效的时候,计数器得值就-1 算法缺点:循环引用无法回收。 2)可达性分析法 GCroot结点开始向下搜索,路径称为引用链,当对象没有任何一条引用链链接的时候,就认为这个对象是垃圾,并进行回收。 那么什么是GCroot呢(虚拟机在哪查找GCroot)。 虚拟机栈(局部变量表) 方法区的类属性所引用的对象。 方法区中常量所引用的对象。 本地方法栈中引用的对象。 目前主流JVM采用的垃圾判定算法就是可达性分析法。 垃圾回收算法: 1)标记-清除算法 存在的问题: 效率问题。 内存小块过多。 如图所示:黄色的就是被标记清除的。清除后会发现有很多多余的小块。 2)复制算法 下面是java内存常规划分 (线程共有)堆内存 方法区 (栈内存 本地方法栈) 程序计数器 下面是堆内存的划分 新生代 Eden 伊甸园 Survivor 存活区 Tenured Gen 养老区 老年代 下面就是过程: 被标记的黑色就是需要回收的 将白色区域复制下面,然后清空上面的 这样就完成了内存的连续分配,但是引来一个问题。 每次只能使用一半的内存。是不是有点少。。 为了解决这个问题

python数据结构与算法

你离开我真会死。 提交于 2020-01-10 13:12:52
二分查找的测试程序,从命令行参数中获取测试列表的各元素以及所要查找的关键字。(主要是列表参数的处理) # coding=utf-8 import sys #使用以下语句将参数的str格式转换为int格式 L = list ( map ( int , sys . argv [ 1 ] . split ( "," ) ) ) target = int ( sys . argv [ 2 ] ) def BinarySearch ( ) : print ( L ) print ( target ) left = 0 right = len ( L ) - 1 while left <= right : mid = ( left + right ) // 2 if L [ mid ] < target : left = mid + 1 elif L [ mid ] > target : right = mid - 1 else : return mid return - 1 def main ( ) : print ( "查找的关键字位于列表的索引:" , BinarySearch ( ) ) if __name__ == '__main__' : main ( ) 归并排序 import sys L = list ( map ( int , ( sys . argv [ 1 ] .

Spark ALS算法理解

六月ゝ 毕业季﹏ 提交于 2020-01-10 11:01:23
ALS算法 ALS的意思是交替最小二乘法(Alternating Least Squares),它只是是一种优化算法的名字,被用在求解spark中所提供的推荐系统模型的最优解。spark中协同过滤的文档中一开始就说了,这是一个基于模型的协同过滤(model-based CF),其实它是一种近几年推荐系统界大火的隐语义模型中的一种。隐语义模型又叫潜在因素模型,它试图通过数量相对少的未被观察到的底层原因,来解释大量用户和产品之间可观察到的交互。操作起来就是通过降维的方法来补全用户-物品矩阵,对矩阵中没有出现的值进行估计。基于这种思想的早期推荐系统常用的一种方法是SVD(奇异值分解)。该方法在矩阵分解之前需要先把评分矩阵R缺失值补全,补全之后稀疏矩阵R表示成稠密矩阵R',然后将R’分解成如下形式: 然后再选取U中的K列和V中的S行作为隐特征的个数,达到降维的目的。K的选取通常用启发式策略。 这种方法有两个缺点,第一是补全成稠密矩阵之后需要耗费巨大的存储空间,在实际中,用户对物品的行为信息何止千万,对这样的稠密矩阵的存储是不现实的;第二,SVD的计算复杂度很高,更不用说这样的大规模稠密矩阵了。所以关于SVD的研究很多都是在小数据集上进行的。 隐语义模型也是基于矩阵分解的,但是和SVD不同,它是把原始矩阵分解成两个矩阵相乘而不是三个。 现在的问题就变成了确定X和Y ,我们把X叫做用户因子矩阵

快速上手关键词抽取的算法

时光怂恿深爱的人放手 提交于 2020-01-10 08:27:33
前言 在自然语言处理领域,我们有一种类型的问题是如何在一堆文本中提取出核心词/句子。而无论是对于长文本还是短文本,往往几个关键词就可以代表整个文本的主题思想。同时,在很多推荐系统中,由于无法直接就整体文本进行利用,往往会现对文本进行汇总,常用的方法就是embedding或者关键词抽取,关键词提取的准确程度直接关系到推荐系统或者搜索系统的最终效果。让我们看下有哪些快速上手可用的方法。 TFIDF TFIDF是term frequency inverse document frequency的简称,很好理解:term frequency dot inverse document frequency,文本频率与逆文档频率指数, TFIDF就是为了表征一个token(可以是一个字或者一个词)的重要程度。所以,当我们把doc中的每个词的重要程度算出来,倒序即可作为关键词。 Term Frequency Inverse Document Frequency 分母+1是平衡未出现词 TF * IDF TF-IDF算法非常容易理解,并且很容易实现,但是其简单结构并没有考虑词语的语义信息,无法处理一词多义与一义多词的情况。 实现 Java版本: TfIdf RAKE RAKE是Rapid Automatic Keyword Extraction的简称,RAKE算法的亮点在于“R”