タグ

algorithmに関するmyzkkzyのブックマーク (18)

  • ソート概要

    まあ、結局の所、今現在世の中で使われているソートアルゴリズムの大半は、マージソートか「クイックソート」をベースにしたものです。 (基的にこの2つのソートを使い、途中から「挿入ソート」というソートに切り替えるという手法が有名。) ですが、そこに至るまでの道筋には先人達の試行錯誤があったわけで、 その試行錯誤の中で生まれ、現在に至るまでその名を残すアルゴリズムは結構な種類存在します。 そして、アルゴリズム入門書籍・ウェブサイトでは、 その手のソートアルゴリズムが必ずといっていいほど頻繁に取り上げられています。 これは、以下のような理由で、アルゴリズム入門として記事にしやすいからでしょう。 いろんな種類のアルゴリズムがある それぞれの特徴が分かりやすい・説明しやすい オーダーの違うアルゴリズムの圧倒的差を体感できる ということで、このページでも様々なソートアルゴリズムについて説明したいと思いま

    ソート概要
  • はじめに - アルゴリズムとデータ構造大全

    はじめに このドキュメントは,主に競技プログラミングで出題される問題を解く際に利用できるアルゴリズムやデータ構造をまとめたものです.特定の問題にはあまりフォーカスしないため,問題を解く際の考察の仕方等の内容はありません.詳しく,正確に,分かりやすく書いていこうと思っています. このドキュメントは執筆途中です. 想定する読者 C++を用いたプログラミングに慣れている方を読者として想定しており,C++言語の仕様や,文法にはあまり触れません.また,計算量という用語についても説明しません.ただし,償却計算量など,計算量の見積もりが複雑なものについては必要に応じて説明します. コードについて このドキュメントで登場するコードは,可読性向上のため,以下のようなコードがファイルの先頭に記述してあることを前提としています.また,適切な問題を用いてコードの検証がなされている場合は,コード周辺にのように,検証

  • グラフ理論入門 | DevelopersIO

    こんにちは、ドイツのモナでございます〜 いろんなサイエンスにおいてグラフ理論がとても重要な用具となっていますが、グラフ理論ってそもそも何なのかご存知ない方も少なくもないですね。 ということで、今日は簡単にグラフ理論の基や用語など紹介したいと思います!なお、入門のため誰にでも分かるように数学的な定義は避けるようにします。 また、グラフ理論の応用は別の話ですので今回は応用の話しません〜 なぜグラフが面白いのか 具体的な応用の話はしませんが、たくさんの分野においてグラフ理論が重要となっています。 ネットワーク(例:トポロジー、ルーティングアルゴリズム) AI(例:ニューラルネットワーク) コンピューターサイエンス(例:ファイルシステム) 社会科学(例:ソーシャルネットワーク分析) 皆さんの生活の中(例:カーナビの最短ルートの計算) グラフ理論とは? ここで議論するグラフというのは、よく思い浮か

    グラフ理論入門 | DevelopersIO
  • アルゴリズムビジュアル大事典

    このサポートページでは、マイナビ出版発行の書籍「アルゴリズムビジュアル大事典」にて作成しましたシンボル、アニメーション、疑似コードを掲載いたします。また、内容のアップデートを行ってまいります。詳しい解説は、書をご参考にしてください。 アニメーションコントローラの使い方はクイックマニュアルでご確認頂けます。 補足情報が表示されているトピックにつきましては、ご注意ください。その他の訂正等は正誤表をご覧ください。ご質問、不具合等のご報告は、ご遠慮なくy.watanobe@gmail.com(渡部)までお送りください。

  • ヤフーにおけるアルゴリズム教育の取り組み

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。サイエンス1部の真鍋です。 私は博士後期課程を修了後、2016年の4月にヤフーに新卒入社し、約半年間の新卒研修を経て現在のチームに配属となりました。それ以来2年半ほど、キーワード検索エンジンの実装と、検索結果ランキングの改善に取り組んでいます。 より具体的には、ヤフーショッピングの商品検索に関わっています。検索結果ランキングは主に機械学習で生成されたモデルによっているのですが、このモデルに商品のどんな属性や、ユーザーの皆さんのどんな行動を入力したらいいかを考え、その実現に必要なコードを実装するのが主な仕事です。快適なサービスを提供するために計算コストを削減したり、これら全てのことがスムーズに進むように運用コストを削減

    ヤフーにおけるアルゴリズム教育の取り組み
  • ソートアルゴリズムを極める! 〜 なぜソートを学ぶのか 〜 - Qiita

    NTT データ数理システムでリサーチャーをしている大槻 (通称、けんちょん) です。 今回はソートについて記します。 0. はじめに データ構造とアルゴリズムを学ぶと一番最初に「線形探索」や「ソート」が出て来ます。これらのテーマは応用情報技術者試験などでも頻出のテーマであり、アルゴリズムの Hello World とも呼ぶべきものです。 特にソートは、 計算量の改善 ($O(n^2)$ から $O(n\log{n})$ へ) 分割統治法 ヒープ、バケットなどのデータ構造 乱択アルゴリズムの思想 といった様々なアルゴリズム技法を学ぶことができるため、大学の授業でも、アルゴリズム関連の入門書籍でも、何種類ものソートアルゴリズムが詳細に解説される傾向にあります。記事でも、様々なソートアルゴリズムを一通り解説してみました。 しかしながら様々な種類のソートを勉強するのもよいが、「ソートの使い方」や

    ソートアルゴリズムを極める! 〜 なぜソートを学ぶのか 〜 - Qiita
  • 機械学習アルゴリズム チート シート - デザイナー - Azure Machine Learning

    Note デザイナーは、従来の事前構築済みコンポーネント (v1) とカスタム コンポーネント (v2) の 2 種類のコンポーネントをサポートします。 これら 2 種類のコンポーネントには互換性がありません。 従来の事前構築済みコンポーネントは、主にデータ処理や、回帰や分類などの従来の機械学習タスク向けの事前構築済みのコンポーネントを提供します。 この種類のコンポーネントは引き続きサポートされますが、新しいコンポーネントは追加されません。 カスタム コンポーネントを使用すると、独自のコードをコンポーネントとしてラップすることができます。 これは、ワークスペース間での共有と、Studio、CLI v2、SDK v2 インターフェイス間でのシームレスなオーサリングをサポートします。 新しいプロジェクトでは、AzureML V2 と互換性があり、新しく更新され続けるカスタム コンポーネントを使

    機械学習アルゴリズム チート シート - デザイナー - Azure Machine Learning
  • 生禿日記 : EMアルゴリズム

    2011年10月17日10:00 カテゴリ日記マーケッターの独り言 ベイジアン・ネットワーク ベイジアン・ネットワークモデルによる顧客アプローチの改善という面白いテーマの講演があったので参加させてもらうことにしました。となれば、ベイジアン・ネットワークを勉強しましょう。 日頃はプログラムさえあれば=計算できればそれで済んでいるのですが、「解ってる?」って自問すると、結構「?」ですから、初歩から勉強です。 下の図は、病気D1〜2が血液検査の結果T1に影響を及ぼすことを表しています。 D1 D2 |  ↓ −→T1 一般に、1)ノードが確率変数で表され、2)ノード間の矢印が作用経路を表し、3)その作用の強さが条件付確率で定量化されている、有向非循環グラフをベイジアン・ネットワークと云います。相関図は「グラフィカル・モデリング」と呼び、区別されます。 要因間の作用が循環する経路がある場合には、ベ

  • EM algorithm(EMアルゴリズム、Expectation Maximization algorithm)について - データサイエンティスト上がりのDX参謀・起業家

    EMアルゴリズムはいろんなところで使われます。 基的には未知パラメータの推定方法の一種です。 とりあえず箇条書でまとめます。 提案論文:Maximun likelihood from incomplete data via the EM algorithm. Dempster AP, Laird NM and Rubin DB. JRSS B. 39,1-38. 1977. 提案者のRubinは欠測分野、因果推論の権威で次の教科書も書いています。 Statistical Analysis with Missing Data (Wiley Series in Probability and Statistics) 作者: Roderick J. A. Little,Donald B. Rubin出版社/メーカー: Wiley-Interscience発売日: 2002/09/09メディア:

    EM algorithm(EMアルゴリズム、Expectation Maximization algorithm)について - データサイエンティスト上がりのDX参謀・起業家
  • Intelligence Architecture けんきうノート - EMアルゴリズム

    たとえば、複数の信号源があって、そこから毎回確率的にどれかの信号源が選ばれて発生されるデータを観測することを考えます。 ただし観測されたデータは、どの信号源から発生されたかはわからないとします。 また、データにはノイズがのっているなど、各々の信号源も確率的な挙動を示すことにしましょう。 このとき、観測できるデータだけから、確率モデルでモデル化した信号源(と信号源の混ざり具合)のパラメータ同定を行う手法として、以下で説明するEMアルゴリズムを利用することが出来ます。 観測データを \(X\) 、観測できないデータは特に隠れ変数と言い、\(Y\) とします。 どちらも確率変数です。 \(Y\) は上の例で言えば信号源のインデックス(どの信号源が選ばれたか)になります。 観測データと隠れ変数を合わせた \(Z=(X,Y)\) を完全データと言い、システムの全ての確率変数となります。 また便宜

  • 『Akinator(アキネイター)のアルゴリズム』

    Live in the flow.IT業界とライターの二足のわらじで働くシングルおかん。 アフリカ×日Mixの3人の息子の子育てをほぼ終えて、3種6羽の可愛いインコたちとのんびり暮らしています。 「Akinator」というWebサイトをご存知だろうか。 プレイヤーが思い浮かべた有名人やキャラクターを、20個くらいの簡単な質問をすることで言い当てるプログラムをメインコンテンツとして運営されているサイトである。 Akinatorがどんなものかを理解して頂くには、ここで私がクドクド書くより実際にプレイして頂いた方が早いだろうから、とりあえずサイトを訪れてみて欲しい。 ■家:http://en.akinator.com/ ■日語版:http://jp.akinator.com/ 「女か?」「実在人物か?」「歌手か?」・・・というようなAkinatorの質問に答えていくと、有名人ならほぼ100

    『Akinator(アキネイター)のアルゴリズム』
  • Akinator アキネータの仕組み : 研究開発

    総合研究大学院大学 複合科学研究科  情報学専攻 卒 博士(情報学) 自然言語処理や機械学習データ分析に関する研究内容とwebシステムの開発と運用について書いています。 シリコンバレーベンチャーみたいに深い技術の事業化をしたいと思っています。 ご興味ある方はご連絡ください。 あれはどうやってるのでしょうか? [iPhoneアプリ] Akinator(アキネイター)が答えを当てる仕組みを考えてみました プログラマがランプの魔人の中身を分析してみる という感じに考えた人はたくさんいますが.... これでも全然Akinatorの質には迫ってないと思います。 ○たった20〜40問の質問しかしない。 登録されてる質問の総数は、当然もっと多いのですが、そもそもAkinatorは質問を十分に選定してるのです。 この点に触れて考えている人が居ないようなのですが、おそらく、これこそがAkinatorの

    Akinator アキネータの仕組み : 研究開発
  • Latent Semantic Indexing - naoyaのはてなダイアリー

    情報検索におけるベクトル空間モデルでは、文書をベクトルとみなして線形空間でそれを扱います。この文書ベクトルは、文書に含まれる単語の出現頻度などを成分に取ります。結果、以下のような単語文書行列 (term document matrix) が得られます。 d1 d2 d3 d4 Apple 3 0 0 0 Linux 0 1 0 1 MacOSX 2 0 0 0 Perl 0 1 0 0 Ruby 0 1 0 3 この単語文書行列に対して内積による類似度などの計算を行って、情報要求に適合する文書を探すのがベクトル空間モデルによる検索モデルです。 見ての通り、単語文書行列の次元数は索引語の総数です。文書が増えれば増えるほど次元は増加する傾向にあります。例えば索引語が100万語あって検索対象の文書が 1,000万件あると、100万次元 * 1,000万という大きさの行列を扱うことになりますが、単

    Latent Semantic Indexing - naoyaのはてなダイアリー
  • サービス終了のお知らせ - NAVER まとめ

    サービス終了のお知らせ NAVERまとめは2020年9月30日をもちましてサービス終了いたしました。 約11年間、NAVERまとめをご利用・ご愛顧いただき誠にありがとうございました。

    サービス終了のお知らせ - NAVER まとめ
  • 第2回 階層的クラスタリングによる特徴抽出 | gihyo.jp

    はじめに 前回は、情報可視化の基的な考え方について、HatenarMapsなどの実例を示しながら説明しました。第2回以降は、Java言語を使用して実際にプログラムを作成することで、情報可視化の実践例を示していきたいと思います。 目標 連載では、はてなブックマークの人気エントリーのデータを可視化することを最終的な目標にします。可視化にあたっては、統計学的観点から「階層的クラスタリング⁠」⁠、視覚的観点から「ツリーマップ」の手法をそれぞれ用いることにします。 Java開発環境のセットアップ 手元にJavaの開発環境がなく、連載のプログラムを試したい場合には、Sun Microsystemsが提供している統合開発環境、NetBeansの導入をおすすめします。 NetBeansはオールインワン型のIDEですので、インストールするだけで特別な設定の必要もなく、一通りの開発環境を整えることができ

    第2回 階層的クラスタリングによる特徴抽出 | gihyo.jp
  • 再帰とジェネレータ

    back [English] 概要: ある種の問題は、再帰を使うと非常に効率的に記述できる。 しかし大量のデータを生成するような再帰的手続きは厳密に制御する必要があり、 そういったプログラミングは難しい。Python 2.2 以降から使用可能になった ジェネレータを使うと、簡潔なコードを維持しつつ、 こうした手続きをかんたんに制御することができる。 この文書で使われているソースコードは こちら。 プレインテキスト版は こちら。 はじめに 再帰は非常に強力なメカニズムです。 時にこれは混乱を招くこともありますが、ふつう再帰を使うと、問題を簡単に記述することができます。 ある手続きが扱うデータ量が指数的に増えるような場合、これはとくにあてはまります。 木構造の探索がいい例でしょう。木の各節点はひとつ以上の子を持っていますが、 下へ下へとたどっていくにつれて、節点の数は指数的に増えていきます。

  • タグクラウドのアルゴリズム (それなりブログ)

    それなりブログ 20台後半からWebエンジニアに転生した人が書く、プログラム・無駄口とかのそれなりのブログ 管理人: kjirou  座右の銘: 「三度の飯より、四度の飯」 タグクラウドの大きさを決めているアルゴリズムはどうなってるのかなと、PHPのTagCloud.phpと、Rubyのtagcloud-rubyを読んみました。 両方ともCSSセレクタ生成等が処理の中に入ってしまっており、ライブラリとしてはやや微妙な感じ。(元のPerlの実装に合わせているからだと思いますが) なので、アルゴリズムだけ貰おうかと。 【最も基的なアルゴリズム】 最終的に、各タグの大きさは25段階の範囲で区分される。 ソース内ではこれを level と読んでおり、0-24の範囲で指定している。 level算出方法は以下の通り 1. 最もタグ付けされている回数が多いタグの回数を取得し、それの平方根を求

  • 1