PAAPAA 1.0
|
00001 /* Esta é a implementação da Classe Algoritmos. 00002 * \author Bráulio Miranda Veloso 00003 * \since 14/02/2011 00004 * \version 1.0 00005 */ 00006 00007 #include "Algoritmos.h" 00008 #include "Problema.h" 00009 #include "Solucao.h" 00010 #include <iostream> 00011 00012 Algoritmos::Algoritmos() {} 00013 00014 Algoritmos::~Algoritmos() {} 00015 00016 void Algoritmos::dividirParaConquistar( const Problema& p, Solucao& s ) { 00017 if( p.ehPequeno() ) { 00018 p.geraSolucao( s ); 00019 } else { 00020 vector<Problema*> subProb; 00021 vector<Solucao*> subSol; 00022 p.divide( s, subProb, subSol ); 00023 for( unsigned int i = 0; i < subProb.size(); i++ ) { 00024 dividirParaConquistar( ( *subProb[i] ), ( *subSol[i]) ); 00025 } 00026 p.combina( subSol, &s ); 00027 p.limpaSub( subProb ); 00028 } 00029 }