discopy
v1.1.7

Discopy هي مجموعة أدوات Python للحوسبة باستخدام مخططات السلسلة.
بدأ discopy كتطبيق Discocat و QNLP. لقد أصبح هذا الآن مكتبته الخاصة: Lambeq.
Arrow لفئات خنجر مجانية مع مبالغ رسمية ومشغلين أحادي ومتغيرات رمزية من SympyDiagram لمخططات سلسلة مستوية في أي فئة أحادية (قبل) في التسلسل الهرمي للغات الرسومية (مع الضفائر ، التحولات ، العناكب ، إلخ)Hypergraph لرسومات السلسلة في فئات Hypergraph وقيودها على الفئات المتماثلة ، تتبعها ، مضغوطة وماركوفFunctor إلى:هذا المثال مستوحى من مدونة Pawel Sobocinski Post Crema di Mascarpone والتفكير التخطيطي.
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إذا كنت ترغب في رؤية discopy في العمل ، تحقق من البرنامج التعليمي QNLP!
نحن حريصون على الترحيب بالمساهمين الجدد!
أولاً ، اقرأ الإرشادات المساهمة. ثم تواصل مع الخلاف أو افتح مشكلة.
إذا استخدمت discopy في سياق المنشور الأكاديمي ، فإننا نقترح عليك أن تستشهد:
إذا كان عملك مرتبطًا بالحوسبة الكمومية ، فيمكنك أيضًا الاستشهاد:
إذا كنت تستخدم أي من الميزات الحديثة (مثل Hypergraph ) ، فيجب أن تذكر أيضًا: