|
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()
1.8.9