discopy
v1.1.7

Discopy เป็นชุดเครื่องมือ Python สำหรับการคำนวณด้วยไดอะแกรมสตริง
Discopy เริ่มต้นจากการดำเนินการของ Discocat และ QNLP ตอนนี้กลายเป็นห้องสมุดของตัวเองแล้ว: Lambeq
Arrow สำหรับหมวดหมู่กริชฟรีที่มีผลรวมอย่างเป็นทางการตัวดำเนินการที่ไม่เป็นทางการและตัวแปรสัญลักษณ์จาก SympyDiagram สำหรับแผนภาพสตริงระนาบในหมวดหมู่ monoidal (ก่อน) ใด ๆ ในลำดับชั้นของภาษากราฟิก (พร้อม braids, บิด, แมงมุม, ฯลฯ )Hypergraph สำหรับไดอะแกรมสตริงในหมวดหมู่ไฮเปอร์กราฟและข้อ จำกัด ของหมวดหมู่สมมาตรติดตาม, กะทัดรัดและมาร์คอฟหมวดหมู่Functor ใน:ตัวอย่างนี้ได้รับแรงบันดาลใจจากบล็อกโพสต์บล็อกของ Pawel Sobocinski และการใช้เหตุผลแบบไดอะแกรม
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!
เรากระตือรือร้นที่จะต้อนรับผู้มีส่วนร่วมใหม่!
ก่อนอื่นให้อ่านแนวทางที่มีส่วนร่วม จากนั้นติดต่อกับ Discord หรือเปิดปัญหา
หากคุณใช้ Discopy ในบริบทของสิ่งพิมพ์ทางวิชาการเราขอแนะนำให้คุณอ้างถึง:
หากงานของคุณเกี่ยวข้องกับการคำนวณควอนตัมคุณสามารถอ้างอิงได้:
หากคุณใช้คุณสมบัติล่าสุด (เช่น Hypergraph ) คุณควรพูดถึง: