Video: The Code: Story of Linux Documentary [2001] 2024
En brute force-lösning är en där du försöker varje möjligt svar, en i taget för att hitta det bästa möjliga svaret. Det är noggrant, det här är mycket säkert men det slösar också tid och resurser i de flesta fall. Testa varje svar, även om det är lätt att bevisa att ett visst svar inte har någon chans att lyckas, slösar bort tid som en algoritm kan använda på svar som har en bättre chans att lyckas.
Dessutom tester de olika svaren med hjälp av detta tillvägagångssätt vanligtvis resurser, till exempel minne. Tänk på det här sättet: Du vill bryta kombinationen för ett lås, så du börjar med 0, 0, 0, även om du vet att den här kombinationen inte har någon chans att lyckas med de fysiska egenskaperna hos kombinationslås. En brute-force-lösning skulle fortsätta med att testa 0, 0, 0 ändå och sedan gå vidare till lika löjliga 0, 0, 1.
Det är viktigt att förstå att varje lösningstyp kommer med fördelar, ibland ganska små. En brute-force-lösning har en sådan fördel. Eftersom du testar varje svar ändå behöver du inte utföra någon form av förbehandling när du arbetar med en brute force-lösning. Den tid som sparas för att hoppa över förbehandlingen är emellertid osannolikt att någonsin betala tillbaka tiden som förlorats för att försöka alla svar. Du kan dock finna ett tillfälle att använda en brute-force-lösning när
- Hitta en lösning, om en finns, är väsentlig.
- Problemstorleken är begränsad.
- Du kan använda heuristics för att minska storleken på lösningen.
- Enkel implementering är viktigare än hastighet.