Questions tagged «computability»

与可计算性理论(又称为递归理论)有关的问题

1
是否存在针对终端程序完全优化的编译器?
在安德鲁·W·阿佩尔(Andrew W. Appel)的《现代编译器在ML中的实现》一书中,他说,在第17章中,可计算性理论表明,总是有可能发明新的优化转换,并继续证明完全优化的编译器将解决停顿问题:不产生输出且永不停止的Q可以轻松地用其最佳表示Opt(Q)代替,即“ L:goto L”。因此,完全优化的编译器可以解决停止问题。 所以我的问题是:是否存在用于终端程序的完全优化的编译器?我唯一的想法是:即使保证某个程序可以终止,它仍然可以任意复杂,对于任何具体的优化编译器C,一个人也许可以构造一个以C作为输入的程序,并以某种方式生成较差的程序,如下所示:某种特殊情况。 另外,将自己限制为终止程序有什么含义?

5
计算到底是什么?
我知道某种意义上的计算是什么(计算机所做的就是这样),但是我想要一个更严格的定义。 Dictionary.com的计算,计算,计算和计算的定义是循环的,因此无济于事。 Wikipedia将计算定义为“遵循明确定义的模型的任何类型的计算”。它将计算定义为“经过有变而将一个或多个输入转换为一个或多个结果的蓄意过程”。但是似乎该定义包括许多动作作为计算,即使通常不将其视为计算。 例如,这是否就意味着炸弹爆炸是一种计算,输入是点燃的保险丝,输出是爆炸? 那么,计算到底是什么?

1
可判定问题的比例
考虑用某种“合理的”正式语言陈述的决策问题。假设以一个自由变量作为参考框架的高阶Peano算术中的公式,但我同样对其他计算模型感兴趣:丢番图方程,使用Turing机重写规则产生的单词问题等。古典形式化会很好,尽管如果您知道形式化的选择对答案有多大影响,那也会很有趣。 鉴于长度决策问题的声明,我们可以定义数d (ñ )的长度可判定语句ñ和数量ü (ñ )的长度不可判定语句ñ。ñNNd (Ñ)D(N)D(N)ñNNü(N)U(N)U(N)ñNN 关于和D (N )的相对生长情况知道什么?换句话说,如果我随机处理格式正确的决策问题,那么对于给定的语句长度,可以决定该决策问题的概率是多少?ü(N)U(N)U(N)d (Ñ)D(N)D(N) 受到这个问题的启发,该问题询问“大多数问题和算法是否可决定”。好吧,如果您不按兴趣过滤,是吗?

1
Kolmogorov-复杂度定义的等价
定义Kolmogorov复杂度的方法有很多,通常,所有这些定义在加法常数之前都是等效的。也就是说,如果和是kolmogorov复杂度函数(通过不同的语言或模型定义),则存在常数使得对于每个字符串,。我相信这是因为对于每个Kolmogorov复杂度函数以及对于每个它都认为,对于某些常数。K1K1K_1K2K2K_2cccxxx|K1(x)−K2(x)|&lt;c|K1(x)−K2(x)|&lt;c|K_1(x) - K_2(x)| < cKKKxxxK(x)≤|x|+cK(x)≤|x|+cK(x) \le |x| +cccc 我对以下基于图灵机的定义感兴趣KKK 状态数:将定义为最小数,以使具有个状态的TM 在空字符串上输出。K1(x)K1(x)K_1(x)qqqqqqxxx 程序长度:将定义为输出的最短“程序” 。即,修复一种将TM编码为二进制字符串的方法;对于机器其(二进制)编码表示为。 其中最小值在空输入上输出x的所有M上。K2(x)K2(x)K_2(x)xxxMMM⟨M⟩⟨M⟩\langle M \rangleK2(x)=min|⟨M⟩|K2(x)=min|⟨M⟩|K_2(x) = \min |\langle M \rangle|MMMxxx 是K1K1K_1和K2K2K_2等同?它们之间是什么关系,如果它们不相等,哪一个可以更好地理解Kolmogorov复杂性的概念。 令我特别困扰的是xK2K2K_2随K的增加率,它似乎不是超线性的(或者至少在常数C&gt; 1的情况下是线性的,使得K_2 &lt;C | x |而不是| x | + c)。考虑输出x的最简单的TM- 仅将x编码为其状态和转移函数的一部分的TM 。立即看到 K_1(x)\ le | x | +1。但是,同一台机器的编码要大得多,而我得到的琐碎边界是K_2(x)\ le | x | \ log | x | 。xxxC&gt;1C&gt;1C>1K2&lt;C|x|K2&lt;C|x|K_2 …



