Theoretical physics is to this… as theoretical computer science is to what?
Suppose (hypothetically) that we had the kind of money the physicists have Is there any way we could use it to advance understanding of the P vs. NP question? (Besides more students, coffee, whiteboard markers…) Idea: Use high-performance computing to find minimal circuits for hard problems (for small values of n)
The hope: Examining the minimal circuits would inspire new conjectures about asymptotic behavior, which we could then try to prove Conventional wisdom: We wouldnt learn anything this way - There are circuits on n variables astronomical even for tiny n - Small-n behavior can be notoriously misleading about asymptotics My view: The conventional wisdom is probably right. Thats why Im talking in this session.
Goal: Prove that when n=4, the permanent requires more arithmetic operations than the determinant A concrete challenge Fastest known algorithm for computing the determinant of an n n matrix: O(n 2.376 ) For the permanent: O(n2 n ) Advantages over Boolean problems like 3SAT: More robust, less dependent on input encoding
nBy brute force By Cramers rule By dynamic programming By Gaussian elimination 23334 31714 15 495634537 559932412474 n Number of arithmetic operations needed to compute n n determinant
1. EA := E/A 2. EAB := EA+B 3. FEAB := F-EAB 4. EAC := EA C 5. GEAC := G-EAC 6. EAD := EA D 7. HEAD := H-EAD 8. IA := I/A 9. IAB := IA B 10. JIAB := J-IAB 11. IAC := IA C 12. KIAC := K-IAC 13. IAD := IA D 14. LIAD := L-IAD 15. MA := M/A 16. MAB := MA B 17. NMAB := N-MAB 18. MAC := MA C 19. OMAC := O-MAC 20. MAD := MA D 21. PMAD := P-MAD 22. JF := JIAB/FEAB 23. JFG := JF GEAC 24. KJFG := KIAC-JFG 25. JFH := JF HEAD 26. LJFH := LIAD-JFH 27. NF := NMAB/FEAB 28. NFG := NF GEAC 29. ONFG := OMAC-NFG 30. NFH := NF HEAD 31. PNFH := PMAD-NFH 32. OK := ONFG/KJFG 33. OKL := OK LJFH 34. POKL := PNFH-OKL 35. X := A FEAB 36. Y := X KJFG 37. DET := Y POKL using only 37 arithmetic operations How to compute OPTIMAL?
To show that the 4 4 permanent cant be computed with 37 arithmetic operations, how many programs would we need to examine? Naïvely, 10 123 For comparison, SETI@home does 10 22 floating-point operations per year How far can we cut down the search space?