# Sistema immunitario artificiale

Il metodo del sistema immunitario artificiale (in inglese artificial immune system da cui l'acronimo AIS) è un tipo di algoritmo di ottimizzazione ispirato ai principi e ai processi del sistema immunitario degli esseri viventi. In particolar modo gli algoritmi di questo genere sfruttano le caratteristiche di memoria ed esperienza per risolvere i problemi studiati. Sono accoppiati all'intelligenza artificiale e strettamente correlati con gli algoritmi genetici.
I processi evolutivi simulati con il metodo degli AIS includono il pattern recognition, la mutazione e la selezione degli elementi da clonare.

## Descrizione dell'algoritmo

Questo articolo illustra l'implementazione algoritmica di questi processi. Per i concetti di base di biologia fare riferimento ai sistemi immunitari naturali.

### Pseudocodice

Qui di seguito è mostrato quello che può essere uno pseudocodice che implementa il metodo dagli AIS.
Definiamo innanzitutto i seguenti parametri:
* $N_{gen}$=numero di genitori (e quindi il numero di famiglie);
* $N_{fig}$=numero di figli per ogni genitore;
* $N_{int}$=numero di generazioni interne;
* $N_{ext}$=numero di generazioni esterne;
* $perc\_rinn$=la percentuale di rinnovamento delle soluzioni.
Questo può essere lo pseudocodice:
Commenti:
* sia la generazione dei genitori che la mutazione dei figli devono essere preferibilmente casuali, facendo sì che vengano sempre rispettati i vincoli imposti dal problema studiato.
* la funzione fitness è un valore che indica la bontà di una soluzione: maggiore è la funzione fitness migliore è la soluzione.

## Riconoscimento di Pattern

La rappresentazione degli Anticorpi e degli antigeni è comunemente implementata con stringhe di attributi. Questi possono essere rappresentati come numeri binari, interi o reali, sebbene il modello originario prevedesse l'utilizzo di qualsiasi attributo numerico. La corrispondenza è ottenuta utilizzando la distanza euclidea, la distanza di Manhattan o la distanza di Hamming.

## Hypermutation

Gli algoritmi di selezione clonale sono comunemente usati per l'ipermutazione (hypermutation in inglese) degli anticorpi. Questo permette alla stringa di attributi di migliorarsi (la qualità degli attributi è misurata mediante una funzione di fitness) usando esclusivamente la mutazione.

## Storia

Il metodo degli AIS fu introdotto a metà degli anni '80 da Farmer, Packard and Perelson in un articolo riguardante le reti immuni (1986). Fu comunque solo dopo la metà degli anni '90 che gli AIS iniziarono ad avere una propria area di studio. Forrest et al (con la selezione negativa) iniziarono ad approfondire gli argomenti nel 1994; e Dasgupta condusse studi approfonditi sugli algoritmi facenti uso della selezione negativa. Hunt e Cooke iniziarono dei lavori sui modelli di reti immuni nel 1995; Timmis e Neal continuarono questo lavoro e ne migliorarono alcuni aspetti. I lavori di DeCastro & Von Zuben's e Nicosia & Cutello's (sulla selezione clonale artificiale) si diffusero e divennero prestigiosi nel 2002. Il primo libro trattante gli argomenti degli AIS fu edito scritto da Dasgupta nel 1999.
Nuovi ambiti di ricerca, come la danger theory e algoritmi ispirati al sistema immunitario innato, sono ora in fase di esplorazione. Sebbene la capacità di questi campi di apportare miglioramenti rispetto agli algoritmi AIS già esistenti è molto dibattuta, questa stessa sfida è uno dei principali stimoli per lo sviluppo di algoritmi AIS.
In origine AIS veniva utilizzato per trovare astrazioni efficienti dei processi esistenti nel sistema immunitario ma, recentemente, si è iniziato ad interessarsi alla modellistica di processi biologici mediante algoritmi immunologici.