La ley distributiva generalizada (GDL) es una generalización de la propiedad distributiva que da lugar a un algoritmo general de paso de mensajes . [ 1 ] Es una síntesis del trabajo de numerosos autores en las comunidades de teoría de la información , comunicaciones digitales , procesamiento de señales , estadística e inteligencia artificial . La ley y el algoritmo fueron presentados en un semitutorial de Srinivas M. Aji y Robert J. McEliece con el mismo título. [ 1 ]
Introducción
"La ley distributiva en matemáticas es la ley que relaciona las operaciones de multiplicación y suma, expresada simbólicamente,; es decir, el factor monomiose distribuye, o se aplica por separado, a cada término del factor binomial, dando como resultado el producto" – Britannica. [ 2 ]
Como se puede observar en la definición, la aplicación de la ley distributiva a una expresión aritmética reduce el número de operaciones en ella. En el ejemplo anterior, el número total de operaciones se redujo de tres (dos multiplicaciones y una suma en) a dos (una multiplicación y una suma enLa generalización de la ley distributiva conduce a una gran familia de algoritmos rápidos . Esto incluye la FFT y el algoritmo de Viterbi .
Esto se explica de forma más formal en el siguiente ejemplo:
dóndeyson funciones de valor real,y(decir)
Aquí estamos "marginalizando" las variables independientes (,, y) para obtener el resultado. Cuando calculamos la complejidad computacional, podemos ver que para cadapares de, haytérminos debido al tripleteque necesita participar en la evaluación dedonde cada paso tiene una suma y una multiplicación. Por lo tanto, el número total de cálculos necesarios esPor lo tanto, la complejidad asintótica de la función anterior es.
Si aplicamos la ley distributiva al lado derecho de la ecuación, obtenemos lo siguiente:
Esto implica quepuede describirse como un productodóndey
Ahora, cuando calculamos la complejidad computacional, podemos ver que hayadiciones enycada uno y haymultiplicaciones cuando estamos usando el productoevaluarPor lo tanto, el número total de cálculos necesarios es. Por lo tanto, la complejidad asintótica del cálculose reduce adeEsto demuestra, mediante un ejemplo, que la aplicación de la ley distributiva reduce la complejidad computacional, lo cual es una de las buenas características de un "algoritmo rápido".
Historia
Algunos de los problemas que se resolvieron utilizando la ley distributiva se pueden agrupar de la siguiente manera:
- Algoritmos de decodificación: Gallager utilizó un algoritmo similar a GDL para decodificar códigos de paridad de baja densidad. Basándose en el trabajo de Gallager, Tanner introdujo el grafo de Tanner y lo expresó mediante el método de paso de mensajes. El grafo de Tanner también ayudó a explicar el algoritmo de Viterbi . Forney observó que la decodificación de máxima verosimilitud de códigos convolucionales de Viterbi también utilizaba algoritmos de generalidad similar a GDL.
- Algoritmo de avance-retroceso : El algoritmo de avance-retroceso ayudó como algoritmo para rastrear los estados en la cadena de Markov . Y este también fue utilizado por el algoritmo de generalidad GDL.
- Inteligencia artificial : La noción de árboles de unión se ha utilizado para resolver muchos problemas en IA. Asimismo, el concepto de eliminación de cubos ha utilizado muchos de estos conceptos.
El problema del MPF
La marginalización de una función producto (MPF, por sus siglas en inglés) es un problema computacional general que, como caso particular, incluye muchos problemas clásicos, como el cálculo de la transformada discreta de Hadamard , la decodificación de máxima verosimilitud de un código lineal sobre un canal sin memoria y la multiplicación de cadenas de matrices . La potencia del GDL reside en que se aplica a situaciones en las que se generalizan las sumas y las multiplicaciones.
Un semianillo conmutativo es un buen marco para explicar este comportamiento. Se define sobre un conjuntocon operadores "" y "" dóndeyson monoides conmutativos y se cumple la ley distributiva.
Dejarsean variables tales quedóndees un conjunto finito y. Aquí. Siy, dejar ,, , , y
Dejardónde. Supongamos que una función se define como, dóndees un semianillo conmutativo . Además,se denominan los dominios locales ycomo los núcleos locales .
Ahora el kernel global :\mathbf {A} \rightarrow R} se define como:
Definición del problema MPF : Para uno o más índices, calcular una tabla de los valores de- marginación del núcleo global, que es la funcióndefinido como
Aquíes el complemento decon respecto ay else llama elfunción objetivo , o la función objetivo en. Se puede observar que el cálculo de laLa función objetivo de la manera obvia necesitaoperaciones. Esto se debe a que hayadiciones ymultiplicaciones necesarias en el cálculo de lafunción objetivo. El algoritmo GDL, que se explica en la siguiente sección, puede reducir esta complejidad computacional.
El siguiente es un ejemplo del problema MPF.
Dejarysean variables tales quey. AquíyLas funciones dadas que utilizan estas variables son:yy necesitamos calcularydefinido como:
Aquí, los dominios locales y los núcleos locales se definen de la siguiente manera:
dóndees elfunción objetivo yes elfunción objetivo.
Consideremos otro ejemplo dondeyes una función de valor real. Ahora, consideraremos el problema MPF donde el semianillo conmutativo se define como el conjunto de números reales con suma y multiplicación ordinarias y los dominios locales y los núcleos locales se definen de la siguiente manera:
Ahora bien, dado que el núcleo global se define como el producto de los núcleos locales, es
y la función objetivo en el dominio locales
Esta es la transformada de Hadamard de la funciónPor lo tanto, podemos ver que el cálculo de la transformada de Hadamard es un caso especial del problema MPF. Se pueden mostrar más ejemplos para demostrar que el problema MPF constituye casos especiales de muchos problemas clásicos, como se explicó anteriormente, cuyos detalles se pueden encontrar en [ 1 ].
GDL: un algoritmo para resolver el problema MPF
Si se puede encontrar una relación entre los elementos de un conjunto dado, entonces se puede resolver el problema MPF basándose en la noción de propagación de creencias , que es un uso especial de la técnica de "paso de mensajes". La relación requerida es que el conjunto dado de dominios locales se puede organizar en un árbol de unión . En otras palabras, creamos un árbol de teoría de grafos con los elementos decomo los vértices del árbol, de tal manera que para cualesquiera dos vértices arbitrarios digamosydóndey existe una arista entre estos dos vértices, entonces la intersección de las etiquetas correspondientes, a saber:, es un subconjunto de la etiqueta en cada vértice en el camino único desdea.
Por ejemplo,
Ejemplo 1: Consideremos los siguientes nueve dominios locales:
Para el conjunto de dominios locales dado anteriormente, se pueden organizar en un árbol de unión como se muestra a continuación:

