タグ

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

タグの絞り込みを解除

アルゴリズムに関するastk_fのブックマーク (128)

  • [CEDEC 2023]ユニットが個性を発揮し,柔軟に動くためのAIとはどのようなものなのか。「タクティクスオウガ リボーン」のAI実装事例を紹介

    [CEDEC 2023]ユニットが個性を発揮し,柔軟に動くためのAIとはどのようなものなのか。「タクティクスオウガ リボーン」のAI実装事例を紹介 ライター:箭進一 ゲーム開発者向けカンファレンス「CEDEC 2023」では「『タクティクスオウガ リボーン』のAI実装事例」と題した講演が行われ,シミュレーションRPGにおけるAIがどのように状況を判断しているのかが明かされた。同作では地形に高低差があったり,様々な能力を持つユニットたちが他のユニットを守るべき状況が発生したりと,判断すべき項目が多岐にわたる。 企画者が望む振る舞いをAIにさせる手法について,スクウェア・エニックス 第一開発事業部 ディビジョン5 プログラマーの長谷川 誠氏が語った。 スクウェア・エニックス 第一開発事業部 ディビジョン5 プログラマーの長谷川 誠氏 ユニットが個性を発揮し,柔軟に動くためのAIとはどのよ

    [CEDEC 2023]ユニットが個性を発揮し,柔軟に動くためのAIとはどのようなものなのか。「タクティクスオウガ リボーン」のAI実装事例を紹介
  • テキストエディタで使われがちなデータ構造 Piece Table の概要と実装 - A Memorandum

    テキストエディタのデータ構造 Gap method Piece Table method Piece Table の構造 Piece Table の実装 Piece Table のメソッド まとめ テキストエディタのデータ構造 テキストエディタで採用されているデータ構造にはいろいろあります。 こちらの論文 Data Structures for Text Sequences では各種データ構造について比較検討されています。 多くは、Gap method や Piece table method をベースにしたものが多いのではないでしょうか(図で言う最下部の中心の丸印に当たります)。最近では Rope なども有名ですね。 Gap method Gap method では、現在のカーソル位置で、テキストバッファを2つに分割し Gap を間に挟み、カーソル位置に対する編集(テキスト追加/削除)を

    テキストエディタで使われがちなデータ構造 Piece Table の概要と実装 - A Memorandum
  • リアルタイム共同編集のアルゴリズム (Operational Transformation; OT) を理解する試み – RORO

    Google Docsのように文書を複数人でリアルタイムに共同編集できるアプリケーションがあります。あのような機能は、多かれ少なかれ、Operational Transformation (OT; 操作変換) という考え方を使って実現されているようです。興味があったので、このOTについて調べてみました。 (追記: これからは OT でなく CRDT だという話 → I was wrong. CRDTs are the future) なおGoogle Docsではいわゆる「リッチテキスト」を共同編集できますが、ここでは話を簡単にするために「プレーンテキスト」を共同編集することを想定します。 リアルタイム共同編集の流れ 共同編集システムの登場人物は次の通りです: サーバ x 1(各クライアントから届く編集操作をもとに、最新の文書を保持します) クライアント x N(文書を編集する側です) そ

  • 頭が痛くならない「ダメージ計算式」の基本の話|だらねこ

    戦闘のあるゲームを作るなら、考えないといけないのがダメージの計算式。でも、計算式のコツとか基とか調べると、小難しそうな話が出てきて め、めんどくせぇ~ってなったりしませんか?私はなります。色んな計算式とその特徴を羅列されても、よくわかんなくなっちゃう。 とはいえ私もゲームデザイナーの端くれなので、ダメージ計算式を考える機会がそれなりにあります。そして他人の作った変な計算式に苦しめられることも、いっぱいあります。泣きたい。 大元の計算式が悪いと、それを利用してバランス調整しても苦労する事が多いんですよ。なので、そんな悲劇を少しでもい止めるためにもですね。 この記事では 数字が苦手な文系の人でも、なんかいい感じに計算式を考る…とっかかりになることを目指して書いていこうかと思います。 ※こういう計算式がある!選んで使え!!という記事ではありません。 ※計算式を考える時、こういうのを把握して、

    頭が痛くならない「ダメージ計算式」の基本の話|だらねこ
  • アルゴリズムビジュアル大事典

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

  • 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
  • 厳選!C++ アルゴリズム実装に使える 25 の STL 機能【前編】 - Qiita

    それほど C++ が、競プロやアルゴリズムの学習に人気であるのには、以下のような理由があるのです。 計算速度が 1 秒あたり $10^{8} ~ 10^{9}$ 回程度と、他のプログラミング言語に比べ高速だから。 基礎的文法の習得がそれほど難しくないから。 しかし、C++ の利点はこれだけではありません。元々用意されている標準ライブラリがあるのです。一方、標準ライブラリは C++ を学ぶ大きな障壁となるものの一つです。C++ を学ぶ上で標準ライブラリが上手く使えず挫折したという人も多いと思います。そこで記事では、 競技プログラミングやアルゴリズムの実装に使える 25 個の C++ 標準ライブラリと、それらの各種アルゴリズム実装への応用例 を解説したいと思います!!!!! 記事を読んだら何ができるのか? 前編(記事) と後編を読み、この記事でリストアップされた 25 個の C++ 標準

    厳選!C++ アルゴリズム実装に使える 25 の STL 機能【前編】 - Qiita
  • 乱数について本気出して考えてみる|TechRacho by BPS株式会社

    プログラミングをやっていると、様々な乱数に出会います。乱数に関しては大勢の研究者が色々な研究結果を出しているため、種類も増え、いったいどれを使えばいいのかと悩む原因にもなります。 大勢が研究し利用している分野ですから、私以外でも大勢が乱数に関する記事を書いているため、あえて新しい記事を書く価値は高くないかもしれません。まあ、既に理解している人はここで記事を閉じるか、暇つぶし程度の感覚で読んでいただくと良いかと思います。 真乱数と疑似乱数 プログラミングの世界の中でいわゆる "乱数" として扱われることが多いのは擬似乱数です。疑似、と付くからには、これは実のところ乱数ではないと言えます。とは言え、擬似乱数を乱数でないと言ってしまうと話が終わってしまうので、疑似乱数を含む乱数を広義の乱数とします。この記事で扱うのは広義の乱数です。逆に、狭義の乱数、物の乱数は真乱数と言います。 物と言いまし

    乱数について本気出して考えてみる|TechRacho by BPS株式会社
  • コーディングインタビューの対策とその意義 (1/2) - 16bitのメモランダム

    1.コーディングインタビューとは何か コーディングインタビュー(Coding Interview、またはProgramming Interview)とは、1時間ほどの制限時間内に小さなプログラミング問題を解かせる面接形式のことをいう。プログラマー、またはデータサイエンティストなどの採用試験として、米国を含むいくつかの国で用いられている。「物理的なホワイトボード上にプログラムを書く」という形式で実施されることが多い。「オンライン上の共有エディタで書く」といった形式のこともある。Googleなどは自社のYoutubeチャンネル動画でも説明している。 出題される問題としては、例えば、「複数の数字numbersと整数kが与えられたとき、合計がkとなる数字の組を1つ出力せよ」といったものがある。この問題は有名なので通称が付いており、Two Sumと呼ばれる。 Two Sumの一例。与えられた数値の並

    コーディングインタビューの対策とその意義 (1/2) - 16bitのメモランダム
  • Amazon.co.jp: なっとく!アルゴリズム: アディティア・Y・バーガバ (著), 株式会社クイープ (読み手), 株式会社クイープ (翻訳): Digital Ebook Purchas

    Amazon.co.jp: なっとく!アルゴリズム: アディティア・Y・バーガバ (著), 株式会社クイープ (読み手), 株式会社クイープ (翻訳): Digital Ebook Purchas
  • javascript-algorithms/README.ja-JP.md at master · trekhleb/javascript-algorithms

    数学 B ビット操作 - set/get/update/clear bits, 2つの乗算/除算, 否定的にする. 等 B 因果関係 B フィボナッチ数 - クラシックとクローズドフォームのバージョン B 素数性テスト (trial division 方法) B ユークリッドアルゴリズム - 最大公約数を計算する (GCD) B 最小公倍数 (LCM) B エラトステネスのふるい - 与えられた限度まですべての素数を見つける B Is Power of Two - 数値が2の累乗であるかどうかを調べる(単純なアルゴリズムとビットごとのアルゴリズム) B パスカルの三角形 B 複素数 - 複素数とその基演算 B ラジアン&度 - 度数と逆方向の変換に対するラジアン B 高速電力供給 A 整数パーティション A Liu Hui π アルゴリズム - N-gonsに基づく近似π計算 A 離散フ

    javascript-algorithms/README.ja-JP.md at master · trekhleb/javascript-algorithms
  • プログラマの採用面接で聞かれる、データ構造とアルゴリズムに関する50以上の質問 | POSTD

    情報科学科の卒業生やプログラマの中には、UberやNetflixのような新興企業や、 AmazonMicrosoftGoogle のような大企業や、InfosysやLuxsoftのようなサービスを基とする企業で、プログラミング、コーディング、ソフトウェア開発の仕事に就きたいと考える人が大勢います。しかし、実際にそういった企業で面接を受ける場合、大半の人が プログラミングに関してどのような質問をされるか 見当もつきません。 この記事では、 新卒生からプログラマになって1〜2年までの 経験値が異なる人たち向けに、それぞれの プログラミングの面接でよく聞かれる質問 をいくつか紹介していきます。 コーディングの面接では、主に データ構造とアルゴリズムに基づいた質問 がされますが、 一時変数を使わずにどのように2つの整数をスワップするのか 、というような論理的な質問もされるでしょう。

    プログラマの採用面接で聞かれる、データ構造とアルゴリズムに関する50以上の質問 | POSTD
  • Maze Algorithms

    If you're interested in maze algorithms, I've written a book about the subject: "Mazes for Programmers". Check it out! The source code for these demos is freely available at http://github.com/jamis/csmazes. Recursive Backtracking

  • 深層強化学習アルゴリズムまとめ

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

    深層強化学習アルゴリズムまとめ
  • 配列のシャッフルと落とし穴 - ラシウラ

    風邪で寝てるあいだ、頭痛な頭でなぜか配列のシャッフルするアルゴリズムのことを思い出し、乱数と使い方の落とし穴について考えてました。 シャッフルは、たとえば輪読の順番を決めるときにつかいます。名簿を最初あいうえお順に並べて配列に入れておいてシャッフルすることで公平に順番を決めようという感じです。 シャッフル時に配列の要素を乱数をベースに入れ替えるのですが、乱数の使い方を誤ると最初の順番に依存して順番が偏ってしまうことが、落とし穴です。 結論から言うと配列シャッフルのアルゴリズムはJavaで書くと以下のようになります。 class Shuffle { private static final String names[] = { "taro", "jiro", "saburo", "shiro", "goro", }; public static void main(String[] args

    配列のシャッフルと落とし穴 - ラシウラ
  • コーディング面接とSnakeゲームに唯一共通すること | POSTD

    80年代か90年代に生まれた方ならおそらく、「Snake」というゲームのことをご存じでしょう。「ご存じ」とはつまり、Nokia 3310のちっぽけな画面上でたわいもない巨大ヘビを育てるのに膨大な時間を費やしていたのではないかということです。Nokiaの携帯電話について、皆さんは他にどんな特徴を覚えていますか? バッテリーが長持ちしたことではないでしょうか。 Nokiaはとても”原始的な”携帯電話であったにもかかわらず、バッテリーを使い果たすことなくSnakeゲームで何時間も遊べたのは、どういう訳だったのでしょう? 理由の大部分は、優れた強固なコンポーネントのおかげでした。しかし、貢献度はそれより低く、あまり語られることもありませんが、スライディングウィンドウと呼ばれる手法も長時間のプレイに役立っていたのです。 Snakeだけを扱った記事を1書きたいのは山々ですが、実は記事では後者の、魅

    コーディング面接とSnakeゲームに唯一共通すること | POSTD
  • 中学生でもなんとなくわかるDeepLearningのアルゴリズム

    人工知能AI)やDeepLearning(ディープラーニング),この頃よく聞きますよね. しかし,いまいち何なのかよくわからないという人は多いのではないでしょうか. 私の周りの人たちも教養として興味はあるけれども,数式が出てくると何がなんだかという人が多いようです. また,人工知能やディープラーニングをビジネスに応用したいけど何ができるのか全く見当もつかないといった人も多いようです. そもそも,ディープラーニングとはなんのことなんでしょう.AI機械学習との違いはどこにあるのでしょう. そこで今回はエンジニアや理系の学生でない人に向けて,ディープラーニング(主にその基礎となるニューラルネット)の仕組み,原理,アルゴリズムや種類,それが何の役に立つのかについて解説してみようと思います. このような場合には,よくわからない記号が出てくる数式は避けるべきだと思います. しかし,すべてを包み隠さ

    中学生でもなんとなくわかるDeepLearningのアルゴリズム
  • 『みんなのデータ構造』発売および予約開始のお知らせ – 技術書出版と販売のラムダノート

    ご来店ありがとうございます。 日より、新刊『みんなのデータ構造』の発売を開始しました。紙書籍の発送は7月25日前後を予定しています。電子書籍は購入後すぐにお読みいただけます。 『みんなのデータ構造』は、Pat Morin氏による “Open Data Structures” を翻訳して書籍として出版するものです。Pat Morin氏による原文は、クリエイティブコモンズ継承ライセンス(CC BY)で公開されており、誰でも自由に教材として活用できるだけでなく、内容に手を入れて別のライセンスで再配布したり、販売したりできるようにされています。堀江氏、陣内氏、田中氏による翻訳と、ラムダノート株式会社による編集も、すべてCC BYで公開しており、同様に自由に利用していただくことが可能です。 書籍版『みんなのデータ構造』(紙書籍および電子書籍)につきましては、クリエイティブコモンズライセンスではなく

    『みんなのデータ構造』発売および予約開始のお知らせ – 技術書出版と販売のラムダノート
  • ざっくりわかった気になるモダンGC入門 - Cybozu Inside Out | サイボウズエンジニアのブログ

    どうも!@yokotaso です! 2018/05/26のJJUG CCC 2018で「ざっくりわかった気になるモダンGC入門」というタイトルで登壇させていただきました。 現在開発中の新しいGCアルゴリズムをざっくり理解することをテーマに発表しました。 発表練習用に作ったカンペの内容を公開します。ブックマークコメントでもツイートでも感想を書いていただけると喜びます! 発表資料は、speakerdeck にあります。はじまり〜はじまり〜 はじめに 今日はざっくりわかった気になるモダンGC入門というお話をさせていただきます。 現在開発中のGCアルゴリズムの全体像を理解してもらうことを目的としたセッションです。よろしくおねがいします。 さて今日のアジェンダですが、まず簡単にこれまでのGCを復習した後に新しいGCが必要になってきた背景について少し話します。 次にShenandoahGC、ZGC、E

    ざっくりわかった気になるモダンGC入門 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • ソートアルゴリズムを極める! 〜 なぜソートを学ぶのか 〜 - Qiita

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

    ソートアルゴリズムを極める! 〜 なぜソートを学ぶのか 〜 - Qiita