波斯特对应问题

来自testwiki
imported>HTinC232023年2月28日 (二) 22:16的版本 WPCleaner v2.05 - 內鏈消歧義 - 集合
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到导航 跳转到搜索

波斯特对应问题Template:Lang-en)是美国数学家埃米尔·波斯特Template:Lang)于1946年提出的一个不可判定问题。[1]

问题

已知字母表A是包含至少两个字符的有限集合A上的一个字符串是指由A中字符组成的一个有限序列。假设α1,,αNβ1,,βN是由A上的字符串所组成的两个相同长度的表。如果存在一个序列(ik)1kKK1,且对所有k都有1ikN),使得

αi1αiK=βi1βiK

成立,那么就称A上的这两个字符串表匹配。判定一个字母表上的任意两个长度相同的字符串表是否匹配的问题即是波斯特对应问题。

示例

已知如下两个字符串表: Template:Col-begin Template:Col-break

α1 α2 α3
a ab bba

Template:Col-break

β1 β2 β3
baa aa bb

Template:Col-end

序列 (3, 2, 3, 1) 是这一波斯特对应问题的一个解:

α3α2α3α1=bba+ab+bba+a=bbaabbbaa=bb+aa+bb+baa=β3β2β3β1.

Template:Col-begin Template:Col-break

bba
bb

i1 = 3 Template:Col-break

ab
aa

i2 = 2 Template:Col-break

bba
bb

i3 = 3 Template:Col-break

a
baa

i4 = 1 Template:Col-end

将上述序列重复任意多次(例如:重复两次为 (3, 2, 3, 1, 3, 2, 3, 1))得到的序列也都是此问题的解。

但如果两个字符串表仅由α2,α3β2,β3组成,那此时解便不存在。这是由于α2,α3 的倒数两个字符都是不同的,而β2,β3则都是由相同的两个字符组成的。

不可判定性证明思路

对波斯特对应问题不可判定性的证明,一种最常见的思路是:先证明对一个图灵机M及输入ω都能构造出波斯特对应问题的一个实例,使得匹配就是Mω上的接受计算历史。如果能判定这个波斯特对应问题的实例是否有匹配的话,那图灵机是否接受输入的问题也就是可判定的了。由于图灵机的接受问题是个基本的不可判定问题,于是可以说明波斯特对应问题也同样是不可判定的。[2]

参考文献

Template:Reflist