Breadth-first search

Breadth-first search (BFS) är en algoritm för att söka igenom träd- och grafdatastrukturer genom att systematiskt utforska alla noder på en given djupnivå innan den går vidare till nästa. Algoritmen använder en kö för att hantera noder som ska utforskas och är garanterad att hitta den kortaste vägen i oviktade grafer samt en lösning i oändliga grafer om en sådan existerar. BFS kontrasteras med Depth-first search (DFS); medan BFS är komplett och Optimal för kortaste vägar i oviktade grafer, kräver den generellt mer minne än DFS. Viktiga bidragsgivare till utvecklingen av BFS inkluderar Konrad Zuse (1945), Edward F. Moore (1959) och C. Y. Lee (1961). BFS har breda tillämpningar inom områden som labyrintlösning, spelträd, ruttning av ledningar och "Garbage collection".