0% found this document useful (0 votes)
74 views23 pages

Pda Example

Uploaded by

tagarmy252
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
74 views23 pages

Pda Example

Uploaded by

tagarmy252
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

Lecture 15 – Examples of Pushdown Automata

COSE215: Theory of Computation

Jihyeok Park

2024 Spring

COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 1 / 23


Recall
A pushdown automaton (PDA) is a finite automaton with a stack.
• Acceptance by final states
• Acceptance by empty stacks

P(⌃⇤) Languages Automata Grammars


<latexit sha1_base64="n92EN7qKro3HBPjOFkdf9pTRcuY=">AAAB/3icbVDLSgMxFM3UV62vUcGNm2ARqosyI0VdFt24rGgf0BlKJs20oUlmSDJCGWfhr7hxoYhbf8Odf2PazkJbDwQO59zLPTlBzKjSjvNtFZaWV1bXiuuljc2t7R17d6+lokRi0sQRi2QnQIowKkhTU81IJ5YE8YCRdjC6nvjtByIVjcS9HsfE52ggaEgx0kbq2QceR3qIEUsbWSX17uiAo9PspGeXnaozBVwkbk7KIEejZ395/QgnnAiNGVKq6zqx9lMkNcWMZCUvUSRGeIQGpGuoQJwoP53mz+CxUfowjKR5QsOp+nsjRVypMQ/M5CStmvcm4n9eN9HhpZ9SESeaCDw7FCYM6ghOyoB9KgnWbGwIwpKarBAPkURYm8pKpgR3/suLpHVWdc+rtdtauX6V11EEh+AIVIALLkAd3IAGaAIMHsEzeAVv1pP1Yr1bH7PRgpXv7IM/sD5/AI22lc4=</latexit>

CFL
<latexit sha1_base64="SBFzntk1dr+WaqMGrfHfvaEUUgk=">AAAB8XicbVBNS8NAEN3Ur1q/qh69BIvgqSTi17FYEA8eKtgPbEPZbCft0s0m7E7EEvovvHhQxKv/xpv/xm2bg7Y+GHi8N8PMPD8WXKPjfFu5peWV1bX8emFjc2t7p7i719BRohjUWSQi1fKpBsEl1JGjgFasgIa+gKY/rE785iMozSN5j6MYvJD2JQ84o2ikhw7CE6bV69txt1hyys4U9iJxM1IiGWrd4lenF7EkBIlMUK3brhOjl1KFnAkYFzqJhpiyIe1D21BJQ9BeOr14bB8ZpWcHkTIl0Z6qvydSGmo9Cn3TGVIc6HlvIv7ntRMMLr2UyzhBkGy2KEiEjZE9ed/ucQUMxcgQyhQ3t9psQBVlaEIqmBDc+ZcXSeOk7J6Xz+5OS5WrLI48OSCH5Ji45IJUyA2pkTphRJJn8kreLG29WO/Wx6w1Z2Uz++QPrM8fh0aQ1g==</latexit>

Context-Free Pushdown Context-Free


an bn
<latexit sha1_base64="/zCSF5YzKE75PzK8Z+pFFvsDV74=">AAACAnicbVDLSgNBEJz1GeNr1ZN4GQyCp7ArQT0GvXiMYB6QxDA76SRDZmeXmV4xLMGLv+LFgyJe/Qpv/o2Th6CJBQPVVd30dAWxFAY978tZWFxaXlnNrGXXNza3tt2d3YqJEs2hzCMZ6VrADEihoIwCJdRiDSwMJFSD/uXIr96BNiJSNziIoRmyrhIdwRlaqeXuNxDuETFlw1tFf4rAFi035+W9Meg88ackR6YotdzPRjviSQgKuWTG1H0vxmbKNAouYZhtJAZixvusC3VLFQvBNNPxCUN6ZJU27UTaPoV0rP6eSFlozCAMbGfIsGdmvZH4n1dPsHPeTIWKEwTFJ4s6iaQY0VEetC00cJQDSxjXwv6V8h7TjKNNLWtD8GdPnieVk7x/mi9cF3LFi2kcGXJADskx8ckZKZIrUiJlwskDeSIv5NV5dJ6dN+d90rrgTGf2yB84H9+H45gr</latexit>

Language Automata Grammar


RL
<latexit sha1_base64="1VCgF0mxBR9vvM8wVZmEyHDi1kI=">AAAB8HicbVDJSgNBEK2JW4xb1KOXwSB4CjPidgx68eAhilkkGUJPpydp0t0zdNeIYchXePGgiFc/x5t/Y2c5aPRBweO9KqrqhYngBj3vy8ktLC4tr+RXC2vrG5tbxe2duolTTVmNxiLWzZAYJrhiNeQoWDPRjMhQsEY4uBz7jQemDY/VHQ4TFkjSUzzilKCV7tvIHjG7vR51iiWv7E3g/iX+jJRghmqn+NnuxjSVTCEVxJiW7yUYZEQjp4KNCu3UsITQAemxlqWKSGaCbHLwyD2wSteNYm1LoTtRf05kRBozlKHtlAT7Zt4bi/95rRSj8yDjKkmRKTpdFKXCxdgdf+92uWYUxdASQjW3t7q0TzShaDMq2BD8+Zf/kvpR2T8tn9wclyoXszjysAf7cAg+nEEFrqAKNaAg4Qle4NXRzrPz5rxPW3PObGYXfsH5+AYLqZCV</latexit>

(CFL) (PDA) (CFG)


