00001 /* 00002 * Copyright 2007, 2008 Ernesto Coutinho Colla 00003 * 00004 * "BN Parallel Package" é um nome que identifica o conjunto de programas 00005 * que forma uma biblioteca de rotinas que foram desenvolvidas como parte da 00006 * dissertação de mestrado do autor em Ciências da Computação. 00007 * 00008 * O conjunto de programas foi integralmente desenvolvido pelo autor e está 00009 * disponível sob a licença GPL (GNU General Public License). O entendimento 00010 * integral dos termos da licença GPL é condição necessária para a utilização 00011 * parcial ou integral de qualquer parte deste conjunto de programas. 00012 * 00013 * This file is part of BN Parallel Package. 00014 * 00015 * BN Parallel Package is free software: you can redistribute it and/or modify 00016 * it under the terms of the GNU General Public License as published by 00017 * the Free Software Foundation, either version 3 of the License. 00018 * 00019 * BN Parallel Package is distributed in the hope that it will be useful, 00020 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00021 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00022 * GNU General Public License for more details. 00023 * 00024 * You should have received a copy of the GNU General Public License 00025 * along with BN Parallel Package. If not, see <http://www.gnu.org/licenses/>. 00026 */ 00027 00028 00029 /*! 00030 * @file bayesball.h 00031 * @author Ernesto Colla (ernesto@gmail.com) 00032 * @version 0.0.1 00033 * @date Julho/2007 (2007-06-18) 00034 * @brief Implantação do procedimento para determinação das variáveis relevantes (\e Required \e Variables) de uma Rede Bayesiana. 00035 * para um determinado processo de inferência. 00036 * 00037 */ 00038 00039 #ifndef BAYESBALL_H 00040 #define BAYESBALL_H 00041 00042 /* Bibliotecas Específicas */ 00043 #include "BNMain.h" 00044 00045 /* Defines */ 00046 00047 /* Typedefs */ 00048 00049 /* Funções */ 00050 00051 /*! 00052 * @brief Determina o conjunto de variáveis relevante para uma \e query na BN. Onde uma \e query é a inferência 00053 * sobre a BN para um determinado estado das variáveis. 00054 * @param[out] nxr Ponteiro para um inteiro que irá armazenar o tamanho do \e array de inteiros que a função retorna. 00055 * @param[in] nxq Número de variáveis questionadas (\e Query \e Variables). 00056 * @param[in] xq \e Array com os \e ids das variáveis questionadas (\e Query \e Variables). 00057 * @param[in] nxe Número de variáveis que compõe a evidência (\e Evidence), ou seja, as variáveis observadas. O estado da variável esta 00058 * em outra estrutura denominada \e finding. 00059 * @param[in] xe \e Array com os \e ids das variáveis observadas. 00060 * @param[in] bayesnet BN da qual se deseja obter as variáveis requisitadas para a inferência. 00061 * @return Um \e array de inteiros com os \e ids dos vértices, e portanto das varíaveis, requisitadas (\e Required \e Variables) para o 00062 * procedimento de inferência. 00063 */ 00064 00065 int* doBayesBall(int* nxr, int nxq, int* xq, int nxe, int* xe, BayesNet* bayesnet); 00066 00067 #endif