V informatice je e-graf datová struktura, která ukládá relaci ekvivalence nad termy nějakého jazyka.

Definice a operace editovat

Nechť jsou   symboly funkcí v nějakém jazyce, a nechť jsou   termy v tomtéž jazyce. Nechť je   spočetná množina neprůhledných identifikátorů, u nichž lze ověřovat rovnost. Tuto množinu nazýváme identifikátory e-tříd. Potom e-uzel je symbol n-ární funkce společně s   identifikátory e-tříd. E-třída je množina e-uzlů. E-graf obsahuje datovou strukturu disjunktních množin   nad identifikátory e-tříd se standardními operacemi  ,  , a  .

Identifikátor e-tříd   je kanonický, pokud  . E-uzel   (kde  ) je kanonický, pokud je každý   kanonický (kde   je v   ).

E-graf je kombinací: [1]

  • struktury disjunktních množin  
  • hashcons   (tj. zobrazení) z kanonických e-uzlů na identifikátory e-tříd
  • zobrazení e-tříd   které zobrazuje identifikátory e-tříd na e-třídy tak, že   přiřadí ekvivalentním identifikátorům stejnou množinu e-uzlů:  

Invarianty editovat

Kromě výše uvedené struktury vyhovuje platný e-graf několika datovým invariantám. [1] Dva e-uzly jsou ekvivalentní, pokud jsou ve stejné e-třídě. Invarianta kongruence uvádí, že e-graf musí zajistit, aby byla ekvivalence uzavřena v rámci kongruence, kde dva e-uzly   jsou kongruentní, když  . Invarianta hashcons postuluje, že hashcons mapuje kanonické e-uzly na identifikátor jejich e-třídy.

Operace editovat

E-grafy poskytují abstrakci kolem operací  ,  , a   ze struktury disjunktních množin, které zachovávají e-grafové invarianty. Další operací je e-párování. Ten mapuje „vzory“ (termy s proměnnými) na n-tice substitucí (od vzorů k identifikátorům e-tříd) a na identifikátory e-tříd tak, že vrácené e-třídy obsahují uzly, které odpovídají vstupnímu vzoru po aplikování substituce.

Saturace rovností editovat

Saturace rovností je technika vytváření optimalizujících překladačů pomocí e-grafů. [2] Funguje tak, že aplikuje sadu přepisovacích pravidel pomocí e-párování, dokud není e-graf nasycený, nevyprší časový limit, není dosaženo limitu velikosti e-grafu, není překročen určitý počet iterací nebo není dosaženo jiné zastavovací podmínky. Po přepisování se z e-grafu extrahuje optimální term podle nějaké nákladové funkce, obvykle související s velikostí AST nebo výkonem.

Použití editovat

E-grafy se používají v automatických důkazových systémech. Tvoří klíčovou součást moderních SMT solverů, jako jsou Z3 [3] a CVC4.

Saturace rovností se používá ve specializovaných optimalizujících kompilátorech, [4] např. pro hluboké učení [5] a lineární algebru. [6] Saturace rovností byla také použita při validaci překladu aplikovanou na sadu nástrojů LLVM. [7]

Reference editovat

V tomto článku byl použit překlad textu z článku E-graph na anglické Wikipedii.

  1. a b Willsey 2021
  2. Tate 2009
  3. DE MOURA, Leonardo; BJØRNER, Nikolaj. Z3: An Efficient SMT Solver. Editoři C. R. Ramakrishnan, Jakob Rehof. Tools and Algorithms for the Construction and Analysis of Systems. Berlín, Heidelberg: Springer, 2008, roč. 4963, s. 337–340. DOI 10.1007/978-3-540-78800-3_24. (anglicky) 
  4. JOSHI, Rajeev; NELSON, Greg; RANDALL, Keith. Denali: a goal-directed superoptimizer. ACM SIGPLAN Notices. 17. 5. 2002, roč. 37, čís. 5, s. 304–314. Dostupné online. ISSN 0362-1340. DOI 10.1145/543552.512566. 
  5. YANG, Yichen; PHOTHILIMTHA, Phitchaya Mangpo; WANG, Yisu Remy. Equality Saturation for Tensor Graph Superoptimization. Další autoři Max Willsey, Sudip Roy, Jacques Pienaar. [s.l.]: [s.n.], 17. 3. 2021.  arXiv:cs.AI/2101.01332
  6. WANG, Yisu Remy; HUTCHISON, Shana; LEANG, Jonathan. SPORES: Sum-Product Optimization via Relational Equality Saturation for Large Scale Linear Algebra. Další autoři Bill Howe, Dan Suciu. [s.l.]: [s.n.], 22. 12. 2020.  arXiv:cs.DB/2002.07951
  7. STEPP, Michael; TATE, Ross; LERNER, Sorin. Equality-Based Translation Validator for LLVM. Editoři Ganesh Gopalakrishnan, Shaz Qadeer. Computer Aided Verification. Berlín, Heidelberg: Springer, 2011, roč. 6806, s. 737–742. Dostupné online. DOI 10.1007/978-3-642-22110-1_59. (anglicky) 
  • DE MOURA, Leonardo; BJØRNER, Nikolaj. Efficient E-Matching for SMT Solvers. S. 183–198. Redakce Frank Pfenning. Automated Deduction – CADE-21 [online]. Springer [cit. 2007]. Roč. 4603, s. 183–198. Dostupné online. DOI 10.1007/978-3-540-73595-3_13. (anglicky) 
  • WILLSEY, Max; NANDI, Chandrakana; WANG, Yisu Remy, Oliver Flatt, Zachary Tatlock, Pavel Panchekha. egg: Fast and extensible equality saturation. S. 23:1–23:29. Proceedings of the ACM on Programming Languages [online]. [cit. 2021-01-04]. Roč. 5, s. 23:1–23:29. Dostupné online. arXiv 2004.03082. DOI 10.1145/3434304. s2cid 226282597. 
  • TATE, Ross; STEPP, Michael; TATLOCK, Zachary, Lerner Sorin. Equality saturation: a new approach to optimization. S. 263–276, Savannah, GA, USA. Proceedings of the 36th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages [online]. Association for Computing Machinery [cit. 2009-01-21]. S. 263–276. Dostupné online. DOI 10.1145/1480881.1480915. s2cid 2138086, ISBN 978-1-60558-379-2. 

Externí odkazy editovat