2
在所有输入上最多停止50步的图灵机是否可以确定?
让F= { ⟨ 中号⟩ :M是一个TM,它最多以50个步长停止每个输入}F={⟨M⟩:M is a TM which stops for every input in at most 50 steps}F = \{⟨M⟩:\text{M is a TM which stops for every input in at most 50 steps}\}。我需要确定F是可确定的还是递归可枚举的。我认为这是可以决定的,但我不知道如何证明。 我的想法 这“ 50步”部分立即为我打开了R标志。如果用于特定输入,则可以确定。但是,这里适用于所有输入。检查它的无穷输入使我认为问题是co-RE,即其补充是可以接受的。 也许,我可以检查配置,发现50个步骤之后的所有配置都不会导致接受状态-我该怎么做?

4
不了解TCS的策略
我是一名正在学习计算理论课程的研究生,一旦被要求,我在制作内容方面存在严重的困难。我能够按照教科书(Michael Sipser的计算理论简介)和讲座进行学习;但是,当被要求证明某件事或提出特定TM的正式描述时,我只是cho之以鼻。 在这种情况下我该怎么办?我想我的问题是完全理解抽象概念,以至于我可以实际使用它们。是否有一种结构化的方法来处理新的抽象概念并最终建立直觉?

5
如果输入受限制或可预测,是否可以解决停止问题?
在一般情况下,无法解决暂停问题。可以提出限制允许输入的已定义规则,并且可以针对这种特殊情况解决暂停问题吗? 例如,似乎一种不允许循环的语言很容易判断程序是否停止。 我现在要解决的问题是,我要制作一个脚本检查程序来检查程序的有效性。如果我确切知道脚本编写者的期望,这可以解决暂停的问题,这意味着非常可预测的输入。如果不能完全解决这个问题,有什么好的近似技术可以解决这个问题?

1
可计算函数可以收敛到不可计算的数字吗?
是否存在可计算的函数 这样:f:N→Qf:N→Qf:\mathbb{N}\rightarrow \mathbb{Q} 对于所有t∈N:0≤f(t)&lt;Xt∈N:0≤f(t)&lt;Xt\in\mathbb{N}: 0\le f(t) < X limt→∞f(t)=Xlimt→∞f(t)=X\lim\limits_{t\rightarrow\infty} f(t) = X 其中XXX是不可计算的实数。 对这个问题的唯一的参考,我发现是回答这个问题:/math//a/1052579/168764,这里的功能似乎将举行,但我不知道如何证明此函数的限制是不可计算的实数。


1
对一元字母进行反向引用的正则表达式
设置: 具有反向引用的正则表达式 一元语言(1个符号的字母) 在此设置中是否可以确定以下问题: 给定带有反向引用的正则表达式,它是否定义了正则语言? 例如,(aa+)\1定义一种常规语言,而(aa+)\1+没有。我们可以决定是哪种情况吗? 为了具体起见,“带有反向引用的正则表达式”在这里指的是例如与Perl兼容的常规正则表达式的以下子集: a匹配字符a(字母中唯一的字符) X* 匹配0个或多个出现 X X|Y比赛X或Y 括号可用于分组和捕获 \1。\2等匹配与第一对,第二对等括号相同的字符串 我们还可以使用常规的简写形式,例如X+= XX*。

7
一台没有RAM但有磁盘的计算机等同于有RAM的计算机吗?
据我了解,内存用于很多事情。它充当磁盘缓存,并包含程序的指令及其堆栈和堆。这是一个思想实验。如果人们不关心计算机处理数据的速度或时间,那么假设计算机的磁盘容量很大,那么它可以拥有的最小内存量是多少?可以只拥有一个磁盘就可以消除内存吗? 显然不需要磁盘缓存。如果我们在磁盘上设置交换空间,则程序堆栈和堆也不需要内存。是否有需要记忆的东西?

2
Mandelbrot集在什么意义上是“可计算的”?
该Mandelbrot集是在数学美丽的生物。 此设置有很多精美的高精度图像,因此在某种意义上显然该设置是“可计算的”。 但是,令我担心的事实是,它甚至无法递归枚举-仅因为该集合不可数。这可以通过要求点的某种有限表示来解决。 此外,尽管我们确定知道很多点属于该集合,而其他点不属于该集合,但是还有许多我们不知道其集合中的成员身份。到目前为止,我们所看到的所有图像都可能包含很多“绑定了n次迭代”的点,但是这些点实际上可能不属于该集合。 因此,对于具有有限表示形式的给定点,问题“此点是否属于集合?” 如果我是对的,还没有被证明是可以判定的。 现在,从什么意义上(通过哪种定义)我们可以说曼德尔布罗特集是“可计算的”?

4
如何检查两种算法是否对任何输入返回相同的结果?
当所有输入的集合都是无限的时,如何检查两种算法(例如,合并排序和朴素排序)对于任何输入是否返回相同的结果? 更新:感谢Ben解释了在一般情况下如何通过算法无法做到这一点。Dave的答案很好地总结了算法方法和手动方法(受人类智慧和隐喻的影响),这些方法并不总是有效的,但却非常有效。

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.