[net.ai] Semiautomated Algorithm Design

DSMITH@RUTGERS.ARPA (04/09/84)

            [Forwarded from the Rutgers bboard by Laws@SRI-AI.]

                 Rutgers' Computer Science Colloquium

                    Semiautomated Algorithm Design

                           Douglas R. Smith

   Algorithm design is viewed as the transformation of a formal  specification
of a problem into an algorithm. We present a formal top-down method for
creating hierarchically structured algorithms. The method works as follows: to
design an algorithm A0 for a problem specification P0, the programmer
conjectures the overall structure S of A0, then uses knowledge of the
structure S to deduce subproblem specifications P1,...,Pn for the
underdetermined parts of S.  Algorithms A1,...,An are then designed for the
subproblems P1,...,Pn and  assembled  (via  the structure S) into an
algorithm for the initial problem P0.  This process results in the
decomposition of the initial problem specification into a hierarchy  of
subproblem  specifications and the composition of a corresponding
hierarchically structured algorithm.  The knowledge used  to  deduce
specifications  for subproblems is obtained by analysis of the particular
structure S and is encoded in a procedure called a design strategy for S.
The  top-down  design process  depends  on  design  strategies  for  many
different kinds of algorithm structures.

     We illustrate this approach by presenting  the  knowledge  needed  to
synthesize  a  class  of  divide and conquer algorithms and by deriving a
quicksort algorithm.  Our examples are drawn from experiments with  an
implemented  algorithm  design  system called CYPRESS.  Current efforts to
systematically acquire design strategies for fundamental classes of
algorithms will be discussed.

DATE:    Thursday, April 12, 1984
TIME:    10:30 a.m.
PLACE:   Hill Center - Room 705
        *  Coffee will be served at 10:00 a.m.