# Zwermintelligentie

Zwermintelligentie is een vorm van kunstmatige intelligentie die gebaseerd is op collectief gedrag van gedecentraliseerde, zelforganiserende systemen.
Zwermintelligentiesystemen bestaan doorgaans uit een populatie van eenvoudige agenten die interageren met elkaar en hun omgeving. Hoewel er geen centrale controlerende structuur is die de agenten controleert zorgen de gezamenlijke interacties voor een globaal intelligent gedrag. Voorbeelden in de natuur zijn mierenkolonies, vogelzwermen en scholen van vissen.

## Voorbeeldalgoritmes
### Mierenkolonieoptimalisatie

Mierenkolonieoptimalisatie ofwel ACO (Ant colony optimization) is een klasse van optimalisatiealgoritmes die gemodelleerd zijn op de activiteit van een mierenkolonie. Kunstmatige 'mieren' zoeken voor lokaal optimale oplossingen door de oplossingenruimte te doorzoeken. Echte mieren laten feromonen achter om de andere mieren een weg in hun omgeving te helpen vinden naar voedsel. De gesimuleerde mieren doen dit door hun posities en de kwaliteit van hun oplossingen te registreren zodat in latere iteraties de mieren nog betere oplossingen kunnen vinden. Een variatie op dit thema is het bijenalgoritme dat veel lijkt op de oogstpatronen van de bij.

### Deeltjeszwermoptimalisatie

Deeltjeszwermoptimalisatie ofwel PSO (Particle swarm optimization) is een globaal optimalisatiealgoritme voor problemen die beschouwd kunnen worden als het zoeken van een optimaal punt of vlak in n-dimensionele ruimte. Hypotheses worden uitgetekend in deze n-dimensionele ruimte waarbij de deeltjes een initiële snelheid hebben en er een communicatiekanaal is tussen deze deeltjes. Deze deeltjes bewegen dan door deze oplossingenruimte en worden na enige tijd beoordeeld aan de hand van bepaalde criteria. Na enige tijd gaan de deeltjes samenscholen met die deeltjes die beter voldoen aan de criteria. Het grootste voordeel aan deze aanpak ten opzichte van simulated annealing is dat de grote hoeveelheid deelnemers het probleem flexibeler en eenvoudiger aanpakt.

### Stochastisch diffusiezoeken

Stochastisch diffusiezoeken ofwel SDS (Stochatic Diffusion Search) is een agentgebaseerde probabilistische globale zoek- en optimalisatietechniek voor problemen waarvan de functie die de waarde van een oplossing uitdrukt kan worden opgesplitst in meerdere onafhankelijke deelfuncties. Elke agent onderhoudt een hypothese welke iteratief kan worden nagegaan door willekeurig een partiële functie te selecteren en te gebruiken als de huidige hypothese. In de standaardmethode voor dit zoeken activeert of deactiveert men een agent. Informatie over deze hypotheses wordt verspreid over de populatie via een inter-agentcommunicatie. In tegenstelling tot 'stigmergic' communicatie gebruiken in SDS agenten individuele (1 vs 1) communicatie analoog aan de tandemloopprocedure (hierbij zal een meer ervaren mier een onervaren mier helpen bij het behalen van zijn doel), terug te vinden bij bepaalde soorten mieren. Een positief feedbackmechanisme verzekert dat een populatie van agenten zich zal stabiliseren rond een algemene beste oplossing. SDS is efficiënt en daarenboven een robuust zoek- en optimalisatiealgoritme dat reeds goed wiskundig omschreven is.