HNU 编译系统 作业2(2)

题目3

为下列的正则表达式构造最少状态DFA:
(1)(a|b)*a(a|b)
e -> a|b
![[Blank diagram (4).png|400]]

e -> (a|b)*
![[Blank diagram (11).png|1000]]

e -> (a|b)*a(a|b)
![[Blank diagram (15).png|666]]

利用子集构造算法将NFA转为DFA:
初始状态:{s0}:q0{q0}→ε{s0,s1,s2,s4,s7,s8}:q0{q0}→a{s3,s9}→ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s13}:q1{q0}→b{s5}→ε{s1,s2,s4,s5,s6,s7,s8}:q2{q1}→a{s3,s9,s12}→ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s12,s13,s15}:q3{q1}→b{s5,s14}→ε{s1,s2,s4,s5,s6,s7,s8,s14,s15}:q4{q2}→a{s3,s9}→ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s13}:q1{q2}→b{s5}→ε{s1,s2,s4,s5,s6,s7,s8}:q2{q3}→a{s3,s9,s12}→ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s12,s13,s15}:q3{q3}→b{s5,s14}→ε{s1,s2,s4,s5,s6,s7,s8,s14,s15}:q4{q4}→a{s3,s9}→ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s13}:q1{q4}→b{s5}→ε{s1,s2,s4,s5,s6,s7,s8}:q2 \begin{aligned} &初始状态:\{s_0\}:q_0\\ &\{q_0\}\xrightarrow{ε}\{s_0, s_1, s_2, s_4, s_7, s_8\}:q_0\\ &\{q_0\}\xrightarrow{a}\{s_3, s_9\}\xrightarrow{ε}\{s_1, s_2, s_3, s_4, s_6, s_7, s_8, s_9, s_{10}, s_{11}, s_{13}\}:q_1\\ &\{q_0\}\xrightarrow{b}\{s_5\}\xrightarrow{ε}\{s_1, s_2, s_4, s_5, s_6, s_7, s_8\}:q_2\\ &\{q_1\}\xrightarrow{a}\{s_3, s_9, s_{12}\}\xrightarrow{ε}\{s_1, s_2, s_3, s_4, s_6, s_7, s_8, s_9, s_{10}, s_{11}, s_{12}, s_{13}, s_{15}\}:q_3\\ &\{q_1\}\xrightarrow{b}\{s_5, s_{14}\}\xrightarrow{ε}\{s_1, s_2, s_4, s_5, s_6, s_7, s_8, s_{14}, s_{15}\}:q_4\\ &\{q_2\}\xrightarrow{a}\{s_3, s_9\}\xrightarrow{ε}\{s_1, s_2, s_3, s_4, s_6, s_7, s_8, s_9, s_{10}, s_{11}, s_{13}\}:q_1\\ &\{q_2\}\xrightarrow{b}\{s_5\}\xrightarrow{ε}\{s_1, s_2, s_4, s_5, s_6, s_7, s_8\}:q_2\\ &\{q_3\}\xrightarrow{a}\{s_3, s_9, s_{12}\}\xrightarrow{ε}\{s_1, s_2, s_3, s_4, s_6, s_7, s_8, s_9, s_{10}, s_{11}, s_{12}, s_{13}, s_{15}\}:q_3\\ &\{q_3\}\xrightarrow{b}\{s_5, s_{14}\}\xrightarrow{ε}\{s_1, s_2, s_4, s_5, s_6, s_7, s_8, s_{14}, s_{15}\}:q_4\\ &\{q_4\}\xrightarrow{a}\{s_3, s_9\}\xrightarrow{ε}\{s_1, s_2, s_3, s_4, s_6, s_7, s_8, s_9, s_{10}, s_{11}, s_{13}\}:q_1\\ &\{q_4\}\xrightarrow{b}\{s_5\}\xrightarrow{ε}\{s_1, s_2, s_4, s_5, s_6, s_7, s_8\}:q_2\\ \end{aligned} 初始状态:{s0}:q0{q0}ε{s0,s1,s2,s4,s7,s8}:q0{q0}a{s3,s9}ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s13}:q1{q0}b{s5}ε{s1,s2,s4,s5,s6,s7,s8}:q2{q1}a{s3,s9,s12}ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s12,s13,s15}:q3{q1}b{s5,s14}ε{s1,s2,s4,s5,s6,s7,s8,s14,s15}:q4{q2}a{s3,s9}ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s13}:q1{q2}b{s5}ε{s1,s2,s4,s5,s6,s7,s8}:q2{q3}a{s3,s9,s12}ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s12,s13,s15}:q3{q3}b{s5,s14}ε{s1,s2,s4,s5,s6,s7,s8,s14,s15}:q4{q4}a{s3,s9}ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s13}:q1{q4}b{s5}ε{s1,s2,s4,s5,s6,s7,s8}:q2
![[Blank diagram (29).png]]

