discopy/discopy

The Python toolkit for computing with string diagrams.

何を解決するか

DisCoPy は、モノイダル圏における射のグラフィカルな表現であるストリング図を計算する方法を提供します。ユーザーは自然言語文法、量子回路、レシピの手順といった複雑なシステムを、合成、再書き換え、具体的な数学的対象(テンソルや関数)に評価可能な図としてモデル化できます。

動作方法

このツールキットは Python を使ってカテゴリ理論の概念(Category、MonoidalCategory など)の階層を実装しています。Diagram データ構造は、ボックスとワイヤーの層で構成されており、これらの図は Functors を通じて変換できます。たとえば、テンソル値のファンクターは、PyTorch、NumPy、JAX などのライブラリを使って図をテンソルネットワークとして評価できます。

対象ユーザー

応用カテゴリ理論、量子コンピュータサイエンス、計算言語学(特に DisCoCat などの構成的分布モデルに取り組んでいる人)の研究者および実務家向けに設計されています。

特徴

  • マルチバックエンドテンソルサポート:NumPy、PyTorch、TensorFlow、JAX などを使って、図をテンソルネットワークに評価します。
  • C-Grammar 統合:spaCy および NLTK とのインターフェースを備えた、文脈自由文法、カテゴリー文法、pregroup 文法、依存関係文法を実装しています。
  • 量子コンピューティングツール:tket とのインターフェースで回路コンパイル、PyZX とのインターフェースで ZXカルキュラス最適化が可能。
  • 多様なデータ構造:λ項(Term)、組合せマップ(CMap)、ハイパーグラフなど、さまざまなカテゴリ的構造をサポートしています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト