1. A method of searching for an optimal resource allocation configuration comprising: generating a first configuration for allocating resources having a first degree of optimization; generating a second configuration for allocating resources based on a variation of the First configuration, the second resource allocation configuration having a second degree of optimization; rejecting the second configuration if the first degree of optimization represents a more optimal configuration than the second degree of optimization based on a first probability that the first configuration comprises a global optimum configuration for allocating resources; and accepting the second configuration if the first degree of optimization represents a more optimal configuration than the second degree of optimization based on a second probability that the first configuration does not comprise the global optimum configuration for allocating resources.