01. StrongP vs StrongNC


  1. P vs NC.
  2. Problems with numerical parameters. The MaxFlow problem.
  3. StrongP.
    1. To each input-length n, corresponds a program P, which is a list of n^{O(1)} instructions.
    2. Each instruction of P is one of:
      1. w := u \circ v, where w denotes a memory location, u and v denote either memory locations or constants, and \circ \in \{+, -, \times\}.
      2. goto \ell, where \ell is some line in the program.
      3. if u : 0 goto \ell, where u is a memory location, : is one of <, \le, or =.
      4. u := \uparrow v: treats the value of memory location v as a pointer, and sets memory location u to the value of the memory location pointed to by v. We ensure that the value of v does not depend on any numerical coordinate, by propagation of an invalid-pointer tag via instruction (i).
      5. stop. The output value is the value of the first memory location.
  4. Edmonds-Karp is a StrongP algorithm for MaxFlow.
  5. Ketan’s Class \mathrm{KC}(p, t).
  6. StrongP is \mathrm{KC}(\mathit{poly}(n),\mathit{poly}(n)).
  7. StrongNC would be defined analogously as \mathrm{KC}(\mathit{poly}(n),\mathit{polylog}(n)).
  8. Mulmuley’s paper shows that MaxFlow is not in \mathrm{KC}(2^{o(\sqrt n)}, o(\sqrt n)) – Even if you only require the algorithm to be correct for capacities of bit-length n^2.
  9. In my opinion, this is the most interesting computational-complexity lower-bound that currently exists. I have truly lost all hope of coming up with a parallel algorithm for MaxFlow.
  10. In this class, we will show the same result for the restriction \mathrm{KC} to linear operations (still interesting, Edmonds-Karp only uses linear operations).
  11. I.e., if we define linStrongP and linKC.
  12. We will show that MaxFlow is in linStrongP, but not in \mathrm{linKC}(2^{o(\sqrt n)}, o(\sqrt n)).
  13. Let us start by showing that weighted shortest st-path is in \mathrm{linKC}(\mathit{poly}(n), O(\log n)).
    1. Let \ell_k(a, b) denote the length of the shortest path between a and b, among all paths of length at most k (so \ell_k(a, b) = \infty if no such path exists).
    2. The trick is to notice that \ell_{2 k}(a, b) = \min_m \ell_k(a, m) + \ell_k(m, b).

Potential project for those who need grading


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s