stringtranslate.com

Megafusión

La megafusión es un algoritmo distribuido cuyo objetivo es resolver el problema de elección en gráficos genéricos conectados no dirigidos . [1] [2]

Introducción

Mega-Merger fue desarrollado por Robert Gray Gallager en el MIT en 1983. Aplica un enfoque distribuido de divide y vencerás combinado con una estrategia de conquista basada en rangos. El algoritmo suele presentarse a través de una analogía de aldea-ciudad. Cada nodo del gráfico indica una aldea, mientras que los bordes que los conectan son las carreteras y un árbol de expansión con raíz en un subgráfico es una ciudad. El gráfico completo es entonces una megaciudad. Mega-Merger empuja a las aldeas a unirse para formar ciudades según el rango y los bordes de cada una. Las ciudades se forman entonces por alianzas o por conquista/absorción.

Prerrequisitos

Mega-Merger construye un árbol de expansión mínimo sobre gráficos conectados siempre que:

No son necesarias más restricciones.

Algoritmo

El algoritmo asigna a cada aldea un nombre y un rango, el primero generalmente único. El segundo indica el número de fusiones amistosas por las que ha pasado la ciudad y, cuanto mayor sea, más poderosa se considera la ciudad. Además, a cada arista se le asigna un peso: cada aldea/ciudad tiene una arista de peso mínimo también llamada enlace de fusión , que es la arista cuyo recorrido tiene un costo mínimo.

El algoritmo avanza en etapas consecutivas hasta que se forma una megaciudad. Cada ciudad C calcula su propio enlace de fusión y envía una solicitud de fusión a través de . La solicitud se gestiona de las siguientes maneras:

  1. Fusión amistosa: si las ciudades comparten el mismo vínculo de fusión y tienen el mismo rango, se produce una fusión amistosa y las dos ciudades se fusionan en una sola. Se elige un nuevo nombre para la ciudad recién creada, se elige una aldea gobernante y se reorienta el camino desde el gobernante anterior hasta el nodo en el vínculo de fusión de modo que conduzca al nuevo líder. La nueva ciudad también aumenta su rango en uno. Tenga en cuenta que esta es la única forma en que dos ciudades pueden aumentar el rango de la otra.
  2. Absorción: : Si la ciudad solicitante tiene un rango inferior, la ciudad receptora realiza un proceso de absorción : es absorbida como en la fusión amistosa, pero pierde su nombre y la ciudad resultante tiene el rango de .
  3. Suspensión: : En tales casos congela la solicitud: espera ser absorbida por la regla 2 o fusionarse y aumentar su rango por encima del de para poder promulgar la regla 1 y absorber .

Mensajes externos

Ningún nodo del grafo tiene una lista de aldeas que pertenecen a su aldea, por lo tanto, cada vez que una ciudad quiere buscar aristas que conducen hacia afuera de ella, tiene que adoptar un protocolo de pregunta-respuesta . El gobernante de la ciudad envía un mensaje de difusión a través de su árbol de expansión, y cada nodo que lo recibe envía solicitudes a sus vecinos, excluyendo las aristas a sus hijos y padre. El protocolo de respuesta es el siguiente:

Propiedades

Mega-Merger posee varias propiedades:

Terminación

La terminación se garantiza mediante prevención de bloqueo y confiabilidad total .

Costo

El análisis de costos tiene dos componentes: el costo de la etapa y el límite superior de la etapa. Una ciudad ejecuta una etapa solicitando un enlace de fusión a sus aldeas y aplicando una de las reglas anteriores según la situación deseada. Podemos dividir esta etapa en cinco pasos:

  1. Solicitud de difusión para el enlace de fusión a los nodos del árbol.
  2. Cada nodo reenvía un mensaje a sus vecinos y espera sus respuestas.
  3. Luego, los nodos envían las respuestas al gobernante de la ciudad mediante convergecast para un total de mensajes.
  4. Luego, la raíz decide si se debe fusionar el enlace y envía un mensaje al nodo elegido. Este mensaje, por lo general, debe pasar por varios nodos.

Estas cinco fases de solicitud, descubrimiento externo, comunicación y entrega tienen un costo total de . En cuanto a los mensajes desperdiciados entre nodos internos, cada nodo tiene como máximo 100 aristas internas, o si es una hoja, un total de mensajes internos desperdiciados.

Ahora, en cuanto a la cantidad de etapas, según la propiedad presentada anteriormente sobre el tamaño de las ciudades, cada ciudad de nivel tiene , por lo tanto, el rango más alto al que se puede llegar es . Como las ciudades pueden fusionarse/ser absorbidas solo una vez por etapa, tenemos un total de mensajes totales.

Exactitud

Mega-Merger crea un árbol de expansión mínimo fusionando subárboles a través de la ruta de costo mínimo, es decir, el enlace de fusión. Por definición de árbol de expansión mínimo, un árbol de expansión mínimo es un conjunto de árboles de expansión mínimos conectados a través de rutas de costo mínimo. Por construcción, Mega-Merger reenvía una solicitud a través de su enlace de fusión y, tarde o temprano, ese borde va a ser parte del árbol por prevención de interbloqueo .

Referencias

  1. ^ Gallager, Robert (1983). "Un algoritmo distribuido para el árbol de expansión mínimo" (PDF) . Instituto Tecnológico de Massachusetts .
  2. ^ Awerbuch, Baruch (1987). "Algoritmo distribuido óptimo para árboles de expansión de peso mínimo, conteo, elección de líder y otros problemas" (PDF) . Revista SIAM sobre informática .