Java Simulated Annealing from Pseudocode

В настоящее время я работаю над проектом (TSP) и пытаюсь преобразовать некоторый псевдокод с имитацией отжига в Java. В прошлом мне удавалось преобразовывать псевдокод в код Java, однако я не могу это успешно преобразовать.

Псевдокод:

T0(T and a lowercase 0)    Starting temperature
Iter    Number of iterations
λ    The cooling rate

1.  Set T = T0 (T and a lowercase 0)
2.  Let x = a random solution
3.  For i = 0 to Iter-1
4.  Let f = fitness of x
5.  Make a small change to x to make x’
6.  Let f’ = fitness of new point
7.  If f’ is worse than f then
8.      Let p = PR(f’, f, Ti (T with a lowercase i))
9.      If p > UR(0,1) then
10.         Undo change (x and f)
11.     Else
12.         Let x = x’
13.     End if
14.     Let Ti(T with a lowercase i) + 1 = λTi(λ and T with a lowercase i)
15. End for
Output:  The solution x

Если бы кто-нибудь мог показать мне базовую разметку этого на Java, я был бы чрезвычайно благодарен - я просто не могу понять это!

Я работаю с несколькими классами, используя ряд функций (которые я не буду перечислять, поскольку они не имеют отношения к тому, о чем я прошу).У меня уже есть метод smallChange () и функция fitness - может ли быть шанс, что мне понадобится создать несколько различных версий указанных методов? Например, у меня есть что-то вроде:

public static ArrayList<Integer> smallChange(ArrayList<Integer> solution){

//Code is here.

}

Может ли мне понадобиться другая версия этого метода, которая принимает другие параметры? Что-то вроде:

public static double smallChange(double d){

//Code is here.

}

Все, что мне нужно, - это базовое представление о том, как это будет выглядеть при написании на Java - я смогу адаптировать его к своему коду, когда узнаю, как он должен выглядеть в правильном синтаксисе, но Кажется, я не могу преодолеть это конкретное препятствие.

Спасибо.

Мик

6
задан MusTheDataGuy 26 November 2013 в 11:46
поделиться