• Nenhum resultado encontrado

Capítulo 7. Conclusões e Trabalho Futuro

3.2 Sistemas Baseados em Conhecimento (SBCs)

3.4.1 Conceitos Gerais

Na realidade, grande parte dos problemas de optimização implica a busca de uma solução num espaço deveras extenso. Também para este caso, no âmbito da investigação operacional, a computação possibilitou o desenvolvimento de técnicas relacionadas com a aprendizagem automática.

Existem diferentes tipos de estratégias de procura para máquinas de aprendizagem, podendo estas ser classificadas segundo três classes principais [Banzhaf et al., 1998; Cortez, 2002]:

Procura Cega: Nesta estratégia, o espaço de soluções é explorado sem ser

influenciado pelos resultados de procura anteriores. Em geral, a procura utiliza uma estrutura em árvore, onde cada nodo contêm uma solução candidata. Como exemplos desta estratégia têm-se as procuras de primeiro em largura e primeiro em

profundidade, conhecidas em inglês por breadht-first e depth-first, respectivamente. Hill-Climbing: Aqui é utilizado um único ponto de procura, criando uma nova solução a partir da anterior, sendo geralmente esta a adoptada (no caso de ser melhor que a anterior). Nenhum registo é mantido sobre o caminho percorrido. Várias são as técnicas que utilizam esta estratégia, sendo de referir:

Simulated Annealing: Trata-se de um método genérico de procura, que tem a ver com fenómenos que ocorrem com o processo de arrefecimento de metais. A procura envolve o uso de saltos aleatórios a partir de um ponto, adoptando-se a solução alterada de acordo com um parâmetro de temperatura, que decresce, à medida que o processo decorre.

• Algoritmos de corte: Desenvolvidos especificamente para optimizar quaisquer tipos de topologias para RNAs, a partir da remoção de nodos e conexões desnecessárias, segundo o princípio de Ockham; i.e., tenta-se obter a rede mais simples que melhor se adapte à resolução de um dado problema. As principais funções de um algoritmo de corte passam pela escolha da(s) unidade(s) a ser cortada(s), quando efectuar o corte e quando parar o treino da rede.

• Algoritmos construtivos: Igualmente desenvolvidos para optimizar quaisquer tipos de topologias para RNAs, recorrem a uma estratégia algo diferente, começando com uma rede simples, à qual são acrescentados nodos e conexões, até que uma solução satisfatória seja encontrada.

Procura por Feixe: Este tipo de procura passa por um compromisso entre uma

procura exaustiva do espaço de soluções e o hill-climbing, sendo mantida uma população de pontos de procura. Em cada ponto é utilizada uma métrica para seleccionar os pontos promissores, sendo os restantes descartados. Como exemplos têm-se todas as técnicas da Computação Genética e Evolucionária (CGE), tais como os Agoritmos Genéticos e Evolucionários (AGEs) ou a Programação

Genética (PG).

Em princípio, a procura cega exige a consideração de todas as soluções possíveis, sendo por isso apenas aplicável quando o espaço de procura é diminuto, o que não se verifica na maioria dos problemas de aprendizagem. Há variantes que não exigem que se tomem em linha de conta todas as soluções, actuando através de um compromisso entre o tempo e o espaço de procura (e.g., técnicas de aprofundamento

progressivo). No entanto, tais variantes apenas procuram soluções para o problemas, num sub-conjunto deveras restrito do espaço de soluções.

Os métodos de hill-climbing, como os algoritmos de corte ou construtivos, são susceptíveis aos mínimos locais. Mais ainda, não raras vezes, estes métodos tendem igualmente a fazer incidir a sua atenção apenas num subconjunto restrito do espaço de procura.

Neste trabalho ir-se-á adoptar tanto a procura cega em todos os pontos possíveis, assim como a procura por feixe que se irá materializar através dos AGs. Estes utilizam uma procura global multi-ponto, dando origem a soluções de elevada qualidade, que escapam a mínimos locais.

Parte importante e significativa do presente estudo envolve a optimização, utilizando métodos de procura distintos, pelo que se entende necessário introduzir alguns conceitos gerais de optimização também conhecida por Programação

Matemática.

A optimização passa pela obtenção de soluções satisfazendo um ou mais objectivos, classificando-se respectivamente como uni-objectivo ou multi-objectivo. A verdade é que muitas das vezes os problemas que à primeira vista parecem ter carácter multi-objectivo acabam por ser resolvidos como problemas com um único objectivo, o que se consegue geralmente concebendo uma função objectivo que integre os múltiplos critérios. Esta redução da dimensionalidade do problema permite adoptar a formulação uni-objectivo, em geral mais simples do que a congénere multi-objectivo.

Matematicamente, um problema de optimização com um único objectivo consiste na minimização ou maximização de uma função sujeita a restrições. A optimização multi-objectivo envolve já, a consideração de um conjunto de funções

sujeitas a restrições nas variáveis, sendo que a obtenção de uma solução passará pela adopção de um compromisso entre os objectivos.

No nosso caso, a optimização procurou-se tratar em qualquer caso como uni- objectivo. De um modo geral, deve-se procurar abordar o problema de optimização como de minimização, o qual pode ser formulado, genericamente, da seguinte forma:

min f (x) onde x ∈Ω (3.1)

sujeito a

gj (x) ≥ 0 com j =1, …, m

hi (x) = 0 com i = m + 1, …, m + p.

sendo

x o vector das variáveis de decisão (também, muitas vezes, conhecidas por parâmetros);

f (x) é a função objectivo, i.e., a função que se pretende minimizar;

g (x) é o vector das restrições do tipo desigualdade que devem ser satisfeitas;

h (x) é o vector das restrições do tipo igualdade que devem ser satisfeitas.

A solução para o problema será procurada no espaço de soluções válidas, delimitado pelo conjunto de restrições, determinando os valores para o conjunto de variáveis, que minimizam a função objectivo. Na Figura 3.8 mostra-se um exemplo de programação linear em que se pretende minimizar a função f (X1, X2), estando as variáveis X1 e X2 sujeitas às restrições traduzidas pelas rectas a, b e c.

Figura 3.8 Representação gráfica de um problema de optimização