PAAPAA 1.0

Algoritmos.cpp

Vá para a documentação deste arquivo.
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  }