Pregunta 1 · Matemática Discreta UAB 2026

Tema: Recorreguts BFS i DFS · Del examen Examen de seminaris Parcial 1 (20/04/2026) (2026)

Enunciado

Pregunta 1 (5 punts). Algorisme BFS i detecció de cicles

Considereu la implementació en Python d'un recorregut en amplada (BFS):

1. def bfs(graph, start):

2. to_visit = []

3. visited = []

4. to_visit.append(start)

5. while to_visit:

6. # CUA (FIFO): traiem el primer

7. actual = to_visit.pop(0)

8. veins = graph.neighbors(actual)

9. for v in veins:

10. if v not in to_visit:

11. to_visit.append(v)

12. visited.append(actual)

13. return visited

I el graf dirigit G=(V,E)G = (V, E) definit per les següents arestes dirigides:

A→BA \rightarrow B

B→CB \rightarrow C

B→DB \rightarrow D

C→AC \rightarrow A

a.

(2 punts) Efectueu el seguiment de l'execució de la crida bfs(G, 'A') completant la taula amb l'estat de les variables al final de cadascuna de les primeres 5 iteracions del bucle while. La fila INICIAL reflecteix l'estat just abans d'entrar al bucle.

Iteració

actual

visited

to_visit

INICIAL

—

[]

['A']

1

2

3

4

5

b.

(1 punt) Raoneu quin inconvenient o error presenta l'algorisme i per quina raó es manifesta.

c.

(2 punts) Assenyaleu el número de línia que cal esmenar i escriviu la correcció necessària.

Enunciado: Pregunta 1 · Matemática Discreta UAB 2026

Solución

Según los criterios oficiales de corrección

a) Iteració 1: actual

Solución: 'A'

a) Iteració 1: visited

Solución: ['A']

a) Iteració 1: to_visit

Solución: ['B']

a) Iteració 2: actual

Solución: 'B'

a) Iteració 2: visited

Solución: ['A', 'B']

a) Iteració 2: to_visit

Solución: ['C', 'D']

a) Iteració 3: actual

Solución: 'C'

a) Iteració 3: visited

Solución: ['A', 'B', 'C']

a) Iteració 3: to_visit

Solución: ['D', 'A']

a) Iteració 4: actual

Solución: 'D'

a) Iteració 4: visited

Solución: ['A', 'B', 'C', 'D']

a) Iteració 4: to_visit

Solución: ['A']

a) Iteració 5: actual

Solución: 'A'

a) Iteració 5: visited

Solución: ['A', 'B', 'C', 'D', 'A']

a) Iteració 5: to_visit

Solución: ['B']

b) Raoneu quin inconvenient o error presenta l'algorisme i per quina raó es manifesta.

Solución: L'algorisme entra en un bucle infinit (no acaba mai). Això passa perquè a la condició de la línia 10 només es verifica que el veí no es trobi a la llista d'espera (to_visit), però no es comprova si el vèrtex ja ha estat visitat i processat prèviament (és a dir, si és present a visited). Com que el graf té un cicle orientat (A→B→C→AA \rightarrow B \rightarrow C \rightarrow A), els vèrtexs del cicle es reintrodueixen a la cua una vegada i una altra.

c) Assenyaleu el número de línia que cal esmenar.

Solución: 10

c) Escriviu la correcció necessària.

Solución: ```python if v not in to_visit and v not in visited: ```

La explicación paso a paso, hecha con IA, es Premium. Premium

Resuélvelo aquí mismo: corrección automática, pistas y solución paso a paso.

Pregunta 2 · 2026 ›

Más ejercicios de Recorreguts BFS i DFS