Stel je voor, je moet een speld zoeken in een zesdimensionale hooiberg.
Je kunt van twee punten in de hooiberg bepalen welke van de twee het dichtst bij de speld zit.
Wat meer wiskundig: ik heb een functie (waar ik weinig van weet) van een aantal variabelen, weet wel dat hij unimodaal is (slechts één extreem). Voor elk stel waarden van de variabelen kan ik de functie berekenen. Ik zoek het maximum.
De snelheid van de computer maakt dingen mogelijk die voordien ondenkbaar waren. Bijvoorbeeld “random search”.
Begin zomaar ergens in de hooiberg. Trek zes kleine random getallen en verander daarmee de coördinaten. Is het nieuwe punt beter? Nee, vergeet dat nieuwe punt, trek nogmaals zes getallen en probeer het nog eens. Ja, probeer vanuit het nieuwe punt op dezelfde manier weer een nog beter punt te vinden. En zo kruipen we naar de speld toe.
Niet moeilijk te programmeren.
Bouw een tellertje in en tel steeds het aantal mislukte pogingen om een beter punt te vinden. Ben je op een punt gekomen waarop je na een paar honderd pogingen nog steeds niets beters hebt gevonden, neem dan maar aan dat je op het maximum of althans voor de praktijk dicht genoeg in de buurt zit.
Je moet misschen nog wat experimenteren met de grootte van je random stappen, maar erg kritisch is het niet.
Heb er succes mee gehad bij een probleem waarop alle “gewone” zoekmethodes het lieten afweten.