文脈自由文法を4つ組 (N,Σ,P,S) で表す。ただし、N、Σ、P、S をそれぞれ非終端記号の集合、終端記号の集合、生成規則の集合、開始記号とする。Σ={a,b} とする。 (1) L1={aibj∣0≤i<j} とする。言語 L1 を生成する文脈自由文法 G1=(N1,Σ,P1,S) の生成規則の集合 P1 を与えよ。ただし ∣N1∣=1 とする。 (2) L2 を以下の条件を満たす言語とする。
- L2∪{aibj∣0≤i<j}∪{aibj∣i>j≥0}=Σ∗∖{aibi∣i≥0}
- L2∩{aibj∣0≤i<j}=L2∩{aibj∣i>j≥0}=∅ 言語 L2 を生成する文脈自由文法 G2=(N2,Σ,P2,S) の生成規則の集合 P2 を与えよ。ただし ∣N2∣≤2 とする。 (3) L3=Σ∗∖{aibi∣i≥0} とする。以下のような生成規則の集合を持ち、かつ言語 L3 を生成する文脈自由文法 G3=(N3,Σ,P3,S) を考える。ただし N3={S,X} であり、ϵ は空文字列を表す。(i), (ii), (iii) を与えよ。
S→(i)∣(ii)∣(iii)
X→bX∣aX∣ϵ
(4) 以下の状態遷移図を持つ決定性有限オートマトン M=(K,Σ,δ,q0,F) で受理される言語を L(M) とする。ただし、K={q0,q1,q2}、Σ、δ、q0、F={q0} は、それぞれ M の状態の集合、アルファベット、遷移関数、初期状態、受理状態の集合を表す。L4=Σ∗∖L(M) とする。言語 L4 を生成する文脈自由文法 G4=(N4,Σ,P4,S) の生成規則の集合 P4 を与えよ。ただし ∣N4∣≤2 とする。
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[->, shorten >=1pt, auto, semithick]
% Define states with absolute positions
\node[double,circle, draw] (q0) at (0, 0) {$q_0$};
\node[circle, draw] (q1) at (2, 0) {$q_1$}; % sqrt(3)*2 = 3.46 for equilateral triangle
\node[circle, draw] (q2) at (1, -1.732) {$q_2$};
% Transitions
\path (q0) edge[bend left] node[midway] {a} (q1)
(q0) edge node[below] {b} (q2)
(q1) edge node[below] {b} (q0)
(q1) edge node[midway] {a} (q2)
(q2) edge[loop right] node {a, b} ();
\end{tikzpicture}
\end{document}
上下文无关文法用四元组 (N,Σ,P,S) 表示,其中 N、Σ、P、S 分别表示非终结符集合、终结符集合、生成规则集合和开始符号。设 Σ={a,b}。 (1) 设 L1={aibj∣0≤i<j}。给出生成语言 L1 的上下文无关文法 G1=(N1,Σ,P1,S) 的生成规则集合 P1,其中 ∣N1∣=1。 (2) 设 L2 为满足以下条件的语言:
- L2∪{aibj∣0≤i<j}∪{aibj∣i>j≥0}=Σ∗∖{aibi∣i≥0}
- L2∩{aibj∣0≤i<j}=L2∩{aibj∣i>j≥0}=∅ 给出生成语言 L2 的上下文无关文法 G2=(N2,Σ,P2,S) 的生成规则集合 P2,其中 ∣N2∣≤2。 (3) 设 L3=Σ∗∖{aibi∣i≥0}。考虑以下形式的生成规则集合,并生成语言 L3 的上下文无关文法 G3=(N3,Σ,P3,S),其中 N3={S,X},ϵ 表示空字符串。给出 (i), (ii), (iii)。
S→(i)∣(ii)∣(iii)X→bX∣aX∣ϵ
(4) 设 M=(K,Σ,δ,q0,F) 是一个确定性有限自动机,其状态转移图如下,其中 K={q0,q1,q2}、Σ、δ、q0、F={q0} 分别表示 M 的状态集合、字母表、转移函数、初始状态和接受状态集合。设 L4=Σ∗∖L(M)。给出生成语言 L4 的上下文无关文法 G4=(N4,Σ,P4,S) 的生成规则集合 P4,其中 ∣N4∣≤2。
(1) 生成规则集合 P1 为:
S→aSb∣Sb∣b
(2) 生成规则集合 P2 为:
S→aSb∣aXX→bX∣ϵ
(3) 生成规则集合 P3 为:
S→aSb∣aX∣bXX→aX∣bX∣ϵ
(4) 生成规则集合 P4 为:
S→aSb∣aX∣bXX→aX∣bX∣ϵ
We need a grammar where the number of a's is less than the number of b's.
This grammar generates strings where for each a, there is at least one additional b, ensuring i<j.
L2 consists of all strings not of the form aibj (where i,j≥0), i.e., strings with mixed a's and b's.
- Non-terminals: N2={S,A}
- Terminals: Σ={a,b}
- Start symbol: S
- Production rules:
P2={S→bS∣aA, A→aA∣bA∣a∣b}
This grammar generates strings where b's can appear before a's, ensuring they are not in the form aibj.
We need to generate all strings except those where the number of a's equals the number of b's.
This grammar generates all strings with unequal numbers of a's and b's.
The DFA M accepts strings with an odd number of a's ending in b. L4 is the complement of this language.
This grammar generates strings that either have an even number of a's or do not end in b.