De manera similar, si se da otro conjunto como el siguiente
Ejemplo 2: Consideremos los siguientes cuatro dominios locales:
Entonces, construir el árbol solo con estos dominios locales no es posible, ya que este conjunto de valores no tiene dominios comunes que puedan ubicarse entre dos valores cualesquiera del conjunto anterior. Sin embargo, si se agregan los dos dominios ficticios como se muestra a continuación, organizar el conjunto actualizado en un árbol de unión sería posible y, además, sencillo.
5., 6.,
De manera similar, para este conjunto de dominios, el árbol de unión se ve como se muestra a continuación:

Algoritmo de ley distributiva generalizada (GDL)
Entrada: Un conjunto de dominios locales. Salida: Para el conjunto de dominios dado, se calcula el número mínimo posible de operaciones que se requieren para resolver el problema. Entonces, siyestán conectados por una arista en el árbol de unión, luego un mensaje deaes un conjunto/tabla de valores dados por una función::. Para empezar con todas las funciones, es decir, para todas las combinaciones deyen el árbol dado,se define como idénticoy cuando se actualiza un mensaje en particular, sigue la ecuación que se muestra a continuación.
- =
dóndesignifica quees un vértice adyacente aen el árbol.
De manera similar, cada vértice tiene un estado que se define como una tabla que contiene los valores de la función., Al igual que los mensajes se inicializan en 1 de forma idéntica, el estado dese define como núcleo localpero siempre queUna vez actualizada, sigue la siguiente ecuación:
Funcionamiento básico del algoritmo
Dado el conjunto de dominios locales como entrada, determinamos si podemos crear un árbol de unión, ya sea utilizando el conjunto directamente o agregando primero dominios ficticios al conjunto y luego creando el árbol de unión. Si la construcción de la unión no es posible, el algoritmo indica que no hay forma de reducir el número de pasos para calcular el problema de la ecuación dada. Sin embargo, una vez que tenemos el árbol de unión, el algoritmo deberá programar mensajes y calcular estados. Al hacer esto, podemos saber dónde se pueden reducir los pasos, lo cual se analizará más adelante.
Planificación del paso de mensajes y del cálculo del estado.
Hay dos casos especiales de los que vamos a hablar aquí, a saber, el problema de un solo vértice, en el que la función objetivo se calcula en un solo vértice. y el segundo es el Problema de Todos los Vértices, donde el objetivo es calcular la función objetivo en todos los vértices.
Comencemos con el problema de un solo vértice ; GDL comenzará dirigiendo cada arista hacia el vértice objetivo.Aquí, los mensajes se envían únicamente en la dirección hacia el vértice de destino. Tenga en cuenta que todos los mensajes dirigidos se envían solo una vez. Los mensajes se inician desde los nodos hoja (donde el grado es 1) y se dirigen hacia el vértice de destino.El mensaje viaja desde las hojas a sus padres y luego de allí a los padres de estos y así sucesivamente hasta que llega al vértice objetivo.. El vértice objetivoCalculará su estado solo cuando reciba todos los mensajes de todos sus vecinos. Una vez que tengamos el estado, habremos obtenido la respuesta y, por lo tanto, el algoritmo finalizará.
Por ejemplo, consideremos un árbol de unión construido a partir del conjunto de dominios locales dados anteriormente, es decir, el conjunto del ejemplo 1. Ahora, la tabla de programación para estos dominios es (donde el vértice objetivo es).
Por lo tanto, la complejidad para GDL de un solo vértice se puede mostrar como
operaciones aritméticas Donde (Nota: La explicación de la ecuación anterior se explica más adelante en el artículo) es la etiqueta de. es el grado de(es decir, número de vértices adyacentes a v).
Para resolver el problema de todos los vértices , podemos programar GDL de varias maneras. Una de ellas es la implementación paralela, donde en cada ronda se actualiza cada estado y se calcula y transmite cada mensaje simultáneamente. En este tipo de implementación, los estados y los mensajes se estabilizan tras un número de rondas que, como máximo, es igual al diámetro del árbol. En este punto, todos los estados de los vértices coincidirán con la función objetivo deseada.
Otra forma de programar GDL para este problema es la implementación en serie, que es similar al problema de un solo vértice, excepto que no detenemos el algoritmo hasta que todos los vértices de un conjunto requerido hayan recibido todos los mensajes de todos sus vecinos y hayan calculado su estado. Por lo tanto, el número de operaciones aritméticas que requiere esta implementación es como máximooperaciones aritméticas.
Construcción de un árbol de unión
La clave para construir un árbol de unión reside en el grafo del dominio local., que es un grafo completo ponderado convérticeses decir, uno para cada dominio local, con el peso de la arista. definido por . si, entonces decimosestá contenido en. Denotado por(el peso de un árbol de expansión de peso máximo de), que se define por
donde n es el número de elementos en ese conjunto. Para mayor claridad y detalles, consulte estos enlaces: [ 3 ] [ 4 ]
Teorema de programación
Dejarser un árbol de unión con conjunto de vérticesy conjunto de bordesEn este algoritmo, los mensajes se envían en ambas direcciones en cualquier arista, por lo que podemos decir/considerar el conjunto de aristas E como un conjunto de pares ordenados de vértices. Por ejemplo, de la Figura 1se puede definir de la siguiente manera
NOTA:Lo anterior te muestra todas las direcciones posibles que puede seguir un mensaje en el árbol.
El cronograma para el GDL se define como una secuencia finita de subconjuntos de. Que generalmente se representa por {}, Dóndees el conjunto de mensajes actualizados durante elronda de ejecución del algoritmo.
Habiendo definido/visto algunas notaciones, veremos lo que dice el teorema, cuando se nos da un cronograma., el enrejado de mensajes correspondiente como un grafo dirigido finito con conjunto de vértices de , en el que un elemento típico se denota porpara , Luego, después de completar el paso del mensaje, estado en el vérticeserá elobjetivo definido en
y si existe un camino desdea
Complejidad computacional
Aquí intentamos explicar la complejidad de resolver el problema MPF en términos del número de operaciones matemáticas necesarias para el cálculo. Es decir, comparamos el número de operaciones necesarias al calcularlo utilizando el método normal (aquí por método normal nos referimos a métodos que no utilizan paso de mensajes ni árboles de unión; en resumen, métodos que no utilizan los conceptos de GDL) y el número de operaciones utilizando la ley distributiva generalizada.
Ejemplo: Consideremos el caso más simple en el que necesitamos calcular la siguiente expresión..
Para evaluar esta expresión de forma ingenua se requieren dos multiplicaciones y una suma. La expresión, cuando se expresa utilizando la ley distributiva, se puede escribir comoUna optimización sencilla que reduce el número de operaciones a una suma y una multiplicación.
De forma similar al ejemplo explicado anteriormente, expresaremos las ecuaciones en diferentes formas para realizar la menor cantidad de operaciones posible aplicando el GDL.
Como se explicó en las secciones anteriores, resolvemos el problema utilizando el concepto de árboles de unión. La optimización obtenida mediante el uso de estos árboles es comparable a la obtenida al resolver un problema de semigrupos en árboles. Por ejemplo, para encontrar el mínimo de un grupo de números, podemos observar que si tenemos un árbol y todos los elementos están en la base del árbol, podemos comparar el mínimo de dos elementos en paralelo y el mínimo resultante se escribirá en el nodo padre. Cuando este proceso se propaga hacia arriba en el árbol, el mínimo del grupo de elementos se encontrará en la raíz.
A continuación se muestra la complejidad para resolver el árbol de unión mediante paso de mensajes.
Reescribimos la fórmula utilizada anteriormente de la siguiente forma. Esta es la ecuación para un mensaje que se enviará del vértice v al vértice w.
- ----ecuación del mensaje
De manera similar, reescribimos la ecuación para calcular el estado del vértice v de la siguiente manera:
Primero analizaremos el problema de un solo vértice y asumiremos que el vértice objetivo esy por lo tanto tenemos una ventaja deaSupongamos que tenemos una aristaCalculamos el mensaje usando la ecuación del mensaje. Para calcularrequiere
adiciones y
multiplicaciones.
(Nosotros representamos a lacomo.)
Pero habrá muchas posibilidades parapor eso posibilidades paraPor lo tanto, todo el mensaje necesitará
adiciones y
multiplicaciones
El número total de operaciones aritméticas necesarias para enviar un mensaje haciaa lo largo de los bordes del árbol estará
adiciones y
multiplicaciones.
Una vez que se han transmitido todos los mensajes, el algoritmo finaliza con el cálculo del estado enEl cálculo del estado requieremás multiplicaciones.
Por lo tanto, el número de cálculos necesarios para calcular el estado se indica a continuación.
adiciones y
multiplicaciones
Por lo tanto, el gran total del número de cálculos es
- ----
dóndees una arista y su tamaño está definido por
La fórmula anterior nos da el límite superior.
Si definimos la complejidad del bordecomo
Por lo tanto,se puede escribir como
Ahora calculamos la complejidad de las aristas para el problema definido en la Figura 1 de la siguiente manera:
La complejidad total serálo cual es considerablemente bajo en comparación con el método directo. (Aquí, por método directo nos referimos a los métodos que no utilizan el paso de mensajes. El tiempo empleado con el método directo será equivalente al tiempo necesario para calcular el mensaje en cada nodo y el estado de cada uno de ellos).
Ahora consideramos el problema de todos los vértices, donde el mensaje deberá enviarse en ambas direcciones y el estado deberá calcularse en ambos vértices. Esto tomaríapero mediante el preprocesamiento podemos reducir el número de multiplicaciones a. Aquíes el grado del vértice. Ejemplo: Si hay un conjuntoconnúmeros. Es posible calcular todos los productos d dedelcon como máximomultiplicaciones en lugar de lo obvioLo hacemos precalculando las cantidades.yesto tomamultiplicaciones. Entonces sidenota el producto de todosexceptotenemosy así sucesivamente necesitará otromultiplicaciones que dan como resultado el total.
No hay mucho que podamos hacer en lo que respecta a la construcción del árbol de unión, excepto que podemos tener muchos árboles de expansión de peso máximo y debemos elegir el árbol de expansión con el menory a veces esto puede significar agregar un dominio local para reducir la complejidad del árbol de unión.
Podría parecer que GDL solo es correcto cuando los dominios locales pueden expresarse como un árbol de unión. Sin embargo, incluso en casos con ciclos y varias iteraciones, los mensajes serán aproximadamente iguales a la función objetivo. Los experimentos realizados con el algoritmo de Gallager-Tanner-Wiberg para códigos de verificación de paridad de baja densidad respaldaron esta afirmación.
Referencias
- 1 2 3 Aji, SM; McEliece, RJ (marzo de 2000). "La ley distributiva generalizada" (PDF) . IEEE Transactions on Information Theory . 46 (2): 325– 343. Bibcode : 2000ITIT...46..325A . doi : 10.1109/18.825794 .
- ↑ "derecho distributivo" . Encyclopædia Britannica. Encyclopædia Britannica Online . Encyclopædia Britannica Inc. Consultado el 1 de mayo de 2012 .
- ↑ "Copia archivada" (PDF) . Archivado del original (PDF) el 19 de marzo de 2015. Recuperado el 19 de marzo de 2015 .
{{cite web}}: CS1 maint: copia archivada como título ( enlace ) Los algoritmos del árbol de unión - ↑ http://www-anw.cs.umass.edu/~cs691t/SS02/lectures/week7.PDF Archivado el 26/05/2012 en Wayback Machine El algoritmo del árbol de unión
- teoría de la información
- Algoritmos
- Modelos gráficos
- Procesamiento digital de señales