graphtools.h

Vá para a documentação deste arquivo.
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        graphtools.h
00031  * @author      Ernesto Colla (ernesto@gmail.com)
00032  * @version     0.0.1
00033  * @date        Fevereiro/2007
00034  * @brief Operações genéricas com grafos.
00035  *
00036  * Operações básicas implementadas:
00037  *      -# Contrução do Grafo Moral (\e Moral \e Graph) de um grafo direcional.
00038  *      -# Fatoração simbólica do grafo moral.
00039  *
00040  */
00041 
00042 #ifndef GRAPHTOOLS_H
00043 #define GRAPHTOOLS_H
00044 
00045 /* Bibliotecas específicas */
00046 #include "graph.h"
00047 
00048 /* Funções */
00049 
00050 /*!
00051  * @brief Cria a Grafo Moral (\e Moral \e Graph) de um grafo direcionado.
00052  * @param[in] graph Grafo direcionado de origem.
00053  * @return Moral Graph do grafo de origem.
00054  */
00055 
00056 Graph* buildMoralGraph (Graph* graph);
00057 
00058 /*!
00059  * @brief Executa a fatoração simbólica do grafo moral com base em uma ordem de eliminação predefinida.
00060  *
00061  * Os parâmetros de entrada \e refEliminationTree e \e refFilledGraph devem ser explicitamente inicializados antes da chamada da função.
00062  * Por questão de performance o parâmetro \e refFilledGraph pode ser NULL e neste caso não será contruído.
00063  * @param[out] refEliminationTree Referência para a árvore de eliminação quer será preeenchida.
00064  * @param[out] refFilledGraph Referência para o grafo preenchido, se NULL, não monta do gráfico preenchido e ganha performance.
00065  * @param[in] moral     Moral graph a ser fatorado.
00066  * @param[in] elmorder Ordem de eliminação.
00067  */
00068 
00069 void doSymbolicFactorization(Graph** refEliminationTree, Graph** refFilledGraph, Graph* moral, int* elmorder);
00070 
00071 #endif

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