将DFA简化到最小:
在这里插入图片描述
字符a可以分裂DFA,对于N中状态:δ(q0​,a)=q1∈Nδ(q1​,a)=q3∉Nδ(q2​,a)=q1∈N对于A中状态:δ(q3​,a)=q3∈Aδ(q4​,a)=q1∉A因此字符a可将原DFA分裂为{q0,q2},{q1},{q3},{q4}此后字符b和a都不能继续分裂DFA,因此最简的DFA: \begin{aligned} &字符a可以分裂DFA,对于N中状态:\\ &δ(q_0​,a)=q_1 \in N \\ &δ(q_1​,a)=q_3 \notin N \\ &δ(q_2​,a)=q_1 \in N \\ &对于A中状态:\\ &δ(q_3​,a)=q_3 \in A \\ &δ(q_4​,a)=q_1 \notin A \\ &因此字符a可将原DFA分裂为\{q_0, q_2\}, \{q_1\}, \{q_3\}, \{q_4\}\\ &此后字符b和a都不能继续分裂DFA,因此最简的DFA: \end{aligned} 字符a可以分裂DFA,对于N中状态:δ(q0,a)=q1Nδ(q1,a)=q3/Nδ(q2,a)=q1N对于A中状态:δ(q3,a)=q3Aδ(q4,a)=q1/A因此字符a可将原DFA分裂为{q0,q2},{q1},{q3},{q4}此后字符ba都不能继续分裂DFA,因此最简的DFA
![[Blank diagram (28).png]]

