1. A problem solving method for use in a computer system, wherein the computer system includes an applications module having a problem solver, wherein the problem solver comprises a solving module and a complexity module, the method comprising the steps of: receiving a problem statement from the applications module; configuring the solving module with configuration parameters; determining an expected solver behavior associated with said configuration parameters for said problem statement; determining actual solver behavior; reviewing said actual solver behavior to determine if a problem solution has been found; determining whether to perform a solver iteration step or to request the complexity module to perform an adaptation step if a problem solution has not been found; performing a said solver iteration step when said solver iteration step is selected, comprising the steps of determining new actual solver behavior and determining whether to repeat said solver iteration step; repeating said solver iteration step until said adaptation step is selected; comparing said actual solver behavior with said expected solver behavior when said adaptation step is selected; requesting the complexity module to perform said adaptation step; performing said adaptation step, comprising the steps of modifying said configuration parameters within the complexity module, configuring the solving module with said modified configuration parameters, determining expected solver behavior associated with said modified configuration parameters for said problem statement, selecting an algorithm to calculate a revised problem solution, determining a revised actual solver behavior associated with said modified configuration parameters for said problem statement, reviewing said revised actual solver behavior to determine if a problem solution has been found, determining whether to perform said solver iteration step or to request the complexity module to perform another adaptation step if a problem solution has not been found, and repeating said iteration step until said adaptation step is selected; repeating said adaptation step until a problem solution is found; and providing the solution to the applications module.