• Nenhum resultado encontrado

E

XISTEM inúmeras pesquisas de modelagem de sistemas biológicos em computadores e a posterior utilização desses modelos para resolução de problemas diversos. Exemplos clássicos dessa abordagem são os Algoritmos Genéticos, apresentados em (MITCHELL, 1996), (HOLLAND, 1992) e (ZEBU- LUM; PACHECO; VELLASCO, 2002). Outro exemplo são as Redes Neurais Artificiais, apresentadas em (FAUSETT, 1994), (BRAGA; CARVALHO; LUDER- MIR,2000b) e (HAYKIN,2001).

Sistemas Imunes Artificiais, portanto, pertencem a uma classe de algo- ritmos em computação denominada de algoritmos bioinspirados, possuindo similaridades com Redes Neurais Artificiais, mas principalmente com Compu- tação Evolutiva e Algoritmos de Enxames. Esses algoritmos, por sua vez contri-

buem para o estabelecimento daSoft Computing(Computação Flexível), um pa-

radigma em inteligência computacional baseado em modelos probabilísticos, incluindo além dos algoritmos bioinspirados: Lógica Fuzzy (ZADEH, 1965;

ZADEH, 1979), Teoria de Conjuntos Aproximados (PAWLAK, 1991; PAWLAK,

1982; UCHÔA, 1998), Teoria de Dempster-Shafer (SHAFER, 1976), e outros métodos com filosofias similares.

A Soft Computing consiste no uso de abordagens híbridas, integradas ou não, para a solução de problemas diversos. De acordo com (ZADEH, 1994), o principal objetivo desse paradigma é “obter tratabilidade, robustez, baixo custo de solução e alto quociente de inteligência da máquina (MIQ – Machine Intelligence Quotient) através da exploração da tolerância a imprecisão e incer- teza”. Como apontado em (WANG; TAN, 1997), a Lógica Fuzzy possui grande destaque nessas abordagens. Assim, de forma diferente a métodos mais clás- sicos, a Soft Computing valoriza o uso de modelos que permitem a representa- ção de incerteza. Mais detalhes sobre a Soft Computing podem ser verificados em (BONISSONE,1997) e (NOVÁK, 1998).

Uma interessante discussão epistemológica sobre a definição de Soft Com- puting é apresentada em (DUBOIS; PRADE, 1998), que comenta que a defi- nição atual dessa disciplina ainda não é satisfatória, pois “cada um de seus componentes tem pouco em comum com o outro”. Esses autores sugerem, por- tanto, uma visão mais ampla dessa área, como

um campo dedicado a métodos de solução de problemas capazes de explo- rar simultaneamente dados numéricos e conhecimento humano, usando modelagem matemática e sistemas de raciocínio simbólico.

(DUBOIS; PRADE,1998, p.11)

Dentro desse contexto, uma apresentação geral de SIAs, Computação Evo- lutiva e Algoritmos de Enxames é apresentada em (DE CASTRO, 2002a). A Computação Evolutiva fundamenta-se em algoritmos que tentam mimetizar processos da evolução natural, sendo os Algoritmos Genéticos seus maiores representantes. Já a classe de Algoritmos de Enxames, da qual faz parte os Algoritmos de Colônias de Formigas, é fundamentada na propriedade de alguns sistemas apresentarem comportamento coletivo inteligente a partir de elementos simples com capacidade limitada. Em (DE CASTRO,2002b), é apre- sentada uma comparação entre essas três classes de algoritmos, sendo que, como apontado nesse texto, a diferença entre SIAs e computação evolutiva é sutil. Isso é válido principalmente para os algoritmos baseados no princípio de seleção clonal, como já destacado na Seção5.3.

Em (TARAKANOV; TARAKANOV, 2005), os autores compararam Algorit- mos Genéticos com um algoritmo baseado em rede imunológica, obtendo me- lhores resultados com SIAs em uma série de tarefas. Obviamente, dada as ca- racterísticas inexatas dessa classe de algoritmo, qualquer comparação desta natureza é incompleta e, em geral, tendenciosa.

Testes realizados por nossa equipe com Algoritmos Genéticos clássicos e CLONALG sugere que é melhor utilizar o CLONALG para resolver problemas cuja representação torna o crossover um operador sem sentido, complexo ou sem utilidade. Esse é o caso, por exemplo, do Timetabling, que consiste na elaboração de uma agenda entre participantes, de forma a satisfazer uma sé- rie de restrições. Um exemplo real do Timetabling é a alocação de horários por turmas e professores em escolas, por exemplo. Além das restrições de professores, existem uma série de outros fatores que tornam essa tarefa rela- tivamente complexa: i) preferência de professores por certos dias e horários; ii) não pode haver choques de atividades entre os participantes, aulas do mesmo

