Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lfa:lab05-nfa-python [2020/11/02 10:55] lfa | lfa:lab05-nfa-python [2020/11/08 13:11] (current) dmihai | ||
|---|---|---|---|
| Line 34: | Line 34: | ||
| You'll find in //nfa_skel.rar// a class that already reads the input and forms the NFA. | You'll find in //nfa_skel.rar// a class that already reads the input and forms the NFA. | ||
| - | Also, you can use the **graphvizNFA** method to get a graphical representation for the NFA, but you will have to install the //graphviz// library. | + | Also, you can use the **graphvizNFA** method to get a graphical representation of the NFA, but you will have to install the //graphviz// library. | 
| <code> | <code> | ||
| pip install graphviz | pip install graphviz | ||
| Line 41: | Line 41: | ||
| Implement (in Python) an NFA class that supports the following methods: | Implement (in Python) an NFA class that supports the following methods: | ||
| - | 1. **step(configuration)** = returns a list including all reachable configurations in //one step//. An epsilon transition is also considered a step. | + | 1. **step(configuration)** | 
| + | * returns a list with all reachable configurations in //one step//. | ||
| + | * an epsilon transition is also considered a step. | ||
| - | 2. **kstep(configuration, k)** = returns a list including all reachable configurations in //k steps//. An epsilon transition is also considered a step. | + | 2. **kstep(configuration, k)** | 
| + | * returns a list including all reachable configurations in //k steps// | ||
| + | * an epsilon transition is also considered a step. | ||
| + | * the final list contains only the states where we stopped, not the entire path to them. | ||
| + | * if no transitions are available and $ k > 0 $, return an empty list | ||
| - | 3. **accept(self, word: Word)** = True or False if the NFA accepts the given word. To simplify this task, you can use the kstep function. | + | 3. **accept(self, word: Word)** | 
| + | * True or False if the NFA accepts the given word. | ||
| - | 4. **epsilonClosure(self, state: State)** = the set of all states where we can go from the current state by going through epsilon transitions | + | 4. **epsilonClosure(self, state: State)** | 
| + | * the set of all states where we can go from the current state by going through epsilon transitions | ||
| - | 5. **emptyLanguage(self)** = True or False if the NFA's accepted language is the Empty Language | + | 5. **emptyLanguage(self)** | 
| + | * True or False if the NFA's accepted language is the Empty Language | ||
| {{:lfa:nfa_skel.rar|}} | {{:lfa:nfa_skel.rar|}} | ||