На рисунке представлена схема выполнения процесса некоторой системы. Определите минимальное время работы системы, то есть время с момента начала процесса 1 и до окончания выполнения процесса 9. Известно, что процесс 9 выполнение 5 секунд. Процессы являются зависимомы, то есть процесс 2 зависит от процесса 1, если для выполнения процесса 2 необходимы результаты выполнения процесса 1
Не могу увидеть изображение схемы. Пришлите, пожалуйста, саму картинку или опишите текстово зависимости между процессами (какие процессы зависят от каких) и продолжительности каждого процесса (особенно т. н. durations t1, t2, ..., t9, а для 9 известно t9 = 5 секунд). Тогда дам точный численный ответ.
Пока что могу показать, как правильно посчитать минимальное время работы от начала процесса 1 до конца процесса 9 (критический путь), чтобы вы сами могли подставить данные из вашей схемы.
Как посчитать минимальное время (путь критический) в DAG процессов
- Что нужно знать: для каждого процесса i есть длительность t_i и список предшественников (кто должен завершиться перед началом i). Обозначим ребро j -> i, если i зависит от j.
- Шаг 1. Пронумеруйте процессы по порядку зависимостей (желательно топологический порядок).
Установите начальное время старта для процесса 1: ES(1) = 0.
EF(1) = ES(1) + t1 = t1.
- Шаг 2. Для каждого процесса i в топологическом порядке найдите:
- ES(i) = max EF(p) по всем предшественникам p процесса i. Если у i нет предшественников, то ES(i) = 0.
- EF(i) = ES(i) + t_i.
Это даст время окончания каждого процесса при оптимально параллельном исполнении (в рамках зависимостей).
- Шаг 3. Ответ. Миньмальное время от начала процесса 1 до окончания процесса 9 равно EF(9) (если 9 — финальный узел без зависимостей, либо просто время окончания 9 независимо от последующих задач). Важно: это именно сумма на длиннейшем по времени пути из 1 в 9, учитывая зависимости.
Полезная заметка:
- Если существуют параллельные ветви, но 9 зависит от нескольких ветвей, длительность будет равна времени самой длинной ветви, которая ведёт к 9 (когда все необходимые predecessors завершатся к моменту начала 9).
- Пример формулы для конкретной схемы: EF(9) = max(EF(pred1), EF(pred2), ..., EF(predk)) + t9, где pred1..predk — прямые предшественники 9.
Пример с воображаемой архитектурой (чтобы увидеть процесс на практике)
- Допустим зависимости:
2 зависит от 1; 3 зависит от 1; 4 зависит от 2 и 3; 5 зависит от 4; 6 зависит от 4; 7 зависит от 5; 8 зависит от 6; 9 зависит от 7 и 8.
- Пусть длительности: t1 = a, t2 = b, t3 = c, t4 = d, t5 = e, t6 = f, t7 = g, t8 = h, t9 = 5.
- Расчёт:
- ES(1) = 0; EF(1) = a.
- ES(2) = EF(1) = a; EF(2) = a + b.
- ES(3) = EF(1) = a; EF(3) = a + c.
- ES(4) = max(EF(2), EF(3)) = max(a+b, a+c); EF(4) = max(a+b, a+c) + d.
- ES(5) = EF(4); EF(5) = EF(4) + e.
- ES(6) = EF(4); EF(6) = EF(4) + f.
- ES(7) = EF(5); EF(7) = EF(5) + g.
- ES(8) = EF(6); EF(8) = EF(6) + h.
- ES(9) = max(EF(7), EF(8)); EF(9) = ES(9) + 5.
Итог: EF(9) — это искомое минимальное время от начала 1 до конца 9.
Что мне нужно от вас
- Присылайте сами зависимости (для каждого i перечислите, какие процессы должны завершиться до начала i) и длительности каждого i (t1 … t9), особенно t9 = 5 уже дано.
- Либо просто приложите изображение — я по нему посчитаю точное EF(9) и дам ответ.
Если хотите, могу сразу привести расчет для вашего конкретного рисунка, как только вы пришлете данные.