Решение: Минимальное время процессов
В файле содержится информация о совокупности $N$ вычислительных процессов, которые могут выполняться параллельно или последовательно. Процесс $B$ зависит от процесса $A$, если для выполнения процесса $B$ необходимы результаты выполнения процесса $A$. Информация о процессах представлена в таблице: для каждого процесса указаны его идентификатор, время выполнения в миллисекундах и идентификаторы процессов, от которых он зависит. Если процесс независим, указано значение 0. Определите минимальное время, через которое завершится выполнение всей совокупности процессов, если все независимые друг от друга процессы могут выполняться параллельно. Для решения используйте данные из прилагаемого файла.
Решение по шагам
4 шагаПредставим процессы в виде ориентированного графа: ребро направлено от процесса-предшественника к зависящему от него процессу.
Для независимого процесса время завершения равно его времени выполнения. Для остальных процессов сначала определяем момент, когда завершены все их предшественники.
Время завершения процесса вычисляется как сумма его времени выполнения и максимального времени завершения среди процессов, от которых он зависит: $T_i = t_i + \max(T_j)$.
Последовательно вычисляя времена завершения по данным файла, получаем максимальное время окончания всей совокупности процессов: 213 мс.
Где здесь ошибаются
Складывают времена всех процессов, хотя независимые процессы выполняются параллельно.
Для процесса с несколькими предшественниками берут сумму, а не максимальное время их завершения.
Не учитывают время выполнения последнего процесса после завершения его зависимостей.