requirementsnpnp-hardrequirements-management

NP Hard's relation to Requirements Engineering


I want to know about NP-Hard from a requirements engineering point of view and not mathematical. Any input is appreciated.


Solution

  • Requirements engineering is the process of defining, documenting and maintaining requirements in the engineering design process.The only connection to NP-hard problems I can imagine is the following:
    If a problem should be solved by an algorithm, require that an algorithm is used that is not NP-hard.
    NP-hard means essentially (not mathematically) that one has to compute all possible solutions to a problem, and than select the best one.
    The typical example is the Traveling Salesman Problem:
    Given a number of cities to visit, find the shortest visit that visited each city once.
    To find the shortest route, all possible routes have to be constructed, and the shortest one has then to be selected. The time to find this best solution grows exponentially with the number of cities, i.e. for a larger number of cities it is not solvable.
    PS: Of course, there are algorithms that solve this particular problem pretty well in reasonable time.