stringtranslate.com

Megafusión

La megafusión es un algoritmo distribuido destinado a resolver el problema electoral en un gráfico genérico conectado no dirigido . [1] [2]

Introducción

Mega-Merger fue desarrollado por Robert Gray Gallager en el MIT en 1983. Aplica un enfoque distribuido de dividir y conquistar combinado con una estrategia de conquista basada en rangos. El algoritmo suele presentarse mediante una analogía entre pueblo y ciudad. Cada nodo en el gráfico indica una aldea, mientras que los bordes que los conectan son las carreteras y un árbol de expansión arraigado en un subgráfico es una ciudad. Todo el gráfico es entonces una megaciudad. Mega-Merger empuja a las aldeas a unirse para formar ciudades de acuerdo con el rango y las ventajas de cada una. Las ciudades se forman entonces mediante alianzas o mediante conquista/absorción.

Requisitos previos

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

No son necesarias más restricciones.

Algoritmo

El algoritmo asigna a cada pueblo un nombre y un rango, el primero suele ser único. Este último indica el número de fusiones amistosas por las que ha pasado la ciudad, y cuanto más grande es, más poderosa se considera una ciudad. Además, a cada borde se le asigna un peso: cada pueblo/ciudad tiene un borde de peso mínimo, también llamado enlace de fusión , es decir, el borde 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 . La solicitud se maneja de las siguientes maneras:

  1. Fusión amistosa : si las ciudades comparten el mismo enlace de fusión y tienen el mismo rango, se produce una fusión amistosa y las dos ciudades se fusionan en una. Se elige un nuevo nombre para la ciudad recién creada, se elige una aldea gobernante y el camino desde el gobernante anterior hasta el nodo en el enlace de fusión se reorienta de manera 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 en el extremo receptor 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 a 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 en el gráfico tiene una lista de aldeas que pertenecen a su aldea, por lo tanto, cada vez que una ciudad quiere buscar bordes que conduzcan fuera de ella, debe 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 los bordes a sus hijos y padres. El protocolo de respuesta es el siguiente:

Propiedades

Mega-Merger tiene varias propiedades:

Terminación

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

Costo

El análisis de costos tiene dos componentes, el costo de etapa y el límite superior de etapa. Una ciudad representa una etapa solicitando un enlace de fusión de sus aldeas y aplicando una de las reglas anteriores de acuerdo con 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 obtener un total de mensajes.
  4. Luego, la raíz decide sobre un enlace de fusión y envía un mensaje al nodo elegido. Trivialmente, este mensaje deberá viajar por los nodos.

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

Ahora el número de etapas. Según la propiedad presentada anteriormente sobre el tamaño de las ciudades, cada ciudad tiene un nivel , por lo tanto, el rango más alto alcanzable es . Dado que las ciudades pueden fusionarse/absorberse 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 será parte del árbol mediante la prevención de interbloqueo .

Referencias

  1. ^ Gallager, Robert (1983). "Un algoritmo distribuido para árbol de expansión mínima" (PDF) . Instituto de Tecnología de Massachusetts .
  2. ^ Awerbuch, Baruch (1987). "Algoritmo distribuido óptimo para árbol de extensión de peso mínimo, conteo, elección de líder y otros problemas" (PDF) . Revista SIAM de Computación .