Навигация по странице
Определение
Диаграмма Ганта — это инструмент для визуализации рабочих процессов, который представляет собой графическое отображение плана проекта в виде горизонтальных полос, каждая из которых соответствует определённой задаче или этапу проекта.
Впервые она была разработана Генри Гантом в начале 20 века и с тех пор стала одним из самых популярных методов планирования и управления временем (time management).
Диаграмма Ганта имеет следующую структуру:
- Ось X представляет временную шкалу (например, миллисекунды, часы, дни и т.д.).
- Ось Y — список задач или этапов проекта.
- Горизонтальные полосы на диаграмме показывают продолжительность каждой задачи. Начало полосы указывает на старт задачи, а конец — на её завершение.
- Связи между задачами (зависимости) могут быть отображены в виде стрелок, показывающих, какие задачи зависят от завершения других.
Активно применяют данную диаграмму в сфере информационных технологий, в маркетинге, в организации и планировании мероприятий, научных исследований и так далее. Также, она может применяться для решения заданий 22 в ЕГЭ по информатике.
Диаграмма Ганта в ЕГЭ
В задании 22 ЕГЭ по информатике диаграмма Ганта используется для построения цепочки взаимозависимых процессов и поиска максимальной продолжительности отрезка, в течение которого возможно выполнение максимального количества процессов. Обычно здесь даётся некая совокупность процессов, которые могут выполняться параллельно или последовательно. При этом есть процессы B, для выполнения которых нужно, чтобы были уже выполнены некоторые другие процессы A. То есть такие процессы B будут зависимыми от процессов A.
Всего на данный момент существуют 3 типа задания 22, которые отличаются в следующих формулировках:
- Все независимые друг от друга процессы могут выполняться параллельно;
- Все независимые друг от друга процессы могут выполняться параллельно, а время завершения работы каждого процесса минимально;
- Все независимые друг от друга процессы могут выполняться параллельно, а время завершения работы всех процессов минимально
Теперь давайте разберемся, как различия в этих формулировках влияют на решение.
В первом случае, если процессы не зависят друг от друга, то мы можем сдвигать их по диаграмме как угодно.
Во втором случае, время завершения каждого процесса должно быть минимально. Следовательно, как-либо двигать процессы здесь мы не можем, так как тогда увеличится время завершения процессов, что противоречит условию.
Третий случай означает некую середину между первым и вторым. Здесь мы можем двигать процессы, но не далее срока завершения самого последнего процесса. То есть именно последний процесс определяет максимальное время работы всех остальных, и если мы попробуем подвинуть какой-либо процесс дальше последнего, то увеличим время завершения работы всех процессов, что, опять же, будет противоречить условию.
Иными словами, если у нас самый поздний (самый правый на диаграмме Ганта) процесс длится до 20 миллисекунды, то можно представить, что после него стоит некая «стена», дальше которой мы ничего уже не можем сдвинуть. То есть ни один процесс не может закончиться позже 20 миллисекунды.
Алгоритм построения диаграммы Ганта
Шаг 1
Для начала следует скачать и открыть файл таблицы в Excel.
Таблицы в задании 22 все типовые и содержат 3 столбца:
- В первом указывается идентификатор процесса B;
- Во втором — время выполнения этого процесса;
- В третьем столбце перечислены через разделитель «;» идентификаторы процессов А, от которых зависит текущий процесс (тот, который указан в первом столбце). Если же процесс является независимым, то в третьем столбце таблицы указывается значение «0».
Например, в данной задаче первый и второй процесс являются независимыми. Третий же процесс зависит от двух процессов — первого и второго. А четвёртый процесс зависит только от одного — от третьего.
Далее для удобства можно уменьшить ширину столбцов и добавить выделение границ. Также названия первых трёх столбцов можно удалить или заменить на нули. С ними мы больше не будем работать.
Шаг 2
Как вы уже заметили, некоторые процессы зависят сразу от нескольких других. Такие зависимости перечислены в третьем столбце через знак «;». Нам необходимо разделить данные по столбцам так, чтобы каждое значение зависимости было в отдельном столбце.
Для этого переходим в меню «Данные» и выбираем пункт «Текст по столбцам». Данная функция позволяет разделять значения одного столбца по несколькими другим в зависимости от выбранных параметров.
В открывшемся меню выбираем пункт «С разделителями» и указываем, что символом-разделителем является точка с запятой.
Для удобства выделим получившиеся столбцы с информацией о зависимостях голубым цветом.
Шаг 3
При помощи функции ВПР()
перенесём данные о длительности зависимостей каждого процесса. В ячейке E2
прописываем формулу: =ВПР(C2;$A:$H;8;0)
Растягиваем формулу на диапазон E2:F13
. На данный момент ячейки будут заполнены нулями.
Также изменим цвет заливки этих ячеек на красный.
Шаг 4
Выделим еще два столбца зеленым цветом. В них мы позже отметим время начала и окончания выполнения каждого процесса.
Еще один столбец выделим жёлтым цветом и заполним вручную нулями. Этот столбец понадобится при работе с диаграммой Ганта для смещения времени начала работы каждого процесса.
Шаг 5
Вернёмся к зеленым столбцам. В них нужно посчитать время начала и окончания процесса.
Для вычисления времени окончания нам необходимо сложить длительность самого процесса B (из второго столбца) и максимальную длительность процесса A, от которого зависит наш процесс. Для вычисления максимальной длительности будем использовать формулу МАКС()
, аргументами которой выступят ячейки столбцов E
и F
.
Ко всему прочему ко времени окончания процесса нам еще необходимо добавить значение из жёлтого столбца (I
), что позволит нам в дальнейшем запустить процесс позднее первой секунды, таким образом сдвигая его по диаграмме.
Итоговая формула в ячейке H2
выглядит следующим образом: =B2+МАКС(E2:F2)+I2
.
Её необходимо растянуть на весь столбец H
нашей диаграммы. В данном примере мы растянем формулу до ячейки H13
.
Шаг 6
На этом шаге нам предстоит определить время начала каждого процесса.
Здесь формула несколько легче, чем в прошлом шаге. Время начала работы текущего процесса определяется следующим образом: из времени окончания работы процесса (столбец H
) необходимо вычесть длительность его работы (столбец B
), а также прибавить единицу, чтобы все наши процессы были корректно расположены на временной оси, которая начинается с 1.
Шаг 7
Теперь добавим временную ось сверху нашей диаграммы Ганта. Для этого в первой строке, начиная со столбца J
введем значения времени от 1 и до максимального значения в столбце H
(здесь — от 1 до 35).
Шаг 8
Напишем формулу для заполнения диаграммы Ганта.
Если значение на диаграмме попадает на отрезок времени начала и окончания работы процесса, выставим значение «1», иначе ничего не будем выводить.
Формула в ячейке J2
: =ЕСЛИ(И($G2<=J$1;J$1<=$H2);1;"")
Растягиваем формулу с ячейки J2
на весь диапазон времени работы процессов.
В данном примере формула растягивается на следующий диапазон — J2:AM13
.
На данном этапе уже можно сказать, что диаграмма Ганта построена. Однако, для удобства восприятия добавим выделение ячеек, относящихся к работающим процессам (со значением 1 в диапазоне от J2
до AM13
)
Шаг 9
Чтобы выделить цветом ячейки процессов перейдём на вкладке «Главная» в меню «Условное форматирование». Выберем пункт «Правила выделения ячеек», затем пункт «Равно…»
В открывшемся окне вводим значение «1» в поле слева.
Шаг 10
Чтобы определить, сколько процессов работают одновременно, посчитаем, сколько единиц в каждом столбце. Формула в ячейке J14
: =СУММ(J2:J13)
.
Формулу растягиваем вправо до конца нашей диаграммы.
Также через условное форматирование можно выделить цветом требуемое количество процессов в строке 14. Алгоритм аналогичный описанному в шаге 9.
На этом построение диаграммы Ганта завершено, однако для решения задания 22 нам необходимо еще провести её анализ, который и позволит получить верный ответ.