an
<latexit sha1_base64="9tQw7V57vUA3ZdVPVKWNm/piBjo=">AAAB83icbVDLSgNBEJz1GeMr6tHLYBA8hV3xdQx68RjBPCC7htlJJxkyO7vM9IphyW948aCIV3/Gm3/jJNmDJhY0FFXddHeFiRQGXffbWVpeWV1bL2wUN7e2d3ZLe/sNE6eaQ53HMtatkBmQQkEdBUpoJRpYFEpohsObid98BG1ErO5xlEAQsb4SPcEZWsn3EZ4QMWPjB9Upld2KOwVdJF5OyiRHrVP68rsxTyNQyCUzpu25CQYZ0yi4hHHRTw0kjA9ZH9qWKhaBCbLpzWN6bJUu7cXalkI6VX9PZCwyZhSFtjNiODDz3kT8z2un2LsKMqGSFEHx2aJeKinGdBIA7QoNHOXIEsa1sLdSPmCacbQxFW0I3vzLi6RxWvEuKud3Z+XqdR5HgRySI3JCPHJJquSW1EidcJKQZ/JK3pzUeXHenY9Z65KTzxyQP3A+fwDAapIq</latexit>

Regular Finite Regular


Language Automata Expression
(RL) (FA) (RE)

COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 2 / 23


Contents

1. Examples of Pushdown Automata


Example 1: an bn
Example 2: an b2n
Example 3: ww R
Example 4: Balanced Parentheses
Example 5: Equal Number of a’s and b’s
Example 6: Unequal Number of a’s and b’s
Example 7: Not of the Form ww

COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 3 / 23


Example 1: an bn
Construct a PDA that accepts the language by final states:

LF (P) = {an bn | n ≥ 0}

The key idea is to count the number of a’s using the stack.
1 Start with the stack only having the initial stack alphabet Z .
2 Repeatedly push X onto the stack for each a.
3 Repeatedly pop X from the stack for each b.
4 Accept when the top of the stack is Z .

COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 4 / 23


Example 1: an bn
Construct a PDA that accepts the language by final states:

LF (P) = {an bn | n ≥ 0}

a [Z → XZ ]
a [X → XX ] b [X → ϵ]

start [Z ] q0 q1 q2
ϵ [Z → Z ] ϵ [Z → Z ]
ϵ [X → X ]

https://plrg.korea.ac.kr/courses/cose215/materials/pda-an-bn-final.pdf

COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 5 / 23


Example 2: an b2n
Construct a PDA that accepts the language by final states:

LF (P) = {an b2n | n ≥ 0}

Now, we need to push two X ’s for each a.


1 Start with the stack only having the initial stack alphabet Z .
2 Repeatedly push two X ’s onto the stack for each a.
3 Repeatedly pop X from the stack for each b.
4 Accept when the top of the stack is Z .

COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 6 / 23


Example 2: an b2n
Construct a PDA that accepts the language by final states:

LF (P) = {an b2n | n ≥ 0}

a [Z → XXZ ]
a [X → XXX ] b [X → ϵ]

start [Z ] q0 q1 q2
ϵ [Z → Z ] ϵ [Z → Z ]
ϵ [X → X ]

https://plrg.korea.ac.kr/courses/cose215/materials/pda-an-b2n-final.pdf

COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 7 / 23


Example 3: ww R
Construct a PDA that accepts the language by final states:

LF (P) = {ww R | w ∈ {a, b}∗ }

The key idea is to store the first half of the word and compare it with the
second half in reverse order using the stack.
1 Start with the stack only having the initial stack alphabet Z .
2 Repeatedly push X (or Y ) onto the stack for each a (or b).
3 Repeatedly pop X (or Y ) from the stack for each a (or b).
4 Accept when the top of the stack is Z .

COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 8 / 23


Example 3: ww R
Construct a PDA that accepts the language by final states:

LF (P) = {ww R | w ∈ {a, b}∗ }

a [Z → XZ ]
a [X → XX ]
a [Y → XY ]
b [Z → YZ ]
b [X → YX ] a [X → ϵ]
b [Y → YY ] b [Y → ϵ]

start [Z ] q0 q1 q2
ϵ [Z → Z ] ϵ [Z → Z ]
ϵ [X → X ]
ϵ [Y → Y ]

https://plrg.korea.ac.kr/courses/cose215/materials/pda-w-wr-final.pdf

COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 9 / 23


Example 4: Balanced Parentheses
Construct a PDA that accepts the language by empty stacks:

LE (P) = {w ∈ {(, )}∗ | w is balanced}

The key idea is to count the number of unmatched open parentheses.


