ML 演習 第 8 回 2007/07/17 飯塚 大輔, 後藤 哲志, 前田 俊行

Slides:



Advertisements
Similar presentations
プログラミング演習Ⅱ 第 11 回 ポインタ(2) 情報・知能工学系 山本一公
Advertisements

プログラミング演習( 2 組) 第 9 回
プログラムNo.:論文タイトル(必ず書いてください)
アルゴリズムとデータ構造 第2回 線形リスト(復習).
特別課題 あまりにも優秀すぎて, 時間をもてあましている人へ.
プログラミング 平成24年1月11日 森田 彦.
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
2006/10/26 山下 諒蔵 佐藤 春旗 前田 俊行 大山 恵弘 佐藤 秀明 住井 英二郎
本日のスケジュール 14:45~15:30 テキストの講義 15:30~16:15 設計レビュー 16:15~16:30 休憩
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
情報技術演習Ⅰ 人文学研究のための情報技術入門 2015/07/02
関数(1) 第11回 [6月29日、H.16(‘04)] 今日のメニュー 1 前回の課題 2 前回の宿題 3 いろいろな関数の演習 4 課題
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
プログラミング基礎I(再) 山元進.
ML 演習 第 1 回 佐藤 春旗, 山下 諒蔵, 前田 俊行 May 30, 2006.
第13回構造体.
2006/11/30 山下 諒蔵 佐藤 春旗 前田 俊行 大山 恵弘 佐藤 秀明 住井 英二郎
6/19 前回復習 for文による繰り返し計算 演習1:1から10まで足して画面に結果を表示する 提出者: 1人
コンパイラ演習番外編 (その1): min-rt 改 コンテスト
プログラミング演習Ⅱ 第12回 文字列とポインタ(1)
Lispとは ゲーム理論 minimaxアルゴリズム αβアルゴリズム ソースコードの一部
2004年度JAVAゼミコンテスト作品 「Othello」
15分でわかる RefWorks 基本操作.
2007/1/18 山下 諒蔵 佐藤 春旗 前田 俊行 大山 恵弘 佐藤 秀明 住井 英二郎
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング システムプログラミング プロセス間通信(パイプ) 担当:青木義満
2006/10/19 山下 諒蔵 佐藤 春旗 前田 俊行 大山 恵弘 佐藤 秀明 住井英二郎
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
マスタリング バベル Boost.勉強会 #2 ( ).
2006/11/16 山下 諒蔵 佐藤 春旗 前田 俊行 大山 恵弘 佐藤 秀明 住井 英二郎
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
2007/1/11 山下 諒蔵 佐藤 春旗 前田 俊行 大山 恵弘 佐藤 秀明 住井 英二郎
Linuxカーネルについて 2014/01.
ファイル操作と文字列の利用.
経済学のための情報処理入門 電子メールの送返信,添付書類.
ML 演習 第 7 回 新井淳也、中村宇佑、前田俊行 2011/05/31.
ML 演習 第 3 回 新井淳也、中村宇佑、前田俊行 2011/04/26.
TA 高田正法 B10 CPUを作る 2日目 SPIMのコンパイル TA 高田正法
JAVAでつくるオセロ 伊東飛鳥、宮島雄一 長畑弘樹、ソギ原直人.
基幹理工学研究科 情報理工学専攻 後藤研究室 修士1年 魏 元
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
Microsoft PowerPoint98 Netscape Communicator 4.06[ja]
ML 演習 第 4 回 末永 幸平, 遠藤 侑介, 大山 恵弘 2005/06/21.
コンピュータプラクティス I コンピュータプラクティスⅠ 校正 水野嘉明 校正.
型付きアセンブリ言語を用いた安全なカーネル拡張
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第2回 ファイル処理 情報・知能工学系 山本一公
0からわかるF# Part1 中 博俊 F# September 2008 CTP Base.
0からわかるF# Part1 中 博俊 F# September 2008 CTP Base.
4人版リバーシYoninの解析 情報論理研究室 藤本 侑花
高度情報演習1A “テーマC” 実践 画像処理プログラミング 第六回 最終課題 画像処理による動物体自動抽出、モーションキャプチャ
A Provably Sound TAL for Back-end Optimization について
デジタル画像とC言語.
Netscape Communicator Eudora Microsoft Word
地域情報学 C言語プログラミング 第1回 導入、変数、型変換、printf関数 2016年11月11日
★C++/オブジェクト指向実践企画★ Othelloゲーム作成
プログラミング演習I 2003年7月2日(第11回) 木村巌.
コンピュータ・ネットワーク工学科 後藤 滋樹
応用プロジェクト後半 第5回 (1/5) 担当:奥田・橋本
リバーシ 06a1056 藤田将義.
2008/7/16(情報コース)2008/7/22(通信コース) 住井
プログラム分散化のための アスペクト指向言語
第28回世界コンピュータ将棋選手権アピール文章 作成:井本 康宏 作成日:2018/3/吉日
情報処理基礎 2006年 6月 29日.
~sumii/class/proenb2010/ml5/
情報工学科 3年生対象 専門科目 システムプログラミング 第3回 makeコマンド 動的リンクライブラリ 情報工学科 篠埜 功.
情報工学科 3年生対象 専門科目 システムプログラミング 第3回 makeコマンド 動的リンクライブラリ 情報工学科 篠埜 功.
応用プロジェクト後半 第5回 (12/17) 担当:奥田教授
プログラミング演習II 2003年12月10日(第7回) 木村巌.
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
第1章 文字の表示と計算 printfと演算子をやります.
Presentation transcript:

