サイズ: 993
コメント:
|
サイズ: 2186
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 12: | 行 12: |
== ocamloptでのコンパイルについて == リバーシAIを強くしようと思ってる人は、なるべく先読みができたほうがいいですよね? 配布されているMakefileではocamlcでコンパイルする設定になっており、バイトコードを生成するようになっていますが、 ocamloptでネイティブコードにコンパイルしたほうが数倍速いです。(自分のプログラムだと大体2手ぐらい多めに読めるようになりました) ocamloptでコンパイルするには、 ・ocamlc -> ocamlopt ・.cma -> .cmxa ・.cmo -> .cmx と変えればいいはずです。とりあえずコレでコンパイルは通ります(何か問題あったら加筆してください) ==== もうちょい速くしたい? ==== ocamloptでコンパイルするとき、-unsafeオプションをつけると配列の境界チェック等をしなくなるので、多少速くなるそうです。 ただし、配列のインデックスエラーやスタックオーバーフローを起こした時にどうなるかが保証されないため、もしやるなら自己責任で…… |
関数・論理型プログラミング実験/課題メモ/第8回
boardについて
val init_board
reversi.mliを見ての通り、init_boardは変数です。関数ではないです。0引数関数ではないです。
つまり、当然ながら評価はされません。参照されるだけです。
put_stoneでboardを受け取ってboardを返す際に注意しないとこのinit_boardを編集する事になり、二試合目以降置ける手が無い盤面でスタートする事になります。 -- Naoaki Iwakiri 2011-06-21 12:56:22
ocamloptでのコンパイルについて
リバーシAIを強くしようと思ってる人は、なるべく先読みができたほうがいいですよね?
配布されているMakefileではocamlcでコンパイルする設定になっており、バイトコードを生成するようになっていますが、 ocamloptでネイティブコードにコンパイルしたほうが数倍速いです。(自分のプログラムだと大体2手ぐらい多めに読めるようになりました)
ocamloptでコンパイルするには、
・ocamlc -> ocamlopt
・.cma -> .cmxa
・.cmo -> .cmx と変えればいいはずです。とりあえずコレでコンパイルは通ります(何か問題あったら加筆してください)
もうちょい速くしたい?
ocamloptでコンパイルするとき、-unsafeオプションをつけると配列の境界チェック等をしなくなるので、多少速くなるそうです。
ただし、配列のインデックスエラーやスタックオーバーフローを起こした時にどうなるかが保証されないため、もしやるなら自己責任で……