タグ

algorithmに関するsabroのブックマーク (155)

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

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

  • 50分で学ぶアルゴリズム / Algorithms in 50 minutes

    スライドでは、有名なアルゴリズムを概観し、アルゴリズムに興味を持っていただくことを目標にします。 第 1 部:アルゴリズムとは 第 2 部:学年を当ててみよう 第 3 部:代表的なアルゴリズム問題 第 4 部:コンピュータとアルゴリズム

    50分で学ぶアルゴリズム / Algorithms in 50 minutes
  • 深層強化学習アルゴリズムまとめ

    はじめに 深層強化学習の分野では日進月歩で新たなアルゴリズムが提案されています. それらを学ぶ上で基礎となるアルゴリズム(というより概念に近い?)はQ学習, SARSA, 方策勾配法, Actor-Criticの4つだと思われるので, これらを軸としてまとめてみたいと思います. 以下の4点はあらかじめご了承ください. コードは書いていません. 概念のみの説明です 他のアルゴリズムの基礎となりうる重要な概念については詳しく書きました. その他については簡潔に書きました 深層学習についてはある程度理解している読者を想定しています 書いているうちに規模がどんどん大きくなってしまったので, どこかに必ず間違いや不足があります. 「この式がおかしい!」「このアルゴリズムも追加するべき!」などコメントがあればぜひお願いします 全体像 扱うアルゴリズムを相関図にしてみました(私のイメージです). まず,

    深層強化学習アルゴリズムまとめ
  • Bing検索の裏側―BitFunnelのアルゴリズム - Hatena Developer Blog

    はてなアプリケーションエンジニアの id:takuya-a です。 この記事では、Microsoft の検索エンジン Bing で採用された BitFunnel アルゴリズムを紹介します。 昨年のエンジニアアドベントカレンダーでは、文字列検索のアルゴリズム全般について紹介しました(文字列アルゴリズムの学びかた - Hatena Developer Blog)。今年はそのなかでも、インデックス(索引)を使った全文検索アルゴリズムについてのお話になります。 この記事の前半は全文検索の入門にもなっていますので、検索技術になじみがない方にも楽しんでいただけるのではないでしょうか。 逆に、「そんなのもう知ってるよ!」という方は、題である「BitFunnel アルゴリズムの詳細」から目を通していただければと思います。 この記事は、はてなエンジニア Advent Calendar 2017の21日目の

    Bing検索の裏側―BitFunnelのアルゴリズム - Hatena Developer Blog
  • 画風を変換するアルゴリズム - Preferred Networks Research & Development

    Deep Neural Networkを使って画像を好きな画風に変換できるプログラムをChainerで実装し、公開しました。 https://github.com/mattya/chainer-gogh こんにちは、PFNリサーチャーの松元です。ブログの1行目はbotに持って行かれやすいので、3行目で挨拶してみました。 今回実装したのは”A Neural Algorithm of Artistic Style”(元論文)というアルゴリズムです。生成される画像の美しさと、画像認識のタスクで予め訓練したニューラルネットをそのまま流用できるというお手軽さから、世界中で話題になっています。このアルゴリズムの仕組みなどを説明したいと思います。 概要 2枚の画像を入力します。片方を「コンテンツ画像」、もう片方を「スタイル画像」としましょう。 このプログラムは、コンテンツ画像に書かれた物体の配置をそのま

    画風を変換するアルゴリズム - Preferred Networks Research & Development
  • バンディットアルゴリズム入門と実践

    東京大学 松尾研究室が主催する深層強化学習サマースクールの講義で今井が使用した資料の公開版です. 強化学習の基礎的な概念や理論から最新の深層強化学習アルゴリズムまで解説しています.巻末には強化学習を勉強するにあたって有用な他資料への案内も載せました. 主に以下のような強化学習の概念やアルゴリズムの紹介をしています. ・マルコフ決定過程 ・ベルマン方程式 ・モデルフリー強化学習 ・モデルベース強化学習 ・TD学習 ・Q学習 ・SARSA ・適格度トレース ・関数近似 ・方策勾配法 ・方策勾配定理 ・DPG ・DDPG ・TRPO ・PPO ・SAC ・Actor-Critic ・DQN(Deep Q-Network) ・経験再生 ・Double DQN ・Prioritized Experience Replay ・Dueling Network ・Categorical DQN ・Nois

    バンディットアルゴリズム入門と実践
  • コンピュータビジョンと機械学習 徹底入門 -現実的な画像検索のためにやってきたこと- #TokyoWebmining

    コンピュータビジョン&機械学習の入門的な内容について ※事例のランダムサンプリングを追加:修正 ※再現率、適合率の名称逆だったので入れ替え:修正 Read less

    コンピュータビジョンと機械学習 徹底入門 -現実的な画像検索のためにやってきたこと- #TokyoWebmining
  • 一般向けのDeep Learning

    Gradient Boostingは近年Kaggleなどのコンペティションで注目を集めている分類や回帰問題に対するアルゴリズムの一つである。XGBoost, LightGBM, CatBoostなどが有名ではあるが、それらを土台にして近年はDeepGBMやNGBoostといった新規アルゴリズムの登場、汎化理論解析の進展、モデル解釈性の付与方法の多様化など、理論から応用まで多岐にわたる研究が行われている。チュートリアルでは、Gradient Boostingに関する近年の研究動向やテクニックを、それらの社会実装までを見据えながら紹介していく。

    一般向けのDeep Learning
  • 中学生にもわかるウェーブレット行列 - アスペ日記

    id:echizen_tm さんの記事「ウェーブレット木の効率的で簡単な実装 "The Wavelet Matrix"」から始まったウェーブレット行列ブームから半年以上が過ぎ、すでに枯れた技術として確立されつつある感があります。 …嘘です。 日以外ではあんまり来ていません。 理由としては、やはりアルファベット圏では単語境界が明確であるため、こちらの記事で書かれているような「キーワード分割の難易度」といったことがあまり問題にならないということがあるかもしれません。 まあ、そういうわけで局所的に来ているウェーブレット行列ですが、日語をはじめとする単語境界のない言語圏にとっては重要なネタであると思うため、解説記事を書き直して*1みようと思います。 ウェーブレット行列でできること 主となる操作は、文字列に対する 定数時間の rank() と select()*2 です。 rank() は、「文

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

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

    古くて新しい自動迷路生成アルゴリズム - やねうらおブログ(移転しました)
  • [SQEXOC 2012]FFXIVで使われているAI技術〜敵NPCはどうやって経路を探索しているのか?

    [SQEXOC 2012]FFXIVで使われているAI技術〜敵NPCはどうやって経路を探索しているのか? ライター:米田 聡 スクウェア・エニックスが2012年11月23日と24日の両日開催した「スクウェア・エニックス オープンカンファレンス」の最後には「AIセッション」が用意されていた。AIセッションは前半と後半に分かれ,前半は「ファイナルファンタジーXIV: 新生エオルゼア」(以下,新生FFXIV)における経路探索の実装に関する実践的な解説,後半はゲームAIの第一人者とも評される三宅陽一郎氏による,Luminous Studio用AIエンジンのやや概念的な話という構成だった。稿では,まず前半の,より実践的なセッションから紹介してみたい。 テーマは,「MMORPGでマップ上を移動する敵NPCの経路をどう決めるのか」である。複雑で広いマップを有するMMORPGでは,移動する経路を賢く選択

    [SQEXOC 2012]FFXIVで使われているAI技術〜敵NPCはどうやって経路を探索しているのか?
    sabro
    sabro 2012/12/09
    セカンドライフにも最近PathfindingっていうAPIが実装されて、NPCに経路探索させることができるようになった。これからはセカンドライフにもモンスターが増えるかも http://netaverse.info/2012/02/17/1744.html
  • へ、変態っ!!読めないからやめてっ!bit使ったデータ構造・アルゴリズム実装集 - Negative/Positive Thinking

    この記事はCompetitive Programming Advent Calendar Div2012の2日目の記事です。 12月20日追記: Darseinさんが20日目の記事で、ビット演算についての詳しい説明を紹介してくださっています!必読ですね!!!!:) はじめに Y^´       ∨// /,∠ ,. ' /l/// /, ' , '/ ! | l }´     〈 〉    変  〈/ , ' // ̄`>< /// /// _,.=‐|'"´l l〈  変  / 〈    態.   ∨, '/l|   ,.'-‐、`//`7/  /''"´__ | ハ l丿  態   { 人)   ! !   (/!  |ヽ〈_ ・.ノ〃  〃 /  '/⌒ヾ.! ,' !く   ! !  (_ ト、__/   ヽ、_,.イ    /l l |:::::::```/:::::/...´..

    へ、変態っ!!読めないからやめてっ!bit使ったデータ構造・アルゴリズム実装集 - Negative/Positive Thinking
  • ImageMagick 改造入門 (その弐) 減色処理前編 | GREE Engineering

    こんにちは。クライアント基盤チームのよやです。 アバター等を表示する為に PNG や JPEG の画像を元に GIF アニメーションを生成する事がよくありますが、GIF は 256色までしか扱えない為、元画像が数万といった単位で色を使っていると減色処理に大変時間がかかります。そこで、ImageMagick の減色処理を改造して高速化した事例をご紹介します。 尚、一度に読む分量ではまとめ切れない為、前編と後編に分けました。前編は減色処理、後編はその改造について説明します。 プログラム構成では上の図の magick/quantize.c が減色処理に相当します。 まず、減色処理の一般的な話から始めます。 減色の利点 Web で見かける画像ファイルの多くは、1つのpixel(描画の最小単位)に対して、Red, Green, Blue が各々8bits で計 24bits(= 3bytes) 、透

    ImageMagick 改造入門 (その弐) 減色処理前編 | GREE Engineering
  • システム・エンジニアの基礎知識

    静岡理工科大学情報学部コンピュータシステム学科菅沼研究室のページです.主として,プログラミング言語( HTML,C/C++, Java, JavaScript, PHP, HTML,VB,C# ),及び,システムエンジニアとしての基礎知識(数学,オペレーションズ・リサーチやシステム工学関連の手法)を扱っています.

  • プログラミングコンテストでの乱択アルゴリズム

    前編 (平衡二分探索木編) はこちら http://www.slideshare.net/iwiwi/2-12188757

    プログラミングコンテストでの乱択アルゴリズム
  • http://swatmac.info/?p=942

    See related links to what you are looking for.

  • アルゴリズムを学ぼう

    関連サイト出版社による関連ページが公開されています。 アルゴリズムを学ぼう (KADOKAWA/アスキー・メディアワークス) 関連書籍書の続編『続・アルゴリズムを学ぼう』も好評発売中です。 内容紹介書のテーマは、ガチのアルゴリズムとデータ構造、そして計算量です。 いや、確かに書は女の子がいろいろでてきたり、小話が入っていたりと、ゆるふわなオーラが漂っています。しかし、あえていいましょう。それは、見かけだけである、と。 プログラミングを学ぶにあたって、アルゴリズムとデータ構造は、どの言語を用いるにしてもすべての基礎であり、避けて通ることはできない道です。アルゴリズムとデータ構造を知らずにプログラムを書くことは、無免許で車を運転するぐらいに危険な行為です。 しかし、アルゴリズムとデータ構造をきちんと理解せずに、プログラムを書いているプログラマーが多数いるのも事実です。それは、アルゴリズム

    アルゴリズムを学ぼう
  • MapReduceできる10個のアルゴリズム - データサイエンティスト上がりのDX参謀・起業家

    HadoopとMahoutにより、ビッグデータでも機械学習を行うことができます。Mahoutで実装されている手法は、全て分散処理できるアルゴリズムということになります。Mahoutで実装されているアルゴリズムは、ここに列挙されています。論文としても、2006年に「Map-Reduce for Machine Learning on Multicore」としていくつかのアルゴリズムが紹介されています。 そこで今回は、(何番煎じか分かりませんが自分の理解のためにも)この論文で紹介されているアルゴリズムと、どうやって分散処理するのかを簡単にメモしておきたいと思います。計算するべき統計量が、summation form(足し算で表現できる形)になっているかどうかが、重要なポイントです。なってない場合は、”うまく”MapReduceの形にバラす必要があります。 ※例によって、間違いがあった場合は随時

    MapReduceできる10個のアルゴリズム - データサイエンティスト上がりのDX参謀・起業家
  • ボロリン | 3DCGプログラミングをしよう ch.2

    ch.2 座標の変換をしよう 0. 物体の変形について 前回で、ポリゴンがどんなものかというのは分かりましたね。今度はポリゴンで作った物体を変形させてみましょう。 頂点を移動させているだけのものがほとんどです。 (ただし、形状が著しく変わるとか、詳細度を変化させるとかいう場合には、頂点数やポリゴン数をダイナミックに変化させる必要が出てきます。でも、このへんは結構難しいのでここではやらないかも。むしろ筆者もよく分かっていないような。) で、基的な変換については、OpenGLとかDirectXとかでも普通にサポートしてるので、別にいいっちゃいいんだけど、割と重要だと思うので説明しておきます。 今回はベクトルとか行列とかが ワンサカ出てきますが、まあこいつは厄介そうに見えて、その実は数字が並んでるだけなので、そんなに気にすることはないと思います。(もし分からなそうだったら、

  • サービス終了のお知らせ - NAVER まとめ

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

    サービス終了のお知らせ - NAVER まとめ