3.Метод, основанный на технике нахождения критического пути.
Методы, рассмотренные в предыдущих разделах этой главы, применимы к совершенно произвольным графам. Но на практике задачу кратчайшего пути часто требуется решать для класса ориентированных ациклических графов. Такие графы возникают в методах PERT и методе критического пути (МКП).
Пусть в задаче требуется найти минимальное время, необходимое для реализации некоторого проекта. Т.е., нужно найти в графе самый длинный путь между вершиной s, изображающей начало, и вершиной t, изображающей завершение всех необходимых для реализации проекта работ. Самый длинный путь называется критическим путем, так как этапы, относящиеся к этому пути, определяют полное время реализации проекта, и всякая задержка с началом выполнения любого из этих этапов приведёт к задержке выполнения проекта в целом.
Сходство этой задачи с задачей о кратчайшем пути из s в t показано в [1],[8], и, следовательно, эту задачу можно решить, используя классический алгоритм Дейкстры из предыдущего раздела, заменив все операции min на max. Но этот алгоритм был бы слишком неэкономичным, так как он не учитывает специальной структуры графа. Можно сделать метод более экономичным, если упорядочить вершины графа (в произвольном бесконтурном графе вершины можно перенумеровать так, что каждая дуга будет иметь вид <vi ,vj >, где i<j [8]).
Можно применить другой алгоритм нахождения кратчайшего пути из s в t:
Пусть вершины перенумерованы так, как сказано выше. При этом начальная вершина получает номер 1, а конечная – номер n.
Присвоим вершине xj пометку l(xj), - равную длине самого короткого пути от 1 до xj, используя для этого соотношения:
l(xj)=min( l(xi)+ci,j)
где xi < xj , т.е. в соответствии с нумерацией графа вершины xi уже помечены в результате применения алгоритма.
Пометка l(n) равна длине самого короткого пути от 1 до n. Сами дуги, образующие путь, могут быть найдены обычным способом последовательного возвращения. Совершенно очевидно, что пометка l(xj) вершины xj даёт кратчайший путь из 1 в xj.
Рассмотренный алгоритм, как и алгоритм Дейкстры, может быть применён многократно – для различных отправных узлов. В данном алгоритме естественно использовать в их качестве истоки. В публикациях такой алгоритм не обнаружен, поэтому обсудим основные идеи.
Этап упорядочения орграфа необходимо выполнять для каждого истока, как и последующее собственно нахождение кратчайших путей от него до прочих узлов. Следует изучить возможность использования при новом упорядочении узлов предшествующей упорядоченности и возможную экономию времени.
Вероятно, большинству пользователей покажется обременительным “ручное” выявление истоков, тем более, что автоматическое – имеет сложность одного упорядочивания узлов. Поэтому, алгоритм начинается с выявления узлов-истоков, т.е. узлов не имеющих входных дуг. Эти узлы загружаются в стек для извлечения и применения вышеуказанным способом.
Member
Статус: Не в сети Регистрация: 01.12.2003 Откуда: Воронеж
VIP - Killer чувак тут сегодня 8 задач по яве дали и еще курсяк 2 штука писать так что извиняй и в пон если не сдам зачет то меня выгонят из нивера
теория графов конечно веселая штука но сдесь надо мозгом немного пошевелить
а в нете не пробовал искать
и еще книжку Вирта почитай
ПОМОГИТЕ ПЛЗ!
Такая проблема!
В программе используются видеоролики. Прога работает нормально, но как запускаю на компе без VB вылетает ошибка о MCI и ролики не хотят показываться. VB6
Чо делать?
Заранее благодарен
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения