タグ

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

  • 頻出典型アルゴリズムの演習問題としてよさげなやつ - kyuridenamidaのチラ裏

    効率的な別解とか存在する問題もあるけど演習によさそうなやつをピックアップ。そのアルゴリズムじゃないと解けないわけではないって問題も多いので注意。(ただ演習するのには都合が良いかなと)※個人的難易度をつけてみました。とても主観的な難易度付けなので気にせず解いてみてください。深さ優先探索・Balls[☆]・Sum of Integers[☆]・The Number of Island[☆]・Block[★]幅優先探索・Mysterious Worm[★]・Cheese[★]・Seven Puzzle[★☆]・Stray Twins[★★]・Deven-Eleven[★★]・Summer of Phyonkichi[★★☆]ワーシャルフロイド法(For 全点対最短路問題)・Traveling Alone: One-way Ticket of Youth[★]・A reward for a Car

  • 海辺の美女の問題を遺伝的アルゴリズムで解く - 小人さんの妄想

    急いては事を仕損じる。 あわてて物事を取り決めてしまうと、後からもっと良いものが出てくることがある。 かといって、いつまでも慎重に見送っていたのでは、みすみすチャンスを逃してしまうこともある。 いったいどのタイミングで決断を下せば、最大の期待値を引き当てられるのか? この問題は、秘書問題、あるいは、最良選択問題、海辺の美女の問題などと呼ばれていて、 幾つかのケースでは数学的に最適な答が知られています。 >> wikipedia:秘書問題 たとえば、海辺に20人の美女がいたとして、順番に出会ってゆくものとします。 これぞと思った美女をデートに誘いたいのですが、 あまり早いうちに誘ってしまうと、後からもっといい女が出現するかもしれません。 かといって誘いを出さずに見送っていると、いい女を逃してしまいます。 誘いを出すのは1回だけで、もちろん後戻りはできません。 美女は必ず誘いに乗ってくれるもの

    海辺の美女の問題を遺伝的アルゴリズムで解く - 小人さんの妄想
  • 常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream (legacy)

    TwitterのTLで知ったのだが、少し前に海外掲示板で"sleep sort"というソートアルゴリズムが発明され、公開されたようだ。このアルゴリズムが面白かったので紹介してみる。 Genius sorting algorithm: Sleep sort 1 Name: Anonymous : 2011-01-20 12:22 諸君!オレは天才かもしれない。このソートアルゴリズムをみてくれ。こいつをどう思う? #!/bin/bash function f() { sleep "$1" echo "$1" } while [ -n "$1" ] do f "$1" & shift done wait example usage: ./sleepsort.bash 5 3 6 3 6 3 1 4 7 2 Name: Anonymous : 2011-01-20 12:27 >>1 なん…だと

    常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream (legacy)
  • YouTube - Kinectでなりきりウルトラセブン!

    (English version is available at http://www.youtube.com/watch?v=RUG-Uvq-J-w) 知力・体力・CPUパワーの無駄遣いを極めるべく、Kinectのモーションキャプチャを活用したウルトラセブンを体験できるプログラムを作りました。PCの中でウルトラセブンのようなものに変身してなんかいろいろできます。アルゴリズム行進に続き、たぶん世界初でしょう。開発期間は一週間、初めてのOpenGLプログラミングがKinect自体を扱うよりも大変でした。最新の進化した版の動画が http://www.youtube.com/watch?v=kxvn98lqr5Y にあるのでそちらもどうぞ。コードは http://code.google.com/p/kinect-ultra/ に公開してあります。

    YouTube - Kinectでなりきりウルトラセブン!
  • Spaghetti Source - Suffix Array

    Suffix Array (Larsson-Sadakane) 説明 Suffix Arrayとは,与えられた文字列の接尾辞の集合を辞書順ソートしたものである.近年,これを用いることによって多くの文字列の問題が解かれることがわかってきた. Larsson-Sadakane は Suffix Array を O(n (log n)^2) 時間で構成するアルゴリズムである.Mamber-Myers と同様のアイデアによって文字列長を倍加させ,O(log n) 回の multikey quicksort を行うことにより,全体で O(n (log n)^2) の計算量を達成する.詳しくは適当な文献を参照. Suffix Array を用いて解けるもっとも典型的な問題は,文字列の検索である.Suffix Array 上で二分探索を行えば,O(m log n) でパターンの検索ができる.また,Suf

  • サマーウォーズ:曜日の求め方とか2056桁の暗号とかの解説 - A Successful Failure

    エントリは現在上映中の映画『サマーウォーズ』のネタバレを含む可能性があるので、未見の人は注意されたい。 主人公の健二が数学オリンピック代表候補であるという設定、最初に健二がShorのアルゴリズムに関する教科書を読んでいるのを見て、サイモン・シンが描き出した迫真のドキュメンタリー『フェルマーの最終定理 』*1ばりの展開が待っているのかと思いきや、まともな数学的要素は皆無で肩すかしをらってしまった。 気を取り直して、エントリでは『サマーウォーズ』における数少ない数学的要素を取り上げたい。なお、無粋なツッコミは無用だという人は読まない方が良いだろう。 誕生日の曜日の求め方 さて、夏希先輩の誕生日、1992年7月19日は何曜日か。劇中で健二はモジュロ演算(mod)を用いて一瞬で日曜日だと回答していたが、その間にどのような演算がなされていたのか見てみよう。 曜日換算を実現するために、ツェラーの

  • 超高速テキスト処理のためのアルゴリズムとデータ構造 (PDF)

    超高速テキスト処理のための ゕルゴリズムとデータ構造 東京大学情報理工学系研究科* 岡野原 大輔 hillbig@is.s.u-tokyo.ac.jp NLP2010 チュートリゕル 2010 3/8@東京大学郷キャンパス * 2010年4月から所属が (株)プリフゔード゗ンフラストラクチャーになります。 内容 • 背景 – 自然言語処理と機械学習 • オンラ゗ン学習 – 教師有/無, 正則化 • 疎ベクトル々文字列データ構造 – 特徴情報の格納、全部分文字列情報 • 乱択化ゕルゴリズム – Hash Kernel, Randomized SVD 背景 大規模自然言語処理と機械学習 背景 • 利用可能な言語資源の急激な拡大 – ブログ, 掲示板, 商品情報, レビュー – Wikipedia, Google N-gram Corpus ~1010 語 – c.f. Penn TreeB

  • 経路探索アルゴリズムの「ダイクストラ法」と「A*」をビジュアライズしてみた - てっく煮ブログ

    as詳解 ActionScript 3.0アニメーション ―衝突判定・AI・3DからピクセルシェーダまでFlash上級テクニック を読んでいて、経路探索のアルゴリズムで A* が取り上げられていました。A* については、いろいろ検索して調べたりもしたのですが、やっぱりに書いてあると理解しやすいですね。せっかくなので自分流に実装してビジュアライズしてみました。ダイクストラ法まずは A* の特別なケースでもあるダイクストラ法から見ていきます。クリックすると探索のシミュレーションが開始します。スタート地点(S)からゴール(G)への探索が始まります。色がついたところが「最短経路が決定した場所」です。スタート地点から少しずつ探索が完了していきます。半分ぐらい完了しました。まだまだ進みます。最後まで終わりました。最短経路を黒色矢印で表示しています。ダイクストラ法は、スタート地点から近いノード(=マス

  • untitled

    カーナビによる最短ルート探索 2004/7/24 2004.7.24,Sat. Contents カーナビによる最短ルート探索 ~ 高校生のためのOR入門~ ネットワークと最短路問題 1. 経営情報学科のカリキュラム 2. カーナビによるルート探索 1. 2. 3. 4. 5. カーナビって何さ? 問題のモデル化 どこを通ると早いの? 用語解説:グラフ・ネットワーク 最短路問題 アルゴリズム:列挙法とダイクストラ法 文教大学 情報学部 経営情報学科 堀田 敬介 (OR = Operations Research) 3. ORとは? 経営情報学科のカリキュラム 卒業 4年 3年 2年 1年 入学 特にここに 関係したお話 カーナビって? • カーナビ = car navigation • カーナビの2大機能! – 人工衛星と交信し,現在位置を地図上表示 – 出発地と目的地を選

  • クラスタリングの定番アルゴリズム「K-means法」をビジュアライズしてみた - てっく煮ブログ

    集合知プログラミング を読んでいたら、K-means 法(K平均法)の説明が出てきました。K-means 法はクラスタリングを行うための定番のアルゴリズムらしいです。存在は知っていたんだけどいまいちピンときていなかったので、動作を理解するためにサンプルを作ってみました。クリックすると1ステップずつ動かすことができます。クラスタの数や点の数を変更して、RESET を押すと好きなパラメータで試すことができます。こうやって1ステップずつ確認しながら動かしてみると、意外に単純な仕組みなのが実感できました。K-means 法とはK平均法 - Wikipedia に詳しく書いてあるけど、もうすこしザックリと書くとこんなイメージになります。各点にランダムにクラスタを割り当てるクラスタの重心を計算する。点のクラスタを、一番近い重心のクラスタに変更する変化がなければ終了。変化がある限りは 2. に戻る。これ

  • K-means法によるクラスタリングのスマートな初期値選択を行うK-means++ - kaisehのブログ

    K-means法は、入力データからK個のランダムな個体を初期クラスタの中心として選択し、以降、クラスタの重心を移動させるステップを繰り返すことでクラスタリングを行う非階層的手法です。K-means法はシンプルで高速ですが、初期値依存が大きいのが弱点で、不適切な初期値選択をすると間違った解に収束してしまいます。 以下は、Introduction to Information Retrievalの16章に出てくる例です。 {d1, d2, ..., d6}をK=2でクラスタリングする場合、{{d1, d2, d4, d5}, {d3, d6}}が大域最適解ですが、初期クラスタの中心をd2, d5で与えると、{{d1, d2, d3}, {d4, d5, d6}}という誤った解に収束してしまいます。 この問題を改善するK-means++という手法を見つけたので、試してみました。 K-means+

    K-means法によるクラスタリングのスマートな初期値選択を行うK-means++ - kaisehのブログ
  • アムダールの法則 - Wikipedia

    複数のプロセッサを使って並列計算してプログラムの高速化を図る場合、そのプログラムの逐次的部分は、制限を受ける。例えば、仮にプログラムの95%を並列化できたとしても、残りの部分である5%は並列処理ができないため、どれだけプロセッサ数を増やしたとしても、図で示したように20倍以上には高速化しない。 アムダールの法則(アムダールのほうそく、英語: Amdahl's law)は、ある計算機システムとその対象とする計算についてのモデルにおいて、その計算機の並列度を上げた場合に、並列化できない部分の存在、特にその割合が「ボトルネック」となることを示した法則である。コンピュータ・アーキテクトのジーン・アムダールが主張したものであり、アムダールの主張(アムダールのしゅちょう、英語: Amdahl's argument)という呼称もある[1]。 複数のプロセッサを使い並列計算によってプログラムの高速化を図る

    アムダールの法則 - Wikipedia
  • 進化的計算 - Wikipedia

    計算機科学において進化的計算(しんかてきけいさん、英語: evolutionary computation)は組合せ最適化問題を含む人工知能(より狭義には計算知能)の一分野である。 進化的計算は、人口増加のような反復的過程を用いる。その人口は目的の結果に合うように誘導されたランダムかつ並列的な探索によって人為選択される。なお実装の観点からは、進化の生物学的機構にヒントを得ている実装もあれば、進化の生物学的機構にヒントを得ていない実装もある(「形式ニューロン」が生物の神経を正確にシミュレーションしているものだと考える専門家はいない、というようなもの)。 技法[編集] 例 進化的アルゴリズム(遺伝的アルゴリズム、進化的プログラミング、進化戦略、遺伝的プログラミングから構成される) 群知能(蟻コロニー最適化と粒子群最適化から構成される) 自己組織化写像、成長するニューラルガスネットワーク、競合学

  • 遺伝的アルゴリズム - Wikipedia

    遺伝的アルゴリズム(いでんてきアルゴリズム、英語:genetic algorithm、略称:GA)とは、1975年にミシガン大学のジョン・H・ホランド(John Henry Holland)によって提案された近似解を探索するメタヒューリスティックアルゴリズムである。人工生命同様、偶然の要素でコンピューターの制御を左右する。4つの主要な進化的アルゴリズムの一つであり、その中でも最も一般的に使用されている。 概要[編集] 遺伝的アルゴリズムはデータ(解の候補)を遺伝子で表現した「個体」を複数用意し、適応度の高い個体を優先的に選択して交叉・突然変異などの操作を繰り返しながら解を探索する。適応度は適応度関数によって与えられる。 この手法の利点は、評価関数の可微分性や単峰性などの知識がない場合であっても適用可能なことである。 必要とされる条件は評価関数の全順序性と、探索空間が位相(トポロジー)を持っ

    遺伝的アルゴリズム - Wikipedia
  • 研究のまとめ:アントコロニー最適化 (Ant Colony Optimization: ACO) - O谷の日記

    アリの摂行動から着想を得たアルゴリズム。 フェロモンという揮発性物質を模したパラメータを最適化する。 組合せ最適化やネットワークルーティングなどに応用。 ここでは巡回セールスマン問題など組合せ最適化問題を解く手法を記載。 Ant System (AS) Ant system: optimization by a colony of cooperating agents - IEEE Journals & Magazine もっとも基となるアルゴリズム。巡回セールスマン問題を解く。 性能はあまり高くないが、アリのアナロジーを始めて取り入れたエポックメイキングな手法。 Elitist Ant System (ASelite) Ant system: optimization by a colony of cooperating agents - IEEE Journals & Magazi

    研究のまとめ:アントコロニー最適化 (Ant Colony Optimization: ACO) - O谷の日記
  • ACO (Ant Colony Optimization)

    注意: このページは「XHTML 1.1 plus MathML 2.0」で書かれていますが、IEではMIME typeが「application/xhtml+xml」だと表示できないようです。Mozillaの場合は数式も表示できるのでapplication/xhtml+xmlバージョンをご覧ください(ただし、まだ書きかけですが)。 ACOとは 都市を選択する確率 時点tにおけるエージェントkが都市iから都市jへ移動する確率は次式で定義される。 p i j k ( t ) = [ τ i j ( t ) ] α [ η i j ] β ∑ l ∈ N i k [ τ i l ( t ) ] α [ η i l ] β ∀ j ∈ N i k (書き途中) いろいろなACO ACOとはフェロモンコミュニケーションを利用して最適化問題を解くアルゴリズムの総称です。ここではTSPに対するACOを

  • Algorithm Database

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

  • ダイクストラ法

    ここで学ぶこと 地図データからノードデータ、リンクデータを生成するためのデータ構造について理解すること。 ノードの選択、非選択ができるようにすること 最短経路探索アルゴリズムを理解すること 最短経路探索アルゴリズムを実装し、最短経路を求めること。 13-1.ノードとリンクデータを作る。 ここからは地図を単に表示するだけでなくて、地図の上に役立つ機能を載せていきます。最初に思いつくのがカーナビのような最短経路の表示です。最初の回で説明したように今できている地図ビューアは単なる絵ではありません。意味のある地図データを表示しているのですから立派に経路探索を行うことができます。 経路探索を行うにはノードとリンクというデータをつくられければなりません。下の図をみてください。これまでのデータはひとつの線(リンク)がどのようにできているかだけが保存されていましたが、なんとなく想像できるよ

  • 最短経路問題におけるアルゴリズム【ウォーシャル・フロイド法】の調査

    最短経路問題におけるアルゴリズム【ウォーシャル・フロイド法】の調査 佐藤 史隆, 廣安 知之, 三木 光範 ISDL Report  No. 20040716001 2004年 4月 8日 Abstract 1  はじめに 研究では, 効率の良いネットワークを遺伝的アルゴリズムにより作成することを目的としている. 最適化を行う際に, ネットワークの効率の良さを求めるために, ノード間の最短経路長を求める必要がある. 最短経路長を求めるアルゴリズムには, 全ての2点間の最短路・最短距離を求める方法であるウォーシャル・フロイド法(Warshall-Floyd法), 特定の2点間の最短路・最短距離を求めるダイクストラ法(Dijkstra法)などがある. 研究では, 全ての2点間の最短路・最短距離を求める必要があるため, ウォーシャル・フロイド法(Warshall-Floyd法)が有効で

  • 【ダイクストラ法】を用いた場合の性能比較調査