タグ

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

  • 遺伝的アルゴリズムでブランコの漕ぎ方を学習させた。Long版/物理エンジン【むにむに】

    前回は私が作成したアルゴリズムで漕いだ。 今回はコンピュータにアルゴリズムを学習させる。 遺伝的アルゴリズムを用いた。 コンピュータは私のアルゴリズムを超えられるか? 評価:踏み台の初期位置からの最大移動距離で決めている。 選択:評価の高いほうから4人を選ぶ。 交叉:4人(A,B,C,D)からランダムに2人選ぶ(AとAなど同じ人を選ぶ場合もある)。一方から遺伝子の前半、他方から遺伝子の後半をもらう。 突然変異:ランダムな場所を選び、0と1を逆転させる。何箇所行うかはランダムに決める(0個から3個の間)。 ニコニコ動画版 https://www.nicovideo.jp/watch/sm16212939 #むにむに #munimuni #物理エンジン #遺伝的アルゴリズム

    遺伝的アルゴリズムでブランコの漕ぎ方を学習させた。Long版/物理エンジン【むにむに】
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • 竹内関数で音楽生成 - aike’s blog

    Lisperの人ならみんな知ってる竹内関数(たらいまわし関数)という関数があります。 定義としてはこんな感じ。 そのシンプルな定義からは想像もつかないほど複雑で膨大な再帰呼び出しがおこなわれるとても興味深い関数です。たとえば引数にTarai(10,5,0)を与えると343,073回も再帰呼び出しされたりします。 この関数呼び出しの引数がどのように変化するか知りたくてプログラムを書いて調べてみたところ、Tarai(10,5,0)の場合は3つの引数がそれぞれ0〜10(xは-1〜10)の間で少しずつ変化するなかで、2つの値を固定してひとつの値が下降していくような挙動があったりして、なんだか音楽の3和音のコード進行を思わせるような動き方です。 そういうことなら、ということで実際に音にして聴いてみました。Tarai関数が呼ばれるたびに引数のx、y、zを、0=ミ、1=ファ、2=ソ、……、のように音に割

    竹内関数で音楽生成 - aike’s blog
  • リンク構造を用いてスコアを計算する HITS アルゴリズム

    リンク構造を用いてスコアを計算する HITS アルゴリズム 2011-11-10-1 [Algorithm][Programming] HITS とはハイパーリンク構造(リンクや被リンクなど)を用いてウェブページのスコアを計算する方法。Google で用いられている PageRank の仲間。 HITS は Authority score(以下、auth) と Hub score(以下、hub) の2種類のスコアを算出する。 アルゴリズム概要 各ページiの持つ auth を 、hub を とする。 をウェブグラフ全てのリンクの集合とし、 はページiからjへのリンクを表す(有無:1 or 0)とする。そして、以下の式(オリジナル論文での式)を繰り返し計算し最終的な auth と hub を得る。初期値は何らかの方法で与えられるとする。 実例で解説。下図のようなウェブグラフがあるとする。 初期

    リンク構造を用いてスコアを計算する HITS アルゴリズム
  • ゲーマーでなくても仕組みぐらいは知っておきたいアルゴリズムx40

    高校生の時、数学の先生がこう言いました。 ゲームなんて、開発者が作ったルールの上で遊ばれるだけだ。 と。 その時、ゲーマーな自分はこう思いました。 ゲーマーは、開発者が作ったルールの上で遊ばれたい。 と。 というわけで、普段何気なくプレイしているゲームには、どのようなルール(アルゴリズム)があるのか。それを知るために、いろいろなゲームのアルゴリズムなどを解析しているページへのリンク集を作りました。 ほとんどのゲームのアルゴリズムは正式に発表されていないので、ユーザーの手による逆解析だったり、大学の研究による真面目な考察だったりします。(リンク先には、一部アルゴリズムと呼べないものも含まれています) 各種ゲームのプログラム解析 ドラクエ、FF、ロマサガのプログラム解析 DQ調査報告書(リンク切れ) ドラクエの物理ダメージ計算式は質的にどれも同じだが、細かい部分で微妙に違う RPG INST

    ゲーマーでなくても仕組みぐらいは知っておきたいアルゴリズムx40
  • 高速な安定ソートアルゴリズム "TimSort" の解説 - Preferred Networks Research & Development

    先日、TimSortというソートアルゴリズムが話題になりました。TimSortは、高速な安定ソートで、Python(>=2.3)やJava SE 7、およびAndroidでの標準ソートアルゴリズムとして採用されているそうです。 C++のstd::sort()よりも高速であるというベンチマーク結果1が話題になり(後にベンチマークの誤りと判明)、私もそれで存在を知りました。実際のところ、ランダムなデータに対してはクイックソート(IntroSort)ほど速くないようですが、ソートというシンプルなタスクのアルゴリズムが今もなお改良され続けていて、なおかつ人々の関心を引くというのは興味深いものです。 しかしながら、オリジナルのTimSortのコードは若干複雑で、実際のところどういうアルゴリズムなのかわかりづらいところがあると思います。そこで今回はTimSortのアルゴリズムをできるだけわかりやすく解

    高速な安定ソートアルゴリズム "TimSort" の解説 - Preferred Networks Research & Development
  • 30分でわかる高性能な圧縮符号vertical code - EchizenBlog-Zwei

    検索エンジンの転置インデックスなどデータ列を小さいデータサイズで持たせたい、という状況がある。こういう場合圧縮符号を使うのが一般的でunary符号やgamma符号、delta符号など様々な種類がある。 圧縮符号の中でイチオシなのがvertical code(vcode)。これは岡野原(@hillbig)氏によって提案された圧縮符号で単純な仕組みでdelta符号並の性能を誇っている。 記事ではvcodeのポイントを絞って30分でわかるように解説してみる。 vcodeは棚にを並べる作業を連想すると理解しやすい。棚は予め高さが決まっているので全てのが入るような棚を用意する。つまり というようなものを想像する。 この棚は8冊のが並んでいるが左から5冊目のが他よりも背が高い。このため5冊目のに合わせて背の高い棚が必要になる。だが他のは5冊目のほどに背が高くないので、5冊目が

    30分でわかる高性能な圧縮符号vertical code - EchizenBlog-Zwei
  • 単体マシン(x86/x64)における最速sort algorithmは何か? - maropuのメモ墓場

    今日はsortの日なのでしょうか・・・ twitterのタイムラインを眺めていると,tim-sortというalgorithmが話題のようです. quick sortよりも高速でmerge sortのように安定しているソートアルゴリズムtim sort http://d.hatena.ne.jp/gfx/20111019/1318981818 単体マシン(x86/x64)における高速なsort algorithmの研究はIntelが近年行っていて,有名な実装だとbufferingを利用したradix-sort実装と,SIMDを利用したmerge-sort(bitonic-sort)実装があります. 1. radix-sort: Fast Sort on CPUs and GPUs: A Case for Bandwidth Oblivious SIMD Sort, SIGMOD'10, ht

    単体マシン(x86/x64)における最速sort algorithmは何か? - maropuのメモ墓場
  • quick sortよりも高速でmerge sortのように安定しているソートアルゴリズムtim sort [勘違い] - Islands in the byte stream

    <追記>ベンチマークプログラムに誤りがありました。ソート済のシーケンスに対してソートを掛けていました。ご指摘ありがとうございます>ak氏 そんな夢のようなソートアルゴリズムがあるのかというと、あるらしいんです。それがtim sortと呼ばれるアルゴリズムです。 画期的(?)なソートアルゴリズム「Sleep Sort」:濃縮還元オレンジニュース|gihyo.jp … 技術評論社 このあたりで拾ってきたネタですね。 merge sortを改良したアルゴリズムで、安定*1しており、しかも実行速度にも優れているとか。アルゴリズムの性能の評価は済んでいるらしく、CPythonやJDK7には既に導入済みのようですね。 ならば当然Perlのソートも…と考えるわけですが、まず評価のためにJavaのソースをC++にそのまま移植してみました。それがこれ(いちおうテスト済): https://github.co

    quick sortよりも高速でmerge sortのように安定しているソートアルゴリズムtim sort [勘違い] - Islands in the byte stream
    Watson
    Watson 2011/10/19
    興味深い
  • 頻出典型アルゴリズムの演習問題としてよさげなやつ - 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

  • Post by @ruiueyama

    移動しました。 http://blog.sigbus.info/2011/10/bezier.html

    Post by @ruiueyama
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • 研究動向から考えるx86/x64最適化手法

    【DL輪読会】Hyena Hierarchy: Towards Larger Convolutional Language Models

    研究動向から考えるx86/x64最適化手法
  • アルゴリズムの勉強のしかた - きしだのHatena

    この記事で、アルゴリズムの勉強はアルゴリズムカタログを覚えることじゃないよということを書きました。 プログラムの理論とはなにか アルゴリズムの勉強というのは、スポーツで言えば腕立て伏せや走り込みみたいな基礎体力を養うようなもので、「ソートなんか実際に自分で書くことないだろう」とかいうのは「サッカーは腕つかわないのに腕立ていらないだろう」とか「野球で1kmも走ることなんかないのに長距離の走り込みいらないだろう」とか言うようなものです。 Twitterでアルゴリズムの勉強とはなにかと尋ねられて、「アルゴリズムの基的なパターンを知って、それらの性質の分析のしかたをしって、いろいろなアルゴリズムでどのように応用されているか知って、自分が組むアルゴリズムの性質を判断できるようになることだと思います。 」と答えたのですが、じゃあ実際どういうで勉強すればいいか、ぼくの知ってるからまとめてみました。

    アルゴリズムの勉強のしかた - きしだのHatena
  • 専門知識の仕入れ方 - Preferred Networks Research & Development

    今日は,普段どのようにして専門知識を仕入れているかについて書いてみようと思います.特に自分が得意でない分野を知りたいと思った時に,どうするかに注目したいと思います.自分の専門の場合は,いくらでも時間を注ぐことが出来るので,世界中のリソースを全て探し当てて勉強すれば良いのですが,ちょっと興味が有るぐらいではそこまでやる時間は取れません.なので出来るだけ効率的に分かった気になるのが目標です. まず,論文を直接読むのはあまり効率的では無いと思います.論文は広い分野の中の或る問題に対して一つの解決方法を書いているだけで,分野全体を俯瞰することは目指していません.論文だけ読んで分野全体を理解するには,最低50ぐらい読む必要が有ると思います.

    専門知識の仕入れ方 - Preferred Networks Research & Development
  • 情報工学は面白い!

    毎日の仕事に追われていると、ついITの原理原則を忘れがちになるものだ。何事にも言えることだが、基礎を理解してこそ、初めて応用ができるのである。 連載『矢沢久雄の情報工学“再”入門』では、ITの根幹を成す学問体系である「情報工学」を解説している。おそらく学生時代や入社時の研修で習った方も多いとは思うが、この機会に復習していただきたい。必ず新たな発見があるはずだ。

    情報工学は面白い!
  • AES暗号アルゴリズムに初の欠陥を発見 - うさぎ文学日記

    研究者によってAESアルゴリズムに欠陥が発見されたようです。この新しい攻撃によって、専門家の予想よりも4倍速く秘密鍵を見つけることができるとのこと。 AESは過去10年はさまざまなテストが行われていましたが、これまでは欠陥は見つかっていなかったとのことで、AESアルゴリズムにとっては初の重大な欠陥と言うことになります。これは長期的な暗号解読プロジェクトの末に、主にMicrosoft社の研究者によって発見されました。 Researchers identify first flaws in the Advanced Encryption Standard 特定のアプリケーションに使っているAESの問題ではなく、AESアルゴリズムとしての問題ですので、もちろん使用しているアプリケーションにも影響が出てくることでしょう。 4倍速いぐらいでは、AESアルゴリズムの安全性は即座に揺らがないとは思います

    AES暗号アルゴリズムに初の欠陥を発見 - うさぎ文学日記
  • 可変次数 N-gram デコードのアルゴリズム - アスペ日記

    前に書いた N-gram 漢字-かな変換 - アスペ日記 のアルゴリズムについて。 かなり縦に長いエントリになると思う。途中までは一般的な日語自然言語処理にかかわること。 例として、「かれがくるまでまつ」というひらがなの文をデコードして、対応する漢字かな混じり文にすることを考える。 こういう時に使われるのが「ラティス構造」。こういうやつ↓ (この図は一回しか出てきません。ちなみにこのために Keynote 買ったようなもの) それぞれのノードで、そこに入ってくるエッジの中で一番確率が高いものとその確率を覚えていくことで、動的計画法によって最適なパスを導くことができる。 これをプログラム上でどう実現するか。 まず、共通接頭辞検索というものを使う。 これは、あるキーを渡すと、そのキーに前から一致するようなキーを持つ候補を列挙してくれるというもの。 例えば、「くるまで」をキーとして使うと、「く

    可変次数 N-gram デコードのアルゴリズム - アスペ日記
  • 大規模グラフ処理フレームワーク Pregel のオープンソース実装 Bagel とか - Standard ML of Yukkuri

    ref: http://portal.acm.org/citation.cfm?id=1582723大規模グラフ処理フレームワーク Pregel の論文を読み, BSP (Bulk Synchronous Parallel) モデルで実装したいグラフのアルゴリズムがいくつかあったのでオープンソース実装を探してみた. GoldenOrb, Phoebus, HAMA (汎用的なBSP model), そして Bagel などいくつかの実装があるようで, GoldenOrb は Java, Phoebus は Erlang で実装されており, Bagel は Scala で書かれている. Bagel は Spark 上で動くシンプルな実装 (たったの 150 行程度) で, 大規模なタスクに対してもスケールする運用が可能に思えたので Bagel を使ってみることにした. (Phoebus は

  • 『徹底解剖「G1GC」アルゴリズム編』の参考文献でリンクが無いものたち - ドレッシングのような

    『徹底解剖「G1GC」アルゴリズム編』の参考文献にはリンクが無い論文が3つあります。この3文献も探したら PDF が落ちていたので、以下のリンクを並べておきます。 [4] Darko Stefanovi´c, Matthew Hertz, Stephen M. Blackburn, Kathryn S. McKinley, and J. Eliot B. Moss: Older-First garbage collection in practice: evaluation in a java virtual machine. MSP 2002, (ACM Press, 2002) pages 25-36. ACM Citeseer Citeseer の PDF キャッシュ [5] David F. Bacon, Perry Cheng, and V. T. Rajan: A real-t

    『徹底解剖「G1GC」アルゴリズム編』の参考文献でリンクが無いものたち - ドレッシングのような