What is MCTS? Monte Carlo Tree Search (MCTS) is a method for making optimal decisions in artificial intelligence (AI) problems, typically move planning in combinatorial games. It combines the generality of random simulation with the precision of tree search. Research interest in MCTS has risen sharply due to its spectacular success with computer Go and potential application to a number of other di
頭出し ある半径Rの円内に一様分布する乱数を生成する時には注意しないといけないことがありますよというお話。所謂「一度はやってしまうミス」系でもある。この手の話は円に限ったわけではなく、円の高次元版である球、あるいは超球(次元>3)、あるいは任意の座標変換をかませてそこにヤコビアンが出て来るときでも同じ。 使うライブラリは以下の2つ。なければinstall.packages関数でインストールしておく。 library(ggplot2) library(dplyr) また、以下のように定数を2つ定義しておく。意味はコメントにある通りだ。 #サンプル数 N <- 10^4 #半径のサイズ R <- 4 本題 さて、問題のある半径Rの円内に一様分布する乱数を生成するにはどうしたらいいのかというと、非常に単純に考えた場合、以下のように(俺は)思考する。 X方向の成分として[-R, R]の間の一様乱数
迷路自動生成アルゴリズム プログラムによる迷路の自動生成の解説ページです。 どちらかというと大きな迷路を生成する事に興味があり、ゲームソフトで使われる迷路とは観点が異なっています。 下記のソフトをダウンロードして実行すると、棒倒し法と穴掘り法と壁延ばし法の実際の迷路の生成動作を見ることができます。 ダウンロード(Windows用ソフト) 249Kバイト 1.はじめに 自動生成迷路はの基本形は方形座標上で、各マスが壁または道から成り立っています。 このデータはプログラム上も2次元配列で簡単に作れ、各マスが壁か道かだけを覚えていればいいので、表現も簡単です。 またこれを画面に反映する際も、道や壁を適当なアイコンに置き換えればいいので、比較的簡単にゲームに使えます。 道の幅は通常1マスです。 2.棒倒し法 棒倒し法は、比較的プログラミングの楽な迷路生成法です。 最初に基本となる四角の外壁と、その
Japanese / English はじめに クラスタリングとは アルゴリズム 迷路作成アルゴリズム 迷路作成例 Rubyによるサンプルコード はじめに クラスタリングアルゴリズムにより、解くと絵が浮かび上がる 迷路を作成する方法を紹介する。 注意:ここで言う「クラスタリング」は同値関係をつなぐもので、 データ解析で良くでてくるクラスタリング、つまり情報空間上に散らばっているデータ点を 適当に似ているもの(近いもの)同士で分類する手法ではありません。 クラスタリングとは ウェブのリンク情報や、mixiの友人関係など、ネットワークの性質を 知りたいことがよくある。このとき、ネットワークの性質として このネットワークにおいて任意に選んだ要素Aと要素Bはつながっているか? このネットワークは全体がつながっているか? つながっていないとしたらいくつのグループに分かれるか? 要素数最大のグループは
46 5 2005 5 564 n 1 4 4 -1 5 n data data DumbTree = Empty | Fork DumbTree DumbTree data DumbTree Empty ( ) 2 DumbTree Fork nobsun@sampou.org IPSJ Magazine Vol.46 No.5 May 2005 565 DumbTree ( ) Empty Fork ( ) -- trees (>0)DumbTree trees :: Int -> [DumbTree] trees 1 = [Empty] trees n = concat [ joins ls rs | (ls,rs) <- [ lrs xs ys | (xs,ys) <- splits1 n ]] -- splits1 (>0)(>0)2 splits1 :: Int -> [(In
ほとんどの開発者は、自動のガベージコレクション(GC)を当たり前のように使っています。これは、私たちの仕事を容易にするために言語ランタイムが提供する素晴らしい機能の1つです。 しかし、最新のガベージコレクタの中をのぞいてみれば、実際の仕組みは非常に理解しづらいことが分かります。実装の詳細が無数にあるため、それが何をしようとしているのか、また、それがとんでもなく間違った事態を引き起こしかねないことについて十分理解していない限り、すっかり混乱してしまうでしょう。 そこで、5種類のガベージコレクションアルゴリズムを持つおもちゃを作ってみました。小さいアニメーションはランタイムの動作から作成しました。もっと大きいアニメーションとそれを作成するコードは github.com/kenfox/gc-viz で見ることができます。単純なアニメーションによってこうした重要なアルゴリズムを明らかにできることは
Lighting and reflection calculations, as in the video game OpenArena, use the fast inverse square root code to compute angles of incidence and reflection. Fast inverse square root, sometimes referred to as Fast InvSqrt() or by the hexadecimal constant 0x5F3759DF, is an algorithm that estimates , the reciprocal (or multiplicative inverse) of the square root of a 32-bit floating-point number in IEEE
こんにちは。技術部検索グループの原島です。 上の画像は、スマートフォン(ブラウザ版)で見たクックパッドの検索結果ページです。レシピだけでなく、ニュースも表示されていますね。献立や掲示板のスレッドなどが表示されることもあります。 クックパッドでは、検索結果ページに表示するコンテンツをクエリなどに応じて最適化しています。最適化は、膨大なログデータと最新の機械学習を用いることで、実現しています。このエントリでは、クックパッドにおけるコンテンツ最適化の裏側を紹介します。 最適化の背景 スマートフォンの普及に伴って、ユーザが利用するプラットフォームは PC からモバイルにシフトしつつあります。クックパッドにおけるモバイル利用者の割合も、ここ 2 年で 10% 以上増加しました。最近では、60% 以上のユーザがモバイルからアクセスしています。 ユーザの利用形態が変化すれば、検索結果ページもその変化に対
(この本文は約 13,000 文字もあります) 第25回高専プロコン(一関大会)と同時開催された,第6回 NAPROCK 国際プロコンの競技部門に東京大学チームとして ioryz, mfumi2 と参加し,champion を頂きました.以下,自分たちが作成したプログラムについての解説記事になります. ソースコードは https://github.com/natrium11321/procon2014_ut に公開しています. 目次 NAPROCK とは 競技ルール 開発環境 基本的なアプローチ ジグソーパズル スライドパズル 高速化 システム readable, sustainable なコード まとめ(現役生に言いたいこと) NAPROCK とは 高専プロコンと NAPROCK を混同している人が多いので一応解説します.NAPROCK は 高専プロコンと同一のルールで同時開催されるもの
こんにちは、部長の唐澤です。 2014年10月18日から19日に岩手県一関で開催された全国高等専門学校プログラミングコンテストにチーム「人力の神話」として情研から唐澤・中田・立川が参加してきました。 高専プロコンとは、その名の通り全国の高専生によるプログラミングで何かを行うコンテストです。 コンテストは競技・課題・自由部門に別れ、競技部門では与えられた問題に回答するプログラムを数ヶ月かけて実装し、それを用いて他の高専と対戦します。 我々はこれに参加し決勝戦まで進出することが出来ました。 本日は問題の概要と我々の解法を紹介したいと思います。 問題概要 初めにある画像がサーバより与えられます。 この画像は基本的に風景画なのですが、縦横最大16に均等分割された小画像をランダムに並び替えた画像で構成されています。 この画像をいくつかの操作によって元の画像に戻すというのが今回の課題なのですが、まずは
世界の中高生らが科学の実力を競う国際科学オリンピックが、理数系の人材を発掘、育成する大会として注目されている。 数学、物理、情報など7分野別に日本代表を選抜する国内大会の参加者は昨年度、計1万6000人を超えた。科学技術立国の将来を担う若者たちを追う。 コンピューター専攻の大学生でも難解 7月中旬、台湾・台北市で開かれた国際情報五輪。100台以上のパソコンが並ぶ会場で、日本代表の私立開成中3年、高谷悠太君(15)が、他国代表の中高生らとともに画面に向かった。 台湾の幹線道路沿いに並ぶn個の都市をd日間で巡る場合、各都市の観光名所を最も効率よく訪れるコースを見つけるプログラムを作成せよ――。 1日5時間の制限時間内に、こうした問題を3問解く。コンピューターが効率的に正しい答えを導き出せるプログラムになっているかがポイントだ。パソコンから解答を送信すると、即座に採点され、結果は画面で確認できる
非負の距離(重み)を持つ無向の木について,最も遠い頂点間の距離(最遠頂点間距離)を木の直径という.この直径を求めるアルゴリズムは意外と簡単だが,参考サイトの証明ではすっきりできなかったので,自分なりに証明を考えてみる. 参考サイト:http://www.prefield.com/algorithm/graph/tree_diameter.html <アルゴリズムの説明> 適当な頂点sを選び,sからの最遠頂点uを探索する.次にuからの最遠頂点vを探索する.このとき,(u,v)は木の最遠頂点対となっており,木の直径はuとvの距離と等しい. <自分なりの証明> uが少なくとも一つの最遠頂点対に含まれることを証明する.基本的な方針は参考サイトと同じ.サイトで理解できなかったところを自分なりに考える. s:任意の頂点 u:sからの最遠頂点 (x,y):とある最遠頂点対 t:sからuに向かう経路でuと
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く