Brute force er etdatalogiudtryk der dækker over en udtømmende afsøgning af et løsningsrum, f.eks. afprøvning af samtlige mulige input til en funktion, indtil det ønskede resultat optræder. Metoden betegnes undertiden, når snedigere og hurtigere metoder kendes, sombrute force and ignorance.
Eksempler på brute force:
Brute force-algoritmer er simple at konstruere, og vil altid finde en løsning på problemet, hvis en sådan findes. Problemet er at der for mange problemformuleringer er et meget stort antal potentielle løsninger. Ofte vil antallet af mulig løsninger vokse langt hurtigere end antallet affrihedsgrader. For eksempel er der med 4 dronninger på et 4x4 udsnit af et skakbræt kun 43.680 mulige løsninger at undersøge.
På grund af disse forhold er brute force-algoritmer kun anvendelige når det mulige antal løsninger er lille, eller når der findes en metode til begrænsning af mulighederne. Et eksempel er 8-dronning problemet, hvor man på forhånd indser at der kun kan være en dronning for hver række og kolonne. Denne overvejelse indskrænker det oprindelige problem til 40.320 mulige løsninger.
Løsning af et problem ved hjælp af brute force kræver firefunktioner,start,næste,kontrol oguddata. Disse funktioner har som input en parameterP, der beskriver det specifikke problem der ønskes løst. Funktionernes opførsel er:
Funktionen næste skal også fortælle om der er flere løsningskandidater tilP efter den nuværendec. En ofte anvendt metode er at returnere en løsningskandidat A, der uden videre kan genkendes som værende udenfor løsningsrummet. Tilsvarende skal funktionenstart returnere A, hvis der slet ikke findes løsningskandidater. Brute force-metoden kan herefter udtrykkes som:
cstart(P)whilec Λdoifkontrol(P,c)thenuddata(P,c)cnæste(P,c)