Ⅰ 如何判断算法优劣
算法的好坏是看它的运行效率比如递归一般来说是比较耗时间的,也就是说效率低当然也看具体情况,有的算法在基数小的情况是差不多,性能反而还好点
Ⅱ 遗传算法、数值算法、爬山算法、模拟退火 各自的优缺点
遗传算法:其优点是能很好地处理约束,跳出局部最优,最终得到全局最优解。缺点是收敛速度慢,局部搜索能力弱,运行时间长,容易受到参数的影响。
模拟退火:具有局部搜索能力强、运行时间短的优点。缺点是全局搜索能力差,容易受到参数的影响。
爬山算法:显然爬山算法简单、效率高,但在处理多约束大规模问题时,往往不能得到较好的解决方案。
数值算法:这个数值算法的含义太宽泛了,指的是哪种数值算法,阵列算法与爬山算法一样,各有优缺点。
(2)算法效率优劣扩展阅读:
注意事项:
遗传算法的机制比较复杂,在Matlab中已经用工具箱中的命令进行了打包,通过调用可以非常方便的使用遗传算法。
函数GA:[x,Fval,reason]=GA(@fitnessfun,Nvars,options)x为最优解,Fval为最优值,@Fitnessness为目标函数,Nvars为自变量个数,options为其他属性设置。系统的默认值是最小值,所以函数文档中应该加上一个减号。
要设置选项,您需要以下函数:options=GaOptimset('PropertyName1','PropertyValue1','PropertyName2','PropertyName3','PropertyValue3'…)通过该函数,可以确定一些遗传算法的参数。
Ⅲ 算法优劣的五个标准是什么
1、时间复杂度:同样的输入规模花费多少时间;
2、空间复杂度:同样的输入规模花费多磨嫌银少空间;
瞎宴3、稳定性:不会因为输入的不同而导致不稳定的情况发生;
4、算法思路是否简单:越简单越容易实现越好;
5、渐近时间复杂度:是指当问题规模趋向无穷大时,该算法时间复杂度的数量者塌级。
Ⅳ 举例说明何谓算法,特点是什么评价一个算法的优劣,主要从哪些因素分析
评价算法优劣的四个分析因素:
1.正确性
能正确地实现预定的功能,满足具体问题的需要。处理数据使用的算法是否得当,能不能得到预想的结果。
2.易读性
易于阅读、理解和交流,便于调试、修改和扩充。写出的算法,能不能让别人看明白,能不能让别人明白算法的逻辑?如果通俗易懂,在系统调试和修改或者功能扩充的时候,使系统维护更为便捷。
3.健壮性
输入非法数据,算法也能适当地做出反应后进行处理,不会产生预料不到的运行结果。数据的形式多种多样,算法可能面临着接受各种各样的数据,当算法接收到不适合算法处理的数据,算法本身该如何处理呢?如果算法能够处理异常数据,处理能力越强,健壮性越好。
4.时空性
算法的时空性是该算法的时间性能和空间性能。主要是说算法在执行过程中的时间长短和空间占用多少问题。
算法处理数据过程中,不同的算法耗费的时间和内存空间是不同的。
(4)算法效率优劣扩展阅读:
算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。此外,一个算法还具有下列5个重要的特性。
(1)、有穷性
一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有穷时间内完成。
(2)、确定性
算法中每一条指令必须有明确的含义,读者理解时不会产生二义性。即对于相同的输入只能得到相同的输出。
(3)、可行性
一个算法是可行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现的。
(4)、输入
一个算法有零个或多个的输入,这些输入取自于某个特定的对象的集合。
(5)、输出
一个算法有一个或多个的输出,这些输出是同输入有着某种特定关系的量。
Ⅳ 如何衡量一个算法的优劣有哪些标准
如何衡量一个算法的优劣,见人见智。一个好的算法首先是要能够满足场景的需求,其次是在能够最大限度的节省资源(最低成本原则),最后是实现逻辑简单,比较容易理解(本质上也是最低成本原则)。但是,在现实中硬件资源不变,算法不变情况下,算法执行的效率提高,相对应往往是资源消耗增加。一个合格的算法是在一个可以接受的范围内满足场景需求,而一个优秀的算法则是在满足场景需求的基础上,最大限度的节省资源,简化逻辑。
比如我要完成一项计算任务,要求是在5分钟执行完成。现在有算法1:需要执行1分钟,消耗内存8G;算法2需要执行3分钟,需要消耗内存256M。那么,我们应该如何选择呢?首先,这两种方案都能满足我们的需求;其次:算法1的需要消耗的资源是算法2的32倍,算法1的效率是算法2的3倍。在这种满足需求的情况下,往往更倾向于选择算法2。衡量一个算法的优劣往往要评估多方因素,结合实践,综合比较最终得出结论。
衡量一个算法的的标准主要有3个: 算法的执行效率 , 算法的内存消耗 和 算法的稳定性 。