Ir al contenido

Participación 9 resuelta: PWS vs DTS

El DAG muestra el árbol de búsqueda con tres soluciones parciales s1, s2, s3. Cada nodo cuesta O(1). Se pide la cantidad de pasos (aristas) para encontrar la solución global:

  • (a) con PWS, con costos definidos por los niveles m = 1, m = 2 y m = 3. En PWS los procesos deben terminar su búsqueda local: el costo lo fija el proceso que más demora.
  • (b) con DTS, particionando en dos momentos (m = 1 y m = 2), con el mismo costo para todos los procesos.
  • (c) speedup y eficiencia en cada caso: ¿cuál tiene mejor speedup y cuál mayor eficiencia? Analizar.
R [P0] nivel 0
├── A [P0] nivel 1 (m = 1)
│ ├── a1 [P0] nivel 2 (m = 2)
│ │ ├── x1 ── 2 hojas nivel 3 → nivel 4 (m = 3)
│ │ ├── x2 ── s1
│ │ └── x3 ── 2 hojas
│ └── a2 [P1]
│ ├── y1 ── 1 hoja
│ └── y2 ── 1 hoja
├── B [P1]
│ ├── b1 [P2]
│ │ ├── z1 ── 1 hoja
│ │ └── s2 (nivel 3)
│ └── b2 [P3]
│ ├── w1 ── 1 hoja
│ └── w2 ── 2 hojas
└── C [P2]
├── c1 [P4]
│ ├── v1 ── 1 hoja
│ ├── v2 ── 1 hoja
│ └── v3 ── 1 hoja
└── s3 [P5] (nivel 2)

36 nodos ⇒ 35 aristas (un árbol siempre tiene nodos − 1 aristas). Las soluciones están a distinta profundidad: s3 en el nivel 2, s2 en el 3 y s1 en el 4.

Cuenta “de abajo hacia arriba”: aristas de un subárbol = (número de hijos) + (aristas de cada hijo).

SubárbolCómo se cuentaAristasSolución (paso local en DFS)
a13 hijos + 2 + 1 + 28s1 (5)
a22 hijos + 1 + 14—
b12 hijos + 13s2 (3)
b22 hijos + 1 + 25—
c13 hijos + 1 + 1 + 16—
s3hoja0es la solución
A2 + 8 + 414s1 (6)
B2 + 3 + 510s2 (4)
C2 + 6 + 08s3 (8)
R3 + 14 + 10 + 835

DFS de izquierda a derecha. Contando aristas:

  • s1: R→A (1), A→a1 (2), a1→x1 (3), dos hojas (4, 5), a1→x2 (6), x2→s1 (7).
  • s2: se termina A (1 + 14 = 15), R→B (16), B→b1 (17), b1→z1 (18), hoja (19), b1→s2 (20).
  • s3: es el último nodo del recorrido: paso 35.

Como la solución global necesita las tres, Ts = 35 pasos.

Cada proceso tiene el árbol entero y hace un DFS desde la raíz, limitado a su umbral. p = 3.

ProcesoUmbralAristas que recorreSoluciones (paso)
P0m = 1 (profundidad 1)3ninguna
P1m = 2 (profundidad 2)3 + 6 = 9s3 (9)
P2m = 3 (profundidad 4, todo el árbol)35s1 (7), s2 (20), s3 (35)

Con TASKWAIT, el tiempo lo fija el más lento:

TPWS=max⁡(3, 9, 35)=35 pasosT_\text{PWS} = \max(3,\ 9,\ 35) = 35 \text{ pasos}

Trabajo total 3 + 9 + 35 = 47 aristas: 12 redundantes.

Todos usan el mismo umbral (el árbol completo) y cada uno recibe un subárbol distinto. Se sigue la asignación de procesos de la figura.

  1. Momento m = 1. P0 expande R y genera A, B, C para P0, P1, P2: 3 pasos secuenciales.
  2. Momento m = 2. P0, P1 y P2 expanden su nodo a la vez: A → a1 (P0), a2 (P1); B → b1 (P2), b2 (P3); C → c1 (P4), s3 (P5). Cada uno recorre 2 aristas: 2 pasos.
  3. Búsqueda local. Los 6 procesos recorren su subárbol de nivel 2. Manda el más grande, a1, con 8 aristas.
TDTS=3+2+max⁡(8, 4, 3, 5, 6, 0)=13 pasosT_\text{DTS} = 3 + 2 + \max(8,\ 4,\ 3,\ 5,\ 6,\ 0) = 13 \text{ pasos}
SoluciónQuién la encuentraPaso
s3P2, al expandir C en el momento m = 23 + 2 = 5
s2P2, en el subárbol b1 (paso local 3)5 + 3 = 8
s1P0, en el subárbol a1 (paso local 5)5 + 5 = 10

Las tres soluciones están en el paso 10 y el algoritmo termina en el 13. Sin redundancia: 3 + 6 + 26 = 35 aristas.

Para comparar, DTS con un solo momento (m = 1, p = 3): T = 3 + máx(14, 10, 8) = 17 pasos; s2 en 7, s1 en 9, s3 en 11.

S = Ts / Tp, E = S / p, con Ts = 35.

