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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend