Top/TheGeneralIdea

Top | Top | recent changes | Preferences

Decision Problems

For now we restrict our attention to the following kinds of computational problems: decision problems.

We call any set S of strings over a finite alphabet Σ a language.

(For example, let S be the set of binary strings (strings over the alphabet Σ = {0,1}) with an odd number of 1's.)

The decision problem for S is the following:

input: a finite string X of characters in Σ.
output: "yes" (meaning, X is in S) or "no" (meaning, X is not in S).

An algorithm (or computational device) decides S if it takes any string X ∈ Σ* as input and eventually halts and outputs 'yes' or 'no'. Furthermore, if X∈ S then 'yes' must be the output, and otherwise 'no'.

Classes of languages

A class of languages is just a collection (i.e. a set) of languages.

Theory of computation is about classes of languages, not so much about particular languages. (Also, about the relations between languages.)

Classes of languages are often defined by a computational model. (E.g. "The regular languages are those languages that can be decided by a finite automaton.") In this way, classes of languages delineate what can and cannot be computed under a particular model of computation.

For example, the set of /RegularLanguages is a class of languages.

Problems vs. languages

Some computational problems are not decision problems. For example, sorting a list of numbers is not a decision problem. Sometimes, but not often, we might generalize the notion of "computational problem" to more than decision problems. For example, we might talk about algorithms or computational devices that, given an input X, output some function f(X). This is more general, but still, one can think of many problems that don't fit into this kind of relatively static model: for example, dynamic problems (e.g. auto-piloting an airplane in windy conditions, maintaining a search-engine index of web pages).


References


Top | Top | recent changes | Preferences
This page is read-only | View other revisions
Last edited September 23, 2004 4:12 pm by roam-neal2.cs.ucr.edu (diff)
Search: