Articulo de referencia

Gráfico electrónico

En informática , un e-grafo es una estructura de datos que almacena una relación de equivalencia entre términos de algún lenguaje. Definición y operaciones Dejar Σ {\displaystyl...

En informática , un e-grafo es una estructura de datos que almacena una relación de equivalencia entre términos de algún lenguaje.

Definición y operaciones

DejarΣ{\displaystyle \Sigma }sea ​​un conjunto de funciones no interpretadas , dondeΣnorte{\displaystyle \Sigma _{n}}es el subconjunto deΣ{\displaystyle \Sigma }que consta de funciones de aridadnorte{\displaystyle n}. Dejarid{\displaystyle \mathbb {id} }ser un conjunto contable de identificadores opacos que se pueden comparar para comprobar su igualdad, llamados identificadores de clase e . La aplicación deFΣnorte{\displaystyle f\in \Sigma _{n}}a identificadores de clase electrónicai1,i2,,inorteid{\displaystyle i_{1},i_{2},\ldots ,i_{n}\in \mathbb {id} }se denotaF(i1,i2,,inorte){\displaystyle f(i_{1},i_{2},\ldots ,i_{n})}y se denomina e-nodo .

El grafo electrónico representa entonces clases de equivalencia de nodos electrónicos, utilizando las siguientes estructuras de datos: [ 1 ]

  • Una estructura de unión-hallazgoU{\displaystyle U}representando clases de equivalencia de identificadores de clase e, con las operaciones habitualesFinorted{\displaystyle \mathrm {buscar} },add{\displaystyle \mathrm {agregar} }ymetromirgramomi{\displaystyle \mathrm {fusionar} }Un ID de clase electrónicami{\displaystyle e}es canónico siFinorted(U,mi)=mi{\displaystyle \mathrm {buscar} (U,e)=e}; un nodo electrónicoF(i1,,inorte){\displaystyle f(i_{1},\ldots ,i_{n})} es canónico si cadaij{\displaystyle i_{j}}es canónico (j{\displaystyle j}en1,,norte{\displaystyle 1,\ldots ,n}).
  • Una asociación de identificadores de clases electrónicas con conjuntos de nodos electrónicos, denominados clases electrónicas . Esto consiste en:
    • un hashconsH{\displaystyle H}(es decir, una asignación) de e-nodos a identificadores de e-clase, y
    • un mapa de clase electrónicaMETRO{\displaystyle M}que asigna identificadores de clases electrónicas a clases electrónicas, de tal manera queMETRO{\displaystyle M}asigna identificadores equivalentes al mismo conjunto de nodos electrónicos:i,jid,METRO[i]=METRO[j]Finorted(U,i)=Finorted(U,j){\displaystyle \forall i,j\in \mathbb {id} ,M[i]=M[j]\Leftrightarrow \mathrm {buscar} (U,i)=\mathrm {buscar} (U,j)}

Invariantes

Además de la estructura anterior, un grafo electrónico válido se ajusta a varios invariantes de estructura de datos . [ 2 ] Dos nodos electrónicos son equivalentes si están en la misma clase electrónica. El invariante de congruencia establece que un grafo electrónico debe asegurar que la equivalencia sea cerrada bajo la congruencia , donde dos nodos electrónicosF(i1,,inorte),F(j1,,jnorte){\displaystyle f(i_{1},\ldots ,i_{n}),f(j_{1},\ldots ,j_{n})}son congruentes cuandoFinorted(U,ik)=Finorted(U,jk),k{1,,norte}{\displaystyle \mathrm {find} (U,i_{k})=\mathrm {find} (U,j_{k}),k\in \{1,\ldots ,n\}}. El invariante hashcons establece que hashcons asigna los e-nodos canónicos a su ID de clase e.

Operaciones

Los gráficos E exponen envoltorios alrededor de laadd{\displaystyle \mathrm {agregar} },Finorted{\displaystyle \mathrm {buscar} }, ymetromirgramomi{\displaystyle \mathrm {fusionar} }operaciones de unión-búsqueda que preservan los invariantes del grafo electrónico. La última operación, el emparejamiento electrónico, se describe a continuación.

Formulaciones equivalentes

Un e-grafo también puede formularse como un grafo bipartito.GRAMO=(norteid,mi){\displaystyle G=(N\uplus \mathrm {id},E)}dónde

  • id{\displaystyle \mathrm {id} }es el conjunto de identificadores de clase electrónica (como se indicó anteriormente),
  • norte{\displaystyle N}es el conjunto de e-nodos, y
  • mi(id×norte)(norte×id){\displaystyle E\subseteq (\mathrm {id} \times N)\cup (N\times \mathrm {id} )}es un conjunto de aristas dirigidas.

Existe una arista dirigida desde cada e-clase a cada uno de sus miembros, y desde cada e-nodo a cada uno de sus hijos. [ 3 ]

Emparejamiento electrónico

DejarV{\displaystyle V}sea ​​un conjunto de variables y dejemos queTmirmetro(Σ,V){\displaystyle \mathrm {Término} (\Sigma,V)}sea ​​el conjunto más pequeño que incluye los símbolos de función de aridad 0 (también llamados constantes ), incluye las variables y es cerrado bajo la aplicación de los símbolos de función. En otras palabras,Tmirmetro(Σ,V){\displaystyle \mathrm {Término} (\Sigma,V)}es el conjunto más pequeño tal queVTmirmetro(Σ,V){\displaystyle V\subset \mathrm {Término} (\Sigma,V)},Σ0Tmirmetro(Σ,V){\displaystyle \Sigma _{0}\subset \mathrm {Término} (\Sigma ,V)}y cuandoincógnita1,,incógnitanorteTmirmetro(Σ,V){\displaystyle x_{1},\ldots ,x_{n}\in \mathrm {Término} (\Sigma ,V)}yFΣnorte{\displaystyle f\in \Sigma _{n}}, entoncesF(incógnita1,,incógnitanorte)Tmirmetro(Σ,V){\displaystyle f(x_{1},\ldots ,x_{n})\in \mathrm {Término} (\Sigma ,V)}. Un término que contiene variables se llama patrón , un término sin variables se llama base .

Un gráfico electrónicomi{\displaystyle E}representa un término fundamentaltTmirmetro(Σ,){\displaystyle t\in \mathrm {Término} (\Sigma ,\emptyset )}si una de sus clases electrónicas representat{\displaystyle t}Una clase electrónicado{\displaystyle C}representat{\displaystyle t}si algún enodoF(i1,,inorte)do{\displaystyle f(i_{1},\ldots ,i_{n})\in C}Sí. Un e-nodoF(i1,,inorte)do{\displaystyle f(i_{1},\ldots ,i_{n})\in C}representa un términogramo(j1,,jnorte){\displaystyle g(j_{1},\ldots ,j_{n})}siF=gramo{\displaystyle f=g}y cada clase electrónicaMETRO[ik]{\displaystyle M[i_{k}]}representa el términojk{\displaystyle j_{k}}(k{\displaystyle k}en1,,norte{\displaystyle 1,\ldots ,n}).

El emparejamiento electrónico es una operación que toma un patrón.pagTmirmetro(Σ,V){\displaystyle p\in \mathrm {Term} (\Sigma ,V)}y un gráfico electrónicomi{\displaystyle E}y produce todos los pares(σ,do){\displaystyle (\sigma ,C)}dóndeσV×id{\displaystyle \sigma \subset V\times \mathbb {id} }es una sustitución que mapea las variables enpag{\displaystyle p}a los identificadores de clase electrónica ydoid{\displaystyle C\in \mathbb {id} }es un ID de clase electrónica tal que el términoσ(pag){\displaystyle \sigma (p)}está representado pordo{\displaystyle C}. Existen varios algoritmos conocidos para el emparejamiento electrónico, [ 4 ] [ 5 ] el algoritmo de emparejamiento electrónico relacional se basa en uniones óptimas en el peor de los casos y es óptimo en el peor de los casos. [ 6 ]

Extracción

Dado una clase e y una función de costo que asigna cada símbolo de función enΣ{\displaystyle \Sigma }Para un número natural, el problema de extracción consiste en encontrar un término base con un costo total mínimo que esté representado por la clase e dada. Este problema es NP-difícil . [ 7 ] Tampoco existe un algoritmo de aproximación de factor constante para este problema, lo cual se puede demostrar mediante una reducción del problema de cobertura de conjuntos . Sin embargo, para grafos con ancho de árbol acotado , existe un algoritmo tratable de tiempo lineal y parámetro fijo . [ 8 ]

Complejidad

  • Se puede construir un e-grafo con n igualdades en tiempo O( n log n ). [ 9 ]

Saturación de igualdad

La saturación de igualdad es una técnica para construir compiladores optimizadores que utilizan grafos e. [ 10 ] Funciona aplicando un conjunto de reescrituras mediante la coincidencia de e hasta que el grafo e se satura, se alcanza un tiempo límite, se alcanza un límite de tamaño del grafo e, se supera un número fijo de iteraciones o se alcanza alguna otra condición de parada. Después de la reescritura, se extrae un término óptimo del grafo e según alguna función de coste, generalmente relacionada con el tamaño del AST o consideraciones de rendimiento.

Aplicaciones

Los grafos E se utilizan en la demostración automática de teoremas . Son una parte crucial de los solucionadores SMT modernos como Z3 [ 11 ] y CVC4 , donde se utilizan para decidir la teoría vacía calculando el cierre de congruencia de un conjunto de igualdades, y el emparejamiento E se utiliza para instanciar cuantificadores. [ 12 ] En los solucionadores basados ​​en DPLL(T) que utilizan aprendizaje de cláusulas impulsado por conflictos (también conocido como retroceso no cronológico), los grafos E se extienden para producir certificados de prueba. [ 13 ] Los grafos E también se utilizan en el demostrador de teoremas Simplify de ESC/Java . [ 14 ]

La saturación de igualdad se utiliza en compiladores optimizadores especializados , [ 15 ] por ejemplo, para aprendizaje profundo [ 16 ] , álgebra lineal [ 17 ] y autovectorización para procesadores de señales digitales [ 18 ] . La saturación de igualdad también se ha utilizado para la validación de traducción aplicada a la cadena de herramientas LLVM . [ 19 ]

Los grafos E se han aplicado a varios problemas en el análisis de programas , incluyendo fuzzing, [ 20 ] interpretación abstracta, [ 21 ] y aprendizaje de bibliotecas. [ 22 ]

Referencias

  1. ( Willsey et al. 2021 )
  2. ( Willsey et al. 2021 )
  3. ( Goharshady, Lam y Parreaux 2024 )
  4. ( de Moura y Bjørner 2007 )
  5. Moskal, Michał; Łopuszański, Jakub; Kiniry, Joseph R. (2008-05-06). "E-matching for Fun and Profit" . Electronic Notes in Theoretical Computer Science . Actas del 5.º Taller Internacional sobre Satisfacibilidad Módulo Teorías (SMT 2007). 198 (2): 19– 35. doi : 10.1016/j.entcs.2008.04.078 . ISSN 1571-0661 . 
  6. Zhang, Yihong; Wang, Yisu Remy; Willsey, Max; Tatlock, Zachary (2022-01-12). "Relational e-matching" . Actas de la ACM sobre lenguajes de programación . 6 (POPL): 35:1–35:22. arXiv : 2108.02290 . doi : 10.1145/3498696 . S2CID 236924583 . 
  7. Stepp, Michael Benjamin (2011). Saturación de la igualdad: desafíos y aplicaciones de la ingeniería (tesis doctoral). EE. UU.: Universidad de California en San Diego. ISBN 978-1-267-03827-2.
  8. ( Goharshady, Lam y Parreaux 2024 )
  9. ( Flatt et al. 2022 , p. 2) 
  10. ( Tate et al. 2009 )
  11. de Moura, Leonardo; Bjørner, Nikolaj (2008). "Z3: Un solucionador SMT eficiente". En Ramakrishnan, CR; Rehof, Jakob (eds.). Herramientas y algoritmos para la construcción y el análisis de sistemas . Lecture Notes in Computer Science. Vol. 4963. Berlín, Heidelberg: Springer. pp. 337–340 . doi : 10.1007/978-3-540-78800-3_24 . ISBN   978-3-540-78800-3.
  12. Rümmer, Philipp (2012). "E-Matching with Free Variables". En Bjørner, Nikolaj; Voronkov, Andrei (eds.). Logic for Programming, Artificial Intelligence, and Reasoning. Actas . 18.ª Conferencia Internacional, LPAR-18, Mérida, Venezuela, 11-15 de marzo de 2012. Lecture Notes in Computer Science. Vol. 7180. Berlín, Heidelberg: Springer. pp. 359-374 . doi : 10.1007/978-3-642-28717-6_28 . ISBN   978-3-642-28717-6.
  13. ( Flatt et al. 2022 , p. 2) 
  14. Detlefs, David; Nelson, Greg; Saxe, James B. (mayo de 2005). "Simplify: un demostrador de teoremas para la verificación de programas". Journal of the ACM . 52 (3): 365– 473. doi : 10.1145/1066100.1066102 . ISSN 0004-5411 . S2CID 9613854 .  
  15. Joshi, Rajeev; Nelson, Greg; Randall, Keith (17 de mayo de 2002). "Denali: un superoptimizador orientado a objetivos". ACM SIGPLAN Notices . 37 (5): 304– 314. doi : 10.1145/543552.512566 . ISSN 0362-1340 . 
  16. ^ Yang, Yichen; Phothilimtha, Phitchaya Mangpo; Wang, Yisu Remy; Willsey, Max; Roy, Sudip; Pienaar, Jacques (17 de marzo de 2021). "Saturación de igualdad para la superoptimización de gráficos tensoriales". arXiv : 2101.01332 [ cs.AI ].
  17. Wang, Yisu Remy; Hutchison, Shana; Leang, Jonathan; Howe, Bill; Suciu, Dan (22 de diciembre de 2020). "SPORES: Optimización suma-producto mediante saturación de igualdad relacional para álgebra lineal a gran escala". arXiv : 2002.07951 [ cs.DB ].
  18. Thomas, Samuel; Bornholt, James (1 de junio de 2026). "Generación automática de compiladores vectorizadores para procesadores de señales digitales personalizables" . Communications of the ACM . 69 (6): 97–105 . doi : 10.1145/3802600 . ISSN 0001-0782 . 
  19. Stepp, Michael; Tate, Ross; Lerner, Sorin (2011). «Validador de traducción basado en igualdad para LLVM». En Gopalakrishnan, Ganesh; Qadeer, Shaz (eds.). Verificación asistida por ordenador . Lecture Notes in Computer Science. Vol. 6806. Berlín, Heidelberg: Springer. pp. 737–742 . doi : 10.1007/978-3-642-22110-1_59 . ISBN   978-3-642-22110-1.
  20. "Wasm-mutate: Fuzzing WebAssembly Compilers with E-Graphs (EGRAPHS 2022) - PLDI 2022" . pldi22.sigplan.org . Consultado el 3 de febrero de 2023 .
  21. Coward, Samuel; Constantinides, George A.; Drane, Theo (17 de marzo de 2022). "Interpretación abstracta en E-Graphs". arXiv : 2203.09191 [ cs.LO ].Coward, Samuel; Constantinides, George A.; Drane, Theo (30 de mayo de 2022). "Combinando E-Graphs con interpretación abstracta". arXiv : 2205.14989 [ cs.DS ].
  22. Cao, David; Kunkel, Rose; Nandi, Chandrakana; Willsey, Max; Tatlock, Zachary; Polikarpova, Nadia (2023-01-09). "babble: Learning Better Abstractions with E-Graphs and Anti-Unification". Proceedings of the ACM on Programming Languages ​​. 7 (POPL): 396– 424. arXiv : 2212.04596 . doi : 10.1145/3571207 . ISSN 2475-1421 . S2CID 254536022 .  
  • de Moura, Leonardo; Bjørner, Nikolaj (2007). "Efficient E-Matching for SMT Solvers" . En Pfenning, Frank (ed.). Automated Deduction – CADE-21 . Lecture Notes in Computer Science. Vol.  4603. Berlín, Heidelberg: Springer. pp. 183–198 . doi : 10.1007/978-3-540-73595-3_13 . ISBN  978-3-540-73595-3.
  • Willsey, Max; Nandi, Chandrakana; Wang, Yisu Remy; Flatt, Oliver; Tatlock, Zachary; Panchekha, Pavel (2021-01-04). "egg: Saturación de igualdad rápida y extensible" . Actas de la ACM sobre lenguajes de programación . 5 (POPL): 23:1–23:29. arXiv : 2004.03082 . doi : 10.1145/3434304 . S2CID 226282597 . 
  • Tate, Ross; Stepp, Michael; Tatlock, Zachary; Lerner, Sorin (21 de enero de 2009). «Saturación de igualdad» . Actas del 36.º simposio anual ACM SIGPLAN-SIGACT sobre principios de lenguajes de programación . POPL '09. Savannah, GA, EE. UU.: Association for Computing Machinery. págs. 264-276 . doi : 10.1145/1480881.1480915 . ISBN  978-1-60558-379-2. S2CID 2138086 . 
  • Flatt, Oliver; Coward, Samuel; Willsey, Max; Tatlock, Zachary; Panchekha, Pavel (octubre de 2022). «Pequeñas pruebas a partir del cierre de congruencia» . En A. Griggio; N. Rungta (eds.). Actas de la 22.ª Conferencia sobre Métodos Formales en Diseño Asistido por Computadora – FMCAD 2022. TU Wien Academic Press. págs. 75–83 . doi : 10.34727/2022/isbn.978-3-85448-053-2_13 . ISBN  978-3-85448-053-2. S2CID 252118847 . 
  • Goharshady, Amir Kafshdar; Lam, Chun Kit; Parreaux, Lionel (2024-10-08). "Extracción rápida y óptima para grafos de igualdad dispersos" . Actas de la ACM sobre lenguajes de programación . 8 (OOPSLA2): 361:2551–361:2577. doi : 10.1145/3689801 .
  • El proyecto del huevo
  • Un cuaderno de Colab que explica los gráficos electrónicos.