Download COS 528

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Boolean satisfiability problem wikipedia , lookup

Fisher–Yates shuffle wikipedia , lookup

Factorization of polynomials over finite fields wikipedia , lookup

Corecursion wikipedia , lookup

Transcript
COS 528
Fall 2003
HO2
Open Problem: Sequence Generation
Using a Stack
Consider a stack with three operations:
push x: put x on top of the stack
top:
write the top item on the stack to the output
pop:
remove the top element from the stack
Problem: Given a sequence of length n, determine a minimum-length sequence of stack
operations that will generate it, starting and ending with an empty stack.
Note that the number of stack operations needed is at most 3n and at least n  2 (if n  1),
so coming within a constant factor is easy.
What is known: There is an O(n3 )  time algorithm that uses linear programming. For
sequences containing only two distinct symbols, there is an O (n)  time algorithm; for
three distinct symbols there is an O(n2 )  time algorithm. It seems likely that one could
use fast matrix multiplication to solve the problem. The problem is a very special case of
minimum-cost context-free-language parsing. It also may be related to the determination
of RNA secondary structure.
Related research question: explore semantic-based compression for HTML, XML, or
other formatting languages.
Handout 2