notes11-12 Myhill-Nerode Theorem and Minimization

notes11-12 Myhill-Nerode Theorem and Minimization - CS 373:...

Info iconThis preview shows pages 1–5. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: CS 373: Theory of Computation Gul Agha Mahesh Viswanathan Fall 2010 1 1 Introduction Optimal Algorithms Figure 1: Manuel Blum Best Solutions If a problem can be solved computationally, is there always a best method for solving it? Example 1 . 2- Merge Sort and Heap Sort achieve the assymptotically best time possible for sorting (in a certain model). Blums Speedup Theorem No! There are computationally solvable problems that have no optimal algorithms! In other words, there are problems for which any algorithm can always be made faster. Optimal Algorithms Regular Languages Figure 2: Anil Nerode Myhill-Nerode Theorem There is a unique optimal algorithm for every problem that can be solved using finite memory. algorithm here means a deterministic machine optimal means requires least memory, i.e., has fewest states unique means that any two DFAs with fewest states for a language are isomorphic 2 1.1 Suffix Languages Suffix Language of a State q q q 00 q p 1 1 1 , 1 Figure 3: DFA M Given DFA M = ( Q, ,,q ,F ), suffix( M,q ) = { w * | ( q,w ) F } . In other words, it is the collection of all words accepted if q were the initial state. For example, suffix( M,q 00 ) =0 * 1(0 1) * . Suffix Languages Definition 2. For a language L * , and a string x * , the suffix language of L with respect to x , is defined as suffix( L,x ) = { y * | xy L } In other words, suffix( L,x ) is the collection of strings y which when prefixed by x , result in a string in L . The class of suffix languages of L is C suf ( L ) = { suffix( L,x ) | x * } 1.2 Examples Example: L odd Example 3 . Consider L odd = { w { , 1 } * | w has an odd number of 1s } suffix( L odd , ) = L odd suffix( L odd , 0) = L odd suffix( L odd , 1) = { w { , 1 } * | w has an even number of 1s } = L even Example: L odd Class of Suffix Languages Example 4 . Consider L odd = { w { , 1 } * | w has an odd number of 1s } 3 For x that has an even number of 1s, suffix( L odd ,x ) = L odd For x that has an odd number of 1s, suffix( L odd ,x ) = L even Thus, C suf ( L odd ) = { L odd ,L even } Example: L odd DFA and Suffix Languages Example 5 . Recall, C suf ( L odd ) = { L odd ,L even } . A DFA for L odd is q q 1 1 1 Figure 4: DFA for L odd Observe that suffix( M,q ) = L odd , and suffix( M,q 1 ) = L even . Example: L 001 Example 6 . Consider L 001 = (0 1) * 001(0 1) * ....
View Full Document

Page1 / 13

notes11-12 Myhill-Nerode Theorem and Minimization - CS 373:...

This preview shows document pages 1 - 5. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online