Секреты 22 задания ЕГЭ: мастер-класс по управлению временем и процессами в электронных таблицах для начинающих

Комплексное руководство по решению задач на многопоточные вычисления с использованием Excel и LibreOffice. Мы разберем теорию зависимостей на простых примерах и освоим безотказный алгоритм вычислений.

1. Что такое параллельные процессы: строим дом и готовим завтрак (суть задания 22)

Что такое параллельные процессы: строим дом и готовим завтрак (суть задания 22)

Представьте, что вы решили приготовить сложный завтрак: сварить кофе, поджарить тосты и сделать омлет. Вы не стоите покорно перед кофеваркой все три минуты, пока она шумит, чтобы только потом начать разбивать яйца. Пока течет кофе, вы уже закидываете хлеб в тостер. Эти действия происходят одновременно, или, говоря языком информатики, параллельно. Однако вы не можете переложить омлет на тарелку, пока сама тарелка не будет вымыта. Значит, процесс «завтрак на столе» зависит от завершения процесса «мытье посуды». Именно на этом балансе между возможностью делать что-то одновременно и необходимостью ждать соседа строится задание 22 ЕГЭ по информатике.

Многие ученики пугаются этой задачи, видя огромную таблицу с идентификаторами и непонятными нулями. На самом деле, перед нами классическая задача менеджмента: как распределить ресурсы и время так, чтобы проект (будь то завтрак, сборка сервера или строительство космодрома) завершился как можно скорее.

Анатомия зависимостей: почему нельзя просто сложить все числа

В основе задания 22 лежит концепция многопоточности и управления процессами. В реальном компьютере процессор выполняет тысячи задач одновременно, но некоторые из них жестко связаны друг с другом.

