並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 56件

新着順 人気順

隣接行列の検索結果1 - 40 件 / 56件

  • 競技プログラミングに関係する数学の整理 ~文系出身や数学苦手erが、もっと競プロを楽しむために~ - テルの競プロメモ

    まえがき この記事の目的 意図する対象読者 今回の整理の仕方(記事の見方) 注意 競プロに関係する数学(本題) 言葉(文系でも多分聞いたことはある)編 言葉(文系だと聞いたことないかも)編 言葉(離散数学)編 「式変形」編 「図形っぽいやつ」編 筆者のバックグラウンド 経歴、仕事など まえがき この記事では、競技プログラミングに関係する数学用語・概念と、それがどんな単元(分野)に属するものかを整理(一覧化)します。 競技プログラミングの問題に出てくる用語・概念をはじめ、競技プログラミングの解説記事などに出てくる用語・概念も、思いつく限り挙げています。 「この記事の数学的な部分、どのぐらい信用できるの?」とか、「数学苦手と言ってもどのくらい苦手なの?」といった疑問への参考としては、筆者のバックグラウンドを記事の最後で紹介したので、気になる方は先にそちらを読んでください。 この記事の目的 文系

      競技プログラミングに関係する数学の整理 ~文系出身や数学苦手erが、もっと競プロを楽しむために~ - テルの競プロメモ
    • 最短経路問題総特集!!!~BFSから拡張ダイクストラまで~ - Qiita

      基本的アルゴリズム(幅優先探索など)から応用(経路復元、拡張ダイクストラなど)まで、最短経路問題に関するアルゴリズムを総特集しました。 基本的なグラフ理論の用語については、次を参考にしてください。 グラフ理論 用語集 queueなどのデータ構造の用語については、次のスライドの後半を参考にしてください。 C++ STL講習会 by @e869120 最短経路問題とは 一般的に、次のような問題とされます。 $V$ 頂点と $E$ 辺からなるグラフが与えられる。頂点 $u$ と 頂点 $v$ を結ぶパスのうち、重みの総和が最も小さいものはどれか。 始点を固定して他のすべての頂点との対について最短経路問題を解く場合や、任意の2頂点の対について解く場合などが実際には多いです。 実社会とも強く密着した問題のため、古くからたくさん効率的な解法が考えられてきました。 今回はそれらを紹介しつつ、細かいテクニ

        最短経路問題総特集!!!~BFSから拡張ダイクストラまで~ - Qiita
      • ネットワーク分析から直感的に理解するTransformerの仕組みと処理の流れ - あつまれ統計の森

        グラフ理論と隣接行列 グラフ理論は点と線で物事を表す理論です。たとえば駅の路線図では下記のように駅を点、路線を線で表します。 東京メトロホームページより 上記の路線図では「駅と駅が隣接するかどうか」を中心に取り扱う一方で、それぞれの位置や方角などは厳密に再現はされません。このように、「隣接するかどうか」のみに着目して物事を表す際の理論を「グラフ理論」といいます。 グラフ理論では点をノード(node)、線をエッジ(edge)、全体をグラフ(graph)と定義します。数式で表すと$G = (V,E)$のように表しますが、$V$が頂点のVertice、$E$がEdge、$G$がGraphであるとそれぞれ解釈すると良いです。 グラフの表記法に関しては主に$2$通りあり、「①図を用いる」と「②隣接行列を用いる」をそれぞれ抑えておくと良いです。例があるとわかりやすいので下記のWikipediaの例を元

          ネットワーク分析から直感的に理解するTransformerの仕組みと処理の流れ - あつまれ統計の森
        • 行列入門

          行 列 入 門 i 本教材について 本教材は,行列の基本的な性質を学ぶために作成したものです。 行列については,平成 21 年告示の学習指導要領における新設科目「数学活用」の「社会 生活における数理的な考察」の「数学的な表現の工夫」の内容となりました。行列は現代数 学の基礎的な内容として様々な場面で活用されているにもかかわらず,繁雑な計算の意味 やどのような場面で活用されるのかがわかりにくかったことから, 「数学活用」の内容とし たものです。ただし, 「数学活用」の内容としたことから内容は大綱的に示すことになりま した。そこで,専門教科理数科の「理数数学特論」の内容としてはそれ以前のもの(平成 11 年告示の学習指導要領における数学 C の内容)をそのまま残すとともに,高等学校数学を 超える内容に興味をもつ生徒には「数学活用」の内容を踏まえ「線型代数学入門」のような 学校設定科目を設けて指

          • 【動画解説】2020年に読んだAI論文100本全部解説(俺的ベスト3付き) - Qiita

            この記事は私, wataokaが1年間をかけて作り続けた超大作記事です. 総文字数は8万を超えていますので, お好みのところだけでもみていってください. ついにこの時が来ました!!!!! 1年間書き続けたQiita記事です!!!!! ご覧下さい!!!!!https://t.co/eKBwP1zoeB — 綿岡 晃輝 (@Wataoka_Koki) December 31, 2020 俺的ランキング 動画での解説も挑戦してみました! ぜひぜひご覧下さい! 動画のリンク 第3位: Likelihood-Free Overcomplete ICA and Applications in Causal Discovery wataokaの日本語訳「尤度が必要ない過完備ICAと 因果探索における応用」 - 種類: ICA - 学会: NeurIPS2019 - 日付: 20190904 - URL:

              【動画解説】2020年に読んだAI論文100本全部解説(俺的ベスト3付き) - Qiita
            • グラフってこんなにすごい!深層学習との融合をレビュー

              3つの要点 ✔️ GNNの表現力の強さから、急速にアプリケーションが進んでいる。 ✔️ GNNの柔軟かつ複雑な構造への、従来深層学習手法の展開についてのレビュー ✔️ 一方で、深層学習に共通、グラフに固有の課題も継続中 Graph Neural Networks: A Review of Methods and Applications written by Jie Zhou, Ganqu Cui, Shengding Hu, Zhengyan Zhang, Cheng Yang, Zhiyuan Liu, Lifeng Wang, Changcheng Li, Maosong Sun (Submitted on 20 Dec 2018 (v1), last revised 9 Apr 2021 (this version, v5)) Comments: Published on AI O

                グラフってこんなにすごい!深層学習との融合をレビュー
              • バスケの選手とボールの位置データから機械学習で攻撃・守備戦術を分類

                Sports Analyst Meetupは、現役スポーツアナリストとスポーツ分析に興味のある方の情報共有イベントです。バスケットボールの選手・コーチとしての経験をもつ藤井慶輔氏が機械学習による攻撃守備戦術の分類についての研究を共有しました。 見てわかるデータしか信用されない現状 藤井慶輔氏:よろしくお願いします。藤井と申します。今回は初参加です。ちょっと雰囲気が掴めてないんですが、よろしくお願いします。タイトルは『バスケットボールの攻撃・守備戦術の自動分類』という話をします。 初参加なのでまず自己紹介から。スポーツ歴は今日お話をするバスケットで、大学時代まで選手をやっていて、大学院の5年間はコーチをやっていました。 大学院時代はこの動画にあるような対人の動作分析を、モーションキャプチャを使ってやっていました。ポスドク時代は、この動画にあるように、体育館で頭と肩に反射マーカーを付けてモーシ

                  バスケの選手とボールの位置データから機械学習で攻撃・守備戦術を分類
                • DFS (深さ優先探索) 超入門! 〜 グラフ・アルゴリズムの世界への入口 〜【前編】 - Qiita

                  0. はじめに --- グラフ探索の動機 現代ではコンピュータはとても身近なものになりました。コンピュータの用途としては シミュレーションなどの大規模計算を行う 人工知能をつくる アプリを開発する などなど多様なものが考えられますが、「探索」もまた、コンピュータを用いるモチベーションとして、最も基本的かつ重要なものの一つだと思います。探索とは、与えられた対象の中から、目的に合うものを見つけ出したり、最良のものを見つけ出したり、条件を満たすものを列挙したりする営みです。 世の中における様々な問題は、探索によって、考えられる場合を調べ尽くすことによって原理的には解決できるものが多いです。例えば、現在地から目的地まで最速でたどり着く方法を求める問題は、原理的には、現在地から目的地へ到達する経路をすべて列挙することで解決できます1。将棋やオセロの必勝法を求める問題は、原理的には、考えられる局面と

                    DFS (深さ優先探索) 超入門! 〜 グラフ・アルゴリズムの世界への入口 〜【前編】 - Qiita
                  • プログラミング無しで「つながり」ネットワーク解析(2部グラフの隣接行列の計算) - おいしい健康 開発者ブログ

                    こんにちは。データ分析チーム(仮)の花井です。最近は、社内に蓄積されたデータを分析し可視化する方法を模索しています。 過去の記事では協調フィルタリングによるレシピ類似の可視化があります。 oishi-kenko.hatenablog.com 「つながり」を解き明かすネットワーク科学は、これまで薬品設計・代謝工学などの分野で研究者の間で応用されてきましたが、最近では人事に関わる「ピープル アナリティクス」*1といった分野が急速に発展しています。弊社では、ホットなネットワーク科学を食と医療に応用して様々な「つながり」を分析・活用していこうとしています。 今回は、 弊社のSlackデータを例にして、スプレッドシートを使ったネットワークの解析を説明します。BigQueryやPythonを題材にしようと思ったのですが、エンジニアに限らず誰でもネットワークの解析ができるよう、ノンプログラミングできる表

                      プログラミング無しで「つながり」ネットワーク解析(2部グラフの隣接行列の計算) - おいしい健康 開発者ブログ
                    • グラフ機械学習のヘルスケア分野への応用の最前線 - Ridge-institute R&D Blog

                      こんにちは,株式会社Ridge-iのリサーチチームの@machinery81です. 今回はグラフデータを扱う機械学習のヘルスケア分野への応用のお話を紹介します. TL;DR 機械学習・データマイニングの応用先としてのヘルスケア分野 万能薬から精密医療へ 電子カルテ 創薬 患者調査 ヘルスケア分野を繋ぐグラフマイニング グラフ上の機械学習 古典的なアプローチ グラフの統計量に基づく手法 ランダムウォークに基づく手法 行列因子分解/テンソル因子分解に基づく手法 Graph Neural Network Graph Convolutional Network 創薬分野へのグラフデータの応用 ターゲットの識別 分子特性予測 グラフマイニングによる既存薬再開発 薬品と疾患の相互作用の分析 Combination repurposing 今後の見通し その他の話題 さいごに 参考文献 TL;DR 機械

                        グラフ機械学習のヘルスケア分野への応用の最前線 - Ridge-institute R&D Blog
                      • 隣接行列の一般化とトロピカル演算の正体 - 現実と数学の区別が付かない

                        最近話題になったこの記事。 qiita.com この記事は主に次の事実を扱ったものです。 有向グラフの辺の重みを並べた行列のトロピカルな 乗の第 -成分は, 番目の頂点から 番目の頂点への道のうち,最小の重みを持つものの重みに等しいという話です。 ここで,トロピカル演算は次のように定義されるものです。 トロピカル加法 トロピカル乗法 トロピカル加法の単位元 この話を聞いて,似た話を知っていると思った人もいたのではないでしょうか。それは次の定理です。 有向グラフの隣接行列の 乗の第 -成分は, 番目の頂点から 番目の頂点への道の数に等しい。 辺の重みを並べた行列は,隣接行列に見た目がよく似ています。 この2つの似た事実は成り立つ理由もよく似ていますが,隣接行列をうまく一般化するとこの2つの事実を同時に示すことができるというのが今日のお話です。この話を通して,トロピカル演算の正体が見えてきます

                          隣接行列の一般化とトロピカル演算の正体 - 現実と数学の区別が付かない
                        • グラフからコミュニティ構造を抽出する 〜リッチフローによるグラフの時間発展〜

                          コミュニティ抽出とは簡単に言えばグラフにおけるノードのクラスタリング手法です。具体的なアルゴリズムとしてはGirvan–Newman法をはじめ様々なアルゴリズムが存在しますが、この記事では去年(2019年)提案された新しい手法について解説したいと思います[1]。 [1907.03993] Community Detection on Networks with Ricci Flow 話の元になっているのはこちらの論文で、グラフをリッチフローによって変形し、伸びたエッジを切断していくことでクラスタを求めるというアルゴリズムです。リッチフローという聞き慣れない言葉が出てきましたが、ちゃんと後で説明するので気にせず進めましょう。 まずは実際にグラフのクラスタリングを行う様子をアニメーションで見てみてください。 アルゴリズム自体はそれほど難しくありませんが、背景を含めて理解するためには2つの理論

                            グラフからコミュニティ構造を抽出する 〜リッチフローによるグラフの時間発展〜
                          • 自分の頭で考えない文系は、実力を詐称する理系のエンジニアにだまされる

                            このコラムでは、私が2019年秋期の「基本情報技術者試験」を10月20日に受けたことを何度か書いている。この試験に関してSNSで興味深い書き込みを見つけた。内容は「3問目に『隣接行列』という未知の概念が出てきて、文系学生は驚いたのではないか」というものだ。 これを見て、私は意外に思った。問3は、午前試験の80問の中では易しい部類に入ると思っていたからだ。 私も隣接行列という言葉は知らなかった。しかし、問題文の下にある図を見れば「ノード同士が隣り合っているかどうかを表現する行列」であることはすぐに理解できる。意味さえ分かれば、正解を選ぶのは簡単だ。 この書き込みで引っかかったのは、「文系学生」という表現だ。文系学生が驚くということは、裏を返せば理系学生なら驚かないということだろう。 たしかに、文系学生は知らない技術用語が出てくるとギョッとするだろうし、理系学生ならたとえ言葉を知らなくても、私

                              自分の頭で考えない文系は、実力を詐称する理系のエンジニアにだまされる
                            • GNNとグラフ信号処理 - 理とかなんとか

                              概要 GNNは, 信号処理の観点でローパスフィルタの効果を持っている. そして, GNNが通常のMLPに比べて高精度となるようなデータでは, 低周波成分に(タスクに関して)有用な情報が多く含まれており, 高周波成分には無駄な情報が多いようなケースになっているように見受けれられる. また, 実際にタスクの精度を様々なフィルタで比較すると, 信号処理の観点での性質が反映された結果を与えている. GNNの最も大きな役割(通常のMLPとの違い)は, ローパスフィルタとしての性質の影響なのではないかと考えられる. 逆に言うと, ローパスフィルタとしての性質が生かせるようなデータが, GNNの効果が最も期待出来るものなのではないかと考えられる. 内容 はじめに GNNとはどのようなものだったか? 信号処理のいくつか GNNのローパスフィルタとしての役割 まとめ 1. はじめに Graph Neural

                                GNNとグラフ信号処理 - 理とかなんとか
                              • カタンの最長交易路(Longest Road)を探すために半環を考える - Qiita

                                この記事はlotzさんの「動的計画法を実現する代数〜トロピカル演算でグラフの最短経路を計算する〜」という記事を読んで、自分の問題に対しても応用できないかと考えた結果をまとめたものです。 先に元の記事を読んでから以下の内容を読んで頂けるとスムーズかと思われます。 最長交易路とは 皆様は『カタン』というゲームをご存知でしょうか? カタンは複数のプレイヤーが無人島を開拓して、最も繁栄させることができたプレイヤーが勝利するというボードゲームです。 このゲームには「最長交易路」というルールがあり、最も長い交易路を作ったプレイヤーに追加の得点が入ることになっています。 このゲームにおける交易路はグラフ理論の言葉を借りると無向多重グラフとみなすことができます。 そして、最長交易路を探すということは、無向多重グラフの中で最長の小道(trail)を探すことになります。 ここでは、ある頂点からある頂点へ行くル

                                  カタンの最長交易路(Longest Road)を探すために半環を考える - Qiita
                                • グラフ描画アルゴリズムとNetworkxの裏側 - Qiita

                                  0.グラフの描画ってどうやるの? 二次元に描画するためには各頂点に適切に座標を与える必要がありますが、グラフは頂点と辺の情報しか持っていません。どのように頂点を配置すればよいのでしょう?? この記事ではグラフをいい感じに配置するアルゴリズム Fruchterman-Reingold algorithm を説明します。Pythonだと networkxというライブラリで簡単に使用できます。しかし簡単すぎて悔しいので networkxの GitHub の実装を追いながら仕組みを確認していきます。 この記事の流れはこうです。 動かしてみる アルゴリズムの説明 Networkx の実装を追う 1.動かしてみる 動けば満足な方のために先に実装例を示しときます。Google colaboratory だと既にnetworkxがインストールされてるので、コピペですぐ試せます。 ランダムに配置 → ran

                                    グラフ描画アルゴリズムとNetworkxの裏側 - Qiita
                                  • cuGraph でページランクを計算したら爆速だった - Taste of Tech Topics

                                    概要 こんにちは、機械学習エンジニアの古賀です。 最近、人の動きを時系列で解析するためにグラフデータを扱ったのですが、データ量が大きくなると解析に時間がかかってしまい、効率が悪いと感じることがありました。 そんな中、cuGraph という高速にグラフ分析ができるライブラリが あることを知ったので、どれくらい高速なのか、有名なページランクの計算を題材に他のライブラリと速度を比較してみました。 目次は以下です。 概要 グラフとは Python によるグラフデータの分析 cuGraphとは ページランクとは ページランク値の定義 ページランクとグラフ 検証 実行環境 cuGraph ライブラリのインストール ライブラリのインポート データセット 検証内容・結果 1. NetworkX のグラフ、NetworkX のアルゴリズムを用いてページランクを計算 2. NetworkX のグラフ、cuGr

                                      cuGraph でページランクを計算したら爆速だった - Taste of Tech Topics
                                    • グラフニューラルネットワークの予測結果を解釈してみよう - NTT Communications Engineers' Blog

                                      この記事は、NTTコミュニケーションズ Advent Calendar 2023 11日目の記事です。 はじめに こんにちは。コミュニケーション&アプリケーションサービス部の石井です。 今年はAI分野においては LLM1 の話題で持ちきりの一年でしたが、そんな LLM とは全く関係のないグラフニューラルネットワーク(以下、GNN)の説明性に関する手法である GNNExplainer を題材に扱っていこうと思います。 GNN2 とはグラフで表現された構造化データを深層学習で扱うためのニューラルネットワーク手法の総称です。グラフデータはさまざまな事象を表現できる可能性を秘めていて、GNN の予測結果を解釈できれば、人との関係性把握やマーケティングへの応用など幅広い活用が期待できると思っています。GNN に興味がない方もこんな技術があるのかと深く考えずに読んでもらえればと思います。 本記事で扱う

                                        グラフニューラルネットワークの予測結果を解釈してみよう - NTT Communications Engineers' Blog
                                      • 土地勘に頼らずに地の利がある場所をみつける方法 | フューチャー技術ブログ

                                        本記事は「秋のブログ週間2023」2週目の記事です。 はじめに旅行をするときや引っ越しをするとき、周辺の商業地域や、観光地にアクセスのよい「地の利」のある場所を探したいですよね? 「地の利」がある場所を探すには、インターネットで調べるか、長らくその地域に住んでいて土地勘のある人に聞くのが一般的ではないでしょうか。 今回は、数理的なアプローチで「地の利」の良い場所を見つける方法を紹介します。 「地の利」とは”地形や土地の位置が、ある事をするために有利な条件を備えていること”です(引用:コトバンク)。本記事では単純に、他の場所へ行きやすい「アクセスが良い場所」のような意味で使っております。本記事は都市と地域を数理的に分析する楽しさを伝えたいという気持ちと、共著『スマートモビリティ時代の地域とクルマ』を手にとってくれる方が一人でも増えるといいなという邪な気持ちで書いております。 地利値とはアクセ

                                          土地勘に頼らずに地の利がある場所をみつける方法 | フューチャー技術ブログ
                                        • Google Colabで統計的因果探索手法LiNGAMを動かしてみた|Dentsu Digital Tech Blog

                                          電通デジタルでデータサイエンティストをしている中嶋です。 前回の記事は「Airflow 2.0でDAG定義をよりシンプルに!TaskFlow APIの紹介」でした。 Advent Calendar 10日目となる本記事では因果探索の一手法であるLiNGAM(Linear Non-Gaussian Acyclic Model)の解説及び、Google Colabでの分析例について紹介します。 因果探索とは最近のトレンド 最近、広告配信やマーケティング分析の文脈で施策の効果を適切に評価する手法として実験計画法や因果推論が注目を浴びています。産業界でも株式会社ソニーコンピュータサイエンス研究所、クウジット株式会社、株式会社電通国際情報サービスの三社が提供するCALCという要因分析ツールや、最近はNECの因果分析ソリューション causal analysisも出ていたりと盛り上がりを見せています。

                                            Google Colabで統計的因果探索手法LiNGAMを動かしてみた|Dentsu Digital Tech Blog
                                          • [翻訳]AI生成コンテンツの総合調査:GANからChatGPTまでのGenerative AIの歴史|株式会社ガラパゴス

                                            原文の総文字数15万字超え!生成AI研究の歴史をまとめた論文をChatGPTを使って翻訳しました。ところどころ日本語がおかしいところもありますが、15万もの文字翻訳するのめんどくさい!という方、参考程度にご覧ください。ポイントだけ読み進めるとサクッと把握できます。 こちらの翻訳です 本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。 脚注、参考文献、Appendixなどは本文をご覧ください。 概要【POINT1】ChatGPTはAIGCのカテゴリに属し、効率的で高品質なコンテンツ作成をします。 【POINT2】大規模モデルの利用で、意図抽出や生成結果が向上し、現実に近いコンテンツが生まれます。 【POINT3】この調査では、生成モデルの進歩や未解決の問題・将来の課題について解説しています。 最近、ChatGPT は、DALL-E-2 [1]や

                                              [翻訳]AI生成コンテンツの総合調査:GANからChatGPTまでのGenerative AIの歴史|株式会社ガラパゴス
                                            • t-SNEより強いUMAPを(工学的に)理解したい - Qiita

                                              あなたはUMAPを知っていますか? わたしは知っています。 聞いたことあるけど知らない人は、この記事でなんとなく理解しましょう。 UMAPとは t-SNEよりも高速・高性能に次元削減・可視化する手法である。よく使われる t-SNE と比較してみよう。以下の図は Fashion MNIST の可視化である。 (Understanding UMAP より) t-SNE に比べて、UMAP ではクラスタが明確に分かれているように見える。また似たカテゴリどうしは近くに、似ていないカテゴリどうしは遠くに配置されている。(Understanding UMAPの解説に可視化の例が豊富にあるので詳しくはそちらを見てほしい。上の3Dの図をぐりぐり回して見れるので) UMAPは埋め込み次元数によらず、実行時間がほとんど一定である。t-SNE のように埋め込み次元が増えても指数関数的に実行時間が増えることはない

                                                t-SNEより強いUMAPを(工学的に)理解したい - Qiita
                                              • 全ての開発者が知っておくべき重要なデータ構造とアルゴリズム - deve.K

                                                データ構造はコンピュータサイエンスとソフトウェアエンジニアリングの分野全体で幅広く多様な用途があります。 プログラマにとって、アルゴリズムとデータ構造は最も重要なテーマです。 プログラミングの分野に足を踏み入れたい場合は、最も一般的なデータ構造を習得し、需要の高いスキルであなたの履歴書を強化する必要があります。 本日はデータ構造とアルゴリズムを解説いたします。 データ構造とアルゴリズム データ構造とは? 8つのデータ構造 アルゴリズムとは? 覚えておくべきアルゴリズム 検索アルゴリズム 二乗によるべき乗 ソートアルゴリズム ハッシング 文字列の照合と解析 動的計画法(DP) アルゴリズムは何に使用される? 最後に データ構造とアルゴリズム プログラミングはすべてデータ構造とアルゴリズムに関するものとなります。 コンピュータプログラミングでは、データ構造はコンピュータプログラムでデータを効率

                                                  全ての開発者が知っておくべき重要なデータ構造とアルゴリズム - deve.K
                                                • 厳選!C++ アルゴリズム実装に使える 25 の STL 機能【後編】 - Qiita

                                                  ですが、以下のように思った人も多いと思います。 今回の 25 個の標準ライブラリはわかったけど、どういう問題やどういうアルゴリズムの実装で活用できるのか??? そこで本章では、どのような問題を解くときに C++ の標準ライブラリが使えるのか、11 個の例を紹介します。 5-1. バブルソートの実装 (swap) バブルソートは、アルゴリズム解説本や、大学の授業などでも教えられることが多いようです。以下のような発想に基づいたアルゴリズムです。 「配列の中から、大きさが逆転している部分があれば swap する」という操作を繰り返す。 最終的に、大きさが逆転している部分が無くなれば操作を終了する。 この「バブルソート」は、swap 関数 を使うことで実装しやすくなります。実装例は以下のようになります。 ソースコード #include <iostream> using namespace std;

                                                    厳選!C++ アルゴリズム実装に使える 25 の STL 機能【後編】 - Qiita
                                                  • 閉半環を使ってグラフ上の最短距離を計算する!

                                                    この記事は Haskell Advent Calendar 2020 21日目の記事です。 以前の記事でトロピカル行列を使ったグラフの最短経路の求め方を解説しました。 ここではトロピカルな隣接行列の累乗を収束するまで繰り返すという方法で最短経路を計算しましたが、実は閉半環という代数を考えると直接的に最短経路を求める計算が可能になります。そこで今回はその方法について解説したいと思います。 以前はHaskellのリスト [a] をベクトルとして行列を実装しましたが、今回はそれだと実装が少し煩雑になるので型レベル自然数を型引数に持つ Vector n a を中心に実装していきたいと思います。この話は以下の Functional Pearl が元になっていますが、この論文もリストを使って実装されているので Vector n a を使ってどのように実装できるかはこの記事で新しく試したところです。 ト

                                                      閉半環を使ってグラフ上の最短距離を計算する!
                                                    • 【組み合わせ最適化入門】カンファレンスのタイムテーブル決めをマッチング問題としてGoogle OR-Tools/Pulp/munkresで解く - フリーランチ食べたい

                                                      PyCon JPの運営メンバーとして自分は、昨年度のPyCon JP 2018のタイムテーブル決めに組み合わせ最適化問題を用いました。ちなみに最終的なタイムテーブルはアルゴリズムで算出された結果を人間がレビューして調整しています。 昨年度は時間の制約があり、いくつか反省点があったので今年は改善したいと考えています。 pyconjp.blogspot.com そういうわけで事前調査も兼ねて、カンファレンスのタイムテーブル決めを組み合わせ最適化問題として考え、それをPythonのライブラリを使って解く方法を書きたいと思います。 解きたい問題 カンファレンスのタイムテーブル決めでは下図のように部屋と時間が決まっていて、そこのトークを割り当てていくことが一般的です。 このとき、部屋の大きさ、時間帯やトークの内容が全く同一であれば何も考えずに隅から配置していけば良いのですが、現実には以下のような条件

                                                        【組み合わせ最適化入門】カンファレンスのタイムテーブル決めをマッチング問題としてGoogle OR-Tools/Pulp/munkresで解く - フリーランチ食べたい
                                                      • グラフ構造にまつわるサーベイ結果まとめ GNNからApplicationsまで Part1

                                                        2019年7月3日、nlpaper.challengeが主催するイベント「第1回 NLP/CV最先端勉強会」が開催されました。NLP/CVの知見をもとにEmbedding やグラフ、対話応答、text2image などの様々な分野の最先端の研究成果をサーベイする本勉強会。今回は、グラフと対話応答のサーベイチーム報告会と、CVPR2019速報を行いました。プレゼンテーション「Graph: A Survey of Graph Neural Networks, Embedding, Tasks and Applications」に登壇したのは、内橋堅志氏。 グラフにまつわるサーベイまとめ Kenshi Uchihashi氏:僕はグラフについてサーベイしていまして、幅広くやっているのですが、特にGraph Neural NetworksやGraph Embedding、Link Predictio

                                                          グラフ構造にまつわるサーベイ結果まとめ GNNからApplicationsまで Part1
                                                        • グラフ問題 - アルゴリズムとデータ構造大全

                                                          グラフ問題 %%{init: {"flowchart" : { "curve" : "basis" } } }%% graph LR 1((1)) --- 2((2)) 2((2)) --- 3((3)) 2((2)) --- 4((4)) 3((3)) --- 1((1)) 3((3)) --- 4((4)) 4((4)) --- 1((1)) グラフは,ノード(頂点)と,それらを繋ぐエッジ(辺)からなる.このドキュメントでは,特に断りのない限りグラフのノード集合を\(V\),辺集合を\(E\)とする.ノード数は\(|V|\),辺数は\(|E|\)で表される. グラフでよく出る単語 パス(道) あるノードから始めて,いくつかの辺をたどって,あるノードにたどり着くまでのノードの列をパス(道)という.有向グラフの場合,向きに従ってたどる必要がある. また,同じノードを2回通らないパスを単純パ

                                                          • 量子機械学習で何が起こっているのか?

                                                            本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。 はじめ 機械学習は国際的な分野になっています。MLはますます強力になっており、これらのシステムの学習や開発の難易度も急速に高まっています。このため、研究者の間では、量子コンピューティングを利用した機械学習(QML)への関心が高まっています。大小のハイテク企業が、量子コンピュータでMLを実行するための開発に投資を始めています。 しかし、量子コンピューティング自体はかなり難しい。何百万個もの量子ビットを統合する必要があるフォールト・トレラントな量子コンピュータの開発は困難を極めます。現在利用可能なNoisy Intermediate Scale Quantum(NISQ)デバイス上で強力なQMLアルゴリズムを実現できる可能性はいくつかあります。実際、すでにいくつかのブレークスルーがな

                                                              量子機械学習で何が起こっているのか?
                                                            • M.Hiroi's Home Page / Common Lisp Programming

                                                              WHAT'S NEW 2024/3/29 Common Lisp 入門: 入門編に 分数 [2] を追加 2024/3/29 自作ライブラリ編: ntheory をバージョンアップ (ver 0.2.10) 2024/3/15 Common Lisp 入門: 入門編に 分数 を追加 CONTENTS お気楽 Common Lisp プログラミング入門 入門編 応用編 パズルの解法編 思考ルーチン編 圧縮アルゴリズム編 micro Scheme 編 お気楽 CLOS プログラミング入門 番外編 仮想計算機 COMETⅡ Yet Another Common Lisp Problems 自作ライブラリ編 (別ページへ移動) お気楽 ISLisp プログラミング超入門 (別ページへ移動) xyzzy Lisp Programming (別ページへ移動) 参考文献, URL お気楽 Common

                                                              • VAEに基づくグラフの表現学習 - Sansan Tech Blog

                                                                こんにちは。年末年始はファイアーエムブレムで可処分時間が消えてしまった DSOC R&D Group の橋本です。 さて、今回の記事では、変分オートエンコーダ (Variational Auto-Encoder, VAE) [1]に基づくグラフの表現学習について紹介したいと思います。 近年グラフに対する深層学習手法の発展が目覚ましく、応用先としては材料科学(分子や結晶をグラフと見る)*1や、ソーシャルネットワークなどが挙げられます。ここではソーシャルネットワークのようなグラフに対するものに限定して、ノードの潜在表現を得る手法を紹介します。*2 Variational Graph Auto-Encoder 変分グラフオートエンコーダ (Variational Graph Auto-Encoder, VGAE) とは、VAEにおけるencoderの部分にグラフ畳み込みネットワーク (Graph

                                                                  VAEに基づくグラフの表現学習 - Sansan Tech Blog
                                                                • グラフの中心でAIを叫んだノード(なおAIは出ない) 〜あるいはnode2vecに至るグラフ理論〜 - Pseudo Theory of Everything

                                                                  1 イントロダクション 本記事を読む前に、本章を読んでください。書いていくごとに、とにかくボリュームが多くなりました。 本章では「グラフとは何か?」と「本記事で扱うこと・扱わないこと」をまとめています。非常にボリューミーなので、自身の必要な知識・不要な知識を取捨選択して読んでいただくことをお勧めします。 1.1 そもそもグラフ理論とは まず第一に、 グラフ理論は図示とは全く別のもの です。 恥ずかしながら、ある勉強会でグラフ理論のタイトルで話す登壇者の方がいて「より良い図示の方法をまとめたトークかなにかかな。」と思っていました(無事、話を聞いて「あぁ、そっちね。」となりました)。 本ブログの著者ふたりとも物理出身の門外漢故広い心で見守ってくれればと思います。 グラフ理論とは相互に関係し合うネットワークを数学的に扱う一学問です。 下記のようなシンプルなグラフネットワークの例を考えます。例えば

                                                                    グラフの中心でAIを叫んだノード(なおAIは出ない) 〜あるいはnode2vecに至るグラフ理論〜 - Pseudo Theory of Everything
                                                                  • 高等学校数学科「行列入門」

                                                                    行 列 入 門 i 本教材について 本教材は,行列の基本的な性質を学ぶために作成したものです。 行列については,平成 21 年告示の学習指導要領における新設科目「数学活用」の「社会 生活における数理的な考察」の「数学的な表現の工夫」の内容となりました。行列は現代数 学の基礎的な内容として様々な場面で活用されているにもかかわらず,繁雑な計算の意味 やどのような場面で活用されるのかがわかりにくかったことから, 「数学活用」の内容とし たものです。ただし, 「数学活用」の内容としたことから内容は大綱的に示すことになりま した。そこで,専門教科理数科の「理数数学特論」の内容としてはそれ以前のもの(平成 11 年告示の学習指導要領における数学 C の内容)をそのまま残すとともに,高等学校数学を 超える内容に興味をもつ生徒には「数学活用」の内容を踏まえ「線型代数学入門」のような 学校設定科目を設けて指

                                                                    • Pythonによる問題解決のためのアルゴリズム設計技法

                                                                      2020年11月13日紙版発売 2020年11月13日電子版発売 Magnus Lie Hetland 著,辻真吾 監訳,塩井宏亮 訳 B5変形判/448ページ 定価3,828円(本体3,480円+税10%) ISBN 978-4-297-11686-6 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto 本書のサポートページサンプルファイルのダウンロードや正誤表など この本の概要 本書(原題:Python Algorithms: Mastering Basic Algorithms in the Python Language)はアルゴリズムの分析と設計方法について,Pythonを使って説明します。古典的なアルゴリズムに焦点を絞って解説していま

                                                                        Pythonによる問題解決のためのアルゴリズム設計技法
                                                                      • 【Graph Attention Networks解説】実装から読み解くGAT - ころがる狸

                                                                        こんにちは。機械学習の適用先としては、自然言語処理、画像解析、時系列解析など幅広い分野があるわけですが、今日はグラフ構造に対する機械学習モデルを紹介したいと思います。グラフで表現出るものは多く、例えば人間関係だとか、論文の引用・被引用関係、さらには化合物の構造なども当てはまります。近年のグラフニューラルネットワークの多くはグラフの頂点や辺を何らかの特徴量で表現し、それらを周囲の情報を取り込みながら更新していくという仕組みを取っています。数多くの事例が報告されていますが、特に注目されているGraph Attention Networks(GAT)について取り上げます。 原著論文はこちら。これを理解するための鍵は、グラフの頂点を表す特徴量をどのように更新するか、そしてグラフの頂点と頂点の「つながり」の重要度をどのように計算するか、という2点にあると思います。 arxiv.org Graph A

                                                                          【Graph Attention Networks解説】実装から読み解くGAT - ころがる狸
                                                                        • PyTorchで学ぶGraph Convolutional Networks - Qiita

                                                                          ツイッターで人工知能のことや他媒体で書いている記事など を紹介していますので、人工知能のことをもっと知りたい方などは気軽にフォローしてください! この記事では近年グラフ構造をうまくベクトル化(埋め込み)できるニューラルネットワークとして、急速に注目されているGCNとGCNを簡単に使用できるライブラリPyTorch Geometricについて説明する。応用分野は生物学から、渋滞予測、レコメンダーシステムまで幅広い。 本記事はGCN生みの親のブログ記事とPyTorch Geometricの公式チュートリアルをかなり参考にしております。 読んで少しでも何か学べたと思えたら 「いいね」 や 「コメント」 をもらえるとこれからの励みになります!よろしくお願いします! 1. Graph Convolutional Networksとは? 1.1 そもそもグラフとは? ノードとエッジで定義される。折れ線

                                                                            PyTorchで学ぶGraph Convolutional Networks - Qiita
                                                                          • scipyのFloyd-WarshallとDijkstraのすすめ Python 競技プログラミング Atcoder - じゅっぴーダイアリー

                                                                            こんにちは。さすがに暑すぎるのでクーラーいれました。じゅっぴーです 【Amazon.co.jp限定)】山善 扇風機 30cm リビング扇 押しボタンスイッチ 風量調節3段階 タイマー機能付き ホワイト AMT-KC30(W) 出版社/メーカー: 山善(YAMAZEN)メディア: ホーム&キッチンこの商品を含むブログを見る扇風機で耐えるとか、もう既にそういう段階ではないのです scipyのワ―シャルフロイド法/ダイクストラ法の記事です。 グラフの最短距離問題でよく使われるFloyd-WarshallとDijkstraはscipyというライブラリの中にあり、そちらを使う方が自前で実装するより格段に早いです。 Floyd-WarshallとDijkstraってなんだっけ? 速度差 ここから本番だよー csgraph_from_dense floyd_warshall dijkstra ごめん よ

                                                                              scipyのFloyd-WarshallとDijkstraのすすめ Python 競技プログラミング Atcoder - じゅっぴーダイアリー
                                                                            • グラフニューラルネットワーク(GNN; Graph Neural Network)入門 - あつまれ統計の森

                                                                              前提知識 Transformerとグラフニューラルネットワーク 下記で詳しく取り扱いました。当記事は下記の副読的な内容になるように取りまとめました。 「Transformer=グラフニューラルネットワーク+ネットワーク分析」と大まかに解釈できるので、当記事ではグラフニューラルネットワークについて詳しく取り扱います。 集合と要素 グラフ理論では基本的に数ⅠAの「集合」で取り扱われる内容を元に立式されます。当項では「集合」の基本的な式表記の確認を行います。たとえばサイコロの出目の$1$〜$6$の集合を$X$とおくとき$X$は下記のように定義できます。 $$ \large \begin{align} X = \{ 1, 2, 3, 4, 5, 6 \} \end{align} $$ このとき$X$の要素を$x$とおくと、$x \in X$のように表すことができます。$x \in X$は$x$が$

                                                                                グラフニューラルネットワーク(GNN; Graph Neural Network)入門 - あつまれ統計の森
                                                                              • ケーリー・ハミルトンの定理の組合せ論的証明 - 数学の命題示しました

                                                                                1,概要 正方行列の固有多項式について,が成り立つ. これをCayley–Hamiltonの定理という. Cayley–Hamiltonの定理は線形代数のクラスの後半で習うのが普通であるが,実は線形代数の知識を用いずに証明できる. 具体的には,置換を用いた行列式の定義と行列の乗の定義から,組合せ論的考察により証明できる. 本記事で紹介する証明は,組合せ論的な視点から線形代数を再構成したBrualdi [1]の本からとったものである. 以下第2節ではまず準備として行列式や固有多項式を,組合せ論的オブジェクトの母関数として解釈する. 次に第3節で,行列の乗とグラフ上の歩道の対応を復習する. 最後に第4節で,上の二つを組み合わせてCayley–Hamiltonの定理を証明する. 2,行列式のHarary-Coater流の定義 以下で述べるように,行列式はグラフのサイクルの母関数として解釈できる.

                                                                                  ケーリー・ハミルトンの定理の組合せ論的証明 - 数学の命題示しました
                                                                                • 距離の観点からノードの分散表現を俯瞰する - Sansan Tech Blog

                                                                                  こんにちは、Sansan DSOC 研究開発部の保坂です。今回の記事は、弊社のアドベントカレンダーで書いた記事 で行った分析を少し丁寧にやり直してまとめたものです。 はじめに 分散表現間の距離 RPD とタスクにおける性能差との関係 RPD で計算された単語の分散表現間の関係 ノードの分散表現の学習アルゴリズム [実験] RPD でノードの分散表現間の関係を計算してみる [実験] RPD とノード分類タスクにおける性能との関係を調査する さいごに はじめに 最近では、ニュース記事などの言語データや、SNS上の友人関係のようなグラフデータを取り扱う研究がさかんになっています。これらのデータを対象にした研究がさかんになっている理由の一つとして、本来数値として扱いづらい単語やノードを、その性質を保持したベクトルとして表現する分散表現と呼ばれる技術の発達があります。 しかし、実際は多様な分散表現の

                                                                                    距離の観点からノードの分散表現を俯瞰する - Sansan Tech Blog