Решение: Минимальное время процессов
В файле содержится информация о совокупности $N$ вычислительных процессов, которые могут выполняться параллельно или последовательно. Процесс $B$ зависит от процесса $A$, если для выполнения процесса $B$ необходимы результаты выполнения процесса $A$. В этом случае процессы могут выполняться только последовательно.
Информация о процессах представлена в файле в виде таблицы. В первом столбце таблицы указан идентификатор процесса (ID), во втором столбце — время его выполнения в миллисекундах, в третьем столбце перечислены с разделителем «;» ID процессов, от которых зависит данный процесс. Если процесс является независимым, в таблице указано значение 0.
Определите минимальное время, через которое завершится выполнение всей совокупности процессов, при условии, что все независимые друг от друга процессы могут выполняться параллельно. Для выполнения задания используйте данные из прилагаемого файла.
Ответ укажите в миллисекундах.
Решение по шагам
3 шагаПредставим процессы в виде ориентированного графа: из каждого процесса идут рёбра к процессам, которые зависят от его результата.
Для независимого процесса время завершения равно его длительности. Для каждого зависимого процесса время начала определяется максимальным временем завершения всех его предшественников.
$$T_i = t_i + \max_{j \in P_i} T_j$$Вычисляя времена завершения процессов по данным из файла, получаем максимальное время завершения всей совокупности процессов.
$$T_{\max} = 47$$Где здесь ошибаются
Складывают времена всех процессов, хотя независимые процессы выполняются параллельно.
Берут минимум вместо максимума среди времён завершения предшествующих процессов.
Не учитывают цепочку зависимостей через промежуточные процессы.