Введение
Проблема, которую может решить компьютер. В теоретической информатике вычислительная проблема — это проблема, которая может быть решена алгоритмом. Например, проблема факторизации:
In theoretical computer science, a computational problem is a problem that may be solved by an algorithm. For example, the problem of factoring
"Given a positive integer n, find a nontrivial prime factor of n."
is a computational problem. A computational problem can be viewed as a set of instances or cases together with a, possibly empty, set of solutions for every instance/case. For example, in the factoring problem, the instances are the integers n, and solutions are prime numbers p that are the nontrivial prime factors of n.
Computational problems are one of the main objects of study in theoretical computer science. The field of computational complexity theory attempts to determine the amount of resources (computational complexity) solving a given problem will require and explain why some problems are intractable or undecidable. Computational problems belong to complexity classes that define broadly the resources (e. g. time, space/memory, energy, circuit depth) it takes to compute (solve) them with various abstract machines. For example, the complexity classes
P, problems that consume polynomial time for deterministic classical machines
BPP, problems that consume polynomial time for probabilistic classical machines (e. g. computers with random number generators)
BQP, problems that consume polynomial time for probabilistic quantum machines. Both instances and solutions are represented by binary strings, namely elements of {0, 1}*. For example, natural numbers are usually represented as binary strings using binary encoding. This is important since the complexity is expressed as a function of the length of the input representation.
"Для заданного положительного целого числа n найти нетривиальный простой делитель n."
In theoretical computer science, a computational problem is a problem that may be solved by an algorithm. For example, the problem of factoring
"Given a positive integer n, find a nontrivial prime factor of n."
is a computational problem. A computational problem can be viewed as a set of instances or cases together with a, possibly empty, set of solutions for every instance/case. For example, in the factoring problem, the instances are the integers n, and solutions are prime numbers p that are the nontrivial prime factors of n.
Computational problems are one of the main objects of study in theoretical computer science. The field of computational complexity theory attempts to determine the amount of resources (computational complexity) solving a given problem will require and explain why some problems are intractable or undecidable. Computational problems belong to complexity classes that define broadly the resources (e. g. time, space/memory, energy, circuit depth) it takes to compute (solve) them with various abstract machines. For example, the complexity classes
P, problems that consume polynomial time for deterministic classical machines
BPP, problems that consume polynomial time for probabilistic classical machines (e. g. computers with random number generators)
BQP, problems that consume polynomial time for probabilistic quantum machines. Both instances and solutions are represented by binary strings, namely elements of {0, 1}*. For example, natural numbers are usually represented as binary strings using binary encoding. This is important since the complexity is expressed as a function of the length of the input representation.
является вычислительной проблемой. Вычислительную проблему можно рассматривать как множество экземпляров или случаев вместе с, возможно, пустым множеством решений для каждого экземпляра/случая. Например, в задаче факторизации экземплярами являются целые числа n, а решениями — простые числа p, являющиеся нетривиальными простыми делителями n.
In theoretical computer science, a computational problem is a problem that may be solved by an algorithm. For example, the problem of factoring
"Given a positive integer n, find a nontrivial prime factor of n."
is a computational problem. A computational problem can be viewed as a set of instances or cases together with a, possibly empty, set of solutions for every instance/case. For example, in the factoring problem, the instances are the integers n, and solutions are prime numbers p that are the nontrivial prime factors of n.
Computational problems are one of the main objects of study in theoretical computer science. The field of computational complexity theory attempts to determine the amount of resources (computational complexity) solving a given problem will require and explain why some problems are intractable or undecidable. Computational problems belong to complexity classes that define broadly the resources (e. g. time, space/memory, energy, circuit depth) it takes to compute (solve) them with various abstract machines. For example, the complexity classes
P, problems that consume polynomial time for deterministic classical machines
BPP, problems that consume polynomial time for probabilistic classical machines (e. g. computers with random number generators)
BQP, problems that consume polynomial time for probabilistic quantum machines. Both instances and solutions are represented by binary strings, namely elements of {0, 1}*. For example, natural numbers are usually represented as binary strings using binary encoding. This is important since the complexity is expressed as a function of the length of the input representation.
Вычислительные проблемы — один из основных объектов изучения в теоретической информатике. Область теории вычислительной сложности пытается определить количество ресурсов (вычислительную сложность), необходимых для решения данной проблемы, и объяснить, почему некоторые проблемы являются неразрешимыми или невычислимыми. Вычислительные проблемы относятся к классам сложности, которые в широком смысле определяют ресурсы (например, время, пространство/память, энергия, глубина схемы), необходимые для их вычисления (решения) с помощью различных абстрактных машин. Например, классы сложности:
In theoretical computer science, a computational problem is a problem that may be solved by an algorithm. For example, the problem of factoring
"Given a positive integer n, find a nontrivial prime factor of n."
is a computational problem. A computational problem can be viewed as a set of instances or cases together with a, possibly empty, set of solutions for every instance/case. For example, in the factoring problem, the instances are the integers n, and solutions are prime numbers p that are the nontrivial prime factors of n.
Computational problems are one of the main objects of study in theoretical computer science. The field of computational complexity theory attempts to determine the amount of resources (computational complexity) solving a given problem will require and explain why some problems are intractable or undecidable. Computational problems belong to complexity classes that define broadly the resources (e. g. time, space/memory, energy, circuit depth) it takes to compute (solve) them with various abstract machines. For example, the complexity classes
P, problems that consume polynomial time for deterministic classical machines
BPP, problems that consume polynomial time for probabilistic classical machines (e. g. computers with random number generators)
BQP, problems that consume polynomial time for probabilistic quantum machines. Both instances and solutions are represented by binary strings, namely elements of {0, 1}*. For example, natural numbers are usually represented as binary strings using binary encoding. This is important since the complexity is expressed as a function of the length of the input representation.
P — проблемы, требующие полиномиального времени для детерминированных классических машин;
BPP — проблемы, требующие полиномиального времени для вероятностных классических машин (например, компьютеров с генераторами случайных чисел);
BQP — проблемы, требующие полиномиального времени для вероятностных квантовых машин.
In theoretical computer science, a computational problem is a problem that may be solved by an algorithm. For example, the problem of factoring
"Given a positive integer n, find a nontrivial prime factor of n."
is a computational problem. A computational problem can be viewed as a set of instances or cases together with a, possibly empty, set of solutions for every instance/case. For example, in the factoring problem, the instances are the integers n, and solutions are prime numbers p that are the nontrivial prime factors of n.
Computational problems are one of the main objects of study in theoretical computer science. The field of computational complexity theory attempts to determine the amount of resources (computational complexity) solving a given problem will require and explain why some problems are intractable or undecidable. Computational problems belong to complexity classes that define broadly the resources (e. g. time, space/memory, energy, circuit depth) it takes to compute (solve) them with various abstract machines. For example, the complexity classes
P, problems that consume polynomial time for deterministic classical machines
BPP, problems that consume polynomial time for probabilistic classical machines (e. g. computers with random number generators)
BQP, problems that consume polynomial time for probabilistic quantum machines. Both instances and solutions are represented by binary strings, namely elements of {0, 1}*. For example, natural numbers are usually represented as binary strings using binary encoding. This is important since the complexity is expressed as a function of the length of the input representation.
И экземпляры, и решения представлены двоичными строками, то есть элементами {0, 1}*. Например, натуральные числа обычно представляются в виде двоичных строк с использованием двоичного кодирования. Это важно, поскольку сложность выражается как функция длины входного представления.
In theoretical computer science, a computational problem is a problem that may be solved by an algorithm. For example, the problem of factoring
"Given a positive integer n, find a nontrivial prime factor of n."
is a computational problem. A computational problem can be viewed as a set of instances or cases together with a, possibly empty, set of solutions for every instance/case. For example, in the factoring problem, the instances are the integers n, and solutions are prime numbers p that are the nontrivial prime factors of n.
Computational problems are one of the main objects of study in theoretical computer science. The field of computational complexity theory attempts to determine the amount of resources (computational complexity) solving a given problem will require and explain why some problems are intractable or undecidable. Computational problems belong to complexity classes that define broadly the resources (e. g. time, space/memory, energy, circuit depth) it takes to compute (solve) them with various abstract machines. For example, the complexity classes
P, problems that consume polynomial time for deterministic classical machines
BPP, problems that consume polynomial time for probabilistic classical machines (e. g. computers with random number generators)
BQP, problems that consume polynomial time for probabilistic quantum machines. Both instances and solutions are represented by binary strings, namely elements of {0, 1}*. For example, natural numbers are usually represented as binary strings using binary encoding. This is important since the complexity is expressed as a function of the length of the input representation.
Проблема решения
Проблема принятия решения — это вычислительная задача, для каждого экземпляра которой ответ может быть только «да» или «нет». Примером проблемы принятия решения является проверка на простоту:
"Given a positive integer n, determine if n is prime." A decision problem is typically represented as the set of all instances for which the answer is yes. For example, primality testing can be represented as the infinite set
L = {2, 3, 5, 7, 11, }
«Для заданного положительного целого числа n определить, является ли n простым числом». Проблема принятия решения обычно представляется как множество всех экземпляров, для которых ответ «да». Например, проверка на простоту может быть представлена в виде бесконечного множества L = {2, 3, 5, 7, 11, …}.
"Given a positive integer n, determine if n is prime." A decision problem is typically represented as the set of all instances for which the answer is yes. For example, primality testing can be represented as the infinite set
L = {2, 3, 5, 7, 11, }
Проблема поиска
В задаче поиска ответы могут быть произвольными строками. Например, факторизация – это задача поиска, где экземплярами являются (строковые представления) положительных целых чисел, а решениями – (строковые представления) наборов простых чисел. Задача поиска представляется как отношение, состоящее из всех пар «экземпляр-решение», называемое отношением поиска. Например, факторизацию можно представить как отношение
R = {(4, 2), (6, 2), (6, 3), (8, 2), (9, 3), (10, 2), (10, 5)}
которое состоит из всех пар чисел (n, p), где p является простым множителем n.
Проблема счисления
Задача подсчёта требует определения количества решений для заданной задачи поиска. Например, задача подсчёта, связанная с факторизацией, формулируется следующим образом:
"Для заданного положительного целого числа n подсчитайте количество нетривиальных простых множителей n."
Задача подсчёта может быть представлена функцией f, отображающей {0, 1}* в неотрицательные целые числа. Для отношения поиска R, задача подсчёта, связанная с R, определяется функцией
fR(x) = |{y: R(x, y)}|.
Проблема оптимизации
Проблема оптимизации заключается в поиске "наилучшего" решения среди всех возможных решений задачи поиска. Одним из примеров является задача о максимальном независимом множестве: "Для заданного графа G найти независимое множество G максимального размера". Задачи оптимизации представляются целевой функцией и ограничениями.
"Given a graph G, find an independent set of G of maximum size." Optimization problems are represented by their objective function and their constraints.
Проблема функции
В функциональной задаче для каждого входа ожидается единственный выход (полная функция), но этот выход сложнее, чем в задаче принятия решения, то есть он не ограничивается ответами "да" или "нет". Одним из самых известных примеров является задача коммивояжера:
"Дан список городов и расстояния между каждой парой городов. Необходимо найти кратчайший возможный маршрут, который посещает каждый город ровно один раз и возвращается в исходный город." Это NP-трудная задача в области комбинаторной оптимизации, имеющая важное значение в исследовании операций и теоретической информатике.