9.4 Network Flow Problems
Suppose we are given a directed graph G = (V, E) with edge capacities Cv,w. We have two vertices: s, which we call the source, and t, which is the sink. Through any edge(v,w), at most Cv,w units of "flow" may pass. At any vertex, v, that is not either s or t, the total flow coming in must equal the total flow going out. The maximum flow problem is to determine the maximum amount of flow that can pass from s to t.
9.7 Introduction to NP-Completeness
There are a host of important problems that are roughly equivalent in complexity. There problems form a class called theNP-complete problems.
The exact complexity of these NP-complete problems has yet to be determined and remains the foremost open problem in the theoretical computer science.
Either all these problems have polynomial-time solutions or none of them do.
9.7.1 Easy vs. Hard
If we consider the time to input data and construct the data structure, generally, we cannot expect better than linear running time.
There are also problems that computer cannot solve. These problems are called undecidable problems. (E.G. check all the infinite loop in C compiler)
9.7.2 The Class NP
NP stands for nondeterministic polynomial-time(非确定型多项式时间).
A nondeterministic machine has a choice of next steps. It is free to choose any that it wishes, and if one of these steps leads to a solution, it will always choose the correct one.