função BUSCA-EM-LARGURA(problema) retorna uma solução ou falha
nó ← um nó com ESTADO = problema.ESTADO-INICIAL, CUSTO-CAMINHO = 0
se problema.TESTE-DE-OBJETIVO(nó.ESTADO) então retorne SOLUÇÃO(nó)
fronteira ← uma fila FIFO com o nó como único elemento
explorados ← um conjunto vazio
repita
se estiver VAZIA(fronteira) então retorne falha
nó ← REMOVER(fronteira) # escolhe o nó mais raso da fronteira
adicione nó.ESTADO ao conjunto explorados
para cada ação em problema.AÇÕES(nó.ESTADO) faça
filho ← NÓ-FILHO(problema, nó, ação)
se filho.ESTADO não estiver em explorados nem na fronteira então
se problema.TESTE-DE-OBJETIVO(filho.ESTADO) então
retorne SOLUÇÃO(filho)
fronteira ← INSERIR(filho, fronteira)