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-그램마 통합: spaCy 및 NLTK와의 인터페이스를 갖춘 문맥 자유 문법, 카테고리 문법, 프리그룹 문법, 의존 문법을 구현합니다.
  • 양자 컴퓨팅 도구: tket과의 인터페이스를 통해 회로 컴파일, PyZX와의 인터페이스를 통해 ZX-계산법 최적화를 지원합니다.
  • 다양한 데이터 구조: λ항(Term), 조합적 맵(CMap), 하이퍼그래프 등 다양한 범주 구조를 지원합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트