Konstruieren Sie einen PDA für das Komplement von


16

Ich frage mich , ob dies überhaupt möglich ist, da . Daher könnte ein PDA, der ein Wort vom Rest von es genauso gut akzeptieren , was für mich widersprüchlich klingt.{anbncnn0}CFL{ a b c }w{anbncnn0}{abc}

Ich denke, ich muss den nicht deterministischen Charakter von PDAs ausnutzen, aber mir fehlen die Ideen. Wenn Sie mir einen Rat geben könnten, wäre ich Ihnen sehr dankbar.


Interessanterweise erscheint es widersprüchlich. In der Tat werden kontextfreie Sprachen nicht unter Berücksichtigung der Ergänzung geschlossen. Es gibt also viele Beispiele für nicht kontextfreie Sprachen, die in dem Sinne, auf den Sie anspielen, "akzeptiert" werden könnten. Ich bin kein Theoretiker und kann das als solches nicht wirklich in Einklang bringen, aber vielleicht kann sich jemand anderes einmischen, warum dies kein Grund zur Sorge ist?
Patrick87

Beachte , dass dies generalizes: das Komplement ist ein CFG. {anbncndnen}
SDCVVC

Antworten:


15

Nein, das ist kontextfrei. Um zu akzeptieren , müssen Sie sicherstellen, dass drei Zahlen gleich sind. So nehmen Sie eine * b * c *eine n b n c n , Sie müssen nur sicherstellen , dass Sie in einem der folgenden drei Fälle sind:anbncnabcanbncn

  1. Die Anzahl von s unterscheidet sich von der Anzahl von b s; oderab
  2. Die Anzahl von s unterscheidet sich von der Anzahl von c s; oderac
  3. Die Anzahl von unterscheidet sich von der Anzahl von cs .bc

Schreiben Sie für jeden dieser Fälle einen PDA und kombinieren Sie sie, indem Sie vom Startzustand aus nicht deterministisch zu jedem einzelnen springen.


Ich hatte diese Fälle in Ordnung aufgeschrieben, aber mir fehlte die Idee, sie zu verbinden. Vielen Dank!
hauptbenutzer

4
Eigentlich brauchen Sie nur zwei Fälle.
SDCVVC

@sdcvvc Guter Punkt. :)
Patrick87

Betrachten Sie dies für eine unterschiedliche Anzahl von Zeichen als Inspiration: . Es sollte einfach sein, entweder a + links oder c + rechts aufzukleben und daraus einen PDA zu machen. Für den kniffligen Fall (den Sie nicht brauchen) S a S c | A | C ; A a B |SxSy|X|Y;Xx|xX;Yy|yYa+c+ . SaSc|A|C;AaB|aA;CBc|Cc;Bε|bB
Jonas Kölker
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.