タグ

アルゴリズムに関するWindblume2007のブックマーク (35)

  • 全文検索を実装したソースコードを読もう (1/4)- @IT

    第6回 全文検索を実装したソースコードを読もう 倉貫 義人 松村 章弘 TIS株式会社 SonicGarden 2009/9/3 優れたプログラマはコードを書くのと同じくらい、コードを読みこなせなくてはならない。優れたコードを読むことで、自身のスキルも上達するのだ(編集部) いよいよオープンソースの社内SNS「SKIP」を使ったコードリーディングも最終回となりました。Railsの基的な構成から、テストコードやRSpecの書き方といった内容に加え、前回はOpenIDをRailsで活用する応用編まで、コードとともに学んできました。 最終回となる今回は、SKIPの目玉機能の1つである全文検索を扱います。最終回にふさわしく、内容も高度なものになっていますが、ここまでおつきあいいただいた読者の皆さまであれば、十分に理解できる内容だと思います。 SKIPにおける全文検索機能では、任意の検索キーワード

  • Web上の膨大な画像に基づく自動画像補完技術の威力 - A Successful Failure

    画像内に映り込んだ所望のオブジェクトを排除し、違和感の無い画像を生成するシーン補完技術に関しては近年複数の研究成果が発表されている。しかし中でも2007年のSIGGRAPHにて米カーネギメロン大のJames HaysとAlexei A. Efrosが発表した手法*1はブレークスルーとなりうる画期的なものだ。 論より証拠、早速適用例を見てみよう。エントリで利用する画像はPresentationからの引用である。元画像の中から邪魔なオブジェクト等の隠蔽すべき領域を指定すると、その領域が補完された画像が自動的に生成される。 アルゴリズム 効果は抜群だがアイデア自体は単純なものだ。Web上には莫大な数量の画像がアップされており、今や対象となる画像の類似画像を一瞬にして大量に検索することができる。そこで、検索された類似画像で隠蔽領域を完全に置き換えてしまうことで違和感の無い補完画像を生成するのだ。

    Web上の膨大な画像に基づく自動画像補完技術の威力 - A Successful Failure
  • 【インフォシーク】Infoseek : 楽天が運営するポータルサイト

    日頃より楽天のサービスをご利用いただきましてありがとうございます。 サービスをご利用いただいておりますところ大変申し訳ございませんが、現在、緊急メンテナンスを行わせていただいております。 お客様には、緊急のメンテナンスにより、ご迷惑をおかけしており、誠に申し訳ございません。 メンテナンスが終了次第、サービスを復旧いたしますので、 今しばらくお待ちいただけますよう、お願い申し上げます。

  • 画像の特徴点を抽出する- 無作為研究所

    画像から特徴点を抽出する処理は、画像処理分野で広く行われており、 この技術は、パノラマ写真の合成・ステレオ写真からの距離測定・パターンマッチングなどに応用できます。 ここでは、個人的な興味により、工業分野(生産装置の高精度位置決め制御) で使うパターンマッチングに利用できるような特徴点抽出を考えていくことにします。 コーナー・角とは、どのようなモノか? コーナーや角とは、一体、どのようなモノなのでしょうか?また、それらは、画像中でどんな特徴を示すのでしょうか? これを諸先生方の文章から探してみると、「ガウス曲面」などの難し~い理論に行き着くようです。 当研究所では、高校数学以上の難しい理論には、書いている人がついていけませんので、何とか簡単に物事を進めます。 画像を数ドットx数ドットの小さな窓から観察してみると、コーナーには、以下のような特徴が観察できるハズです。 中央付近に、エッジ(明

  • asahi.com(朝日新聞社):でるかコンピューター名人 囲碁に確率重視の「モンテカルロ法」 - 囲碁

    人間に勝つのは、はるか未来の話と思われてきたコンピューター囲碁の世界が、画期的なプログラムの登場で大変革期を迎えている。確率(勝率)を重視した「モンテカルロ法」の採用で棋力が急上昇。「将棋よりも先に、囲碁の名人がコンピューターに敗れるかも」と大胆な予想をするプログラマーもいる。 ●すでに「アマ三段以上」  06年にイタリアで開催されたコンピューター・オリンピアードで、モンテカルロ法を使ったフランスのプログラム「CrazyStone」が優勝(9路盤部門)し、コンピューター囲碁界に衝撃を与えた。19路盤でも「世界最強」の呼び声は高く、東京で開かれているコンピューター大会UEC杯で、07、08年に連続優勝。昨年は青葉かおり四段に7子局で完勝し、解説にあたった鄭銘●(●は王へんに皇)九段は「アマ三段以上はあるかも」と絶賛した。  従来のプログラムは「一間トビ」「ケイマ」などの「知識」を大量に覚えさ

  • 強化学習で迷路の最短経路を見つける - Javaでゲーム作りますが何か?

    強化学習というアルゴリズムを用いて迷路の最短経路を学習するプログラムを作ってみます。迷路を抜ける方法は右手法とかいろいろありますが、ここではあえて学習を用います。 強化学習は試行錯誤と報酬から学習するアルゴリズムです。ゴール地点には報酬が置いてあるとしましょう。例えば、骨付き肉とか(笑)スライムは骨付き肉が大好物で迷路の中をあっちへ行ったりこっちへ行ったり試行錯誤してゴールを探します。ゴールへつくと今まで通ってきた場所を学習し、次からはより早く迷路をぬけて報酬(骨付き肉)をゲットできます。これを何回も何回も繰り返して訓練するといずれ最短経路(最も早く骨付き肉へいたる道)を学習できるという仕組みです。 maze_learning.jar 操作法 † 真ん中がメインパネルです。迷路とスライムが描かれています。左上の黄色い地点はスタートで右下の黄色い地点はゴールです。スライムの目的はスタートから

  • お手軽に強い将棋プログラムを作る10の方法 - aki.の日記 (2009-02-19)

    来年も作りたい!ふきのとう料理を満喫した 2024年春の記録 春は自炊が楽しい季節 1年の中で最も自炊が楽しい季節は春だと思う。スーパーの棚にやわらかな色合いの野菜が並ぶと自然とこころが弾む。 中でもときめくのは山菜だ。早いと2月下旬ごろから並び始めるそれは、タラの芽、ふきのとうと続き、桜の頃にはうるい、ウド、こ…

    お手軽に強い将棋プログラムを作る10の方法 - aki.の日記 (2009-02-19)
  • お手軽に強い将棋プログラムを作る10の方法 - 小宮日記

    http://d.hatena.ne.jp/ak11/20090219#p1 akiさんがBlunder開発で培ったノウハウを10個にまとめて紹介 2. 計測重要 正確さと速度のトレードオフになったりするケースが凄く多いので、 最適化で言われるように、予想通りに行かない事も多いです。このへんが自分は苦手。お手軽にはできない(^^; 例えば、PVS・AspirationSearch・再帰的反復深化が3桁以下の間に、 評価関数や指し手生成は6桁以上、手の適用は7桁以上、なんて具合に、 言葉通り回数の桁が違う事が多いため、どこに力を入れるのか、どこの無駄を省くのかが重要で、 それも相まって予想通りの挙動を示さない事が多いです。 これはありますよね。 探索でも、圧倒的に静止探索>通常探索の動く割合になるんですよ。当然ですけど。 ってわけで、misakiの通常探索は手の深さをfloatで持っていて、

    お手軽に強い将棋プログラムを作る10の方法 - 小宮日記
  • TD学習にも手を出したい - 小宮日記

    ってことで論文をメモしておきます googleスカラーで検索 http://scholar.google.com/scholar?hl=ja&lr=&q=td学習+将棋&btnG=検索&lr= TD(λ)-MC 法を用いた評価関数の強化学習 http://shouchan.ei.tuat.ac.jp/wiki/index.php?plugin=attach&pcmd=open&file=osaki0711TDMC-GPW).pdf&refer=lab/papers/depot TD 法を用いた局面評価関数の性能評価 http://www-als.ics.nitech.ac.jp/paper/H18-B/inagaki.pdf モンテカルロシミュレーションを用いた強化学習法の提案 http://shouchan.ei.tuat.ac.jp/wiki/index.php?plugin=atta

    TD学習にも手を出したい - 小宮日記
  • [Think IT] 第2回:ニューラルネットワークの構造を知る! (1/3)

    【ネットワーク教習所】 ニューラルネットワークの可能性 第2回:ニューラルネットワークの構造を知る! 著者:名古屋工業大学大学院工学研究科 岩田 彰 公開日:2008/03/12(水) ニューラルネットワークとニューロンモデル ニューラルネットワークは脳の神経回路網における計算方式と同じ方式をコンピュータで行おうとするものである。ニューラルネットワークの特徴は、学習と並列処理であるが、学習とはあらかじめ用意された学習データに基づいて、ある入力が入るとその入力に対応する出力が得られるようにネットワークの結合係数の値を学習することである。文字認識であれば、手書きの「あ」という文字パターンを入力すると、文字コードの「あ」が出力されるということだ。 ネットワークの結合係数を決定するため、どのように学習するかという学習方式があれば、学習データを与えるだけで学習してくれるので手軽にパターン認識機械を作

  • C、C++、java、fortran、VB等のプログラミング言語で書かれたシステムトレードプログラムのソースコードを公開しているサイトまたは書籍をご存知でしたらご教授…

    C、C++java、fortran、VB等のプログラミング言語で書かれたシステムトレードプログラムのソースコードを公開しているサイトまたは書籍をご存知でしたらご教授ください。外国語のサイト・書籍でも大丈夫です。パラメータが明記されていなくても、関数だけでも、株、為替、先物、等なんでも結構です。どうぞよろしくお願いいたします。

  • ボナ4のソースを読んで書き込むスレ

    1 :名無し名人:2009/01/29(木) 20:52:18 ID:IXlCUAkz とりあえず作った。 ソースを読んでわかったこと、疑問に思ったことをチラシの裏のように書いてくれ 2 :名無し名人:2009/01/29(木) 20:53:25 ID:IXlCUAkz ソースのダウンロードはこちらから http://www.geocities.jp/bonanza_shogi/ ただし、かなりの忍耐が必要 3 :名無し名人:2009/01/29(木) 20:56:56 ID:IXlCUAkz 思考ルーチンのソースは src 以下にある ヘッダファイルは以下の3つだけ bitop.h ビットマップ演算マクロを定義 param.h 各駒の点数を定義 shogi.h 思考ルーチンの各種関数、タイプ宣言 4 :名無し名人:2009/01/29(木) 21:04:42 ID:IXlCUAkz 盤面

  • Bonanza Version 4.0.3 公開 - ym将棋

    かずさんからの連絡で、早速ダウンロードしました。 …これ、ソース全部公開されてますよね。。予想以上の衝撃、感謝、感激です。 学習をやっておられる方はもちろん、そうでない方も探索とかの処理はとても参考になるのでは。 …C言語勉強しよう。 いずれにしても、保木さんご自身が「crypticな部分がある」と仰っておられるくらいですから、「解読(decrypt)」にはかなり時間がかかりそうです。 私にとっては来年の選手権に向けての取り組みですね。今年の5月に向けて取り組んだら、たぶん消化不良を起こしてしまう気がするので。 以下、bonanza.txtより。 I admit that some parts of the source code is cryptic, e.g. codes in "mate1ply.c". I hope that I will have some time to mak

    Bonanza Version 4.0.3 公開 - ym将棋
  • 考え方だけ借用 - ym将棋

    前のエントリの話、つづく。 証明数/反証数の考え方を借用しますが、とはいっても詰将棋とは違い、詰む詰まないを判定するのは主目的ではないので、 「詰みそうなノードには、多めにplayoutを割り当てる」 という基方針でいこうと思います。 あるノードの子ノードに全て勝ちフラグが立っていれば、そのノードは負けノードになるので、子ノードの中に勝ちノードを見つけたら、親ノードに「playoutをもっとくれ」という情報を渡します。 親ノードはそれを見て、さらに親にも情報を伝えると同時に、UCB値にボーナスを与え、playoutを多めに割り当てるようにします。 また、残りの(勝ちノードであることを証明しなければならない)ノード数に応じて、playout数の割り当てを変化させるようにします。 (残りのノードがたくさんあるなら優先度は低く、もう少しで証明が終わるなら優先度を高く) 頭の中では設計は固まって

    考え方だけ借用 - ym将棋
  • どうやらバグがあったらしい - ym将棋

    確定勝利優先アルゴリズム(長いです。。いい略語ないですか?)を入れて「5手詰めが解けた」と喜んでいたんですが、他の問題を解かせてみると、解けないはずの9手詰めまで詰みを返してきました。 調べてみると、勝ちフラグを立てる処理が間違っていて、当は(あるノードの)直下のノードで詰みを発見した場合に勝ちフラグを立てるんですが、「直下のノードで」という条件が抜けていて、そこから何十手先で詰みを見つけてもフラグが立つことになってました。。 昨日の結果は偶然だったみたいで、正しく直したら30,000playoutでも解けませんでした。 原因は分かっていて、5手詰めだと、リーフノードで見つけた勝ちフラグが、親ノードへ伝播していかないんですね。 勝ちフラグを親に伝播させるためには、兄弟ノード全部に勝ちフラグが立つ必要がありますが、深さ5となると、それを満たすだけのplayoutが割り当てられないわけです。

    どうやらバグがあったらしい - ym将棋
  • ちょっと修正 - ym将棋

    確定勝利優先アルゴリズムの実装をちょっと修正しました。 昨日の実装では、指し手選択の時、「負けフラグが立っている手は選ばない」ようにしていました。 指しても必ず負けと分かっているので、調べる意味がないからですが、 よく考えたら、勝ちフラグが立っている手も調べなくていいことに気が付きました。。 当たり前の処理ですが、これを入れたら5手詰めも見つけてくれました。 具体的にはこんな問題です。 後手の持駒:飛 角 金二 桂 歩四 9 8 7 6 5 4 3 2 1 + v香 ・ ・ ・ ・ ・ ・v桂v香 一 ・ ・ ・ 銀 ・ 銀 ・v角 ・ 二 ・ ・ 全 ・ ・v歩 ・v歩v歩 三 ・ ・ ・ ・ 桂v玉v歩 ・ ・ 四 v歩 ・ ・ ・v飛 ・ ・ 歩 ・ 五 ・ ・v歩 ・v歩 ・ 歩 ・ 歩 六 歩 歩 ・ 玉 ・ 歩 ・ ・ ・ 七 ・ 銀 ・ ・ ・ ・ ・ ・ ・ 八 香 桂 ・

    ちょっと修正 - ym将棋
  • Loading...

  • 100年インタビュー「羽生善治」(NHK) コンピュータ将棋を語る - 小宮日記

    羽生)(コンピュータは)ここ数年伸び悩んでいたんですよ アマチュア高段程度で ここ数年壁を突破して実力が上がった感じがしますね 羽生)コンピュータの基的な考え方は手をたくさん読んでいく より正確性をあげていく 人間の場合、将棋の実力が上がるほど読む数が減っていく 先ほどの大山さんの話ですが、 羽生)(コンピュータと人間は)反対方向に行くって話はあるんです アナ)どの点に関心をもたれています? 羽生)人間が指したのかコンピュータが指したのかは今は一目瞭然にわかります 感覚を教えることはできないじゃないですか 今は 将来は同じになるのか? (笑) 違和感をもったままになるのか? それはテーマです アナ)違う方向だけど最後は同じになる? 羽生)方向性は違うんですが、最後は指す手は同じになると考えています アナ)羽生さんコンピュータとは? やってみたいという気持ちは? 羽生)どういう将棋を指すの

    100年インタビュー「羽生善治」(NHK) コンピュータ将棋を語る - 小宮日記
  • コンピュータ将棋選手権使用可能ライブラリ

    世界コンピュータ将棋選手権 ライブラリ登録案内 世界コンピュータ将棋選手権では、「世界コンピュータ将棋選手権 新ライブラリ規程」に定める 「ライブラリ」のうち、所定の期日までに登録されたものをすべての参加者が自由に使用可能としております。 「ライブラリ」は、下記規程第6条に示す手順にて随時登録を受け付けております。幅広いライブラリの登録をお待ちしております。 申請先: csa_library@computer-shogi.org (担当:香山健太郎) (注1) 2016年5月開催の第26回世界コンピュータ将棋選手権では、2016年1月31日の時点で登録されているライブラリを使用可能としております。 その他、選手権でのライブラリ使用に関するルールは、「世界コンピュータ将棋選手権 大会ルール」をご参照ください。 なお、2016年1月31日までに登録されたライブラリの、 バグフィックス等のバージ

  • 半角スペースがある文字列の入力。(C 言語) - trial and error