(2)(a|b)*a(a|b)(a|b)
e -> (a|b)*a(a|b)(a|b)
![[Blank diagram (19) 1.png]]
利用子集构造算法将NFA转为DFA:
初始状态:{s0}:q0{q0}→ε{s0,s1,s2,s4,s7,s8}:q0{q0}→a{s3,s9}→ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s13}:q1{q0}→b{s5}→ε{s1,s2,s4,s5,s6,s7,s8}:q2{q1}→a{s3,s9,s12}→ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s12,s13,s15,s16,s17,s19}:q3{q1}→b{s5,s14}→ε{s1,s2,s4,s5,s6,s7,s8,s14,s15,s16,s17,s19}:q4{q2}→a{s3,s9}→ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s13}:q1{q2}→b{s5}→ε{s1,s2,s4,s5,s6,s7,s8}:q2{q3}→a{s3,s9,s12,s18}→ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s12,s13,s15,s16,s17,s18,s19,s21}:q5{q3}→b{s5,s14,s20}→ε{s1,s2,s4,s5,s6,s7,s8,s14,s15,s16,s17,s19,s20,s21}:q6{q4}→a{s3,s9,s18}→ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s13,s18,s21}:q7{q4}→b{s5,s20}→ε{s1,s2,s4,s5,s6,s7,s8,s20,s21}:q8{q5}→a{s3,s9,s12,s18}→ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s12,s13,s15,s16,s17,s18,s19,s21}:q5{q5}→b{s5,s14,s20}→ε{s1,s2,s4,s5,s6,s7,s8,s14,s15,s16,s17,s19,s20,s21}:q6{q6}→a{s3,s9,s18}→ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s13,s18,s21}:q7{q6}→b{s5,s14,s20}→ε{s1,s2,s4,s5,s6,s7,s8,s20,s21}:q8{q7}→a{s3,s9,s12}→ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s12,s13,s15,s16,s17,s19}:q3{q7}→b{s5,s14}→ε{s1,s2,s4,s5,s6,s7,s8,s14,s15,s16,s17,s19}:q4{q8}→a{s3,s9}→ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s13}:q1{q8}→b{s5}→ε{s1,s2,s4,s5,s6,s7,s8}:q2 \begin{aligned} &初始状态:\{s_0\}:q_0\\ &\{q_0\}\xrightarrow{ε}\{s_0, s_1, s_2, s_4, s_7, s_8\}:q_0\\ &\{q_0\}\xrightarrow{a}\{s_3, s_9\}\xrightarrow{ε}\{s_1, s_2, s_3, s_4, s_6, s_7, s_8, s_9, s_{10}, s_{11}, s_{13}\}:q_1\\ &\{q_0\}\xrightarrow{b}\{s_5\}\xrightarrow{ε}\{s_1, s_2, s_4, s_5, s_6, s_7, s_8\}:q_2\\ &\{q_1\}\xrightarrow{a}\{s_3, s_9, s_{12}\}\xrightarrow{ε}\{s_1, s_2, s_3, s_4, s_6, s_7, s_8, s_9, s_{10}, s_{11}, s_{12}, s_{13}, s_{15}, s_{16}, s_{17}, s_{19}\}:q_3\\ &\{q_1\}\xrightarrow{b}\{s_5, s_{14}\}\xrightarrow{ε}\{s_1, s_2, s_4, s_5, s_6, s_7, s_8, s_{14}, s_{15}, s_{16}, s_{17}, s_{19}\}:q_4\\ &\{q_2\}\xrightarrow{a}\{s_3, s_9\}\xrightarrow{ε}\{s_1, s_2, s_3, s_4, s_6, s_7, s_8, s_9, s_{10}, s_{11}, s_{13}\}:q_1\\ &\{q_2\}\xrightarrow{b}\{s_5\}\xrightarrow{ε}\{s_1, s_2, s_4, s_5, s_6, s_7, s_8\}:q_2\\ &\{q_3\}\xrightarrow{a}\{s_3, s_9, s_{12}, s_{18}\}\xrightarrow{ε}\{s_1, s_2, s_3, s_4, s_6, s_7, s_8, s_9, s_{10}, s_{11}, s_{12}, s_{13}, s_{15}, s_{16}, s_{17}, s_{18}, s_{19}, s_{21}\}:q_5\\ &\{q_3\}\xrightarrow{b}\{s_5, s_{14}, s_{20}\}\xrightarrow{ε}\{s_1, s_2, s_4, s_5, s_6, s_7, s_8, s_{14}, s_{15}, s_{16}, s_{17}, s_{19}, s_{20}, s_{21}\}:q_6\\ &\{q_4\}\xrightarrow{a}\{s_3, s_9, s_{18}\}\xrightarrow{ε}\{s_1, s_2, s_3, s_4, s_6, s_7, s_8, s_9, s_{10}, s_{11}, s_{13}, s_{18}, s_{21}\}:q_7\\ &\{q_4\}\xrightarrow{b}\{s_5, s_{20}\}\xrightarrow{ε}\{s_1, s_2, s_4, s_5, s_6, s_7, s_8, s_{20}, s_{21}\}:q_8\\ &\{q_5\}\xrightarrow{a}\{s_3, s_9, s_{12}, s_{18}\}\xrightarrow{ε}\{s_1, s_2, s_3, s_4, s_6, s_7, s_8, s_9, s_{10}, s_{11}, s_{12}, s_{13}, s_{15}, s_{16}, s_{17}, s_{18}, s_{19}, s_{21}\}:q_5\\ &\{q_5\}\xrightarrow{b}\{s_5, s_{14}, s_{20}\}\xrightarrow{ε}\{s_1, s_2, s_4, s_5, s_6, s_7, s_8, s_{14}, s_{15}, s_{16}, s_{17}, s_{19}, s_{20}, s_{21}\}:q_6\\ &\{q_6\}\xrightarrow{a}\{s_3, s_9, s_{18}\}\xrightarrow{ε}\{s_1, s_2, s_3, s_4, s_6, s_7, s_8, s_9, s_{10}, s_{11}, s_{13}, s_{18}, s_{21}\}:q_7\\ &\{q_6\}\xrightarrow{b}\{s_5, s_{14}, s_{20}\}\xrightarrow{ε}\{s_1, s_2, s_4, s_5, s_6, s_7, s_8, s_{20}, s_{21}\}:q_8\\ &\{q_7\}\xrightarrow{a}\{s_3, s_9, s_{12}\}\xrightarrow{ε}\{s_1, s_2, s_3, s_4, s_6, s_7, s_8, s_9, s_{10}, s_{11}, s_{12}, s_{13}, s_{15}, s_{16}, s_{17}, s_{19}\}:q_3\\ &\{q_7\}\xrightarrow{b}\{s_5, s_{14}\}\xrightarrow{ε}\{s_1, s_2, s_4, s_5, s_6, s_7, s_8, s_{14}, s_{15}, s_{16}, s_{17}, s_{19}\}: q_4\\ &\{q_8\}\xrightarrow{a}\{s_3, s_9\}\xrightarrow{ε}\{s_1, s_2, s_3, s_4, s_6, s_7, s_8, s_9, s_{10}, s_{11}, s_{13}\}:q_1\\ &\{q_8\}\xrightarrow{b}\{s_5\}\xrightarrow{ε}\{s_1, s_2, s_4, s_5, s_6, s_7, s_8\}:q_2\\ \end{aligned} 初始状态:{s0}:q0{q0}ε{s0,s1,s2,s4,s7,s8}:q0{q0}a{s3,s9}ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s13}:q1{q0}b{s5}ε{s1,s2,s4,s5,s6,s7,s8}:q2{q1}a{s3,s9,s12}ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s12,s13,s15,s16,s17,s19}:q3{q1}b{s5,s14}ε{s1,s2,s4,s5,s6,s7,s8,s14,s15,s16,s17,s19}:q4{q2}a{s3,s9}ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s13}:q1{q2}b{s5}ε{s1,s2,s4,s5,s6,s7,s8}:q2{q3}a{s3,s9,s12,s18}ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s12,s13,s15,s16,s17,s18,s19,s21}:q5{q3}b{s5,s14,s20}ε{s1,s2,s4,s5,s6,s7,s8,s14,s15,s16,s17,s19,s20,s21}:q6{q4}a{s3,s9,s18}ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s13,s18,s21}:q7{q4}b{s5,s20}ε{s1,s2,s4,s5,s6,s7,s8,s20,s21}:q8{q5}a{s3,s9,s12,s18}ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s12,s13,s15,s16,s17,s18,s19,s21}:q5{q5}b{s5,s14,s20}ε{s1,s2,s4,s5,s6,s7,s8,s14,s15,s16,s17,s19,s20,s21}:q6{q6}a{s3,s9,s18}ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s13,s18,s21}:q7{q6}b{s5,s14,s20}ε{s1,s2,s4,s5,s6,s7,s8,s20,s21}:q8{q7}a{s3,s9,s12}ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s12,s13,s15,s16,s17,s19}:q3{q7}b{s5,s14}ε{s1,s2,s4,s5,s6,s7,s8,s14,s15,s16,s17,s19}:q4{q8}a{s3,s9}ε{s1,s2,s3,s4,s6,s7,s8,s9,s10,s11,s13}:q1{q8}b{s5}ε{s1,s2,s4,s5,s6,s7,s8}:q2
![[Blank diagram (21).png|650]]

