An approach is provided for solving optimization problems. The present invention also relates to a method comprising obtaining a first set of binary variables and a second set of binary variables; providing information regarding interactions between binary variables of the first set and binary variables of the second set; and providing an inverse temperature value. A change of a local energy of a binary variable of the first set if the binary variable were flipped is calculated on the basis of the inverse temperature value and the interactions between the binary variable of the first set and binary variables of the second set; and a probability is calculated on the basis of the change of the local energy. The probability is compared to a random value to determine whether to accept the flipping of the binary variable of the first set; and if the comparison indicates that the flipping can be accepted, the value of the binary variable of the first set is flipped. There is also disclosed an apparatus for implementing the method.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. An apparatus comprising: a first input for receiving a first set of binary variables and a second set of binary variables; a first element for storing information regarding interactions between binary variables of the first set and binary variables of the second set; a second input for receiving an inverse temperature value; a second element for calculating a change of a local energy of a binary variable of the first set if the binary variable were flipped on the basis of the inverse temperature value and the interactions between the binary variable of the first set and binary variables of the second set; a third element for calculating a probability on the basis of the change of the local energy; a fourth element for comparing the probability to a random value to determine whether to accept the flipping of the binary variable of the first set; and a fifth element for providing an indication whether the flipping can be accepted; and a sixth element for providing the flipped value of the binary variable of the first set. 2. The apparatus of claim 1, wherein the first element is adapted to store interactions to an initial state on the basis of a problem to be solved. 3. The apparatus of claim 2 further comprising an output for providing the state of the binary variables after the comparison to determine whether a solution to the problem has been found. 4. The apparatus of claim 1, wherein the second element comprises: a vector-vector reduction unit adapted to calculate a local energy of a binary variable; and an exponential approximation unit. 5. The apparatus of claim 1, wherein the apparatus comprises: a selector for selecting an initial value for the inverse temperature; the apparatus is configured to calculate the change of the local energy and to determine whether the solution to the problem has been found; the selector is adapted to increase the inverse temperature value according to a predefined schedule, if the solution has not been found; and the apparatus is configured to repeat the calculation, and determination and to increase the inverse temperature value until a terminating condition is fulfilled. 6. The apparatus of claim 5, wherein the terminating condition is at least one of the following: the solution has been found; a predetermined number of repetitions has been performed; the change of the local energy between two consecutive repetitions is less than a predetermined value. 7. The apparatus of claim 1, wherein the apparatus comprises: a plurality of said second element, third element, fourth element, fifth element and the sixth element configured to operate in parallel. 8. The apparatus of claim 1, wherein the apparatus is implemented in a field programmable gate array. 9. The apparatus of claim 1, wherein the apparatus is implemented in an application specific integrated circuit. 10. The apparatus of claim 1, wherein the first input is configured to receive each of the first set of binary variables and the second set of binary variables in parallel. 11. A method comprising: obtaining a first set of binary variables and a second set of binary variables; providing information regarding interactions between binary variables of the first set and binary variables of the second set; providing an inverse temperature value; calculating a change of a local energy of a binary variable of the first set if the binary variable were flipped on the basis of the inverse temperature value and the interactions between the binary variable of the first set and binary variables of the second set; calculating a probability on the basis of the change of the local energy; comparing the probability to a random value to determine whether to accept the flipping of the binary variable of the first set; and if the comparison indicates that the flipping can be accepted, flipping the value of the binary variable of the first set. 12. The method of claim 11 further comprising: performing the determination whether the flipping can be accepted to each binary variable of the first set of binary variable and to each binary variable of the second set of binary variables. 13. The method of claim 11 further comprising: setting the interactions to an initial state on the basis of a problem to be solved. 14. The method of claim 12 further comprising: reading the state of the binary variables after the comparison to determine whether a solution to the problem has been found. 15. The method of claim 11, wherein calculating a change of a local energy of a binary variable comprises: computing a local energy by: multiplying the binary variable of the first set, the binary variable of the second set and the interaction between the binary variable of the first set and the binary variable of the second set; obtaining a sum of the multiplication results for each binary variable of the first set. 16. The method of claim 14 further comprising: computing the sums in a pair-wise manner. 17. The method of claim 11 further comprising: selecting an initial value for the inverse temperature; calculating the change of the local energy; determining whether the solution to the problem has been found; increasing the inverse temperature value according to a predefined schedule, if the solution has not been found; and repeating the calculation, determination and increment of the inverse temperature value until a terminating condition is fulfilled. 18. The method of claim 17, wherein the terminating condition is at least one of the following: the solution has been found; a predetermined number of repetitions has been performed; the change of the local energy between two consecutive repetitions is less than a predetermined value. 19. The method of claim 11 comprising: performing the method in parallel to both said first set of binary variables and said second set of binary variables. 20. The method of claim 11 comprising: obtaining both said first set of binary variables and said second set of binary variables in parallel. 21. A computer readable storage medium stored with code thereon for use by an apparatus, which when executed by a processor, causes the apparatus to perform: obtain a first set of binary variables and a second set of binary variables; provide information regarding interactions between binary variables of the first set and binary variables of the second set; provide an inverse temperature value; calculate a change of a local energy of a binary variable of the first set if the binary variable were flipped on the basis of the inverse temperature value and the interactions between the binary variable of the first set and binary variables of the second set; calculate a probability on the basis of the change of the local energy; compare the probability to a random value to determine whether to accept the flipping of the binary variable of the first set; and if the comparison indicates that the flipping can be accepted, flip the value of the binary variable of the first set.