Pular para o conteúdo principal
Versões: 0.5.x

Arquitetura do AISP

O AISP (Artificial Immune Systems Package) é um pacote dedicado à implementação de algoritmos inspirados no sistema imunológico dos vertebrados. Essa documentação foca na arquitetura do projeto, com o intuito de auxiliar contribuições e manutenção.
A estrutura do pacote é modular, com separação clara entre as famílias de algoritmos e módulos de suporte para reutilização de componente pelos algoritmos.

Organização dos módulos

A hierarquia do pacote esta divida em 3 núcleos principais: base, utils e famílias de algoritmos.
O núcleo base concentra nas abstrações e modelagens imunológicas, servindo como a fundação para os algoritmos. Já utils reúne funções que auxiliam na implementação dos algoritmos evitando redundância de código.

O núcleo das famílias de algoritmos agrupa as diferentes metáforas dos sistemas imunológicos que os define.

No aisp, essas famílias estão organizadas nos seguintes módulos:

  • Danger Theory Algorithms (DTA) - Previsto para versões futuras do pacote
  • Clonal Selection Algorithms (CSA)
  • Immune Network Algorithms (INA)
  • Negative Selection Algorithms (NSA)

Detalhamento dos módulos

Núcleo do pacote (aisp.base)

O módulo base é a fundação do pacote, dividido em:

  1. base.core: Contem as classes abstratas que implementa o gerenciamento dos parâmetros e a lógica base para compatibilidade.
    • Base (Privada): Classe abstrata estendida pelas demais classes base listadas abaixo.
    • BaseClassifier: Classe abstrata para algoritmos de classificação.
    • BaseClusterer: Classe abstrata para algoritmos de clusterização.
    • BaseOptimizer: Classe abstrata para algoritmos de otimização.
  2. base.immune: Define as células e processos do domínio imunoinspirados.
    • cell: Representações de células e anticorpos do sistema imunológico.
    • mutation: Funções de mutação das células.
    • population: Criação de populações de células imunes.

Utilitários (aisp.utils)

Módulo de suporte com funções auxiliares reutilizáveis no pacote.

Famílias de algoritmos

As implementações dos algoritmos imunoinspirados no aisp estão organizadas em famílias, baseada na taxonomia apresentada em Brabazon et al. 1

Fonte: Adaptado de Brabazon et al. 1, Figura 16.1.

Sendo estruturadas da seguinte forma:

  • aisp.nsa: Módulo com algoritmos baseados na seleção negativa.
  • aisp.csa: Módulo com algoritmos baseados na seleção clonal.
  • aisp.ina: Módulo com algoritmos baseados na teoria da rede imunológica.
  • aisp.dta: Módulo com algoritmos baseados na teoria do perigo (Ainda não implementado).

Referências

Footnotes

  1. BRABAZON, Anthony; O'NEILL, Michael; MCGARRAGHY, Seán. Natural Computing Algorithms. [S. l.]: Springer Berlin Heidelberg, 2015. DOI 10.1007/978-3-662-43631-8. Disponível em: https://dx.doi.org/10.1007/978-3-662-43631-8. 2