Sistemas de Controle
0.5
Biblioteca matematica de Controle
|
Classe de otimização por nuvem de partículas. Mais...
#include <pso.h>
Métodos Públicos | |
PSO () | |
Construtor padrão da biblioteca. Mais... | |
PSO (int varNum, int PopSize, int GenSize) | |
Sobrecarga do construtor do PSO. Mais... | |
PSO (int varNum, int PopSize, int GenSize, double phi1, double phi2) | |
Sobrecarga do construtor do PSO. Mais... | |
PSO (int varNum, int PopSize, int GenSize, double phi1, double phi2, double omega, bool MinMax) | |
Sobrecarga do construtor do PSO. Mais... | |
~PSO () | |
Destrutor padrão do PSO. Mais... | |
void | Run () |
Função que inicializa a otimização do problema. Mais... | |
void | Run (int nTimes) |
Função que inicializa a otimização do problema. Mais... | |
void | setData (Matrix< UsedType > dataIn, Matrix< UsedType > dataOut) |
double | getTime () |
Métodos Privados | |
Matrix< UsedType > | Evaluation (Matrix< UsedType > Matrix2Evaluate) |
Recebe uma matriz e devolve uma matriz simbolizando a avaliação das partículas inseridas. Mais... | |
void | ParticleUpdate () |
Atualiza as partículas X. Mais... | |
void | ParticleEvaluation () |
Avalia as partículas X. Mais... | |
void | VelocityUpdate () |
Atualiza as velocidades (V) das partículas (X). Mais... | |
void | initAlgorithm () |
Inicializa os parâmetros do PSO. Mais... | |
void | FitnessUpdate () |
Realiza a verificação da existencia de melhores partículas locais e globais. Mais... | |
void | FitnessUpdateMin () |
Realiza a verificação da existencia de melhores partículas locais e globais para uma função que deve ser minimizada. Mais... | |
void | FitnessUpdateMax () |
Realiza a verificação da existencia de melhores partículas locais e globais para uma função que deve ser maximizada. Mais... | |
Atributos Privados | |
Matrix< UsedType > | V |
Matrix< UsedType > | X |
Matrix< UsedType > | P |
Matrix< UsedType > | G |
Matrix< UsedType > | GGen |
Matrix< UsedType > | GnTimes |
Matrix< UsedType > | Xfitness |
Matrix< UsedType > | Pfitness |
Matrix< UsedType > | Gfitness |
Matrix< UsedType > | GfitnessGen |
Matrix< UsedType > | GfitnessnTime |
Matrix< UsedType > | RunTime |
Lsim< UsedType > | Model |
Classe de otimização por nuvem de partículas.
Essa classe (PSO) faz parte de um conjunto de classes de otimização. A sua responsabilidade é receber um problema que deve ser otimizado e devolver os parâmetros que minimizam ou maximizam a função objetivo do problema.
MinMax | Variável booleana que representa se é para maximizar ou minimizar a função objetivo. Quando essa variável é setada em (1) true o PSO funcionará como um maximizador da função objetivo, caso o parâmetro seja setado em 0 (false) o PSO funcionará como um minimizador da função objetivo. Por default a função inicializa com false. |
varNum | Variável inteira que representa o número de parâmetros que o PSO terá de encontrar durante o processo de otimização. |
PopSize | Variável inteira que representa o número de indivíduos que estarão buscando por uma solução otimizada para o problema. |
GenSize | Variável inteira que representa quantas iterações serão realizadas no algoritmo. OBS: Lembrando que o algoritmo realizará PopSize * GenSize vezes a função objetivo, por isso, esse é um processo de otimização relativamente demorado. |
phi1 | Variável Real que representa o componente cognitivo do PSO. |
phi2 | Variável Real que representa o componente social do PSO. |
omega | Variável Real que representa o coeficiente de inercia do PSO. |
V | é uma matriz contendo a velocidade calculada de cada partícula em relação a sua melhor posição e em relação a melhor posição de todas as partículas do PSO. |
X | é uma matriz contendo a posição de cada partícula do PSO. |
P | é uma matriz contendo a melhor posição em que cada partícula do PSO já esteve. |
G | é uma matriz contendo a melhor posição em que a melhor partícula do PSO já esteve. |
Xfitness | é uma matriz contendo as avaliações de cada partícula (indicando se a partícula está em uma boa posição ou não). |
Pfitness | é uma matriz contendo as melhores avaliações de cada partícula (indicando a melhor avaliação já obtida pela partícula). |
Gfitness | é uma matriz contendo a avaliação da melhor partícula em todo o processo de otimização. |
Construtor padrão da biblioteca.
Inicializa o PSO com os seguintes parâmetros iniciais para o objeto instanciado.
varNum | = 1; |
PopSize | = 80; |
GenSize | = 2000; |
phi1 | = 1; |
phi2 | = 1; |
omega | = 1; |
MinMax | = false; |
Ex:
Resultado: Ver também: \sa void Run()
Sobrecarga do construtor do PSO.
Inicializa o PSO com os seguintes parâmetros iniciais para o objeto instanciado.
this->varNum | = varNum; // 1º parâmetro de entrada do construtor |
this->PopSize | = PopSize; //2º parâmetro de entrada do construtor |
this->GenSize | = GenSize; //3º parâmetro de entrada do construtor |
phi1 | = 1; |
phi2 | = 1; |
omega | = 1; |
MinMax | = false; |
Ex:
Resultado: Ver também: \sa void Run()
PSO< UsedType >::PSO | ( | int | varNum, |
int | PopSize, | ||
int | GenSize, | ||
double | phi1, | ||
double | phi2 | ||
) |
Sobrecarga do construtor do PSO.
Inicializa o PSO com os seguintes parâmetros iniciais para o objeto instanciado.
this->varNum | = varNum; // 1º parâmetro de entrada do construtor |
this->PopSize | = PopSize; //2º parâmetro de entrada do construtor |
this->GenSize | = GenSize; //3º parâmetro de entrada do construtor |
this->phi1 | = phi1; //4º parâmetro de entrada do construtor |
this->phi2 | = phi2; //5º parâmetro de entrada do construtor |
omega | = 1; |
MinMax | = false; |
Ex:
Resultado: Ver também: \sa void Run()
PSO< UsedType >::PSO | ( | int | varNum, |
int | PopSize, | ||
int | GenSize, | ||
double | phi1, | ||
double | phi2, | ||
double | omega, | ||
bool | MinMax | ||
) |
Sobrecarga do construtor do PSO.
Inicializa o PSO com os seguintes parâmetros iniciais para o objeto instanciado.
this->varNum | = varNum; // 1º parâmetro de entrada do construtor |
this->PopSize | = PopSize; //2º parâmetro de entrada do construtor |
this->GenSize | = GenSize; //3º parâmetro de entrada do construtor |
this->phi1 | = phi1; //4º parâmetro de entrada do construtor |
this->phi2 | = phi2; //5º parâmetro de entrada do construtor |
this->omega | = omega; //6º parâmetro de entrada do construtor |
this->MinMax | = MinMax; //7º parâmetro de entrada do construtor |
Ex:
Resultado: Ver também: \sa void Run()
|
private |
Recebe uma matriz e devolve uma matriz simbolizando a avaliação das partículas inseridas.
A responsabilidade desta função é permitir que o PSO disponibilize um número de referência que possa ser minimizado ou minimizado.
Matrix2Evaluate | É uma matriz de coeficientes que serão inseridos na função objetivo para obter o resultado da avaliação. |
Ex:
Resultado: Ver também: \sa void Run()
|
private |
Realiza a verificação da existencia de melhores partículas locais e globais.
Realiza a verificação da existencia de melhores partículas locais e globais e atualiza as variáveis preparando o algoritmo para uma nova iteração (geração).
Obs: Os parâmetros de atualização deste método são internos, ou seja, pertencem à classe.
Ex:
Resultado: Ver também: \sa void Run()
|
private |
Realiza a verificação da existencia de melhores partículas locais e globais para uma função que deve ser maximizada.
Realiza a verificação da existencia de melhores partículas locais e globais e atualiza as variáveis preparando o algoritmo para uma nova iteração (geração).
Obs: Os parâmetros de atualização deste método são internos, ou seja, pertencem à classe.
Ex:
Resultado: Ver também: \sa void Run()
|
private |
Realiza a verificação da existencia de melhores partículas locais e globais para uma função que deve ser minimizada.
Realiza a verificação da existencia de melhores partículas locais e globais e atualiza as variáveis preparando o algoritmo para uma nova iteração (geração).
Obs: Os parâmetros de atualização deste método são internos, ou seja, pertencem à classe.
Ex:
Resultado: Ver também: \sa void Run()
double PSO< UsedType >::getTime | ( | ) |
|
private |
Inicializa os parâmetros do PSO.
Inicializa os parâmetros do PSO para que ele possa começar a realizar as iterações.
Obs: Os parâmetros de atualização deste método são internos, ou seja, pertencem à classe.
Ex:
Resultado: Ver também: \sa void Run()
|
private |
Avalia as partículas X.
A responsabilidade desta função é chamar o método Evaluation() avaliando, assim, as partículas X.
Obs: Os parâmetros de atualização deste método são internos, ou seja, pertencem à classe.
Ex:
Resultado: Ver também: \sa void Run()
|
private |
Atualiza as partículas X.
A responsabilidade desta função é calcular X = X + V, função de atualização das partículas do PSO.
Obs: Os parâmetros de atualização deste método são internos, ou seja, pertencem à classe.
Ex:
Resultado: Ver também: \sa void Run()
void PSO< UsedType >::Run | ( | ) |
Função que inicializa a otimização do problema.
Neste método são executadas todas as partes necessárias para realizar GenSize iterações do PSO (GenSize gerações);
Ex:
Resultado: Ver também: \sa void Run()
void PSO< UsedType >::Run | ( | int | nTimes | ) |
Função que inicializa a otimização do problema.
Neste método são executadas todas as partes necessárias para realizar GenSize iterações do PSO (GenSize gerações) nTime vezes;
nTimes | Quantidade de vezes que o PSO é executado GenSize vezes |
Ex:
Resultado: Ver também: \sa void Run()
void PSO< UsedType >::setData | ( | Matrix< UsedType > | dataIn, |
Matrix< UsedType > | dataOut | ||
) |
|
private |
Atualiza as velocidades (V) das partículas (X).
A responsabilidade desta função é calcular V = wV + phi1*r1(P-X) + phi2*r2(G-X), função de atualização das velocidades das partículas do PSO.
Obs: Os parâmetros de atualização deste método são internos, ou seja, pertencem à classe.
Ex:
Resultado: Ver também: \sa void Run()