タグ

algorithmとAlgorithmに関するWatsonのブックマーク (300)

  • データ圧縮(アルゴリズム一覧) - Wikipedia

    「圧縮ファイル」はこの項目へ転送されています。複数のファイルを一つのファイルにまとめることについては「アーカイブ (コンピュータ)」をご覧ください。 データ圧縮(データあっしゅく、英: data compression)とは、あるデータを、そのデータの実質的な内容(情報、あるいはその情報量)を可能な限り保ったまま、データ量を減らした別のデータに変換すること。高効率符号化ともいう。 データ圧縮は、データ転送におけるトラフィックやデータ蓄積に必要な記憶容量の削減といった面で有効である。しかし圧縮されたデータは、利用する前に伸長(解凍)するという追加の処理を必要とする。つまりデータ圧縮は、空間計算量を時間計算量に変換することに他ならない。例えば映像の圧縮においては、それをスムーズに再生するために高速に伸長(解凍)する高価なハードウェアが必要となるかもしれないが、圧縮しなければ大容量の記憶装置を必

  • random()とrandom()*random()はどっちがランダムか? | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー stackoverflowで見つけた乱数に関する質問「乱数のランダムさって?」に対する解答が面白かったので紹介します。 乱数のランダムさというのは,沢山標をとったときに,標値がまんべんなく均等に分布する,ということ。プログラミング言語などに組み込まれた乱数を発生する仕組みが返す値が均等に分布してないと,テトリスでなかなか長い棒が落っこちてこなかったりするわけです。 数学的な詳細はともかく,こういう知識はプログラミングをする上で知って置いた方がよいと思います。 さて,質問の内容は random()とrandom()×random()のどっちがランダムなの? というもの。後者はrand

  • 8 bit pixel art をベクターグラフィックに変換するアルゴリズム | スラド IT

    マイクロソフトの Johannes Kopf 氏とヘブライ大学の Dani Lischinski 氏が 8 ビットゲーム機時代のピクセルアートを美しいベクター画像に変換するアルゴリズムを開発したそうだ (Extreme Tech の記事、家 /. 記事より) 。Johannes Kopf 氏のサイトに論文の PDF があるようなのだが、サーバに接続できず現在閲覧することができない。 このアルゴリズムはピクセル間のつながりを詳細に分析しベクター画像を作り出す手法。ピクセルアートの凸凹とした線も滑らかな曲線に生まれ変わるという。Extreme Tech の記事ではスーパーマリオに出てくるイルカ (リフトン ?) がベクター画像化されている。論文では他のサンプルが掲載されているようなので、サーバが復活して閲覧できるようになったら確認してみたいところである。 しかし当然あらゆるパターンで成功する

    Watson
    Watson 2011/05/27
    興味深い。
  • 常識を覆すソートアルゴリズム!その名も"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)
  • 乱択アルゴリズム紹介(最小カット) - Preferred Networks Research & Development

    \(G\)のカット\(C \subseteq E\)とは、\(G\)から\(C\)を取り除くと、二つ以上(の連結成分)に分かれてしまうようなもののことを言います。特にカットの中で大きさが一番小さいものを最小カットと言います。恐らく具体例を見た方が良いと思いますので、下の図を見てください。 さて「\((s,t)\)-最小カット=\((s,t)\)-最大フロー」という有名な事実が有ります。今回の目的ではないので、余り深入りはしませんが、\((s,t)\)-最小カットとは、グラフ中の頂点\(s, t\)を分けるカットで最小のものを指し、\((s,t)\)-最大フローは\(s\)から\(t\)に流れる”フロー(流れ)”で最大のものを指します。 \((s,t)\)-最大フローを求める決定性アルゴリズム(乱数を使わないアルゴリズム)はよく研究されていて、今現在最速なものは\(O(nm \log(n^2

    乱択アルゴリズム紹介(最小カット) - Preferred Networks Research & Development
  • 乱択アルゴリズム紹介(Bloom Filter) - Preferred Networks Research & Development

    吉田です。相変わらず乱択アルゴリズム紹介ということで、今日はBloom Filterの話をしたいと思います。今までと違うのはBloom Filterはある問題を解くアルゴリズムではなくデータ構造であるということです。データ構造に乱数を導入するとどういうことが出来るようになるか見てみましょう。

    乱択アルゴリズム紹介(Bloom Filter) - Preferred Networks Research & Development
  • diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp

    UNIXの基的なコマンドの1つであるdiff。 これに実装されているアルゴリズムは実に興味深い世界が広がっています。 稿では、筆者が開発した独自ライブラリ「dtl」をもとに「diffのしくみ」を解説します。 はじめに diffは2つのファイルやディレクトリの差分を取るのに使用するプログラムです。 ソフトウェア開発を行っている方であれば、SubversionやGitなどのバージョン管理システムを通して利用していることが多いかと思います。稿ではそのdiffの動作原理について解説します。 差分の計算の際に重要な3つの要素 差分を計算するというのは次の3つを計算することに帰結します。 編集距離 2つの要素列の違いを数値化したもの LCS(Longest Common Subsequence) 2つの要素列の最長共通部分列 SES(Shortest Edit Script) ある要素列を別の要

    diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp
  • Neat Algorithms - Flocking

    Will you Harry Me? the man his code archives email twitter github Neat Algorithms - Flocking February 17th 2011 In this post I’ll explain and demonstrate an algorithm that simulates a group of entities grouping together, illustrating something called “flocking”. I think it’s quite neat because the flock exhibits some complex collective intelligence when just a few simple governing rules are applie

  • ChordアルゴリズムによるDHT入門 - 情報科学屋さんを目指す人のメモ

    何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。 Chordの解説ページは移転しました。こちらをご覧ください→「ChordアルゴリズムによるDHT入門」 Symphonyの解説を書いたとき、「Chordの理解を前提」にしていたので、今回はChordの細かい解説スライドを作成しました。 Chordの説明はDHTの中でももっともたくさん書かれているものだと思います。 もちろん、それと同じように書いたのではほとんど意味がないと思うので、 論文を読んでもすぐには分からない全体像から、どこが重要か、どの点によってメリットが生まれているかなどに注目しつつ、飲み込みやすいストーリーになるように注意しました。 なおかつ、出来るだけ論文からぶっ飛びすぎないようにも気を付けてみました。 まだ荒削りなのですが、とりあえずどうぞ。

  • アルゴリズムへの招待

    適当な圧縮ルールを作り、ASCII文字で描いた絵をなるべく少ない文字数で表現するには、どうする?(詳しくは第2回を参照) アルゴリズムを構成する楽しい仕組みを紹介しながら、あなたに「おおっ」と言わせたい――。これが連載『地球にやさしいアルゴリズム』の最初の目的です。「数独パズルを解く」「ASCIIアートを圧縮する」など12の問題を用意しました。ぜひ挑戦してみてください。 問題を解けても解けなくても、アルゴリズムに興味を持てたなら、関連する文献や記事を抵抗なく読めるようになるはずです。アルゴリズムを使いこなしたり、新しく作ることも無理なくできるようになるでしょう。 まずはいろいろなアルゴリズムの面白いところを見て、楽しんでみましょう。 連載目次 第1回 ナンプレを解いてみよう 第2回 パズルみたいに楽しいデータ圧縮 第3回 「場面」の移り変わりに注目する 第4回 できるだけ短いルートでゴール

    アルゴリズムへの招待
  • boost.GILで組む、ジェネリックな画像処理のアルゴリズム

    "Image dans le néant" by gelinh boost.GILは凄い!開発者の頭の良さがビシビシと伝わってくる! ということで、今回はGILに関しての紹介記事を書こうと思います。 概要 あなたは画像処理のエキスパート。顧客の依頼で、8bitのRGB画像を処理するアルゴリズムを記述していたとします。ところが対象となるデバイスの仕様を調べていた際に、実はRGBA画像にも対応させなければいけないことが分かりました。面倒だと思いながら書いていた矢先、さらにBGRやABGR,さらには16や24bitにも対応したアルゴリズムを記述しなければならないことが判明しました。なんということでしょう…これらの画像すべてに対してアルゴリズムを書くなんて、とてもじゃないですがやってられない。やめてくれ!って感じです。 boostに付いてくるGILを用いることで、画像に対する操作をよりジェネリック

    boost.GILで組む、ジェネリックな画像処理のアルゴリズム
  • Website Temporarily Unavailable

    This site is currently down for maintenance. Thank you for your patience.

  • Gmail優先トレイ論文メモ - kisa12012の日記

    元論文 “The Learning Behind Gmail Priority Inbox”, Douglas Aberdeen, Ondrey Pacovsky, Andrew Slater, LCCC : NIPS 2010 Workshop on Learning on Cores, Clusters and Clouds. http://research.google.com/pubs/archive/36955.pdf Gmail Priority InboxにはPAが利用されていると話題になっているので,読んでみました. 簡単にまとめ PA + transfer learning + logistic model ランキング学習では,thresholdが非常に重要な働きを持つ Gmail Priority Inboxはあなたのメール処理の時間を6%短縮してくれます 1.The

    Gmail優先トレイ論文メモ - kisa12012の日記
  • MinHashによる高速な類似検索 - Preferred Networks Research & Development

    年が明けてもう一ヶ月経ちましたね.岡野原です. 今日はMinHashと呼ばれる手法を紹介します.これは特徴ベクトルの高速な類似検索に利用することができます(クローラーの文脈だとShingleとして知られている). 今や世の中のあらゆる種類のデータが,高次元のバイナリベクトルからなる特徴ベクトルで表されて処理されるようになってきました.例えば文書データであれば文書中に出現する単語やキーワードの出現情報を並べた単語空間ベクトル(Bag of Words)で表し,画像データも,SIFTをはじめとした局所特徴量を並べた特徴ベクトル(とそれをSkecth化したもの)として表せます.行動情報や時系列データも特徴量をうまく抽出する.グラフデータもFast subtree kernels[1]と呼ばれる方法で非常に効率的に特徴ベクトルに変換することができ,グラフの特徴をよく捉えることができるのが最近わかっ

    MinHashによる高速な類似検索 - Preferred Networks Research & Development
  • 【コラム】攻略! ツール・ド・プログラミング (44) 高速な文字列検索を実現するJavaライブラリ「StringSearch」 | エンタープライズ | マイコミジャーナル

    各種文字列検索アルゴリズムを実装したStringSearch Johann Burkard氏が公開しているStringSearchは、高速な文字列検索アルゴリズムを実装したJava用ライブラリである。BNDM法や、BMH法とその派生、Bit-parallel手法といった複数のアルゴリズムをサポートしている点が特徴。いずれのアルゴリズムを利用する場合でも基的な使い方は共通しているため、用途によって簡単に使い分けることができる。 Burkard氏によれば、StringSearchを利用すればjava.lang.Stringクラスによる文字列検索に比べて5倍から10倍程度の高速化が可能とのことである。ただし、この主張には異論も出ている。また、String.indexOf()メソッドなどで採用されているというnaiveアルゴリズム(シンプルだが低速)にしても、短い文字列を対象とした検索であれば十

  • Clever Algorithms: Nature-Inspired Programming Recipes

    Need help getting started with Genetic Algorithms, Neural Networks or Swarm Intelligence? Nature-Inspired Algorithms are Fascinating! But implementing them can be frustrating. The algorithm descriptions are incomplete, inconsistent and distributed across academic papers, websites and code. There are so many algorithms to choose from, it can feel overwhelming. Algorithms Handbook You need a handboo

  • 3SAT問題を多項式時間で解くアルゴリズムが発表される。P=NP証明に? | スラド サイエンス

    This is not a P=NP paper. The paper solves a problem of a related data structure in polynomial time (quartic time), then shows that it can be used to solve some cases of 3SAT. The 3 outputs the algorithm can give are "the formula is not satisfiable", "the formula is satisfiable" (and the solution is given), and "failure of classification" -- it couldn't solve the problem. The important question we

    Watson
    Watson 2011/01/24
    気になる
  • Newman アルゴリズムによるソーシャルグラフのクラスタリング

    昨今よく耳にするキーワード「ソーシャルグラフ」。その可能性・活用方法について様々な企業に注目されています。今回はその「ソーシャルグラフ」を「どうすればクラスタリングできるのか?」という観点で、グラフに対するクラスタリングの基礎を説明いたします。また、具体的なクラスタリング手法として Newman アルゴリズムをご紹介いたします。

    Newman アルゴリズムによるソーシャルグラフのクラスタリング
  • 乱択アルゴリズム紹介(行列乗算の検査&多項式等価性の検査) - Preferred Networks Research & Development

    吉田です。今回は乱数を用いたアルゴリズム(Randomized Algorithms、乱択アルゴリズム)を紹介したいと思います。 理論の世界では乱数を使ったアルゴリズムは既に当たり前のものになっているのですが、実際の応用で使われている所は残念ながら余り見たことが無いです。多分それは宣伝が足りないのだろうと思ったので、今回少し書いてみることにしました。実は他の場所で話すことになっていることの下準備も兼ねているのですが。これから書くことがそのまま実用に耐えるとは思っていませんが、それで乱択アルゴリズムに関する感覚を蓄えれば他の形で応用出来るんじゃないかと考えています。

    乱択アルゴリズム紹介(行列乗算の検査&多項式等価性の検査) - Preferred Networks Research & Development
  • LZO圧縮は速い - maachangの日記

    最近圧縮ファイルの速度について気になるので、いろいろ調べてみると、圧縮率は低いが、速度は爆速だと言われているLZOと言うのがあるみたいだ。 HTTPの圧縮にも使われているGZIPは結構オーバーヘッド小さいと思っていたのだが、実際にLZOをJavaのJNI経由で呼び出すJava実装をSeabassNativeIOに追加して、それぞれの速度を量ってみる。 ちなみにGZIP圧縮解凍は、java.util.zip.GZIPInputStream,java.util.zip.GZIPOutputStreamで処理する。 これらをそれぞれ、java.io.ByteArrayInputStream,java.io.ByteArrayOutputSteamをかまして処理する。 private static final int LEN = 20 ; /** * @param args */ public s

    LZO圧縮は速い - maachangの日記