From 89e92ec19feb388823f66885a633351369c5e809 Mon Sep 17 00:00:00 2001 From: "David A. Madore" Date: Wed, 30 Nov 2016 16:31:16 +0100 Subject: Exercise on determinizing and minimizing an automaton. --- figs/ex1p2a.dot | 23 +++++++++++++++++++++++ figs/ex1p2b.dot | 19 +++++++++++++++++++ figs/ex1p2c.dot | 36 ++++++++++++++++++++++++++++++++++++ figs/ex1p2d.dot | 17 +++++++++++++++++ 4 files changed, 95 insertions(+) create mode 100644 figs/ex1p2a.dot create mode 100644 figs/ex1p2b.dot create mode 100644 figs/ex1p2c.dot create mode 100644 figs/ex1p2d.dot (limited to 'figs') diff --git a/figs/ex1p2a.dot b/figs/ex1p2a.dot new file mode 100644 index 0000000..41870a1 --- /dev/null +++ b/figs/ex1p2a.dot @@ -0,0 +1,23 @@ +digraph ex1p2a { + rankdir="LR"; + node [texmode="math",shape="circle",style="state"]; + q0 [style="state,initial",label="0"]; + q1 [style="state",label="1"]; + q2 [style="state",label="2"]; + q3 [style="state",label="3"]; + q4 [style="state",label="4"]; + q5 [style="state",label="5"]; + q6 [style="state",label="6"]; + q7 [style="state,final",label="7"]; + edge [texmode="math",lblstyle="auto"]; + q0 -> q0 [label="a,b",topath="loop below"]; + q0 -> q1 [label="e",texlbl="$\varepsilon$"]; + q0 -> q4 [label="e",texlbl="$\varepsilon$"]; + q1 -> q2 [label="a"]; + q4 -> q5 [label="b"]; + q2 -> q3 [label="a"]; + q5 -> q6 [label="b"]; + q3 -> q7 [label="e",texlbl="$\varepsilon$"]; + q6 -> q7 [label="e",texlbl="$\varepsilon$"]; + q7 -> q7 [label="a,b",topath="loop below"]; +} diff --git a/figs/ex1p2b.dot b/figs/ex1p2b.dot new file mode 100644 index 0000000..34ed531 --- /dev/null +++ b/figs/ex1p2b.dot @@ -0,0 +1,19 @@ +digraph ex1p2b { + rankdir="LR"; + node [texmode="math",shape="circle",style="state"]; + q0 [style="state,initial",label="0"]; + q2 [style="state",label="2"]; + q3 [style="state,final,accepting above",label="3"]; + q5 [style="state",label="5"]; + q6 [style="state,final,accepting below",label="6"]; + q7 [style="state,final",label="7"]; + edge [texmode="math",lblstyle="auto"]; + q0 -> q0 [label="a,b",topath="loop below"]; + q0 -> q2 [label="a"]; + q0 -> q5 [label="b"]; + q2 -> q3 [label="a"]; + q5 -> q6 [label="b"]; + q3 -> q7 [label="a,b"]; + q6 -> q7 [label="a,b"]; + q7 -> q7 [label="a,b",topath="loop below"]; +} diff --git a/figs/ex1p2c.dot b/figs/ex1p2c.dot new file mode 100644 index 0000000..84317c1 --- /dev/null +++ b/figs/ex1p2c.dot @@ -0,0 +1,36 @@ +digraph ex1p2c { + rankdir="LR"; + node [texmode="math",shape="circle",style="state"]; + q0 [style="state,initial",label="0"]; + q05 [style="state",label="05"]; + q056 [style="state,final,accepting below",label="056"]; + q02 [style="state",label="02"]; + q023 [style="state,final,accepting above",label="023"]; + q057 [style="state,final",label="057"]; + q0567 [style="state,final,accepting above",label="0567"]; + q027 [style="state,final",label="027"]; + q0237 [style="state,final,accepting below",label="0237"]; + edge [texmode="math",lblstyle="auto"]; + q0 -> q05 [label="b"]; + q0 -> q02 [label="a"]; + q05 -> q02 [label="a"]; + q02 -> q05 [label="b"]; + { rank="same"; q05; q02; } + q05 -> q056 [label="b"]; + q02 -> q023 [label="a"]; + q056 -> q0567 [label="b"]; + q056 -> q027 [label="a"]; + q023 -> q0237 [label="a"]; + q023 -> q057 [label="b"]; + { rank="same"; q056; q023; } + q0567 -> q027 [label="a",lblstyle="auto,below"]; + q027 -> q057 [label="b"]; + q057 -> q0237 [label="a"]; + q0237 -> q057 [label="b"]; + q057 -> q027 [label="a"]; + q027 -> q0567 [label="b",lblstyle="auto,above"]; + { rank="same"; q057; q027; } + { rank="same"; q0567; q0237; } + q0237 -> q0237 [label="a",topath="loop above"]; + q0567 -> q0567 [label="b",topath="loop below"]; +} diff --git a/figs/ex1p2d.dot b/figs/ex1p2d.dot new file mode 100644 index 0000000..7dd540c --- /dev/null +++ b/figs/ex1p2d.dot @@ -0,0 +1,17 @@ +digraph ex1p2d { + rankdir="LR"; + node [texmode="math",shape="circle",style="state"]; + q0 [style="state,initial",label="0"]; + q05 [style="state",label="05"]; + q02 [style="state",label="02"]; + qA [style="state,final",label="A"]; + edge [texmode="math",lblstyle="auto"]; + q0 -> q05 [label="b"]; + q0 -> q02 [label="a"]; + q05 -> q02 [label="a"]; + q02 -> q05 [label="b"]; + { rank="same"; q05; q02; } + q05 -> qA [label="b",lblstyle="auto,below"]; + q02 -> qA [label="a"]; + qA -> qA [label="a,b",topath="loop below"]; +} -- cgit v1.2.3