.jpg/500px-On_Off_-_Zał_Wył_(3086204137).jpg)
La idempotencia ( UK : / ˌɪdɛmˈpoʊtəns / , [ 1] US : / ˈaɪdəm- / ) [ 2] es la propiedad de ciertas operaciones en matemáticas y ciencias de la computación por la cual se pueden aplicar múltiples veces sin cambiar el resultado más allá de la aplicación inicial. El concepto de idempotencia surge en varios lugares del álgebra abstracta (en particular, en la teoría de proyectores y operadores de cierre ) y la programación funcional (en la que está conectado a la propiedad de transparencia referencial ).
El término fue introducido por el matemático estadounidense Benjamin Peirce en 1870 [3] [4] en el contexto de elementos de álgebras que permanecen invariantes cuando se elevan a una potencia entera positiva, y literalmente significa "(la cualidad de tener) la misma potencia", de idem + potencia (mismo + potencia).
Definición
Se dice que un elemento de un conjunto equipado con un operador binario es idempotente si [5] [6]
- .
Se dice que la operación binaria es idempotente si [7] [8]
- Para todos .
Ejemplos
- En el monoide de los números naturales con multiplicación por , sólo y son idempotentes. En efecto, y .
- En el monoide de los números naturales con adición , sólo es idempotente. En efecto, 0 + 0 = 0 .
- En un magma , un elemento identidad o un elemento absorbente , si existe, es idempotente. En efecto, y .
- En un grupo , el elemento identidad es el único elemento idempotente. En efecto, si es un elemento de tal que , entonces y finalmente multiplicando por la izquierda por el elemento inverso de .
- En los monoides y del conjunto potencia del conjunto con unión de conjuntos e intersección de conjuntos respectivamente, y son idempotentes. En efecto, para todo , y para todo .
- En los monoides y del dominio booleano con disyunción lógica y conjunción lógica respectivamente, y son idempotentes. En efecto, para todo , y para todo .
- En un dominio MCD (por ejemplo en ), las operaciones de MCD y MCM son idempotentes.
- En un anillo booleano , la multiplicación es idempotente.
- En un semianillo tropical , la adición es idempotente.
- En un anillo de matrices cuadráticas , el determinante de una matriz idempotente es 0 o 1. Si el determinante es 1, la matriz necesariamente es la matriz identidad . [ cita requerida ]
Funciones idempotentes
En el monoide de las funciones de un conjunto a sí mismo (ver exponenciación de conjuntos ) con composición de funciones , los elementos idempotentes son las funciones tales que , [9] que es tal que para todo (en otras palabras, la imagen de cada elemento es un punto fijo de ). Por ejemplo:
- el valor absoluto es idempotente. En efecto, , es decir para todos ;
- Las funciones constantes son idempotentes;
- La función identidad es idempotente;
- Las funciones de suelo , techo y parte fraccionaria son idempotentes;
- La parte real de una función de un número complejo , es idempotente.
- La función generada por un subgrupo a partir del conjunto potencia de un grupo a sí mismo es idempotente;
- La función de envoltura convexa del conjunto potencia de un espacio afín sobre los reales a sí mismo es idempotente;
- las funciones de clausura e interioridad del conjunto potencia de un espacio topológico respecto de sí mismo son idempotentes;
- Las funciones estrella de Kleene y Kleene plus del conjunto potencia de un monoide a sí mismo son idempotentes;
- Los endomorfismos idempotentes de un espacio vectorial son sus proyecciones .
Si el conjunto tiene elementos, podemos dividirlo en puntos fijos y no fijos elegidos bajo , y entonces es el número de funciones idempotentes diferentes. Por lo tanto, teniendo en cuenta todas las particiones posibles,
es el número total de funciones idempotentes posibles en el conjunto. La secuencia entera del número de funciones idempotentes dada por la suma anterior para n = 0, 1, 2, 3, 4, 5, 6, 7, 8, ... comienza con 1, 1, 3, 10, 41, 196, 1057, 6322, 41393, ... (secuencia A000248 en la OEIS ).
Ni la propiedad de ser idempotente ni la de no serlo se conservan bajo la composición de funciones. [10] Como ejemplo para el primero, mod 3 y son ambos idempotentes, pero no es, [11] aunque resulta ser. [12] Como ejemplo para el último, la función de negación en el dominio booleano no es idempotente, pero sí lo es. De manera similar, la negación unaria de números reales no es idempotente, pero sí lo es. En ambos casos, la composición es simplemente la función identidad , que es idempotente.
Significado de informática
En informática , el término idempotencia puede tener un significado diferente según el contexto en el que se aplique:
- en programación imperativa , una subrutina con efectos secundarios es idempotente si múltiples llamadas a la subrutina tienen el mismo efecto en el estado del sistema que una sola llamada, en otras palabras, si la función del espacio de estados del sistema a sí misma asociada con la subrutina es idempotente en el sentido matemático dado en la definición;
- En programación funcional , una función pura es idempotente si es idempotente en el sentido matemático dado en la definición.
Esta es una propiedad muy útil en muchas situaciones, ya que significa que una operación se puede repetir o volver a intentar tantas veces como sea necesario sin causar efectos no deseados. Con operaciones no idempotentes, el algoritmo puede tener que llevar un registro de si la operación ya se realizó o no.
Ejemplos de informática
Una función que busca el nombre y la dirección de un cliente en una base de datos es típicamente idempotente, ya que esto no hará que la base de datos cambie. De manera similar, una solicitud para cambiar la dirección de un cliente a XYZ es típicamente idempotente, porque la dirección final será la misma sin importar cuántas veces se envíe la solicitud. Sin embargo, una solicitud de un cliente para realizar un pedido normalmente no es idempotente, ya que varias solicitudes darán lugar a la realización de varios pedidos. Una solicitud para cancelar un pedido en particular es idempotente porque, sin importar cuántas solicitudes se realicen, el pedido permanece cancelado.
Sin embargo, una secuencia de subrutinas idempotentes en la que al menos una subrutina es diferente de las demás no es necesariamente idempotente si una subrutina posterior en la secuencia cambia un valor del que depende una subrutina anterior ( la idempotencia no está cerrada bajo la composición secuencial) . Por ejemplo, supongamos que el valor inicial de una variable es 3 y hay una secuencia de subrutinas que lee la variable, luego la cambia a 5 y luego la vuelve a leer. Cada paso en la secuencia es idempotente: ambos pasos que leen la variable no tienen efectos secundarios y el paso que cambia la variable a 5 siempre tendrá el mismo efecto sin importar cuántas veces se ejecute. No obstante, ejecutar la secuencia completa una vez produce la salida (3, 5), pero ejecutarla una segunda vez produce la salida (5, 5), por lo que la secuencia no es idempotente.
int x = 3 ; void inspeccionar () { printf ( "%d \n " , x ); } void cambio () { x = 5 ; } void secuencia () { inspeccionar (); cambio (); inspeccionar (); }
int main () { secuencia (); // imprime "3\n5\n" secuencia (); // imprime "5\n5\n" devuelve 0 ; }
En el Protocolo de transferencia de hipertexto (HTTP), la idempotencia y la seguridad son los principales atributos que separan a los métodos HTTP . De los principales métodos HTTP, GET, PUT y DELETE deben implementarse de manera idempotente según el estándar, pero POST no necesita serlo. [13] GET recupera el estado de un recurso; PUT actualiza el estado de un recurso; y DELETE elimina un recurso. Como en el ejemplo anterior, la lectura de datos generalmente no tiene efectos secundarios, por lo que es idempotente (de hecho, nulipotente). La actualización y eliminación de un dato dado generalmente son idempotentes siempre que la solicitud identifique de manera única el recurso y solo ese recurso nuevamente en el futuro. PUT y DELETE con identificadores únicos se reducen al caso simple de asignación a una variable de un valor o el valor nulo, respectivamente, y son idempotentes por la misma razón; el resultado final siempre es el mismo que el resultado de la ejecución inicial, incluso si la respuesta difiere. [14]
La violación del requisito de identificación única en el almacenamiento o la eliminación generalmente causa la violación de la idempotencia. Por ejemplo, almacenar o eliminar un conjunto determinado de contenido sin especificar un identificador único: las solicitudes POST, que no necesitan ser idempotentes, a menudo no contienen identificadores únicos, por lo que la creación del identificador se delega al sistema receptor, que luego crea un nuevo registro correspondiente. De manera similar, las solicitudes PUT y DELETE con criterios no específicos pueden dar como resultado diferentes resultados según el estado del sistema; por ejemplo, una solicitud para eliminar el registro más reciente. En cada caso, las ejecuciones posteriores modificarán aún más el estado del sistema, por lo que no son idempotentes.
En el procesamiento del flujo de eventos , la idempotencia se refiere a la capacidad de un sistema de producir el mismo resultado, incluso si el mismo archivo, evento o mensaje se recibe más de una vez.
En una arquitectura de carga y almacenamiento , las instrucciones que podrían causar un error de página son idempotentes. Por lo tanto, si se produce un error de página, el sistema operativo puede cargar la página desde el disco y luego simplemente volver a ejecutar la instrucción que ha fallado. En un procesador donde dichas instrucciones no son idempotentes, tratar los errores de página es mucho más complejo. [15] [16]
Al reformatear la salida, se espera que la impresión bonita sea idempotente. En otras palabras, si la salida ya es "bonita", no debería haber nada que hacer para la impresión bonita. [ cita requerida ]
En la arquitectura orientada a servicios (SOA), un proceso de orquestación de múltiples pasos compuesto enteramente de pasos idempotentes puede reproducirse sin efectos secundarios si alguna parte de ese proceso falla.
Muchas operaciones que son idempotentes suelen tener formas de "reanudar" un proceso si se interrumpe, formas que terminan mucho más rápido que comenzar desde el principio. Por ejemplo, reanudar una transferencia de archivos , sincronizar archivos , crear una compilación de software , instalar una aplicación y todas sus dependencias con un administrador de paquetes , etc.
Ejemplos aplicados
Ejemplos de aplicaciones que muchas personas podrían encontrar en su vida cotidiana incluyen los botones de llamada de ascensor y los botones de cruce de peatones . [17] La activación inicial del botón mueve el sistema a un estado de solicitud, hasta que se satisface la solicitud. Las activaciones posteriores del botón entre la activación inicial y la satisfacción de la solicitud no tienen ningún efecto, a menos que el sistema esté diseñado para ajustar el tiempo para satisfacer la solicitud en función del número de activaciones.
Véase también
- Conjunto bioordenado
- Operador de cierre
- Punto fijo (matemáticas)
- Idempotente de un código
- Análisis idempotente
- Matriz idempotente
- Relación idempotente : una generalización de la idempotencia a las relaciones binarias
- Idempotente (teoría de anillos)
- Involución (matemáticas)
- Función iterada
- Lista de matrices
- Nilpotente
- Función pura
- Transparencia referencial
Referencias
- ^ "idempotencia". Diccionario Oxford de inglés (3.ª ed.). Oxford University Press. 2010.
- ^ "idempotente". Merriam-Webster . Archivado desde el original el 19 de octubre de 2016.
- ^ Manuscrito original de la conferencia de 1870 ante la Academia Nacional de Ciencias (Washington, DC, EE. UU.): Peirce, Benjamin (1870) "Álgebra asociativa lineal" De las páginas 16-17: "Cuando una expresión que se eleva al cuadrado o a cualquier potencia superior se anula, puede llamarse nilpotente ; pero cuando se eleva al cuadrado o a una potencia superior se da a sí misma como resultado, puede llamarse idempotente .
La ecuación definitoria de las expresiones nilpotentes e idempotentes son respectivamente A n = 0 y A n = A; pero con referencia a las expresiones idempotentes, siempre se asumirá que son de la forma A n = A a menos que se indique claramente lo contrario". - ^ Polcino y Sehgal 2002, pág. 127.
- ^ Valenza, Robert (2012). Álgebra lineal: una introducción a las matemáticas abstractas. Berlín: Springer Science & Business Media. pág. 22. ISBN 9781461209010.
Un elemento s de un magma tal que ss = s se llama idempotente .
- ^ Doneddu, Alfred (1976). Polynômes et algèbre linéaire (en francés). París: Vuibert. pag. 180.
Soit
M
un magma, noté multiplicativement. En nomme idempotent de
M
tout elemento
a
de
M
tel que
a
2
=
a
.
- ^ George Grätzer (2003). Teoría general de redes . Basilea: Birkhäuser. ISBN 978-3-7643-6996-5.Aquí: Sect.1.2, p.5.
- ^ Garrett Birkhoff (1967). Teoría de celosías . Colloquium Publications. Vol. 25. Providence: Am. Math. Soc.. Aquí: Sec.I.5, p.8.
- ^ Esta es una ecuación entre funciones. Dos funciones son iguales si sus dominios y rangos coinciden, y sus valores de salida coinciden en todo su dominio.
- ^ Si y conmutan bajo composición (es decir, si ) entonces la idempotencia de ambos y implica que de , ya que , usando la asociatividad de la composición.
- ^ por ejemplo , pero
- ^ También se muestra que la conmutación de y no es una condición necesaria para la preservación de la idempotencia.
- ^ IETF, Protocolo de transferencia de hipertexto (HTTP/1.1): semántica y contenido Archivado el 8 de junio de 2014 en Wayback Machine . Véase también Protocolo de transferencia de hipertexto .
- ^ "Métodos idempotentes". Protocolo de transferencia de hipertexto (HTTP/1.1): semántica y contenido. sec. 4.2.2. doi : 10.17487/RFC7231 . RFC 7231.
Sabe que repetir la solicitud tendrá el mismo efecto deseado, incluso si la solicitud original tuvo éxito, aunque la respuesta puede diferir.
- ^ John Ousterhout . "Buscapersonas bajo demanda".
- ^ Marc A. de Kruijf. "Construcción de regiones idempotentes mediante compiladores y aplicaciones en el diseño arquitectónico". 2012. p. 10.
- ^ "Guía de especificaciones e instrucciones para ascensores de pasajeros con tracción engranada" (PDF) . Departamento de Trabajo de Carolina del Norte, Oficina de ascensores . 2002. Archivado desde el original (PDF) el 23 de mayo de 2011.Por ejemplo, esta especificación de diseño incluye un algoritmo detallado sobre cuándo las cabinas del ascensor responderán a las llamadas de servicio posteriores.
Lectura adicional
- "idempotente" en el Diccionario gratuito en línea de informática
- Goodearl, KR (1991), Anillos regulares de von Neumann (2.ª ed.), Malabar, FL: Robert E. Krieger Publishing Co. Inc., págs. xviii+412, ISBN 978-0-89464-632-4, Sr. 1150975
- Gunawardena, Jeremy (1998), "Introducción a la idempotencia" (PDF) , en Gunawardena, Jeremy (ed.), Idempotency. Based on a workshop, Bristol, Reino Unido, 3-7 de octubre de 1994 , Cambridge: Cambridge University Press , pp. 1-49, Zbl 0898.16032
- "Idempotente", Enciclopedia de Matemáticas , EMS Press , 2001 [1994]
- Hazewinkel, Michiel ; Gubareni, Nadiya; Kirichenko, VV (2004), Álgebras, anillos y módulos. vol. 1 , Matemáticas y sus aplicaciones, vol. 575, Dordrecht: Kluwer Academic Publishers, pp. xii+380, ISBN 978-1-4020-2690-4, Sr. 2106764
- Lam, TY (2001), Un primer curso sobre anillos no conmutativos , Graduate Texts in Mathematics, vol. 131 (2.ª ed.), Nueva York: Springer-Verlag, pp. xx+385, doi :10.1007/978-1-4419-8616-0, ISBN 978-0-387-95183-6, Sr. 1838439
- Lang, Serge (1993), Álgebra (tercera edición), Reading, Mass.: Addison-Wesley, ISBN 978-0-201-55540-0, Zbl0848.13001 pág. 443
- Peirce, Benjamin. Álgebra asociativa lineal 1870.
- Polcino Milies, César; Sehgal, Sudarshan K. (2002), Introducción a los anillos de grupo, álgebras y aplicaciones, vol. 1, Kluwer Academic Publishers, págs. 127, ISBN 978-1-4020-0238-0, Sr. 1896125