Un algoritmo de subprocesamiento múltiple para detectar y eliminar ciclos en un digrafo ponderado por vértices y arcos
Autores: Cui, Huanqing; Niu, Jian; Zhou, Chuanai; Shu, Minglei
Idioma: Inglés
Editor: MDPI
Año: 2017
Acceso abierto
Artículo científico
2017
Un algoritmo de subprocesamiento múltiple para detectar y eliminar ciclos en un digrafo ponderado por vértices y arcos
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería de Software
Palabras clave
Gráfico
Ciclo
Algoritmo
Multihilo
Paralelismo
Rendimiento
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 48
Citaciones: Sin citaciones
Un gráfico es una estructura muy importante para describir muchas aplicaciones en el mundo real. En muchas aplicaciones, como los gráficos de dependencia y los gráficos de deudas, es un problema importante encontrar y eliminar ciclos para que estos gráficos sean libres de ciclos. El algoritmo común a menudo lleva a una excepción de falta de memoria en computadoras personales de consumo, y no puede aprovechar la ventaja de las computadoras multinúcleo. Este documento introduce un nuevo problema, la detección y eliminación de ciclos con prioridad de vértice. Propone un algoritmo iterativo multihilo para resolver este problema en gráficos a gran escala en computadoras personales. El algoritmo incluye tres pasos principales: simplificación para disminuir la escala del gráfico, cálculo de componentes fuertemente conectados, y detección y eliminación de ciclos de acuerdo con una prioridad predefinida en paralelo. Este algoritmo evita la excepción de falta de memoria mediante la simplificación y la iteración, y aprovecha la ventaja de las computadoras multinúcleo mediante el paralelismo multihilo. Cinco versiones diferentes del algoritmo propuesto son comparadas mediante experimentos, y los resultados muestran que el algoritmo iterativo paralelo supera a los demás, y la simplificación puede mejorar efectivamente el rendimiento del algoritmo.
Descripción
Un gráfico es una estructura muy importante para describir muchas aplicaciones en el mundo real. En muchas aplicaciones, como los gráficos de dependencia y los gráficos de deudas, es un problema importante encontrar y eliminar ciclos para que estos gráficos sean libres de ciclos. El algoritmo común a menudo lleva a una excepción de falta de memoria en computadoras personales de consumo, y no puede aprovechar la ventaja de las computadoras multinúcleo. Este documento introduce un nuevo problema, la detección y eliminación de ciclos con prioridad de vértice. Propone un algoritmo iterativo multihilo para resolver este problema en gráficos a gran escala en computadoras personales. El algoritmo incluye tres pasos principales: simplificación para disminuir la escala del gráfico, cálculo de componentes fuertemente conectados, y detección y eliminación de ciclos de acuerdo con una prioridad predefinida en paralelo. Este algoritmo evita la excepción de falta de memoria mediante la simplificación y la iteración, y aprovecha la ventaja de las computadoras multinúcleo mediante el paralelismo multihilo. Cinco versiones diferentes del algoritmo propuesto son comparadas mediante experimentos, y los resultados muestran que el algoritmo iterativo paralelo supera a los demás, y la simplificación puede mejorar efectivamente el rendimiento del algoritmo.