Implementación de algoritmos de inferencia causal utilizando computación paralela: PC y PC-stable

Existen sistemas complejos cuya dinámica es difícil de entender y de los cuales sólo se tiene información de ciertas variables. Este problema es un escenario ideal para el uso de técnicas de descubrimiento de conocimiento como el algoritmo de PC y PC-stable. En este trabajo se realizó una implementa...

Full description

Bibliographic Details
Main Author: Morocho Coronel, Andrés David
Other Authors: Samaniego Alvarado, Esteban Patricio
Format: bachelorThesis
Language:spa
Published: 2018
Subjects:
Online Access:http://dspace.ucuenca.edu.ec/handle/123456789/30312
Description
Summary:Existen sistemas complejos cuya dinámica es difícil de entender y de los cuales sólo se tiene información de ciertas variables. Este problema es un escenario ideal para el uso de técnicas de descubrimiento de conocimiento como el algoritmo de PC y PC-stable. En este trabajo se realizó una implementación eficiente del algoritmo de PC y PC-stable en el lenguaje de programación C, incorporando conocimiento a priori y aplicando técnicas de paralelización para sistemas con memoria compartida (openMP) y distribuida (OpenMPI). El rendimiento de la implementación se comprobó con conjuntos de datos sintéticos y reales, comparándolo con pcalg (R). Además, se reprodujo resultados de aplicar PC-stable en simulaciones de procesos de advección y difusión. Los resultados de las pruebas de rendimiento indican que nuestra implementación con datos sintéticos es hasta 30 veces más rápida que pcalg (serie) y la implementación paralela (openMP) es hasta 3.7 veces más rápida que en serie. Además, nuestra implementación (openMP) con datos reales es hasta 11 veces más rápida que pcalg (paralelo). Aunque los resultados de nuestra implementación con respecto a pcalg varían en 6 de los 1200 conjuntos de datos sintéticos probados, en hasta 22 enlaces (de 910) del DAG resultante, se considera que estas diferencias no tienen impacto en las conclusiones obtenidas de los DAGs resultantes. Al aplicar PC-stable a simulaciones de procesos se encontró que nuestra implementación es más drástica eliminando enlaces en los distintos tiempos. Aunque, los enlaces del DAG resultante tienen el mismo comportamiento que en los resultados que se replican.