07.01.2013 Views

Lecture Notes in Computer Science 3472

Lecture Notes in Computer Science 3472

Lecture Notes in Computer Science 3472

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

80 Henrik Björklund<br />

state that produces output y on <strong>in</strong>put x . If we search the full UIO tree, look<strong>in</strong>g<br />

for nodes labeled by s<strong>in</strong>gletons, we will eventually f<strong>in</strong>d a UIO sequences for every<br />

state that has one, but unless all states have UIO sequences, the search will never<br />

term<strong>in</strong>ate.<br />

Ensur<strong>in</strong>g Term<strong>in</strong>ation. A vector < s1/s ′ , s2/s ′ ,...,sk /s ′ >, where all the second<br />

components of the pairs are identical, is called homogeneous. In particular, any<br />

s<strong>in</strong>gleton path vector is homogeneous. If a node v <strong>in</strong> the UIO tree, reachable by<br />

a path labeled with <strong>in</strong>put sequence x and output sequence y from the root, is<br />

labeled by a homogeneous vector PV, then there is no need to search the subtree<br />

rooted at v. IfPV is a s<strong>in</strong>gleton, then a UIO sequence for the only vertex s such<br />

that λ(s, x )=y has already been found. If, on the other hand, PV is not a<br />

s<strong>in</strong>gleton, then no extension of x can be a UIO sequence for any state of M,<br />

s<strong>in</strong>ce for all s such that λ(s, x )=y, the mach<strong>in</strong>e ends up <strong>in</strong> the same state after<br />

this sequence.<br />

Also, if node v <strong>in</strong> the UIO tree is labeled by PV and on the path from the root<br />

to v, thereisanodev ′ labeled by PV ′ such that PV ⊆ PV ′ , there is no need to<br />

searchthesubtreerootedatv. Suppose the path from the root to v ′ is labeled<br />

by the <strong>in</strong>put sequence x ′ ,andthepathfromv ′ to v by x .Lets1/s ′ 1 and s2/s ′ 2 be<br />

two pairs that appear <strong>in</strong> PV, and suppose that λ(s1, x ′ ·x ·x ′′ ) �= λ(s2, x ′ ·x ·x ′′ ).<br />

Then λ(s1, x ′ · x ′′ ) �= λ(s2, x ′ · x ′′ ). In particular, if x ′ · x · x ′′ is a UIO sequence<br />

for s1, thensoisx ′ · x ′′ .Thusifs1 has a UIO sequence with x ′ as a prefix, such a<br />

sequence can be found by search<strong>in</strong>g the subtree rooted at v ′ , without descend<strong>in</strong>g<br />

<strong>in</strong>to the subtree rooted at v.<br />

Call the label of node v <strong>in</strong> the full UIO tree a repeated label if a superset of<br />

the label appears <strong>in</strong> a node on the path from the root to v.<br />

Any node <strong>in</strong> the full UIO tree with a homogeneous or repeated label is called<br />

term<strong>in</strong>al. S<strong>in</strong>ce it is now clear that there is no po<strong>in</strong>t <strong>in</strong> search<strong>in</strong>g the subtrees<br />

rooted at term<strong>in</strong>al nodes, we may cut away all children of term<strong>in</strong>al nodes. We<br />

also remove all subtrees rooted at nodes with empty path vectors as labels. All<br />

vertices <strong>in</strong> such subtrees have empty labels. The result is called the pruned UIO<br />

tree of the mach<strong>in</strong>e. Note that the pruned UIO tree is f<strong>in</strong>ite, s<strong>in</strong>ce there are<br />

only f<strong>in</strong>itely many possible path vectors, and no path vector appears more than<br />

once on any path from the root. Figure 3.6 shows the pruned UIO tree for the<br />

mach<strong>in</strong>e <strong>in</strong> Figure 3.3.<br />

If we search the pruned UIO tree for nodes labeled by s<strong>in</strong>gletons, we are still<br />

guaranteed to f<strong>in</strong>d a UIO sequence for every state that has one, and can also be<br />

sure that the search term<strong>in</strong>ates.<br />

To further improve efficiency, we can also def<strong>in</strong>e vertices labeled with path<br />

vectors such that no state appears exactly once <strong>in</strong> the current vector as term<strong>in</strong>al.<br />

It is clear that the <strong>in</strong>put sequence label<strong>in</strong>g the path to such a vertex cannot be<br />

a prefix of a UIO sequence for any state.<br />

The pruned UIO trees described here bear some resemblance to the splitt<strong>in</strong>g<br />

trees used to compute dist<strong>in</strong>guish<strong>in</strong>g sequences; see [LY96] and Chapter 2. The<br />

details of the two data structures are quite different, however. The UIO tree<br />

is labeled by a set of pairs of states, rather than a set of states. Thus it does

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!