簡體   English   中英

下推自動機為百靈酮

[英]Pushdown Automata for Palindrones

因此,我發現此PDA可以接受{0,1} *語言的回文。

百靈達PDA

但是,我無法理解它如何接受“ 1”或“ 0”。

B它可以讀取1或0,並將相同的符號壓入堆棧,然后轉到C 但是,一旦它進入C ,它就無處可去了,因為到達堆棧中的$需要讀取另一個符號。

有人可以解釋它是如何工作的嗎?

我在想,為了接受單個符號,我們需要從BD => 1,$->ε | 0,$->ε的過渡1,$->ε | 0,$->ε 1,$->ε | 0,$->ε

我會是正確的嗎?

謝謝 :)

你是對的。 此PDA不會接受0或1(或更籠統地說,是任何奇長回文-您知道為什么嗎?)

為了解決這個問題,我建議添加從B到C的這些過渡:

0,ε→ε

1,ε→ε

這些過渡實質上使您可以“免費”使用字符。 如果您選擇中間字符並且字符串是回文,那就太好了! 然后您會接受。 如果您選擇了錯誤的字符或字符串不是回文,您將永遠不會在自動機死亡的情況下通過C和D狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM