一个算法复杂度的upper bound 和lower bound是啥

我感觉你应该不是在说算法的upper bound 和lower bound的吧? 而是在问一个问题的upper bound 和lower bound 吧? 一个算法主要的衡量标准是其计算复杂度(如平均复杂度, 最大复杂度什么的)而不是bound, 一个问题的upper bound 通常是指目前现有的解决这一问题的最优的算法(当然并非绝对), 而 lower bound 什么的通常指解决这一类问题至少所需要的复杂度是多少.
举一个简单的例子, 如在量子无序查找的问题中, Grover 算法可以以O(\\sqrt{N})的复杂度(假设N个里面找一个)找到那个解, 是目前最好的算法, 于是在这个问题里的Upper bound就是\\sqrt{N}.
而BBTH98中(当然在此之前好像也有一个结果是基于hybrid method的, 不过我忘了是谁写的了, 好像还在Grover算法之前) 证明了对于任何一个无序的数据集中的查找算法至少需要O(\\sqrt{N})次询问才行,,,,这就说明了这个问题的lower bound是这么多. 另: 这也同时证明了Grover 算法是渐进最优的(紧的).

■网友
lower bound的定义:
An estimate on the minimum amount of work needed to solve a given problem.
【一个算法复杂度的upper bound 和lower bound是啥】 对一个给定的问题,解决这个问题有一个需要的最低运算量,对这个最低运算量的评估,就是lower bound。

■网友
最近也在思考这个lower bound。
我的研究工作是图的编辑距离,通过图的编辑距离来计算俩个图的相似度。上界(upper bound)就是这个图的编辑距离的最多计算的量。
比如给定查询图Q,一个图的数据库D={A,B,C,E}找出编辑距离阈值小于4的所有的图。假设如果没有这个上界和下界,我必须要计算(A,Q) (B,Q) (C,Q) (E,Q)这几组图的编辑距离1,3,5,7;这个时候如果通过分析,计算出一个下界公式(lower bound),数学形式表达为:
一个算法复杂度的upper bound 和lower bound是啥

,那么对于所有不满足这个下界的 一个算法复杂度的upper bound 和lower bound是啥
,都不需要要再进行计算,相当于不去考虑哪些表面上压根不符合要求的图。
再举一个形象的例子,给你一堆数据,要你找8在这对数据的位置,如果正确答案是第40个位置,那么给出下界:所有小于等于30的位置的数据不去考虑,你只要去比较30个位置以后的数据就可以了。
大体的意思是上界(upper bound)和下界(lower bound)可以作为一种索引的方法,减小搜索的空间,让计算问题(特别是搜索类的问题)效率更加。
以上是我的理解,数学语言和符合用法不太严谨,如果有什么意见可以和我联系。

■网友
算法哪有lower bound……


    推荐阅读