並び順

ブックマーク数

期間指定

  • から
  • まで

201 - 240 件 / 247件

新着順 人気順

アルゴリズムの検索結果201 - 240 件 / 247件

  • メタヒューリスティクスで広がる「解けた!」の世界

    JOI夏季セミナー2023 全体講演会1の講演資料です。 【講義題目】 メタヒューリスティクスで広がる「解けた!」の世界 【講義概要】 世の中には,まだ効率的に解く方法が見つかっていない難しい問題がたくさんあります.こうした問題に立ち向かうときに頼りになるのが,メタヒューリスティクスと呼ばれるアルゴリズムたちです.本講義では,まずメタヒューリスティクスの基礎について,そしてメタヒューリスティクスが実社会にどのように応用されているかについて紹介します.

      メタヒューリスティクスで広がる「解けた!」の世界
    • アルゴリズムによる掲載順位の調整に関する提言 - 東雲製作所

      1.「はてなブックマークガイドライン」公開 先日、はてなから「はてなブックマークガイドライン」が公開された。 b.hatena.ne.jp 冒頭で「表現の自由や意見の多様性を大事にする」一方、「安全性、健全性を保つことも不可欠」という大方針が示されている。 双方が必要であるという大枠部分に関しては賛同する。 特に、他者へのリスペクトを忘れず、コメントの表現に気配りせよという指摘は重要だ。 はてなユーザーの中には、相手を批判する際に人格否定のような言葉を付記する人が散見される。 私は相手に面と向かって同じことを言えるのか、と考えてから書き込むよう心掛けている。 基本的には良いガイドラインだと思う。 2.アルゴリズムによる掲載順位の調整 ただし、アルゴリズムによる掲載順位の調整には反対だ。理由は現状ではアルゴリズムより人間の集合知の方が賢いからだ。 ガイドラインでは「建設的な情報に多くの表示機

        アルゴリズムによる掲載順位の調整に関する提言 - 東雲製作所
      • Knuth–Morris–Pratt illustrated | Journal of Functional Programming | Cambridge Core

        We use cookies to distinguish you from other users and to provide you with a better experience on our websites. Close this message to accept cookies or find out how to manage your cookie settings.

          Knuth–Morris–Pratt illustrated | Journal of Functional Programming | Cambridge Core
        • 「人を審査するAI」のリスクとは? 現金給付アルゴリズムが“暴走”した世界銀行の事例

          「人を審査するAI」のリスクとは? 現金給付アルゴリズムが“暴走”した世界銀行の事例:事例で学ぶAIガバナンス(1/3 ページ) イーロン・マスク氏などを筆頭に、AIの野放図な発展に反対する姿勢を取る人物は多い。AIは強力な存在であるが、何の制約もなく放置していては、大きな悪影響が生じる懸念がある。そのためAI導入を検討する企業の中には、あらかじめ自社が守る「AI倫理」を定めておき、この技術が正しく機能することを担保しようとするところが増えている。 そのAI倫理を構成する要素の一つが「透明性」(Transparency)だ。これは「あるAIがどのように機能するのか」「どのようにして特定の結論に至るのか」が外部からも理解できるようになっている状態を指す。特に後者の透明性は「説明可能性」(Explainability)と呼ばれる場合もある。 例えば、求人に応募してきた志望者の履歴書を読み込ませ

            「人を審査するAI」のリスクとは? 現金給付アルゴリズムが“暴走”した世界銀行の事例
          • The life and times of an Abstract Syntax Tree

            By Francesco Bertolaccini You’ve reached computer programming nirvana. Your journey has led you down many paths, including believing that God wrote the universe in LISP, but now the truth is clear in your mind: every problem can be solved by writing one more compiler. It’s true. Even our soon-to-be artificially intelligent overlords are nothing but compilers, just as the legends foretold. That sma

              The life and times of an Abstract Syntax Tree
            • C++で実装するなら(2023年時点での考え) - Qiita

              最近、C++を書いていない。 Pythonで書いていることが多いからだ。 C++を書けるということをどういう意味で期待していますか? C言語のレガシーがコードの安全性を損なっている。 C++言語はC言語の拡張という枠組みになっています。そのため、C言語ヘッダファイルをinclude することができてしまいます。 C言語では、ヘッダファイルのincludeする順序で動作が変わってしまうこと ヘッダファイル中の書かれているdefine マクロが、あなたの書いたソースコードを書き換えてしまうのです。 有名なところではwindows.h のmin() max() のマクロが多くのコードと相容れないという問題を持っています。 https://yohhoy.hatenadiary.jp/entry/20120115/p1 C言語のコードは、C++言語としても有効なコードになっているので、同じ弱点がC+

                C++で実装するなら(2023年時点での考え) - Qiita
              • mergekit-evolve による 進化的モデルマージ|npaka

                以下の記事が面白かったので、簡単にまとめました。 ・Evolutionary Model Merging For All 1. 進化的モデルマージ「Sakana.ai」は約1か月前、「進化的モデルマージ」に関する論文を発表し、大きな話題を呼びました。 「進化的モデルマージ」を使用すると、マージで特定のコンピテンシーや資質をターゲットにすることができます。これがないと、モデルマージは手動の探索プロセスになります。数十回のマージを試し、それらを手動で評価し、マージパラメータが最終モデルの性能にどのように関連するか頭の中で考え出そうとすることになります。「進化的モデルマージ」を使用すると、どのような性質を持たせたいかを指定でき、最適化がそれを処理します。 「mergekit」では、この「進化的モデルマージ」を利用できます。 2. ハードウェア要件7Bモデル の場合は 24GB のVRAMで十分で

                  mergekit-evolve による 進化的モデルマージ|npaka
                • C++の高速なハッシュテーブルの実装を読んだ (ankerl::unordered_dense) - Qiita

                  C++の高速なハッシュテーブル、ankerl::unordered_dense::{map, set}の実装を読んでみた。 作者によるとabsl::flat_hash_map(通称SwissTable。Google製)と同程度に挿入・検索が速く、特にイテレートはstd::vectorと同等で最速らしい。 Comprehensive C++ Hashmap Benchmarks 2022にベンチマークがある。 (作者自身による計測なので、多少のバイアスはあるかもしれない) 基本のアルゴリズム Robin Hood hashing + Backward shift deletionを使用している。 まずこれを理解すると分かりやすい。 アニメーション付き Robin Hood Hashing | Programming.Guide 詳細な説明 Robin Hood hashing | Code

                    C++の高速なハッシュテーブルの実装を読んだ (ankerl::unordered_dense) - Qiita
                  • Chromeで共有辞書を使用した圧縮のテストが開始される、リピーターが多いウェブサイトで極めて効果的

                    ウェブサーバーとブラウザ間の通信においてはさまざまなデータが圧縮されています。より圧縮率の高いアルゴリズムの開発と普及が進む中、Chromeで共有辞書を使用した圧縮のテストを開始するとGoogleが発表しました。 Supercharge compression efficiency with shared dictionaries  |  Blog  |  Chrome for Developers https://developer.chrome.com/blog/shared-dictionary-compression ウェブサイト閲覧時にはリソースの読み込み時間を削減するため、ウェブサーバーでHTMLやCSS、JavaScriptなどの一般的なテキスト形式のファイルを送信する前に圧縮を行い、クライアントで解凍することが一般的です。 長い間圧縮にはgzipというアルゴリズムが使用され

                      Chromeで共有辞書を使用した圧縮のテストが開始される、リピーターが多いウェブサイトで極めて効果的
                    • Highlights from Git 2.42

                      EngineeringOpen SourceHighlights from Git 2.42Another new release of Git is here! Take a look at some of our highlights on what's new in Git 2.42. The open source Git project just released Git 2.42 with features and bug fixes from over 78 contributors, 17 of them new. We last caught up with you on the latest in Git back when 2.41 was released. To celebrate this most recent release, here’s GitHub’s

                        Highlights from Git 2.42
                      • An Interactive Intro to CRDTs | jakelazaroff.com

                        Have you heard about CRDTs and wondered what they are? Maybe you've looked into them a bit, but ran into a wall of academic papers and math jargon? That was me before I started my Recurse Center batch. But I've spent the past month or so doing research and writing code, and it turns out that you can build a lot with just a few simple things! In this series, we'll learn what a CRDT is. Then we'll w

                          An Interactive Intro to CRDTs | jakelazaroff.com
                        • Dynamic Programming is not Black Magic – Quentin Santos

                          This year’s Advent of Code has been brutal (compare the stats of 2023 with that of 2022, especially day 1 part 1 vs. day 1 part 2). It included a problem to solve with dynamic programming as soon as day 12, which discouraged some people I know. This specific problem was particularly gnarly for Advent of Code, with multiple special cases to take into account, making it basically intractable if you

                          • Bloom Filters

                            This page makes heavy use of JavaScript to visualise the concepts discussed. Viewing it without JavaScript will be a strange experience, as the text talks about the visualisations. I strongly recommend either enabling JavaScript, or not wasting your time. Everyone has a set of tools they use to solve problems. Growing this set helps you to solve ever more difficult problems. In this post, I'm goin

                              Bloom Filters
                            • Fantastic Learning Resources

                              Fantastic Learning Resources Aug 6, 2023 People sometimes ask me: “Alex, how do I learn X?”. This article is a compilation of advice I usually give. This is “things that worked for me” rather than “the most awesome things on earth”. I do consider every item on the list to be fantastic though, and I am forever grateful to people putting these resources together. Learning to Code I don’t think I hav

                              • Recursion Viewer

                                Website for visualizing recursive functions. Helps to debug and understand how your recursive algorithm works

                                • 2023年のGoogleアルゴリズムアップデートのまとめ - SEO Japan|アイオイクスのSEO・CV改善・Webサイト集客情報ブログ

                                  【メールマガジンのご案内】 SEOに役立つ記事の更新やセミナーのご案内をメールマガジンで行っております。 ぜひご登録ください。 メールマガジンに登録する>> この記事は、Search Engine Landに掲載された「Google algorithm updates 2023 in review: Core, reviews, helpful content, spam and beyond」を翻訳した内容です。2023年実施されたアルゴリズムアップデートについてまとめており、特に8月から連続で実施されたアップデートの整理などに役立つと思います。 2023年、Googleは9つの公式で確認されたアルゴリズムアップデートを行い、新しいAI検索エンジン「Search Generative Experience」を導入しました。2022年と2021年にはそれぞれ10回のアップデートがありました

                                    2023年のGoogleアルゴリズムアップデートのまとめ - SEO Japan|アイオイクスのSEO・CV改善・Webサイト集客情報ブログ
                                  • いろんなソートアルゴリズムを実装してみよう - Qiita

                                    最近昼夜逆転がひどい六角レンチです 夕方まで起きてようと思ったらいつの間にか寝て夜に起きる謎 haskellに興味を持って入門の記事を見ながらソートを実装して楽しんでます。 ガードとかパターンマッチ楽しい 他にはどんなソートがあるんだろうと思いwikipediaを見ていろいろなソートアルゴリズムを発見したので、pythonの練習として実装してみたいと思います。 実装してみたソートたちはここに置いてます。 バブルソート def bubblesort(target:list): # バブルソート for targetrange in reversed(range(1, len(target))): isnotswap = True for r in range(targetrange-1): if target[r] > target[r+1]: target[r], target[r+1]

                                      いろんなソートアルゴリズムを実装してみよう - Qiita
                                    • 街づくりゲームの住民管理システムを設計した話 - Qiita

                                      はじめに ヘレの海底都市計画 ~箱庭に空気を植えるSLG~ というゲームの開発に携わらせていただきました。 主にいくつかの主要な機能の全体的な設計と実装、UI の MVP モデル設計、また開発中に問題が生じた際の抜本的な再設計を担当しました。 せっかくなので、本プロジェクトで行った設計のエピソードについてお話していこうと思います。 第一弾は セーブデータ設計について 扱いました。 本記事は第二弾となります。 今回は本ゲームの中で、規模的にもゲーム的にも最も大きい要素の一つだった、住民の管理部分の設計をさせていただいた話です。 私が設計について学び始めた際、設計ができる人はどうしてその設計に至ったのかがわからずにもどかしい思いをしたので、当時の自分の様な設計を学び始めた人にとって助けになればと思います。 (本記事では説明のために具体的なコードを記載しておりますが、これらはこの記事のためのコー

                                        街づくりゲームの住民管理システムを設計した話 - Qiita
                                      • ハーバード大学、QuEra、MIT、NIST/メリーランド大学が、48個の論理量子ビットを用いて誤り訂正量子アルゴリズムを実現し、量子コンピューティングの新時代を先導

                                        ハーバード大学、QuEra、MIT、NIST/メリーランド大学が、48個の論理量子ビットを用いて誤り訂正量子アルゴリズムを実現し、量子コンピューティングの新時代を先導「 Nature 」に掲載された新しい研究は、拡張可能で誤り耐性を備えた量子コンピューター開発における大躍進 2023年12月6日、マサチューセッツ州ボストン – 中性原子量子コンピューターの先駆者であるQuEra Computing(クエラ・コンピューティング)は本日、科学雑誌Nature(ネイチャー)にて画期的な進展を発表した。ハーバード大学がQuEra Computing、MIT、NIST/UMDと連携して実験を行い、誤り訂正量子コンピューター上で48個の論理量子ビットと数百の論理オペレーションを実装、大規模アルゴリズムを実行することに成功した。量子コンピューティングにおける大きな飛躍であるこの結果は、古典的なコンピュー

                                          ハーバード大学、QuEra、MIT、NIST/メリーランド大学が、48個の論理量子ビットを用いて誤り訂正量子アルゴリズムを実現し、量子コンピューティングの新時代を先導
                                        • rate limiter – smudge.ai blog

                                          Visualizing algorithms for rate limitingMay 15, 2024Why rate limit?Imagine a Twitch chat with many active participants and just one spammer. Without rate limiting, the sole spammer can easily dominate the entire conversation. With rate limiting, each user has a fair chance to participate. A rate limiter lets you control the rate of traffic that your service processes by blocking requests that exce

                                            rate limiter – smudge.ai blog
                                          • TiDBのRequest Unitの裏側 ① | CyberAgent Developers Blog

                                            グループIT推進本部のデータプロダクトユニット(DPU)でエンジニアをやっている@azazです。DPUではTiDBチームに所属していまして、ここではTiDBの運用、移行のサポート、クエリー最適化のサポート活動などに力を入れています。 大規模データ基盤にまつわるデータベース・ETL・クエリーエンジン・ストリーム処理技術について興味がある方は是非Cyberagentの採用ホームページから大規模データ基盤エンジニア枠で応募してみてください! 流れ 最近注目を集めているMysql互換のNewSQL データベースであるTiDBですが、内部のレートリミッターについて考えたことありますか?本記事ではTiDBで採用されているレートリミッターの仕組みについて3部構成で紹介したいと思います。 様々なレートリミッターアルゴリズムの紹介 分散システムにおけるレートリミッターの課題 TiDBのレートリミッターの仕組

                                              TiDBのRequest Unitの裏側 ① | CyberAgent Developers Blog
                                            • Spring Securityでログイン時にパスワードハッシュアルゴリズムを変更する方法 - IK.AM

                                              🗃 {Programming/Java/org/springframework/security/crypt/password} 🏷 Java 🏷 Spring Boot 🏷 Spring Security 🗓 Updated at 2023-08-17T12:32:42Z  🗓 Created at 2023-08-17T10:43:10Z   🌎 English Page Spring Securityでログイン時にデータベース上の保存されたエンコードされたパスワードを別のアルゴリズムで再度エンコードして保存する方法を紹介します。 変更の手順を先に説明すると、 DelegatingPasswordEncoderのidForEncodeを変える UserDetailsPasswordServiceを実装する ログインし直す です。 以下、少しずつ説明します。 目次 一般的な

                                                Spring Securityでログイン時にパスワードハッシュアルゴリズムを変更する方法 - IK.AM
                                              • Flow field pathfinding

                                                You may know me for my interactive tutorials. But before that, I was writing visual but non-interactive tutorials. In particular, there wasn't a lot of information about A* on the web, so I decided to collect all my notes about pathfinding together in one place in the 1990s. But then in the 2010s I started making interactive pages. The newer pages are narrower in scope; I covered a broader set of

                                                • Linuxのメモリ割り当てアルゴリズムを追う Buddy Memory Allocation編

                                                  はじめに この記事はコネヒトAdvent Calendar2023の5日目の記事です。 世界中で広く使われているLinuxがどのようなメモリ割り当てアルゴリズムを使って物理メモリを管理しているのか、その仕組みには以前から興味がありました。 そこで、Linuxでメモリ割り当てアルゴリズムとして使用されている、Buddy Memory AllocationとSlab Allocationを自作しているOSに実装したのですが、日本語の記事や情報があまりなく実装するのに結構時間がかかってしまいました。(両者とも日本語版Wikipediaにすら載っていませんでした)なので、日本語の情報が少ないのならばこの機会に残しておこうと思い、この記事を書くことにしました。 本記事では、Buddy Memory Allocationに焦点を当て、その仕組みを紹介していきたいと思います。 ↓ 後編の記事です 前提

                                                    Linuxのメモリ割り当てアルゴリズムを追う Buddy Memory Allocation編
                                                  • 今こそ基礎固め、必修アルゴリズム10選

                                                    プログラミングの上達のためにはアルゴリズムの理解は欠かせない。3つのテーマで厳選した10個のアルゴリズムをPythonによる実装とともに解説する。 出典:日経ソフトウエア、2023年7月号 pp.6-27 「絶対に理解しておきたいアルゴリズム10選」を改題 記事は執筆時の情報に基づいており、現在では異なる場合があります。 ニュートン法にマクローリン展開、Pythonで数値計算アルゴリズムを学ぶ Part 3 数値計算のアルゴリズム 少し趣向を変えて、基礎的な数値計算のアルゴリズムを紹介しましょう。ここでは、「ニュートン法」と「マクローリン展開」、「台形公式(定積分)」を説明します。いずれも、何らかの近似値を求めるためのアルゴリズムです。 2023.08.24 数式は中置記法だけじゃない、Pythonでスタックとキューを使いこなす Part 2 スタックとキューを使うアルゴリズム(後半) 逆

                                                      今こそ基礎固め、必修アルゴリズム10選
                                                    • githublog/2024/5/10/cordic.md at main · francisrstokes/githublog

                                                      This post is an adaptation of a twitter thread I put together a few days ago. CORDIC is an algorithm for computing trig functions like sin, cos, tan etc on low powered hardware, without an FPU (i.e. no floating point) or expensive lookup tables. In fact, it reduces these complex functions to simple additions and bit shifts. I'll cut right to the chase and tell you why I love this algorithm so much

                                                        githublog/2024/5/10/cordic.md at main · francisrstokes/githublog
                                                      • 50代半ばでAtCoder入水しました - Qiita

                                                        はじめに 皆さんこんにちは。50代半ばでAtCoderをやりはじめた tosh55 と申します。今は56歳です。1年3か月程度かけて2023年10月7日のABC323にて入水したので、色変記事を書いてみたいと思います。 自己紹介 大学教員です。プログラミング自体は昔からやっていますが、アルゴリズムの勉強をちゃんとしたことはありませんでした。たまたま学内で TechFUL を使ったプログラミングコンテストを主催することになり、学生にやらせるなら自分もコンテスタントとして参加してみようということでAtCoderを始めました。やってみたら面白くて、今では趣味になっています。 年齢について 競プロ界での私の特徴は、やはり年齢でしょう。 この歳で一番感じるのは、視力の衰え(老眼)です。学生のPC画面は字が小さくて暗くてぜんぜん見えません。また、疲れてくると画面が霞みます。ですが、これは自分の環境を用

                                                          50代半ばでAtCoder入水しました - Qiita
                                                        • PNGのメタデータを理解する【Python解説あり】

                                                          PNGなどの画像ファイルには「メタデータ」と呼ばれる付加情報がついていることがあります。 たとえば、NovelAIやStable Diffusionなどの画像生成AIサービスで生成した画像ファイルには、「どのような設定で画像を生成したのか」という情報が付けられています。 このような情報を確認できれば、気に入った画像を生成できたときのプロンプトや設定情報を参考にできるのでとても便利です。 「メタデータ」がどのようなものかを理解することで、活用の幅が広がります。 本記事ではPNGファイルのメタデータがどのような構造になっているのかを初心者でもわかるように丁寧に解説します。 後半では、実際にPNGファイルからメタデータを抜き出すPythonコードも解説していますので、アプリやツールを作ろうとしている人にも役立つと思います。 この記事はこんな人におすすめ PNGファイルのメタデータについて知りたい

                                                            PNGのメタデータを理解する【Python解説あり】
                                                          • なぜUUIDはハイフンで8-4-4-4-12に区切られているか? - Memo:

                                                            ある特徴的な文字列がある。 11b484b6-cfeb-4730-8fba-467aee2d26ad 使ったことがあれば、恐らくすぐに UUID であると分かると思う。UUID は16進数がハイフンで分けられた特徴的なフォーマットをしている。その区切り方は、 8-4-4-4-12 となんだか不思議な感じだ。 そもそも、UUID は 128bit の数値であり、それを文字列で表現したものなのでハイフンが無くたって問題ない。にもかかわらずわざわざ覚えにくいケタで区切ることが多い。 その理由として、最初に思いつくのは人間が読みやすくするためだとは思うが、覚えやすく均等に区切ったり、左右対称の形にはできなかったのだろうか? UUID の定義 生成した UUIDv1 を眺めてみる 元祖 UUID(Network Computer System の UUID) 形式の謎 RFC4122 で times

                                                              なぜUUIDはハイフンで8-4-4-4-12に区切られているか? - Memo:
                                                            • GitHub - facebookresearch/searchformer: Official codebase for the paper "Beyond A* Better Planning with Transformers via Search Dynamics Bootstrapping".

                                                              You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                GitHub - facebookresearch/searchformer: Official codebase for the paper "Beyond A* Better Planning with Transformers via Search Dynamics Bootstrapping".
                                                              • Why UUID7 is better than UUID4 as clustered index in RDBMS

                                                                In the Introduction To Database Indexing Article, We discussed database indexes, Their type, representations, and use cases. In this article, we will experiment to check which performs better as a clustered index. UUID version 4 vs UUID version 7 or 6. Then we will discuss why that happened. What is UUID version 4?UUID, an acronym for Universally Unique Identifier, is a 128-bit identifier represen

                                                                  Why UUID7 is better than UUID4 as clustered index in RDBMS
                                                                • Beyond A*: Better Planning with Transformers via Search Dynamics Bootstrapping

                                                                  While Transformers have enabled tremendous progress in various application settings, such architectures still lag behind traditional symbolic planners for solving complex decision making tasks. In this work, we demonstrate how to train Transformers to solve complex planning tasks and present Searchformer, a Transformer model that optimally solves previously unseen Sokoban puzzles 93.7% of the time

                                                                  • Kalman Filter Explained Simply - The Kalman Filter

                                                                    Most tutorials for the Kalman Filter are difficult to understand because they require advanced math skills to understand how the Kalman Filter is derived. If you have tried to read Rudolf E Kalman’s 1960 Kalman Filter paper, you know how confusing this concept can be. But do you need to understand how to derive the Kalman Filter in order to use it? No. If you want to design and implement a Kalman

                                                                      Kalman Filter Explained Simply - The Kalman Filter
                                                                    • 巡回セールスマン問題を深層学習と強化学習で解く

                                                                      こんにちは!shu421と言います。 数理最適化 Advent Calendar 2023 の 12 日目です。今回は巡回セールスマン問題 (Traveling Salesman Problem: TSP) を深層学習と強化学習で解く方法を紹介します。最近の動向をざっくり追うだけなので、詳細については各論文を参考にしていただけたらと思います。 目次 巡回セールスマン問題とは 深層学習と強化学習を使う理由 論文紹介 Neural Combinatorial Optimization with Reinforcement Learning Attention, Learn to Solve Routing Problems! Solving combinatorial optimization problems over graphs with BERT-Based Deep Reinforc

                                                                        巡回セールスマン問題を深層学習と強化学習で解く
                                                                      • Load is not what you should balance: Introducing Prequal

                                                                        We present Prequal (Probing to Reduce Queuing and Latency), a load balancer for distributed multi-tenant systems. Prequal aims to minimize real-time request latency in the presence of heterogeneous server capacities and non-uniform, time-varying antagonist load. It actively probes server load to leverage the power-of-d-choices paradigm, extending it with asynchronous and reusable probes. Cutting a

                                                                        • Fractional indexingによる並び替えAPIとデータ構造

                                                                          こんにちは!明日納車予定でわくわくが止まらない 23新卒 Eureka Back-end Engineerのぺりーです! 本記事では更新頻度の高いユーザーコンテンツ(以下UGC)の順序を保持し、自由に並び替えるAPIとデータ設計について考えてみたいと思います。 本記事ではPairsのユーザーコンテンツをソートする機能の代表格であるプロフィール画像を例に説明していきます。 Pairsでは複数のプロフィール画像を設定することができ、その中からドラッグ&ドロップでメイン画像を決めたり、サブ画像の順序を並び替えたりすることができます。 Pairsのプロフィール画像の並べ替えでは、一度のドラッグ&ドロップで理想の並び順になることは少なく、数回に分けてドラッグ&ドロップを行い、ユーザーの理想の並び順になることが一般的です。 1. BackgroundUGCの順序を更新する際のデータ更新が非効率だなと思

                                                                            Fractional indexingによる並び替えAPIとデータ構造
                                                                          • Why Aren't We SIEVE-ing? - Marc's Blog

                                                                            About Me My name is Marc Brooker. I've been writing code, reading code, and living vicariously through computers for as long as I can remember. I like to build things that work. I also dabble in machining, welding, cooking and skiing. I'm currently an engineer at Amazon Web Services (AWS) in Seattle, where I work on databases, serverless, and serverless databases. Before that, I worked on EC2 and

                                                                            • ChatGPTはコーディングテストをどこまで解けるか? AI時代の「エンジニア採用選考」を考える

                                                                              独自試験を作成できるコーディングテストツール「Track Test」 Track Testは、600問以上ある問題ライブラリーから求人企業が扱う技術領域と求める難易度で独自試験を作成できるコーディングテストツールである。試験のスコアリングやソースコードを元にした対象者の選定や、面接での活用にも役立つ。 コーディングテストツール「Track Test」とは? 問題作成は、AtCoderのレッドコーダーやICPC世界大会の出場者、大手GAFAなどに属しているエンジニアなど、総勢100名以上のトップクリエイターによるコミュニティメンバーによって開発されている。 今回のセッションでは、Track Testの初級問題と上級問題を用意し、株式会社10Xの石田光一氏と、GMOグローバルサイン・ホールディングス株式会社の津田良太郎氏がChatGPTで挑戦。その検証結果についてディスカッションを行った。 T

                                                                                ChatGPTはコーディングテストをどこまで解けるか? AI時代の「エンジニア採用選考」を考える
                                                                              • NTTがグラフ探索の高速化アルゴリズム開発 スパコン富岳のBFS世界1位に貢献

                                                                                NTTは、2024年6月25日、グラフ探索を高速化するアルゴリズムを開発したことを発表した。 多くの情報は事物のネットワーク構造として解釈可能であり、そのつながりを「頂点」と「辺」で表現するグラフは、都市インフラやAI、セキュリティ、創薬などの分野で重要視されている。 このグラフデータの活用に向け、同社ではグラフ処理における基礎的な要素技術であるBFS(幅優先探索)の研究を続けてきた。BFSは、グラフ全体の頂点を近い順に辿る計算方法となる。 木構造の事前分離により BFS木構築を高速化 今回NTTが確立したのは、「Forest Pruning」という、始点から近い順に頂点を辿るための「BFS木」の構築を高速化するアルゴリズムだ。 まず、事前計算でグラフの一部(木構造部分)を分離。始点が与えられた際に、残ったグラフで頂点を辿って部分的なBFS木を構築する。そこに分離しておいた木構造部分を接合

                                                                                  NTTがグラフ探索の高速化アルゴリズム開発 スパコン富岳のBFS世界1位に貢献
                                                                                • 各種 DP を愚直な形で考えてみる - えびちゃんの日記

                                                                                  先日、下記の記事でナップサック問題の DP を愚直に眺めました。 rsk0315.hatenablog.com 今回は、ナップサック問題に限らず様々な DP を愚直に眺める回です。 「○○(何らかの集合)の最大値」のように計算せず、○○の部分について考えていきます。 もちろん DP をする際に○○をそのまま持つと空間計算量がめちゃくちゃになる(ことに伴って時間計算量もめちゃくちゃになる)のですが、典型 DP で暗に構築されている集合を考えておくことで、そうした構造を持つ DP を考える際に理解がスムーズになる気がします。 「何々を全パターン考慮したい」となったときに「こういう漸化式を考えればよいはず」とできるレパートリーが増えそうです。 想定読者は競プロをしていて DP を学び中・苦戦中〜ある程度知っている人で、ある程度数式を読める人です。数式が苦手な人は、数式が得意な人に助けてもらうなど

                                                                                    各種 DP を愚直な形で考えてみる - えびちゃんの日記