| @ -0,0 +1,97 @@ | |||||
| This a very high level review post that I am making for myself and other people taking CS Theory. | |||||
| If you want to lean about the theory behind the content in this blog post I recommed looking else where. | |||||
| This post will cover how to solve typical problems relating to topics covered by my second CS Theory exam. | |||||
| ## Myhill-Nerode Theorem | |||||
| ### Definition | |||||
| L is regular if and only if it has a finite index. The index is the maximum number of elements thar are pairwise distibguishable. | |||||
| Two strings are said to be pairwise distinguishable if you can append something to both of the strings and it makes one string | |||||
| accepted by the language and the other string non-accepting. | |||||
| The size of an index set X equals the number of equivalence classes it has. Each element in the language is accepted by only | |||||
| one equivalence class. | |||||
| ### Problem Approach | |||||
| Prove that language L is regular. | |||||
| 1) Define a set X which is infinite in size - this doesn;t necesarrily need to be in the language. | |||||
| 2) Make a general argument that show that each element in X is pairwise distinguishable. | |||||
| Pick any two elements x, y in X and show that if you append z to them one is accepted by the language and | |||||
| the other is not in the language. | |||||
| ### Example | |||||
| Prove the following language is non-regular: | |||||
| $$ | |||||
| L={ww^r | w \in {0,1}^*} | |||||
| $$ | |||||
| answer: | |||||
| 1) | |||||
| $$ | |||||
| X = {(01)^i | i \geq 0} | |||||
| $$ | |||||
| Pick any 2 elements of X and show pairwise distinguishable | |||||
| $$ | |||||
| x = (01)^i, y = (01)^j | i \neq j | |||||
| $$ | |||||
| suppose we pick | |||||
| $$ | |||||
| z = (10)^i\\ | |||||
| xz \in L\\ | |||||
| yz \notin L | |||||
| $$ | |||||
| ## DFA minimization algorithm | |||||
| Types of Problems: | |||||
| - Prove DFA is minimal | |||||
| - Minimize the DFA | |||||
| The argument for DFA minimization comes from the Myhill-Nerode theorem. Given | |||||
| a DFA, if you can form a set of strings which represent each state and they are all | |||||
| pairwise distinguishable, then the DFA is minimal with that many states. | |||||
| ### Prove DFA is minimal | |||||
| For these types of problems you simply construct a table and show that each state is pairwise distinguishable. | |||||
| To show pairwise distinguishability you have to show that there exists a string where if appened to one element | |||||
| makes it accepted by the language but pushes the other string out of the language. | |||||
| ex: Prove the following DFA is minimal. | |||||
|  | |||||
| $$ | |||||
| X = {\epsilon, b, bb, ba} | |||||
| $$ | |||||
|  | |||||
| ### Minimize the DFA | |||||
| ## Pumping lemma for regular languages | |||||
| ## Context-free grammars, closure properties for CFLs | |||||
| ## Parse trees, ambiguity | |||||
| ## Chomsky Normal Form | |||||
| ## Pushdown automata | |||||
| ## Construction to convert CFG to a PDA | |||||