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...
Main Author: | |
---|---|
Other Authors: | |
Format: | bachelorThesis |
Language: | spa |
Published: |
2018
|
Subjects: | |
Online Access: | http://dspace.ucuenca.edu.ec/handle/123456789/30312 |
_version_ | 1785802454891233280 |
---|---|
author | Morocho Coronel, Andrés David |
author2 | Samaniego Alvarado, Esteban Patricio |
author_facet | Samaniego Alvarado, Esteban Patricio Morocho Coronel, Andrés David |
author_sort | Morocho Coronel, Andrés David |
collection | DSpace |
description | 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. |
format | bachelorThesis |
id | oai:dspace.ucuenca.edu.ec:123456789-30312 |
institution | Universidad de Cuenca |
language | spa |
publishDate | 2018 |
record_format | dspace |
spelling | oai:dspace.ucuenca.edu.ec:123456789-303122022-08-11T14:27:52Z Implementación de algoritmos de inferencia causal utilizando computación paralela: PC y PC-stable Morocho Coronel, Andrés David Samaniego Alvarado, Esteban Patricio Ingeniería de Sistemas Datos Paralelización Red causal Algoritmos 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. There are complex systems whose dynamics are difficult to understand and of which only information of certain variables is available. The amount of information collected from those variables makes the problem an ideal scenario for using knowledge discovery techniques such as PC and PC-stable algorithms. In this work we create an efficient implementation of PC and PC-stable in the C programming language, adding background knowledge and applying parallelization techniques for systems with shared (openMP) and distributed memory (Open MPI). Performance tests of the implementation were performed with synthetic and real data sets and compared with pcalg (R). Also, we reproduced the results of applying PC-stable to simulations of advection and diffusion processes. Results of the performance tests show that our implementation with synthetic data is up to 30 times faster than pcalg (serial) and the parallel implementation (openMP) is up to 3.7 times faster than the serial implementation in C. Furthermore, our implementation (openMP) with real datasets is 11 times faster than parallel pcalg. Although the results of our implementation compared to pcalg differ in 6 of the 1200 synthetic datasets tested, in up to 22 links (of 910) of the resulting DAG. We considered that these differences have no impact on the conclusions obtained from the resultant DAGs. When applying the implementation to simulations of processes, we found that our implementation is more drastic deleting links at different times. Although, the resulting links in the DAG have the same behavior as in the replicated results. Ingeniero de Sistemas Cuenca 2018-05-07T18:56:01Z 2018-05-07T18:56:01Z 2018-05-07 bachelorThesis http://dspace.ucuenca.edu.ec/handle/123456789/30312 spa TS;252 application/pdf application/pdf |
spellingShingle | Ingeniería de Sistemas Datos Paralelización Red causal Algoritmos Morocho Coronel, Andrés David Implementación de algoritmos de inferencia causal utilizando computación paralela: PC y PC-stable |
title | Implementación de algoritmos de inferencia causal utilizando computación paralela: PC y PC-stable |
title_full | Implementación de algoritmos de inferencia causal utilizando computación paralela: PC y PC-stable |
title_fullStr | Implementación de algoritmos de inferencia causal utilizando computación paralela: PC y PC-stable |
title_full_unstemmed | Implementación de algoritmos de inferencia causal utilizando computación paralela: PC y PC-stable |
title_short | Implementación de algoritmos de inferencia causal utilizando computación paralela: PC y PC-stable |
title_sort | implementación de algoritmos de inferencia causal utilizando computación paralela: pc y pc-stable |
topic | Ingeniería de Sistemas Datos Paralelización Red causal Algoritmos |
url | http://dspace.ucuenca.edu.ec/handle/123456789/30312 |
work_keys_str_mv | AT morochocoronelandresdavid implementaciondealgoritmosdeinferenciacausalutilizandocomputacionparalelapcypcstable |