...

Создано: 20 октября 2025 г.

Отвечено с использованием GPT-5 Thinking от Chat01

Вопрос

                                                                                                                                                                                                                                         Para desarrollar el proceso de aprendizaje de esta unidad y su respectivo contenido debe consultar el texto básico; PLANEACIÓN Y CONTROL DE LA PRODUCCIÓN, capítulo 9 Planeación, programación y control de proyectos, por Daniel Sipper y Robert L. Bulfin. Editorial Mc GrawHill.                                                                                                                                                                                                                                            

Un proyecto, contempla la siguiente lista de actividades, junto con sus tiempos requeridos de terminación.
Tabla siguiente:
Actividad Tiempo Precedentes inmediatos
A 1 --
B 4 A
C 3 A
D 7 A
E 6 B
F 2 C, D
G 7 E, F
H 9 D
I 4 G, H
a. Determine el diagrama de Ruta Crítica.
b. Muestre los tiempos de inicio temprano, terminación temprana, inicio tardío y terminación tardía.
c. Muestre la ruta crítica.
d. ¿Qué ocurriría si la actividad F, se modificara para que tarde cuatro días, en lugar de dos?

Вопрос

                                                                                                                                                                                                                                         Para desarrollar el proceso de aprendizaje de esta unidad y su respectivo contenido debe consultar el texto básico; PLANEACIÓN Y CONTROL DE LA PRODUCCIÓN, capítulo 9 Planeación, programación y control de proyectos, por Daniel Sipper y Robert L. Bulfin. Editorial Mc GrawHill.                                                                                                                                                                                                                                            

Un proyecto, contempla la siguiente lista de actividades, junto con sus tiempos requeridos de terminación.
Tabla siguiente:
Actividad Tiempo Precedentes inmediatos
A 1 --
B 4 A
C 3 A
D 7 A
E 6 B
F 2 C, D
G 7 E, F
H 9 D
I 4 G, H
a. Determine el diagrama de Ruta Crítica.
b. Muestre los tiempos de inicio temprano, terminación temprana, inicio tardío y terminación tardía.
c. Muestre la ruta crítica.
d. ¿Qué ocurriría si la actividad F, se modificara para que tarde cuatro días, en lugar de dos?

Python

python
# Let's compute CPM for given activities. activities = { "A": {"dur": 1, "pred": []}, "B": {"dur": 4, "pred": ["A"]}, "C": {"dur": 3, "pred": ["A"]}, "D": {"dur": 7, "pred": ["A"]}, "E": {"dur": 6, "pred": ["B"]}, "F": {"dur": 2, "pred": ["C", "D"]}, "G": {"dur": 7, "pred": ["E", "F"]}, "H": {"dur": 9, "pred": ["D"]}, "I": {"dur": 4, "pred": ["G", "H"]}, } # compute ES, EF via forward pass ES = {} EF = {} # Topological order # naive approach: iterate until all assigned remaining = set(activities.keys()) while remaining: for act in list(remaining): preds = activities[act]["pred"] if all(p in EF for p in preds): ES[act] = max([EF[p] for p in preds], default=0) EF[act] = ES[act] + activities[act]["dur"] remaining.remove(act) ES, EF, EF["I"] ({'A': 0, 'D': 1, 'B': 1, 'E': 5, 'H': 8, 'C': 1, 'F': 8, 'G': 11, 'I': 18}, {'A': 1, 'D': 8, 'B': 5, 'E': 11, 'H': 17, 'C': 4, 'F': 10, 'G': 18, 'I': 22}, 22)

Python

python
# Build successor mapping succ = {a: [] for a in activities} for a, info in activities.items(): for p in info["pred"]: succ[p].append(a) succ {'A': ['B', 'C', 'D'], 'B': ['E'], 'C': ['F'], 'D': ['F', 'H'], 'E': ['G'], 'F': ['G'], 'G': ['I'], 'H': ['I'], 'I': []}

Python

python
# backward pass: set LF for activities with no successors to project duration LF = {} LS = {} project_duration = EF["I"] # Process in reverse topological order processed = set() # Build topological ordering used: order list from forward pass 'ordered'? # Let's derive order: repeated earlier; to ensure stable, compute Kahn's algorithm from collections import deque, defaultdict pred_count = {a: len(info["pred"]) for a, info in activities.items()} queue = deque([a for a in activities if pred_count[a]==0]) order = [] preds = {a: set(info["pred"]) for a, info in activities.items()} while queue: n = queue.popleft() order.append(n) for s in succ[n]: preds[s].remove(n) if len(preds[s]) == ['A', 'B', 'C', 'D', 'E', 'F', 'H', 'G', 'I']

Python

python
# Now backward LF = {a: float('inf') for a in activities} LS = {} for a in reversed(order): if len(succ[a])==0: LF[a] = project_duration else: LF[a] = min(LS[s] for s in succ[a]) LS[a] = LF[a] - activities[a]["dur"] LF, LS ({'A': 1, 'B': 5, 'C': 9, 'D': 9, 'E': 11, 'F': 11, 'G': 18, 'H': 18, 'I': 22}, {'I': 18, 'G': 11, 'H': 9, 'F': 9, 'E': 5, 'D': 2, 'C': 6, 'B': 1, 'A': 0})

Python

