Алгоритмы на графах Топологическая сортировка поиском в глубину Югов Иван Олегович МОУ Гимназия 10, г. Тверь.

Презентация:



Advertisements
Похожие презентации
Алгоритмы на графах Топологическая сортировка отсечением вершин Югов Иван Олегович МОУ Гимназия 10, г. Тверь.
Advertisements

Алгоритмы на графах Определение наличия циклов в графе Югов Иван Олегович МОУ Гимназия 10, г. Тверь.
Теория графов Основные определения. Задание графов Графический способ – Привести пример графического задания графа, состоящего из вершин А, В и С, связанных.
Задача о максимальном потоке в сети Алгоритм Фалкерсона-Форда.
Алгоритмы на графах. Задача о максимальном потоке в сетях Требуется от источника к стоку передать максимальное количество энергии. В условиях задачи о.
Графы Лекция 2. Графы Неориентированным графом (графом) называется тройка (V, E, ), где V и E конечные множества и {X V : | X | = 2}. Ориентированным.
Алгоритмы на графах Волновой метод. Постановка задачи Постановка задачи. Пусть G – неориентированный связный граф, а и b – две его вершины. Требуется.
Разнообразие задач обработки информации Поиск информации.
Теория графов Основные определения. Дуга Пусть имеется множество вершин V={V 1,V 2,…,V n } и пусть на нем задано бинарное отношение Г V×V, – V i Г V j.
П резентация темы «решение задач с параметрами в итоговом повторении курса алгебры.» Разработано учителем математики гимназии 22 Захарьян А. А.
Дерево это связный ациклический граф. Связность означает наличие путей между любой парой вершин, ацикличность отсутствие циклов и то, что между парами.
Домашнее задание «Применение графа» ВСПОМНИМ… Граф Простейшая модель системы.Отображает элементарный состав системы и структуру связей Сеть Граф с возможностью.
1 Комбинаторные алгоритмы Задача о k-центрах. 2 Метрическая задача o k центрах Дано: Полный граф G = (V, E), стоимости ребер cost: E Q + такие, что для.
Графы Степень вершины Подсчет числа ребер графа. Разминка… Вставьте недостающие слова в предложения (граф, титул, ребро, вершина) Всем известно, что слово.
Апрель - май 2011 г. Выполнил : Шамов Сергей Ученик 11 б класса МОУ ФСОШ 2 « с углубленным изучение отдельных предметов » Апрель - май 2011 г. Задания.
1 Как измерить информацию? Вопрос: «Как измерить информацию?» очень непростой. Ответ на него зависит от того, что понимать под информацией. Но поскольку.
Теория графов Основные определения. Дуга Пусть имеется множество вершин V={V 1,V 2,…,V n } и пусть на нем задано бинарное отношение Г V×V, – V i Г V j.
Графы Волновой метод. Задание графов Пусть граф задан графически. Составить матрицу смежности и матрицу инцидентности для этого графа
Алгоритм как модель деятельности. Алгоритм – это последовательность действий конкретному исполнителю, расположенных в строго определенном порядке, для.
Раскраски графов Раскраска вершин Пусть Г (V,E,Ф) – граф, раскраска вершин Г в n цветов – отображение f : V {1,2,…,n } Правильная раскраска вершин графа.
Транксрипт:

Алгоритмы на графах Топологическая сортировка поиском в глубину Югов Иван Олегович МОУ Гимназия 10, г. Тверь

Домашнее задание Предприятие «Авто-2010» выпускает двигатели известных во всём мире автомобилей. Двигатель состоит ровно из n деталей, пронумерованных от 1 до n, при этом деталь с номером i изготавливается за p i секунд. Специфика предприятия «Авто- 2010» заключается в том, что там одновременно может изготавливаться лишь одна деталь двигателя. Для производства некоторых деталей необходимо иметь предварительно изготовленный набор других деталей. Генеральный директор «Авто-2010» поставил перед предприятием амбициозную задачу за наименьшее время изготовить деталь с номером 1, чтобы представить её на выставке. Требуется написать программу, которая по заданным зависимостям порядка производства между деталями найдёт наименьшее время, за которое можно произвести деталь с номером 1.

Домашнее задание Первая строка входного файла details.in содержит число n (1 n ) количество деталей двигателя. Вторая строка содержит n натуральных чисел p 1, p 2, …, p n, определяющих время изготовления каждой детали в секундах. Время для изготовления каждой детали не превосходит 10 9 секунд. Каждая из последующих n строк входного файла описывает характеристики производства деталей. Здесь i -я строка содержит число деталей k i, которые требуются для производства детали с номером i, а также их номера. Сумма всех чисел k i не превосходит Известно, что не существует циклических зависимостей в производстве деталей. В первой строке выходного файла details.out должны содержаться два числа: минимальное время ( в секундах), необходимое для скорейшего производства детали с номером 1 и число k деталей, которые необходимы для этого производства. Во второй строке требуется вывести через пробел k чисел номера деталей в том порядке, в котором их следует производить для скорейшего производства детали с номером 1. Ограничение по времени 2 сек. Ограничение по памяти 64 Мб.

Домашнее задание details.indetails.out

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

Топологическая сортировка

Почему так происходит? Не бывает рёбер из вершин, которые были покинуты раньше, в вершины, которые были покинуты позже. Как это доказать? Предположим, что это не так. Пусть имеются вершины A и B, причём в процессе DFS вершина A была покинута раньше, чем вершина B. Пусть теперь существует ребро из A в B.

Топологическая сортировка Рассмотрим момент времени, когда мы покидаем A (но ещё не покинули B). Два случая: 1) 1) Покидаем A и ещё не посещали B. 2) 2) Покидаем A и посетили B. Однако: 1) Из чёрной вершины в белую не бывает рёбер. 2) Есть серый путь из B в A, что с ребром из A в B даёт цикл, но граф ациклический.

Топологическая сортировка Альтернативное начало фиктивная вершина. 0

Топологическая сортировка Если оказалось, что граф содержит циклы: как будет вести себя алгоритм топологической сортировки отсечением вершин? как будет вести себя алгоритм топологической сортировки поиском в глубину?

Домашнее задание Какое максимальное количество рёбер может быть в ориентированном ациклическом графе с n вершинами? Может ли быть так, что правильным результатом топологической сортировки графа оказывается любой порядок его вершин? Решить задачу о производстве деталей с помощью DFS Как использовать топологическую сортировку для определения наличия циклов в графе?

Источники Курс «Базовые алгоритмы для школьников» (Станкевич А. С., Абакумов К. В., Мухачёва М. А.) «Интернет-университет информационных технологий»