Movatterモバイル変換


[0]ホーム

URL:


はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

タグ

関連タグで絞り込む (69)

タグの絞り込みを解除

algorithmに関するpeketaminのブックマーク (26)

You signed in with another tab or window. Reload to refresh yoursession. You signed out in another tab or window. Reload to refresh yoursession. Youswitched accounts on another tab or window. Reload to refresh yoursession. Dismiss alert

GitHub - amejiarosario/dsa.js-data-structures-algorithms-#
peketamin
  • JavaScriptで大量のオブジェクトの当たり判定を効率的にとる - Subterranean Flower Blog

    ゲームなどのコンテンツにおいて、「当たり判定」から逃れることはできません。オブジェクトとオブジェクトが衝突したかどうかという判定は、インタラクティブコンテンツにおいて最も重要な部分になるからです。 当たり判定の実装自体は難しくありません。ですが、素朴な実装ですと、対象となるオブジェクトが大量である場合に、十分なパフォーマンスが出ません。これはオブジェクトの多い、現代的なゲームでしたり、弾幕シューティングなどを作るときに大きな障害となります。 この記事では、大量のオブジェクトの当たり判定を処理する、効率的な方法について紹介します。 まずは素朴に実装してみる 当たり判定の処理を語るには、ある程度ゲームの骨組みのようなものが必要になってきます。もちろんクラスなどを使わないベタ書きでもよいのですが、大変読みにくくなってしまいます。ですので、今回は、まず簡易的なゲームエンジンのようなものを作って、そ

    JavaScriptで大量のオブジェクトの当たり判定を効率的にとる - Subterranean Flower Blog
    • キャッシュフレンドリーな二分探索 ー データ構造を再考する | POSTD

      現代のコンピュータのアーキテクチャに搭載されている高速のキャッシュメモリは、 参照の局所性 に優れた(=一連のものとしてアクセスした要素が、互いに近いメモリのアドレスに配置されている)データ構造を好みます。これは、 Boost.Containerの平坦な(ツリー状ではない)連想コンテナ のようなクラスを陰で支えている理論的根拠です。要素を連続的に(かつ順序だてて)保存すると同時に、標準的なC++ノードベースの連想コンテナの機能性をエミュレートします。以下にあるのは、要素が0から30の範囲の時、 boost::container::flat_set の中で 二分探索 がどのように行われるのかを示した例です。 探索で目的の値を絞り込むにつれて、アクセスされる要素は次第に近くなっていきます。そのため、最初のうちは大きな距離を飛び越えていくような感じであっても、参照の局所性は このプロセスの最後の

      キャッシュフレンドリーな二分探索 ー データ構造を再考する | POSTD
      • 最適化超入門

        Optunaを使ったHuman-in-the-loop最適化の紹介 -2023/04/27 W&B 東京ミートアップ #3

        最適化超入門
        • Making of: Introduction to A*

          2 Sep 2014 (Warning: thesenotes are rough – the main page is here and these are somenotes I wrote for a few colleagues and then I kept adding toit untilit became a longer page) Several people have asked me how I make the diagrams on my tutorials. I need to learn the algorithm and data structures I want to demonstrate. Sometimes I already know them. Sometimes I know nothing about them.It varie

          Making of: Introduction to A*
          • Visualizing Algorithms

            The power of the unaided mind is highly overrated… The real powers come from devising externalaids that enhance cognitive abilities. —Donald Norman Algorithms are a fascinating use case for visualization. To visualize an algorithm, we don’t merely fit data to a chart; there is no primary dataset. Instead there arelogical rules that describe behavior. This may be why algorithm visualizations are

            • サービス終了のお知らせ

              サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

              • 配列のランダマイズ、出来ますか?(前編)

                先日、When Random Isn't Random Enough: Lessons from an Online Poker Exploit(英文注意)という記事がタイムラインに流れてきて、同僚と少し配列ランダマイズの話になったので備忘録として書いておきます。 配列のランダマイズというのは、たとえば上の記事にあるようなトランプのシャッフルであるとか、音楽プレイヤーの再生リストのランダム再生とかで実装しますね。ゲームを作るときなどには実装することが多いでしょうが、記事を読む前に、自分だったらどのように実装するか是非少し考えてみてください。 自分が中学生の頃に書いた記憶のあるコードは、たしか次のようなものでした。 // 配列の初期化 var a = []; for(var i = 0; i < 1000; i++) { a[i] = i; } function swap(s, d) { v

                • 完備辞書(簡潔ビットベクトル)の解説 - アスペ日記

                  以前、「簡潔データ構造 LOUDS の解説」というシリーズの記事を書いたことがあります。 LOUDS というのは木構造やtrieを簡潔に表すことができるデータ構造なのですが、この中で「簡潔ビットベクトル」というものについてはブラックボックスとして扱っていました。 また、中学生にもわかるウェーブレット行列を書いたときも、その中で出てきた「完備辞書」の実装には触れませんでした。 この「簡潔ビットベクトル」「完備辞書」は、同じものを指しています*1。 今回は、このデータ構造*2について書いてみます。 完備辞書でできること ビット列に対する定数時間の rank と selectです*3。 rank()は、「ビット列の先頭から位置 k までに、1 のビットがいくつあるか」*4。 select()は、「ビット列の先頭から見て、n 個目の 1 のビットの次の位置はどこか」*5。 それぞれ例を挙げます。

                  完備辞書(簡潔ビットベクトル)の解説 - アスペ日記
                  • http://fible.s5.xrea.com/laboratory/othello/othello.html

                    • グラフを切る - ita’s diary

                      「最高のカレーを作れ」問題 https://codeiq.jp/ace/yuki_hiroshi/q210 面白いです。別の例に例えると、128人の集団を2つの組に分けます。仲のいいペアは、なるべく同じ組になるようにしたい、という問題。 128個の粒子を用意して、仲のいい同士が引き合い、それ以外は反発するようにして動かすと以下のようになりました。 なんとそういう設問でしたか。集団を二つに切るなら、左の太線で切れば11組の好き同士を分断するだけで済みます。これがおそらく最適解。右が12でわずかに違うところが絶妙。 確実に最適解を求めるアルゴリズムも、複雑だけどあります。以前の自分の日記から引用 最大流/最小切断定理 たとえば東京都内から筑波に人が一斉に移動するというシチュエーションを考える。東京に核ミサイルが落ちてきて筑波にシェルターがあるとか。このとき何時間で避難可能か、という問題を解く

                      グラフを切る - ita’s diary
                      • テストの実行 - アント コロニー最適化

                        このブラウザーはサポートされなくなりました。Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 この記事は機械翻訳されたものです。 テストの実行 蟻コロニー最適化 (機械翻訳) James McCaffrey コード サンプルをダウンロードします。 今月のコラムでは巡回セールスマン問題 (TSP) を解決するために蟻コロニー最適化 (ACO) アルゴリズムを実装する c# コードを紹介します。 ACO アルゴリズムはアリのフェロモン レイアウト動作に基づいて、人工知能技術です。 グラフを最適パスを求める極めて複雑な問題の解決策を見つけるために使用できます。 どこに向かっているを参照する最良の方法でスクリーン ショットを見ている図 1。 この例では、デモ、TSP のインスタンスをそれぞれ 60 の都市の

                        テストの実行 - アント コロニー最適化
                        • P2Pの専門知識ゼロから独自DHTを実装評価するまでの学習方法と参考資料まとめ - 情報科学屋さんを目指す人のメモ(FC2ブログ版)

                          何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。 P2P、特にDHTの前提知識が無い状態から、オリジナルDHTアルゴリズムを実装・評価できるようになるまでの学習方法と参考資料をまとめました。 基的なアルゴリズムの仕組みから、実装評価に用いるツールキットの使い方までを短期間で学習することが出来ます。 「P2Pに関する卒論を書こうと思っている人」や「P2Pアプリケーションの開発前に、アルゴリズムをテストしたい人」、「なんとなくP2Pアルゴリズムに興味が出た人」などにぴったりだと思います。また、研究室での後輩教育用資料にするのも良いと思います。実際に使いましたし。 ここで紹介する資料一覧は以下の通りです。 資料1:「ChordアルゴリズムによるDHT入門」 資料1ーオプション1:「DHTアルゴリズムSymphony

                          • 人工知能 - 粒子群最適化

                            このブラウザーはサポートされなくなりました。Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 粒子群最適化 James McCaffrey コード サンプルのダウンロード 粒子群最適化 (PSO: Particle Swarm Optimization) は人工知能 (AI) の技術で、解決が極めて困難または不可能に思える、数値の最大化および最小化問題の近似解法を見つけるために使用します。今回の記事で説明する PSO のバージョンは、J. Kennedy 氏と R. Eberhart 氏が 1995 年に発表した研究論文で初めて紹介されました。PSO は、鳥の群れや魚の群雄などのグループ行動に基づいて大まかにモデル化されます。PSO の感触をつかみ、この記事の目的を理解するため、まず図 1 をご覧くだ

                            人工知能 - 粒子群最適化
                            • 頻出典型アルゴリズムの演習問題としてよさげなやつ - 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

                              • 自然言語処理は Python がいちばん - 武蔵野日記

                                現在大学1年生の人で3年後には NAIST に (というか松研に) 来たいという人から「どんなプログラミング言語やっておくといいですか」と質問されたりするのだが、なかなか答えるのは難しい。自分はPerlPython がメインでときどきC++/C# を使ったりするのだが、どれが一番いいかはなんとも言えないので、自然言語処理以外に転向する可能性も考えると、C とかC++ とかJava とか(授業でそちらをやるのであれば)を最初の武器に選んだ方がいいのでは、と思ってはいる。 そんなこんなで最近 Hal Daume III (機械学習を用いた自然言語処理では非常に有名な人) のブログで Language of Choice というタイムリーなエントリーが出ていたので、紹介すると、「それなりに大きな自然言語処理のプロジェクトでどのプログラミング言語を使うのか」というアンケート結果が出

                                自然言語処理は Python がいちばん - 武蔵野日記
                                • 機械学習超入門IV 〜SVM(サポートベクターマシン)だって30分で作れちゃう☆〜 - EchizenBlog-Zwei

                                  ニーズがあるのかさっぱりわからない機械学習超入門だけどひっそり続けていきたい。 前回は識別関数の基礎であるパーセプトロンの簡単な説明とPerlによる実装を解説した。実はこの時点でかの有名なSVM(Support VectorMachine、サポートベクターマシン)もほぼ完成していたのだ!というわけで今回はSVMをPerlで作ってしまうお話。 参考: これからはじめる人のための機械学習の教科書まとめ - EchizenBlog-Zwei機械学習超入門 〜そろそろナイーブベイズについてひとこと言っておくか〜 - EchizenBlog-Zwei機械学習超入門II 〜Gmailの優先トレイでも使っているPA法を30分で習得しよう!〜 - EchizenBlog-Zwei機械学習超入門III 〜機械学習の基礎、パーセプトロンを30分で作って学ぶ〜 - EchizenBlog-Zwei さて

                                  機械学習超入門IV 〜SVM(サポートベクターマシン)だって30分で作れちゃう☆〜 - EchizenBlog-Zwei
                                  • アルゴリズマーのそだてかた - chokudaiのブログ

                                    発の「Topcoderトレーニング講座」は最強最速アルゴリズマーへの最短経路 こんな記事も出して貰えたところですし、凄く簡単に、自分の中での教育論みたいな部分を少し話してみようかと思います。 ある物事を習得するのに必要なのは何か?という話をした時に、僕が絶対に必要だと思っているのは、「すげぇ!!」ってなることだと思っています。当然だとは思いますが、せっかくなので具体例を見ていきましょう。Wikipediaにおける、動的計画法の記事を見ると、このようになっています。 動的計画法(どうてきけいかくほう、英: DynamicProgramming, DP)は、コンピュータ科学の分野において、ある最適化問題を複数の部分問題に分割して解く際に、そこまでに求められている以上の最適解が求められないような部分問題を切り捨てながら解いていく手法である。分割統治法がトップダウン的な手法であるのに対し、

                                    アルゴリズマーのそだてかた - chokudaiのブログ
                                    • 今すぐフォローすべき競技プログラミング界のスーパーエンジニア - chokudaiのブログ

                                      今すぐフォローすべきnode.js界のスーパーエンジニアの便乗です。競技プログラミングは、最近ようやく書籍化されたものの、やはり殆どの知識はインターネットに頼ることとなります。解けない問題を独力で解決するのは非常に難しく、特にリアルタイムのコンテストなどに出場される際には、こうした人々をフォローし、考え方・解法を徐々に身に着けていくことで、様々な問題を解決できるようになるでしょう。 筆者の主な活動場所がTopCoderなので、TopCoderの人がメインになっちゃうかと思われます。あと無断で紹介してるので、マズかったら教えてください。 紹介前の補足 実績を書く際に、TopCoderのRatingを引用するので、TopCoderのレーティング分布を紹介しておきます。 この分布における、Rating 2200以上の赤い人が、RedCoderと呼ばれる人達です。 Algorithm部門において

                                      今すぐフォローすべき競技プログラミング界のスーパーエンジニア - chokudaiのブログ
                                      • 残りのブックマークを読み込んでいます12次のページ
                                      • お知らせ

                                        もっと読む

                                        公式Twitter

                                        • @HatenaBookmark

                                          リリース、障害情報などのサービスのお知らせ

                                        • @hatebu

                                          最新の人気エントリーの配信

                                        処理を実行中です

                                        キーボードショートカット一覧

                                        j次のブックマーク

                                        k前のブックマーク

                                        lあとで読む

                                        eコメント一覧を開く

                                        oページを開く

                                        はてなブックマーク

                                        公式Twitter

                                        はてなのサービス

                                        • App Storeからダウンロード
                                        • Google Playで手に入れよう
                                        Copyright © 2005-2025Hatena. All Rights Reserved.
                                        設定を変更しましたx

                                        [8]ページ先頭

                                        ©2009-2025 Movatter.jp