Lower Bound

Lower Bound

从极点法的O(n^4^)复杂度,到极边法的O(n^3^),再到增量构造法和Jarvis March的O(n^2^),我们经历了将特定问题算法不断优化、降低复杂度的过程。那么还有比O(n^2^)更高效的算法吗?凸包构造算法的下界是什么?推广到一般情况,在计算模型固定的情况下特定问题的复杂度下界又是如何确定的?

在计算模型固定的情况下特定问题的复杂度下界(lower bound)是确定的。严谨考虑,在设计算法前应该先确定下界是多少。

对于某个问题的特定算法,我们可以用时间复杂度来评价算法的好坏。算法能达到的下界也就是所谓问题的难度。当然这种评价通常是比较麻烦的,有时候甚至是不可行的。这就要引入新的的方式来衡量一个算法的好坏。

规约(reduction)

我们引入规约(reduction)的方法来间接衡量一个算法。规约简单来讲就是用一个“参照物”对比待评算法,得到算法的复杂度。规约的一般方法如图:

左侧是已知的问题A,已经明确它的难度,右侧是待分析问题B,复杂度未知。我们在二者之间建立起一种基本reduction关系:linear-time reduction

linear-time reduction具体表述为:

能够进行上述操作,就称为:A问题可以规约到B问题(problem A is linear-time reducible to problem B)。注意表述方式防止搞混A和B的位置。

曹冲称象

可以通过曹冲称象的故事来帮助理解规约的思想。要解决的问题是:没有秤能直接称量大象重量(问题B的难度无法直接衡量),解决方案是:利用船和石块间接称量。石头块的重量是可以直接称量的(问题A的难度是已知的),利用船和水来转换石头和大象的重量是可操作的(规约的方法是可操作的)。【这里的规约关系(Reduction relationship)是指曹冲成像时的船和水】

规约记号

引入规约记号,problem A is linear-time reducible to problem B表示为:
$$
A≤_NB
$$
将问题A、B的难度分别表示为|A|,|B|。规约记号的意思相当于|A|≤|B|,A的下界必然就是B的下界。

规约的过程

  1. 将A的输入转化为B的输入
  2. 经过B的某种算法获得解后又转化为A的解,也就是这个算法也是解决A问题的算法。

已知A问题的下界,那么这个算法必然不会低于A的这个下界。

构造凸包的下界

按照“曹冲称象”的规约思想,分析问题的难度,最重要的在于找到“石头”,而船就是规约这种方法。以二维凸包(2d-CH)来分析,首先将待解决的问题放到规约记号右边,而左边的“石头”就是排序算法
$$
Sorting≤_N2D-CH
$$
排序是纯粹的数值计算问题,而凸包是典型的几何问题,二者是如何联系在一起的呢?前面
增量构造法Jarvis March算法正是分别由两种排序算法来类比引入的,可见排序和凸包之间有深刻的内在联系。二者之间的联系可以通过下图表示:

image-20200312231702595

首先清点要做的任务:

  • 可以在线性时间内,将排序问题的输入转化为凸包问题的输入

    • 排序问题的输入可以表示为x轴上的一系列的点(图中蓝色点)。然后将这些点转化为凸包问题的输入,就是将这些待排序的数转化为平面上的点。引入辅助线——一条抛物线,例如图中蓝色虚线。接下来要对蓝色点做到抛物线上的映射(O(n)),映射在抛物线上的点用绿色标出。这样就完成了将待排序数字转化为平面上点的操作。接下来就可以用某种算法将绿色点构造为凸包,即图中CH(P)。
  • 可以在线性时间内,将凸包问题的结果转化为排序问题的结果

    • 凸包CH(P)就是问题B的解,如何将B的解转化为A的解?注意最左和最右边两点的连线,即图中1和4的连线4→1。除去这条连线之外,其他首尾相接的连线:1→2,2→3和3→4都是“沿着x方向单调的”,遍历这些首尾相连的边(O(n))就能得到一系列的数值,并且已经是有序的了。这样就将凸包问题的解——凸包CH(P) 转化为了排序问题的解——有序数值序列。

两次转化说明规约是可行的,因此2d-CH问题的下界可由sorting的下界确定。一般而言,排序问题的难度是确定的:O(nlogn)。2d-CH问题的下界也就是:
$$
O(nlogn)
$$
更高维的凸包问题下界也是如此。

增量构造法和Jarvis March的O(n^2^)到O(nlogn)之间的鸿沟能否跨越呢?是否存在O(nlogn)复杂度的凸包构造算法?后续文章会有回答。


发布了33 篇原创文章 · 获赞 10 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览