• Keine Ergebnisse gefunden

In this section we will glimpse into the subject of computational complexity theory, which primarily deals with complexity classes in general as well as to identify the hardness of specific problems and their membership in one of these classes. For in-depth information we 8

refer to [154, 126], dealing among others with this topic, and to [89, 211, 212, 99] especially focusing on it. Note that in these investigations corresponding decision variants (yielding a

“yes” or “no” answer) of optimization problems are considered, i.e. asking whether a solution having an objective value less than a requested value exists. Furthermore, the algorithms are assumed be executed on a common fictitious machine, theTuring machine, an abstraction of a real computer. This does, however, not impair the general findings, as the Church-Turing thesis suggests that this abstract device and all other (reasonable) computational models are equally powerful.

Definition 1 The time complexity function of an algorithm expresses its time requirement by giving, for each possible input length, the largest amount of time needed by the algorithm to solve a problem instance of that size.

Definition 2 Big Oh. A functionf(n)isO(g(n))whenever there exist constantsc >0, n0∈ Nsuch that0≤f(n) ≤c·g(n)for all values ofn≥n0. Thusc·g(n)is an (asymptotic) upper bound forf(n).

Definition 3 An algorithm runs in polynomial time (or is a polynomial time algorithm) if its time complexity function isO(p(n)), wherepis some polynomial function andnis the size of the instance (or its input length). Ifkis the largest exponent of such a polynomial inn, the corresponding problem is said to be solvable inO(nk).

Definition 4 If an algorithm’s time complexity function cannot be bounded by a polynomial inn, the algorithm is called an exponential time algorithm.

Definition 5 An optimization or constraint satisfaction problem is efficiently solvable if there exists a polynomial time algorithm for solving it. The problem is then considered

“well-solved”.

Definition 6 The class of problems that are efficiently solvable is denoted byP (standing for polynomial time).

There are other algorithms which are in practice (i.e. for most practical instances) frequently considered efficient enough: the pseudo-polynomial algorithms. For them the time com-plexity function is polynomial in the size of the instances but also depends on actual instance input numbers. This refinement is made because when only considering the instance size n then parameters might be contained whose size is exponential inn, although for many problems the magnitudes are implicitly bounded by a polynomial in n. Hence a pseudo-polynomial algorithm runs in pseudo-polynomial time when all input numbers are represented in unary(in base 1, i.e., as a sum of 1s), but in exponential time when all input numbers are represented in binary.

Unfortunately many (important) COPs do not seem to lie inside P since no polynomial time algorithms are known to solve them in general, but only solution approaches taking

2. METHODOLOGIES

exponential time in the worst case. This at most exponential effort originates from the fact that theoretically all possible solutions could be investigated, which is to some respect the

“fallback strategy” which will be mentioned in the next section. However, for these problems it is at least possible to efficiently check the validity of a given solution. Otherwise we would even not be able to efficiently recognize a solution, yet preventing the heuristic solution approaches mentioned later. Such “intractable” problems belong to the classN P, where it holds thatP ⊆ N P. Yet despite tremendous research efforts it is up to date not known whether N P ⊆ P and hence P = N P (being one of the great unsolved problems of mathematics1), though it is conjectured thatP 6= N P. Letting theory aside, also intuition suggests the latter, since solving would demand the same effort than checking/recognizing otherwise. A statement by Scott Aaronson also highlights this2:

If P = N P, then the world would be a profoundly different place than we usually assume it to be. There would be no special value in “creative leaps”, no fundamental gap between solving a problem and recognizing the solution once it’s found. Everyone who could appreciate a symphony would be Mozart;

everyone who could follow a step-by-step argument would be Gauss; everyone who could recognize a good investment strategy would be Warren Buffett. . . .

InsideN P exist so-called N P-complete problems which are considered as the “hardest”

among them. The ancestor of all such problems is the Boolean satisfiability problem (SAT), which Cook proved to be N P-complete [36] (known as Cook’s theorem or Cook-Levin theorem).

Definition 7 A (decision) problem isN P-complete if it is inN P and every problem inN P is reducible to it in polynomial time.

Showing that two problems are related is done by “reducing” one to the other.

Definition 8 A reductionfrom problem A toB is a (polynomial time) constructive trans-formation that maps any instance ofAinto an equivalent instance ofB. These are further called many-one reductions, and are denoted asA≤m B.

HenceA ≤m B implies that any algorithm that solvesB is also able to solve A, where a polynomial Since then many other problems where also shown to beN P-complete, starting with the list of 21 problems by Karp [120]. This means that solving one of them efficiently would imply that all of them can be solved in an efficient way. Given the fact that for many problems specifically dedicated solution algorithms were devised, yet not “efficient” ones as denoted above, suggests even more thatP 6=N P. There is further the notion of anN P-hard problem to which everyN P-complete problem is reducible to, yet it does not necessarily lie inN P itself. They are therefore at least as hard as N P-complete problems. Finally, if there exists a pseudo-polynomial algorithm for anN P-complete orN P-hard problem,

1see athttp://www.claymath.org/millennium/P_vs_NP/

2see “The Philosophical Argument” athttp://www.scottaaronson.com/blog/?p=122

10

then it is denoted as weaklyN P-complete and weakly N P-hard, respectively. Contrary, if representing the input numbers of a problem in unary still does not permit to solve it in polynomial time it is denoted as stronglyN P-complete or stronglyN P-hard. In fact, the question is whether we deal with anumber problem:

Definition 9 A problem is a number problem when the magnitudes are not polynomially bounded by the instance size.

Under the assumptionP 6=N PonlyN P-complete problems that are number problems are potential candidates for being solved by pseudo-polynomial time algorithms.

Note that the theoretical definition of “efficiently solvable” not necessarily correlates with an efficient solvability in practice. Often instances ofN P-hard problems can be solved well, whereas solving instances of problems inPto optimality might require too much effort.