From 393e246826114194924f2ddbe06228bf056c1811 Mon Sep 17 00:00:00 2001 From: Jan Vesely <janvesely@janvesely.net> Date: Sun, 27 Apr 2014 17:59:49 +0200 Subject: [PATCH] add deterministic fsm --- examples/automaton/NFSM2.DET.xml | 115 +++++++++++++++++++++++++++++++ examples/automaton/NFSM3.DET.xml | 92 +++++++++++++++++++++++++ examples/automaton/NFSM4.DET.xml | 107 ++++++++++++++++++++++++++++ 3 files changed, 314 insertions(+) create mode 100644 examples/automaton/NFSM2.DET.xml create mode 100644 examples/automaton/NFSM3.DET.xml create mode 100644 examples/automaton/NFSM4.DET.xml diff --git a/examples/automaton/NFSM2.DET.xml b/examples/automaton/NFSM2.DET.xml new file mode 100644 index 0000000000..6c895d61bb --- /dev/null +++ b/examples/automaton/NFSM2.DET.xml @@ -0,0 +1,115 @@ +<automaton> + <states> + <state>['S']</state> + <state>['A', 'B']</state> + <state>['C']</state> + <state>['A', 'S']</state> + <state>['A', 'B', 'C']</state> + <state>['A', 'C']</state> + <state>['A', 'C', 'S']</state> + <state>['A']</state> + <state>['A', 'B', 'C', 'S']</state> + </states> + <inputAlphabet> + <symbol>0</symbol> + <symbol>1</symbol> + </inputAlphabet> + <transitions> + <transition> + <from>['S']</from> + <input>0</input> + <to>['A', 'B']</to> + </transition> + <transition> + <from>['S']</from> + <input>1</input> + <to>['C']</to> + </transition> + <transition> + <from>['A', 'B']</from> + <input>0</input> + <to>['C']</to> + </transition> + <transition> + <from>['A', 'B']</from> + <input>1</input> + <to>['A', 'B']</to> + </transition> + <transition> + <from>['C']</from> + <input>0</input> + <to>['A', 'S']</to> + </transition> + <transition> + <from>['A', 'S']</from> + <input>0</input> + <to>['A', 'B', 'C']</to> + </transition> + <transition> + <from>['A', 'S']</from> + <input>1</input> + <to>['A', 'C']</to> + </transition> + <transition> + <from>['A', 'B', 'C']</from> + <input>0</input> + <to>['A', 'C', 'S']</to> + </transition> + <transition> + <from>['A', 'B', 'C']</from> + <input>1</input> + <to>['A', 'B']</to> + </transition> + <transition> + <from>['A', 'C']</from> + <input>0</input> + <to>['A', 'C', 'S']</to> + </transition> + <transition> + <from>['A', 'C']</from> + <input>1</input> + <to>['A']</to> + </transition> + <transition> + <from>['A', 'C', 'S']</from> + <input>0</input> + <to>['A', 'B', 'C', 'S']</to> + </transition> + <transition> + <from>['A', 'C', 'S']</from> + <input>1</input> + <to>['A', 'C']</to> + </transition> + <transition> + <from>['A']</from> + <input>0</input> + <to>['C']</to> + </transition> + <transition> + <from>['A']</from> + <input>1</input> + <to>['A']</to> + </transition> + <transition> + <from>['A', 'B', 'C', 'S']</from> + <input>0</input> + <to>['A', 'B', 'C', 'S']</to> + </transition> + <transition> + <from>['A', 'B', 'C', 'S']</from> + <input>1</input> + <to>['A', 'B', 'C']</to> + </transition> + </transitions> + <initialStates> + <state>['S']</state> + </initialStates> + <finalStates> + <state>['A', 'B']</state> + <state>['C']</state> + <state>['A', 'B', 'C']</state> + <state>['A', 'C']</state> + <state>['A', 'C', 'S']</state> + <state>['A', 'B', 'C', 'S']</state> + </finalStates> +</automaton> diff --git a/examples/automaton/NFSM3.DET.xml b/examples/automaton/NFSM3.DET.xml new file mode 100644 index 0000000000..27d0cd15bb --- /dev/null +++ b/examples/automaton/NFSM3.DET.xml @@ -0,0 +1,92 @@ +<automaton> + <states> + <state>['S']</state> + <state>['A', 'S']</state> + <state>['B']</state> + <state>['A', 'B', 'C']</state> + <state>['A', 'C', 'S']</state> + <state>['A', 'B', 'S']</state> + <state>['A', 'B', 'C', 'S']</state> + </states> + <inputAlphabet> + <symbol>0</symbol> + <symbol>1</symbol> + </inputAlphabet> + <transitions> + <transition> + <from>['S']</from> + <input>0</input> + <to>['A', 'S']</to> + </transition> + <transition> + <from>['S']</from> + <input>1</input> + <to>['B']</to> + </transition> + <transition> + <from>['A', 'S']</from> + <input>0</input> + <to>['A', 'S']</to> + </transition> + <transition> + <from>['A', 'S']</from> + <input>1</input> + <to>['A', 'B', 'C']</to> + </transition> + <transition> + <from>['B']</from> + <input>1</input> + <to>['S']</to> + </transition> + <transition> + <from>['A', 'B', 'C']</from> + <input>0</input> + <to>['B']</to> + </transition> + <transition> + <from>['A', 'B', 'C']</from> + <input>1</input> + <to>['A', 'C', 'S']</to> + </transition> + <transition> + <from>['A', 'C', 'S']</from> + <input>0</input> + <to>['A', 'B', 'S']</to> + </transition> + <transition> + <from>['A', 'C', 'S']</from> + <input>1</input> + <to>['A', 'B', 'C']</to> + </transition> + <transition> + <from>['A', 'B', 'S']</from> + <input>0</input> + <to>['A', 'S']</to> + </transition> + <transition> + <from>['A', 'B', 'S']</from> + <input>1</input> + <to>['A', 'B', 'C', 'S']</to> + </transition> + <transition> + <from>['A', 'B', 'C', 'S']</from> + <input>0</input> + <to>['A', 'B', 'S']</to> + </transition> + <transition> + <from>['A', 'B', 'C', 'S']</from> + <input>1</input> + <to>['A', 'B', 'C', 'S']</to> + </transition> + </transitions> + <initialStates> + <state>['S']</state> + </initialStates> + <finalStates> + <state>['B']</state> + <state>['A', 'B', 'C']</state> + <state>['A', 'C', 'S']</state> + <state>['A', 'B', 'S']</state> + <state>['A', 'B', 'C', 'S']</state> + </finalStates> +</automaton> diff --git a/examples/automaton/NFSM4.DET.xml b/examples/automaton/NFSM4.DET.xml new file mode 100644 index 0000000000..c4b79b3e7d --- /dev/null +++ b/examples/automaton/NFSM4.DET.xml @@ -0,0 +1,107 @@ +<automaton> + <states> + <state>['A']</state> + <state>['A', 'B']</state> + <state>['A', 'E']</state> + <state>['A', 'B', 'C']</state> + <state>['A', 'B', 'F']</state> + <state>['A', 'D', 'E']</state> + <state>['A', 'B', 'D', 'F']</state> + <state>['A', 'B', 'C', 'D']</state> + </states> + <inputAlphabet> + <symbol>a</symbol> + <symbol>b</symbol> + </inputAlphabet> + <transitions> + <transition> + <from>['A']</from> + <input>a</input> + <to>['A', 'B']</to> + </transition> + <transition> + <from>['A']</from> + <input>b</input> + <to>['A', 'E']</to> + </transition> + <transition> + <from>['A', 'B']</from> + <input>a</input> + <to>['A', 'B', 'C']</to> + </transition> + <transition> + <from>['A', 'B']</from> + <input>b</input> + <to>['A', 'E']</to> + </transition> + <transition> + <from>['A', 'E']</from> + <input>a</input> + <to>['A', 'B', 'F']</to> + </transition> + <transition> + <from>['A', 'E']</from> + <input>b</input> + <to>['A', 'D', 'E']</to> + </transition> + <transition> + <from>['A', 'B', 'C']</from> + <input>a</input> + <to>['A', 'B', 'C', 'D']</to> + </transition> + <transition> + <from>['A', 'B', 'C']</from> + <input>b</input> + <to>['A', 'D', 'E']</to> + </transition> + <transition> + <from>['A', 'B', 'F']</from> + <input>a</input> + <to>['A', 'B', 'C']</to> + </transition> + <transition> + <from>['A', 'B', 'F']</from> + <input>b</input> + <to>['A', 'D', 'E']</to> + </transition> + <transition> + <from>['A', 'D', 'E']</from> + <input>a</input> + <to>['A', 'B', 'D', 'F']</to> + </transition> + <transition> + <from>['A', 'D', 'E']</from> + <input>b</input> + <to>['A', 'D', 'E']</to> + </transition> + <transition> + <from>['A', 'B', 'D', 'F']</from> + <input>a</input> + <to>['A', 'B', 'C', 'D']</to> + </transition> + <transition> + <from>['A', 'B', 'D', 'F']</from> + <input>b</input> + <to>['A', 'D', 'E']</to> + </transition> + <transition> + <from>['A', 'B', 'C', 'D']</from> + <input>a</input> + <to>['A', 'B', 'C', 'D']</to> + </transition> + <transition> + <from>['A', 'B', 'C', 'D']</from> + <input>b</input> + <to>['A', 'D', 'E']</to> + </transition> + </transitions> + <initialStates> + <state>['A']</state> + </initialStates> + <finalStates> + <state>['A', 'E']</state> + <state>['A', 'D', 'E']</state> + <state>['A', 'B', 'D', 'F']</state> + <state>['A', 'B', 'C', 'D']</state> + </finalStates> +</automaton> -- GitLab