タグ

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

  • AAAI'15 論文採択:Top-k 最短経路クエリとネットワーク構造予測への応用 - iwiwiの日記

    国際学会 AAAI 2015 に論文が採択されました.AAAI人工知能分野の最も有名な会議の 1 つです.発表は来年の 1 月にアメリカのオースティンです.AAAI への論文採択は 2 年連続となります. 今回の論文は "Efficient Top-k Shortest-path Distance Queries on Large Networks by Pruned Landmark Labeling" というタイトルで,研究室後輩の林くん,京大の則さん,研究室同期の岩田,NII の吉田さんとの共著です.内容は,グラフにおける Top-k 最短経路を高速に計算するためのスケーラブルなインデクシング技法の提案,及びそのネットワーク構造予測への応用です.特に,応用面のインパクトを示す試みを論文内に入れることができたのが大変気に入っています. 背景:ネットワーク上の 2 点間の関連度推定に

    AAAI'15 論文採択:Top-k 最短経路クエリとネットワーク構造予測への応用 - iwiwiの日記
  • 漸近計算量理論

    当サイトの一部ページには、アフィリエイト・アドセンス・アソシエイト・プロモーション広告を掲載しています。 Amazonのアソシエイトとして、Security Akademeiaは適格販売により収入を得ています。 広告配信等の詳細については、プライバシーポリシーページに掲載しています。 消費者庁が、2023年10月1日から施行する景品表示法の規制対象(通称:ステマ規制)にならないよう、配慮して記事を作成しています。もし問題のある表現がありましたら、問い合わせページよりご連絡ください。 参考:令和5年10月1日からステルスマーケティングは景品表示法違反となります。 | 消費者庁

    漸近計算量理論
  • もし女子大生プログラマに『アルゴリズム』を図解で教えるとしたら - paiza times

    2014年4月16日より2014年5月14日まで開催していたpaizaオンラインハッカソン(略してPOH![ポー!])Vol.2「女子大生とペアプロするだけの簡単なお仕事です!」で提出された最速コードはどのような高速化のアプローチでで生み出されたのでしょうか? POH Vol.2に登場した女子大生インターンプログラマの木野ちゃん(左のイラスト)にアルゴリズムを図解で教えるとしたら、どう教えるだろうか、という事で、今回は図解してみました。 今回は前回の最速コード発表レポート(【結果発表】女子大生プログラマの心を鷲掴みにした最強のコード8選)に引き続き、最速コードの裏側に迫ります。 ■高速化のアプローチ方法について 今回もPOH Vol.1 と同様に、POH Vol.2では計算量の改善による高速化を柱とするアプローチを想定して出題されました。基は定数倍高速化によって想定解法よりも悪い計算量の

    もし女子大生プログラマに『アルゴリズム』を図解で教えるとしたら - paiza times
  • いもす法 - いもす研 (imos laboratory)

    いもす法とは,累積和のアルゴリズムを多次元,多次数に拡張したものです.競技プログラミングでは 2 次元 1 次のものまでしか出題されませんが,2012 年の研究成果としてこれをより高次元の空間により高次数のいもす法を適用することにより信号処理分野・画像処理分野において利便性があることがわかっています. いもす法の基: 1 次元 0 次いもす法 最もシンプルな「いもす法」は 1 次元上に 0 次関数(矩形関数や階段関数などのように上部が平らな関数)を足すものです. 問題例 あなたは喫茶店を経営しています.あなたの喫茶店を訪れたそれぞれのお客さん i\ (0 \leq i \lt C) について入店時刻 S_i と出店時刻 E_i が与えられます(0 \leq S_i \lt E_i \leq T).同時刻にお店にいた客の数の最大値 M はいくつでしょうか.ただし,同時刻に出店と入店がある場

  • Bonanzaソース完全解析ブログ

    知っての通り、Bonanza6では、手駒の価値は駒割の値 + KPのP=手駒としての値の合計値となる。(実際にはKPPの一つ目のPと二つ目のPが等しいときのKPと、 KKPのP=手駒のほうとがあるが、細かい話は割愛する) さて、駒割の値というのは、盤上の駒と手駒をひっくるめて、歩 = 100点のように点数化してある。 KPのP=手駒というのは、「先手の持ち駒の歩が0枚」「先手の持ち駒の歩が1枚」「先手の持ち駒の歩が2枚」のような状態を一つの駒(P)とみなしてある。 1枚目の歩だけ価値が100点よりは少し高く120点の価値があるとしよう。そうすると「先手の持ち駒の歩が1枚」のKP値には20点がつくことになる。 2枚目の歩は逆に80点の価値しかないとしよう。そうすると「先手の持ち駒の歩が2枚」の価値は-20点がつくことになる。 以下、同様であるのだが、歩を10枚以上持っているような局面はなかな

    Bonanzaソース完全解析ブログ
  • 高速かつ省メモリなbit vector「sucBV」を作る

    はじめに 大規模なデータを扱うアプリケーションでは、速度とともに作業領域量も大きな問題となります。作業領域がメインメモリに収まらない場合、スワッピングが発生し、大幅な速度低下につながります。そのため近年、データ構造は高速なだけでなく、作業領域量が小さいことも求められています。今回紹介するデータ構造は「操作付きbit vector(SUCcinct Bit Vector:sucBV)」です。sucBVは、圧縮索引やSuccinct Data Structureなど、データをコンパクトに表現する際に重要なデータ構造です。STLのvector<bool>と同様に、bit列情報B[0....n-1]を保存します。このbit列情報は前もって与えられ、変更が無いことを前提とします。sucBVは、次の二つの操作を定数時間でサポートします。 rank(p,bit)――B[0...p]中のbit(bitは1

    高速かつ省メモリなbit vector「sucBV」を作る
  • ナップサック問題として複数文書要約を解くを試す - Negative/Positive Thinking

    はじめに 複数文書要約をナップサック問題として解く、という話を聴いて、簡単に試せそうなのでやってみる。 手法 西川ら「冗長性制約付きナップサック問題に基づく複数文書要約モデル」 https://www.jstage.jst.go.jp/article/jnlp/20/4/20_585/_pdf 上記の論文中で紹介されている「動的計画ナップサックアルゴリズム」を参考に。 (論文で提案されている手法ではないことに注意) コード #include <iostream> #include <vector> #include <map> #include <sstream> class KPSummary { // T[i][k] := 文iまでで最大要約長がkのときの最適解値 // U[i][k] := 経路復元用(文iを利用したかどうか) std::vector< std::vector<int

    ナップサック問題として複数文書要約を解くを試す - Negative/Positive Thinking
  • 文法圧縮入門:超高速テキスト処理のためのデータ圧縮(NLP2014チュートリアル)

    言語処理学会第20回年次大会(2014/3)のチュートリアル講義資料です。 - 要旨 - 文法圧縮とは,入力テキストをよりコンパクトな文脈自由文法(CFG)に変換する圧縮法の総称である. 文法圧縮の強みは圧縮テキストを展開すること無く,検索等のテキスト処理を効率よく行える点にある. 驚くべきことにその処理速度は,元テキスト上での同じ処理を理論的に,時には実際にも凌駕する. また近年,ウェブアーカイブやログ,ゲノム配列等の大規模実データを高効率に圧縮できることで注目を集めている. しかしながら,文法圧縮についての初学者向けの解説資料はまだまだ少ない. そこでチュートリアルでは,文法圧縮の歴史的背景から最新動向までを幅広く紹介する. 具体的には文法変換アルゴリズム,圧縮テキスト上での文字列パターン検索,文法圧縮に基づく省メモリデータ構造等の解説を行う.Read less

    文法圧縮入門:超高速テキスト処理のためのデータ圧縮(NLP2014チュートリアル)
  • 焼きなまし法のコツ Ver. 1.2 - じじいのプログラミング

    ↓改訂版 Ver1.3はこちらから↓ shindannin.hatenadiary.com 2016年8月18日 Ver. 1.2 内容を更新しました。 4.遷移確率と温度の部分を全般的に修正 この記事は、Competitive Programming Advent Calendar Div2012の24日目の記事です。 http://partake.in/events/3fcea6d7-0bab-4597-82db-86439aadb1b9 素晴らしい企画をしていただいたtanzakuさん(https://twitter.com/_tanzaku_)、今年もどうもありがとうございます! 焼きなまし法そのものの解説は少しだけにして、焼きなまし法の使い方のコツをメインに書こうと思います。 焼きなまし法の概要 2015年5月26日 内容を更新しました。 最適化(=最大値か最小値を求める)の手法

    焼きなまし法のコツ Ver. 1.2 - じじいのプログラミング
  • 動的計画法が苦手な人が、動的計画法が超苦手な人へアドバイスしてみる - じじいのプログラミング

    この記事は、Competitive Programming Advent Calendar Div2013(http://partake.in/events/3a3bb090-1390-4b2a-b38b-4273bea4cc83)の8日目の記事です。 動的計画法(Dynamic Programming, DP)についての記事です。 12/9 前編にサンプルプログラム(http://ideone.com/2B7f4v)を追加しました 12/11 前編の図2つを差し替えました。 はじめに まずは、やネットの資料で、動的計画法についてのすばらしい解説はいろいろありますので、まずはそれらを参考に。 プログラミングコンテストでの動的計画法 http://www.slideshare.net/iwiwi/ss-3578511 最強最速アルゴリズマー養成講座:アルゴリズマーの登竜門、「動的計画法・メ

    動的計画法が苦手な人が、動的計画法が超苦手な人へアドバイスしてみる - じじいのプログラミング
  • 平面グラフと交通ネットワークのアルゴリズム - iwiwiの日記

    日,PFI セミナーにて「平面グラフと交通ネットワークのアルゴリズム」というタイトルで話をさせてもらいました.スライドは以下になります. 「平面グラフでは色々な問題が効率的に解けると聞くけど一体何故?」 「道路ネットワークを処理するにはそういうアルゴリズムが使われているの?」 というような自分が昔持っていた疑問に答える,そんなつもりで準備をしました.そんな疑問を持っている方は,是非ご覧ください. 内容は以下のような感じです. 平面グラフのアルゴリズム(理論コミュニティ) 平面グラフとは何か 平面グラフのアルゴリズムテクニックとその応用例 双対グラフ 小さいセパレータの存在 (r-division) グラフ分割 (Deletion Decomposition) 交通ネットワークのアルゴリズム(応用コミュニティ) どのような課題が取り組まれているか 道路ネットワークは平面グラフなのか? 経路

    平面グラフと交通ネットワークのアルゴリズム - iwiwiの日記
  • 非復元抽出の高速かつ実装が簡単な方法を考える - シリコンの谷のゾンビ

    ※ @tomerun さんに書いてもらったコードとその検証結果を記事の最後に追記しました.(2013-07-21 2:00) ふとしたきっかけで非復元抽出 (random sampling without replacement) を実装するときに気になったのでどんな実装がよいのか考えてみた.なお非復元抽出はビンゴのように,N個の要素の中からk個の異なる要素をランダムに選択するという意味である. 復元抽出については @unnonouno さんのブログなどに書いてあり,非復元抽出についてもリンクが張ってあったのだけれど,リンク先のブログ記事が読めない状態になっていていたのが残念. unnonouno: 高速な復元抽出の直感的な説明 はじめに std::vector

    非復元抽出の高速かつ実装が簡単な方法を考える - シリコンの谷のゾンビ
  • ウェーブレット行列を実装した - hirokazu1020の日記

    元のデータに対して十分小さいサイズでありながら各種操作を高速に処理でき、文字列のみならず2次元データやグラフデータまで表現できるというウェーブレット行列を実装してみた。「高速文字列解析の世界」とかブログとか読んでやっとのことで実装した。 ウェーブレット行列の各操作のオーダーの表記では、文字集合のサイズをσ、文字列長をnとしている。 2014/8/25:プログラム修正 inline int popCount(unsigned int x){ x = (x>>1 & 0x55555555)+(x & 0x55555555); x = (x>>2 & 0x33333333)+(x & 0x33333333); x = (x>>4 & 0x0f0f0f0f)+(x & 0x0f0f0f0f); x = (x>>8 & 0x00ff00ff)+(x & 0x00ff00ff); return (x>

    ウェーブレット行列を実装した - hirokazu1020の日記
  • A/Bテストを超え、学習しながらウェブを最適化させる手法 (Bandit Algorithms for Website Optimization)

    ふと気になったので読んでみたら、当たりをひいた。 強化学習をウェブサイトの最適化に利用する方法に関してので、A/Bテストの何が問題かを説明してそれを克服するためのアルゴリズムを3つ紹介している Epsilon-greedy SoftMax UCB1 コードはPythonで書かれているので読みやすい。 実際のビジネスでは、A/Bテストで等確率でAB振り分けるために劣っている方のテストの分だけ収益が減ってしまうし、かといってテストをしないと、よりよいサイトを見出す機会がなくなってしまう。つまりexploreを最大化するか、exploitを最大化するかというようなジレンマを抱えることになる。 求められているのは、劣っているサイトデザインに対するテスト(損失)を最小にしつつベストなサイトデザインに収斂していく手法である。そういう問題をMultiarmed Bandit Probremと呼ぶらしく

    A/Bテストを超え、学習しながらウェブを最適化させる手法 (Bandit Algorithms for Website Optimization)
    hiroyuki1983
    hiroyuki1983 2013/02/07
    「Epsilon-greedy」「SoftMax」「UCB1」
  • http://xptn.dtiblog.com/blog-entry-115.html

    hiroyuki1983
    hiroyuki1983 2013/01/25
    書籍『ハッカーのたのしみ』より
  • https://dcc.uchile.cl/~gnavarro/ps/cpm12.pdf

    hiroyuki1983
    hiroyuki1983 2013/01/25
    Wavelet Treeに関するサーベイ論文『Wavelet Trees for All *』
  • 古くて新しい自動迷路生成アルゴリズム - やねうらおブログ(移転しました)

    最近、ゲーム界隈ではプロシージャルテクスチャー生成だとか、プロシージャルマップ生成だとか、手続き的にゲーム上で必要なデータを生成してしまおうというのが流行りであるが、その起源はどこにあるのだろうか。 メガデモでは初期のころから少ないデータでなるべくど派手な演出をするためにプロシージャルな生成は活用されてきたが、ゲームの世界でプロシージャル生成が初めて導入されたのは、もしかするとドルアーガの塔(1984年/ナムコ)の迷路の自動生成かも知れない。 なぜ私が迷路のことを突然思い出したのかと言うと、最近、Twitterで「30年前、父が7年と数ヶ月の歳月をかけて描いたA1サイズの迷路を、誰かゴールさせませんか。」というツイートが話題になっていたからである。 この迷路を見て「ああ、俺様も迷路のことを書かねば!俺様しか知らない(?)自動迷路生成のことを後世に書き残さねば!」と誰も求めちゃいない使命感が

    古くて新しい自動迷路生成アルゴリズム - やねうらおブログ(移転しました)
  • 衝突判定

    大学の時に作った衝突判定についてだべった時用のスライド。 発見したのでアップしてみる。スライドの作り方がいま見るとすごく雑い。

    衝突判定
  • 計量学習を用いた画像検索エンジンとアニメ顔類似検索v3について - デー

    まだgithubにはpushしていないのですが、さいきょうの組み込み型画像検索エンジンotamaに計量学習を用いて与えられたデータにあった画像間の距離関数を学習してそれを使って検索するというドライバを入れたので、先行的なデモとしてアニメ顔類似検索v3を作ってみました。 計量学習は、ベクトル間の距離の計り方を機械学習で決めるみたいな分野です。 アニメ顔類似検索v3 AnimeFace Search v3 - Otama LMCA_VLAD_HSV Driver randomボタンを押すと顔画像がランダムに出るのでどれかクリックするとそれをクエリに検索します。color weightは色の重みを調節するパラメーターで、1にすると色だけで検索します。0にすると形状やテクスチャだけで検索します。結果画像の上の数字は類似度的なもので、その横のgglは元画像をGoogle Search by Imag

    hiroyuki1983
    hiroyuki1983 2013/01/10
    こういうの面白いわ
  • セグメント木 問題集 - hogloidのブログ

    https://twitter.com/hogloid/status/284225774142251008 こんなことを言ったので 書きます 問題は、セグメント木を使う解法がおそらく楽で、セグメント木が問題の重要な部分で、JOIとかPCKでない問題、とします(JOIの問題とかみんな知ってる&解いてるだろうし) あと、明確に悪問と分かる問題は載せません。 解説が欲しい場合は、(一応僕は全部解いたので)僕になにか言ってくれると解説ページを開設すると思います。下のコメント欄とかにどうぞ。 記事を出してからも、ボチボチ更新していく予定です。 ☆の数は、主観的な難易度です。 書き終わって気づきましたがかなりグロイ問題ばかりなのでやばいですが頑張ってください 似たような記事 http://d.hatena.ne.jp/tozangezan/20111111/1320993464 (こっちのほうが、おそ

    セグメント木 問題集 - hogloidのブログ