Motsvarande RE = ( a+b )* abb q0 q1 q4 q2 q3 a b Motsvarande RE = ( a+b )* abb
DFA för ( a + b )* abb s0 a s1 b s3 s4 s2
Minimering av DFA sluttillstånd s0 a s1 b s3 s4 s2 s0 , s2
DFA Minimization a ( b + c )* q0 q1 a q4 q5 b q6 q7 c q3 q8 q2 q9 The subset construction b s2 b a s0 s1 b c c Final states s3 c
Then, apply the minimization algorithm to produce the minimal DFA s3 s2 s0 s1 c b a final states s0 s1 a b + c
A B C D E
q
b b a b a q0 q1 q2 a
b b a b a q0 q1 q2 a
1 2 3 4 5 6
Ratio(x,2)
Greater?
Sipser 2.10 p. 105
1 2 4 3 5
A B C D E
A B C D E
q
b b a b a q0 q1 q2 a
b b a b a q0 q1 q2 a
1 2 3 4 5 6
Ratio(x,2)
Greater?
A B C D E
q
b b a b a q0 q1 q2 a
b b a b a q0 q1 q2 a
1 2 3 4 5 6
Ratio(x,2)
Greater?
Sipser 2.10 p. 105
Q = {q0, q1, q2, q3, q4} = {a, b, x, #} B = # = {a, b} Input: baabab###….. a,R b,R a,R Q = {q0, q1, q2, q3, q4} = {a, b, x, #} B = # = {a, b} q0 is the start state F = {q4} b/x,R q0 q1 #,R q4 #,R x/#,R q3 q2 #/b,R a,L b,L #,L a,R b,R Accepted?
Turingmaskin 1 – vad gör den? Input: Turingmaskin 1 – vad gör den? baabab###….. a,R b,R a,R Q = {q0, q1, q2, q3, q4} = {a, b, x, #} B = # = {a, b} q0 is the start state F = {q4} b/x,R q0 q1 #,R q4 #,R x/#,R q3 q2 #/b,R a,L b,L #,L Accepteras? a,R b,R
Turingmaskin 1 Initialt har den tapepekaren på första tecknet i inputsträngen. Strängen baabab är input och den strängen accepteras. Vid acceptans har tapen utseendet #aa#a##bbb och tapepekaren pekar på första b:et efter ##. Det maskinen gör är ersätta alla b:n med #:n i orginalsträngen och ge alla b:n som output sist. (Jag tror att q2->q2 genom a,R skulle kunna tas bort samt att q2->q2 #,b/R skulle kunna ersättas med q2->q2 #,b/L. Men jag är inte 100% säker och maskinen fungerar ju fint som den är. )
Turingmaskin 2 – vad gör den? Input: Turingmaskin 2 – vad gör den? aabbcc###….. x,R #,R q0 q1 q2 q3 a/x,R b/y,R c/z,L y,R a,R y,R b,R z,R Q = {q0,...,q6} = {a,b,c,x,y,z,#} B = # = {a,b,c} start state = q0 F = {q6} a,L b,L c,L x,L y,L z,L y,R z,R q4 #,R #,R c,R z,R q6 #,R b,R c,R b,R c,R q5 #,R a,R Accepteras?
Turingmaskin – vad gör den? q0 q1 q2 q3 q4 q5 q6 #,R a,R c,R z,R y,R a/x,R b/y,R b,R c/z,L a,L b,L c,L x,L y,L z,L x,R Q = {q0,...,q6} = {a,b,c,x,y,z,#} B = # = {a,b,c} start state = q0 F = {q6} aabbcc###….. Accepteras? Turingmaskin – vad gör den? Input:
Turingmaskin 2 Initialt har maskinen tapepekaren på första tecknet i inputsträngen. Strängen aabbcc är input. Den accepteras och då har tapen utseendet xxyyzz## och tapepekaren pekar på andra #:et på högersidan. Den har matchat uttrycket anbncn där n1.
Turingmaskin 3 – vad gör den? Q = {q0,...,q9} = {a,1,#} B = # = {1} start state = q0 F = {q9} Turingmaskin 3 – vad gör den? q0 q1 q2 q3 1/a,R #,R 1,R q4 #/1,L 1,L #,L q5 a/1,R q6 q7 1x#1y## q8 q9 Input: Output?
Turingmaskin 3 Initialt har maskinen tapepekaren på första tecknet i inputsträngen. Turingmaskinen tar in två tal på unär form x och y. Den beräknar funktionen F(x,y) = xy och skriver sin output sist så att tapen efter körd funktion har utseendet 1x#1y#o där 1x#1y är orginalinput och o output. Vid färdig körning pekar tapepekaren på första 1:an i outputen.
Aug tenta-2003-030820
Re-ordering TM Given a string consisting of a's and b's, this machine will rearrange the string so that all the a's come before all the b's.
Sorting TM Turing Machine Pseudocode for Sort Find the left end of the input Repeat: Find leftmost b, Look for an a to the right of b, replace it with b Until all a preceed all b