課題 焼きなまし法(SA)と呼ばれるかなりレガシーなアルゴリズムにはだいぶ世話になったのでJavaでも使ってみたかった。(Pythonではよく使っていた) Javaでの実装を探していたが、見つからないので、PythonのコードをJava8で再実装した。(目的関数の設定にラムダを用いている) 素早く解を出すのにSAは向いている(精度はともかく) コーディングポリシー Wikipediaの記事の疑似ソースコードよりはわかりやすくしたい。したがって具体的な数式を解くようなコードを例とする。焼きなまし法Wikipedia Pythonのtheanoのような内部で微分可能なメタ数式を使わないで解くので目的関数自体はハードコードになることを許容する。 ソースコード import java.util.*; import java.util.function.*; public class SAorigi