2013-01-01から1年間の記事一覧

TopCoder Marathon Match 82 参加レポ 開催期間: 12/8くらい?~12/20 問題概要 N*Nのグリッドとpenaltyが与えられる。 各マスは0~4の色で塗られているか、塗られていないかである。これに塗り足して(あるマスを複数の色で塗ることが許される)、どの色もつ…

Manueの牌譜添削 偉そうに添削とかします。画像添えてある版が下の方にあります 牌譜URL: http://gimite.net/mjai/samples/manue011.tonnan/2013-11-26-143619.mjson.html東1−0ー39 9m まあ9mのほうが効率いいよね? 東1−0−55 9m どうみても …

[麻雀]新Manue mjai-manueの新バージョンが開発されているらしい。そして既に旧manueやsilicaより有意に強いらしい。 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)…

対リーチ押し引き判断(超適当Ver.)

silica(2013/4版)の押し引きは(基本的には)張ってたら押す、otherwise降りるという酷いものなので多少マシにする。 本当は真面目にやりたいし、先行研究もある(降りるべき局面の認識による1人麻雀プレイヤの4人麻雀への適用)が、僕は頭が悪いので以下のよ…

テーロス環境のコントロール考察

MTG

感覚だけど、新環境って(感覚だけど)コントロールは弱くてやりたくない。(黒単信心はコントロールとかそういうことは言わない) なんでかなーと思って前環境のデッキと比較してみることに。M14前のコントロールと言えばジャンド、トリコが王者だった気が…

天鳳の牌譜から学習しようと思って、やっぱスクリプト言語遅いなーやはりC++が最強かと思ってとりあえずC++で扱いやすいように変換した。 http://www3257ui.sakura.ne.jp/tenhou_paifu/ よく考えたら、SVM?とか使うならどうせC++バインディングとか使うわけ…

[OCaml]Ocsigen/Eliomに再挑戦 Ocsigen/EliomはOCaml製WebサーバまたはWebフレームワーク?まだ良く分かってない。このページを見ながら進めていこうと思う。 https://ocsigen.org/tutorial/tutowidgets インストール とりあえずopamでインストールする。んだ…

やっと一段落ついたので何かやっていきたい。忙しいとか言いながら、Topcoder Open の Marathon Match に初めて参加してた。 どんな問題だったかはここ http://topcoder.g.hatena.ne.jp/yowa/20130620/1371710714 を参照。 結果はまだ出ていないが、多分参加…

Haskell挫折

mjai用のAIをHaskellで書いていたが、挫折(でもないけど)したので、やっぱりrubyで行くことにした。 jsonをパースするコードとか結構面倒なので、Haskellで書きたい人がいた場合のために、一応ツモ切りAIを晒しておきます。 未テストのシャンテン計算も置…

mjai-silicaを修正した

mjai-silicaにはフリテンや役なしで和了しようとするという致命的なバグがあった。 長い間放置していたが、今回修正した。上記のバグは明らかに致命的だが、プログラムの強さを測定する際には大した影響はないと考えていた。しかし、今回の修正を行いmjai-ma…

テンパイ予測

麻雀の局面を受け取って、指定の相手がテンパイしているかを予測し、テンパイ/ノーテンを返せ。100000局面くらいでの正答率を競う。詳しい仕様は未定。 実装もまだ0。 想定解法は機械学習。 すごく適当なモデル化として、3~7を切ってる数、フーロ数とかでい…

一人麻雀

高橋くんは最強最速の麻雀AIを作るため、手始めに一人麻雀での和了速度を最強最速にすることにしました。しかし高橋くんは最近社長業に忙しいため、プログラミングの腕が立つと評判のあなたに頼んできました。*1関数を2つ実装し、以下の目的の通り最適化せよ…

[麻雀]【ゆる募】もっと高速にエンコード・デコードできて行き先も狭いハッシュ方法 今使ってるノートPCのL3 cacheが3072KBだった。つまり、3 * 10^6 byte。数牌の持ち方を5進数でエンコードすると、要素数5^9 = 約2 * 10^6で、メンツターツのとり方*2 = 各4…

シャンテン数計算

入力形式 1行目にテストケースの数Tが与えられる。 2行目からT+1行目までのT行、手牌が以下の形式で与えられる。 t_1 t_2 ... t_14 ただし、t_iは0以上33以下の整数で、0~8が1m~9m、9~17が1p~9p、18~27が1s~9s、28~33が東~中を表す。 出力形式 T行出力せよ。…

mjaiをプロコンっぽい入出力でやれるpythonスクリプト

標準入力から取って、標準出力に出すだけでよくなりました。 python2.7で動作確認。*1 こんな感じで起動します。 python mjai-stdio.py mjsonp://localhost:11600/default ./a.outa.outのソースコードは、こんな感じで書ける。 #include <iostream> #include <sstream> using na</sstream></iostream>…

やるべき?こと1

MjaiのGUIクライアント2号 現在作成中。コア部分は最低限できてるけど、まだ色々やるべきことがある 特に難しいところはない(ただしUIは難しい)、はず ロビーサーバ mjaiはポート番号と部屋名で1ゲーム立てられる。(すでに4人接続していると、room is busy…

シャンテン数アルゴリズムの高速化について

「シャンテン数や点数計算をする時間」 ここはどうしても高速化することになるし、重要なところ(個人的には、まだ時期尚早というか、他にやるべきことがあると考えているが)。最強のシャンテン数計算アルゴリズムなんてよくわからないので、今回考えるのは…

思ってること1

mjai-silicaはルールベースのAIだが、将来的に強い(天鳳八段レベルくらい)の麻雀AIを作る時は、ある程度探索に帰着することが必要だと思う。 打牌するとき、各打牌での平均順位(または、近似的にその局の平均収支)を求めるとき、シミュレーションというか…