Participación 9 resuelta: PWS vs DTS
Enunciado (láminas 34–37)
Sección titulada «Enunciado (láminas 34–37)»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.
Paso 0: leer el árbol
Sección titulada «Paso 0: leer el árbol»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.
Tabla de aristas por subárbol
Sección titulada «Tabla de aristas por subárbol»Cuenta “de abajo hacia arriba”: aristas de un subárbol = (número de hijos) + (aristas de cada hijo).
| Subárbol | Cómo se cuenta | Aristas | Solución (paso local en DFS) |
|---|---|---|---|
| a1 | 3 hijos + 2 + 1 + 2 | 8 | s1 (5) |
| a2 | 2 hijos + 1 + 1 | 4 | — |
| b1 | 2 hijos + 1 | 3 | s2 (3) |
| b2 | 2 hijos + 1 + 2 | 5 | — |
| c1 | 3 hijos + 1 + 1 + 1 | 6 | — |
| s3 | hoja | 0 | es la solución |
| A | 2 + 8 + 4 | 14 | s1 (6) |
| B | 2 + 3 + 5 | 10 | s2 (4) |
| C | 2 + 6 + 0 | 8 | s3 (8) |
| R | 3 + 14 + 10 + 8 | 35 |
Secuencial
Sección titulada «Secuencial»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.
(a) PWS con m = 1, 2, 3
Sección titulada «(a) PWS con m = 1, 2, 3»Cada proceso tiene el árbol entero y hace un DFS desde la raíz, limitado a su umbral. p = 3.
| Proceso | Umbral | Aristas que recorre | Soluciones (paso) |
|---|---|---|---|
| P0 | m = 1 (profundidad 1) | 3 | ninguna |
| P1 | m = 2 (profundidad 2) | 3 + 6 = 9 | s3 (9) |
| P2 | m = 3 (profundidad 4, todo el árbol) | 35 | s1 (7), s2 (20), s3 (35) |
Con TASKWAIT, el tiempo lo fija el más lento:
Trabajo total 3 + 9 + 35 = 47 aristas: 12 redundantes.
(b) DTS con partición en m = 1 y m = 2
Sección titulada «(b) DTS con partición en m = 1 y m = 2»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.
- Momento m = 1. P0 expande R y genera A, B, C para P0, P1, P2: 3 pasos secuenciales.
- 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.
- Búsqueda local. Los 6 procesos recorren su subárbol de nivel 2. Manda el más grande, a1, con 8 aristas.
| Solución | Quién la encuentra | Paso |
|---|---|---|
| s3 | P2, al expandir C en el momento m = 2 | 3 + 2 = 5 |
| s2 | P2, en el subárbol b1 (paso local 3) | 5 + 3 = 8 |
| s1 | P0, 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.
(c) Speedup y eficiencia
Sección titulada «(c) Speedup y eficiencia»S = Ts / Tp, E = S / p, con Ts = 35.
| Modelo | p | Tp | S | E | Trabajo |
|---|---|---|---|---|---|
| Secuencial | 1 | 35 | 1 | 1 | 35 |
| PWS (m = 1, 2, 3) | 3 | 35 | 35/35 = 1.00 | 1/3 = 0.33 | 47 |
| DTS, un momento | 3 | 17 | 35/17 = 2.06 | 2.06/3 = 0.69 | 35 |
| DTS, dos momentos | 6 | 13 | 35/13 = 2.69 | 2.69/6 = 0.45 | 35 |
- Mejor speedup: DTS con dos momentos (2.69).
- Mayor eficiencia: DTS con un momento (0.69).
- PWS: no acelera (S = 1, E = 1/3).
Análisis
Sección titulada «Análisis»¿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.
Míralo paso a paso
Sección titulada «Míralo paso a paso»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.
Variantes para practicar
Sección titulada «Variantes para practicar»- 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.
- 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.
- ¿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 respondidasFuente ·U5.3 Algoritmos-busqueda.pdf (láminas 27–37) · participacion9_busqueda.pdf · programa propio: dfs_tareas.cpp