Based on the famous Rotation-Extension technique, by creating the new
concepts and methods: broad cycle, main segment, useful cut and insert,
destroying edges for a main segment, main goal Hamilton cycle, depth-first
search tree, we develop a polynomial time algorithm for a famous NPC: the
Hamilton cycle problem. Thus we proved that NP=P. The key points of this paper
are: 1) there are two ways to get a Hamilton cycle in exponential time: a full
permutation of n vertices; or, chose n edges from all k edges, and check all
possible combinations. The main problem is: how to avoid checking all
combinations of n edges from all edges. My algorithm can avoid this. Lemma 1
and lemma 2 are very important. They are the foundation that we always can get
a good branch in the depth-first search tree and can get a series of destroying
edges (all are bad edges) for this good branch in polynomial time. The
extraordinary insights are: destroying edges, a tree contains each main segment
at most one time at the same time, and dynamic combinations. The difficult part
is to understand how to construct a main segment's series of destroying edges
by dynamic combinations (see the proof of lemma 4). The proof logic is: if
there is at least on Hamilton cycle in the graph, we always can do useful cut
and inserts until a Hamilton cycle is got. The times of useful cut and inserts
are polynomial. So if at any step we cannot have a useful cut and insert, this
means that there are no Hamilton cycles in the graph.Comment: 49 pages. This time, I add a detailed polynomial time algorithm and
proof for 3S