professor no mesmo horário para turmas diferentes; iii) necessidade de otimi- zar as aulas em blocos, geralmente de duas aulas, evitando aulas esparsas, etc.

Em (TIMÓTEO,2002), são apresentados mais detalhes sobre o Timetabling, bem como uma solução utilizando Algoritmos Genéticos. Neste trabalho, ori- entado por este pesquisador, uma das primeiras dificuldades encontradas foi justamente a definição do operador de crossover, uma vez que, a partir da representação escolhida para as possíveis soluções, o cruzamento de dife- rentes indivíduos levava a soluções inviáveis. Obviamente, isso pode ser um problema advindo da forma de representação adotada para o problema, mas aponta para dificuldades em situações semelhantes. Testes realizados por este pesquisador permitiu a obtenção de melhores resultados com o CLONALG que com Algoritmos Genéticos na resolução do Timetabling e eliminou a dificul- dade de formulação de um crossover adaptado ao problema.

Além dos Algoritmos Genéticos, os SIAs possuem alguma proximidade com as Redes Neurais Artificiais, principalmente os inspirados na Teoria da Rede Imunológica. Nesse sentido a Tabela 5.1, extraída de (AICKELIN; DASGUPTA,

2006), apresenta uma visão geral comparativa desses algoritmos. Como apon- tada nesse texto, essa Tabela é uma simplificação grosseira, mas extrema- mente valiosa para que se possa situar os SIAs em um contexto mais amplo. Deve-se comentar ainda que essa comparação foi baseada em um Algoritmo Genético clássico, utilizado em otimização, e modelos clássicos de Redes Neu- rais Artificiais para classificação. Uma discussão mais detalhada da compa- ração de SIAs com esses métodos pode ser encontrada no Capítulo 6 de (DE CASTRO; TIMMIS, 2002b).

A partir da Tabela 5.1, é possível perceber que os SIAs agregam algumas vantagens e características existentes em Algoritmos Genéticos e Redes Neu- rais Artificiais. Como apontado em (AICKELIN; DASGUPTA,2006), SIAs, assim como outros algoritmos evolucionários, são relativamente robustos com rela- ção aos parâmetros de configuração, dado que sejam escolhidos em uma faixa sensível ao algoritmo. Em (DE CASTRO; TIMMIS,2002c), que apresenta uma excelente comparação entre SIAs e Redes Neurais Artificiais, é apontado que SIAs e Redes Neurais Artificiais são altamente flexíveis e tolerantes a ruídos. SIAs também compartilham com essas classes de algoritmos a capacidade de generalização e a existência e o suporte para não-linearidade, características bastante desejáveis na resolução de diversos problemas.

Algoritmos Genéticos Redes Neurais Artificiais SIAs Componentes Strings de cromossomos

Neurônios artificiais Strings de atributos Localização dos

componentes

Dinâmica Pré-definida Dinâmica Estrutura Componentes

discretos

Componentes em rede Componentes discretos/em rede Armazenamento

de Conhecimento

Strings de cromossomos

Pesos das conexões Concentração dos componentes /

conexão da rede Dinâmica Evolução Aprendizado Evolução/Aprendizado Meta-dinâmica Recrutamento / eliminação de compo- nentes Construção / ajuste de conexões Recrutamento / eliminação dos componentes Interação Entre Componentes

Cruzamento Conexões da rede Reconhecimento / conexões da rede Interação Com o

Ambiente

Fitness Estímulo externos Reconhecimento / função objetivo

Forma de Ativa- ção

Aglomeração / compartilhamento

Ativação de neurônio Afinidade entre componentes

Tabela 5.1: Comparação entre SIAs, Algoritmos Genéticos e Redes Neurais Artificiais – Fonte: (AICKELIN; DASGUPTA,2006)

A escolha entre uma dessas classes para a resolução de um dado pro- blema pode ser relativamente complexa, dado o grande leque de aplicação dos mesmos, bem como o grande número de modelos existentes em cada classe. Podem ser determinantes nessa escolha a natureza do problema e o conheci- mento do especialista sobre os métodos em si. Entre os critérios que podem direcionar a escolha para o uso de um SIA, encontra-se o fato de que, em geral, os algoritmos desse paradigma mesclam vantagens de algoritmos baseados em redes com algoritmos baseados em seleção e mutação.

