ГРАФЫ ИХ ПРЕДСТАВЛЕНИЕ В STL u Отделение программной инженерии группа 271 ПИ Антонова Н. А.

Slides:



Advertisements
Similar presentations
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. HP CarePack registration.
Advertisements

Vectors, lists and queues
. STL: C++ Standard Library (continued). STL Iterators u Iterators are allow to traverse sequences u Methods  operator*  operator->  operator++, and.
Астрометрические каталоги К.В.Куимов, ГАИШ МГУ. Определение астрометрического каталога Астрометрический каталог – понятие неопределённое. Например, это.
Поиск оптимального набора параметров оптимизаций компилятора Брусенцов Леонид Евгеньевич студент 4 курса ФИТ НГУ Руководители:Илья.
Системы отбора. Условные обозначения (1) (2) (3) (4) (5) (6) (7) Математическое моделирование процессов отбора2.
Алгоритм приближённого join’а на потоках данных Выполнил : Юра Землянский, 445 группа Научный руководитель : Б.А. Новиков СПб, 2011 Санкт-Петербургский.
Елена Станиславовна Петрова Учитель-логопед высшей категории ГДОУ детский сад №47 комбинированного вида Фрунзенского района г. Санкт-Петербурга 2011 год.
M ULTIMEDIA Solomeshch Natalia. К ОДЕК Н.264 Т ЕРМИНЫ закодированный снимок порядковый номер счетчика снимка ссылочные снимки Макроблоки типа I Макроблоки.
Савенко Мария Олеговна, 361 группа Научный руководитель: старший преподаватель В.С.Полозов.
R1R2R3R4R5R6R7R1R2R3R4R5R6R7. Аксиома R 1. В пространстве существуют плоскости. В каждой плоскости пространства выполняются все аксиомы планиметрии.
Некомпенсаторное агрегирование и рейтингование студентов Авторы: Гончаров Алексей Александрович, Чистяков Вячеслав Васильевич. НФ ГУ ВШЭ 2010 год.
ПРИНЦИПЫ РАЗРАБОТКИ СИСТЕМЫ КЛАССА LEARNING MANAGEMENT SYSTEM И ОПЫТ ЕЕ ИСПОЛЬЗОВАНИЯ НА ФАКУЛЬТЕТЕ МЕНЕДЖМЕНТА Афанасьева С.В. Кафедра бизнес-информатики.
Игра со звуком для взрослых и детей. Вопросы о православных традициях праздника Рождества Христова и четыре варианта ответов к ним. В рамках конкурса.
Совместное использование пакета Microsoft Office Excel 2007 и служб интеллектуального анализа данных SQL Server Analysis Services Афанасьева С.В.
Типология характеров по Фрейду
Скриптовые языки на примере Perl. Языки программирования Скриптовые Программа (или ее бай-код) интерпретируется Зачастую более высокий уровень абстрагирования.
ООП Классы – 2. Ссылки Ссылка – еще одно имя объекта. Используйте ссылки вместо указателя. Это более безопасно. Complex c(10,10); Complex c2& = c; c2+=10;
Алгоритмы на графах Представление графов Построение остовного дерева Нахождение компонент смежности Перебор в глубину и в ширину.
Математика, 5 класс Натуральные числа
1 Генерация контекстных ограничений для баз данных Выполнил: Жолудев В. Научный руководитель: Терехов А.Н. Рецензент: Иванов А.Н.
Введение в параллельные вычисления. Технология программирования MPI (день седьмой) Антонов Александр Сергеевич, к.ф.-м.н., н.с. лаборатории Параллельных.
Введение в параллельные вычисления. Технология программирования MPI (день третий) Антонов Александр Сергеевич, к.ф.-м.н., н.с. лаборатории Параллельных.
Анатомия класса. Схожесть с др. языками   С# похож на язык Java в том, что он требует, чтобы вся программная логика была заключена в определения типов.
Понятие риска применительно к инвестиционным проектам
Growing Neural Gas Method Нейросетевой метод построения неструктурированных адаптивных сеток.
Алгоритмы сортировки и поиска
Сравнение различных методов хранения XML в реляционных базах данных и в разных системах. Нгуен Тхань Хуен- 545 группа Руководитель : Б.А. Новиков Рецензент:
PHP как язык программирования. Типы данных логические величины int, integer – целые числа real, double, float – вещественные числа string – строки array.
Деревья курс «Алгоритмы и структуры данных» Отделение Программной инженерии.
EDCWiki Electronic Document Circulation using wiki Система электронного документооборота на основе wiki Участники: Кузьмин Константин, Цыцулин Виталий.
More on the STL vector list stack queue priority_queue.
"The European Molecular Biology Open Software Suite"
Контейнеры. Сортировка  Метод sort()  Интерфейс Comparable метод int compareTo(Object o) вызов: Arrays.sort(a)  Интерфейс Comparator метод int compare(Object.
Statistics and how to interpret them CIJ/OSI Investigative Journalism – Public Finance School April 2011 ЦЖР / ИОО Журналистские расследования - Общественная.
ВЫЧИСЛЕНИЕ В ЛИСПЕ Функциональное программирование Григорьева И.В.
Учебная презентация. Список упражнений Перед вами небольшой список упражнений по Microsoft Power Point: Для начала потренируйтесь создавать новые слайды,
Деревья и их представление в STL Презентацию подготовила Чиркова Ольга, 2 подгруппа, группа 271ПИ.
Взвешенные скелеты для простых многоугольников Дипломная работа студента 544 группы Игнатьевского Сергея Васильевича Научный руководитель: К.В. Вяткина.
Нахождение ориджинов в последовательности нуклеотидов Выполнил: Ромашкин Амир, 445 гр. Руководитель: Профессор АФТУ, Порозов Юрий.
Поиск путей в сложных полигонах для динамических систем реального времени. Работа Порошина И.А., 544 гр. Научный руководитель Уфнаровский В.В. Рецензент,
Реализация XPath над S-выражениями 2007 Миленин Евгений, гр. 544 Кафедра Системного Программирования Математико-Механический ф-т, СПбГУ Научный руководитель:
Маршрут, цепь, цикл Маршрутом называют последовательность вершин и ребер, в которой любые два соседних элемента инцидентны (т.е. соединены). Например:
Методы анализа данных. Статистическая проверка гипотез.
Формы в HTML. Элемент FORM Элемент уровня «блок» Управляющие элементы Просто текст Атрибуты: action – url обработчика method – post или get enctype –
Разработка алгоритмов распознавания текста
Демидов А.В г. Операционные системы Лекция 4 Работа с файлами.
Как найти последовательность, кодирующую Ваш белок? Как найти последовательность ДНК, кодирующую Ваш белок: – Ссылки из белковых баз данных – Прямой поиск.
ВВЕДЕНИЕ В ВЫЧИСЛИТЕЛЬНУЮ МАТЕМАТИКУ Лекция 5 6 октября 2009 ВЫЧИСЛИТЕЛЬНАЯ ЛИНЕЙНАЯ АЛГЕБРА.
Проверка эквивалентности срединной и линейной осей многоугольника Дипломная работа студента 545 группы Подколзина Максима Валериевича Санкт-Петербургский.
LINGUISTIC TOOLS ЛИНГВИСТИЧЕСКИЕ ИНСТРУМЕНТЫ Лекция 1.
Тема 8. «Векторы на плоскости и в пространстве»
XML Схемы XML документов. XML Schema созданая Microsoft позволяет избавиться от DTD блоков. Основа – использование пространств имен и очень точная типизация.
STL-Associative Containers. Associative Containers Sequence containers : "This is item 0, this is item 1, this is item 2…“ Associative containers : –
Friends & Standard Template Library CSCI3110 Advanced Data Structures Lecturer: Dr. Carroll and Nan Chen.
Chapter 22 STL Containers §22.1 STL Basics §22.2 STL Iterators §22.3 Sequence Containers §22.4 Associative Containers §22.5 Container Adapters.
Визуализация сетей на R library(igraph) content/uploads/2015/06/Polnet2015.zip
Anekdot ANDROID CLUB Сегодня  Navigation Drawer  CardView  Calligraphy  TextToSpeech.
Стеки и очереди 1. Абстрактный стек public interface Stack { static class Underflow extends Exception { public Underflow() { super("Stack underflow");
«Центр Разработки и Внедрения Террасофт Поволжье»
Copyright © Curt Hill STL Priority Queue A Heap-Like Adaptor Class.
Jokes Jokes Jokes Teacher: Where's your text book? Student: At home. Teacher: What's it doing there? Student: Having a.
Object-Oriented Programming (OOP) Lecture No. 41
Introduction to olympic programming
Graphs: As a mathematics branch
Сортировка, поиск и фильтрация данных в базе данных и выборках
STL (Standard Template Library)
C++ Programming: chapter 10 – STL
Some Definitions vector, string, deque, and list are standard sequence containers. set, multiset, map, multimap, unordered_set, unordered_multiset, unordered_map.
Presentation transcript:

ГРАФЫ ИХ ПРЕДСТАВЛЕНИЕ В STL u Отделение программной инженерии группа 271 ПИ Антонова Н. А.

G = множество вершин (vertices) |V|=N множество пар вершин – дуг (arcs) |E|=M ГРАФ

БИБЛИОТЕКА STL STANDARD TEMPLATE LIBRARY стандартная библиотека шаблонов Это библиотека шаблонов и функций С ++, включающая в себя различные контейнеры данных ( список, очередь, множество, отображение, хэш - таблица, очередь с приоритетами ) и базовые алгоритмы ( сортировка, поиск )

Последовательные Ассоциативные ( линейный список ) ( ключ – значение ) list vector deque … КОНТЕЙНЕРЫ map multimap set …

VECTOR – динамический массив –size() – возвращает текущий размер вектора –begin() – возвращает итератор, установленный на начало вектора –end() - возвращает итератор, установленный на конец вектора –push_back() – записывает значение в конец вектора –insert() – записывает значение непосредственно перед элементом, на который ссылается итератор –erase() – удаляет элемент из вектора –… vector iv; //пустой вектор int i; //счетчик for (i=0; i<10; i++) v[i] = i + ’a’; //заполнение //устанавливаем итератор в конец vector ::iterator p=v.end(); v.insert (p,3,’X’); //вставляем три символа Х в вектор //выводим на экран содержимое вектора for (i=0; i<v.size(); i++) cout<< v[i] << “ “; КОНТЕЙНЕРЫ

VECTOR – динамический массив –size() – возвращает текущий размер вектора –begin() – возвращает итератор, установленный на начало вектора –end() - возвращает итератор, установленный на конец вектора –push_back() – записывает значение в конец вектора –insert() – записывает значение непосредственно перед элементом, на который ссылается итератор –erase() – удаляет элемент из вектора –… на экране : a b c d e f g h i j X X X КОНТЕЙНЕРЫ

SET – упорядоченные уникальные значения ; MAP – ассоциативный контейнер : уникальный ключ – значение map m1; //ключ и значение – строковый тип //заполнение: ключ-значение хранится с помощью стандартного типа пары m1.insert(pair ("apple", "a small red fruit")); m1.insert(pair ("orange", "a small orange fruit")); m1["banana"] = "a long yellow fruit"; //заполнение //вывод на экран вариант 1 map ::iterator it = m1.begin(); for ( ; it != m1.end(); it++) { cout first second << endl; } //вывод на экран вариант 2 cout << m1["apple"] << endl; cout << m1["orange"] << endl; cout << m1["banana"] << endl; КОНТЕЙНЕРЫ

MAP – ассоциативный контейнер : уникальный ключ – значение на экране: apple: a small red fruit orange: a small orange fruit banana: a long yellow fruit a small red fruit a small orange fruit a long yellow fruit КОНТЕЙНЕРЫ

MULTIMAP – ключ может иметь несколько значений PRIORITY_QUEUE – очередь с приоритетами priority_queue pq; pq.push(1); //добавляем элемент pq.push(4); pq.push(2); cout << pq.top() << endl; // выводит '4' pq.pop(); // удаление элемента cout << pq.top() << endl; // выводит '2' pq.pop(); // удаление элемента cout << pq.top() << endl; // выводит '1' cout << pq.size() << endl; // выводит '1' КОНТЕЙНЕРЫ

Вершины, соединенные дугой, называются смежными Дуги, имеющие общую вершину, также называются смежными Дуга и любая из ее вершин называются инцидентными СМЕЖНОСТЬ и ИНЦИДЕНТНОСТЬ

ПРЕДСТАВЛЕНИЕ ГРАФОВ 1. Матрица смежности 2. Матрица инциденций 3. Структуры смежности 4. Массив дуг

Это двумерный массив размером NxN, где N – мощность множества вершин V (|V|=N) МАТРИЦА СМЕЖНОСТИ // двумерный массив #include typedef std::vector > Matrix; Matrix m;

МАТРИЦА ИНЦИДЕНЦИЙ Это двумерный массив размером Nx М, где N – мощность множества вершин V (|V|=N), М – мощность множества ребер (|E|=M)

Это одномерный массив размером N, где N – мощность множества вершин V (|V|=N). Элемент массива – указатель на начало списка, где храниться перечень вершин, смежных с рассматриваемой СТРУКТУРА СМЕЖНОСТИ struct node {int v; node* next; node (int x, node* t) { v = x; next = t; } }; typedef node* link; vector adj;

Это двумерный массив размером М x2, где М – мощность множества ребер Е (| Е |= М ) МАССИВ ДУГ //map #include typedef std::map Matrix; Matrix m;

Использование в прикладных задачах Географические карты и маршруты Расписания (scheduling) Web (гипертекст) Сети (networks) и т.д.

Сеть европейских железных дорог ПОИСК КРАТЧАЙШЕГО ПУТИ

ПУТЬ Путь – последовательность вершин, соединенных ребрами Длина пути – число ребер(невзвешенная) или сумма весов всех ребер (взвешенная), входящих в путь

ПРЕДСТАВЛЕНИЕ map > outgoing_services; map cities;

АЛГОРИТМ ДЕЙКСТРЫ Инициализация Метка начальной вершины полагается равной 0, метки остальных вершин — бесконечности (расстояния до них пока неизвестны) Шаг алгоритма Если все вершины посещены, алгоритм завершается В противном случае из еще не посещенных вершин выбирается вершина U, имеющая минимальную метку Рассматриваются все смежные к ней вершины. Для каждой из них определяется новая длина пути, равную сумме текущей метки U и длины ребра, их соединяющего Если полученная длина меньше метки новой вершины, заменим метку этой длиной Рассмотрев все такие вершины, пометим вершину U как посещенную и повторим шаг …

ОСНОВНЫЕ АЛГОРИТМЫ НА ГРАФАХ

Breadth-First Search Поиск в ширину метод анализа структуры графа, при котором каждый уровень полностью подвергается анализу до перехода к следующему уровню

Рассматриваются все вершины, связанные с текущей Выбирается та вершина, которая раньше была рассмотрена Структура данных – очередь

Depth-First Search Поиск в глубину метод анализа структуры графа, при котором узлы анализируются последовательно, по мере продвижения вглубь, а далее анализируются ближайшие к стартовому

Поиск начинается с некоторой фиксированной вершины v Рассматривается вершина u, смежная с v Если нет вершин, смежных с текущей, возврат к предыдущей (если эта вершина – v, то просмотр окончен) Структура данных – стек

СПАСИБО ЗА ВНИМАНИЕ !