Glossary

Computational Problem

A question or task that a computer system can potentially solve or execute.

Definition

In theoretical computer science, a computational problem refers to any problem that can be formulated in a way that allows it to be solved by a computer. These problems are typically defined by specifying a set of inputs and the desired properties of the output or solution. Computational problems can range from simple calculations, like arithmetic operations, to complex tasks such as pattern recognition, data analysis, optimization, and simulation.

The study of computational problems involves understanding how these problems can be efficiently represented, processed, and solved using computational models and algorithms. This includes analyzing the problems' inherent computational complexity to determine the resources required (such as time and memory) for various computational approaches and identifying the most efficient algorithms for their solution.

Examples / Use Cases

One classic example of a computational problem is sorting a list of numbers in ascending order. The input is the list of numbers, and the desired output is the same list, rearranged so that the numbers are in non-decreasing order. Various algorithms exist to solve this problem, such as quicksort, mergesort, and heapsort, each with different performance characteristics and computational complexities.

Another example is the traveling salesman problem (TSP), a well-known problem in the field of optimization. The input consists of a list of cities and the distances between each pair of cities. The task is to find the shortest possible route that visits each city exactly once and returns to the starting city. TSP is known to be NP-hard, meaning that no efficient algorithm is known for solving all instances of the problem in polynomial time. Solutions often involve heuristic or approximation algorithms that can provide good (but not necessarily optimal) solutions within reasonable computational time for practical applications.