タグ

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

  • GitHub - thieu1995/mealpy: A Collection Of The State-of-the-art Metaheuristic Algorithms In Python (Metaheuristic/Optimizer/Nature-inspired/Biology)

    minamishinji
    minamishinji 2024/01/19
    調べる価値はありそう。使うのはちょっと検討(GPL-3.0)
  • 最適輸送の解き方

    最適輸送問題(Wasserstein 距離)を解く方法についてのさまざまなアプローチ・アルゴリズムを紹介します。 線形計画を使った定式化の基礎からはじめて、以下の五つのアルゴリズムを紹介します。 1. ネットワークシンプレックス法 2. ハンガリアン法 3. Sinkhorn アルゴリズム 4. ニューラルネットワークによる推定 5. スライス法 このスライドは第三回 0x-seminar https://sites.google.com/view/uda-0x-seminar/home/0x03 で使用したものです。自己完結するよう心がけたのでセミナーに参加していない人にも役立つスライドになっています。 『最適輸送の理論とアルゴリズム』好評発売中! https://www.amazon.co.jp/dp/4065305144 Speakerdeck にもアップロードしました: https

    最適輸送の解き方
    minamishinji
    minamishinji 2023/11/08
    途中まで読んだがよさげ。
  • 線形計画法(2段階単体法) - Qiita

    線形計画法は最適化の例として分かりやすくかつ実用例も多いので,解説は数多く存在しますが,退化や過剰制約のケースまでカバーしたものがあまり見られないので自分で書いてみました.なお,記事の作成にあたって主に次の書籍を参考にしました. 岩波講座応用数学[方法7] 最適化法,藤田 宏,今野 浩,田邉 國士著,岩波書店,1994 線形計画問題の標準形 線形計画問題とは,ある線形方程式$\boldsymbol{A}\boldsymbol{x}=\boldsymbol{b}$を満たす$\boldsymbol{x}$のうち,ある線形関数$z=\boldsymbol{c}^{\mathrm{T}}\boldsymbol{x}$の値を最小化する$\boldsymbol{x}=\boldsymbol{x}^{*}$を求める問題です. \displaylines{ \begin{aligned} \begin{

    線形計画法(2段階単体法) - Qiita
    minamishinji
    minamishinji 2023/10/24
    数式の改行がないところでまず混乱。添え字の複雑さでさらに混乱…
  • [0.0, 1.0) の乱数を得るための“本当の”方法

    レイトレ合宿9(*)のセミナー発表スライドです。 * https://sites.google.com/view/rtcamp9/home - 2023/09/08 “除算法2”追記。(@Reputelessさんありがとうございました)

    [0.0, 1.0) の乱数を得るための“本当の”方法
  • 典型的な DP (動的計画法) のパターンを整理 Part 1 ~ ナップサック DP 編 ~ - Qiita

    はじめに --- DP は役に立つ はじめまして。NTTデータ数理システムでアルゴリズムを探求している大槻 (通称、けんちょん) です。 好きなアルゴリズムは最小カットやマッチングですが、会社ではなぜか「DP が好きな人」と呼ばれています。 巷ではよく「DP なんて実務では使わない」といった言説が定期的に流れますが、そんなことはないです。僕自身この 2 年間で DP が使える実務案件に 3 件くらい関わりました! それはともかくとして、DP を学び立ての方がよく抱く悩みとして「バリエーションが多すぎて混乱するし、統一的なフレームワークがほしい」というのがあります。確かに DP のバリエーションは非常に多岐にわたるのですが、そのほとんどが以下の 3 つのフレームワークで説明できると思います: ナップサック DP 区間 DP bit DP 今回はこのうちのナップサック DP について、とにかく

    典型的な DP (動的計画法) のパターンを整理 Part 1 ~ ナップサック DP 編 ~ - Qiita
    minamishinji
    minamishinji 2023/08/10
    うーん、やったことある人しかわからないような説明だな。
  • 因果推論とグラフ理論 - エクサウィザーズ Engineer Blog

    こんにちは。数理最適化ギルドでエンジニアをしている加藤です。 ある自社プロダクトの開発を通じて因果推論について勉強する機会がありました。因果推論は統計の分野ですが、その中で数理最適化技術が使えることを知り、とても面白かったのでその内容をシェアしようと思います。具体的には組合せ最適化問題のひとつである最小カット問題が、因果推論のタスクの一部である識別可能性に利用できるという話をします。 前半は因果推論についての概説で特に予備知識は仮定していないです。後半は計算時間やネットワークフローなどのアルゴリズムを知っていると読みやすいと思います。 因果推論とは 因果推論の目的 統計的因果推論とは事象の間の因果効果を実験データや観測データから推定することを目的とした統計学の一分野です。単に因果推論といった場合は統計的因果推論を含むより広い概念を指すことがありますが、簡単のため以下では因果推論といえば統

    因果推論とグラフ理論 - エクサウィザーズ Engineer Blog
  • 暗号の歴史と現代暗号の基礎理論(RSA, 楕円曲線)-前半- - ABEJA Tech Blog

    はじめに このブログに書かれていること 自己紹介 注意 Part1 古典暗号 2つの暗号方式 スキュタレー暗号 アルゴリズムと鍵 シーザー暗号 原理 頻度分析 アルベルティ暗号 ヴィジュネル暗号 如何にしてヴィジュネル暗号は破られたか Part2 近代暗号 エニグマ エニグマの登場 エニグマの基構造 如何にしてエニグマは突破されたか 前提条件 必ず異なる文字に変換される性質を利用 ループを利用 まとめ 参考文献 採用情報 はじめに このブログに書かれていること 前半 古代暗号から始まる暗号の歴史 エニグマの構造と解読法について 後半(後半ブログは こちら) RSA暗号の基 楕円曲線暗号の基 自己紹介 こんにちは!株式会社ABEJAの @Takayoshi_ma です。今回のテックブログですが、ネタに5時間程度悩んだ挙句、暗号を取り上げることにしました!暗号化手法の解説にとどまらず、そ

    暗号の歴史と現代暗号の基礎理論(RSA, 楕円曲線)-前半- - ABEJA Tech Blog
  • テキストエディタで使われがちなデータ構造 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
    minamishinji
    minamishinji 2022/09/15
    アルゴリズム自体も興味深いけど、アルゴリズムに名前をつけるのって意外に重要かもと思った記事。
  • 竹内関数 - Wikipedia

    竹内関数(たけうちかんすう)は、プログラミング言語処理系のベンチマークなどに使われる、再帰的に定義された関数である。 概要[編集] 再帰的に定義される、3個の引数 x, y, z をとる次のような関数である。 特に変わる所は無いがLisp版[1]も参照のこと。定義からわかるように処理を次々にたらい回しにしていくことから、たらいまわし関数[2]、たらい関数 (Tarai function) とも呼ばれる(後述のマッカーシー版との混同を避けるためこの名で呼ばれることのほうが多いが、こちらの定義のほうがオリジナルである。マッカーシー版を特にTak関数として区別する場合もある)。電電公社研究員(当時)の竹内郁雄が、1974年の夏前の頃、後述するような特性のある関数をあれこれ考えていた、ある日の午前に思いついたものである[3]。竹内関数と命名したのは野崎昭弘である[4]。 特性として、他のよくベンチ

  • 米国立標準技術研究所(NIST)、4つの「ポスト量子暗号」アルゴリズムを選択

    米国立標準技術研究所(NIST)は7月5日(現地時間)、量子コンピュータからの攻撃から機密データを保護することを目的とするアルゴリズムとして4つの暗号化ツールを選択したと発表した。 商務省下でサイバー標準を開発するNISTは2016年から、従来の公開鍵暗号に代わる強力な「ポスト量子暗号」(または「量子耐性暗号」)と呼ぶ標準の採用に取り組んでおり、2024年には標準を公開する計画だ。 今回発表したのは、CRYSTALS-Kyber、CRYSTALS-Dilithium、FALCON、SPHINCS+の4つのアルゴリズムの選択。 ジョー・バイデン米大統領は5月、量子コンピュータが実用化されるまでに既存の暗号を強化するよう連邦機関に命じる覚書を発行し、NISTや米国土安全保障省サイバーセキュリティ・インフラストラクチャセキュリティ庁(CISA)にタスクを与えた。 関連記事 重大なサイバー攻撃を受

    米国立標準技術研究所(NIST)、4つの「ポスト量子暗号」アルゴリズムを選択
  • Autowareにおける3次元物体検出アルゴリズムの再検討【サーベイ編】 - TIER IV Tech Blog

    ティアフォーのSensing/Perceptionチームで開発を行っている村松です。Autowareの動物体検出アルゴリズムのうち一部を再検討し、Autowareに組み込むまでについて紹介します。今回はそのサーベイ編として、調査した概要や手法についてお話します。 なお、ティアフォーでは、「自動運転の民主化」をともに実現していく様々なエンジニア・リサーチャーを募集しています。もしご興味があればカジュアル面談も可能ですので以下のページからコンタクトいただければと思います。 TIER IV Careers tier4.jp 自動運転における3次元物体検出について 3次元物体検出とは、3次元空間での物体のクラス(種類)・位置・大きさ・向きなどを推定する技術です。自動運転において、事故なく目的地まで移動するためには、他車両や歩行者などがどこにどの大きさで存在するかという周辺環境の認識が必須となります

    Autowareにおける3次元物体検出アルゴリズムの再検討【サーベイ編】 - TIER IV Tech Blog
  • 8時間を0.01秒に短縮 「アルゴリズムの素晴らしさが2分で分かる動画」が今すぐ勉強したくなる分かりやすさ

    記事はアフィリエイトプログラムによる収益を得ています アルゴリズムの素晴らしさを2分で解説した動画が、とても分かりやすくためになると人気です。なるほど、これがアルゴリズムと仕組みかぁ。 最短経路をアルゴリズムで算出しよう この動画では、迷路を最短手数で解くアルゴリズムについて解説。迷路はマス目状になっており、全部で8900億個の手順が存在するものとなっています。全ての経路を試せば最短手順を導き出せますが、普通のコンピュータでは約8時間かかってしまう計算になります。 全パターンの網羅は非常に時間がかかります そこで計算の手順を変更。スタートに0を書き、その隣1を、また隣に2……と繰り返していきます。こうして進めていくと最終的にゴールは34となり、この34が最短手数となることが分かります。今度はゴールから34,33,32とたどっていけば、最終手数で進む経路の1つが導き出せました。 数字を振

    8時間を0.01秒に短縮 「アルゴリズムの素晴らしさが2分で分かる動画」が今すぐ勉強したくなる分かりやすさ
  • 機械学習が独学できる日本語Youtube難易度別まとめ - Qiita

    こんにちは。 在宅の機会が増えて以来Youtubeを見る機会が増え、機械学習などが勉強できるチャンネルをいくつか探しては見ていました。探した中でよかったと思ったものをメモしていたのですが、せっかくなので公開したいと思います。日語のソースがあるもののみ対象にしており、『これ無料でいいのか?』と思ったチャンネルを紹介したいと思います。主観で以下のレベルに分けましたがあくまで参考程度にお願いいたします。 基Pythonを触ってみた人 Pythonの説明・動かし方などを解説していて、動画によっては踏み込んだ内容になる 応用:アルゴリズムを使いこなしたい人 「model.fit(X, y)して動かしてみた」よりも踏みこみ、Python自体の説明は少ない 発展:研究開発もしたい人 最新の手法の仕組みの理解などが主眼であり、Pythonの解説はほぼ無い もしおすすめのチャンネルございましたらぜひコ

    機械学習が独学できる日本語Youtube難易度別まとめ - Qiita
    minamishinji
    minamishinji 2022/04/07
    こういうの動画で学ぶの効率いいんかなぁ…動画だとしてもMOOCとか使った方がよいことはないの?
  • だれでも分かる多目的最適化問題超入門 - Qiita

    多目的になったときの問題 目的関数がふたつになったからどうした、と思われるかもでしれませんがそれなりに影響が出るようになります。 先ほどの「窓の大きさ」を引数とした「日照時間」と「電気代」の最適化問題をみてみましょう。 日照時間に対して最適化していくと理想的には壁や屋根もすべて窓にしたくなります。 次に電気代に対して最適化すると、窓がひとつもない壁や屋根がすべて断熱材になってしまいます。 「日照時間」と「電気代」は トレードオフ の関係にあります。どちらかがよくなるともう片方はわるくなります。 これは「窓の大きさ」という共通の引数による影響が複数であることから発生する問題です。 実際に家を建てるときについて考察してみると、たいていの家に窓がついてますが、壁がすべて窓というケースは稀です。 つまり、もっとも最適な窓の大きさは日照時間と電気代のそれぞれの最適ではなく間にある何かなのです。 いま

    だれでも分かる多目的最適化問題超入門 - Qiita
  • できるだけ嘘を書かずに計算量やオーダーの説明をしようとした記事 - えびちゃんの日記

    計算量についてのお話です。対象は、プログラミング経験はあるが計算量のことを知らない初心者から、計算量のことを知っているつもりになっている中級者くらいです。 数式を見たくない人にとっては読むのが大変かもですが、深呼吸しつつ落ちついて読んでくれるとうれしいです。 それから、この記事が自分には合わないな〜と思ったときは、(別の記事を Qiita とかで検索するよりも)この記事の一番下の 参考文献 にあるを読むことをおすすめします。Amazon の試し読みで無料で読めます*1。 TL; DR 関数の増加度合いのことをオーダーと呼ぶよ 計算量は、入力サイズ(など)を受け取ってアルゴリズムの計算回数(など)を返す関数だよ その関数のオーダーについての議論がよく行われるよ オーダーを上から抑えるときは \(O\)、下から抑えるときは \(\Omega\) を使うよ オーダーを上下両方から抑えたいときは

    できるだけ嘘を書かずに計算量やオーダーの説明をしようとした記事 - えびちゃんの日記
    minamishinji
    minamishinji 2021/10/14
    私自身は、数学としての解析を経験した上でプログラミングの世界に入ったので、o/Oが基本でそれ以外はその派生という印象。だから、o/Oだけで議論するのは全然違和感ないんだけどね。
  • 「遺伝的アルゴリズムで最高にエッチな画像を作ろう!」がまるで意思があるかのように1日で大きな変貌を遂げてしまう→その原因も判明する

    楓蛙 @kaede_gaeru なんとなく最近見守ってた遺伝的アルゴリズムちゃんが、昨日の時点では1枚目みたいな状態だったのに、いつの間にか2~3枚目のような溶け方を経て、現在は4枚目のような形に再形成されていってる…。 pic.twitter.com/ThSoxlGubO 2021-05-16 07:00:08

    「遺伝的アルゴリズムで最高にエッチな画像を作ろう!」がまるで意思があるかのように1日で大きな変貌を遂げてしまう→その原因も判明する
    minamishinji
    minamishinji 2021/05/17
    これは興味深い。意外に操作されやすいんだなぁというのが第一印象。これまでの結果だってどういう結果だかわかんない、ってことにならないのかな?
  • PHPとPythonとRubyの連想配列のデータ構造が同時期に同じ方針で性能改善されてた話 - hnwの日記

    PHPPythonRubyの連想配列のデータ構造がそれぞれ4〜5年ほど前に見直され、ベンチマークテストによっては倍以上速くなったということがありました。具体的には以下のバージョンで実装の大変更がありました。 PHP 7.0.0 HashTable高速化 (2015/11) Python 3.6.0 dictobject高速化 (2016/12) Ruby 2.4.0 st_table高速化 (2016/12) これらのデータ構造はユーザーの利用する連想配列だけでなく言語のコアでも利用されているので、言語全体の性能改善に貢献しています1。 スクリプト言語3つが同時期に同じデータ構造の改善に取り組んだだけでも面白い現象ですが、さらに面白いことに各実装の方針は非常に似ています。独立に改善に取り組んだのに同じ結論に至ったとすれば興味深い偶然と言えるでしょう2。 稿では3言語の連想配列の従来実

    PHPとPythonとRubyの連想配列のデータ構造が同時期に同じ方針で性能改善されてた話 - hnwの日記
    minamishinji
    minamishinji 2021/02/24
    アルゴリズムも環境によって善し悪しが変わる。当たり前なんだけど、忘れがち。学び続けることが必要だね。
  • 遺伝的アルゴリズムでエッチな絵を作る試み、ついにどこからどう見てもセクシーなお姉さんが出現

    群青ちきん @miseromisero エッチな画像が欲しかったので、遺伝的アルゴリズムでエッチな画像を生成するシステムを開発しました。サイトでみなさんの好みを送り続けると、だんだんとエッチな画像が表示されるようになるはずです。 エッチな画像を作るために、よければRT等お願いします。 gamingchahan.com/ecchi 2021-01-10 19:24:01

    遺伝的アルゴリズムでエッチな絵を作る試み、ついにどこからどう見てもセクシーなお姉さんが出現
    minamishinji
    minamishinji 2021/01/20
    すごい初期に参加したけど、こうなるとはなぁ。面白い。
  • 遺伝的アルゴリズムでエッチな画像を作ろう!

    おわり 二つの画像のうち、どっちの方がエッチかを選んでください。 世代交代を経るごとに、だんだんとエッチな画像が表示されるようになるはずです。 Choose the lewder one, and you can make them more lewd. You will win when the AdSense on this site is stopped by Google because of "Sexually explicit content". ENGLISH よりエッチな画像を作るために、 ぜひ色んな人に広めてください。 ツイート ・展覧会ページでこれまでの画像を公開しています。 詳しい説明 スポンサーリンク みんなの好みを学習させて、「遺伝的アルゴリズム」によってエッチな画像を自動で作るためのシステムです。 遺伝的アルゴリズムとは、あるデータを目標に近づけるために使われる

    遺伝的アルゴリズムでエッチな画像を作ろう!
  • TheAlgorithms/Python: All Algorithms implemented in Python

    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

    TheAlgorithms/Python: All Algorithms implemented in Python