Formale Sprachen #27 - Nicht-Abgeschlossenheit kontextfreier Spachen unter Schnitt und Komplement

Поділитися
Вставка
  • Опубліковано 15 вер 2024
  • Wir zeigen, dass kontextfreie Sprachen nicht unter Schnitt und Komplement abgeschlossen sind.

КОМЕНТАРІ • 44

  • @maxwellenhofer7150
    @maxwellenhofer7150 5 років тому +9

    Besser als jede Vorlesung, Tutorium, etc. zum Thema theoretische Informatik. Klar, einfach, langsam, verständlich, anschaulich. Super zum reinkommen. Jedes Video spart mir 2 Stunden Bücher wälzen. Danke dafür!

    • @NLogSpace
      @NLogSpace  5 років тому

      Danke für das Lob! :)

  • @powermax6391
    @powermax6391 2 роки тому +2

    Wie immer, sehr schön erklärt. So kann TI doch Spaß machen.

  • @zaiab6754
    @zaiab6754 5 років тому +7

    Hi ich habe angefangen disen Fach zu verstehen und mögen
    du rettest gerade mein Semester
    Dafür Herzlichen Dank

  • @normannitsche4041
    @normannitsche4041 8 років тому +3

    entegen einer kommentierten Meinung:
    Super Beispiel, ausführlich und verständlich erklärt, danke dafür!

  • @iharbakhanovich
    @iharbakhanovich 4 роки тому +2

    Das Video ist toll. Vielen Dank. Sie sind ein Genius

  • @MrKellermonster
    @MrKellermonster 5 років тому +3

    Drei Tage vor der Prüfung und deine Videos helfen mir sehr, meinen Arsch zu retten :D Vielen Dank und weiter so!

  • @sergkapitan2578
    @sergkapitan2578 4 роки тому +1

    Besser geht nicht,wirklich! Bleibt nur jetzt 2-Teil der Fragen von Fragenkatalog (und Themen) genau so umformulieren wie in diesen Videos:))) Danke sehr für große Hilfe!!!

  • @justsplay695
    @justsplay695 5 років тому +2

    Du bist der Beste!

  • @bioinfo9386
    @bioinfo9386 8 років тому

    danke für die tolle Erklärung, habe mit Abschlusseigenschaften zuvor nicht wirklich was anfangen können und mit dem Pumping Lemma für kontexfreie Sprachen "gekämpft", aber jetzt gibt es Hoffnung für die baldige FSK-Klausur - vielen Dank, SEHR hilfreich!
    :D

    • @NLogSpace
      @NLogSpace  8 років тому

      Danke für das Feedback!

  • @Corrupter1313
    @Corrupter1313 8 років тому

    Super Video! Hat mir echt geholfen!

  • @goldinhoxx8964
    @goldinhoxx8964 3 роки тому +1

    Zu deinen Videos gibt es nur eins zu sagen: Wenn man es mit deinen Erklärungen nicht kapiert, wird man es nie kapieren. Ich glaube nicht, dass man das ganze besser erklären könnte als du es tust. Ganz großes Danke!!!!

  • @Cheeseburger0071
    @Cheeseburger0071 9 років тому

    Könnte man bei erkennbaren Sprachen sich nicht eine analoge Vereinigung der Sprachen überlegen, die dann nicht mehr erkennbar wären, also etwas in Richtung {a^nb^k}U{a^kb^n} oder wieso ist das nicht möglich? Das ist mir nicht ganz klar.

    • @NLogSpace
      @NLogSpace  9 років тому

      Meinst Du Vereinigung oder Schnitt? Die Vereinigung der beiden Sprachen wären alle Wörter die erst a's und dann b's oder erst b's und dann a's haben. Der Schnitt hätte nur Wörter der Form a^n und Wörter der Form b^n. Man bekommt also nicht die Sprachen {a^n b^n}, das war deine Vermutung, oder?

  • @ylamummo93
    @ylamummo93 7 років тому +1

    Ist eigentlich das Komplement von {0^n1^n2^n} kontextfrei oder nicht? Die Menge selbst ist nicht kontextfrei, aber wie könnte ich eine Aussage über deren Komplement beweisen?

    • @NLogSpace
      @NLogSpace  7 років тому

      Interessante Frage! Es gibt zwei Möglichkeiten: Entweder die Sprache ist kontextfrei, dann müsste man eine kontextfreie Grammatik finden, die diese Sprache erzeugt. Oder die Sprache ist nicht kontextfrei, dann könnte man versuchen mit dem Pumping-Lemma für kontextfreie Sprachen nachzuweisen, dass sie tatsächlichen nicht kontextfrei ist.
      Ich könnte mir vorstellen, dass man mit dem Pumping-Lemma Erfolg hat, d.h. das die Sprache nicht kontextfrei ist, habe das jetzt aber nicht geprüft.

    • @ylamummo93
      @ylamummo93 7 років тому

      Vielen Dank für die Antwort! :)
      Ich hab das mit dem Pumping Lemma versucht, aber es ist mir nicht gelungen die Nicht-Kontextfreiheit zu beweisen.
      Hier meine Überlegungen:
      Sei t vorgegeben. Jetzt versuche ich ein Wort aus dem Komplement zu finden mit mindestens Länge t, sodass jede Zerlegung uvxyz so auf- bzw. abpumpen lässt, dass das Wort nicht mehr im Komplement liegt. Es liegt nahe, dass ich das Wort irgendwie so wählen muss, dass es der Form 0^n1^n2^n ählich ist, damit man mit Aufpumpen Erfolg haben kann. Dennoch darf das Wort diese Form nicht haben, sonst läge es ja nicht im Komplement. Das Problem ist, dass egal wie ich das Wort wähle, z.B. 0^t1^t2^(2t) kann ich nicht erzwingen, dass die aufpumbaren Symbole in jeder Zerlegung ausschliesslich aus den Symbolen bestehen, die ich gerade auf oder abpumpen möchte. Deswegen komm ich da nicht weiter. Ich bin nicht mal ganz überzeugt ob die Sprache dann doch kontextfrei ist.

    • @NLogSpace
      @NLogSpace  7 років тому

      Oh tatsächlich, sie ist kontextfrei!
      Im Video haben wir ja gesehen, dass {a^nb^nc^n} = L1 geschnitten L2 ist. Somit ist
      Kompl({a^nb^nc^n}) = Kompl(L1 geschnitten L2) = Kompl(L1) vereinigt Kompl(L2). Wir können zeigen, dass Kompl(L1) und Kompl(L2) beide kontextfrei ist und wegen Abgeschlossenheit unter Vereinigung dann auch unsere besagte Sprache.
      Die Argumentation, dass Kompl(L1) kontextfrei ist: In dieser Sprache liegen einerseits alle Wörter, die gar nicht von der Form a*b*c* sind (sowas wie bbacac, cca, babbcab, ...), aber diese bilden eine reguläre Sprache und somit auch eine kontextfreie Sprache. Hinzu kommen jetzt noch die Worte der Form a*b*c*, die nicht von der Form a^nb^nc^k sind. Doch das geht mit einer kontextfreien Grammatik (man macht vom Startsymbol aus zwei Fälle, entweder mehr as als bs oder mehr bs als as, und danach jeweils beliebig viele cs). Die Sprache dieser Grammatik vereinigt mit der zuvor genannten regulären Sprache ist dann wieder kontextfrei, somit ist Kompl(L1) kontextfrei.
      Der Beweis für Kompl(L2) ist ganz analog, insgesamt folgt dann, dass Kompl({a^nb^nc^n}) kontextfrei ist.
      Wirklich interessant, ich hätte spontan gesagt, dass sie nicht kontextfrei ist. So kann man sich täuschen. :D

    • @ylamummo93
      @ylamummo93 7 років тому +1

      Cool, danke für den schönen Beweis. :) Ich hab mir die noch die genau Grammatik zu dieser Sprache "Wörter der Form a*b*c*, die nicht von der Form a^nb^nc^k sind", die du erwähnt hast, überlegt, falls jemand das sehen möchte:
      S -> aAC | BbC
      A -> aAb | aA | epsilon
      B -> aBb | Bb | epsilon
      C -> cC | epsilon

  • @niklaswagner1255
    @niklaswagner1255 7 років тому

    dadurch dass du bei n,k e N keine 0 unten dran gesetzt hastmüsste T-->ab und u-->c sein oder irre ich mich da?

    • @NLogSpace
      @NLogSpace  7 років тому

      Es gibt verschiedene Konventionen für das Symbol ℕ. Gerade in der Informatik wird oft die 0 oft mit eingeschlossen, ohne dass man eine 0 unten dran schreibt. Da man in der Informatik aber meistens sowieso nur mit ganzen Zahlen arbeitet, schreibt man zur Klarheit dann oft n > 0 oder n ≥ 0 statt ℕ, das hätte ich vielleicht hier auch machen sollen!

  • @anonymous1177
    @anonymous1177 7 років тому

    Kann man das mit den DeMorgan'schen Regeln wirklich so zeigen? Weil eigentlich zeigt man hier ja nur dass das Komplement einer Vereinigung von Komplementen nicht abgeschlossen ist. Müsste man die Gleichung nicht umstellen, dass ein einzelnes Komplement auf einer Seite steht und dann die andere Seite nicht abgeschlossen ist?

    • @NLogSpace
      @NLogSpace  7 років тому

      Wir wissen bereits, dass die Typ-2-Sprachen unter Vereinigung, aber nicht unter Schnitt abgeschlossen sind und machen einen Widerspruchsbeweis, dass die Typ-2-Sprachen nicht unter Komplement abgeschlossen sind: Angenommen, die Typ-2-Sprachen wären unter Komplement abgeschlossen. Wir nehmen uns zwei Typ-2-Sprachen L_1 und L_2, deren Schnitt nicht Typ-2 ist. Diese gibt es, da die Typ-2-Sprachen nicht unter Schnitt abgeschlossen sind. Nach unserer Annahme, dass die Typ-2-Sprachen unter Komplement abgeschlossen sind, und weil Typ-2-Sprachen unter Vereinigung abgeschlossen sind, ist auch Komplement(Komplement(L_1) vereinigt mit Komplement(L_2)) wieder von Typ-2, denn dieser Ausdruck setzt sich zusammen aus zwei Typ-2-Sprachen und benutzt sonst nur Komplement und Vereinigung. Nach DeMorgan ist dieser Ausdruck aber gleich dem Schnitt von L_1 und L_2, d.h. es folgt, dass der Schnitt von L_1 und L_2 von Typ-2 ist. Wir hatten L_1 und L_2 aber gerade so gewählt, dass deren Schnitt nicht von Typ-2 ist, Widerspruch.

    • @anonymous1177
      @anonymous1177 7 років тому

      Ah okay, macht Sinn. Aus der unterstellten Abgeschlossenheit der einzelnen Operationen folgt natürlich auch dass eine Komposition mehrerer Operationen auch abgeschlossen ist!

  • @vCredist
    @vCredist 5 років тому

    Ich kann doch auch folgern, dass die Sprache nicht abgeschlossen ggü. der Differenz (/) ist, da sie nicht abgeschlossen ggü. dem Schnitt und dem Komplement ist oder ? Wie sähe die formale Begründung (Venn Diagramm aus) `?
    In Ergänzung: TOP Erklärungen - weiter so !

    • @NLogSpace
      @NLogSpace  5 років тому

      Das Komplement ist eine spezielle Art von Differenz, nämlich die Differenz bzgl. der Sprache Sigma*.
      Also wir wissen schon folgendes: Die kontextfreien Sprachen sind nicht unter Komplement abgeschlossen, d.h. es gibt eine kontextfreie Sprache L, sodass Sigma*\L nicht kontextfrei ist.
      Dann folgt auch, dass sie nicht unter Differenz abgeschlossen sind, also "Es gibt zwei kontextfreie Sprachen K und L, sodass K\L nicht kontextfrei ist." Man kann ja einfach Sigma* als K nehmen und L ist das L von oben.

    • @vCredist
      @vCredist 5 років тому

      @@NLogSpace
      Vielen Dank für deine Antwort ! Wenn aus dem Komplement die Differenz folgt, wie kann es dann aber sein das die Phrasenstruktursprache (Typ 0) nicht abgeschlossen ggü. der Differenz ABER abgeschlossen ggü. dem Komplement ist ?

    • @NLogSpace
      @NLogSpace  5 років тому

      Die Typ-0-Sprachen sind nicht unter Komplement und daher auch nicht unter Differenz abgeschlossen. Woher hast du die Info?

    • @vCredist
      @vCredist 5 років тому

      @@NLogSpace Okay, kann auch sein das ich mich irre. Was ich nun nicht verstehe, ist weshalb das der Fall ist. Denn wenn typ 0 Sprachen ggü. dem Schnitt abgeschlossen sind, warum dann nicht auch ggü. dem Komplement und dann auch ggü. der Differenz ? Hattest du vor evtl. nochmal ein Video dazu zu machen ?

    • @NLogSpace
      @NLogSpace  5 років тому +2

      @@vCredist Darüber mache ich auch noch ein Video. Kurz gesagt: Wenn etwas unter Schnitt und Komplement abgeschlossen ist, dann auch unter Vereinigung. Wenn etwas unter Vereinigung und Komplement abgeschlossen ist, dann auch unter Schnitt. (Das sind die DeMorgan-Regeln.) Aber wenn man bloß weiß, dass es unter Schnitt und Vereinigung abgeschlossen ist, dann folgt daraus nicht, dass es unter Komplement abgeschlossen ist.

  • @gigi19994
    @gigi19994 4 роки тому

    Vielleicht wäre es interessant zu erwähnen, dass eine kontextfreie Sprache unter dem Schnitt mit einer regulären Sprache abgeschlossen ist.

    • @NLogSpace
      @NLogSpace  4 роки тому +1

      Stimmt! Zu dem Theme habe ich auch noch ein Video (später in dieser Serie).

  • @natilivruen3701
    @natilivruen3701 9 років тому

    Das Beispiel ist nicht gut.

    • @NLogSpace
      @NLogSpace  9 років тому

      Inwiefern ist das Beispiel nicht gut?

    • @natilivruen3701
      @natilivruen3701 9 років тому

      Leifaktor Also ich hab jetzt das Video bearbeitet und komme nicht wirklich drauf wie Sie den durchschnittt gebildet haben. Ist mir nicht so klar mit dem L1 {a^nb^nc^k} durchschnitt L2 {a^nb^kc^k}.

    • @natilivruen3701
      @natilivruen3701 9 років тому

      *****
      Die videos gefallen mir sehr. Aber ich habe gemerkt das Sie viel am Anfang erklären(was sehr gut ist), am ende aber ganz schnell zum schluss kommen. Das war beim Pumping- Lemma für kontextfreie Sprachen der Fall.

    • @NLogSpace
      @NLogSpace  9 років тому +1

      *****
      Also der Durchschnitt zweier Sprachen L1 und L2 ist definiert als die Menge aller Wörter, die sowohl in L1 als auch in L2 liegen. In unserem Beispiel ist L1={a^n b^n c^k} und L2={a^n b^k c^k}. Wörter aus L1 haben also gleich viele a's wie b's und beliebig viele c's. Die in L2 haben gleich viele b's wie c's und beliebig viele a's. Damit ein Wort in beiden Sprachen vorkommt (also im Durchschnitt der beiden Sprachen liegt), muss es demnach gleich viele a's wie b's und gleich viele b's wie c's haben. Also muss es gleich viele a's wie b's wie c's haben und es ergibt sich {a^n b^n c^n} als Durchschnitt. Es handelt sich dabei übgigens um ein Standard-Beispiel für zwei kontextfreie Sprachen, deren Schnitt nicht kontextfrei ist. Man sollte dieses Beispiel im Hinterkopf behalten!

    • @NLogSpace
      @NLogSpace  9 років тому

      *****
      Mache Dir am besten noch einmal genau klar, wie der Durchschnitt von Mengen gebildet wird (Sprachen sind nichts anderes als Mengen von Wörtern): Der Durchschnitt zweier Mengen besteht genau aus den Elementen, die in beiden Mengen vorkommen. Etwa: {a,c,f,g} geschnitten mit {t,e,f,c} ergibt {c,f}, denn c und f kommen in beiden Mengen vor. Die Reihenfolge spielt bei der Aufzählung der Elemente einer Menge keine Rolle.