介绍几个重要的算法

简介:        在前一段时间,我看了不少的论文,里面涉及到许许多多“奇怪”的算法。最近,我又看了一些专门讲解“算法”的书籍,了解了各算法的来历、特点及应用情况等。

       在前一段时间,我看了不少的论文,里面涉及到许许多多“奇怪”的算法。最近,我又看了一些专门讲解“算法”的书籍,了解了各算法的来历、特点及应用情况等。


       在本文中,我将对一些重要的算法进行简单的介绍。


1) 灰色预测算法

       在求解某些问题的过程中,需要对相关数据进行预测,这时就要用到灰色模型(gray model),其理论基础是灰色系统理论。

        灰色预测算法通过鉴别系统因素之间发展趋势的相异程度,并对原始数据进行生成处理来寻找系统变动的规律,生成有较强规律性的数据序列,然后建立相应的微分方程模型,从而达到预测事物的未来发展趋势的目的。


2) 遗传算法

       遗传算法是智能算法的一种,它模拟达尔文生物进化论的自然选择和孟德尔遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。

       一般的遗传算法包括七个过程:编码、解码、交配、突变、倒位、个体适应度评估和复制。


3) 粒子群算法

       现代算法分为硬计算和软计算。前者需要建立数学模型,后者是一种动态自适应求解方式且不需要深入的数学模型。

        粒子群(PSO)算法最早于1995年提出,它是基于群鸟的觅食过程。此过程其实是一个最佳决策的过程,每只鸟的初始状态处于随机位置,飞翔的方向也是随机的。但是,随着时间的推移,这些初始处于随机位置的鸟类通过群内相互学习、信息共享和个体不断积累自身寻觅食物的经验,自组织成一个群落,并逐渐朝唯一的目标前进。

        PSO算法的优点是收敛速度快和更容易找到全局最优值等。


4) 模拟退火算法

       模拟退火算法(SA)是所谓的三大非经典算法之一,它是一种通用概率算法,用来在一个大的搜索空间内寻找问题的最优解。

       现代的SA形成于20世纪80年代初,其思想源于固体的退火过程,即将固体加热至足够高的温度,再缓慢冷却;升温时,固体内部粒子温度升高变为无序状,内能增大,而缓慢冷却时粒子又逐渐趋于有序。

       SA也可应用于组合最优化问题中。


5) 人工神经网络算法

       人工神经网络(ANN)具有人脑的学习记忆功能,它是由大量简单的基本元件(神经元)相互连接,通过模拟人的大脑神经处理信息的方式,进行信息并行处理和非线性转换的复杂网络系统。

       神经网络的优点是多输入多输出实现了数据的并行处理以及自学习能力。目前技术最成熟、应用范围最广泛的两种网络是前向反馈(BP)网络和径向基(RBF)网络。

       人工神经网络主要应用于数据建模、预测、模式识别和函数优化等。


6) 小波分析

       小波分析是在傅里叶变换的基础之上发展起来的,它是纯数学、应用数学和工程技术的完美结合。

       小波分析的核心是小波函数的构建和多尺度分析,小波函数的主要特质是快速衰减性和震荡性,其子函数都是相互正交的。


7) 计算机虚拟

       计算机虚拟是应用电子计算机对系统的结构、功能和行为以及参与系统控制的人的思维过程和行为进行动态逼真的一种虚拟行为。虚拟过程包括组建模型和计算机实验两个主要步骤。

       虚拟的工具主要由虚拟软件和虚拟硬件组成。计算机虚拟技术能够带来巨大的社会和经济效益。


       可以看出,各算法具有以下共同点:1)具有较成熟的理论基础,特别是数学基础;2)大部分算法的目的都是力求最优解;3)其它学科的发展能够促进计算机科学的发展,许多优秀算法均可以在实际生活中找到原型。


       期待未来有更为优秀的算法出现!
目录
相关文章
|
3月前
|
算法 C++ 容器
【C++11新算法】all_of、any_of、none_of算法
【C++11新算法】all_of、any_of、none_of算法
|
机器学习/深度学习 算法 TensorFlow
秒懂算法 | RIB算法
结合微观行为序列的推荐(recommendation with sequences of micro behaviors, RIB)在物品序列的基础上,加入了对异构行为和停留时间的建模。对异构行为的建模使得模型能够捕捉更加细粒度的用户兴趣,而用户在某个页面上的停留时间则反映了用户对这个页面的感兴趣程度,并且停留时间越长,购买商品的转化率通常也会越高。
178 0
秒懂算法 | RIB算法
|
算法
算法练习——(2)逢7过
中国朋友们聚会时喜欢玩"逢7过"的游戏,老外有个同样的游戏,FlipFlop,它从1计数到100,顺序输出。当遇到3的倍数就要说“Flip”,遇到5的倍数就要说“Flop”,既为3的倍数又为5的倍数则要说“FlipFlop”,说错的话表演节目或罚酒。
139 0
|
算法
蚂群算法
蚂群算法
70 0
蚂群算法
|
算法
A*算法
A*算法
172 0
A*算法
|
算法 前端开发 JavaScript
|
算法
算法题:出现
题目: 给定 n 个自然数,求没有在这 n 个自然数中出现过的最小的自然数是多少。
88 0
|
算法
算法题
1.厘米换算英尺英寸 分析:题目非常简单,但是今晚喝的有点多,有点迷 如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。
426 0
算法题
|
算法 Java C++
算法题0
第一题:判断数字 给定一个整数 n,请你统计其各位数字中 4 和 7 的出现次数。 如果 4 的出现次数加上 7 的出现次数恰好等于 4 或 7,则输出 YES,否则输出 NO。 例如,当 n=40047 时,4 出现了 2 次,7 出现了 1 次,2+1=3,既不是 4 也不是 7,因此,输出 NO;当 n=7747774 时,4 出现了 2 次,7 出现了 5 次,2+5=7,因此,输出 YES。
130 0