ML 演習 第 8 回 2007/07/17 飯塚 大輔, 後藤 哲志, 前田 俊行 http://www.yl.is.s.u-tokyo.ac.jp/~sgotou/lecture/caml-enshu

今回の内容 配列 最終課題 リバーシ リバーシ大会

配列の作成 # let a1 = [|1; 2; 3|];; val a1 : int array = [|1; 2; 3|] # Array.make 5 0;; - : int array = [|0; 0; 0; 0; 0|] # Array.init 5 (fun i -> i + 1);; - : int array = [|1; 2; 3; 4; 5|] # let a2 = Array.make_matrix 2 3 0;; val a2 : int array array = [|[|0; 0; 0|]; [|0; 0; 0|]|]

配列の参照・代入 # let a1 = [|1; 2; 3|];; val a1 : int array = [|1; 2; 3|] # a1.(0);; (* 参照 *) - : int = 1 # let a2 = Array.make_matrix 2 3 0;; # a2.(1).(2);; - : int = 0 # a2.(1).(2) <- 3;; (* 代入 *) - : unit = () # a2.(1).(2);; - : int = 3

その他の配列操作 モジュール Array に以下のような関数あり 結合、部分列抽出、コピー 新規配列を返す (いちいちメモリを確保する) ので遅い 配列とリストの間の変換 iter, map, fold などなど 詳しくはマニュアル参照 http://caml.inria.fr/pub/docs/manual-ocaml/ manual034.html など

最終課題 リバーシの (強い) 思考ルーチンを書け 多くの研究があるので調べて下さい 探索手法 min-max法, α-β法, negamax 法, etc… 評価関数のチューニング 機械学習, etc… その他 定石, etc…

こちらから提供するコード reversi.mli : 盤面抽象データのシグネチャ rvclient.ml, mli : 通信クライアントモジュール Reversi モジュールを使用 rvserver.ml, mli : 審判サーバ mak.ml : サンプル思考ルーチン Reversi, Rvclient を使用

課題 (必須) [締切: 8月31日] reversi.mli に従って Reversiモジュールの実装 (reversi.ml) を作れ 石が置けるかどうかチェックしたり 石をひっくり返したりする関数を書いてください 作らないとサンプルもサーバも動きません 注: 課題提出時のメールの Subject は Report 8 710xx などとすること

課題 (必須) [締切: 9月21日] リバーシの思考ルーチンを作れ 基本的には Reversi モジュールや Rvclient モジュールを使って実装するのが良い 効率を追い求める or イバラの道を行きたい人は これらのモジュールを使わずに実装しても良い 審判との通信プロトコルは守ること プロトコルは rvclient.ml のコメントを参照 プログラムの実行方法は Rvclient を使った場合と 互換させること 注: 課題提出時のメールの Subject は Report 9 710xx などとすること

リバーシ大会 提出された思考ルーチン同士で対戦 10 月上旬開催予定

大会ルール (仮) 1 ゲーム 4 セット 勝ったセット数の多い方が勝者 1, 2 セット目: 早指し勝負 3, 4 セット目: 読み勝負 持ち時間: 1 セット 30 秒 (一手 30 秒ではないので注意) 1 セットごとに先手後手交代 3, 4 セット目: 読み勝負 持ち時間: 1 セット 300 秒 (一手 300 秒ではないので注意) 勝ったセット数の多い方が勝者 勝敗同数の場合は石差 それでも決まらないときは, そのときに考える

大会ルール (仮) 実行環境は csc クラスタ 1 ルーチンにつき 1 台で対戦 外部ファイルは 10 MB まで 定石テーブルなどに利用可 その他のルールは標準的なリバーシの ルールを準用 盤面サイズ 8×8 初期盤面も標準的な配置

大会ルール (仮) ソースは全て O'Caml で書くこと 一部を C で書いてラッパーをかぶせて 使ったりするのは禁止 外部ネットワークへの接続は禁止 あまり怪しいこと いんちきなどはしない 審判サーバに対するアタック, etc…

レポート提出上の注意 (1/2) .zip または .tar.gz で固めたものを メールに添付して提出 アーカイブの内容 自分の学生証番号名のディレクトリを作って その中に以下のファイルを入れたものを圧縮すること report.txt or report.pdf テキストか pdf のレポート Makefile makeするとアカウント名の実行ファイルを生成 ソースファイル 使用する外部ファイル

レポート提出上の注意 (2/2) 例えば学生証番号 01021 の人なら 01021 というディレクトリを作り その中に以下のファイルを入れて report.txt (or report.pdf) Makefile ソース 外部ファイル その中で make を実行すると 01021 という 実行ファイルができるようにしておき 01021 というディレクトリごと圧縮する tar czvf report8.tar.gz 01021