discopy
v1.1.7

圆盘拷贝是用于使用字符串图计算的Python工具包。
圆盘拷贝是作为实施Discocat和QNLP的。现在,这已成为其自己的图书馆:Lambeq。
Arrow数据结构的免费匕首类别,带有正式总和,单一操作员和Sympy的符号变量Diagram数据结构Hypergraph图及其对对称,跟踪,紧凑和Markov类别的弦图数据结构Functor评估的方法:该示例的灵感来自Pawel Sobocinski的博客文章Crema Di Mascarpone和Mingrammatic推理。
from discopy . symmetric import Ty as Ingredient , Box as Step , Diagram as Recipe
egg , white , yolk = Ingredient ( "egg" ), Ingredient ( "white" ), Ingredient ( "yolk" )
crack = Step ( "crack" , egg , white @ yolk )
merge = lambda x : Step ( "merge" , x @ x , x )
# DisCoPy allows string diagrams to be defined as Python functions
@ Recipe . from_callable ( egg @ egg , white @ yolk )
def crack_two_eggs ( left_egg , right_egg ):
left_white , left_yolk = crack ( left_egg )
right_white , right_yolk = crack ( right_egg )
return ( merge ( white )( left_white , right_white ),
merge ( yolk )( left_yolk , right_yolk ))
# ... or in point-free style using parallel (@) and sequential (>>) composition
assert crack_two_eggs == crack @ crack
>> white @ Recipe . swap ( yolk , white ) @ yolk
>> merge ( white ) @ merge ( yolk )
crack_two_eggs . draw ()
pip install discopy如果您想查看盘式操作,请查看QNLP教程!
我们热衷于欢迎新贡献者!
首先,阅读贡献指南。然后取得联系或打开问题。
如果您在学术出版物的背景下使用了盘式拷贝,我们建议您引用:
如果您的工作与量子计算有关,则也可以引用:
如果您使用最近的任何功能(例如Hypergraph ),则应提及: