Page 16 - 《软件学报》2026年第1期
P. 16

陈蔚骏 等: 向量加法系统可达性问题复杂性下界研究综述                                                       13


                    定理  4 [33] . 对于任意的  d ⩾ 3, d-VASS  可达性问题在  F d  中.
                    此结论对复杂性上界的刻画十分优美, 但遗憾的是目前没有相匹配的下界. 事实上, 理论计算机科学界对
                 VASS  可达性问题的复杂性下界的研究由来已久. 一方面, 早在                1976  年该问题可判定性尚且未知时, Lipton      [34] 就给
                 出了  EXPSPACE-难的下界归约. 但由于问题复杂, 下界研究随后沉寂了                40 余年. 新的突破始于     2020 年, Czerwiński
                 等人  [35] 借鉴  Lipton  的证明方法开创了一套普适性强的归约流程, 并给出了首个非初等的                  Tower-难下界. 该工作
                 发表于   Journal of the ACM. 接着在  2021  年, Czerwiński 等人  [14] 和  Leroux [15] 通过巧妙地改进流程细节, 为一般
                 VASS  可达性问题提供了匹配的        Ackermann  下界, 一个开放多年的复杂性问题至此得到解决. 另一方面, d-VASS
                 可达性问题的参数化下界更具挑战性. 经过研究者                [36−38] 的不断努力, 目前最先进的结果如下.
                    定理  5 [36] . 对于任意的  d ⩾ 3, (2d + 3)-VASS  可达性问题是  F d -难的.
                    除了结论之外, 改进过程本身亦有重要的参考价值, 接下来我们将总结自                       1976  年以来人们为解决下界问题所
                 提出的研究方法, 指出不同方法的使用范围和局限性, 以期对未来的相关工作有所启发.
                  3.1   Lipton  证明技术
                    Lipton  给出了  VASS  可达性问题的第    1  个非平凡复杂性下界——EXPSPACE-难. 其原方法是基于并行程序
                 (parallel program) 进行的, 文献  [16] 中对此有详尽的描述, 在此不再赘述. 在第       3.1.1  节中, 我们将基于更为现代的
                 计数器程序方法给出一个全新的证明, 并在第              3.1.2  节分析  Lipton  方法的局限性及其对后续研究工作的启发.
                  3.1.1    EXPSPACE-难归约
                                                                                      2 n
                    本节介绍    Lipton  的证明思路. 首先, 我们需要选择合适的问题用于归约. 引理              2  表明  2 - 有界计数器机器可达
                 性问题是   EXPSPACE-难的, 本节正是从此问题出发进行归约. 给定一个                2 -BCM M, 我们接着将其归约到一个计
                                                                          2 n

                 数器程序   P. 由于计数器机器和计数器程序唯一的区别在于前者可以测零, 但后者不具备此能力, 故归约的关键在
                                       M  中的每一次测零? 事实上, 后续每一次下界提高的背后都蕴含着模拟测零技术的
                 于: 如何使用一个程序模拟
                 改进.
                    在第   2.2.3.1  节我们曾提到一种简单的测零技术: 当已知计数器              x 满足  0 ⩽ x ⩽ b 时, 只需执行“x+=  b; x−=  b;”

                 程序. 若该语句顺利执行, 定有        x ⩽ 0, 从而   x = 0. 当上界  b 充分小  (关于输入规模成指数量级) 时, 可以高效构造出
                                                                                           2 n
                                                                                   2 0
                                                                                      2 1
                               2 2 n                                              2 , 2 ,..., 2 .
                 这条语句. 但显然        不符合此情形. 最终, Lipton 巧妙地通过递归构造出了上界序列
                             2 i
                    定义   A i = 2 , 构造过程中为了保证某个计数器        x i  是  A i -有界的, 只需定义辅助计数器   x i  使得  x i + x i = A i  即可.
                                         ,
                                                                                   2
                                ,
                 假设已有    x i + x i = A i y i +y i = A i s i+1 + s i+1 = A i+1 , 需要对   s i+1  测零, 又观察到有  A i+1 = A . 为了实现   s i+1  +=  A i+1  的效
                                                                                   i
                        x i , y i  构造图  6
                 果只需用              中程序   P i  所示的双层循环.

                                                                         loop
                                                                            i x +=1,  i x -=1;
                                loop                  loop                 loop
                                  i x +=1,  i x -=1;                           i y +=1,  i y -=1,
                                  loop                   i y -=1,  i y +=1,    i s + 1 +=1,  i s + 1 -=1;
                                                        i s +=1,
                                     i y +=1,  i y -=1,  �lagy i + = 1;  i s -=1;  reset ( y ) ;
                                                                                i
                                     i r + 1 +=1,  i r + 1 -=1;  goto zt i ;  reset ( x ) ;  goto end;
                                                                              i
                                  zero-test ( y );                       zt i : zero-test ( s ) ;
                                          i           ry i : skip;                  i
                                zero-test ( x );                         do �lagy i -=1, goto ry i ;
                                        i
                                                                         or  �lagx i -=1, goto rx i ;
                                                                         end: halt ;
                                                           reset             zero-test (S i+1 )
                                       P i
                                                 图 6 Lipton  的模拟测零技术

                    在初始   x i = y i = s i+1 = 0  的情形下, 此段程序可以执行完全, 最终  x i = y i = A i , s i+1 = A i+1 . 但此段程序有两个问
                 题: 其一, 它没有恢复    x i 、y i 、s i  的状态, 无法用  x i 、y i  进行下一次测零; 其二, 它是递归构造的, zero-test( ) 和  zero-
                                                                                                y i
                                                                    i
                 test(  x i ) 各需要使用两对辅助计数器, 使得最终整个程序需要使用           4  个计数器, 这显然是无法高效完成的. 为此, 可
                 以将  zero-test( y i ) 替换成图  6 中的  reset(  y i ), 将  y i 、y i  的值记录到   s i 、s i  的同时重置为  y i = 0, y i = A i , 随后通过  zero-
   11   12   13   14   15   16   17   18   19   20   21