1 Start with the stack only having the initial stack alphabet Z .
2 If the current symbol is (, push ( onto the stack.
3 If the current symbol is ), pop ( from the stack.
4 Repeat steps 2 and 3.
5 Accept when the top of the stack is Z .

COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 10 / 23


Example 4: Balanced Parentheses
Construct a PDA that accepts the language by empty stacks:

LE (P) = {w ∈ {(, )}∗ | w is balanced}

( [Z → (Z ]
( [( → ((]
) [( → ϵ]
ϵ [Z → ϵ]

start [Z ] q0

https://plrg.korea.ac.kr/courses/cose215/materials/pda-balanced-empty.pdf

COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 11 / 23


Example 5: Equal Number of a’s and b’s
Construct a PDA that accepts the language by empty stacks:

LE (P) = {w ∈ {a, b}∗ | Na (w ) = Nb (w )}

where Na (w ) and Nb (w ) are the number of a’s and b’s in w , respectively.


Consider the following function f : {a, b}∗ → N:

f (w ) = Na (w ) − Nb (w )

The key idea is to represent the positive value of f (w ) using the number
of P’s and the negative value of f (w ) using the number of N’s.
1 Start with the stack only having the initial stack alphabet Z .
2 If the current symbol is a, push P or pop N.
3 If the current symbol is b, push N or pop P.
4 Repeat steps 2 and 3.
5 Accept when the top of the stack is Z .
COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 12 / 23
Example 5: Equal Number of a’s and b’s
Construct a PDA that accepts the language by empty stacks:

LE (P) = {w ∈ {a, b}∗ | Na (w ) = Nb (w )}

where Na (w ) and Nb (w ) are the number of a’s and b’s in w , respectively.


a [Z → PZ ]
a [P → PP]
a [N → ϵ]
b [Z → NZ ]
b [P → ϵ]
b [N → NN]
ϵ [Z → ϵ]

start [Z ] q0

https://plrg.korea.ac.kr/courses/cose215/materials/pda-eq-a-b-empty.pdf

COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 13 / 23


Example 6: Unequal Number of a’s and b’s
Construct a PDA that accepts the language by empty stacks:

LE (P) = {w ∈ {a, b}∗ | Na (w ) ̸= Nb (w )}

where Na (w ) and Nb (w ) are the number of a’s and b’s in w , respectively.

The key idea is same but we accept the top of the stack is P or N.
1 Start with the stack only having the initial stack alphabet Z .
2 If the current symbol is a, push P or pop N.
3 If the current symbol is b, push N or pop P.
4 Repeat steps 2 and 3.
5 Accept when the top of the stack is P or N.

COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 14 / 23


Example 6: Unequal Number of a’s and b’s
Construct a PDA that accepts the language by empty stacks:

LE (P) = {w ∈ {a, b}∗ | Na (w ) ̸= Nb (w )}

where Na (w ) and Nb (w ) are the number of a’s and b’s in w , respectively.


a [Z → PZ ]
a [P → PP]
a [N → ϵ]
b [Z → NZ ] ϵ [Z → ϵ]
b [P → ϵ] ϵ [P → ϵ]
b [N → NN] ϵ [N → ϵ]

start [Z ] q0 q1
ϵ [P → ϵ]
ϵ [N → ϵ]

https://plrg.korea.ac.kr/courses/cose215/materials/pda-uneq-a-b-empty.pdf

COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 15 / 23


Example 7: Not of the Form ww
Construct a PDA that accepts the language by empty stacks:

LE (P) = {x ∈ {a, b}∗ | x is not of the form ww }

There are two cases of x ∈ LE (P):


1 x is an odd-length word or
2 x is divided into two same-length but unequal words.

In the second case, assume x = a1 · · · a2n . Then,

∃1 ≤ i ≤ n. ai ̸= ai+n

i 1 n 1 n i
<latexit sha1_base64="UH9pexq03EkZwc2JdumLyfHLU0g=">AAACEnicbVDLSsNAFJ3UV62vqks3g0VwY0lEqsuiG5cV7QPaUCaTSTt0MgkzN0IM/QR3ov/iTtz6A/6KK6dtFrb1wIXDOffOnXu8WHANtv1tFVZW19Y3ipulre2d3b3y/kFLR4mirEkjEamORzQTXLImcBCsEytGQk+wtje6mfjtR6Y0j+QDpDFzQzKQPOCUgJHu+ZnTL1fsqj0FXiZOTiooR6Nf/un5EU1CJoEKonXXsWNwM6KAU8HGpV6iWUzoiAxY11BJQqbdbPrVMT4xio+DSJmSgKfq34mMhFqnoWc6QwJDvehNxH89DSFRqfIX9kNw5WZcxgkwSWfrg0RgiPAkDexzxSiI1BBCFTcXYDokilAwmc29D3z0NC6ZsJzFaJZJ67zq1Kq1u4tK/TqPrYiO0DE6RQ66RHV0ixqoiSgaoGf0it6sF+vd+rA+Z60FK585RHOwvn4B1DOegA==</latexit> <latexit sha1_base64="Veoq8N5KuTOmlQ3utRzkBUy9810=">AAACEnicbVDLSsNAFJ3UV62vqks3g0VwY0lEqsuiG5cV7QPaUCaTSTt0MgkzN0IM/QR3ov/iTtz6A/6KK6dtFrb1wIXDOffOnXu8WHANtv1tFVZW19Y3ipulre2d3b3y/kFLR4mirEkjEamORzQTXLImcBCsEytGQk+wtje6mfjtR6Y0j+QDpDFzQzKQPOCUgJHu5ZnTL1fsqj0FXiZOTiooR6Nf/un5EU1CJoEKonXXsWNwM6KAU8HGpV6iWUzoiAxY11BJQqbdbPrVMT4xio+DSJmSgKfq34mMhFqnoWc6QwJDvehNxH89DSFRqfIX9kNw5WZcxgkwSWfrg0RgiPAkDexzxSiI1BBCFTcXYDokilAwmc29D3z0NC6ZsJzFaJZJ67zq1Kq1u4tK/TqPrYiO0DE6RQ66RHV0ixqoiSgaoGf0it6sF+vd+rA+Z60FK585RHOwvn4B3JmehQ==</latexit> <latexit sha1_base64="EPCHPawfBVBm10fHNkxWWVovJ8c=">AAACEnicbVDLSsNAFJ3UV62vqks3g0VwY0lEqsuiG5cV7QPaUCaTSTt0MgkzN0IM/QR3ov/iTtz6A/6KK6dtFrb1wIXDOffOnXu8WHANtv1tFVZW19Y3ipulre2d3b3y/kFLR4mirEkjEamORzQTXLImcBCsEytGQk+wtje6mfjtR6Y0j+QDpDFzQzKQPOCUgJHu5Rnvlyt21Z4CLxMnJxWUo9Ev//T8iCYhk0AF0brr2DG4GVHAqWDjUi/RLCZ0RAasa6gkIdNuNv3qGJ8YxcdBpExJwFP170RGQq3T0DOdIYGhXvQm4r+ehpCoVPkL+yG4cjMu4wSYpLP1QSIwRHiSBva5YhREagihipsLMB0SRSiYzObeBz56GpdMWM5iNMukdV51atXa3UWlfp3HVkRH6BidIgddojq6RQ3URBQN0DN6RW/Wi/VufVifs9aClc8cojlYX786SJ69</latexit>

ai
<latexit sha1_base64="kNEDHwynPjSjevZyyKAJx2YEWKo=">AAACEnicbVDLSgMxFM34rPVVdekmWARXZUakuiy6cVnRPqAdSiaTtqFJZkjuCOPQT3An+i/uxK0/4K+4Mm1nYVsPXDicc29u7gliwQ247rezsrq2vrFZ2Cpu7+zu7ZcODpsmSjRlDRqJSLcDYpjgijWAg2DtWDMiA8Fawehm4rcemTY8Ug+QxsyXZKB4n1MCVronPd4rld2KOwVeJl5OyihHvVf66YYRTSRTQAUxpuO5MfgZ0cCpYONiNzEsJnREBqxjqSKSGT+bfnWMT60S4n6kbSnAU/XvREakMakMbKckMDSL3kT81zMgiU51uLAf+ld+xlWcAFN0tr6fCAwRnqSBQ64ZBZFaQqjm9gJMh0QTCjazufeBj57GRRuWtxjNMmmeV7xqpXp3Ua5d57EV0DE6QWfIQ5eohm5RHTUQRQP0jF7Rm/PivDsfzuesdcXJZ47QHJyvX3g8nuI=</latexit>

ai+n
<latexit sha1_base64="AZHwR81Jo+GpArfRH87+QBGceJM=">AAACFnicbVDLSsNAFJ34rPVVdelmsAiCUBKR6rLoxmUF+4A2lMlk0g6dTMLMjRBDPsKd6L+4E7du/RVXTtssbOuBC4dz7p0793ix4Bps+9taWV1b39gsbZW3d3b39isHh20dJYqyFo1EpLoe0UxwyVrAQbBurBgJPcE63vh24ncemdI8kg+QxswNyVDygFMCRuqQQcbPZT6oVO2aPQVeJk5BqqhAc1D56fsRTUImgQqidc+xY3AzooBTwfJyP9EsJnRMhqxnqCQh0242/W6OT43i4yBSpiTgqfp3IiOh1mnomc6QwEgvehPxX09DSFSq/IX9EFy7GZdxAkzS2fogERgiPEkE+1wxCiI1hFDFzQWYjogiFExuc+8DHz/lZROWsxjNMmlf1Jx6rX5/WW3cFLGV0DE6QWfIQVeoge5QE7UQRWP0jF7Rm/VivVsf1uesdcUqZo7QHKyvX7IMoJs=</latexit>

COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 16 / 23


Example 7: Not of the Form ww
Construct a PDA that accepts the language by empty stacks:

LE (P) = {x ∈ {a, b}∗ | x is not of the form ww }

There are two cases of x ∈ LE (P):


1 x is an odd-length word or
2 x is divided into two same-length but unequal words.

In the second case, assume x = a1 · · · a2n . Then,

∃1 ≤ i ≤ n. ai ̸= ai+n

i 1 i 1 n i n i
<latexit sha1_base64="UH9pexq03EkZwc2JdumLyfHLU0g=">AAACEnicbVDLSsNAFJ3UV62vqks3g0VwY0lEqsuiG5cV7QPaUCaTSTt0MgkzN0IM/QR3ov/iTtz6A/6KK6dtFrb1wIXDOffOnXu8WHANtv1tFVZW19Y3ipulre2d3b3y/kFLR4mirEkjEamORzQTXLImcBCsEytGQk+wtje6mfjtR6Y0j+QDpDFzQzKQPOCUgJHu+ZnTL1fsqj0FXiZOTiooR6Nf/un5EU1CJoEKonXXsWNwM6KAU8HGpV6iWUzoiAxY11BJQqbdbPrVMT4xio+DSJmSgKfq34mMhFqnoWc6QwJDvehNxH89DSFRqfIX9kNw5WZcxgkwSWfrg0RgiPAkDexzxSiI1BBCFTcXYDokilAwmc29D3z0NC6ZsJzFaJZJ67zq1Kq1u4tK/TqPrYiO0DE6RQ66RHV0ixqoiSgaoGf0it6sF+vd+rA+Z60FK585RHOwvn4B1DOegA==</latexit> <latexit sha1_base64="UH9pexq03EkZwc2JdumLyfHLU0g=">AAACEnicbVDLSsNAFJ3UV62vqks3g0VwY0lEqsuiG5cV7QPaUCaTSTt0MgkzN0IM/QR3ov/iTtz6A/6KK6dtFrb1wIXDOffOnXu8WHANtv1tFVZW19Y3ipulre2d3b3y/kFLR4mirEkjEamORzQTXLImcBCsEytGQk+wtje6mfjtR6Y0j+QDpDFzQzKQPOCUgJHu+ZnTL1fsqj0FXiZOTiooR6Nf/un5EU1CJoEKonXXsWNwM6KAU8HGpV6iWUzoiAxY11BJQqbdbPrVMT4xio+DSJmSgKfq34mMhFqnoWc6QwJDvehNxH89DSFRqfIX9kNw5WZcxgkwSWfrg0RgiPAkDexzxSiI1BBCFTcXYDokilAwmc29D3z0NC6ZsJzFaJZJ67zq1Kq1u4tK/TqPrYiO0DE6RQ66RHV0ixqoiSgaoGf0it6sF+vd+rA+Z60FK585RHOwvn4B1DOegA==</latexit> <latexit sha1_base64="EPCHPawfBVBm10fHNkxWWVovJ8c=">AAACEnicbVDLSsNAFJ3UV62vqks3g0VwY0lEqsuiG5cV7QPaUCaTSTt0MgkzN0IM/QR3ov/iTtz6A/6KK6dtFrb1wIXDOffOnXu8WHANtv1tFVZW19Y3ipulre2d3b3y/kFLR4mirEkjEamORzQTXLImcBCsEytGQk+wtje6mfjtR6Y0j+QDpDFzQzKQPOCUgJHu5Rnvlyt21Z4CLxMnJxWUo9Ev//T8iCYhk0AF0brr2DG4GVHAqWDjUi/RLCZ0RAasa6gkIdNuNv3qGJ8YxcdBpExJwFP170RGQq3T0DOdIYGhXvQm4r+ehpCoVPkL+yG4cjMu4wSYpLP1QSIwRHiSBva5YhREagihipsLMB0SRSiYzObeBz56GpdMWM5iNMukdV51atXa3UWlfp3HVkRH6BidIgddojq6RQ3URBQN0DN6RW/Wi/VufVifs9aClc8cojlYX786SJ69</latexit> <latexit sha1_base64="EPCHPawfBVBm10fHNkxWWVovJ8c=">AAACEnicbVDLSsNAFJ3UV62vqks3g0VwY0lEqsuiG5cV7QPaUCaTSTt0MgkzN0IM/QR3ov/iTtz6A/6KK6dtFrb1wIXDOffOnXu8WHANtv1tFVZW19Y3ipulre2d3b3y/kFLR4mirEkjEamORzQTXLImcBCsEytGQk+wtje6mfjtR6Y0j+QDpDFzQzKQPOCUgJHu5Rnvlyt21Z4CLxMnJxWUo9Ev//T8iCYhk0AF0brr2DG4GVHAqWDjUi/RLCZ0RAasa6gkIdNuNv3qGJ8YxcdBpExJwFP170RGQq3T0DOdIYGhXvQm4r+ehpCoVPkL+yG4cjMu4wSYpLP1QSIwRHiSBva5YhREagihipsLMB0SRSiYzObeBz56GpdMWM5iNMukdV51atXa3UWlfp3HVkRH6BidIgddojq6RQ3URBQN0DN6RW/Wi/VufVifs9aClc8cojlYX786SJ69</latexit>

ai
<latexit sha1_base64="kNEDHwynPjSjevZyyKAJx2YEWKo=">AAACEnicbVDLSgMxFM34rPVVdekmWARXZUakuiy6cVnRPqAdSiaTtqFJZkjuCOPQT3An+i/uxK0/4K+4Mm1nYVsPXDicc29u7gliwQ247rezsrq2vrFZ2Cpu7+zu7ZcODpsmSjRlDRqJSLcDYpjgijWAg2DtWDMiA8Fawehm4rcemTY8Ug+QxsyXZKB4n1MCVronPd4rld2KOwVeJl5OyihHvVf66YYRTSRTQAUxpuO5MfgZ0cCpYONiNzEsJnREBqxjqSKSGT+bfnWMT60S4n6kbSnAU/XvREakMakMbKckMDSL3kT81zMgiU51uLAf+ld+xlWcAFN0tr6fCAwRnqSBQ64ZBZFaQqjm9gJMh0QTCjazufeBj57GRRuWtxjNMmmeV7xqpXp3Ua5d57EV0DE6QWfIQ5eohm5RHTUQRQP0jF7Rm/PivDsfzuesdcXJZ47QHJyvX3g8nuI=</latexit>

ai+n
<latexit sha1_base64="AZHwR81Jo+GpArfRH87+QBGceJM=">AAACFnicbVDLSsNAFJ34rPVVdelmsAiCUBKR6rLoxmUF+4A2lMlk0g6dTMLMjRBDPsKd6L+4E7du/RVXTtssbOuBC4dz7p0793ix4Bps+9taWV1b39gsbZW3d3b39isHh20dJYqyFo1EpLoe0UxwyVrAQbBurBgJPcE63vh24ncemdI8kg+QxswNyVDygFMCRuqQQcbPZT6oVO2aPQVeJk5BqqhAc1D56fsRTUImgQqidc+xY3AzooBTwfJyP9EsJnRMhqxnqCQh0242/W6OT43i4yBSpiTgqfp3IiOh1mnomc6QwEgvehPxX09DSFSq/IX9EFy7GZdxAkzS2fogERgiPEkE+1wxCiI1hFDFzQWYjogiFExuc+8DHz/lZROWsxjNMmlf1Jx6rX5/WW3cFLGV0DE6QWfIQVeoge5QE7UQRWP0jF7Rm/VivVsf1uesdcUqZo7QHKyvX7IMoJs=</latexit>

COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 17 / 23


Example 7: Not of the Form ww
Construct a PDA that accepts the language by empty stacks:

LE (P) = {x ∈ {a, b}∗ | x is not of the form ww }

There are two cases of x ∈ LE (P):


1 x is an odd-length word or
2 x is divided into two same-length but unequal words.

In the second case, assume x = a1 · · · a2n . Then,

∃1 ≤ i ≤ n. ai ̸= ai+n

j j
<latexit sha1_base64="t0MtSVh4HUo09yWbX4Qoy5bapFw=">AAACEHicbVDLSsNAFJ3UV62vqks3g0VwVRKR6rLoxmUL9gFtKJPJpB07k4SZGyGGfoE70X9xJ279A3/FldM2C9t64MLhnHvnzj1eLLgG2/62CmvrG5tbxe3Szu7e/kH58Kito0RR1qKRiFTXI5oJHrIWcBCsGytGpCdYxxvfTv3OI1OaR+E9pDFzJRmGPOCUgJGaD4Nyxa7aM+BV4uSkgnI0BuWfvh/RRLIQqCBa9xw7BjcjCjgVbFLqJ5rFhI7JkPUMDYlk2s1mH53gM6P4OIiUqRDwTP07kRGpdSo90ykJjPSyNxX/9TRIolLlL+2H4NrNeBgnwEI6Xx8kAkOEp1lgnytGQaSGEKq4uQDTEVGEgkls4X3g46dJyYTlLEezStoXVadWrTUvK/WbPLYiOkGn6Bw56ArV0R1qoBaiiKFn9IrerBfr3fqwPuetBSufOUYLsL5+Ae2Png8=</latexit> <latexit sha1_base64="t0MtSVh4HUo09yWbX4Qoy5bapFw=">AAACEHicbVDLSsNAFJ3UV62vqks3g0VwVRKR6rLoxmUL9gFtKJPJpB07k4SZGyGGfoE70X9xJ279A3/FldM2C9t64MLhnHvnzj1eLLgG2/62CmvrG5tbxe3Szu7e/kH58Kito0RR1qKRiFTXI5oJHrIWcBCsGytGpCdYxxvfTv3OI1OaR+E9pDFzJRmGPOCUgJGaD4Nyxa7aM+BV4uSkgnI0BuWfvh/RRLIQqCBa9xw7BjcjCjgVbFLqJ5rFhI7JkPUMDYlk2s1mH53gM6P4OIiUqRDwTP07kRGpdSo90ykJjPSyNxX/9TRIolLlL+2H4NrNeBgnwEI6Xx8kAkOEp1lgnytGQaSGEKq4uQDTEVGEgkls4X3g46dJyYTlLEezStoXVadWrTUvK/WbPLYiOkGn6Bw56ArV0R1qoBaiiKFn9IrerBfr3fqwPuetBSufOUYLsL5+Ae2Png8=</latexit>

k k
<latexit sha1_base64="F3EG0lJLoDRZCtptTYQpGRYLK9A=">AAACEHicbVDLSsNAFJ3UV62vqks3g0VwVRKR6rLoxmULthXaUCaTSTtkMgkzN0IM/QJ3ov/iTtz6B/6KK6dtFrb1wIXDOffOnXu8RHANtv1tldbWNza3ytuVnd29/YPq4VFXx6mirENjEasHj2gmuGQd4CDYQ6IYiTzBel54O/V7j0xpHst7yBLmRmQkecApASO1w2G1ZtftGfAqcQpSQwVaw+rPwI9pGjEJVBCt+46dgJsTBZwKNqkMUs0SQkMyYn1DJYmYdvPZRyf4zCg+DmJlSgKeqX8nchJpnUWe6YwIjPWyNxX/9TRERGXKX9oPwbWbc5mkwCSdrw9SgSHG0yywzxWjIDJDCFXcXIDpmChCwSS28D7w8GlSMWE5y9Gsku5F3WnUG+3LWvOmiK2MTtApOkcOukJNdIdaqIMoYugZvaI368V6tz6sz3lrySpmjtECrK9f7zueEA==</latexit> <latexit sha1_base64="F3EG0lJLoDRZCtptTYQpGRYLK9A=">AAACEHicbVDLSsNAFJ3UV62vqks3g0VwVRKR6rLoxmULthXaUCaTSTtkMgkzN0IM/QJ3ov/iTtz6B/6KK6dtFrb1wIXDOffOnXu8RHANtv1tldbWNza3ytuVnd29/YPq4VFXx6mirENjEasHj2gmuGQd4CDYQ6IYiTzBel54O/V7j0xpHst7yBLmRmQkecApASO1w2G1ZtftGfAqcQpSQwVaw+rPwI9pGjEJVBCt+46dgJsTBZwKNqkMUs0SQkMyYn1DJYmYdvPZRyf4zCg+DmJlSgKeqX8nchJpnUWe6YwIjPWyNxX/9TRERGXKX9oPwbWbc5mkwCSdrw9SgSHG0yywzxWjIDJDCFXcXIDpmChCwSS28D7w8GlSMWE5y9Gsku5F3WnUG+3LWvOmiK2MTtApOkcOukJNdIdaqIMoYugZvaI368V6tz6sz3lrySpmjtECrK9f7zueEA==</latexit>

ai
<latexit sha1_base64="kNEDHwynPjSjevZyyKAJx2YEWKo=">AAACEnicbVDLSgMxFM34rPVVdekmWARXZUakuiy6cVnRPqAdSiaTtqFJZkjuCOPQT3An+i/uxK0/4K+4Mm1nYVsPXDicc29u7gliwQ247rezsrq2vrFZ2Cpu7+zu7ZcODpsmSjRlDRqJSLcDYpjgijWAg2DtWDMiA8Fawehm4rcemTY8Ug+QxsyXZKB4n1MCVronPd4rld2KOwVeJl5OyihHvVf66YYRTSRTQAUxpuO5MfgZ0cCpYONiNzEsJnREBqxjqSKSGT+bfnWMT60S4n6kbSnAU/XvREakMakMbKckMDSL3kT81zMgiU51uLAf+ld+xlWcAFN0tr6fCAwRnqSBQ64ZBZFaQqjm9gJMh0QTCjazufeBj57GRRuWtxjNMmmeV7xqpXp3Ua5d57EV0DE6QWfIQ5eohm5RHTUQRQP0jF7Rm/PivDsfzuesdcXJZ47QHJyvX3g8nuI=</latexit>

ai+n
<latexit sha1_base64="AZHwR81Jo+GpArfRH87+QBGceJM=">AAACFnicbVDLSsNAFJ34rPVVdelmsAiCUBKR6rLoxmUF+4A2lMlk0g6dTMLMjRBDPsKd6L+4E7du/RVXTtssbOuBC4dz7p0793ix4Bps+9taWV1b39gsbZW3d3b39isHh20dJYqyFo1EpLoe0UxwyVrAQbBurBgJPcE63vh24ncemdI8kg+QxswNyVDygFMCRuqQQcbPZT6oVO2aPQVeJk5BqqhAc1D56fsRTUImgQqidc+xY3AzooBTwfJyP9EsJnRMhqxnqCQh0242/W6OT43i4yBSpiTgqfp3IiOh1mnomc6QwEgvehPxX09DSFSq/IX9EFy7GZdxAkzS2fogERgiPEkE+1wxCiI1hFDFzQWYjogiFExuc+8DHz/lZROWsxjNMmlf1Jx6rX5/WW3cFLGV0DE6QWfIQVeoge5QE7UQRWP0jF7Rm/VivVsf1uesdcUqZo7QHKyvX7IMoJs=</latexit>

COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 18 / 23


Example 7: Not of the Form ww
Construct a PDA that accepts the language by empty stacks:

LE (P) = {x ∈ {a, b}∗ | x is not of the form ww }

There are two cases of x ∈ LE (P):


1 x is an odd-length word or
2 x is divided into two odd-length words whose centers are different.

In the second case, assume x = a1 · · · a2n . Then,

∃1 ≤ i ≤ n. ai ̸= ai+n

j j
<latexit sha1_base64="t0MtSVh4HUo09yWbX4Qoy5bapFw=">AAACEHicbVDLSsNAFJ3UV62vqks3g0VwVRKR6rLoxmUL9gFtKJPJpB07k4SZGyGGfoE70X9xJ279A3/FldM2C9t64MLhnHvnzj1eLLgG2/62CmvrG5tbxe3Szu7e/kH58Kito0RR1qKRiFTXI5oJHrIWcBCsGytGpCdYxxvfTv3OI1OaR+E9pDFzJRmGPOCUgJGaD4Nyxa7aM+BV4uSkgnI0BuWfvh/RRLIQqCBa9xw7BjcjCjgVbFLqJ5rFhI7JkPUMDYlk2s1mH53gM6P4OIiUqRDwTP07kRGpdSo90ykJjPSyNxX/9TRIolLlL+2H4NrNeBgnwEI6Xx8kAkOEp1lgnytGQaSGEKq4uQDTEVGEgkls4X3g46dJyYTlLEezStoXVadWrTUvK/WbPLYiOkGn6Bw56ArV0R1qoBaiiKFn9IrerBfr3fqwPuetBSufOUYLsL5+Ae2Png8=</latexit> <latexit sha1_base64="t0MtSVh4HUo09yWbX4Qoy5bapFw=">AAACEHicbVDLSsNAFJ3UV62vqks3g0VwVRKR6rLoxmUL9gFtKJPJpB07k4SZGyGGfoE70X9xJ279A3/FldM2C9t64MLhnHvnzj1eLLgG2/62CmvrG5tbxe3Szu7e/kH58Kito0RR1qKRiFTXI5oJHrIWcBCsGytGpCdYxxvfTv3OI1OaR+E9pDFzJRmGPOCUgJGaD4Nyxa7aM+BV4uSkgnI0BuWfvh/RRLIQqCBa9xw7BjcjCjgVbFLqJ5rFhI7JkPUMDYlk2s1mH53gM6P4OIiUqRDwTP07kRGpdSo90ykJjPSyNxX/9TRIolLlL+2H4NrNeBgnwEI6Xx8kAkOEp1lgnytGQaSGEKq4uQDTEVGEgkls4X3g46dJyYTlLEezStoXVadWrTUvK/WbPLYiOkGn6Bw56ArV0R1qoBaiiKFn9IrerBfr3fqwPuetBSufOUYLsL5+Ae2Png8=</latexit>

k k
<latexit sha1_base64="F3EG0lJLoDRZCtptTYQpGRYLK9A=">AAACEHicbVDLSsNAFJ3UV62vqks3g0VwVRKR6rLoxmULthXaUCaTSTtkMgkzN0IM/QJ3ov/iTtz6B/6KK6dtFrb1wIXDOffOnXu8RHANtv1tldbWNza3ytuVnd29/YPq4VFXx6mirENjEasHj2gmuGQd4CDYQ6IYiTzBel54O/V7j0xpHst7yBLmRmQkecApASO1w2G1ZtftGfAqcQpSQwVaw+rPwI9pGjEJVBCt+46dgJsTBZwKNqkMUs0SQkMyYn1DJYmYdvPZRyf4zCg+DmJlSgKeqX8nchJpnUWe6YwIjPWyNxX/9TRERGXKX9oPwbWbc5mkwCSdrw9SgSHG0yywzxWjIDJDCFXcXIDpmChCwSS28D7w8GlSMWE5y9Gsku5F3WnUG+3LWvOmiK2MTtApOkcOukJNdIdaqIMoYugZvaI368V6tz6sz3lrySpmjtECrK9f7zueEA==</latexit> <latexit sha1_base64="F3EG0lJLoDRZCtptTYQpGRYLK9A=">AAACEHicbVDLSsNAFJ3UV62vqks3g0VwVRKR6rLoxmULthXaUCaTSTtkMgkzN0IM/QJ3ov/iTtz6B/6KK6dtFrb1wIXDOffOnXu8RHANtv1tldbWNza3ytuVnd29/YPq4VFXx6mirENjEasHj2gmuGQd4CDYQ6IYiTzBel54O/V7j0xpHst7yBLmRmQkecApASO1w2G1ZtftGfAqcQpSQwVaw+rPwI9pGjEJVBCt+46dgJsTBZwKNqkMUs0SQkMyYn1DJYmYdvPZRyf4zCg+DmJlSgKeqX8nchJpnUWe6YwIjPWyNxX/9TRERGXKX9oPwbWbc5mkwCSdrw9SgSHG0yywzxWjIDJDCFXcXIDpmChCwSS28D7w8GlSMWE5y9Gsku5F3WnUG+3LWvOmiK2MTtApOkcOukJNdIdaqIMoYugZvaI368V6tz6sz3lrySpmjtECrK9f7zueEA==</latexit>

ai
<latexit sha1_base64="kNEDHwynPjSjevZyyKAJx2YEWKo=">AAACEnicbVDLSgMxFM34rPVVdekmWARXZUakuiy6cVnRPqAdSiaTtqFJZkjuCOPQT3An+i/uxK0/4K+4Mm1nYVsPXDicc29u7gliwQ247rezsrq2vrFZ2Cpu7+zu7ZcODpsmSjRlDRqJSLcDYpjgijWAg2DtWDMiA8Fawehm4rcemTY8Ug+QxsyXZKB4n1MCVronPd4rld2KOwVeJl5OyihHvVf66YYRTSRTQAUxpuO5MfgZ0cCpYONiNzEsJnREBqxjqSKSGT+bfnWMT60S4n6kbSnAU/XvREakMakMbKckMDSL3kT81zMgiU51uLAf+ld+xlWcAFN0tr6fCAwRnqSBQ64ZBZFaQqjm9gJMh0QTCjazufeBj57GRRuWtxjNMmmeV7xqpXp3Ua5d57EV0DE6QWfIQ5eohm5RHTUQRQP0jF7Rm/PivDsfzuesdcXJZ47QHJyvX3g8nuI=</latexit>

ai+n
<latexit sha1_base64="AZHwR81Jo+GpArfRH87+QBGceJM=">AAACFnicbVDLSsNAFJ34rPVVdelmsAiCUBKR6rLoxmUF+4A2lMlk0g6dTMLMjRBDPsKd6L+4E7du/RVXTtssbOuBC4dz7p0793ix4Bps+9taWV1b39gsbZW3d3b39isHh20dJYqyFo1EpLoe0UxwyVrAQbBurBgJPcE63vh24ncemdI8kg+QxswNyVDygFMCRuqQQcbPZT6oVO2aPQVeJk5BqqhAc1D56fsRTUImgQqidc+xY3AzooBTwfJyP9EsJnRMhqxnqCQh0242/W6OT43i4yBSpiTgqfp3IiOh1mnomc6QwEgvehPxX09DSFSq/IX9EFy7GZdxAkzS2fogERgiPEkE+1wxCiI1hFDFzQWYjogiFExuc+8DHz/lZROWsxjNMmlf1Jx6rX5/WW3cFLGV0DE6QWfIQVeoge5QE7UQRWP0jF7Rm/VivVsf1uesdcUqZo7QHKyvX7IMoJs=</latexit>

COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 19 / 23


Example 7: Not of the Form ww
Construct a PDA that accepts the language by empty stacks:

LE (P) = {x ∈ {a, b}∗ | x is not of the form ww }

a, b [Z → XZ ] a, b [X → ϵ] a, b [Z → XZ ]
a, b [X → XX ] ϵ [Z → ϵ] a, b [X → XX ]

start [Z ] q0 q1 q2
a [Z → Z ] ϵ [Z → Z ]
a [X → X ]
b [Z → Z ] b [Z → Z ]
b [X → X ] b [X → X ]
a [Z → Z ]
ϵ [Z → Z ] a [X → X ]
q3 q4 q5

a, b [X → ϵ] a, b [Z → XZ ] a, b [X → ϵ]
ϵ [Z → ϵ] a, b [X → XX ] ϵ [Z → ϵ]

https://plrg.korea.ac.kr/courses/cose215/materials/pda-not-w-w-empty.pdf

COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 20 / 23


Summary

1. Examples of Pushdown Automata


Example 1: an bn
Example 2: an b2n
Example 3: ww R
Example 4: Balanced Parentheses
Example 5: Equal Number of a’s and b’s
Example 6: Unequal Number of a’s and b’s
Example 7: Not of the Form ww

COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 21 / 23


Homework #4
• Please see this document on GitHub:

https://github.com/ku-plrg-classroom/docs/tree/main/cose215/pda-examples

• The due date is 23:59 on May 15 (Wed.).

• Please only submit Implementation.scala file to Blackboard.

COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 22 / 23


Next Lecture
• Equivalence of Pushdown Automata and Context-Free Grammars

Jihyeok Park
jihyeok [email protected]
https://plrg.korea.ac.kr

COSE215 @ Korea University Lecture 15 – Examples of PDA May 1, 2024 23 / 23

You might also like