Boost logo

Boost :

From: Jeremy Siek (jsiek_at_[hidden])
Date: 2000-10-25 08:27:18


Here's an interesting challenge project. Add finite state
automata algorithms to boost, using the boost graph library.

----------------------------------------------------------------------
 Jeremy Siek www: http://www.lsc.nd.edu/~jsiek/
 Ph.D. Candidate email: jsiek_at_[hidden]
 Univ. of Notre Dame work phone: (219) 631-3906
----------------------------------------------------------------------

---------- Forwarded message ----------
Date: Wed, 25 Oct 2000 11:45:35 +0200
From: Dale Gerdemann <dg_at_[hidden]>
To: Jeremy Siek <jsiek_at_[hidden]>
Cc: dg_at_[hidden]
Subject: Re: Boost graph class (again)

Hi Jeremy,

It seems to me that your graph class really ought to be tested on a
wider class of algorithms. Given the wealth of algorithms for finite
state automata and transducers, this would be an excellent area for
investigation. I started to do this myself, but my time is very
limited. This seems like the kind of job for a dedicated PhD
student. So I thought I'd write to you in the hope that you'd pass the
idea along to a fellow student.

A starting point would probably be Bruce Watson's thesis, "Taxonomies
and Toolkits of Regular Language Algorithms":

   http://www.sfs.nphil.uni-tuebingen.de/~dg/watson_thesis.ps

For transducers, a starting point would be the set of algorithms in
the introduction to the book "Finite-State Language Processing" by
Roche, Shabes and Schabes. This is a good source, which unfortunately
contains a lot of annoying errors. I've tried to compile an errata,
which is available at:

   http://www.sfs.nphil.uni-tuebingen.de/~dg/roche_schabes_errata.ps

For learning transducers, there's an interesting algorithm in:

@Article{OncGarVid93,
  author = "J. Oncina and P. Garc\'\i{}a and E. Vidal",
  title = "Learning subsequential transducers for pattern
                 recognition interpretation tasks",
  journal = "IEEE Transactions on Pattern Analysis and Machine
                 Intelligence",
  year = "1993",
  volume = "15",
  pages = "448--458",
}

The learning algorithm is very tricky to implement efficiently. I'm
sure it would be a terrific challenge to implement it using your graph
class. I've implemented it myself in C++ (using STL) and I have the C
implementation from the authors of the paper.

There are also interesting algorithms for acyclic automata. The
starting point here is Jan Daciuk's PhD thesis:

   http://www.pg.gda.pl/~jandac/thesis.ps.gz

And, of course, there are lots of other automata/transducer
algorithms. It would be wonderful (and very useful) to see such
algorithms implemented in a generic framework.

---------------------------------------------------------------------
Dale Gerdemann dg_at_[hidden]
Dept. of Linguistics +49 7071-29-74967 office
Section for Computational Linguistics +49 7472-442298 home
University of Tuebingen Fax: +49 7071-551335
Kl. Wilhelmstr. 113
D-72074 Tuebingen, Germany
---------------------------------------------------------------------


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk