Main contribution
IncP1 = DelayP
with polynomial memory blow up.
December 14, 2023
Complexity Days 2023
Let A(x) be a set.
EnumA is the problem of outputting A(x) given x.
Examples:
In this talk, A is an NP-predicate, that is:
Previous examples have this property.
How to measure the complexity of an algorithm solving an enumeration problem?
Total time needed to output every solution.
There can be exponentially many.
EnumA is in OutputP if it can be solved in time polynomial in:
Total time is not always satisfactory:
Delay: the longest time one has to wait between the output of two solutions.
Enumerate (a+b)n:
Both have linear total time but delay in Method 1 is exponential.
One focus in enumeration complexity has been to design algorithms with polynomial delay.
Bounding the delay is not necessarily what we want.
We want guarantees: on input of size n, the algorithm outputs at least t solutions after computing for a time f(t,n).
IncP : Problems solved by an algorithm producing t solutions in time p(t,n), with p a polynomial.
TFNP ≠ FP ⇔ IncP ⊊ OutputP
IncPa: Problems solved by an algorithm producing t solutions in time tap(n), with p a polynomial.
If ETH holds, for a < b, IncPa ⊊ IncPb
For every t, after t ⋅ p(n) steps, the algorithm has output at least t solutions.
We say that p(n) is the amortized delay.
When p(n) is a polynomial, the problem is in IncP1.
Clearly DelayP ⊆ IncP1: after delay × t, at least t solutions output.
For the other way around: 2n delay but amortized delay of 2.
Given an enumerator E with amortized delay d, we obtain an algorithm with delay O(d) using a queue to delay the output:
… but need to know the amortized delay.
Given:
There is no RAM which enumerates the elements of E(x) in delay O(d(n)).
From unknown amortized delay d to delay O(dlog(d)2):
… but the memory may blow up.
IncP1 = DelayP
with polynomial memory blow up.
For every enumerator E with N solutions:
there exists an enumerator with
When E0 is finished, Ei has moved by at least 2i + 1d steps: it has explored all its zone.
Between two outputs: at most l × 2d simulated steps.
Cost of simulation: depends on the model of computation (here RAM with uniform cost model).
→ Keeping track of the number of steps simulated.
→ Allocating the memory for new simulations.
Two hard limits:
Given:
There is no RAM which enumerates the elements of E(x) in the same order as E in polynomial delay and polynomial space.
Space is as important as time.
The right notion is amortized delay not delay.
⚠Do not use geometric regularization!