ModelopTpSETrabajo
Secuencial1351135
PWS (m = 1, 2, 3)33535/35 = 1.001/3 = 0.3347
DTS, un momento31735/17 = 2.062.06/3 = 0.6935
DTS, dos momentos61335/13 = 2.692.69/6 = 0.4535
  • Mejor speedup: DTS con dos momentos (2.69).
  • Mayor eficiencia: DTS con un momento (0.69).
  • PWS: no acelera (S = 1, E = 1/3).

¿Por qué PWS no acelera aquí? Para tener la solución global hay que llegar a s1, en el nivel 4. Algún proceso debe recorrer el árbol completo, y en PWS ese proceso parte de la raíz igual que el secuencial; los demás solo repiten la parte de arriba. PWS sirve cuando no se sabe a qué profundidad está la solución y se usa IDA*: varios umbrales a la vez reemplazan rondas sucesivas. Aquí el umbral máximo ya cubre todo el árbol, así que no hay rondas que ahorrar.

¿Por qué DTS con 6 procesos no tarda la mitad que con 3? Pasa de 17 a 13 pasos, no a 8.5:

  • Desbalance: los subárboles de nivel 2 tienen 8, 4, 3, 5, 6 y 0 aristas. El promedio es 26/6 ≈ 4.3, pero manda el mayor (8). P5 recibe s3 directamente y queda ocioso desde el paso 5.
  • Tramo secuencial: generar la frontera cuesta 5 de los 13 pasos (38 %). Es el término bk de la complejidad de DTS.

Por eso la eficiencia baja de 0.69 a 0.45 aunque el speedup suba. Es el compromiso de las láminas 24–26: partir más profundo da más procesos y más speedup, pero el árbol no balanceado y el tramo secuencial limitan la eficiencia. Para mejorarla haría falta balance de carga dinámico: por ejemplo, que P5 y P2, que terminan pronto, pidan a P0 parte del subárbol a1.

Si se mide hasta tener las tres soluciones (no hasta que todos terminan): DTS con dos momentos las tiene en el paso 10 (S = 3.5) y con uno en el paso 11 (S = 3.18). PWS sigue en 35.

Elige el modo y dale Play. El diagrama de abajo muestra en qué pasos trabaja cada proceso: los huecos son tiempo ocioso.

Búsqueda en el árbol de la participación 9: secuencial, PWS y DTS

Un paso = recorrer una arista. Cada color es un proceso. Dale Play y mira quién trabaja en cada paso, dónde aparece cada solución y cuándo termina el último proceso.

paso 0/13
m = 1m = 2m = 3RABCa1a2s1b1b2s2c1s3
5101520253035P0P1P2P3P4P5
Tp (último proceso)13 pasos
Trabajo hasta ahora0 aristas
Redundante0
S = 35 / Tp2.69
E = S / p (p = 6)0.45
s1aún no
s2aún no
s3aún no
Dos momentos de partición (3 + 2 pasos) y 6 búsquedas locales. Manda el subárbol a1 (8 aristas): 5 + 8 = 13. P5 recibe directamente s3 y no tiene nada que buscar.
  1. Si s3 estuviera en el lugar de la última hoja de c1 (nivel 4), ¿cambia TDTS con dos momentos?
Ver solución

No cambia el tiempo: T sigue siendo 3 + 2 + 8 = 13, porque manda a1. Cambia cuándo aparece s3: ahora la encuentra P4 al final de c1 (subárbol de 6 aristas), en el paso 5 + 6 = 11; el nodo de nivel 2 de P5 queda como una hoja sin solución. Las tres soluciones estarían en el paso 11.

  1. Con DTS en dos momentos, ¿qué pasaría si P5 (ocioso desde el paso 5) pudiera tomar la mitad del subárbol a1 (por ejemplo, la rama x3, de 3 aristas)?
Ver solución

P0 se queda con x1 y x2 (3 + 2 = 5 aristas, contando a1→x1, a1→x2, las 2 hojas y x2→s1) y P5 con a1→x3 y sus 2 hojas (3 aristas). Si el traspaso no cuesta pasos, el máximo local baja a máx(5, 4, 3, 5, 6, 3) = 6 y T = 5 + 6 = 11: S = 35/11 = 3.18, E = 0.53. Es el efecto del balance de carga dinámico. En la realidad el traspaso cuesta comunicación, así que la mejora sería algo menor.

  1. ¿Qué tendría que pasar para que PWS fuera mejor que DTS?
Ver solución

Que la profundidad de la solución fuera desconocida y la búsqueda necesitara varias rondas de IDA* (umbral creciente). Por ejemplo, si el secuencial tuviera que hacer 3 rondas (umbral 1, luego 2, luego 3), su tiempo sería 3 + 9 + 35 = 47, y PWS, haciéndolas a la vez, tardaría 35: S = 1.34. Con árboles profundos y muchas rondas, la ventaja crece.

Autoevaluación

0/5 correctas · 0 respondidas
1. ¿Cuántas aristas tiene el árbol?
2. T_PWS en el ejercicio es…
3. T_DTS con dos momentos:
4. ¿Cuál tiene la mayor eficiencia?
5. ¿Por qué E baja al pasar de 3 a 6 procesos en DTS?

Fuente ·U5.3 Algoritmos-busqueda.pdf (láminas 27–37) · participacion9_busqueda.pdf · programa propio: dfs_tareas.cpp