第五讲 软计算方法
- 格式:ppt
- 大小:1.50 MB
- 文档页数:42
BF(Brute Force)算法(朴素的模式匹配算法-蛮力算法)从主串S的第一个字符开始和模式T的第一个字符进行比较,若相等,则继续比较两者的后续字符;若不相等,则从主串S的第二个字符开始和模式T的第一个字符进行比较,重复上述过程,若T中的字符全部比较完毕,则说明本趟匹配成功;若最后一轮匹配的起始位置是n-m,则主串s中剩下的字符不足够匹配整个模式T,匹配失败。
例如:在串S=“abcabcabdabba”中查找T=“ abcabd”:先是比较S[0]和T[0]是否相等,然后比较S[1] 和T[1]是否相等……我们发现一直比较到S[5] 和T[5]才不等,即S[5]与T[5]失配。
当这样一个失配发生时,T下标必须回溯到开始,S下标回溯的长度与T相同,然后S下标增1,然后再次比较。
这次立刻发生了失配,T下标又回溯到开始,S下标增1,然后再次比较。
这次T中的所有字符都和S中相应的字符匹配了,函数返回T 在S中的起始下标3。
其时间复杂度为O (m*n)。
KMP算法1.在串S和串T中分别设置比较的起始下标i和j;2.循环直到S中所剩字符长度小于T的长度或T中所有字符均比较完毕止:2.1如果S[i]=T[j],则i,j各加1继续比较S和T的下一个字符;否则:2.2 将j滑动到next[j]的位置,即j=next[j];2.3 如果j=-1,则将i和j分别加1,准备下一趟比较;2.4 如果T中所有字符均比较完毕,则返回匹配的起始下标;否则,返回0。
当第一次搜索到S[5]和T[5]不等后,S下标不是回溯到1,T下标也不是回溯到开始0,而是根据T中T[5]=‘d’的模式函数值取next[5]=2,直接比较S[5]和T[2]是否相等。
怎么求串的模式函数值next[j]?定义:(1)next[0]= -1 意义:任何串的第一个字符的模式值规定为-1。
(2)next[j]= -1 意义:模式串T中下标为j的字符,如果与首字符相同,且j的其时间复杂度为O(m+n)。
软计算方法作者:史柠玮来源:《中国科技纵横》2017年第11期摘要:“软计算”方法的应用对人工智能的技术发展有着积极的促进作用。
灵活性、容错性和鲁棒性是该方法在实际应用中表现出来的主要特点。
本篇文章主要从软计算方法的发展背景入手,对基于软计算方法的人工智能发展新思路进行了探究。
关键词:软计算方法;人工智能;发展思路中图分类号:TP18 文献标识码:A 文章编号:1671-2064(2017)11-0023-02软计算方法是对计算智能系统进行创新的一种表现。
它主要是在模糊数学有关知识与智能化技术手段有机结合的基础上,通过建模方式对复杂大系统中一些不确定性问题进行求解的技术方法。
这一智能化计算方法在20世纪末开始得到国外学者的关注。
随着该计算方法的不断发展,除了最早的模糊逻辑、模糊计算和神经计算以外,进化计算、混沌系统、序数优化和模拟退火也成为了软计算体系中的重要组成部分。
从该智能化计算技术发展现状来看,它所构建出来的数学模型可以对客观事物进行更为真实的反映,让相关问题的求解过程表现出智能化特性。
1 软计算方法的发展背景针对客观环境中存在不确定性因素,从资源有限的现实情形入手,对现实问题进行决策与控制,是人们在生存发展过程中的永恒主题[1]。
在对人类寻求现实问题解决方式的措施进行探究以后,我们可以发现。
定型化信息处理方式与定量化信息处理方式之间的结合是人类在未来阶段所要遵循的一条重要技术路线。
从人类技术手段的发展来看,随着计算机技术不断发展,人工智能模式成为了一种在计算机科学、控制论、信息论和神经生理学等多种学科相互作用下而形成的综合性计算模式。
物理符号系统假设是该学科的主要作用机理。
但是从这一技术的应用情况来看,这种基于物理符号系统的人工智能技术表现出来的是一种静止化、精确化的逻辑处理方式。
但是这种逻辑处理方式与人脑思维之间也存在着一定的差异性。
由于人们在共同的思维下并不能产生共同的思维方式,因而通过向计算机灌输百科全书的方式来获取令人满意的问题处理方式的措施只能在一定的专业范围内得到应用,因而,在20世纪90年代以后,学术界所普遍认同的新型科学范式是一种以不确定性、非线性和时间不可逆性为内涵的研究范式。
计算的方法和技巧
计算的方法和技巧多种多样,具体取决于计算的内容和目标,以下提供一些通用的数学计算技巧和方法:
1. 简化运算
- 运用分配律、结合律、交换律等基本运算法则,可以简化复杂的表达式。
- 对于乘法和除法,尽可能先算出易于计算的部分,如分解因数、提取公因数等。
- 利用凑整思想,比如把数值转换为容易口算或心算的形式。
2. 估算技巧
- 当不需要精确值时,可以通过四舍五入或其他估算方法快速得出近似结果。
3. 巧用公式
- 学习并熟练掌握各种数学公式,例如求解面积、体积、周长、角度、三角函数、代数方程、几何图形性质等。
4. 分步解决复杂问题
- 对于复杂的问题,学会将其拆分成若干个小问题逐个击破,逐步求解。
5. 使用图表辅助
- 在解决涉及数据较多的问题时,绘制图表(如条形图、饼图、折线图等)能直观地看出数量关系,有助于计算。
6. 计算器和计算机编程
- 现代技术工具如计算器、应用工具表格或者编程语言等都可以用来提高计算效率,尤其是在处理大数据量或复杂数学模型时,尤为高效。
7. 记忆常用数字规律
- 如九九乘法表,平方数的记忆,特殊三角函数值的记忆等,都能有效提升计算速度。
8. 检查核验
- 完成计算后务必进行检查,可通过反向计算、单位换算检验等方式确认答案正确性。
以上为一些通用的基础计算方法和技巧,供参考。
第4章 软计算导读⎧⎪⎪⎪⎧⎪⎨⎨⎩⎪⎪⎧⎪⎨⎪⎩⎩同理可得直线过原点软计算可解得直线过曲线上一已知点求而不设不妨设设而不求 在这一章,我们来讲讲什么是“软计算"。
在第3章,我们给同学们讲了什么是“硬计算”。
但是圆健曲线中的计算问题不只是硬生生去计算的问题,还需要一些我们必须掌握的计算技巧。
我们称之为“软计算”能力。
4.1同理可得什么是“同理可得"?我们先看下面这个简单例子:【例4.1】 求直线1:l y ax b =+和2311:1,:1,l k y kx l y x k a a ⎛⎫=+=-+≠- ⎪⎝⎭的交点坐标。
【解析】联立1:l y ax b =+和2:1l y kx =+可解得111,b a bkx y a k a k --==--。
显然1l 和3l 的交点坐标没有必要联立,只需将1l 和2l 的交点坐标中的k 换成1k -即可,即22(1),11k b ak bx y ak ak -+==++。
4.1虽然很简单,但是这个思想在圆锥曲线中经常中碰到。
圆锥曲线中经常会让我们多次求解交点的坐标,或者多次求不同线段的长度,我们已经在第3章中碰到过多次。
但是你会发现这个“同理可得”有时用不了。
比如下面这个例子:【例4.2】求直线1:b l y ax =+和2311:1,:1,l k y kx l y x k a a ⎛⎫=+=--≠- ⎪⎝⎭的交点坐标。
【分析】你会发现直线3l 的方程不能简单地通过把2l 中的k 换成1k-得到,所以只有分别联立求解了。
但是如果我们一定要利用“同理可得”,怎么办呢?看下面的解析。
【解析】联立直线1:l y ax b =+和直线:l y kx m =+解得,m b am bkx y a k a k--==--,然后将m 换成1可得1l 和2l 的交点1,b a bk x y a k a k --==--,最后将k 换成1k-,m 换成-1可得1l 和3l 的交点(1),11b k b akx y ak ak -+-==++。