Имеется сетевой график с длительностями работ, указанными в таблице. изобразить

внешний вид этого сетевого графика, выполнить расчет его временных параметров двумя разработать программу вывода на экран сетевого графика, расчета его

параметров табличным и определения критического пути.​

RomZo1 RomZo1    1   18.12.2019 14:10    7

Ответы
polina030502 polina030502  16.01.2024 18:19
Добрый день, я буду выступать в роли школьного учителя и помогу вам разобраться с этим вопросом.

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

Теперь перейдем к построению внешнего вида сетевого графика. Воспользуемся методом связанных графов. Для каждой задачи создадим вершину, а для связей между задачами - ребра.

Приведу пример таблицы с длительностями работ:

| Задача | Длительность |
| ------ | ------------ |
| A | 5 |
| B | 3 |
| C | 6 |
| D | 2 |
| E | 4 |
| F | 4 |
| G | 5 |
| H | 2 |
| I | 3 |

Сначала нарисуем все вершины (задачи) в виде узлов, обозначим их буквами A, B, C, и так далее, соответствующими задачам из таблицы.

A
|
|
|
|
|
|
|
|
V

Теперь соединим задачи ребрами в соответствии с логикой выполнения работ и указанными связями в таблице.

A
/ \
/ \
B D
\ / \
\ / \
C E
/ \ /
F G /
\ /
H
|
|
|
|
|
|
|
V

Таким образом, мы получили внешний вид сетевого графика.

Теперь перейдем к расчету временных параметров. Временные параметры сетевого графика включают в себя начальное и конечное события (Task Time), ранний и поздний сроки наступления событий (Earliest and Latest Start Time) и резерв времени (Slack Time).

Для расчета временных параметров нам понадобятся следующие понятия:
- Предшественник (Predecessor) - задача, которая должна быть выполнена перед текущей задачей.
- Преемник (Successor) - задача, которая должна быть выполнена после текущей задачи.
- Время выполнения (Duration) - указанное в таблице время, необходимое для выполнения задачи.

1. Начальное и конечное события (Task Time):
- Начальное событие - это первая задача без предшественников. В нашем случае начальным событием будет задача A.
- Конечное событие - это последняя задача без преемников. В нашем случае конечным событием будет задача I.

2. Ранний и поздний сроки наступления событий (Earliest and Latest Start Time):
- Ранний срок наступления (Earliest Start Time) - это раннее время начала выполнения задачи. Начальному событию присваивается время 0. Для остальных задач рассчитывается сумма ранних сроков наступления и времени выполнения всех предшественников.
- Поздний срок наступления (Latest Start Time) - это позднее время начала выполнения задачи без влияния на весь проект. Поздний срок наступления рассчитывается через вычитание минимального резерва времени из конечного события и времени выполнения всех предшественников.

3. Резерв времени (Slack Time):
- Резерв времени - это разница между поздним и ранним сроком наступления. Он позволяет определить гибкость проектного графика и узнать, насколько задача может задерживаться без влияния на весь проект.

Для расчета всех этих параметров можно воспользоваться программой таблицей Excel или другой программой для работы с таблицами.

Например, таблица для расчетов временных параметров может выглядеть следующим образом:

| Задача | Длит. | Предшественники | Ранний старт | Поздний старт | Резерв времени |
| ------ | ----- | -------------- | ------------ | ------------- | -------------- |
| A | 5 | | 0 | | |
| B | 3 | A | | | |
| C | 6 | A | | | |
| D | 2 | B, C | | | |
| E | 4 | C | | | |
| F | 4 | D | | | |
| G | 5 | D | | | |
| H | 2 | F, G | | | |
| I | 3 | H | | | |

Теперь воспользуемся алгоритмом расчета временных параметров:

1. Ранний старт задач:
- Начальному событию (задаче A) присваивается время 0.
- Для каждой задачи рассчитываем сумму ранних сроков наступления и времени выполнения всех предшественников. Например, для задачи B: ранний старт = ранний старт предшественника (задачи A) + временя выполнения предшественника (задача A) = 0 + 5 = 5.
- Продолжаем расчеты для остальных задач. Для задачи C: ранний старт = ... = 5; для задачи D: ранний старт = ... = 11; для задачи E: ранний старт = ... = 11; для задачи F: ранний старт = ... = 13; для задачи G: ранний старт = ... = 13; для задачи H: ранний старт = ... = 17; для задачи I: ранний старт = ... = 19.

2. Поздний старт задач:
- Конечному событию (задаче I) присваивается ранний старт. В нашем случае поздний старт задачи I равен 19.
- Для каждой задачи рассчитываем поздний старт, вычитая минимальный резерв времени из позднего старта конечного события. Например, для задачи H: поздний старт = поздний старт конечного события (задачи I) - минимальный резерв времени (0) = 19 - 0 = 19.
- Продолжаем расчеты для остальных задач. Для задачи G: поздний старт = ... = 14; для задачи F: поздний старт = ... = 12; для задачи E: поздний старт = ... = 11; для задачи D: поздний старт = ... = 9; для задачи C: поздний старт = ... = 5; для задачи B: поздний старт = ... = 5; для задачи A: поздний старт = ... = 0.

3. Резерв времени:
- Для каждой задачи рассчитываем резерв времени, вычитая ранний старт из позднего старта. Например, для задачи A: резерв времени = поздний старт - ранний старт = 0 - 0 = 0.
- Продолжаем расчеты для остальных задач. Для задачи B: резерв времени = ... = 0; для задачи C: резерв времени = ... = 0; для задачи D: резерв времени = ... = 2; для задачи E: резерв времени = ... = 0; для задачи F: резерв времени = ... = 1; для задачи G: резерв времени = ... = 1; для задачи H: резерв времени = ... = 2; для задачи I: резерв времени = ... = 0.

Таким образом, мы получили все временные параметры сетевого графика.

Вот программа для вывода на экран сетевого графика с использованием языка программирования Python:

```python
import networkx as nx
import matplotlib.pyplot as plt

# Создаем пустой граф
G = nx.DiGraph()

# Добавляем вершины
G.add_nodes_from(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'])

# Добавляем ребра
G.add_edges_from([('A', 'B'), ('A', 'C'), ('B', 'D'), ('C', 'D'), ('C', 'E'),
('D', 'F'), ('D', 'G'), ('F', 'H'), ('G', 'H'), ('H', 'I')])

# Отрисовываем граф
pos = nx.spring_layout(G, seed=7)
nx.draw_networkx(G, pos, with_labels=True, node_color='lightblue', node_size=800, font_size=12, font_color='black', font_weight='bold')
edge_labels = nx.get_edge_attributes(G, 'weight')
nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels)

plt.title("Сетевой график")
plt.axis('off')
plt.show()
```

Эта программа будет строить сетевой график на основе данных, указанных в коде. Вы можете переделать этот код, добавив в него данные из таблицы с длительностями работ.

Также для рассчета параметров сетевого графика можно воспользоваться программой Microsoft Project или любой другой программой, специализирующейся на планировании и управлении проектами.

Для определения критического пути - пути, имеющего минимальную продолжительность - нужно найти задачи с максимальной суммой ранних сроков наступления и временем выполнения. В нашем примере критический путь будет состоять из задач A, C, D, G, H и I, так как сумма их ранних сроков наступления и времен выполнения равна общей длительности проекта.

Ученик может использовать программу или программное обеспечение для решения подобных задач, либо повторить этот процесс вручную, следуя указанным шагам.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Другие предметы