将DFA简化到最小:
![[Blank diagram (20) 2.png]]

字符a可以分裂DFA,对于N中状态:δ(q0​,a)=q1∈Nδ(q1​,a)=q3∈Nδ(q2​,a)=q1∈Nδ(q3​,a)=q5∉Nδ(q4,a)=q7∉N对于A中状态:δ(q5​,a)=q5∈Aδ(q6​,a)=q7∈Aδ(q7​,a)=q3∈Aδ(q8​,a)=q1∉A因此字符a可将原DFA分裂为{q0,q1,q2},{q3,q4},{q5,q6},{q7,q8}字符b可以继续分裂DFA,对于N中状态:δ(q0​,b)=q2∈{q0,q1,q2}δ(q1​,b)=q4∈{q3,q4}δ(q2​,b)=q2∈{q0,q1,q2}δ(q3​,b)=q6∈{q5,q6}δ(q4,b)=q8∈{q7,q8}对于A中状态:δ(q5​,b)=q6∈{q5,q6}δ(q6​,b)=q8∈{q7,q8}δ(q7​,a)=q4∈{q3,q4}δ(q8​,a)=q2∈{q0,q1,q2}因此字符b可将原DFA继续分裂为{q0,q2},{q1},{q3},{q4},{q5},{q6},{q7},{q8}此后字符a和b都不能继续分裂DFA。因此最简的DFA: \begin{aligned} &字符a可以分裂DFA,对于N中状态:\\ &δ(q_0​,a)=q_1 \in N \\ &δ(q_1​,a)=q_3 \in N \\ &δ(q_2​,a)=q_1 \in N \\ &δ(q_3​,a)=q_5 \notin N \\ &δ(q_4,a)=q_7 \notin N \\ &对于A中状态:\\ &δ(q_5​,a)=q_5 \in A \\ &δ(q_6​,a)=q_7 \in A \\ &δ(q_7​,a)=q_3 \in A \\ &δ(q_8​,a)=q_1 \notin A \\ &因此字符a可将原DFA分裂为\{q_0, q_1, q_2\}, \{q_3, q_4\}, \{q_5, q_6\}, \{q_7, q_8\}\\ &字符b可以继续分裂DFA,对于N中状态:\\ &δ(q_0​,b)=q_2 \in \{q_0, q_1, q_2\} \\ &δ(q_1​,b)=q_4 \in \{q_3, q_4\} \\ &δ(q_2​,b)=q_2 \in \{q_0, q_1, q_2\} \\ &δ(q_3​,b)=q_6 \in \{q_5, q_6\} \\ &δ(q_4,b)=q_8 \in \{q_7, q_8\} \\ &对于A中状态:\\ &δ(q_5​,b)=q_6 \in \{q_5, q_6\} \\ &δ(q_6​,b)=q_8 \in \{q_7, q_8\} \\ &δ(q_7​,a)=q_4 \in \{q_3, q_4\} \\ &δ(q_8​,a)=q_2 \in \{q_0, q_1, q_2\} \\ &因此字符b可将原DFA继续分裂为\{q_0, q_2\}, \{q_1\}, \{q_3\}, \{q_4\}, \{q_5\}, \{q_6\}, \{q_7\}, \{q_8\}\\ &此后字符a和b都不能继续分裂DFA。因此最简的DFA: \end{aligned} 字符a可以分裂DFA,对于N中状态:δ(q0,a)=q1Nδ(q1,a)=q3Nδ(q2,a)=q1Nδ(q3,a)=q5/Nδ(q4,a)=q7/N对于A中状态:δ(q5,a)=q5Aδ(q6,a)=q7Aδ(q7,a)=q3Aδ(q8,a)=q1/A因此字符a可将原DFA分裂为{q0,q1,q2},{q3,q4},{q5,q6},{q7,q8}字符b可以继续分裂DFA,对于N中状态:δ(q0,b)=q2{q0,q1,q2}δ(q1,b)=q4{q3,q4}δ(q2,b)=q2{q0,q1,q2}δ(q3,b)=q6{q5,q6}δ(q4,b)=q8{q7,q8}对于A中状态:δ(q5,b)=q6{q5,q6}δ(q6,b)=q8{q7,q8}δ(q7,a)=q4{q3,q4}δ(q8,a)=q2{q0,q1,q2}因此字符b可将原DFA继续分裂为{q0,q2},{q1},{q3},{q4},{q5},{q6},{q7},{q8}此后字符ab都不能继续分裂DFA。因此最简的DFA
![[Blank diagram (22).png|650]]

