为什么更大的输入量意味着更难的实例?


12

在下面,假设我们正在使用无限磁带的图灵机。

在向某人解释时间复杂性的概念以及为什么要相对于实例的输入大小对其进行度量时,我偶然发现了以下说法:

[..]例如,很自然,与将两个整数与3位相乘相比,您需要更多的步骤来将两个整数与100000位相乘。

这项主张令人信服,但不知何故。在我遇到的所有算法中,输入大小越大,您需要的步骤就越多。换句话说,时间复杂度是输入大小的单调递增函数

时间复杂度始终是输入大小增加的函数吗?如果是这样,为什么会这样呢?除了挥舞手外,还有其他证据吗?


“直接成比例”具有特定的数学含义,即基本上是线性时间。换句话说,如果输入的大小为,则时间与时间成正比,则算法将在时间运行。我想这不是您的意思,因为许多算法不是在线性时间内运行,即排序。您能进一步解释吗?ncn
SamM

因此,您要问的是一种可在时间内运行的算法? 表示算法与输入大小无关,同时运行,表示输入越大,算法运行速度越快。我想不出在那个时候可以运行的那种方法,但是这种表示法是相当普遍的,因为一种算法通常会在时间之内运行,而在另一种情况下换句话说,这需要时间,还有一些其他项会随着输入的增加而变小。o(1)O(1)o(1)O(n2)+o(1)O(n2)
SamM

好问题。计算某个大的素数的反例怎么样(这只是一个递增函数)?@Sam请注意,增加函数表示时间必须沿实线的某个点减少(即)。c/ncncf(b)<f(a),a<b
Casey Kuball 2012年

@Darthfett恐怕我不会关注。并非所有增加的函数都在实际直线上的某个点处减小。
SamM

@Jennifer是的,我知道,这很有道理。我建议您使用术语因为它具有您想要的含义。我想再次强调,直接比例意味着线性。我了解您的意思,但这可能会使第一次阅读该问题的人感到困惑。o(1)
SamM

Answers:


12

时间复杂度始终是输入大小增加的函数吗?如果是这样,为什么会这样呢?

号考虑一个图灵机暂停后步骤当输入大小是偶数,并停止后步骤时,为奇数。nnn2n

如果您是说问题的复杂性,答案仍然是“否”。偶数的素数测试的复杂性要比奇数小得多。


4

时间复杂度始终是输入大小增加的函数吗?如果是这样,为什么会这样呢?除了挥舞手外,还有其他证据吗?

令表示输入大小。要读取整个输入,图灵机已经需要步。因此,如果您假设某个算法必须读取其整个输入(或者对于某个常量,则为),那么您最终总是会获得至少线性运行时间。nnn/cc


用“单调递减的运行时间函数”定义算法的问题是,您必须以某种方式定义的运行时间。您必须将其设置为某个有限值。但是对于,存在无限可能的值,因此最终得到的函数对于无限多个值都是常数。n > 1n=1n>1


亚线性算法可能对您很感兴趣,因为它不会读取整个输入。参见例如http://www.dcs.warwick.ac.uk/~czumaj/PUBLICATIONS/DRAFTS/Sublinear-time-Survey-BEATCS.pdf


存在亚线性算法。例如,请参见people.csail.mit.edu/ronitt/sublinear.html。这是一个相当新的领域,但非常有趣。还有其他反例。在给定的排序列表中查找元素需要在RAM模型中花费时间。我同意您的帖子背后的想法。随着输入变大,算法花更少的时间是没有意义的,因为没有时间读取所有输入(怎么知道花更少的时间?)。但是我不知道如何证明它们不存在,并且一个窍门不能使其成为。o 1 O(logn)o(1)
SamM

@Sam:对不起,在我编辑(添加亚线性算法)之前,我没有看到您的评论。
Christopher

恰恰相反; 在添加我的评论之前,我没有看到您的修改。我会删除它,但后半部分仍然适用,并且附加链接不会伤害OP
SamM 2012年

1
一个反例:像的常数函数。您描述的内容适用于需要读取其输入的功能。f(x)=0
卡夫

1

关系是有根据的,即自然数中没有无限的下降序列。由于(最坏情况)运行时函数映射到自然数,因此所有运行时函数必须位于,也就是说,所有运行时函数(在限制范围内)都不得减少。Ω 1 (N,)Ω(1)

就是说,平均运行时可以包含振荡组件,例如Mergesort


我看不出这个答案与问题有什么关系。
A.Schulz

@ A.Schulz给出了以下主要问题的证明:“时间复杂度是否总是输入大小的增加函数?”,将“增加”理解为“非减少”,即不一定严格增加。
拉斐尔

1
那么,“不增加”并不一定意味着“下降?还是把它周围的非递减的其他方式增加。
A.Schulz

@ A.Schulz:不过,我的解释似乎是Jennifer感兴趣的
拉斐尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.