タグ

algorithmに関するsuVeneのブックマーク (19)

  • 待ち行列に入門した - steps to phantasien(2008-08-12)

    先週, 会社をさぼって システム性能評価と待ち行列理論 という講義を受けてきた. 待ち行列理論の入門講義で, 大学の学部でやるレベルの話らしい. 私は学部でも学部以外でも勉強したことがない話題だったので, とても興味深く聞いた. 受講後はすっかり盛り上り, 待ち行列で性能評価するぜ! という気分になったのだが, 実際は難しい. 性能評価一般の難しさはさておくとして, 待ち行列理論そのものがけっこう複雑. 数学が苦手な身には辛い. 理論の常として, 待ち行列の理論もまず解析対象の特性に様々な制限や前提を設けた上でモデルをたてる. そのモデルがうまく解析できたら, 少しずつ制限をとりはずしていく. 現実を扱えるモデルに至る道程は険しそうだ. 高価なツールを使えばそんな洗練されたモデルも扱えるのかもしれないけれど, もうちょっと庶民に優しい路線であってほしい. 解析に挫ける一方, 理論の成果が明

  • マージ・ソート : 巨大データのソート法

    はじめに まずはともあれ腕試し、この問題を解いてみてくださいな: 【問1】 デタラメな順序で並んだ文字列の集合がテキストファイル「input.txt」に収められています。この文字列群を辞書順(昇順)に並び換えたテキストファイル「sorted.txt」を作りなさい。 ※各文字列は改行で区切られています。 プログラミング教の練習問題、あるいは学校の課題で出てきそうな“お馴染み”の問題です。ソート(整列)アルゴリズムの実装には配列/代入/条件分岐/ループなどなどプログラミングの基中の基となる構文を総動員するため、練習問題としてよく使われますね。 早速解いてみましょう、ソート・アルゴリズムにはこれまたお馴染みのバブル・ソートを使います。C#、VB.NETC++/CLIの3まとめて一気にいきますよ: using System; using System.IO; using System.C

    マージ・ソート : 巨大データのソート法
    suVene
    suVene 2008/08/26
    マージソートの説明と実装
  • 協調フィルタリングのグラフィカルモデル - nokunoの日記

    協調フィルタリングとはAmazonのお勧めのように「この商品を購入した人はこんな商品も購入しています」という情報を用いて推薦をする手法です。グラフィカルモデルはベイジアンネットワークとも呼ばれ、最近一部で流行している機械学習の手法です。今回は、協調フィルタリングをグラフィカルモデルで表現したらどのようになるだろう、と考えて思いついたアイデアを紹介します。 今、ユーザuとアイテムiの組{u,i}のデータが大量に与えられているとします。例えばソーシャルブックマークならユーザとブックマークしているページの組み合わせ、E-commerseならユーザと購入した商品の組み合わせ、などです。ここではSBMを例に考えるので、はてブと同様にユーザはマイナスの評価を付けることはできないものとします。 このときユーザuに対してお勧めのページを推薦することを考えると、ユーザuがまだブックマークしていないページiに

  • http://japan.internet.com/webtech/20080724/6.html

    suVene
    suVene 2008/07/26
    へぇ~。 ところで、『現代の検索エンジンは、文章はうまく検索できますが、データは難しいですよね。』 の意味がよくわからない。 文章もデータだと思うが、ここでいう「データ」は何を指してるんだ。
  • APOPのぜい弱性で見えてきたMD5の「ご臨終」

    情報処理機構セキュリティセンターは4月,メール・サーバーの認証プロトコルの一つ「APOP」について注意を喚起した。この注意喚起は,電気通信大学の太田和夫教授のグループが,APOPで使うハッシュ関数「MD5」に新たな欠陥を発見したことに基づくもの。この欠陥は,APOPだけでなく,MD5を使う電子署名などのほかのアプリケーションの欠陥も示唆する。実際にどの程度危険なものか,技術に基づいて考えてみよう。 わからないはずのパスワードが解かれる APOPは,チャレンジ・レスポンスという方式を使って,メール・クライアントとメール・サーバーのやりとりを盗聴してもパスワードが解読できないようにする。パスワードを直接やりとりせずに,まずサーバーからクライアントに「チャレンジ・コード」という文字列を送る。クライアントはチャレンジ・コードとパスワードを連結したうえで,MD5というハッシュ関数を使ってハッシュ値を

    APOPのぜい弱性で見えてきたMD5の「ご臨終」
  • ソートの速度比較 - odz buffer

    ref: qsort - enbug diary (2007-02-10) ふむふむ、NetBSD 由来の qsort が速いと。unsigned int の要素数 10,000,000 で試してみた。表中の数字は所要時間で単位は秒。 まず、Pentium M 2GHz の coLinux on Windows の gcc-4.0 で、 コンパイルオプションは -O2 だけ。 ランダム ソート済み 逆順ソート済み 大体ソート済み qsort 5.08 4.29 4.45 4.05 pgsql 4.36 0.06 0.06 2.91 qsortG 3.29 1.70 1.81 2.11 STL 1.78 0.70 0.74 0.74 同じマシンの Windows で VC2005 で /O2 で コンパイル。 ランダム ソート済み 逆順ソート済み 大体ソート済み qsort 4.547 1.

    ソートの速度比較 - odz buffer
    suVene
    suVene 2007/02/14
    sort / STLはえーなぁ。
  • JavaScript でソートアルゴリズムを可視化 - bkブログ

    JavaScript でソートアルゴリズムを可視化 JavaScript でソートアルゴリズムを可視化するプログラムを書いてみました。元ネタは Jon Bentley による ソートアルゴリズムを可視化する Java アプレットです。 アルゴリズム 要素数 動作確認は Firefox 2, IE 7, Opera 9 で行いました。要素数は最大で200まで選べますが、かなり重くなるので遅いマシンで実行すると危険です。 English version is also available. ソースコード: sort-animation.js 解説 X軸が配列の添え字、Y軸が配列の要素の値を示しています。最初に要素がランダムに並んでいる配列 (値に重複なし) を作って、それを各種のソートアルゴリズムでソートする様子をアニメーションで表示します。 ただし、要素のあらゆる変更に対して毎回表示を更新し

  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • [を] Dynamic Programming による類似文字列マッチの実装例

    Dynamic Programming による類似文字列マッチの実装例 2007-01-22-4 [Programming][Algorithm] 「Modern Information Retrieval」(8.6.1 p.216) での Dynamic Programming (DP) の解説のところのアルゴリズムを 素直に Perl で実装したみた。 さらにマッチ箇所取り出しロジックも実装してみた。 DP はいわゆる「類似文字列検索(あいまい検索)」に使うと 便利なアルゴリズム。 実は、大学院でも前の会社でも、PerlやらC++やらで実装して使ってた。 単純ながら使い勝手もよく、まさに現場向きかと。 grep 式に頭から見ていくので計算量的にはイマイチなのだが、 転置インデックス検索などで範囲を絞ってから適用すれば実用上問題ない。 ■定義みたいなの Q1. 二

  • [ThinkIT] 第4回:押さえておきたいスパムフィルタの技術 (1/3)

    これまでスパムフィルタの選定基準やベンチマークテストの手法について解説してきましたが、今回は改めてスパムフィルタを支えている技術について紹介します。自社の企業システムに適したスパムフィルタを選定する上で、フィルタの仕組みやメリット・デメリットを知ることは大変重要です。 なぜなら製品選択によって、メールユーザや管理者の業務が天と地ほど異なるからです。また、「長期に渡って信頼できる技術を選択したい」「現在利用している技術はどのような位置づけなのか知りたい」あるいは「よりよい技術や利用法を知りたい」という方は、やはりある程度スパムフィルタ技術を理解する必要があるでしょう。 しかしスパムフィルタを支える技術は、コンピュータ技術の中でも難解である上、日々進化しています。しかも残念なことに、スパムフィルタ技術を知るための資料はあまり存在していません。そこで、今回は現在市場に出ている技術について、実際の

    suVene
    suVene 2006/12/21
    ページ分けうざい。
  • NaokiTakahashiの日記 - 乱数について

    suVene
    suVene 2006/12/11
    乱数の話。『俺が知っている昔のパソコン麻雀のケースだが、間の悪いタイミングでセーブしてしまうと、ロード後必ず相手が天和を上がってゲームオーバー、というものがあったそうだ』 これはひどいw
  • Algorithm - O(n log(n))より速いsort : 404 Blog Not Found

    2006年12月03日01:45 カテゴリMath Algorithm - O(n log(n))より速いsort 404 Blog Not Found:javascript - Array#sortがオレquicksortより遅い!?はちょっとした驚きですが、実はデータの種類さえ限定できれば、builtin sortを出し抜くことはJavaScriptでなくてもそれほど難しくありません。 例えば、ソートしたい対象が密集した整数値で、メモリーがふんだんにある場合には、bucket sortがあります。これを使えば、Perlにおいてすらbuilt-inを簡単に出し抜けます。 % perl bucket.pl 10000 Benchmark: running bucket, builtin, quick for at least 3 CPU seconds... bucket: 3 wallc

    Algorithm - O(n log(n))より速いsort : 404 Blog Not Found
    suVene
    suVene 2006/12/03
    sort / index につっこむバケツ
  • video blog ホームページ 制作 it at pj-blog.net

    Video Blogホームページ 制作It 求人ノート Pcウェブ デザインパソコン 販売ノート パソコンパソコン資格 Itホームページ 製作パソコン 通販 ホスティング サービスPc セキュリティIt スクールドメインホームページ 制作 会社Web デザイン

  • The Sorting Algorithm Demo

    Sorting Algorithms The animations on this page illustrate a number of different sequential and parallel sorting algorithms. The relative execution times of the animations give a very rough idea of the relative speeds of the algorithms. Each algorithm is finished when its colored lines disappear. Speed and Efficiency Analysis. Bubble Sort is a sequential algorithm, with an average case time of O(n2

  • HyperHyper EstraierEstraierのの 設計と実装設計と実装 株式会社ミクシィ 平林 幹雄 mikio@users.sourceforge.net 2006年11月6日 「オープンソースの全文検索、DBMSシステム」 講演資料 アジェンダアジェンダ

    HyperHyper EstraierEstraierのの 設計と実装設計と実装 株式会社ミクシィ 平林 幹雄 mikio@users.sourceforge.net 2006年11月6日 「オープンソースの全文検索、DBMSシステム」 講演資料 アジェンダアジェンダ • Hyper Estraierの概要 • N.M-gramインデックス • スケールアウト戦略 HyperHyper EstraierEstraierの概要の概要 HyperHyper EstraierEstraierとはとは • 読み方 – ハイパーエストレイ(ア|ヤ)(ー)? – estraier: [古仏] 迷う、はぐれる = stray • 全文検索システム – 大量の文書を対象に「フリーワード検索」ができる – 予め転置インデックスを用意することで高速に処理 • 文書規模Nに対する時間計算量 – 全体のインデク

  • JavaScriptで配列をシャッフル

    配列をシャッフル、つまりランダムに要素の位置を入れ替えるというのを、sortメソッドを使ってやってみたのだけど、明らかにダメダメなものになってしまった。その後、あーでもないこーでもないと考えたのだけど、算数が得意すぎて頭が痛くなった。ということを某所でぼやいたらはてのくんがコードを見つけてくれた。どうやらFisher-Yatesという有名なアルゴリズムでやると良いらしい。 最初に書いたコードは、 var a = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9); a.sort( function (a, b) { return Math.ceil(Math.random() * 3) - 2; } ); というもの。sortメソッドは、パラメータに与えられた関数が負の値・0・正の値を返すことによって要素の順序を決定するので、その関数がランダムに値を返せばランダ

    JavaScriptで配列をシャッフル
  • ニューラルネットワークを用いたパターン認識

    はじめに ニューラルネットワークの主要なアルゴリズムであるバックプロパゲーション法を、車両のナンバープレートの自動読取りへの応用例で紹介します。完成版のアプレットを見る 対象読者 パターン認識に興味を持ち、特にニューラルネットワークを用いる方法に関心のある人。必要な環境 J2SE 5.0を使っていますが、これより古いバージョンでも、稿のコードをコンパイルし、実行することができます。ただし、添付のコンパイル済みアプレットの実行には、J2SE Runtime Environment 5.0が必要です。また、CPUパワーが足りないと、学習に時間がかかります。 パターンには、音声、画像、図形、文字などがあります。これらが何であるかを認識することを「パターン認識」と呼び、音声認識の応用は音声入力装置に、画像認識の応用は顔や指紋の照合に使われます。文字認識は、大別して、手書き文字の認識と、印刷文字の

  • 初代Googleのアルゴリズム解説 - GIGAZINE

    いまやネットの世界を左右する強力な検索エンジンとなったGoogle。日ではまだYahoo!の方がはるかに利用者が多いのでさほどではないですが、アルゴリズムの基的な考えが似ているため、同じような結果が出てきます。つまり、既存の検索エンジンのその基礎となった一番最初のGoogleの検索アルゴリズムを理解すれば、検索エンジン対策にも役立つはず。 ということで、初代Googleのアルゴリズムをできるだけわかりやすく解説してみます。既存の他サイトの解説とは違い、きちんとした最初のGoogleの数式に基づいています。 詳細は以下から。The Anatomy of a Search Engine http://www-db.stanford.edu/~backrub/google.html Googleの画期的なランク付けの方法が数式による全自動のページランクというのは聞いたことがあると思いますが、

    初代Googleのアルゴリズム解説 - GIGAZINE
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • 1