Modeling with Automata , Hanoi University of Science and Technology
Group 1:
- Pham Van Tien
- Nguyen Thien Anh
- Vu Nhat Anh
Automata-Operations-on-relations
is a project written in Javascript , using Nodejs which is a JavaScript runtime. Based on Chapter 6 of the lecture notes: Automata theory , an algorithmic approach - Javier Esparza released on August 26 , 2017 , this project is constructed, concentrating on implementing some algorithms of operations on relations. We implemented 5 operations : PROJECT ( on component 1 ) , PROJECT ( on component 2 ) , JOIN , POST, PRE. We also implemented the NFA-to-DFA conversion , state minimization ( remove unreachable states , merge equivalent states ) to reduce the number of states.
In term of this project, we used examples in that above lecture notes to conveniently help you follow.
- Download and install Nodejs.
- Download this project and extract the zip file.
- The
.jff
input files are ininput
folder, they are examples so you can replace them by others. - Go into project folder by command line , then type
npm install xml2js
to createnode modules
folder and downloadxml2js
library - Go into project folder by command line , then type
node buildxml
- The
.jff
output files will be created inoutput
folder , they will be opened automatically with JFlap.
We only have to replace lines 7-8 of join's algorithm by this two line to get post's algorithm
We only have to replace lines 7-8 of join's algorithm by this two line to get post's algorithm
- Convert NFA to DFA
First we need to do this before implementing the state minimization.
Refer to this link for the algorithm. - Remove unreachable states
First, we need to identify the reachable states
Eventually, we remove the unreachable states - Merge the equivalent states