parikh s theorem from the complexity viewpoint
play

Parikhs theorem from the complexity viewpoint Dmitry Chistikov - PowerPoint PPT Presentation

Parikhs theorem from the complexity viewpoint Dmitry Chistikov University of Warwick, United Kingdom YR-OWLS, 03 June 2020 State complexity Program size complexity of problem: the minimum size of program that solves the problem State


  1. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  2. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  3. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  4. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  5. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  6. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  7. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  8. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  9. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  10. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  11. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  12. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  13. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  14. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  15. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  16. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  17. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  18. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  19. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  20. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  21. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  22. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  23. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  24. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  25. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  26. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  27. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  28. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  29. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  30. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  31. Evaluating arithmetic expressions ↑ How many registers are needed? R i := R i op R j + - * / ↑ 4 registers + / - * / + ↑ 3 registers In general? - * 14 15 92 65 35 89 22/37

  32. Smallest number of registers = black pebbling number = 1 + Strahler number = 1 + max height of an embedded complete binary tree [Horton (1945), Strahler (1952), Ershov (1958)] [survey: Esparza et al., LATA’14] Strahler number s ( tree ) : �→ 0 s 1 s 2 � max( s 1 , s 2 ) , s 1 � = s 2 �→ max( s 1 , s 2 ) + 1 , s 1 = s 2 23/37

  33. Putting things together: obligations New NFA B guesses a tree with poly( n ) leaves: ◮ The tree is traversed from root to leaves ◮ Whenever B does not enter a subtree, it records obligation on the stack ◮ Obligations are discharged later 24/37

  34. Putting things together: obligations New NFA B guesses a tree with poly( n ) leaves: ◮ The tree is traversed from root to leaves ◮ Whenever B does not enter a subtree, it records obligation on the stack ◮ Obligations are discharged later For a good strategy, O (log n ) obligations suffice (Strahler!). There are poly( n ) possible obligations. Transforming stack of height O (log n ) to NFA: n O (log n ) states. 24/37

  35. Parikh’s theorem for OCL: upper bound Atig, Chistikov, Hofman, Kumar, Saivasan, Zetzsche, LICS’16 Theorem For every one-counter automaton A with n states there exists a nondeterministic finite-state automaton B with at most n O (log n ) states such that ψ ( L ( A )) = ψ ( L ( B )) . 25/37

  36. Outline 1. Why Parikh’s theorem from the complexity viewpoint? 2. One-counter languages: upper bound 3. One-counter languages: lower bound 26/37

  37. Parikh’s theorem for OCL: lower bound Chistikov, Vyalyi, LICS’20 Theorem There exists a one-counter automaton A with n states such that every nondeterministic finite-state automaton B with ψ ( L ( A )) = ψ ( L ( B )) has size n Ω( √ log n/ log log n ) . Recall the upper bound: n O (log n ) 27/37

  38. Proof attempt: many trees to remember? a n , ( − 1) n +1 a 1 , +1 a 2 , − 1 a 3 , +1 q 1 q 2 q 3 q n · · · up ∗ down ∗ up ∗ down ∗ up ∗ down ∗ 28/37

  39. Proof attempt: many trees to remember? a n , ( − 1) n +1 a 1 , +1 a 2 , − 1 a 3 , +1 q 1 q 2 q 3 q n · · · up ∗ down ∗ up ∗ down ∗ up ∗ down ∗ For n = 6 , accepts words a ℓ 1 1 a ℓ 2 2 a ℓ 3 3 a ℓ 4 4 a ℓ 5 5 a ℓ 6 6 such that: ◮ ℓ 1 − ℓ 2 ≥ 0 ◮ ℓ 1 − ℓ 2 + ℓ 3 − ℓ 4 ≥ 0 ◮ ℓ 1 − ℓ 2 + ℓ 3 − ℓ 4 + ℓ 5 − ℓ 6 = 0 NFA can ignore trees: ( a 1 a 2 ) ∗ ( a 1 a 4 ) ∗ ( a 1 a 6 ) ∗ ( a 3 a 4 ) ∗ ( a 3 a 6 ) ∗ ( a 5 a 6 ) ∗ 28/37

  40. Another attempt: many subsets of states to remember? a n , ( − 1) n +1 a 1 , +1 a 2 , − 1 a 3 , +1 c 1 , 2 c 2 , 3 q 1 q 2 q 3 q n · · · c 3 ,n c 1 , 3 c 2 ,n c 1 ,n A variant of this OCA is provably the hardest example. [Atig et al., LICS’16] 29/37

  41. Another attempt: many subsets of states to remember? a n , ( − 1) n +1 a 1 , +1 a 2 , − 1 a 3 , +1 c 1 , 2 c 2 , 3 q 1 q 2 q 3 q n · · · c 3 ,n c 1 , 3 c 2 ,n c 1 ,n A variant of this OCA is provably the hardest example. [Atig et al., LICS’16] What’s happening for each subset? 29/37

  42. Re-pairing problem Defined for Dyck words ( ( ) ( ) ) 30/37

  43. Re-pairing problem Defined for Dyck words over { + , −} + + - + - - 30/37

  44. Re-pairing problem Defined for Dyck words over { + , −} + + - + - - Move: erase any pair of + and − such that + is to the left of − 30/37

  45. Re-pairing problem Defined for Dyck words over { + , −} + + - - Move: erase any pair of + and − such that + is to the left of − 30/37

  46. Re-pairing problem Defined for Dyck words over { + , −} + + - - Move: erase any pair of + and − such that + is to the left of − General goal: erase everything 30/37

  47. Re-pairing problem Defined for Dyck words over { + , −} + - Move: erase any pair of + and − such that + is to the left of − General goal: erase everything 30/37

  48. Re-pairing problem Defined for Dyck words over { + , −} Move: erase any pair of + and − such that + is to the left of − General goal: erase everything 30/37

  49. Re-pairing problem Defined for Dyck words over { + , −} Move: erase any pair of + and − such that + is to the left of − General goal: erase everything Objective: minimize the maximum width seen during the play Width = number of ‘islands’ of signs separated by blank space 30/37

  50. Re-pairing problem Defined for Dyck words over { + , −} + + - + - - width: 1 → Move: erase any pair of + and − such that + is to the left of − General goal: erase everything Objective: minimize the maximum width seen during the play Width = number of ‘islands’ of signs separated by blank space 30/37

  51. Re-pairing problem Defined for Dyck words over { + , −} + + - - width: 1 → 2 → Move: erase any pair of + and − such that + is to the left of − General goal: erase everything Objective: minimize the maximum width seen during the play Width = number of ‘islands’ of signs separated by blank space 30/37

  52. Re-pairing problem Defined for Dyck words over { + , −} + - width: 1 → 2 → 2 → Move: erase any pair of + and − such that + is to the left of − General goal: erase everything Objective: minimize the maximum width seen during the play Width = number of ‘islands’ of signs separated by blank space 30/37

  53. Re-pairing problem Defined for Dyck words over { + , −} width: 1 → 2 → 2 → 0 Move: erase any pair of + and − such that + is to the left of − General goal: erase everything Objective: minimize the maximum width seen during the play Width = number of ‘islands’ of signs separated by blank space 30/37

  54. Re-pairing problem Defined for Dyck words over { + , −} width: 1 → 2 → 2 → 0 Move: erase any pair of + and − such that + is to the left of − General goal: erase everything Objective: minimize the maximum width seen during the play Width = number of ‘islands’ of signs separated by blank space 30/37

  55. Re-pairing problem Defined for Dyck words over { + , −} Width of this re-pairing = 2 Move: erase any pair of + and − such that + is to the left of − General goal: erase everything Objective: minimize the maximum width seen during the play Width = number of ‘islands’ of signs separated by blank space 30/37

  56. Re-pairing problem Defined for Dyck words over { + , −} + + - + - - Width of this re-pairing = 2 Move: erase any pair of + and − such that + is to the left of − General goal: erase everything Objective: minimize the maximum width seen during the play Width = number of ‘islands’ of signs separated by blank space 30/37

  57. Minimizing width of re-pairings The width of a Dyck word is the minimum width of its re-pairings. 31/37

  58. Minimizing width of re-pairings The width of a Dyck word is the minimum width of its re-pairings. Do all Dyck words have re-pairings of width ≤ 2020 ? 31/37

  59. Minimizing width of re-pairings The width of a Dyck word is the minimum width of its re-pairings. Do all Dyck words have re-pairings of width ≤ 2020 ? Can we prove lower bounds on the width? 31/37

  60. Width of words and NFA size: strategy 1. There are sequences of words with unbounded width: width ( Y n ) → ∞ 2. Lower bounds on width imply lower bounds on NFA size: n Ω( width ( w n )) 32/37

  61. Simple re-pairings 1. Every Dyck word w has a re-pairing of width O (log | w | ) . 33/37

  62. Simple re-pairings 1. Every Dyck word w has a re-pairing of width O (log | w | ) . This re-pairing is simple: always pairs up matching signs. 33/37

  63. Simple re-pairings 1. Every Dyck word w has a re-pairing of width O (log | w | ) . This re-pairing is simple: always pairs up matching signs. 2. For simple re-pairings, we know the optimal width up to a multiplicative constant. For Dyck words associated with binary trees: height of the largest complete binary tree that is a minor (Strahler number, tree dimension). Technique: black-and-white pebble games. [Lengauer and Tarjan (1980)] 33/37

Recommend


More recommend