基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)内容概要:本文围绕“基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究”,介绍了利用Matlab代码实现配电网可靠性的仿真分析方法。重点采用序贯蒙特卡洛模拟法对配电网进行长时间段的状态抽样与统计,通过模拟系统元件的故障与修复过程,评估配电网的关键可靠性指标,如系统停电频率、停电持续时间、负荷点可靠性等。该方法能够有效处理复杂网络结构与设备时序特性,提升评估精度,适用于含分布式电源、电动汽车等新型负荷接入的现代配电网。文中提供了完整的Matlab实现代码与案例分析,便于复现和扩展应用。; 适合人群:具备电力系统基础知识和Matlab编程能力的高校研究生、科研人员及电力行业技术人员,尤其适合从事配电网规划、运行与可靠性分析相关工作的人员; 使用场景及目标:①掌握序贯蒙特卡洛模拟法在电力系统可靠性评估中的基本原理与实现流程;②学习如何通过Matlab构建配电网仿真模型并进行状态转移模拟;③应用于含新能源接入的复杂配电网可靠性定量评估与优化设计; 阅读建议:建议结合文中提供的Matlab代码逐段调试运行,理解状态抽样、故障判断、修复逻辑及指标统计的具体实现方式,同时可扩展至不同网络结构或加入更多不确定性因素进行深化研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值