Шешімі: Минимальное время процессов
В файле содержится информация о совокупности $N$ вычислительных процессов, которые могут выполняться параллельно или последовательно. Процесс $B$ зависит от процесса $A$, если для выполнения процесса $B$ необходимы результаты выполнения процесса $A$. Информация о процессах представлена в виде таблицы: в первой строке указан идентификатор процесса, во второй — время его выполнения в миллисекундах, в третьей — через разделитель «;» перечислены идентификаторы процессов, от которых зависит данный процесс. Если процесс независим, указано значение 0. Используя данные из прилагаемого файла, определите минимальное время, через которое завершится выполнение всей совокупности процессов, если все независимые друг от друга процессы могут выполняться параллельно.
Типовой пример организации данных в условии имеет иллюстративный характер. Для решения используйте данные из прилагаемого файла.
Шешім по шагам
3 қадамПредставим процессы вершинами ориентированного графа, а зависимости — рёбрами от предшествующего процесса к последующему.
Для каждого процесса вычислим время его наиболее раннего завершения. Для независимого процесса оно равно его длительности; для остальных к максимальному времени завершения зависимостей прибавляется длительность текущего процесса.
$$T(B)=\max_{A\in Dependencies(B)} T(A)+t_B$$Выполним расчёт по данным прилагаемого файла и выберем наибольшее время завершения среди всех процессов, поскольку совокупность завершается после окончания последнего процесса.
$$T_{\text{общ}}=\max_B T(B)=151$$Где здесь ошибаются
Складывают времена всех процессов, хотя независимые процессы выполняются параллельно.
Для процесса с несколькими зависимостями выбирают минимальное, а не максимальное время завершения предшественников.
Не учитывают время выполнения самого текущего процесса.