近似算法Approximation-PartI
- 格式:pdf
- 大小:181.36 KB
- 文档页数:20
lod模型简化算法LOD模型简化算法(Level of Detail Model Simplification Algorithm)是用于在计算机图形学中管理和优化多细节级别模型的一种技术。
LOD模型简化算法的目标是在不降低模型质量的前提下,通过减少模型的细节级别来提高计算效率和渲染速度。
以下是一些常见的LOD模型简化算法:1. 随机采样(Random Sampling):这是最简单的LOD模型简化算法,通过随机删除模型的一部分顶点和面片来减少模型的细节级别。
这种方法的缺点是简化后的模型可能会失去原始模型的一些关键细节信息。
2. 边坍缩(Edge Collapse):边坍缩算法将模型中的顶点逐渐合并,从而减少模型的顶点数和面片数。
合并的顶点通常是距离最近的邻居顶点,使得模型的整体形状保持尽可能不变。
边坍缩算法的一个重要参数是合并的距离阈值,用于控制简化后模型的细节级别。
3. 近似保持(Approximation Preservation):近似保持算法通过在简化过程中尽量保持模型的形状和外观特征来减少模型的细节级别。
它使用各种度量标准和优化方法来评估简化后模型与原始模型的相似度,并尽量减小其差异。
4. 基于误差度量(Error Metric-based):基于误差度量的算法通过评估简化后模型与原始模型之间的误差来决定顶点的合并和删除。
这些算法通常使用一些误差度量函数,如距离误差、法线误差等,来计算简化后模型与原始模型之间的差异。
5. 基于层次的简化(Hierarchical Simplification):基于层次的简化算法将模型划分为多个层次,每个层次包含不同级别的细节。
通过设置不同层次之间的联系和转换关系,可以实现在不同细节级别之间的平滑过渡和无缝切换。
这些算法可以单独或组合使用,以适应不同模型的特点和简化需求。
根据具体应用,还可能有其他更复杂和高级的LOD模型简化算法。
2013,49(17)1引言集合覆盖问题是组合最优化和理论计算机科学中的一类典型问题,它要求以最小代价将某一集合利用其若干子集加以覆盖。
在现实生产生活中,集合覆盖问题有着众多应用场合,如物流配送、道路定向、工程调度、设施选址、VLSI 设计、网络安全等[1-2]。
遗憾的是,集合覆盖问题在算法复杂性上属于NP-困难问题[3],即它不存在多项式时间精确算法,除非P=NP 。
因此,近似算法成为求解集合覆盖问题的一个有效途径,其中以Chvátal 的贪心算法[4-5]最为简洁。
后来,学者们又陆续提出过一些近似程度更好的近似算法[6]。
近似算法固然是多项式时间算法,但返回的往往不是最优解,这在许多实际领域当然是不能令人满意的。
事实上,在实际计算中,如果问题的规模相对较小,那么利用一般的线性规划或整数规划方法还是可以较为快速地得到其最优解的。
随着计算机科技的迅猛发展,特别是LINGO 、MATLAB [7-9]等高性能计算软件的成功研发与广泛应用,即便在问题的规模相当大时,人们也仍然能够迅速地求得其最优解。
2问题与模型设基集S ={e 1 e 2 e n },S 1 S 2 S m 是S 的一族子集,若J Í{1 2 m },且j ÎJS j =S ,则称{}S j j ÎJ为S 的一个集合覆盖。
问题:求S 的一个基数最小的集合覆盖,其中基数定义为集合中元素的数目。
事实上,{}S jj ÎJ为S 的一个集合覆盖,意指S 中的每一元素都至少含于某一集合S j (j ÎJ )中,即被S j“覆盖”住。
对每一子集S j (j =1 2 m ),引入决策变量:x j ={1 j ÎJ0 否则则可建立如下集合覆盖问题的0-1规划模型IP :min åj =1mx j s.t.åj :e i ÎS jx j 1 i =1 2 nx j =0 1 j =1 2 m其中约束条件“åj :e i ÎS jx j 1 i =1 2 n ”确保S 中的每一元素e i 都至少被集合覆盖S j (j ÎJ )中的某一集合覆盖住。
python中类似pi的运算的展开式在Python中,我们可以使用数学库(如math库)或自行实现算法来计算π的近似值。
这些近似值是通过一个叫做“π的展开式”(也叫π的计算公式)的算法来获得的。
π的展开式是一种无限级数或无理数的表示方法,可以通过累加一系列分数或算术表达式来逼近π的真实值。
其中最著名的两种展开式是莱布尼茨级数和马青公式。
1.莱布尼茨级数(Leibniz series):莱布尼茨级数是由德国数学家莱布尼茨提出的π的近似计算公式。
根据这个公式,π可以由下面的级数得到:π/4 = 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ...莱布尼茨级数是一个交错级数,每一项的符号交替出现,并且随着级数项的增加,它的近似值越来越接近π/4。
可以通过不断累加和减去级数项来逼近π的真实值。
2.马青公式(Machin's formula):马青公式是由英国数学家约翰·马青(John Machin)在1706年发现的一种计算π的近似公式。
这个公式使用了三角函数的关系,并通过以下公式计算π:π/4 = 4*arctan(1/5) - arctan(1/239)这个公式中的arctan表示反正切函数,可以使用math库中的atan函数来计算。
通过将这个公式中的两个arctan函数的近似值计算出来,再进行简单的数学运算,就可以得到π的近似值。
除了这两个著名的展开式,还有很多其他的π的计算公式可以用于近似π的值,如欧拉公式、倍角公式等等。
这些展开式的特点是可以通过有限的运算和迭代来逼近π的真实值,但永远无法完全等于π。
它们可以用于一些需要对π进行近似计算的场合,但对于对π有精确要求的计算,这些展开式并不适用。
在实际应用中,我们可以利用这些展开式来编写Python程序来计算π的近似值。
下面是一个使用莱布尼茨级数计算π的示例代码:```pythonimport mathdef calculate_pi(iterations):pi = 0sign = 1for i in range(iterations):term = sign / (2*i + 1)pi += termsign *= -1return 4 * piiterations = 1000000approx_pi = calculate_pi(iterations)print("Approximation of pi:", approx_pi)print("Difference from math.pi:", math.pi - approx_pi) ```在这个示例中,我们使用了一个循环来进行级数的累加,从而计算π的近似值。
2021年3月计算机工程与设计Mar.2021第42卷第3期COMPUTER ENGINEERING AND DESIGN Vol.42No.3基于数据冗余性的近似计算技术陈折桂】,王晶12+,张伟功"(1.首都师范大学信息工程学院,北京100048;2.首都师范大学北京成像理论与技术高精尖创新中心,北京100048;3.首都师范大学电子系统可靠性技术北京市重V实验室,北京100048)摘要:为解决神经网络中爆炸式增长的数据量所加剧的计算机系统存储墙问题,针对经典近似方法在平衡精确度和开销问题上的不足,提出一种利用相邻数据之间相似特征以及神经网络中数据冗余性的优化方法。
通过分析数据密集型应用的数据特征,提出针对权值的稀疏矩阵压缩,针对输入数据的重复值压缩和相邻小范围浮动数据近似的方案,设计神经网络拓扑感知的冗余数据近似方法,在合理范围内实现数据近似。
实验结果表明,相比于SNNAP方案输出质量平均提高了&16%,压缩率达到51.38%,为提高数据密集型应用的系统加速比提供了可行性&关键词:神经网络;数据冗余;数据相似;近似;压缩中图法分类号:TP302文献标识号:A文章编号:1000-7024(2021)03-0649-07doi:10.16208/j.issnl000-7024.2021.03.008Approximate computing technique based on data redundancyCHEN Zhe-gut,WANG Jin g12+,ZHANG Wei-gong13(rmation Engineering College,Capital Normal University,Beijing100048,China;2.Beijing AdvancedInnovation Center for Imaging Theory and Technology,Capital Normal University&Beijing100048,China;3.Beijing Key Laboratory of Electronic System Reliability Technology,Capital Normal University&Beijing100048,China) Abstract:To address the problem of computer system storage walls exacerbated by the explosive amount of data in neural networks&and aiming at the shortcomings of classical approximation methods in balancing accuracy and cost,an optimization methodusingsimilaritybetweenadjacentdataanddataredundancyinneuralnetworkswasproposed.Byanalyzingthedatacha-racteristics of data-intensive applications&a scheme was proposed for sparse matrix compression for weight&aiming at repeated value compression for input data and approximation for adjacent low dynamic range data&an approximation method of redundant data for neural network topology perception was designed to realize data approximation within a reasonable range.Experimental results show that compared with SNNAP scheme&the output quality is improved by8.16%on average and the compression rate reaches51.38%.Itisfeasibletoimprovethesystemspeedupratiofordata-intensiveapplications.Key words:neural network;data redundancy;similar data;approximate;compress1引言伴随着神经网络应用范围的扩展,近年来涌现出了大量针对不同需求的机器学习框架13*,用于处理现代社会爆炸式增长的信息和数据(随之而来的是数以千计的计算机组成的数据中心,为机器学习框架的执行和数据的处理提供算力支持。
lac分词介绍摘要:一、LAC分词简介二、LAC分词原理与算法三、LAC分词在自然语言处理中的应用四、LAC分词的优缺点五、我国在LAC分词领域的研究与发展正文:一、LAC分词简介LAC(Linear Approximation to Context-Free Grammars)分词,即线性近似文法分词,是一种基于概率图模型的中文分词方法。
相较于传统的基于词典的分词方法,LAC分词具有更高的准确率和更强的鲁棒性。
二、LAC分词原理与算法LAC分词基于线性近似文法(Linear Approximation to Context-Free Grammars)模型,通过对上下文无关文法进行线性化处理,将分词问题转化为一个序列标注问题。
LAC分词算法主要包括两部分:1)基于条件随机场(CRF)的序列标注;2)基于统计机器学习(SMT)的解码算法。
三、LAC分词在自然语言处理中的应用LAC分词作为一种高效的分词方法,在自然语言处理领域具有广泛的应用,如文本分类、信息抽取、命名实体识别、情感分析等。
通过将原始文本切分成有意义的词汇单元,LAC分词为后续的自然语言处理任务提供了良好的基础。
四、LAC分词的优缺点优点:1.准确率高,能较好地处理歧义问题;2.鲁棒性较强,对噪声数据和不规范文本具有较好的容忍度;3.适用于大规模文本处理,计算效率较高。
缺点:1.需要大量的训练数据和标注数据;2.模型复杂度较高,不易理解和调整;3.有时会出现过拟合现象。
五、我国在LAC分词领域的研究与发展近年来,我国在LAC分词领域取得了显著的研究成果。
不仅在算法和技术上不断优化和创新,还针对中文语言特点开发了多种具有代表性的LAC分词工具,如清华大学的THULAC、北京大学的LCF和上海交通大学的SegInfer 等。
这些研究成果为我国自然语言处理领域的发展奠定了坚实基础。
综上所述,LAC分词作为一种先进的中文分词方法,在自然语言处理领域具有广泛的应用前景。
连续接近法连续接近法(ContinuousApproximationMethod,CAM)是一种数值计算方法,用于求解复杂的非线性方程组、微分方程组、微分型不等式等数学问题。
它用于近似计算求解数学问题,是一种经典的数值计算方法和技术,在科学与工程中有广泛的应用。
数值计算的历史可以追溯到古代,但是连续接近法则是在20世纪初提出的。
美国著名数学家德尔马拉尼亚斯密斯(Tullio de Mauro Smise)在1924年的作品《有限差分算法的物理基础》中首次提出了连续接近法。
他把微分方程解决问题的过程比喻成一波波不断接近着精确解的运动,他在这本书中提出了一种新的计算方法:连续接近法,也就是在一定距离内不断地向精确解逼近,最终找到解决问题的近似值。
此后,连续接近法发展迅速。
心理学家加里施瓦兹在推断中应用连续接近法,微波工程界有关电磁场解析和网络分析的行业问题,也用连续接近法解决,使用精度大大提高。
连续接近法具有很多优点。
首先,连续接近法的计算精度很高,可以满足科学研究的要求,特别是与数值模拟近似计算的精度比较足够高,可以用于近似计算大规模复杂的问题。
其次,它简单、实用,无论是算法设计、方程实现还是计算结果,都具有高度的可操作性和实用性。
此外,连续接近法灵活,可以适用于线性和非线性的各种方程,以及复杂的系统。
另外,连续接近法的应用也非常广泛。
它可以用于热力学,非线性动力学,生物学,化学,地质学等多学科领域,用于解决复杂的计算问题。
它可以被用于气象学,特别是气候变化中的研究。
另外,它也可以应用于常微分方程和偏微分方程,对于寻求各种类型椭圆、超椭圆,以及无穷多类型椭圆超椭圆方程,都有着比较好的效果。
总之,连续接近法是一种有效的计算方法,可以被用于科学研究和工程应用中,其优点是可以得到更精确强有效的解决方案,而且它简单实用,可以满足大规模复杂问题的需求,值得推荐。
第34卷第12期自动化学报Vol.34,No.12 2008年12月ACTA AUTOMATICA SINICA December,2008一种改进的骨架曲线串行多边形近似算法吕哲1王福利1,2常玉清1,2刘阳1摘要常见骨架提取算法对复杂多变的目标边缘具有较强的敏感性,提取出的骨架曲线结构相对复杂,数据量仍然较大.针对这一问题,提出了一种新的骨架曲线多边形近似算法.该算法结合骨架曲线的特点,在传统串行多边形近似算法的基础上引入了平滑度保持、结构特征保持以及拓扑特征保持等约束条件,既较好地保留了原始骨架的主要拓扑结构特征,又有效地简化了骨架曲线的结构,进一步压缩了数据.仿真研究证明了该方法的有效性.关键词骨架,多边形近似,形状分析中图分类号TP391An Improved Sequential Polygonal Approximation Algorithm on Skeleton Curves LV Zhe1WANG Fu-Li1,2CHANG Yu-Qing1,2LIU Yang1Abstract High sensitivity of most skeletonization algorithms to the variable edge features makes the structure of the extracted skeletons relatively complicated and the corresponding data excessive.To solve this problem,a novel skeleton polygonal approximation algorithm is proposed.Several impactful improvements such as smoothness-preservation, structure-preservation,and topo-preservation have been proposed to characterize the main structure of the original skeleton as well as predigest other trivial structure for compression of redundant information.The new algorithm is thus superior to the conventional one.Simulation tests have verified the effectiveness of the algorithm.Key words Skeleton,polygonal approximation,shape analysis在图像几何形态分析及其相关领域中,骨架具有非常广泛的应用.利用骨架表示原始图像,可以在保持图像重要拓扑结构特征的前提下,减少冗余信息.因此,基于骨架的目标形状表示和识别技术已经成为模式识别领域的重要研究内容,被广泛应用于自动字符识别、指纹识别、工件识别以及医学图像分析等领域[1−2].近年来,针对目标骨架提取问题的研究已经十分深入,新算法及改进算法层出不穷.总的来说,这些算法可以分为两大类型[3]:1)细化算法,这类算法以焚烧草地定义为基础,通过不断地剥离边缘点来获取目标的骨架[4−5];2)中轴变换法,这类算法以最大圆盘定义为基础,通过距离变换或形态学变换搜寻目标中最大圆盘的圆心点,并由此构成目标的骨架[6−7].不同类型的骨架提取算法虽然各有优缺点,但收稿日期2007-10-08收修改稿日期2008-01-14Received October8,2007;in revised form January14,2008国家重点基础研究发展计划(973计划)(2002CB312201),国家自然科学基金(60374003)资助Supported by National Basic Research Program of China(973 Program)(2002CB312201)and National Natural Science Foun-dation of China(60374003)1.东北大学信息科学与工程学院沈阳1100042.东北大学流程工业综合自动化教育部重点实验室沈阳1100041.School of Information Science and Engineering,Northeast-ern University,Shenyang1100042.Key Laboratory of Inte-grated Automation of Process Industry,Ministry of Education, Northeastern University,Shenyang110004DOI:10.3724/SP.J.1004.2008.01467都能够较好地实现对目标骨架特征的提取.然而,在实际应用中,多数骨架提取算法获得的骨架曲线都存在一个共同的问题,那就是它们对目标形状的细节变化比较敏感,自身结构较为复杂,数据难以得到有效压缩.这一不足一方面影响了骨架曲线对目标主要拓扑特征的描述能力,另一方面占用了大量的存储空间和计算时间.因此,有必要对骨架曲线的结构简化问题进行研究.线性近似(Linear approximation,LP),或称为多边形近似(Polygonal approximation,PA),是一种行之有效的离散曲线简化算法[8].该算法通过控制近似偏差,以分段线性线段或圆弧来代替原曲线,从而达到简化曲线结构、压缩曲线数据的目的.目前,多边形近似算法在目标边缘表示等领域已经得到了广泛应用.借鉴多边形近似算法在离散曲线简化问题中的成功应用,结合骨架曲线自身结构特点,本文对传统的多边形近似算法进行了改进,成功地将其应用于骨架曲线结构简化问题,使得简化后的骨架曲线在有效保留目标主要拓扑结构特征的同时,信息量得到进一步压缩,能够更好地满足实际应用的要求,具有较为重要的理论及现实意义.1传统算法简介在图像处理、计算机图形、模式识别及数据压缩等诸多领域中都存在离散曲线结构简化问题.通1468自动化学报34卷常,在此类应用中,人们希望使用某些简单的特征来近似复杂的图形或几何目标,以达到数据压缩的目的.多边形近似是曲线结构简化算法中应用最为广泛的一种.该方法通过控制近似偏差,在偏差允许范围内不断减少数据点(或称为控制点),用分段线性线段或圆弧来代替原始曲线,简单有效地实现了对离散曲线的近似.近似后的分段线性曲线能够携带尽可能多的原始曲线信息,可以很好地描述原始曲线的形状结构特征.多边形近似算法定义如下[9].定义1.令C为任意一条离散曲线上的N(N>1)个点组成的序列,C={P i(x i,y i)|i=1,2,···,N}.其中(x i,y i)为序列中第i个点P i的坐标.定义2.线段S由C中两个不同的点P i和P i+k唯一确定,S=P i P i+k.定义3.线段S相对于原始离散曲线的近似偏差E(S)为E(S)=maxi≤t≤i+k E Pt(S)=maxi≤t≤i+kDist(P t,S)(1)其中,Dist(P t,S)为点P t,t∈(i,i+k)到线段S 的垂直距离的平方.Dist(P t,S)=((x t−x i)(y i+k−y i)−(y t−y i)(x i+k−x i))2(x i−x i+k)2+(y i−y i+k)2(2)定义4.任意曲线的多边形近似曲线P A满足如下条件:1)P A={S1,S2,···,S Card(P A)};2)∀S n,S n+1∈P A,S n的最后一个点为S n+1的第一个点;3)Card(P A)为P A中线段的数目;4)令SP A为全部多边形近似曲线P A的集合.给定一个最大误差阈值,则多边形近似问题可以描述为求取线段序列P A1={S1,S2,···, S Card(P A)},使得∀E(S n)<MaxError,n∈(1,Card(P A1))(3)且对于满足Card(P A2)<Card(P A1)的∀P A2∈SP A有∃E(S m)>MaxError,m∈(1,Card(P A2))(4)常用多边形近似算法可以分为三大类,即串行方法(Sequential approach)、分裂合并法(Split-and-merge approach)及启发式搜索法(Heuristic-search approach)[10].其中,分裂合并法对初始线段的选择有很强的依赖性,而启发式搜索法计算复杂度高,计算效率较低.串行方法虽然难以保证最优近似结果,但对于结构相对简单的骨架曲线仍不失为一种较好的选择.此外,串行方法还具有算法简单、计算速度快等优点.因此,本文采用串行多边形近似算法对骨架曲线进行简化处理.2改进算法骨架曲线通常被用于目标形状的表示和描述,人们更为关心的是其携带的目标的主要拓扑结构信息,而非目标形状的细节变化信息.然而,不论是采用细化算法,还是采用中轴变换方法,骨架曲线的获取在很大程度上都依赖于目标的边缘信息,最终获得的骨架曲线对边缘的细节变化有很强的敏感性.这一方面使得骨架曲线的结构不够平滑、存在噪声,影响其对目标主要结构特征的表示;另一方面使得骨架曲线中含有大量不重要、甚至错误的细节信息,给之后的计算和存储带来困难.基于此,本文提出了一种新的骨架曲线串行多边形近似算法,通过平滑度保持、结构特征保持和拓扑稳定性保持等约束,提高了串行近似算法保留原始骨架主要拓扑结构特征的能力,降低了骨架曲线对边缘细节变化的敏感程度,达到了简化骨架结构、突出主要信息以及进一步压缩数据的目的.改进的骨架曲线串行多边形近似算法包括控制点初始化和近似计算两个主要步骤.2.1控制点初始化对于给定的骨架曲线Skel有Skel={P i(x i,y i)|i=1,2,···,n}(5)其中,n为骨架曲线上骨架点的数目,P i为第i个骨架点,且其坐标为(x i,y i).初始控制点(Dominant point,DP)选择的依据是由这些控制点确定的近似曲线P A与原曲线之间不能存在任何偏差[10].显然,最简单的方法就是将骨架曲线上的所有点均初始化为控制点.但是,这种方法不可避免地包含了大量的冗余信息.相比于上述方法,将骨架曲线上的所有拐点(即曲线走向发生变化的点)初始化为控制点是一种更为有效的方法.它不仅能够保证近似曲线与原曲线之间的零偏差,而且大量减少了冗余信息.因此,本文使用该方法对骨架曲线的控制点进行初始化.如图1(见下页)所示,使用Freeman链码[11]可以方便地实现拐点的确定.对于骨架曲线上的任意点P i,依据其相邻骨架点P i+1在邻域内所处的位置,可以给P i分配一个0到7之间的整数编码c i.那么当任意骨架点P i的链码与其前一个骨架点12期吕哲等:一种改进的骨架曲线串行多边形近似算法1469P i−1的链码不同时,即c i=c i−1(6)则骨架曲线的走向在该点处发生变化,点P i即为曲线的一个拐点.骨架曲线上的所有拐点构成了曲线的初始控制点.图1Freeman链码Fig.1Freeman chain code此外,由于骨架曲线上的端点和连接点对于骨架曲线的拓扑结构的稳定起着重要的作用,因此,无论这些点是否为骨架曲线的拐点,都应将其初始化为控制点.对于端点和连接点的定义,在下文中将详细叙述.2.2近似计算在完成控制点初始化之后,近似算法从骨架曲线的端点开始以串行方式进行曲线近似.对于控制点DP i,为了评价该点与其后第k个控制点DP i+k 之间的连线S n=DP i DP i+k能否用于近似此两点之间的原始骨架曲线,需要计算两点之间各控制点的近似偏差E DPt(S n),t∈(i,i+k),并求出最大近似偏差E(S n).当E(S n)小于预先设定的最大偏差阈值MaxError时,继续判断下一个控制点DP i+k+1;否则,当E(S n)>MaxError时,将上一个控制点DP i+k−1与起始控制点DP i之间的骨架曲线近似为此两点的连线S n=DP i DP i+k−1,并将DP i+k−1设为下一搜索的起始点.但是在实际应用中,若直接根据式(1)和(2)计算近似偏差E DPt(S n)和最大近似偏差E(S n),会导致近似后的骨架曲线无法保持良好的平滑度和稳定的结构特征(其原因将在第3节中详细分析).为此,本文在传统算法的基础上引入了三个约束条件.1)平滑度保持约束.为了保持骨架曲线的平滑程度,避免骨架曲线上的噪声突起给曲线近似带来的影响,改进算法在E DPt(S n)的计算过程中引入了修正项Modify(DP t,S n),用于对原始骨架中的噪声偏差进行约束.E DPt(S n)=Dist(DP t,S n)+Modify(DP t,S n)(7)2)结构特征保持约束.能够准确描述目标的主要结构特征是近似后骨架曲线必须具备的能力.为此,改进算法进一步引入了惩罚项P enalty(S n),对同方向偏差情况下的近似曲线跨度进行约束,避免了近似曲线偏离原始骨架曲线情况的发生.E(S n)=maxi≤t≤i+kE DPt(S n)+P enalty(S n)=maxi≤t≤i+k(Dist(DP t,S n)+Modify(DP t,S n))+P enalty(S n)(8)其中,近似偏差E DPt(S n)是采用带有平滑度保持约束的式(7)得到的,可见改进后的最大偏差E(S n)同时结合了平滑度保持约束和结构特征保持约束.3)拓扑稳定性保持约束.由于骨架曲线由主干和连接于其上的分支构成,所以曲线近似过程还必须能够保证骨架曲线各分支与主干之间的拓扑关系不发生变化.为此,本文还引入了确保近似曲线拓扑不变性的拓扑稳定性保持约束.下面分别对上述三个约束条件进行详细分析.3约束条件分析3.1平滑度保持如图2所示,当目标边缘存在细微变化时,获得的骨架曲线往往会产生相应的突起,从而降低了骨架曲线的平滑程度.在对该骨架曲线进行多边形近似时,为了克服这些突起的影响,提高骨架曲线的平滑程度,往往需要设定相对较大的偏差阈值.但是,较大的阈值又会影响其他部分曲线的近似效果,甚至导致近似后曲线不能有效保留原始曲线的结构特征.图2边缘细微变化对骨架的影响Fig.2Influence of the edge details在研究过程中发现,突起的顶角的角度和组成突起的骨架点数目是这类由边缘的细微变化引起的突起区别于骨架曲线上正常结构变化的两个主要特征.因此,在计算突起处的近似偏差时,若能依据这两个特征进行修正,就能够有效地抑制其对骨架曲线近似过程的影响.文献[12]给出了一种确定曲线上某一拐角的支持区域的方法.借鉴这一方法,能够十分方便地确定组成突起的骨架点的数目.设突起的顶点为骨架点P i,定义连接P i两侧的1470自动化学报34卷骨架点P i−k和P i+k的线段的长度为l i,k=Pi−kP i+k(9)令d i,k为点P i到线段P i−k P i+k的垂直距离.从k=1开始,计算l i,k和d i,k,直到l i,k≥l i,k−1(10)或d i,k l i,k ≥d i,k+1l i,k+1,d i,k>0(11)d i,k l i,k ≤d i,k+1l i,k+1,d i,k<0(12)此时,以P i为顶点的突起所包含的骨架点的集合为A(P i)={P i−k,···,P i,···,P i+k|a or b}(13)集合A(P i)中骨架点的数目为Card(A(P i))=2k+1(14)在确定了组成突起的骨架点的集合的同时,还可以进一步确定出该突起的顶角的角度.令a ik=(x i−x i+k,y i−y i+k)(15)b ik=(x i−x i−k,y i−y i−k)(16)则顶角的角度为angle Pi =arccosa ik·b ik|a ik||b ik|(17)此时,本文利用各控制点DP i的Card(A(DP i))和angle Pi对该点处的近似偏差进行如下修正E DPt(S n)=Dist(DP t,S n)+Modify(DP t,S n)(18)Modify(DP t,S n)=c·1Card(A(DP t))(1+cos(angle DPt))(19)其中,c为负实数,用于保持尺度一致.当控制点DP i位于由边缘细微变化引起的突起上时,Card(A(DP i))和angle Pi均较小,修正作用较强,只需用较小的偏差阈值即能实现对该突起的平滑.当DP i位于骨架曲线上正常的结构变化处时, Card(A(DP i))和angle Pi均较大,修正作用很弱,不会影响骨架曲线正常部分多边形近似的效果.这样,新算法就能够在平滑骨架曲线的同时,有效降低骨架对边缘变化的敏感性给骨架曲线的多边形近似带来的影响.3.2结构特征保持对骨架曲线进行多边形近似处理的目的就是在保留原始骨架曲线主要结构特征的前提下,尽可能地简化骨架曲线的结构,压缩数据.因此,能够更为准确地保留原始骨架曲线的主要结构特征,这对于骨架曲线多边形近似算法是十分重要的.使用传统串行多边形近似算法虽然能够有效简化骨架曲线,但是在某些情况下,其近似结果不能准确地反映原始骨架的主要结构特征.例如,图3中曲线a、曲线b分别为不同偏差阈值下多边形近似的结果,其中MaxError a<MaxError b.可以看出,虽然曲线b较曲线a有更少的控制点,数据量也更小,但是,其主要结构与曲线a的相似性较差,不能很好地反映原始曲线的主要结构特征.其原因主要是传统串行多变形近似算法只能保证控制点到近似后曲线的最大偏差不超过预先设定的幅值,却无法防止多数控制点位于近似曲线的同一侧的情况出现.随着同侧偏差的累积,近似曲线逐渐偏离原始曲线.图3引入结构稳定性约束前后近似结果Fig.3Approximated skeletons with and withoutstructure-preservation为了解决这一问题,本文在计算最大近似偏差E(S n)时引入了一个惩罚项,用于控制近似曲线与原始骨架曲线的偏离程度.E(S n)=maxi≤t≤i+kE DPt(S n)+P enalty(S n)(20) P enalty(S n)=r·i+kt=isgn(DP t)E DPt(S n)(21) sgn(DP t)=1,y t−mx t−n≥0−1,y t−mx t−n<0(22)其中,r为正实数,用于保持尺度一致,m和n 分别为S n=DP i DP i+k的斜率和截距,惩罚项P enalty(S n)为线段S n包含的区域内所有控制点12期吕哲等:一种改进的骨架曲线串行多边形近似算法1471近似偏差的累计值.当多数控制点均位于近似曲线同一侧时,累计值将快速增大,最大近似偏差E(S n)也随之快速增大.在最大偏差阈值的限制下,近似曲线的跨度将得到控制,从而有效防止了近似曲线与原始骨架曲线的偏离程度进一步扩大.由图3可以看出,在引入惩罚项后,所得近似曲线c与曲线a更为相似,能够更好地反映原始曲线的主要结构特征.3.3拓扑稳定性保持在对骨架曲线进行多边形近似处理时,除了要保证近似后的骨架曲线能够准确地反映原始骨架的主要结构特征,还需保证骨架曲线各分支与主干之间的拓扑关系不发生变化.由于骨架曲线中的端点和连接点决定了该骨架曲线的拓扑,因此,只要保证端点和连接点的位置不发生变化,即可有效保持骨架曲线的拓扑稳定性.定义骨架点P i的8邻域内像素沿逆时针方向由0到1及由1到0变换的次数为[13]X R(P i)=8i=1|x i+1−x i|(23)定义骨架点P i的8邻域内的骨架点的数目为X H(P i)=8i=1x i(24)基于此,本文对骨架曲线中的端点EP(Skel)和连接点JP(Skel)分别作如下定义EP(Skel)=P∈Skel{X R(P)≤2and X H(P)≤2}(25) JP(Skel)=P∈Skel{X R(P)≥6and X H(P)≥3}(26)此时,可将拓扑稳定性保持过程表述如下:1)在初始化控制点时,将骨架曲线上的所有端点和连接点初始化为控制点;2)在进行串行近似时,首先将各端点作为起点进行近似搜索;3)当搜索遇到连接点时,无论近似偏差是否超过预先设定的阈值,都强行结束该搜索,转而从另一端点开始进行新的搜索;4)当没有新的未搜索的端点时,将连接点作为搜索起点,沿未搜索过的骨架曲线,进行搜索;5)当搜索遇到连接点时,无论近似偏差是否超过预先设定的阈值,都强行结束该搜索,转而从另一连接点开始进行新的搜索;6)直到对所有骨架曲线均完成近似搜索后过程结束.4实验结果分析及讨论在仿真实验中,本文采用形态学骨架提取算法对二值的Island图像进行骨架提取,然后应用新的骨架曲线多边形近似算法对原始骨架进行简化处理.图4中的圆圈标出了骨架曲线上控制点的位置,这些点是确定该骨架形状所需的最少的数据.由图4(b)可见,简化前骨架曲线的结构仍然较为复杂,数据量较大,不利于表示和存储.而图4(c)、4(d)分别给出了在不同偏差阈值(Threshold,TH)下应用本文提出的骨架曲线多边形近似算法进行简化处理后获得的新骨架曲线.由图可见本文算法在较好地保留原始拓扑结构特征的同时,大大简化了骨架曲线的结构,从而有效地压缩了数据.(a)Island1图像(b)原始骨架曲线(a)Island1(b)Originalskeleton(c)本文算法近似结果(d)本文算法近似结果(T H=5.0)(T H=15.0)(c)Approximated skeleton(d)Approximated skeletonby proposed algorithm by proposed algorithm(T H=5.0)(T H=15.0)图4本文算法在不同偏差阈值下的近似结果Fig.4Approximated skeletons by proposed algorithmwith different thresholds在将多边形近似算法应用于骨架曲线近似问题的过程中,为了解决骨架曲线平滑度保持和结构特征保持的问题,本文分别引入了修正项Modify(DP t,S n)和惩罚项P enalty(S n).图5和图6对改进前后的多边形近似算法在骨架曲线多边形近似问题中的应用效果进行了比较研究.1472自动化学报34卷(a)Island2图像(b)原始骨架曲线(a)Island2(b)Originalskeleton(c)改进前算法近似结果(d)改进后算法近似结果(c)Approximated skeleton by(d)Approximated skeleton byconventional algorithm proposedalgorithm(e)图(c)中虚线框部分放大(f)图(d)中虚线框部分放大(e)Part of (c)(f)Part of (d)图5较小偏差阈值下近似结果比较Fig.5Comparison of the approximated skeletons withlower threshold当预先设定的偏差阈值较小时,传统近似算法虽然能够较为准确地保留原始骨架曲线的拓扑结构特征,但是由于原始骨架曲线中存在由目标边缘细微变化引起的噪声突起(如图5(b)所示),因此,较小的偏差阈值将很难有效地抑制这些不重要的噪声信息(图5(c)、5(e)),从而既影响了近似后曲线的平滑程度,又不能在偏差允许范围内最大程度地压缩数据.为了解决这一问题,本文在计算近似偏差时引入了修正项,使得新算法在相同的偏差阈值下,较好地避免了噪声突起的影响,获得了更为出色的骨架曲线多边形近似结果(如图5(d)、5(f)所示).当预先设定的偏差阈值较大时,人们往往希望在不破坏原始骨架曲线拓扑特征的前提下,尽可能地简化骨架曲线的结构.但是,在实际应用过程中,由于传统多边形近似算法以最大近似偏差作为衡量标准,因此难以防止近似曲线偏于原始骨架一侧的情况出现,使得近似曲线在一些情况下不能正确地反映原始骨架曲线的主要结构特征(图6(a)、6(c)).为此,本文引入了基于累计近似偏差的惩罚项,较好地避免了传统多边形近似算法存在的问题.如图6(b)、6(d)所示,在相同偏差阈值下,改进算法的近似结果能够更好地保留原始骨架曲线的结构特征.(a)改进前算法近似结果(b)改进后算法近似结果(a)Approximated skeleton by(b)Approximated skeleton byconventional algorithm proposedalgorithm(c)图(a)中虚线框部分放大(d)图(b)中虚线框部分放大(c)Part of (a)(d)Part of (b)图6较大偏差阈值下近似结果比较Fig.6Comparison of the approximated skeletons withhigher threshold为了更客观地评价算法性能,本文对改进前后多边形近似算法的骨架曲线近似效果进行了量化分析.在实际应用中,常见的评价多边形近似算法性能的两个指标分别为压缩比(Compression ratio,CR)和误差平方积分(Integral square error,ISE),其相应的表达式为CR =nnDP (27)ISE =e i (28)其中,CR 为原始曲线骨架点数目n 与近似后曲线控制点数目nDP 的比值;而ISE 为原始骨架曲线所有控制点与近似后骨架曲线间偏差的累计量.但是,这两个指标往往是相互矛盾的.较大的CR 通常伴随着较大的ISE .Sarkar [14]将两个指标结合起来,构成一个更具一般性的指标,即性能指数(Figure of merit,FOM),其表达式为F OM =CR ISE(29)12期吕哲等:一种改进的骨架曲线串行多边形近似算法1473在相同偏差阈值的情况下,如表1所示,当阈值较小时,改进算法在不明显提高累计偏差的同时,获得了更高的压缩比.这里计算的偏差是相对于含有噪声的原始骨架的,从这一层面上说,抑制噪声突起的过程实际上提高了近似骨架曲线相对于真实骨架曲线的精度;当阈值较大时,改进算法在保持较高压缩比的同时,有效地降低了累计偏差,更好地保持了近似曲线的结构稳定性.相应地,改进方法的综合性能指标F OM也优于传统串行多边形近似算法.表1不同偏差阈值下近似结果量化对比Table1Comparison of approximating results withdifferent thresholds方法T H CR ISE F OM57.5122.49000.0612改进前1510.0415.32270.024158.6126.74180.0679改进后159.2179.66120.0514进一步地,文献[15]提出了一种相对量化指标,通过与最优近似结果的比较来衡量串行近似算法的性能.该量化指标基于两个参数:F idelity(偏差度量参数)和Efficiency(压缩比度量参数).F idelity=E optE appr×100(30)Efficiency=N optN appr×100(31)其中,E appr和N appr为待测试串行近似算法的误差平方和ISE及近似后曲线控制点数目nDP.E opt 为相同近似后曲线控制点数目下,最优算法获得的误差平方和,而N opt为相同误差平方和下,最优算法获得的近似曲线的控制点数目.将两个参数结合可以获得一个更为一般的指标Merit=F idelity×Efficiency(32)本文对广泛应用的基于动态规划的Preze and Vidal最优多边形近似算法[16]进行了拓扑稳定性改造,将其应用于骨架曲线的多边形近似计算,并以此为参考来衡量改进前后的串行多边形近似算法.在相同近似后控制点数目的情况下,如表2和表3所示,约束条件的引入使得改进的骨架曲线串行多边形近似算法在基本不增加算法计算代价的同时,获得了更为接近最优近似曲线的近似结果.这也进一步验证了改进方法在近似性能方面的优势.表2改进前后方法的相对评分Table2Relative scores of the conventional algorithmand the improved one方法T H nDP ISE F idelity Efficiency Merit2.036105.3220.741.729.4改进前12.026221.8332.146.238.51.136102.4721.344.430.8改进后15.026179.6639.761.349.3表3计算用时比较(P43.0,512M)Table3Comparison of computation times(P43.0,512M)方法(nDP=26)改进前改进后Perez and Vidal 计算用时(ms)18.419.11071.2通过文中分析和相关仿真研究,我们知道基于寻优的多边形近似算法虽然能够获得较高的近似精度,但其过高的计算用时是多数实际过程不能允许的;而传统串行多边形近似算法虽然计算效率很高,但其容易受到噪声突起和同侧偏差累积的影响,在很多情况下不能准确描述目标的主要拓扑结构特征.相比之下,本文提出的改进的骨架曲线串行多边形近似算法一方面克服了传统方法存在的不足,其相对评分达到或接近文献[15]中列出的多种基于寻优或学习的曲线近似算法的评分,能够较好地满足平滑骨架曲线、保持目标主要拓扑结构特征的要求;另一方面继承了串行方法计算速度快的优点,在算法效率方面明显优于其他曲线近似算法.5结论骨架是目标形状分析、模式识别等领域中应用最为广泛的一种特征表示方式.但是,由于骨架的提取过程对于多变的目标边缘有较强敏感性,所提取的骨架结构相对复杂,给骨架的应用造成了困难.为此,本文提出了一种改进的串行多边形近似算法,通过平滑度保持、结构保持和拓扑保持等约束条件,成功地将传统多边形近似算法应用于骨架曲线的结构简化问题.相关仿真实验表明,应用本文算法得到的简化骨架曲线不仅能够很好地描述原始骨架曲线的主要拓扑结构特征,而且获得了较高的压缩比,有效地减少了骨架曲线中的冗余信息,具有很高的应用价值.References1Cornea N D,Min P.Curve-skeleton properties,applications, and algorithms.IEEE Transactions on Visualization and Computer Graphics,2007,13(3):530−5482Van E M,Macrini D,Telea A,Sminchisescu C,Dickinson S。
surrogate方法
Surrogate方法是一种近似方法,用于解决复杂问题。
它主要在以下三个方面进行应用:
1. Problem approximation:将复杂问题近似为更易于求解的问题。
2. Functional approximation:为目标函数构造一个替代的显式表达式,以便更容易地对其进行评估和优化。
3. Evolutionary approximation:在遗传算法中,Surrogates方法应用于几乎每个步骤,包括migration、initialization、recombination、mutation和fitness evaluations。
Surrogates方法可以提高近似模型的质量,具体技巧包括模型的选择、数据采样、训练方法和误差度量的选择。
Surrogates通常分为individual-based、generation-based和population-based三种类型。
此外,Surrogates方法还可以与real fitness function一起使用,以防止算法被Surrogates引入的虚假最小值误导。
Evolution control表现在以下三个方面:
1. No Evolution Control:假定代理是high-fidelity。
2. Fixed Evolution Control。
3. Adaptive Evolution Control。
以上内容仅供参考,如需更多信息,建议查阅相关文献或咨询专业人士。
布尔函数计数问题的复杂性布尔函数计数(Boolean Function Counting)是计算机科学领域中一个重要的问题,它涉及到对布尔函数的输出进行计数。
在本文中,我将介绍布尔函数计数问题的复杂性,并讨论一些相关的算法和技术。
一、引言布尔函数是一个将n个布尔变量映射到一个布尔值的函数。
对于n 个布尔变量的布尔函数,它的输入空间大小为2的n次方。
对于每一个输入,布尔函数可以产生两种可能的输出值:0或1。
布尔函数计数问题是要计算给定布尔函数的输出值为1的输入的数量。
二、布尔函数计数问题的复杂性布尔函数计数问题在计算复杂性理论中被归类为一个困难的问题。
具体来说,它属于计数复杂性类问题中的一个重要问题。
计数复杂性类问题是计算问题中的一个子领域,它关注的是计算一个布尔函数的输出值为1的输入数量。
在计算复杂性理论中,有一个知名的问题叫做#P问题,它是计数问题类的一个子集。
布尔函数计数问题被证明是一个#P完全问题,这意味着它在计算复杂性理论中被认为是最困难的计数问题之一。
三、布尔函数计数问题的算法与技术虽然布尔函数计数问题被认为是困难的,但是在实际应用中,有一些算法和技术可以用来近似计算布尔函数的计数。
1.符号方法(Symbolic Method)符号方法是一种基于布尔函数的代数表示的技术。
它将布尔函数表示为一个多项式,然后利用多项式的性质进行计算。
符号方法在一些特定的布尔函数计数问题上表现良好,但对于一般的布尔函数计数问题,它的表现可能会受到布尔函数的复杂性影响。
2.蒙特卡洛方法(Monte Carlo Method)蒙特卡洛方法是一种基于概率的近似计算方法。
它通过生成随机输入并计算布尔函数的输出值,然后根据随机样本的比例来估计布尔函数的计数。
蒙特卡洛方法是一种简单但有效的算法,但是它的计算精度受到样本数量的限制。
3.近似算法(Approximation Algorithms)近似算法是一种计算布尔函数计数问题的近似解的算法。
零阶保持器法近似计算The zero-order hold method is a numerical approximation technique commonly used in digital signal processing and control systems. It involves maintaining a constant value of a signal or function between sampling instants, effectively creating a piecewise constant approximation of the original signal. This method is particularly useful when converting a continuous-time signal into a discrete-time representation for digital processing.零阶保持器法是一种常用于数字信号处理和控制系统的数值近似技术。
它涉及在采样瞬间之间保持信号或函数的恒定值,从而有效地创建原始信号的分段常数近似。
当将连续时间信号转换为离散时间表示以进行数字处理时,这种方法尤其有用。
In the context of digital control systems, the zero-order hold is often employed to model the behavior of analog signals as they are sampled and held constant by digital converters. This approximation introduces a form of quantization error, as the continuous variations of the analog signal are replaced by a series of flat segments. However, under certain conditions, the zero-order hold can provide a reasonably accurate representation of the original signal, particularly when the sampling frequency is high relative to the bandwidth of the signal.在数字控制系统的背景下,零阶保持器通常用于模拟模拟信号在被数字转换器采样并保持恒定时的行为。
冲突(collision )给两个键分配的位置相同称为冲突。
处理冲突的方式很多,最简单的办法如下:如果两个键映射到了同一个位置,就在这个位置存储一个链表。
散列函数很重要。
最理想的情况是,散列函数将键均匀地映射到散列表的不同位置。
性能在平均情况下,散列表执行各种操作的时间都为,称为常量时间。
在最糟情况下,散列表所有操作的运行时间都为O(n)——线性时间。
在使用散列表时,避开最糟情况至关重要。
为此,需要避免冲突。
而要避免冲突,需要有:较低的填装因子良好的散列函数O (1)填装因子填装因子度量的是散列表中有多少位置是空的。
填装因子为1表示所有键都对应一个位置,大于1意味着键的总数超过了位置数量。
一旦填装因子开始增大,就需要在散列表中添加位置,称为调整长度(resizing )。
填装因子越低,发生冲突的可能性越小,散列表的性能越高。
一个不错的经验规则是:一旦填装因子大于0.7,就调整散列表的长度。
良好的散列函数良好的散列函数让数组中的值呈均匀分布。
糟糕的散列函数让值扎堆,导致大量的冲突。
第6章广度优先搜索广度优先搜索(breadth-first search,BFS)让你能够找出两样东西之间的最短距离,不过最短距离的含义有很多。
使用广度优先搜索可以:编写国际跳棋AI,计算最少走多少步就可获胜编写拼写检查器,计算最少编辑多少个地方就可将错拼的单词改成正确的单词根据你的人际关系网络找到关系最近的医生图简介解决最短路径问题(shorterst-path problem)的算法被称为广度优先搜索。
图由节点(node)和边(edge)组成。
一个节点可能与众多节点直接相连,这些节点被称为邻居。
广度优先搜索广度优先搜索是一种用于图的查找算法,可帮助回答两类问题。
第一类问题:从节点A出发,有前往节点B的路径吗?第二类问题:从节点A出发,前往节点B的哪条路径最短?队列(queue)队列类似于栈,不能随机地访问队列中的元素。
职称系统分支专业第一篇:职称系统分支专业附件职称软件系统分支专业名称高校系列分支专业:1、马克思主义理论、哲学、法学、党史2、经济学、管理学3、体育4、艺术5、教育心理学6、历史7、中国语言文学8、外国语言文学9、数学10、物理学、力学11、化学、化工、非金属材料12、自动控制、计算机、仪器仪表、电气工程、电子学、通讯技术13、机械设计与制造、冶金、金属材料14、建筑、土木、水利、测绘、铁路、公路、水运、地理、地质15、农学、林学、畜牧、兽医、生物16、医学17、高教管理、学生思想政治教育18、实验技术自科系列分支专业:农业(有子专业)林业轻工化工信息机械交通水利医疗卫生实验技术社科系列分支专业:文学哲学历史经济科社社会学法学高校管理工程系列分支专业(有子专业):林业土建公安地勘质量技术监督机械与动力工程农业工程环境工程冶金地质水利水电纺织电子通迅与自动控制技术交通化工轻工建筑材料有色金属管理科学与工程电气工程测绘矿山工程安全经济系列分支专业:工商管理农业商业财政税收金融保险运输人力资源邮电房地产旅游建筑市场营销图书系列分支专业:图书馆管理文献采访文献分编借阅服务参考咨询图书馆现代技术文献保护研究辅导社会教育艺术系列分支专业(有子专业):编剧导演音乐舞台美术表演美术文字编辑摄像录音会计系列分支专业:会计政工系列分支专业:思想政治工作出版系列分支专业:编辑技术编辑校对第二篇:美国计算机专业分支以及介绍申请美国大学计算机专业(CS)的学生非常多。
美国大学CS专业的研究分支也非常多,不同分支对学生的要求也会不同,因此,学生们要根据自己的条件选择适合自己的研究方向。
本文主要对美国大学计算机专业十三个分支方向做了详细的阐述,主要是美国计算机专业课程方面的。
一、体系结构、编译器和并行计算 Architecture, Compilers and Parallel Computing 体系结构和编译器的研究主要集中在硬件设计,编程语言以及下一代编译器。