remove_fin: remove useless states

* src/tgba/tgbagraph.cc (purge_dead_states): Using a DFS to compute a
topological order, allowing to remove useless using a second
pass (instead of iterating the passes until there is nothing to remove).
* src/tgbaalgos/remfin.cc: Call purge_dead_states().
* src/tgbatest/remfin.test, src/tgbatest/det.test: Adjust expected
output.
* doc/org/autfilt.org: Update example.
This commit is contained in:
Alexandre Duret-Lutz 2015-03-24 12:04:30 +01:00
parent b4e22a3c7e
commit 020bbd4473
5 changed files with 82 additions and 93 deletions

View file

@ -186,7 +186,7 @@ State: 2 {0}
[0&!1] 2
--END--
HOA: v1
States: 6
States: 4
Start: 0
AP: 2 "a" "b"
Acceptance: 4 Inf(0) | Inf(3) | (Inf(1)&Inf(2))
@ -204,18 +204,12 @@ State: 2
[!1] 0
[0&!1] 1
[!0&!1] 2
[!1] 3
[0&!1] 4
[!0&!1] 5
[!0&!1] 3
State: 3
State: 4
State: 5
[!1] 3
[0&!1] 4 {0}
[!0&!1] 5 {0}
[!0&!1] 3 {0}
--END--
HOA: v1
States: 6
States: 4
Start: 0
AP: 2 "a" "b"
Acceptance: 5 (Inf(0)&Inf(1)&Inf(4)) | Inf(0) | (Inf(2)&Inf(3))
@ -233,15 +227,9 @@ State: 2
[!1] 0
[0&!1] 1 {0}
[!0&!1] 2 {0}
[!1] 3
[0&!1] 4 {0}
[!0&!1] 5 {0}
[!0&!1] 3 {0}
State: 3
State: 4
State: 5
[!1] 3 {1 4}
[0&!1] 4 {0 1 4}
[!0&!1] 5 {0 1 4}
[!0&!1] 3 {0 1 4}
--END--
HOA: v1
States: 1
@ -281,7 +269,7 @@ State: 1 {0}
[0] 1
--END--
HOA: v1
States: 12
States: 10
Start: 2
AP: 1 "p1"
Acceptance: 2 Inf(1) | Inf(0)
@ -290,8 +278,8 @@ properties: trans-labels explicit-labels state-acc
State: 0
[!0] 6
[0] 0
[0] 8
[0] 9
[0] 11
State: 1 {0 1}
[!0] 3
[0] 3
@ -314,13 +302,9 @@ State: 7 {1}
[!0] 6
[0] 4
State: 8
State: 9
[!0] 8
[0] 8
State: 9 {1}
[0] 9
State: 10
State: 11 {1}
[!0] 10
[0] 11
--END--
EOF