Рассмотрим три типа связей, которые встречаются в жизни и в задачах:

  • Независимые процессы. Это идеальная ситуация. Процесс (варится кофе) и процесс (загружается обновление на телефоне) никак не связаны. Если у нас есть «два исполнителя» (две руки или два ядра процессора), они закончатся ровно за то время, которое требуется самому долгому из них. Если кофе варится 5 минут, а обновление идет 2 минуты, то через 5 минут всё будет готово.
  • Последовательные процессы. Процесс не может начаться, пока не завершится процесс . Например, нельзя покрасить стену (), пока она не возведена (). Здесь время суммируется: .
  • Смешанные зависимости. Это то, что мы видим в ЕГЭ. Процесс может начаться только тогда, когда завершатся процессы и . Это критически важный момент: если длится 10 секунд, а — 40 секунд, то процесс будет ждать целых 40 секунд. Он не может «начаться наполовину».
  • > Ключевой инсайт: Общее время выполнения группы зависимых процессов определяется не суммой их длительностей, а самым длинным «путем» от начала первого процесса до завершения последнего.

    В терминах теории графов это называется «критическим путем». Если мы задержим процесс на критическом пути хотя бы на секунду, весь проект сдвинется. Если же мы задержим второстепенный процесс (который и так заканчивается раньше, чем его «соседи», необходимые для старта следующего этапа), общее время может и не измениться.

    Структура данных в задании 22

    В типовом файле ЕГЭ нам дают таблицу из трех столбцов:

  • ID процесса — уникальный номер задачи.
  • Время выполнения (в миллисекундах или условных единицах).
  • ID зависимых процессов — номера задач, которые должны завершиться, прежде чем текущая задача сможет стартовать. Если там стоит «0», процесс независимый и может стартовать в момент времени .
  • Главная сложность для новичка — визуализировать эту цепочку. Когда процессов 12 или 15, рисовать стрелочки на бумаге становится утомительно и велик риск ошибиться. Именно поэтому мы используем мощь электронных таблиц.

    Алгоритм «Динамического ожидания» в Excel/LibreOffice

    Чтобы решить задачу быстро и без ошибок, мы применим метод, который программисты называют динамическим программированием, но адаптированный под таблицы. Мы будем вычислять «время завершения» для каждого процесса по очереди.

    Шаг 1: Подготовка и импорт данных

    При открытии файла в Excel данные в третьем столбце часто записаны через точку с запятой (например, 1; 2; 5). Это неудобно для формул. Первое правило: Нам нужно разнести эти ID по разным ячейкам. В Excel для этого есть инструмент «Данные» -> «Текст по столбцам». В качестве разделителя выбираем точку с запятой. Теперь каждый зависимый ID живет в своем «домике».

    Шаг 2: Создание расчетного столбца

    Рядом с основной таблицей мы создаем новый столбец — «Время окончания процесса». Пусть время выполнения процесса находится в ячейке . Если процесс ни от чего не зависит (в столбце зависимостей 0), то время его окончания равно времени выполнения: . Если процесс зависит от процесса , то время его окончания составит:

    Где — это время, когда завершился процесс .

    Но что если зависимостей несколько? Например, процесс 5 зависит от процессов 2 и 3. Тогда он сможет начаться только тогда, когда закончатся оба. Значит, он ждет того, кто дольше работает:

    Шаг 3: Автоматизация через ВПР (VLOOKUP)

    Руками искать время окончания процесса №3 в таблице из 20 строк — верный способ пропустить строчку. Мы заставим компьютер делать это за нас.

    Функция ВПР (или VLOOKUP) работает как справочное бюро. Мы говорим ей: «Найди мне строку с ID = 3 и скажи, какое время окончания у нас там получилось».

    Синтаксис функции: =ВПР(искомое_значение; таблица; номер_столбца; [интервальный_просмотр])

  • Искомое значение: ID процесса, который мы ждем (берем из столбца зависимостей).
  • Таблица: Вся наша расчетная таблица (важно закрепить её знаками AEAFAF0 + 4 = 40 + 3 = 34 (\text{ожидание}) + 2 (\text{работа}) = 66 + 7 = 136 + 8 = 1414 + 5 = 19AF$13. Если вы напишете A2:F13, то при перетаскивании вниз во второй строке поиск будет идти по A3:F14, и первый процесс просто «выпадет» из поля зрения программы.
  • Ошибка №2: Игнорирование «нулевого» процесса

    Если в данных есть зависимости от ID 0, а вы не создали в таблице строку с ID 0, функция ВПР вернет ошибку #Н/Д. Лайфхак:* Просто добавьте в самом верху (над данными) пустую строку. В колонку ID поставьте 0, в колонку времени окончания — 0. Теперь ВПР будет работать идеально.

    Ошибка №3: Путаница между «временем начала» и «временем окончания»

    Часто ученики находят время, когда процесс может начаться, и забывают прибавить его собственную длительность. Помните:* Результат в ячейке должен отвечать на вопрос «В какой момент этот процесс полностью готов?».

    Ошибка №4: Несколько зависимостей в одной ячейке

    Если в файле написано 1; 2; 3 в одной ячейке, Excel воспримет это как текст. ВПР не сможет найти ID «1; 2; 3», потому что такого ID не существует (есть только 1, 2 и 3 по отдельности). Решение:* Обязательно используйте «Текст по столбцам» перед началом расчетов.

    Нюансы: Определение количества процессов, выполняемых одновременно

    Иногда в задании 22 спрашивают не общее время, а нечто более хитрое: «Какое максимальное количество процессов выполнялось одновременно в течение 1 мс?».

    Здесь алгоритм с ВПР — это только половина дела. Получив время начала и время окончания каждого процесса, нам нужно построить «диаграмму Ганта» или воспользоваться методом интервалов.

    Пример логики: У нас есть процесс P1 (время 0–4 мс) и P2 (время 0–3 мс). * В интервале [0; 1] работают оба. * В интервале [1; 2] работают оба. * В интервале [2; 3] работают оба. * В интервале [3; 4] работает только P1.

    Чтобы решить это в таблице для большого количества данных:

  • Создайте «временную шкалу» в заголовках столбцов справа (1, 2, 3, 4, 5... до макс. времени).
  • Для каждой строки процесса напишите формулу: «Если текущее время (из заголовка) больше времени начала процесса И меньше или равно времени окончания, то поставить 1, иначе 0».
  • Внизу каждого столбца (каждой миллисекунды) просуммируйте эти единицы.
  • Максимум среди этих сумм и будет ответом.
  • Формула может выглядеть так: =ЕСЛИ(И(время_текущее > время_начала; время_текущее <= время_окончания); 1; 0).

    Граничные случаи: "Процесс с нулевой длительностью"

    В некоторых усложненных задачах встречаются процессы, которые длятся 0 мс. С точки зрения логики это «логические узлы». Они не занимают времени, но служат «воротами»: пока они не «пройдены» (все входящие в них процессы не завершены), следующие задачи не начнутся. В нашей табличной модели они обрабатываются точно так же: ВПР найдет максимум от предшественников и прибавит 0. Ничего менять в формуле не нужно, система устойчива к таким данным.

    Почему Excel лучше ручного счета?

    На экзамене время — самый дорогой ресурс. Ручной расчет 12-15 процессов занимает около 5-7 минут и требует предельной концентрации. Ошибка в одной цифре в начале цепочки «убьет» весь результат. Использование таблиц дает:

  • Скорость: Написание формулы и её растягивание занимает 2 минуты.
  • Надежность: Если вы вдруг заметили, что неправильно переписали время одного процесса, вам не нужно пересчитывать всё. Исправьте одну ячейку — и вся таблица мгновенно обновится сама.
  • Масштабируемость: Этому методу все равно, 10 процессов перед ним или 1000.
  • За пределами ЕГЭ: Где это пригодится?

    Понимание параллельных процессов — это база для любого инженера или программиста. * В разработке игр: Пока видеокарта отрисовывает кадр, процессор обсчитывает физику полета пули и логику врагов. Это параллельные процессы. Если физика зависит от координат, которые еще не посчитаны — возникает «затык» (latency). * В строительстве: Вы не можете начать монтаж крыши, пока не застыл бетон армопояса. Время застывания бетона — это «время выполнения процесса», а возведение стен — «зависимый процесс». * В работе ОС: Ваш браузер, музыкальный плеер и антивирус делят между собой ядра процессора. Операционная система работает как гигантский диспетчер из задания 22, решая, кого запустить сейчас, а кто должен подождать.

    Финальное замыкание мысли

    Задание 22 — это не проверка вашего умения быстро складывать числа. Это проверка системного мышления. Умение видеть структуру в хаосе ID и зависимостей, способность автоматизировать рутину через ВПР и понимание того, что «самый медленный диктует условия» — вот настоящие навыки, которые проверяет эта задача.

    Когда вы смотрите на таблицу, не видите в ней сухие цифры. Представляйте стройку или кухню ресторана. Кто-то чистит картошку, кто-то режет мясо, но рагу не начнет тушиться, пока оба не закончат. Как только вы поймаете это ощущение «потока», задание 22 превратится из досадной преграды в легкие баллы, которые вы заберете за пару минут работы в Excel.