zoukankan      html  css  js  c++  java
  • P and NP

    P: The problems that can be solved in polynomial time.

    NP: The problems whose solutions can be verified in polynomial time.

    NP-complete: The problems in the set of NP problems and also in the
    set of NP-hard problems.Although any given solution to
    such a problem can be verified quickly, there is no known
    efficient way to locate a solution in the first place;
    indeed, the most notable characteristic of NP-complete
    problems is that no fast solution to them is known.
    What makes NP-complete problems important is that if a
    deterministic polynomial time algorithm can be found to
    solve one of them, every NP problem is solvable in
    polynomial time (one problem to rule them all).--Cook's theorem.

    NP-hard: The problems that are at least as hard as NP-complete problems.
    NP-hard problems do not have to be in NP.


    Usually there are three kinds of algorithms to solve NP-complete and
    NP-hard problems:
    1. Backtracking algorithms with good prunning techniques.
    2. Heuristic algorithms.
    3. Approximation algorithms.

    Differences between heuristic algorithms and approximation algorithms are
    approximation algorithms are like putting money in the banks -- you always
    get 3% benefit a year (approximation algorithms always return solutions
    with a guarantee attached, you can never go too far wrong when using them)
    Heuristic algorithms are like putting your money into the stock market,
    you may do much better than approximation algorithms or even get the
    optimal solution, but they are without guarranty.

  • 相关阅读:
    Git 远程仓库分支管理
    Git 本地仓库管理
    Git 本地仓库管理
    SQLAlchemy_定义(一对一/一对多/多对多)关系
    SQLAlchemy_定义(一对一/一对多/多对多)关系
    自动化生成 Openstack 新项目开发框架
    自动化生成 Openstack 新项目开发框架
    Python 数据结构_队列
    Python 数据结构_队列
    Python 数据结构_堆栈
  • 原文地址:https://www.cnblogs.com/tanghulu321/p/3088060.html
Copyright © 2011-2022 走看看