• Nenhum resultado encontrado

Alternativa: Particle Swarm Optimization

No documento Statistically Enhanced Analog Design (páginas 46-50)

Particle Swarm Optimizationé uma técnica usada para explorar o espaço das variáveis de en- trada de um dado problema de forma a descobrir os parâmetros necessários para maximizar um objectivo. Esta técnica, descrita pela primeira vez por James Kennedy e Russel C. Eberhart em 1995 [26], deriva de duas ideias: A ideia de inteligência comum de um grupo baseada na obser- vação dos hábitos de certos animais (como peixes, insectos ou pássaros) e o ramo da computação que estuda algoritmos evolucionários.

4.4 Alternativa: Particle Swarm Optimization 31

Figura 4.2: Valores de F(W) por iteração da largura do transístor 7.

32 Método de Optimização

Figura 4.4: Valores de F(W) por iteração da largura do transístor 3.

A optimiztação é o processo pelo qual se descobre o máximo ou mínimo valor de uma função ou processo. Matematicamente, as tarefas de maximização e minimização são definidas por:

Dado f: Rn→ R Encontrar xˆ∈ Rn

tal que f( ˆx) ≤ f (x), ∀x ∈ R (4.4) O espaço de procura é definido como o domínio Rnde f. Cada elemento de Rné uma possível solução do espaço de procura, sendo ˆxa solução óptima. Nesta fórmula, n denomina o número de dimensões do espaço de procura e consequentemente o número parâmetros a optimizar. A função

f é a função objectivo e mapeia o espaço de procura no contradomínio da função.

Sendo a função f uma função conhecida e diferenciável, é possível calcular algebricamente o seu máximo e mínimo. No entanto, em aplicações no mundo real por vezes esta função não é conhecida. Nestes casos, a função objectivo comporta-se como uma caixa negra sobre a qual po- demos alterar os parâmetros de entrada (solução possível) e recebemos um valor de saída. Nestas situações o algoritmo PSO é particularmente útil, trabalhando simultaneamente com várias solu- ções possíveis. Cada solução pode ser visualizada como uma partícula que se move pelo espaço de procura para descobrir a melhor solução (correspondente ao máximo ou mínimo global).

O algoritmo pressupõe que não há conhecimento prévio sobre a função de optimização pelo que não há maneira de saber se uma solução candidata está próxima ou longe do valor óptimo. O

4.4 Alternativa: Particle Swarm Optimization 33

algoritmo precisa apenas de avaliar cada solução candidata (valor da função objectivo nos pontos candidatos) e opera sobre esses resultados.

Cada partícula é inicializada aleatoriamente no espaço de procura e é composta pela sua po- sição (valor dos parâmetros), valor da função objectivo dessa posição e uma velocidade (também inicializada aleatoriamente). Adicionalmente, cada partícula guarda o melhor valor da função ob- jectivo que já obteve e a respectiva solução candidata (melhor solução individual). O algoritmo mantém também guardado o melhor valor da função objectivo de entre todas as partículas e seus respectivos parâmetros (melhor objectivo global e melhor posição global).

O algoritmo PSO realiza os 3 seguintes passos iterativamente até um critério de paragem ser atingido:

1. Avaliar a função objectivo em cada partícula;

2. Actualizar os melhores valores individuais e globais dos objectivos e das posições; 3. Actualizar a velocidade e em seguida a posição de cada partícula.

O primeiro passo consiste em fornecer os valores da posição da partícula à função objectivo e observar o seu valor. Em seguida os novos valores são comparados com as melhores soluções individuais e globais e estes são actualizados, se necessário. O último passo é responsável pela capacidade de optimização do algoritmo. A velocidade é actualizada da seguinte forma

vi(t + 1) = wvi(t) + c1r1[ ˆxi(t) − x(t)] + c2r2[g(t) − xi(t)]. (4.5)

Cada partícula é representada pelo índice i, sendo vi(t) a velocidade da partícula i no instante

(iteração) t e xi(t) a posição da partícula i no instante t. Os parâmetros w, c1e c2 (0 < w < 1, 2,

0 < c1< 2 e 0 < c2< 2) são coeficientes definidos pelo utilizador. Os valores r1e r2são valores

gerados aleatoriamente para cada iteração (0 < r1< 1 e 0 < r2< 1).

Para impedir que as partículas se afastem demasiado rápido da sua posição actual é geralmente definido um valor máximo de velocidade. Este valor pode ter em conta os valores máximos e minímos do espaço de procura (caso existam) ou alternativamente ser um valor arbitrado pelo utilizador.

Depois de calculada a velocidade para cada partícula, o valor da sua posição é actualizado aplicando a sua nova velocidade

xi(t + 1) = xi(t) + vi(t + 1). (4.6)

O processo é repetido até ser atingido o critério de paragem. Alguns critérios de paragem tipi- cos são: ser atingido um número máximo de iterações, ter passado um número de iterações desde a última actualização do melhor candidato global, ou um determinado valor da função objectivo ter sido atingido.

Existem outras versões do algoritmo descritas na literatura embora se baseiem nos 3 passos acima descritos [27].

34 Método de Optimização

4.4.0.1 Aplicação do algoritmo PSO ao design de circuitos analógicos

No desenho de circuitos analógicos, o espaço de procura pode ser visto como o espaço de parâmetros alteráveis pelo projectista. Esses parâmetros consistem principalmente nos valores de largura e comprimento dos transístores.

Devido ao facto de os circuitos serem demasiado complexos ou não termos acesso ao mo- delo que transforma esses parâmetros de entrada em medições de desempenho do circuito (por exemplo, por o software de simulação ser proprietário e consequentemente os modelos por detrás das simulações não serem transparentes) podemos assumir que esse sistema representa a função objectivo desconhecida. Nestas circunstâncias o algoritmo PSO pode ser potencialmente útil.

Idealmente, o contradomínio da função objectivo é unidimensional, sendo por isso conveni- ente definir um objectivo em função das várias avaliações de desempenho que sejam relevantes. As avaliações de desempenho podem ser os valores nominais das grandezas de desempenho (ou valores médios no caso de obtermos uma função de densidade de probabilidade a partir de uma amostragem de Monte Carlo ou equivalente) ou medidas de dispersão dessas próprias grandezas.

No documento Statistically Enhanced Analog Design (páginas 46-50)

Documentos relacionados