Main Page
Welcome to the Wiki for the Algorithms and Theory Group at University of Maryland.
We start with an applicable dictionary definition of ``theory: The general or abstract principles of a science, or an art, or
a body of theorems presenting a concise systematic view of a subject.
Research in Theory of Computation includes three parts.
- Abstract salient features of a computational task; the outcome of abstraction is usually a mathematical model.
- Use analytical tools to study various issues within the model.
- Go back and relate the contributions of studies within the model to the motivating computational task.
The motivation may arise from a specific application, a whole application area, or from more foundational considerations. The former cases lead to designing and analyzing algorithms useful for the understanding of the motivating application. In the latter case, perhaps more similar to traditional areas of Mathematics, practical applicability may sometimes emerge as a by-product.
For students with an interest in the theory of computation, the University of Maryland provides a unique opportunity. The faculty has a very strong reputation in a several theory areas for students who wish to pursue research in these areas. For students with a strong theoretical bent and desire to apply theory to new application areas, the faculty has several forward looking research projects and studies.
Main Research Areas:
- Applied Algorithmics:
Joseph Ja'Ja',
Samir Khuller,
David Mount,
Mihai Pop,
Aravind Srinivasan,
Uzi Vishkin
Applying rigorously developed theory to practical problems arising in, e.g., networks, graphics, image processing, architecture, and social networks and epidemiology. Research at UMD in this area is often undertaken in collaboration with faculty in application areas. A sample of issues covered includes: how to schedule data upload in high-volume Web servers, nearest-neighbor searching, fast interpolation for ray-tracing, scheduling multimedia delivery from replicated sources, and exploiting the massive parallelism in upcoming parallel architectures.
- Approximation Algorithms:
Samir Khuller,
Aravind Srinivasan,
Uzi Vishkin
Approximation algorithms is the branch of algorithms dealing with the design of polynomial time algorithms that produce solutions that are close to optimal. This is of special interest for intractable problems for which no polynomial algorithms are known that produce optimal solutions. Techniques used are from a variety of areas: greedy algorithms, linear programming, randomized algorithms, non-linear programming, dynamic programming etc.
- Bioinformatics and Computational Biology:
Mihai Pop
Bioinformatics and Computational Biology involve the application of algorithmic theory to solving biological problems, in particular those problems arising from the modern shift of biological research towards high-throughput experimental techniques. As an example, determining the DNA sequence of organisms could not be possible without sophisticated algorithms used to assemble together the many small fragments generated by sequencing machines. Computational Biology at University of Maryland is conducted in close collaboration with biologists from the UMD College of Life Sciences and from other institutions.
- Coding Theory:
Alexander Barg
Coding theory is motivated by the problem of information transmission over noisy communication channels. It has developed into an area of applied mathematics with strong ties to theoretical computer science. Among the areas with links to CS are: list decoding of algebraic codes, local testability and local decodability and proofs of the different versions of the PCP theorem, codes and algorithms on graphs, almost orthogonal codes and weakly biased arrays, universal hash functions, quantum information processing, and others.
- Complexity Theory:
William Gasarch,
Jonathan Katz
Complexity theory is concerned with how complex various functions are to compute. The usual measures of complexity are time and space, though there are others such as communication and descriptive complexity. The most important problem in complexity theory is P=?NP. One topic of research in complexity theory at The University of Maryland is looking at analogs of P=?NP in communication complexity and descriptive complexity theory and seeing if the problem is solvable there, and what insights it may offer for the real problem. This approach is also being used on other open problems in complexity theory.
- Computational Geometry:
Samir Khuller,
David Mount
Computational geometry is the study of algorithms and data structures for problems whose inputs are geometric objects, for example, points, lines, spheres, polygons, and polyhedra. The field has applications to areas such as computer graphics and vision, robotics, computer-aided design, computational statistics, and computational biology. Research on computational geometry at Maryland includes work on a number of areas, including computing closest points and nearest neighbor searching and point location, computing clusters in point sets, point pattern matching, and interpolation.
- Cryptography:
Jonathan Katz,
Alexander Barg
Cryptography began as a rigorous formalization of issues arising in data and computer security (encryption, authentication, etc.), but has since expanded to touch upon many other areas of theoretical computer science (the most striking example being the concept of "zero-knowledge proofs"). Research at UMD explores both the practical and the theoretical aspects of this field. A primary motivation is to understand the efficiency of cryptographic solutions by (1) improving the computational/communication complexity of existing protocols, (2) using new number-theoretic assumptions to speed up current constructions, (3) designing improved algorithms for faster computation, and (4) proving lower bounds on the best possible efficiency that can be achieved.
- Parallel Algorithms:
Clyde Kruskal,
Joseph Ja'Ja',
Uzi Vishkin
Thinking algorithmically in parallel provides an interesting ``alien intellectual culture, relative to previous algorithmic theories. Current UMD researchers have had a strong presence in this field for over two decades, as evidenced by the recent recognition of 2 parallel algorithms researchers: Clyde Kruskal and Uzi Vishkin, as Highly Cited Researchers -- Kruskal and Vishkin are 2 of a total of 15 active UMD faculty members to be recognized by ISI Thompson, publishers of the science citation index. The PRAM-On-Chip project at UMD is a direct outgrowth of our theoretical work. The project offers a concrete agenda for challenging the 1946 von-Neumann architecture, through streamlining the massive knowledge base developed by the parallel algorithms community with the roadmap for CMOS VLSI.
- Pattern Matching:
Uzi Vishkin
Strings of characters (or bits) is an elementary form for representing information. Pattern matching problems on strings have provided a fertile ground for idea-driven algorithmic research.
- Randomized Algorithms:
Jonathan Katz,
Aravind Srinivasan
Randomized algorithms are algorithms that make random choices as they proceed, and have had a fundamental impact on many areas of computer science including distributed computing, cryptology, and networking. Research in Maryland covers all aspects of this field, including applications to network design and routing, approximation algorithms, scheduling, and distributed algorithms. On the more theoretical side, we are also interested in studying the limits to which randomization can be useful in computation.