Patent ID: 8041666

Claim:
A processor implemented method of deriving a final target sequence of a plurality of elements in accordance with a plurality of user-defined constraints, the method comprising acts of: generating a first sequence of elements; evaluating a penalty of the first sequence, the penalty indicating an extent of violation by the elements of the plurality of user-defined constraints; and deriving a final target sequence by repeatedly: generating a second sequence by making a change to at least one element of the first sequence, the change is selected from at least one of a random change and a biased change, the biased change reducing the extent of violation indicated by the penalty of at least one of the plurality of user-defined constraints, evaluating the penalty of the second sequence, and replacing the first sequence with a target sequence, such that if the random change is made, the penalties of the first and second sequence are compared and one with the penalty that has a smaller extent of violation is selected as the target sequence, and if the biased change is made, the second sequence is selected as the target sequence, wherein at least one iteration includes making a biased change.