python
TF = {a: LS[a]-ES[a] for a in activities} EF_ordered = {a: EF[a] for a in activities} ES, EF, LS, LF, TF ({'A': 0, 'D': 1, 'B': 1, 'E': 5, 'H': 8, 'C': 1, 'F': 8, 'G': 11, 'I': 18}, {'A': 1, 'D': 8, 'B': 5, 'E': 11, 'H': 17, 'C': 4, 'F': 10, 'G': 18, 'I': 22}, {'I': 18, 'G': 11, 'H': 9, 'F': 9, 'E': 5, 'D': 2, 'C': 6, 'B': 1, 'A': 0}, {'A': 1, 'B': 5, 'C': 9, 'D': 9, 'E': 11, 'F': 11, 'G': 18, 'H': 18, 'I': 22}, {'A': 0, 'B': 0, 'C': 5, 'D': 1, 'E': 0, 'F': 1, 'G': 0, 'H': 1, 'I': 0})

Python

python
activities2 = {**activities} activities2["F"] = {"dur": 4, "pred": ["C","D"]} # recompute forward ES2, EF2 = {}, {} remaining = set(activities2.keys()) while remaining: for act in list(remaining): preds = activities2[act]["pred"] if all(p in EF2 for p in preds): ES2[act] = max([EF2[p] for p in preds], default=0) EF2[act] = ES2[act] + activities2[act]["dur"] remaining.remove(act) succ2 = {a: [] for a in activities2} for a, info in activities2.items(): for p in info["pred"]: succ2[p].append(a) # topo order again from collections import deque pred_count2 = {a: len(info["pred"]) for a, info in activities2.items()} queue = deque([a for a in activities2 if pred_count2[a]==0]) order2 = [] preds2 = {a: set(info["pred"]) for a, info in activities2.items()} while queue: n = queue.popleft() order2.append(n) for s in succ2[n]: preds2[s].remove(n) if len(preds2[s]) == 0: queue.append(s) project_duration2 = EF2["I"] LF2, LS2, TF2 = {}, {}, {} LF2 = {a: float('inf') for a in activities2} for a in reversed(order2): if len(succ2[a])==0: LF2[a] = project_duration2 else: LF2[a] = min(LS2[s] for s in succ2[a]) LS2[a] = LF2[a] - activities2[a]["dur"] TF2 = {a: LS2[a]-ES2[a] for a in activities2} ES2, EF2, LS2, LF2, TF2, project_duration2 ({'A': 0, 'D': 1, 'B': 1, 'E': 5, 'H': 8, 'C': 1, 'F': 8, 'G': 12, 'I': 19}, {'A': 1, 'D': 8, 'B': 5, 'E': 11, 'H': 17, 'C': 4, 'F': 12, 'G': 19, 'I': 23}, {'I': 19, 'G': 12, 'H': 10, 'F': 8, 'E': 6, 'D': 1, 'C': 5, 'B': 2, 'A': 0}, {'A': 1, 'B': 6, 'C': 8, 'D': 8, 'E': 12, 'F': 12, 'G': 19, 'H': 19, 'I': 23}, {'A': 0, 'B': 1, 'C': 4, 'D': 0, 'E': 1, 'F': 0, 'G': 0, 'H': 2, 'I': 0}, 23)

Мысль

Finalizing the critical path

It looks like the project duration is now 23. The critical path has shifted to A-D-F-G-I, with no float for these activities. The earlier critical path (A-B-E-G-I) had a float of 1, but now the critical path is longer. I’ll compute the changes if F becomes 4 days and show the updated times.

Presenting in Spanish

Okay, the user expects the results in Spanish, so I'll provide the times in a neat text table. I’ll use the required format for calibration and avoid unnecessary tools. Here's what I think should be included: activity, duration, predecessors, ES, EF, LS, LF, and float. I’ll also mention network path lengths, especially the effect of changing F to 4 days.

Preparing table and diagram

I’ll include the ASCII diagram for the precedence relationships as follows:

text
A→B→E→G→I A→C→F→G→I A→D→F→G→I A→D→H→I

Then, I'll format the table presenting each activity with the appropriate values for duration, early start, early finish, late start, late finish, and total float as text (no decimals). I'll also use Markdown for neatness, avoiding manual mistakes.

Reviewing modified values for F=4

For the adjusted F=4, the changes to the schedule

Thought for 49s

Ответ

¡Vamos a resolverlo paso a paso con CPM (Critical Path Method)!

a) Red de precedencias (diagrama de Ruta Crítica)

Puedes representarla así (flechas = precedencias):

text
┌──► B ─► E ─┐ A ───┤ ├──► G ─► I ├──► C ─► F ─┘ └──► D ─► F ─► └──► H ─► I

b) Tiempos ES/EF/LS/LF y holguras (duraciones en días)

Caso original (F = 2 días)

ActDurPredecesoresESEFLSLFHolgura
A101010
B4A15150
C3A14695
D7A18291
E6B5115110
F2C, D8109111
G7E, F111811180
H9D8179181
I4G, H182218220
  • Duración total del proyecto: 22 días (EF de I).

c) Ruta crítica

Actividades con holgura 0: A → B → E → G → I
Ruta crítica = A–B–E–G–I (22 días).

Caminos relevantes para contrastar:

  • A–D–F–G–I = 21 días (holgura 1)
  • A–D–H–I = 21 días (holgura 1)
  • A–C–F–G–I = 17 días (holgura 5)

d) ¿Qué pasa si F tarda 4 días (en vez de 2)?

Recalculando con F = 4:

ActDurPredecesoresESEFLSLFHolgura
A101010
B4A15261
C3A14584
D7A18180
E6B5116121
F4C, D8128120
G7E, F121912190
H9D81710192
I4G, H192319230
  • Nueva duración total del proyecto: 23 días (se alarga 1 día).
  • Nueva ruta crítica: A → D → F → G → I (todas con holgura 0).

Si quieres, puedo entregarte el mismo resultado en una hoja de cálculo o dibujar el diagrama en un gráfico de nodos tipo AON.

Поделиться этим Q&A