Vários modelos híbridos têm sido propostos na literatura, sendo que a Tabela 5.2, adaptada de (DE CASTRO; TIMMIS, 2003), apresenta uma visão geral de modelos híbridos envolvendo SIAs, Computação Evolutiva (CE), Lógica Fuzzy (LF) e Redes Neurais Artificiais (RNAs). Esses modelos híbridos são interessantes no sentido em que uma abordagem pode auxiliar na resolução de problemas encontrados utilizando-se apenas um paradigma. Apesar disso, cabe destacar que ainda não existem abordagens híbridas que possam ser consideradas bem estabelecidas na literatura, ou seja: ainda não é possível detectar quais tipos de hibridizagem serão preferidos na solução de problemas ou mesmo se esses modelos ganharão algum tipo de destaque, como os já clássicos modelos neuro-fuzzy.

Um dos primeiros modelos híbridos foi apresentado em (DE CASTRO; VON ZUBEN, 2001b), que avaliou o uso do SAND para inicialização de pesos em

Integração Resultados

SIAs ←→ RNAs • SIAs sugeriram novos modelos, arquiteturas e algoritmos de aprendizados de RNAs

• SIAs forneceram capacidades extras de memórias para RNAs

• SIAs foram utilizados para desenvolvimento de novas técnicas de inicialização de RNAs

SIAs ←→ CE • CE forneceu novas definições de repertórios iniciais para SIAs

• CE foi utilizada para estudar a avaliação da codificação genética de SIAs

• SIAs foram utilizados para aperfeiçoar a convergência em algoritmos genéticos

• SIAs foram utilizados para controlar limites em algoritmos genéticos

• SIAs foram utilizados para o desenvolvimento de algorit- mos genéticos co-evolucionários

• SIAs foram utilizados para promover e manter nichos, es- pécies e diversidade em algoritmos evolucionários

• Foi proposta uma versão imunológica de programação genética

SIAs ←→ LF • LF tem sido utilizada para modelar ligação imunológica em SIAs

• O uso de LF permitiu o desenvolvimento de SIAs com maior apelo biológico

• SIAs foram utilizados como alternativas para esquemas de clusterização fuzzy

• SIAs podem ser utilizados para modelar seleção em LF

Tabela 5.2: Modelos Híbridos Envolvendo SIAs – Adaptado de (DE CASTRO; TIMMIS,2003) redes neurais não-recorrentes, tendo comparado-o a cinco outros métodos. SAND é um algoritmo de têmpera simulada inspirado pela diversidade do sis- tema imune, descrito em detalhes em (DE CASTRO,2001). SAND e dois outros métodos obtiveram os melhores resultados na comparação, sendo que o SAND tinha como vantagem sobre esses dois outros métodos o fato de não precisar fazer uso de dados de treinamento para estimar o conjunto inicial de pesos.

Além desse trabalho, em (DE CASTRO; VON ZUBEN, 2001a), os mesmos autores apresentaram uma abordagem baseada em rede imunológica para ini-

cialização de centros de redes neurais RBF (Radial Basis Function). Mais re- centemente, em (DE CASTRO; VON ZUBEN; DEUS JR.,2003), os autores pro- puseram um modelo de rede neural competitiva booleana, também baseando- se em rede imunológica.

Aparentemente, destacam-se na literatura o uso de modelos híbridos uti- lizando SIAs e Lógica Fuzzy. Isso em parte é justificado pela facilidade da aplicação de conceitos da Lógica Fuzzy a outros paradigmas. Em (NASAROUI; GONZALEZ; DASGUPTA, 2002), por exemplo, é apresentada uma aplicação baseada em rede imunológica, utilizando-se Lógica Fuzzy no processo de re- conhecimento. A aplicação desenvolvida foi utilizada para a geração de profiles de navegação Web.

Na área de detecção de falhas, vários trabalhos tem utilizado SIAs ou mode- los híbridos. Em (YAKUWA et al., 2002), por exemplo, é apresentado um algo- ritmo baseado em redes neuro-fuzzy e redes imunes para diagnóstico de falhas em sistemas dinâmicos. Por sua vez, em (GÓMEZ; GONZÁLEZ; DASGUPTA,

2003) é proposto um algoritmo baseado em seleção negativa, onde conjuntos fuzzy são utilizados para representar self e nonself, para aplicação em detec- ção de anomalias.

Em (FÉLIX; USHIO,2005), é apresentada uma proposta interessante para o cálculo de afinidades entre o paratopo de um linfócito e um epítopo de um dado antígeno utilizando-se de conceitos da Teoria de Conjuntos Aproximados. Com o uso dessas estratégias, os autores puderam generalizar os linfócitos existentes, permitindo o uso de um menor número dos mesmos. Apesar de não estar claro no trabalho, o método é baseado em Seleção Negativa.