タグ

algorithmに関するtarchanのブックマーク (161)

  • ディープマインドがAIで高速アルゴリズムを発見、C++に採用

    ディープマインドはAI「アルファデブ」を使って、人間が考案したアルゴリズムよりも高速にソートを実行するアルゴリズムを発見した。アルゴリズムはすでにC++に取り入れられ、使用されているという。 by Will Douglas Heaven2023.06.13 19 12 ディープマインド(DeepMind)は、基礎コンピューター科学における発見を続けている。昨年、同社はゲームをプレイする人工知能AI)「アルファゼロ(AlphaZero)」を使って、さまざまなコードの核となる重要な数式の計算を高速化する新たな手法を発見し、50年前の記録を更新した。 そして今、同社(2023年4月に姉妹会社のAI研究所と統合し、グーグル・ディープマインドと改名)は同じ偉業を再度達成した。それも二度もだ。英国を拠点とする同社はアルファゼロの新バージョンである「アルファデブ(AlphaDev)」を使用し、それまで

    ディープマインドがAIで高速アルゴリズムを発見、C++に採用
  • DeepMind、AIで人間考案のものより優秀なソートアルゴリズムを発見 最大70%高速化

    Google傘下のAI企業Google DeepMindは6月7日(現地時間)、アルゴリズムを開発するAIAlphaDev」が、人間が考えたものより高速なソートアルゴリズムを発見したと発表した。 ソートアルゴリズムは、入力されたデータを一定のルールに基づいて並べ替えるもの。ネット検索結果の並べ替えやランキング制作などIT技術の根幹を担う技術の一つ。今回AlphaDevが考案したアルゴリズムは既存のものに比べて、少量のデータなら最大70%、数十万規模の大量のデータなら約1.7%速く処理できた。 DeepMindはAlphaDevに新しいアルゴリズムを発見させるため、ソートの作業を「組み立てゲーム」としてプレイさせた。「正確にソートできる」「既存のアルゴリズムより高速である」という2点を満たせばクリアとした。 関連記事 OpenAIやDeepMindのCEOやトップ研究者ら、「AIによる人

    DeepMind、AIで人間考案のものより優秀なソートアルゴリズムを発見 最大70%高速化
  • Pythonコードを35000倍に高速化したい

    はじめに Pythonは世界的にも人気のあるプログラミング言語ですが、実行速度については課題があります。Pythonの実行速度を高速化したい、という要求は根強く、これまでにも様々な処理系が開発されています。 この記事はPythonで書かれたコードを35000倍に高速化するにはどのような方法があるかについてまとめたものです。 この記事は: Pythonで書かれたアルゴリズムを35000倍に高速化する 事前コンパイル、並列化、SIMD演算を駆使する 最終的に44000倍まで高速化できた なぜ35000倍? 2023年5月2日にModular社よりPythonの使いやすさとC言語の性能を兼ね備える新しいプログラミング言語、Mojoの開発について発表がありました。低レベルのハードウェア向けにコンパイル可能なこと、文法的にはPythonを踏襲しており、既存のPythonライブラリを利用可能であること

    Pythonコードを35000倍に高速化したい
  • The Algorithms

    What is an Algorithm?An algorithm is a set of rules that takes in one or more inputs, then performs inner calculations and data manipulations and returns an output or a set of outputs. In short, algorithms make life easy. From complex data manipulations and hashes, to simple arithmetic, algorithms follow a set of steps to produce a useful result. One example of an algorithm would be a simple funct

    The Algorithms
  • 安全でないEd25519の実装 - テリロジーワークス

    Ed25519はデジタル署名アルゴリズムです。 これは楕円曲線デジタル署名アルゴリズム(ECDSA)の最新の代替品としてよく使用されます。 Ed25519は、ECDSAよりもオープンで安全で高速であるため、多くの領域、特にブロックチェーンおよび暗号通貨プラットフォームで利用されることが増えてきています。 過去にECDSAアルゴリズムに依存した機構のもので秘密鍵が漏洩してしまったという事例があったりすることから使用されるアルゴリズムが変更されたというような経緯もあると考えられます。 そんな状況にあるEd25519なのですが、このEd25519にも問題が確認されています。 厳密にはアルゴリズムに問題があったということではなく、アルゴリズムを実装したいくつかのライブラリに脆弱性がありました。 Ed25519の要求通りに実装すると十分に性能を発揮しにくくなる要素があることがわかっています。 そこに

    安全でないEd25519の実装 - テリロジーワークス
  • PhobosLab

    Introducing QOI — the Quite OK Image Format. It losslessly compresses RGB and RGBA images to a similar size of PNG, while offering a 20x-50x speedup in compression and 3x-4x speedup in decompression. All single-threaded, no SIMD. It's also stupidly simple. tl;dr: 300 lines of C, single header, source on github, benchmark results here. I want to preface this article by saying that I have no idea wh

  • ソートの計算量と現実のプログラム

    ソートアルゴリズムについての小ネタ。「ソートは迷わずクイックソート」と言われることがよくありますが[1]、場合によってはそれが最適ではないこともあるという話。ここではクイックソートと挿入ソートを比較します。 O-記法で書くとクイックソートの計算量はオーダーはO(n*log(n))で、単純な挿入ソートのそれはO(n^2)なので、見かけ上は前者のほうが速そうなのです。ただし、あくまでこの記法はnが無限に近づいたときの振舞いについて述べているだけなので、現実的なプログラムでは必ずしもクイックソートのほうが速いというわけではないです。 次のような仕様のプログラムで実際に両者の速度を比較してみましょう。 所定の下の整数要素を持つ配列をソートして、その所要時間出力する 第一引数(len): 要素数 第二引数(type): アルゴリズムの種類。'i'が挿入ソート。'q'がクイックソート。 この仕様を実装

    ソートの計算量と現実のプログラム
  • スーパーマリオのジャンプのアルゴリズム - Qiita

    先日、気持ちのいいジャンプを目指してというQiitaの記事を見かけました。記事中では、マリオのジャンプについても触れられています。マリオというと、マリオブラザースやスーパーマリオブラザース等々、色々あるのですが、これはおそらくスーパーマリオブラザースの事だと思われます。ジャンプアクションゲームといったらスーマリですね。 そのマリオのジャンプの仕組みは「マリオの速度ベクトルを保存しておいて座標を計算するんじゃなくて~」と書かれていて、別サイトのブログへのリンクが張られています。 マリオのジャンプ実装法とVerlet積分 ただ、この記述については不正確であるという別のブログもあったりします。 マリオの完コピvol.28 ジャンプの解析と修正 ホントのところはどうなんでしょうか?世界で最も有名なゲームジャンプがどのように処理されているのか気になったので調べてみることにしました。 原典にあたる

    スーパーマリオのジャンプのアルゴリズム - Qiita
  • cakes(ケイクス)

  • cakes(ケイクス)

    cakesは2022年8月31日に終了いたしました。 10年間の長きにわたり、ご愛読ありがとうございました。 2022年9月1日

    cakes(ケイクス)
  • ビル・ゲイツもAI分野の必読書と推した『マスターアルゴリズム』邦訳が原著刊行から5年以上の時を経て出る - YAMDAS現更新履歴

    www.kamishima.net ペドロ・ドミンゴスの『The Master Algorithm』は、ビル・ゲイツが AI 分野の必読書に挙げていたので注目し、ワタシも何度か文章の中で引き合いに出している。 ユートピアのキモさと人工知能がもたらす不気味の谷 - WirelessWire News(ワイヤレスワイヤーニュース) 我々は信頼に足るアルゴリズムを見極められるのか? - WirelessWire News(ワイヤレスワイヤーニュース) そして、邦訳の刊行が期待される洋書を紹介しまくることにする(2017年版)でも取り上げているが、この原著が刊行されたのは2015年である。それから5年以上経ち、もうこれは邦訳の話は流れてしまったかと半ば諦めていたところ、『マスターアルゴリズム 世界を再構築する「究極の機械学習」』の邦題で刊行される。ワオ! マスターアルゴリズム 世界を再構築する「究

    ビル・ゲイツもAI分野の必読書と推した『マスターアルゴリズム』邦訳が原著刊行から5年以上の時を経て出る - YAMDAS現更新履歴
  • 最高にエッチな画像が遺伝的アルゴリズムで生み出される様子を見て反省する日々 - 本しゃぶり

    「なぜ見抜けなかったのか」 画像の選択を迫られるたびに俺は自問する。 進化の筋道を正しく予測するのは難しい。 遺伝的アルゴリズムの活用 2021年から、新たに習慣となった行為はあるだろうか。俺はある。PCの前に座り、二つの画像のうち、どっちの方がエッチかを選ぶ。これがモーニングルーティンとなっている。もちろんこれの話だ。 遺伝的アルゴリズムで最高にエッチな画像を作ろう! これまで何度も話題になっていたし、直近でも関連ツイートがバズっていたので、記事を読む人の大半は知っているだろう。名前の通り、遺伝的アルゴリズムでエッチな画像を作るシステムである。人が画像を選択することで、よりエッチな画像が生き残り、高みへと一歩近づく。最初はノイズのようなモザイク画だったが、10,000世代を超えた現在では「女性の裸体」と認識できるものに仕上がっている。 0世代と10,000世代 現状について「最高にエッ

    最高にエッチな画像が遺伝的アルゴリズムで生み出される様子を見て反省する日々 - 本しゃぶり
  • 難問の巡回セールスマン問題、粘菌に学んだ新型コンピュータで北海道大学が解決

    難問の巡回セールスマン問題、粘菌に学んだ新型コンピュータで北海道大学が解決 大学ジャーナルオンライン編集部 北海道大学の葛西誠也教授らの研究グループは、Amoeba Energy株式会社と共同で、アメーバ生物である粘菌の行動に学んだ新型アナログコンピュータを開発し、代表的な組合せ最適化問題「巡回セールスマン問題」を解くことに成功した。 アメーバ生物である単細胞の真性粘菌は、不定形の体を環境に最適な形に変形できる高度な計算能力を持つ。先行研究で、アメーバ生物を組込んだ「粘菌コンピュータ」が巡回セールスマン問題に利用可能と分かっていた。そこで研究グループは、アメーバが変形するメカニズムをアナログ回路中の電子の動きで再現し、都市配置や距離などの制約条件をコンパクトに表現できる仕組みの新方式コンピュータ「電子アメーバ」を開発。これにより、巡回セールスマン問題の解を迅速に探し出すことに成功した。この

    難問の巡回セールスマン問題、粘菌に学んだ新型コンピュータで北海道大学が解決
  • 『GUILTY GEAR XX ΛCORE PLUS R』にてオンライン対戦の遅延を改善する“期待の技術”テスト開始。ほぼ遅延なしの対戦を実現する「ロールバックネットコード」とは何なのか? - AUTOMATON

    アークシステムワークスによる対戦格闘ゲームGUILTY GEAR XX ΛCORE PLUS R』(以下、GGXXACPR)のSteam版において、オンライン対戦の遅延を改善する「GGPO」と呼ばれるネットコードが試験的に導入された。このパブリックテストは10月29日から開始されている。また同時期に開催されているSteamのハロウィンセールによって同作は現在80%オフの296円にて購入することが可能だ。 Early reports say that #GuiltyGear XX Accent Core Plus R runs SMOOV with its new rollback code. You know what's SMOOV-ER than that? Picking it up for $2.99 on @Steam's Fall sale.https://t.co/JTkQ

    『GUILTY GEAR XX ΛCORE PLUS R』にてオンライン対戦の遅延を改善する“期待の技術”テスト開始。ほぼ遅延なしの対戦を実現する「ロールバックネットコード」とは何なのか? - AUTOMATON
  • [Unite 2018]誘導ミサイルはどうやって作るのか? 基礎からCompute Shaderによる実装まで

    [Unite 2018]誘導ミサイルはどうやって作るのか? 基礎からCompute Shaderによる実装まで 2018年5月7日から3日間にわたって東京国際フォーラムで「Unite Tokyo 2018」が開催された。初日となる7日は基調講演だけだったが,8日と9日が終日専門セッションとなっていた。ここでは8日のユニティ・テクノロジーズ・ジャパン エンジニアの安原祐二氏の講演を紹介してみよう。 安原氏はかつてPlayStationで3Dスペースシューティング「オメガブースト」を作った人だ。……と聞いて「つまり神プログラマですね」と理解してもらえるかどうかは昨今では微妙だが,初代PlayStationの限界を超えるようなゲームを作った人であり,毎年Uniteでは「非力なマシンで軽々動いてるけどこれ当にUnity?」と言いたくなるようなデモを披露している。 今年の演題は「誘導ミサイル完全マ

    [Unite 2018]誘導ミサイルはどうやって作るのか? 基礎からCompute Shaderによる実装まで
  • あつまれどうぶつの森 カブ価変動のアルゴリズムが解明される | hyperT'sブログ

    あつ森のカブ価変動のアルゴリズム(仕組み)が解析により明らかになったので、その仕組みと新たに判明したことを紹介します。 また仕組みが明らかになったことでカブ価を高い精度で予測できるようになりました。今回は新たに作った「カブ価予測ツール」も紹介します。 カブ価プログラム Ninjiさんがあつ森を解析したプログラムのコードがGithubで公開されています。 ここに全てが詰まっているのでプログラムが読める人はこちらを読む方が分かりやすいと思います。 C++で書かれたコードを私と一緒に読んでいく、というのは少々退屈だと思うので今回は重要な部分だけ。できるだけ分かりやすく紹介していきます。 ざっくり解説「カブ価変動の仕組み」 まず改めておきたいことは「あつ森」のカブ価変動アルゴリズムは前作の「とび森」とは異なるが、大まかな仕組みは前作と変わらないということです。 既に周知されているようにカブ価の変動

    あつまれどうぶつの森 カブ価変動のアルゴリズムが解明される | hyperT'sブログ
  • https://research-er.jp/articles/view/86365

  • UX最強のベジェ曲線「κ-Curves」を完全に理解する - Qiita

    TL;DR 全てのユーザ制御点上を通り、 全ての曲率極大点がユーザ制御点上にある そんな超便利なのにあまり知られていないパラメトリック曲線こと「κ-Curves」。 Adobe ResearchとテキサスA&M大学のYan氏らがSIGGRAPH 2017で発表した研究で、Adobe Illustratorに実装されており、Adobeが特許を取っています(無断の商用利用はNG)。 新しめなせいか、検索しても情報があまり出てきません。 この論文と同じ流れを、前提知識や行間を補いつつ日語で追っていきます。 C#で実際に実装もしていきます。 論文に忠実に実装するとちょっとバグるので、それについても少し。 ※記事では、上記論文から一部画像や式を引用しています。 これは論文から引用した図で、他の様々なパラメトリック曲線とκ-Curvesの比較。 左から順に、Interpolatory subdiv

    UX最強のベジェ曲線「κ-Curves」を完全に理解する - Qiita
  • FFT(高速フーリエ変換)を完全に理解する話 - Qiita

    となります。 この $C_i$ を、$0\leq i\leq 2N$ を満たすすべての $i$ について求めるのが今回の目標です。 それぞれ愚直に求めると、$f,g$ の全項を組み合わせて参照することになるので、 $O(N^2)$ です。これをどうにかして高速化します。 多項式補間 愚直な乗算は難しそうなので、$C_i$ の値を、多項式補間を用いて算出することを考えます。 多項式補間とは、多項式の変数に実際にいくつかの値を代入し、多項式を計算した値から、多項式の係数を決定する手法です。 たとえば、$f(x)=ax+b$ という $1$ 次関数があるとします。 $a$ と $b$ の値は分かりませんが、$f(3)=5,f(7)=-3$ がわかっているものとします。 実際に $3,7$ を代入してみると、 $3a+b=5$ $7a+b=-3$ と、連立方程式が立ち、$a,b$ の値が求められま

    FFT(高速フーリエ変換)を完全に理解する話 - Qiita
  • 数としての赤黒木 - エムスリーテックブログ

    エンジニアリンググループの高島(@rst76)です。 社内の勉強会で、計算機科学の有名な教科書、アルゴリズムイントロダクション(Introduction to Algorithms)を輪読しています。 ちょうど赤黒木の章を私が担当したので、要点をかいつまんでご紹介したいと思います。 今回お話したいのは「ある条件の下で、赤黒木は記数法表現と見ることができる」という話です。 赤黒木の例 赤黒木 二分木というデータ構造があります。 計算機科学では一般的なデータ構造で、ランダムなデータであれば、検索や挿入などの操作を で実現できます。 ただ、データの与え方によっては偏った木ができてしまうことがあり、そうすると各操作の性能が に落ちてしまうので、どうやって木の平衡性を維持するかが課題です。 赤黒木は二分木の一種で、ノード(節点)を赤と黒に塗り分けて、赤と黒の組み合わせによって平衡性を保つための調整を

    数としての赤黒木 - エムスリーテックブログ