Skip to content
Snippets Groups Projects
Commit b15e39de authored by apvrille's avatar apvrille
Browse files

Update on graph management

parent 8819bb98
No related branches found
No related tags found
No related merge requests found
......@@ -504,6 +504,9 @@ public class AUTGraph implements myutil.Graph {
modif = removeMultipleTauOutputTr();
if (! modif) {
modif = removeTauWithOneFollower();
if (! modif) {
modif = removeSimilarTransitions();
}
}
}
}
......@@ -652,6 +655,36 @@ public class AUTGraph implements myutil.Graph {
return modif;
}
private boolean removeSimilarTransitions() {
boolean modif = false;
// Remove in case state with one outgoing and outgoing is tau -> remove tr
for(AUTState st: states) {
if (st.outTransitions.size() > 1) {
for(int i=0; i<st.outTransitions.size(); i++) {
for(int j=i+1; j<st.outTransitions.size(); j++) {
AUTTransition tri = st.outTransitions.get(i);
AUTTransition trj = st.outTransitions.get(j);
if (tri.destination == trj.destination) {
if (tri.transition.compareTo(trj.transition) == 0) {
modif = true;
//We remove trj
st.outTransitions.remove(trj);
transitions.remove(trj);
i--;
j--;
}
}
}
}
}
}
return modif;
}
private void removeStates(ArrayList<AUTState> toRemoveStates) {
......
......@@ -143,4 +143,5 @@ public class AUTState {
return inTransitions.get(0).isTau;
}
}
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