Truncated breadth-first search through the views #
Breadth-first search through the views of a nondeterministic machine
(Cslib.Reachability.search, along Turing.MultiTapeNTM.viewSucc) finds every reachable view once
it has run for as many rounds as there are reachable views (Turing.MultiTapeNTM.mem_search_iff).
Under a space bound s there are at most 2 ^ (2 * coreLengthBound k State n s + 1) of them. For a
polynomial s that is exponential, and a polynomial-time analysis must then be relative to the
number of rounds. The truncated search Turing.MultiTapeNTM.boundedSearch keeps at most cap views
after each round, so its lists have at most cap + 1 views of size polynomial in the instance and
the space bound (Turing.MultiTapeNTM.length_boundedSearch_le). With the cap and the number of
rounds given in unary, it is polynomial-time
(Turing.MultiTapeNTM.computableInPolyTime_boundedSearch). Truncation never discards a view once
cap bounds the number of reachable views (Turing.MultiTapeNTM.boundedSearch_eq_search), so it
then finds exactly the reachable views (Turing.MultiTapeNTM.mem_boundedSearch_iff). This is the
configuration-graph construction of Sipser, Section 8.4, with the graph size passed as
a unary parameter.
Main definitions #
Turing.MultiTapeNTM.boundedSearch: breadth-first search through the views, truncated to a cap.
Main results #
Turing.MultiTapeNTM.length_boundedSearch_le: the truncated search keeps at mostcap + 1views.Turing.MultiTapeNTM.reflTransGen_of_mem_boundedSearch: it finds only reachable views.Turing.MultiTapeNTM.boundedSearch_eq_search,Turing.MultiTapeNTM.mem_boundedSearch_iff: once the cap bounds the number of reachable views, truncation changes nothing and enough rounds find exactly the reachable views.Turing.MultiTapeNTM.computableInPolyTime_boundedSearch: under a polynomial space bound, the truncated search is polynomial-time in the instance and the unary cap.
References #
Breadth-first search through the views for rounds rounds, keeping at most cap views after
each round. Truncation changes nothing once cap bounds the number of reachable views, and keeps
the search polynomial in cap otherwise.
Instances For
The truncated search keeps at most cap + 1 views.
The truncated search finds only reachable views.
Truncation changes nothing once cap bounds the number of reachable views: under a space
bound s, 2 ^ (2 * coreLengthBound k State n s + 1) of them.
The truncated search finds the reachable views once N, as both the cap and the number of
rounds, bounds their number.
The truncated search is polynomial-time in the instance and the unary number N, used as
both the cap and the number of rounds, when the space bound is polynomial in the instance: each
list holds at most N + 1 views of size polynomial in the instance.