Visual Automata implementation and Simulation
Automata can be used as a model for several software and
hardware devices. Several automata examples can be visualized and implemented as
a web-based applications. This allows automata users
(such as computer engineers, software designers, game designers, researchers, and students) to use and learn automata in a convenient environment.
In this project students will be requested to study and implement some
examples such as machines, games, puzzles, etc. that can be modeled by
automata.
Desirable prerequisites:
It is desirable if students have (or willing to learn) the following abilities
1. Students are able to (are willing to learn to) write programs in Java
2. Students had completed (plan to complete) a course in Automata theory
Here are some images of the completed part of the project
during the past years.
Finite State Automata Simulator
How to use
Click in the main window to create new states, when in Add mode.
To connect states, select Connect mode, then click on the state the connection is to originate from, so that it changes color to green.
Then click on the destination state, which should also become green. Then press a key for that transition, to create the connection.
Valid characters for transitions are upper and lower case letters, and digits. Pressing any other key will cancel the connection operation.
A valid machine must have a start state which can be designated when in Start mode.
Toggle mode changes the acceptance status of states. All states are initially non-accepting.
States can be repositioned by dragging them with the mouse when in Move mode.
Delete mode can be used to remove states or connections. Click on the transition character(s) to remove a connection.
The current mode can be changed by selecting from the toolbar, or by pressing the first letter of the mode name, when in the main window.
Function
"Start New" button will reset window
"Deterministic?" button will determine whether the current machine is deterministic - there is never more than one transition for a particular character originating from a state.
"Remove Inacc" button will remove any inaccessible states from the current machine.
"Minimize" button will remove inaccessible states, complete the machine (add any missing transitions, all going to a non-accepting state),
find all indistinguishable states, and merge them together, to form a minimal machine. This is only applicable to deterministic machines.
"NonDet -> Det" button will convert the current non-deterministic machine to a deterministic machine.
The states of the deterministic machine are the elements of the power set of the states of the non-deterministic machine.
This routine has complexity O(2^n), where n is the number of states, so will be very slow for large machines.
The program is here
Turing Machine Simulator
Introduction
The Turing machine is what the mathematician in Britain Alan Mathison Turing proposed it.
It is a model of an extremely lucid calculation mechanism. It becomes basic of algorithm and the theory
concerning the calculation these days. Then, let's introduce the idea.
We give a supplementary tape of one work to a determinateness limited automata.
The freedom of this tape is larger than the push-down stack added to the pushdown automata.
In addition, this tape can not only read the tape sign but also erase the sign and read
another sign. And it can move the head on the tape of work right and left. We call such automata a Turing machine.
Function
"Talk" button will talk "Turing Machine Simulator"
"Clear" button will reset state
"Stop" button will stop simulation.
"FastAuto" button will perform simulation quickly and automatically.
"Auto" button will perform simulation automatically.
"Step" button will perform simulation step by step.
"Change State" button will change state in the red box.
"Load" button will load the file from main folder.
"Update" button will update the role list.
The program is here
Tennis
Introduction
This application is Tennis Simulator using Automata.
Function
"A" button will add A's point.
"B" button will add B's point.
"Random" button will add A's point or B's point randomly.
"StartAG" button will play automatically.
"StopAG" button will stop the auto play.
"Reset" button will initialize point.
Video Player
Introduction
This application is Video Player Simulator using Automata.
Note: This program can't go to "Fast Play" state from "Reverse Play" state. If you want to go to "Reverse Play" state,
you need to go to "Play" state. The opposite is also the same.
Function
"Stop" button will go to "Stop" state.
"Play" button will go to "Play" state.
"Pause" button will go to "Pause" state.
"Fast Play" button will go to "Fast Play" state (two step).
"Reverse Play" button will go to "Reverse" state (two step)
"Reset" button will go to "Stop" state.
Rice Cooker
Introduction
This application is Rice Cooker Simulator using Automata.
"q0:Waiting", "q1:KeepingWarm", "q2:Reheat", "q3:HeatingRice(after 5sec)"
"q4:6h timer", "q5:8h timer", "q6:10h timer", "q7:after 6h(10sec) HeatingRice"
"q8:after 8h(15sec) HeatingRice", "q9:after 10h(20sec) HeatingRice"
"Input A:HeatingRice, Reheat", "Input B:KeepingWarm, Cancel", "Input C:Timer", "Input D:Finish HeatingRice"
These program (Tennis, Video Player, Rice Cooker) are here