タグ

algorithmに関するt_43zのブックマーク (35)

  • トップクラスだけが知る「このアルゴリズムがすごい」――「探索」基礎最速マスター

    トップクラスだけが知る「このアルゴリズムがすごい」――「探索」基礎最速マスター:最強最速アルゴリズマー養成講座(1/4 ページ) プログラミングにおける重要な概念である「探索」を最速でマスターするために、今回は少し応用となる探索手法などを紹介しながら、その実践力を育成します。問題をグラフとして表現し、効率よく探索する方法をぜひ日常に生かしてみましょう。 まだまだ活用可能な探索 前回の「知れば天国、知らねば地獄――『探索』虎の巻」で、「探索」という概念の基礎について紹介しました。すでに探索についてよく理解している方には物足りなかったかと思いますが、「問題をグラフとしてうまく表現し、そのグラフを効率よく探索する」というアルゴリズマー的な思考法がまだ身についていなかった方には、得るものもあったのではないでしょうか。 前回は、「幅優先探索」と「深さ優先探索」という、比較的単純なものを紹介しましたが

    トップクラスだけが知る「このアルゴリズムがすごい」――「探索」基礎最速マスター
  • 1/1000の圧縮率を目指す次世代動画像圧縮技術の行方 - A Successful Failure

    現在最高の圧縮効率を誇るAVC/H.264は1GbpsのフルHDTVを10Mbps以下に圧縮できる。1/100以上の圧縮率ということになるが、次世代beyond HDTVの8k4kの空間解像度、60〜300fpsの時間解像度、マルチスペクトルの色表現、10〜16bit/pelの画素値深度、複数視点を考えると情報量は16〜200Gbpsとなるため、ビットレートを100Mbpsまで許容したとしても、圧縮率をさらに10倍は引き上げる必要がある(1/1000以上)。 上記の要求に対し、短期的には従来のAVC/H.264で用いられている動き補償予測とDCTを組み合わせたMC+DCTの枠組みを維持し、改良を積み重ねて圧縮率向上を図るアプローチが取られるが、長期的には従来の枠組みに囚われない新たなブレークスルーが必要となる。エントリでは、情報処理6月号の解説*1より、画像圧縮技術のブレークスルーの萌芽

    1/1000の圧縮率を目指す次世代動画像圧縮技術の行方 - A Successful Failure
  • 転置インデックスを実装しよう - mixi engineer blog

    相対性理論のボーカルが頭から離れないmikioです。熱いわっふるの声に応えて今回はTokyo Cabinetのテーブルデータベースにおける検索機能の実装について語ってみたいと思います。とても長いのですが、最後まで読んだあかつきには、自分でも全文検索エンジンを作れると思っていただければ嬉しいです。 デモ モチベーションをあげていただくために、100行のソースコードで検索UIのデモを作ってみました。Java 6の日語文書を対象としているので、「stringbuffer」とか「コンパイル」とか「倍精度浮動小数」とかそれっぽい用語で検索してみてください。 インデックスがちゃんとできていれば、たった100行で某検索エンジン風味の検索機能をあなたのデータを対象にして動かすことができます。ソースコードはこちら(テンプレートはこちら)です。 でも、今回はUIの話ではないのです。ものすごく地味に、全文検索

    転置インデックスを実装しよう - mixi engineer blog
  • Web上の膨大な画像に基づく自動画像補完技術の威力 - A Successful Failure

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

    Web上の膨大な画像に基づく自動画像補完技術の威力 - A Successful Failure
    t_43z
    t_43z 2009/06/30
    すげえ
  • RDBMSで使われるB木を学ぼう (1/3)- @IT

    第5回 RDBMSで使われるB木を学ぼう はやしつとむ アナハイムテクノロジー株式会社 2009/6/22 オブジェクト指向によって、アルゴリズムは隠ぺいされていることが多くなった。しかし、「用意されていない処理」が求められたときに対応できるだろうか(編集部) 第3回「AVL木で木構造を学ぼう」、第4回「もっとAVL木で木構造を学ぼう」と2回連続でAVL木について解説しました。 今回はAの後だからBというわけではありませんが、B木(B-Tree)を取り上げます。 B木の変種であるB+木やB*木は、OracleやPostgreSQL、Firebirdなどのリレーショナルデータベースでインデックスとして利用されている、メジャーな木構造です。 筆者はDelphi 2009でサンプルプログラムを作成していますが、Delphiをお持ちでない方は下記のURLからTurboDelphiをダウンロードして

  • 軽量データクラスタリングツールbayon - mixi engineer blog

    逆転検事を先日クリアして、久しぶりに逆転裁判1〜3をやり直そうか迷い中のfujisawaです。シンプルなデータクラスタリングツールを作成しましたので、そのご紹介をさせていただきます。 クラスタリングとは クラスタリングとは、対象のデータ集合中で似ているもの同士をまとめて、いくつかのグループにデータ集合を分割することです。データマイニングや統計分析などでよく利用され、データ集合の傾向を調べたいときなどに役に立ちます。 例えば下図の例ですと、当初はデータがゴチャゴチャと混ざっていてよく分からなかったのですが、クラスタリングすることで、実際は3つのグループのデータのみから構成されていることが分かります。 様々なクラスタリング手法がこれまでに提案されていますが、有名なところではK-means法などが挙げられます。ここでは詳細については触れませんが、クラスタリングについてより詳しく知りたい方は以下の

    軽量データクラスタリングツールbayon - mixi engineer blog
  • エブログ マルコフ連鎖で文章生成(JavaScript)

    マルコフ連鎖で文章生成(JavaScript) マルコフ連鎖による文章生成。マルコフ連鎖と言っていいのかあまり自信はないのだが、とりあえず文章を作ってはいる感じ。 テキストエリアに入力された文章を解析して、その中の単語を使って、自動生成します。文章生成ボタンを何度か押すと文章が変わっていくと思います。 意味不明であったり、そのままの文、同じ文が続けて出たりはしてしまいますが。 メロスは激怒した。必ず、かの邪智暴虐(じゃちぼうぎゃく)の王を除かなければならぬと決意した。メロスには政治がわからぬ。メロスは、村の牧人である。笛を吹き、羊と遊んで暮して来た。けれども邪悪に対しては、人一倍に敏感であった。きょう未明メロスは村を出発し、野を越え山越え、十里はなれた此(こ)のシラクスの市にやって来た。 ここに文章が作成されます。 posted by knit at 19:45 | Comment(9)

    エブログ マルコフ連鎖で文章生成(JavaScript)
  • GC - GCアルゴリズム詳細解説 - livedoor Wiki(ウィキ)

    GCアルゴリズム詳細解説 日語の資料がすくないGCアルゴリズムについて詳細に解説します トップページページ一覧メンバー編集 × GC 最終更新: author_nari 2010年03月14日(日) 20:47:11履歴 Tweet このWikiが目指す所 GCとは? GCを学ぶ前に知っておく事 実行時メモリ構造 基アルゴリズム編 Reference Counter Mark&Sweep Copying 応用アルゴリズム編 IncrementalGC 世代別GC スナップショット型GC LazySweep TwoFinger Lisp2 Partial Mark and Sweep -Cycle Collection- Mostly Parallel GC train gc MostlyCopyingGC(Bartlett 1989) TreadmillGC(Barker 1992)

    GC - GCアルゴリズム詳細解説 - livedoor Wiki(ウィキ)
  • mixi Engineers’ Blog » OpenSSLの暗号文をJava/Perl/Rubyで開く

    秘密鍵やプライベートな情報などを秘匿するためにパスワードでデータを暗号化・復号したい場合があります。このとき、暗号化と復号するアプリケーションが同じであれば簡単ですが、例えばCで暗号化してJavaPerlRubyで復号するといった風に異なるプラットフォームで暗号データをやりとりする場合には、いくつか気 をつけなければいけないポイントがあります。 OpenSSLによる暗号化 OpenSSLはWebサーバのSSL/TLSサポートに利用されますが、その他にも付属しているopensslコマンドから基的な暗号アルゴリズムを利用できます。次のような簡単なコマンドで、パスワードを使ってデータを暗号化したり復号したりすることができます: $ echo 'Hello World!' | openssl enc -e -aes-128-cbc > cipher.txt enter aes-128-cbc

    mixi Engineers’ Blog » OpenSSLの暗号文をJava/Perl/Rubyで開く
  • 第12回 対戦ゲームの戦略を考える

    あなたは魔法使い。もちろんプログラミングの腕もウィザード級です。そんなあなたがライバルと対決することになりました。マップ上にある「魔法の要素」をうまく集めてライバルを倒すプログラムを作成してください。今回は,相手を攻撃するアルゴリズムを組み込んでプログラムを完成させることにします。 前回に引き続き,プログラム同士を対戦させるゲームのアルゴリズムを考えます。前回は,目的地に向かってキャラクタを移動させる方法などを紹介しました。今回は,敵を攻撃するアルゴリズムを追加して,実際に対戦できるようにします。これまで連載で得た知識をフル動員して,アルゴリズムを考えましょう。 前回の連載をご覧になっていない人のために,ゲームのルールを簡単に説明しておきましょう。ゲームの内容は縦10×横20の盤面上にいる二人の魔法使いを対戦させるものです(図1)。魔法使いは,ターンごとに「移動する」「魔法を使う」「魔法

    第12回 対戦ゲームの戦略を考える
  • 第2部 アルゴリズム取引を牽引するカブロボ・コンテスト:ITpro

    コンピューターが自動的に銘柄を選択して売買注文を出し、確実に利益を上げる――。そんなロボットが欲しいと投資家なら誰でも夢見るだろう。こうした夢のような株ロボットが実現するかもしれない。アルゴリズム取引の技術向上と普及を目指す「カブロボ・コンテスト」も、そんな期待を抱かせる。 カブロボ・コンテストは、2004年に早稲田大学の研究プロジェクトとしてスタートしたコンピューター・プログラミング・コンテストである。カブロボというのは、銘柄選択から売買発注まで、一定の処理手順に従って株式を完全自動売買するソフトウエアのことだ。 「25日移動平均線を下回ったら売り」「移動平均線がゴールデンクロスしたら買い」などの売買ルールがあらかじめ組み込まれており、条件を満たす銘柄を自動的に抽出して売買注文を出す。コンテストは実際の株式市場の値動きを使って一定期間、このアルゴリズムに基づく仮想的な売買で運用成績を競う

    第2部 アルゴリズム取引を牽引するカブロボ・コンテスト:ITpro
  • データ圧縮法概説 目次

    最終更新日:2001年7月2日 第1章へ webmaster@snap-tck.com Copyleft (C) 2000 SNAP(Sugimoto Norio Art Production)

  • Algorithm Database

    無向グラフ スケジューリング 量子計算(グローバーのアルゴリズム) 最小カット 投票力指数 (CGI) チャネル割当問題 共有区間列挙問題(CGI) 2次元ボロノイ図構成 グラフエディタの作成(群馬大学 中野研究室) 辺連結度増大アルゴリズム 3次元凸包 グラフ分割問題 最大クリーク問題 巡回セールスマン問題 最短路問題 ハイパーグラフの極小横断 new!!誤差拡散法 (ブラウザの設定で "Javaを有効" にして下さい。)

  • 第11回 プログラム同士の対戦ゲーム

    あなたは魔法使い。もちろんプログラミングの腕もウィザード級です。そんなあなたがライバルと対決することになりました。マップ上にある「魔法の要素」をうまく集めてライバルを倒すプログラムを作成してください。今回は,カコミ記事「ゲームのルール」に従って移動ができるまでとします。 キャラクタを移動させるアルゴリズム アルゴリズムを作っていて一番うれしいと感じるのは,「自分で作ったアルゴリズムが動くところを見る」ときではないでしょうか? 日IBM主催で大会が開かれた「Robocode」がその代表的なものでしょう。Javaで仮想的なロボットを制御するアルゴリズムを記述し,対戦させるゲームです。アルゴリズムを組み立てたら,さっそくその内容を試せますし,アルゴリズムが悪ければゲームに負けてしまいます。こうして楽しみながらトライ&エラーでアルゴリズムを組み立てられるところから,新人研修などで最近よく使われて

    第11回 プログラム同士の対戦ゲーム
  • 第10回 麻雀の役を判定する:ITpro

    図1に示す(1)から(3)までの麻雀(マージャン)の手牌があります。「あがり牌」はすべて山からツモったものとし,リーチはかけていません。またドラやハイテイ*1なども関係ないものとします。これらの役を判定して,親の場合の点数を計算するプログラムを作ってください。 「ややこしや~ややこしや~」というのは野村萬斎ですが,思わずそううなってしまうことがプログラミングをしているとよくあります。今回の麻雀の役判定は,考えれば考えていくほどややこしく,そうしたものの代表と言えるでしょう。排他処理や優先順位が複雑にからんでいて一筋縄ではいきません。 今回はややこしい組み合わせを解決する方法を考えてみます。麻雀になじみのない方も,ちょっとしたパズル気分で試してみてください。 麻雀の役を考える 麻雀を知らない方のためにルールをおおざっぱに説明しておきましょう*2。麻雀の牌には,大きく分けて「萬子(マンズ)」「

    第10回 麻雀の役を判定する:ITpro