анализ критического пути - PullRequest
4 голосов
/ 08 мая 2009

Я пытаюсь написать программу для VB6 (для смеха), которая будет вычислять время события + критический путь, ПРОСТО ОСНОВАННЫЙ НА ТАБЛИЦЕ PRECEDENCE. Я хочу, чтобы мои ученики использовали его как механизм проверки, т.е. делать все без привлечения активности сети. Я счастлив, что могу сделать все это, как только у меня будет начало и конец мероприятия для каждого мероприятия. Как мне распределить события, не рисуя сеть. Все, что я придумаю, работает для конкретного примера, а затем не работает для другого. Мне нужен более общий алгоритм, и это сводит меня с ума. Помогите!

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

1 Ответ

5 голосов
/ 08 мая 2009

Хорошо, у вас есть таблица приоритетов, которую я считаю таблицей пар вроде

A & rarr; В
B & rarr; C

и т. Д. Для деятельности {A, B, C}. Каждое из действий также имеет продолжительность и (возможно) распределение по продолжительности, так что вы знаете, что A занимает 3 дня, B занимает 2 дня и так далее. Это будет интерпретироваться как «A должен быть закончен до B, который должен быть закончен до C».

правый

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...