Skip to content
Snippets Groups Projects
Commit 8131d5ad authored by Jan Trávníček's avatar Jan Trávníček
Browse files

Do not consider alphabet when comparing automata, minimize to one state

automaton when the original is finite state free
parent 4bda322c
No related branches found
No related tags found
No related merge requests found
......@@ -26,7 +26,7 @@ bool AutomatonDiff::testDiff(const automaton::UnknownAutomaton& a, const automat
return a.getBlankSymbol() == b.getBlankSymbol() &&
a.getFinalStates() == b.getFinalStates() &&
a.getInitialStates() == b.getInitialStates() &&
a.getInputAlphabet() == b.getInputAlphabet() &&
// a.getInputAlphabet() == b.getInputAlphabet() &&
a.getStackAlphabet() == b.getStackAlphabet() &&
a.getStartSymbols() == b.getStartSymbols() &&
a.getStates() == b.getStates() &&
......
......@@ -13,6 +13,7 @@
#include <iostream>
 
#include "alphabet/Symbol.h"
#include "automaton/State.h"
#include "automaton/FSM/TransitionFSM.h"
 
automaton::State fromInteger(int number) {
......@@ -22,6 +23,16 @@ automaton::State fromInteger(int number) {
}
 
automaton::FSM Minimize::minimize(automaton::FSM& fsm) {
if(fsm.getFinalStates().size() == 0) {
automaton::FSM result;
for(auto iter = fsm.getInputAlphabet().begin(); iter != fsm.getInputAlphabet().end(); iter++) {
result.addInputSymbol(*iter);
}
result.addState(automaton::State("0"));
result.addInitialState(automaton::State("0"));
return result;
}
std::map<automaton::State, std::map<alphabet::Symbol, automaton::State > > refactor;
 
for(std::set<automaton::State>::const_iterator iter = fsm.getStates().begin(); iter != fsm.getStates().end(); iter++) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment