Referência do Arquivo BNVarElimination.h

Biblioteca para fazer inferência em Redes Bayesianas (BN: Bayesian Network) utilizando o método de eliminação de variáveis. Mais...

#include <math.h>
#include <pthread.h>
#include "BNMain.h"
#include "graphtools.h"
#include "threadtree.h"
#include "singlelinkedlist.h"

Gráfico de dependência de inclusões para BNVarElimination.h:

Vá para o código-fonte deste arquivo.

Componentes

struct  struct_Elimination

Definições e Macros

#define DBGOUT   stdout

Definições de Tipos

typedef struct_Elimination Elimination

Funções

ThreadTreebuildBNThreadTree (int nxq, int *xq, int nxe, int *xe, Potential **findings, BayesNet *bayesnet, int *elmorder, Graph *moral, Graph *elmtree)
 Constrói a árvore de eliminação de threads. A árvore de eliminação uma vez definida pode ser reutilizada para executar diversas inferências.
void destroyBNThreadTree (ThreadTree **refThreadTree)
 Destrói a árvore de threads criada para executar a inferência.
PotentialdoBNLinearVariableElimination (int nxq, int *xq, int nxe, int *xe, Potential **findings, BayesNet *bayesnet, int *elmorder, Graph *moral)
 Executa linearmente a inferência com a eliminação de variáveis da Rede Bayesiana, ou seja, apenas uma variável é eliminada de cada vez de forma serial, sem explorar a possibilidade de paralelização.
PotentialdoBNVariableElimination (ThreadTree *threadtree)
 Executa a inferência com a eliminação de variáveis da Rede Bayesiana explorando a possibilidade de executar a eliminação em paralelo.
void executeElimination (Elimination **refElimination)
 Executa a operação de eliminação de variável e armazena o resultado na própria estrutura de dados.
PotentialmarginalizeNotRequired (Graph *moral, Potential *source)
 Marginaliza as variáveis não requeridas de um potencial.
void normalize (int nvalues, double **refValues)
 Normaliza um array de valores reais, ou seja, altera os valores de forma que a soma dos mesmos seja igual a 1.
void scale (int nvalues, double **refValues)
void * taskVariableElimination (void *arg)
 Função genérica invocada pela thread para executar uma operação de eliminação.


Descrição Detalhada

Biblioteca para fazer inferência em Redes Bayesianas (BN: Bayesian Network) utilizando o método de eliminação de variáveis.

Autor:
Ernesto Colla (ernesto@gmail.com)
Versão:
0.0.1
Data:
Junho/2007 (2007-06-28)

Definição no arquivo BNVarElimination.h.


Definições dos tipos

typedef struct struct_Elimination Elimination

Estrutura de dados para definir uma operação de eliminação


Funções

ThreadTree* buildBNThreadTree ( int  nxq,
int *  xq,
int  nxe,
int *  xe,
Potential **  findings,
BayesNet bayesnet,
int *  elmorder,
Graph moral,
Graph elmtree 
)

Constrói a árvore de eliminação de threads. A árvore de eliminação uma vez definida pode ser reutilizada para executar diversas inferências.

Parâmetros:
[in] elmorder Array com os ids das variáveis na ordem que devem ser eliminadas.
[in] elmtree Grafo que representa a árvore de eliminação para resultante da fatoração simbólica.
Retorna:
ThreadTree construida a partir da ordem de eliminação e da árvore de eliminação.

void destroyBNThreadTree ( ThreadTree **  refThreadTree  ) 

Destrói a árvore de threads criada para executar a inferência.

Parâmetros:
[out] refThreadTree Referência para a ThreadTree a ser destruida.

Potential* doBNLinearVariableElimination ( int  nxq,
int *  xq,
int  nxe,
int *  xe,
Potential **  findings,
BayesNet bayesnet,
int *  elmorder,
Graph moral 
)

Executa linearmente a inferência com a eliminação de variáveis da Rede Bayesiana, ou seja, apenas uma variável é eliminada de cada vez de forma serial, sem explorar a possibilidade de paralelização.

Parâmetros:
[in] nxq Número de variáveis questionadas (Query Variables).
[in] xq Array com os ids das variáveis questionadas (Query Variables).
[in] nxe Número de variáveis que compõe a evidência (Evidence), ou seja, as variáveis observadas. O estado da variável esta em outra estrutura denominada finding.
[in] xe Array com os ids das variáveis observadas.
[in] findings Potenciais que indicam os estados observados das variáveis.
[in] bayesnet BN da qual se deseja obter as variáveis requisitadas para a inferência.
[in] elmorder Array com os ids das variáveis na ordem que devem ser eliminadas.
[in] moral Moral Graph utilizado para a eliminação de variáveis e construido apenas com variáveis requisitadas.
Retorna:
Potencial resultante do processo de eliminação de variáveis do grafo e portanto o resultado da inferência.

Potential* doBNVariableElimination ( ThreadTree threadtree  ) 

Executa a inferência com a eliminação de variáveis da Rede Bayesiana explorando a possibilidade de executar a eliminação em paralelo.

Parâmetros:
[in] nxq Número de variáveis questionadas (Query Variables).
[in] xq Array com os ids das variáveis questionadas (Query Variables).
[in] nxe Número de variáveis que compõe a evidência (Evidence), ou seja, as variáveis observadas. O estado da variável esta em outra estrutura denominada finding.
[in] xe Array com os ids das variáveis observadas.
[in] findings Potenciais que indicam os estados observados das variáveis.
[in] bayesnet BN da qual se deseja obter as variáveis requisitadas para a inferência.
[in] elmorder Array com os ids das variáveis na ordem que devem ser eliminadas.
[in] moral Moral Graph utilizado para a eliminação de variáveis e construido apenas com variáveis requisitadas.
[in] threadtree ThreadTree construida a partir da ordem de eliminação e da árvore de eliminação.
Retorna:
Potencial resultante do processo de eliminação de variáveis do grafo e portanto o resultado da inferência.

void executeElimination ( Elimination **  refElimination  ) 

Executa a operação de eliminação de variável e armazena o resultado na própria estrutura de dados.

Parâmetros:
[out] refElimination Referência para a estrutura que define uma operação de eliminação. O resultado será armazenado no na própria estrutura.

Potential* marginalizeNotRequired ( Graph moral,
Potential source 
)

Marginaliza as variáveis não requeridas de um potencial.

Atenção: Apesar do valor de retorno da função de ser pouco intuitivo ela foi feita desta forma para evitar operações desnecessárias.

Parâmetros:
[in] moral Moral Graph utilizado para a eliminação de variáveis e construido apenas com variáveis requisitadas.
[in] source Potencial a ser marginalizado.
Retorna:
Potencial marginalizado ou NULL se não for feita nenhuma marginalização.

void normalize ( int  nvalues,
double **  refValues 
)

Normaliza um array de valores reais, ou seja, altera os valores de forma que a soma dos mesmos seja igual a 1.

Parâmetros:
[in] nvalues Número de elementos do array de números reais que será normalizado.
[out] refValues Referência para o array de números reais que será normalizado.

void* taskVariableElimination ( void *  arg  ) 

Função genérica invocada pela thread para executar uma operação de eliminação.

Parâmetros:
[out] arg Argumento genérico utilizada para passar literamente qualquer estrutura de dados necessária para executar a tarefa.


Gerado em Fri Feb 15 19:50:41 2008 para IME-Dissertação por  doxygen 1.5.1