Algoritmo delle colonie di formiche: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m smistamento lavoro sporco e fix vari using AWB |
sistemo |
||
Riga 26:
Le formiche usano l'ambiente come mezzo di [[comunicazione]]: si scambiano informazioni indirettamente depositando feromone, in modo da descrivere lo stato del loro "lavoro". Le informazioni vengono scambiate in ambito locale, infatti una formica ha accesso al feromone solo se si trova nel luogo dove questo è stato depositato. Questo sistema è chiamato "[[stigmergia]]" e si verifica in vari animali sociali (in particolare è stato studiato nel caso della costruzione di pilastri nei nidi di [[Isoptera|termiti]]).
Il meccanismo che permette di risolvere un problema troppo complesso per essere affrontato da singole formiche è un buon esempio di sistema [[Auto-organizzazione|auto-organizzato]]. Questo sistema si basa su [[retroazione|retroazioni]] positive (la deposizione di feromone attira altre formiche che rafforzeranno il percorso) e negative (la dissipazione del percorso a causa dell'evaporazione impedisce al sistema di bloccarsi). In teoria, se la quantità di feromone rimane la stessa nel corso del tempo su tutti i percorsi, non ne verrà scelto alcuno. Tuttavia, a causa della retroazione, una piccola variazione su un percorso sarà amplificato e quindi consente la scelta di un percorso. L'algoritmo consente di passare da uno stato instabile dove nessun percorso è migliore di un altro,
==Esempio: l<nowiki>'</nowiki>''Ant system''==
Riga 35:
L'algoritmo generale è relativamente semplice ed è basato su un insieme di formiche, ciascuna delle quali attraversa un percorso tra quelli possibili. In ogni fase, la formica sceglie di spostarsi da una città all'altra secondo alcune regole:
# più una città è distante, meno possibilità ha di essere scelta (la
# più l'intensità del percorso di feromone situato sul crinale tra due città è maggiore, più ha possibilità di essere scelto;
# una volta completato il suo percorso, la formica deposita, su tutti i bordi attraversati, più feromone se il percorso è breve;
Riga 41:
===Descrizione formale===
La regola di spostamento, chiamata
\displaystyle\frac{\tau_{ij}\left(t\right)^{\alpha}
▲p_{ij}^{k}\left(t\right)=\left\{ \begin{matrix}
▲\frac{\tau_{ij}\left(t\right)^{\alpha}\cdot\eta_{ij}^{\beta}}{{\scriptscriptstyle \sum_{l\in J_{i}^{k}}}\tau_{il}\left(t\right)^{\alpha}\cdot\eta_{il}^{\beta}} & \textrm{con}\, j\in J_{i}^{k}\\
▲0 & \textrm{con}\, j\notin J_{i}^{k}\end{matrix}\right.
dove
Una volta fatto il giro delle città, una formica <math>k</math> deposita una quantità <math>\Delta\tau^k_{ij}</math> di feromone su ogni bordo del suo percorso:
:<math>\Delta\tau_{ij}^{k}(t)=\begin{cases}
\
dove
Alla fine di ogni iterazione dell'algoritmo, il feromone depositato nelle precedenti iterazioni delle formiche evaporano:
:<math>
E alla fine dell'iterazione, si ha la quantità di feromone che non è evaporato e di quello che verrà depositato:
:<math>\tau_{ij}(t+1)=(1-\rho) \tau_{ij}(t) + \sum_{k=1}^{m}\Delta\tau_{ij}^{k}(t),</math>▼
▲\tau_{ij}(t+1)=(1-\rho) \tau_{ij}(t) + \sum_{k=1}^{m}\Delta\tau_{ij}^{k}(t)
dove
==Varianti principali==
Riga 77 ⟶ 71:
=== Il contesto dell<nowiki>'</nowiki>''ACO''===
Parte degli algoritmi (compresi quelli progettati da
Un metodo di tipo ACO segue lo schema algoritmico seguente, impostato da:
|