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 ),則應提及: