Agora analisamos a procura em largura,
utilizando apenas 2 movimentos de exemplo desde a posição inicial:
A procura em largura vai expandir primeiro os estados
gerados à mais tempo, antes dos restantes, portanto expande pela mesma ordem
que são gerados os estados.
| Geração |
Estado |
Nível |
Pai |
Expansão |
1 |
|
0 |
0 |
1 |
2 |
|
1 |
1 |
2 |
3 |
|
1 |
1 |
3 |
4 |
|
1 |
1 |
4 |
5 |
|
1 |
1 |
5 |
6 |
|
2 |
2 |
|
7 |
|
2 |
2 |
|
8 |
|
2 |
3 |
|
9 |
|
2 |
3 |
|
10 |
|
2 |
4 |
|
11 |
|
2 |
4 |
|
12 |
|
2 |
5 |
|
13 Solução! |
|
2 |
5 |
|
Ficheiro de Excel, passo a passo:
Neste caso houve 13 gerações e 5
expansões. O teste da solução final é feito na geração, dado que neste caso
pode ser bastante compensador relativamente a realizar o teste na expansão. Na
situação concreta, significaria que se teria de fazer 13 expansões em vez
das 5 necessárias, embora o número de testes de solução final seja igual em
ambos os casos.
Pode-se utilizar o campo do nível a
subir em vez de descer, dado que o algoritmo não tem parâmetros, utilizando-se
esse campo apenas para fins informativos.
O algoritmo apresenta uma pequena
diferença de execução, expande o estado gerado à mais tempo, em vez de ser à
menos tempo, mas apresenta uma grande diferença para o algoritmo de
profundidade primeiro: o elevado número de estados gerados e não expandidos.
⚡ Ação:
Refaça esta procura mas utilizando o mesmo estado de partida que nos exemplos
anteriores:
| Geração |
Estado |
Nível |
Pai |
Expansão |
| 1 |
|
0 |
0 |
1 |
| 2 |
|
1 |
1 |
2 |
| 3 |
|
1 |
1 |
3 |
| 4 |
|
1 |
1 |
4 |
| 5 |
|
2 |
2 |
5 |
| 6 |
|
2 |
3 |
6 |
| 7 |
|
2 |
3 |
7 |
| 8 |
|
2 |
3 |
8 |
| 9 |
|
2 |
4 |
|
| 10 |
|
3 |
5 |
|
| 11 |
|
3 |
5 |
|
| 12 |
|
3 |
6 |
|
| 13 |
|
3 |
6 |
|
| 14 |
|
3 |
7 |
|
| 15 |
|
3 |
7 |
|
| 16 |
|
3 |
8 |
|
| 17 Solução! |
|
3 |
8 |
|