Patent ID: 8904377

Claim:
A computer-implemented method of managing applications installed on a computer system, comprising: receiving a request to install a first application on the computer system; determining whether the computer system can support a first software state representing the first application and applications currently installed on the computer system; and upon determining the first software state cannot be supported on the computer system: generating a representation of one or more second software states by: generating a filter mask, wherein the filter mask represents the distinct subset of one or more applications to represent as having been uninstalled from the computer system in a respective one of the second software states; and determining a set of applications represented by respective second software state by combining a frequency of use bitmask and the filter mask, and successively evaluating, by operation of one or more computer processors, one or more of the second software states, wherein each second software state includes at least the first application as having been installed on the computer system and a distinct subset of one or more of the applications as having been uninstalled from the computer system, until identifying at least a first one of the second software states that can be supported on the computer system.