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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

582 Therese Berg and Harald Raffelt<br />

A 0<br />

s0 a, b<br />

A 1<br />

s0<br />

a, b<br />

s1<br />

s2<br />

a, b<br />

a, b<br />

A 2<br />

Fig. 19.9. The mach<strong>in</strong>e’s approximations<br />

have to create a new component, C3, based on the escap<strong>in</strong>g str<strong>in</strong>g b, andaddit<br />

to O. In order to dist<strong>in</strong>guish the access str<strong>in</strong>gs s0 and s1, weaddtoE3, thesuffix<br />

a to dist<strong>in</strong>guish b from s1, and the suffix b to dist<strong>in</strong>guish b from s0. (Thestr<strong>in</strong>g<br />

ε dist<strong>in</strong>guishes b from s2.) The new component is C3 = {(b, +), (ba, +), (bb, −)}<br />

with correspond<strong>in</strong>g suffix set E3 = {ε, a, b}, see Step 3.<br />

We are now able to create our next hypothesis A 2 and conduct an equivalence<br />

query for it. The answer to this query is ’yes’ and the algorithm term<strong>in</strong>ates and<br />

outputs the correct automaton A 2 , seen <strong>in</strong> Figure 19.9.<br />

19.4.2 Anglu<strong>in</strong>’s Algorithm<br />

The learn<strong>in</strong>g algorithm by Balcázar et al is rather abstract, putt<strong>in</strong>g the selected<br />

<strong>in</strong>formation <strong>in</strong> sets. In this section we discuss a learn<strong>in</strong>g algorithm that still<br />

puts <strong>in</strong>formation <strong>in</strong>to sets but uses a more concrete data structure: a table. The<br />

observation pack algorithm does not tell us how to store exactly all <strong>in</strong>formation<br />

we query for. In the algorithm we will <strong>in</strong>troduce next, we see how it is possible<br />

to store all <strong>in</strong>formation <strong>in</strong> an easy manner. We will now present the Anglu<strong>in</strong> Algorithm,<br />

which we will also refer to as the Observation Table Algorithm [Ang87].<br />

The algorithm, or Learner, makes use of the same environment and plays the<br />

same roll as described <strong>in</strong> Section 19.4. Initially the algorithm has no knowledge<br />

of the SUT’s regular language, but the <strong>in</strong>formation it accumulates about the<br />

behavior of the mach<strong>in</strong>e, is entered <strong>in</strong>to a so called observation table. Due to the<br />

table the algorithm has at any po<strong>in</strong>t <strong>in</strong> time <strong>in</strong>formation about a f<strong>in</strong>ite collection<br />

of str<strong>in</strong>gs over a known f<strong>in</strong>ite alphabet Σ, classify<strong>in</strong>g them as members or nonmembers<br />

of some unknown regular set U.<br />

Anglu<strong>in</strong>’s algorithm will make sure that the observation table fulfills some<br />

criteria before it constructs a determ<strong>in</strong>istic f<strong>in</strong>ite-state mach<strong>in</strong>e A from <strong>in</strong>formation<br />

<strong>in</strong> the observation table. This hypothesis of what the language of the SUT<br />

is, is the Learner’s conjecture which will be sent to the Oracle.<br />

The Observation Table The <strong>in</strong>formation accumulated by the algorithm is a<br />

f<strong>in</strong>ite collection of observations, which is organized <strong>in</strong>to an observation table.<br />

The table is def<strong>in</strong>ed as follows:<br />

Def<strong>in</strong>ition 19.16. An Observation Table over a given alphabet Σ is a tuple<br />

OT =(SA, EA, TA) 1 ,where<br />

1 The <strong>in</strong>dex A signifies that the sets belong to Anglu<strong>in</strong>’s algorithm.<br />

b<br />

s0<br />

s3<br />

a<br />

a<br />

b<br />

s1<br />

s2<br />

a, b<br />

a, b

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

Saved successfully!

Ooh no, something went wrong!