Лабораторной работе №4. Алгоритмы и структуры данных. Тема: Графы. ЛЭТИ.
Состав работы
|
|
|
|
|
|
|
|
Работа представляет собой rar архив с файлами (распаковать онлайн), которые открываются в программах:
- Microsoft Word
- Программа для просмотра изображений
Описание
Лабораторной работе №4. Алгоритмы и структуры данных.
Тема: Графы. ЛЭТИ.
Вариант 35
Содержание
Введение ........................................................................................................ 3
Задание ........................................................................................................... 3
Постановка задачи и описание решения ..................................................... 3
Контрольные тесты ...................................................................................... 5
Вывод ............................................................................................................. 8
Список использованных источников........................................................... 9
Текст программы ........................................................................................... 10
Цель работы
Исследование алгоритмов для работы с ориентированными графами
Задание
Отыскание кратчайшего пути между заданной парой вершин в произвольном ориентированном графе с нагруженными ребрами
Математическая формулировка: ориентированный граф G = <V, E>, заданный в форме весового списка ребер edge [v, u], который может содержать циклы с отрицательной длиной, и вершина-источник s. Результатом является вектор расстояний d.
Постановка задачи и описание решения
Для алгоритма Форда-Беллмана более удобно представлять граф в виде списка всех рёбер (вектор структур ребра). Для такого алгоритма матрица смежности получается довольно трудно затратной.
Было решено сделать меню, в котором пользователь выбирает характеристики графа: в первом подменю он выбирает, вводить ли ему вручную или позволить компьютеру сгенерировать граф: если пользователь выбрал первый вариант, то он просто вводит данные графа с клавиатуры, иначе выводится следующее меню, в котором пользователь выбирает, какими должны быть числа в графе: положительными или положительными и отрицательными (это было сделано для того, чтобы удостовериться в правильности алгоритма Беллмана - Форда) – в таком случае генерируются однозначные числа (чтобы красиво выводилась “матрица” и наглядно показать действие алгоритма, ведь для демонстрации алгоритма можно использовать и целые числа)
Важное уточнение: если между вершинами связи нет, то вводится и выводится именно ноль
Формируется список ребер размером n*n, где n – кол-во ребер (однако обрабатываться будут только ребра с ненулевым весом, поэтому одна итерация будет повторяться [кол-во ребер] раз)
Заведём массив расстояний d[n], который после обработки будет содержать ответ на задачу: сначала мы заполняем расстояние вершины старта нулем, остальные бесконечностью. Если после действий алгоритма расстояние все равно бесконечности, значит, что эта вершина недостижима
Также в программе была учтена возможность обнаружения отрицательного цикла – такого, что алгоритм может бесконечно улучшать свою оценку, уходя в минус бесконечность.
Для восстановления пути был инициализирован p[n], в котором соответствующие вершины будут хранить предшественника. Алгоритм, предполагая, что кратчайшее расстояние до одной вершины уже посчитано, пытается улучшить кратчайшее расстояние до другой вершины. Следовательно, в момент улучшения нам надо просто запоминать в массиве “предков”, из какой вершины это улучшение произошло.
Общая сложность алгоритма – О(ne), где n – кол-во вершин, e - кол-во ребер, однако в худшем случае она может достигать O(n^3) (так как тройной цикл)
Тема: Графы. ЛЭТИ.
Вариант 35
Содержание
Введение ........................................................................................................ 3
Задание ........................................................................................................... 3
Постановка задачи и описание решения ..................................................... 3
Контрольные тесты ...................................................................................... 5
Вывод ............................................................................................................. 8
Список использованных источников........................................................... 9
Текст программы ........................................................................................... 10
Цель работы
Исследование алгоритмов для работы с ориентированными графами
Задание
Отыскание кратчайшего пути между заданной парой вершин в произвольном ориентированном графе с нагруженными ребрами
Математическая формулировка: ориентированный граф G = <V, E>, заданный в форме весового списка ребер edge [v, u], который может содержать циклы с отрицательной длиной, и вершина-источник s. Результатом является вектор расстояний d.
Постановка задачи и описание решения
Для алгоритма Форда-Беллмана более удобно представлять граф в виде списка всех рёбер (вектор структур ребра). Для такого алгоритма матрица смежности получается довольно трудно затратной.
Было решено сделать меню, в котором пользователь выбирает характеристики графа: в первом подменю он выбирает, вводить ли ему вручную или позволить компьютеру сгенерировать граф: если пользователь выбрал первый вариант, то он просто вводит данные графа с клавиатуры, иначе выводится следующее меню, в котором пользователь выбирает, какими должны быть числа в графе: положительными или положительными и отрицательными (это было сделано для того, чтобы удостовериться в правильности алгоритма Беллмана - Форда) – в таком случае генерируются однозначные числа (чтобы красиво выводилась “матрица” и наглядно показать действие алгоритма, ведь для демонстрации алгоритма можно использовать и целые числа)
Важное уточнение: если между вершинами связи нет, то вводится и выводится именно ноль
Формируется список ребер размером n*n, где n – кол-во ребер (однако обрабатываться будут только ребра с ненулевым весом, поэтому одна итерация будет повторяться [кол-во ребер] раз)
Заведём массив расстояний d[n], который после обработки будет содержать ответ на задачу: сначала мы заполняем расстояние вершины старта нулем, остальные бесконечностью. Если после действий алгоритма расстояние все равно бесконечности, значит, что эта вершина недостижима
Также в программе была учтена возможность обнаружения отрицательного цикла – такого, что алгоритм может бесконечно улучшать свою оценку, уходя в минус бесконечность.
Для восстановления пути был инициализирован p[n], в котором соответствующие вершины будут хранить предшественника. Алгоритм, предполагая, что кратчайшее расстояние до одной вершины уже посчитано, пытается улучшить кратчайшее расстояние до другой вершины. Следовательно, в момент улучшения нам надо просто запоминать в массиве “предков”, из какой вершины это улучшение произошло.
Общая сложность алгоритма – О(ne), где n – кол-во вершин, e - кол-во ребер, однако в худшем случае она может достигать O(n^3) (так как тройной цикл)
Дополнительная информация
2020
Похожие материалы
Лабораторной работе №3. Алгоритмы и структуры данных. Тема: Деревья. ЛЭТИ. 2020
DiKey
: 23 марта 2023
Лабораторной работе №3. Алгоритмы и структуры данных.
Тема: Деревья. ЛЭТИ. 2020
Цель работы
Исследование алгоритмов для работы с двоичным деревом
Задание
В двоичном дереве сделать обратную разметку, обойти дерево в глубину и подсчитать количество левых листьев
Постановка задачи и описание решения
Для представления дерева в памяти предложен естественный способ – разветвляющийся список. Узлы дерева – объекты, связи между которыми осуществляются через указатели. Для создания дерева достаточно объ
75 руб.
Лабораторной работе №5. По дисциплине Алгоритмы и структуры данных. Тема Нахождение кратчайшего пути в графе.
DiKey
: 28 марта 2023
Лабораторной работе No5. По дисциплине Алгоритмы и структуры данных. Тема Нахождение кратчайшего пути в графе.
Цель работы: ознакомление с вариантами реализации алгоритмов на графах на примере задачи поиска кратчайшего пути в неориентированном графе.
Теоретические положения
Алгоритм Беллмана-Форда:
Алгоритм использует метод динамического программирования и формирует решение в виде квадратной матрицы, количество строк и столбцов которой равно количеству вершин графа. Ячейка на пересечении строк
100 руб.
Лабораторной работе №4. По дисциплине Алгоритмы и структуры данных. Тема Построение минимального остовного дерева.
DiKey
: 28 марта 2023
Лабораторной работе №4. По дисциплине Алгоритмы и структуры данных. Тема Построение минимального остовного дерева.
ЦЕЛЬ РАБОТЫ
Ознакомление с вариантами реализации алгоритмов на графах на примере задачи построения минимального остовного дерева.
ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Алгоритм Прима
Алгоритм начинается с выбора произвольной вершины. Она принимается за часть построенного минимального остовного дерева.
Далее в цикле в каждой итерации рассматриваются только те ребра исходного графа, одн
100 руб.
400 руб.
400 руб.
400 руб.
Презентация - Алгоритмы и структуры данных
alfFRED
: 24 ноября 2012
Содержание:
Основные алгоритмы и структуры данных.
Поиск.
Сортировка.
Списки.
Деревья.
Таблицы.
10 руб.
Лабораторной работе №1. по дисциплине АЛГОРИТМЫ И СТРУКТУРЫ ДАННЫХ. Тема МНОЖЕСТВА.
DiKey
: 28 марта 2023
Лабораторной работе No1.
по дисциплине АЛГОРИТМЫ И СТРУКТУРЫ ДАННЫХ.
Тема МНОЖЕСТВА.
Задание
Составить и отладить программу, реализующую обработку множеств по заданию: No варианта 10.
Универсум - Строчные латинские буквы.
Множество, содержащее буквы, имеющиеся в любом из множеств A или B, но отсутсвующие в C, кроме того, обязательно встречающиеся
также и в D
1. Уточнить задание: записать его в виде формулы для получения пятого множества по заданным четырём, используя знаки операций над множ
100 руб.
Другие работы
Гибкие оптические сети (часть 1-я). Билет №2
IT-STUDHELP
: 1 декабря 2021
Факультет МТС, магистратура Курс 1 Семестр 1
Направление подготовки: 110402 Инфокоммуникационные технологии и системы связи Дисциплина: Гибкие оптические сети. Экзаменационное тестирование (ПК-2).
Билет 2
Вопросы для краткого ответа (ПК-2)
Вопрос № 1. Почему в стекловолокнах ограничивают мощность оптического сигнала?
Вопрос № 2. Какой должна быть спектральная эффективность оптического канала для организации передачи на скорости 1Тбит/с в полосе канала 50 ГГц с использованием DP?
Вопрос № 3. Н
600 руб.
ГОСТ Р МЭК 60622-2002 Аккумуляторы и батареи щелочные. Аккумуляторы никель-кадмиевые герметичные призматические
Qiwir
: 7 мая 2013
Настоящий стандарт устанавливает технические требования и методы испытаний герметичных никель-кадмиевых призматических аккумуляторов (далее — аккумуляторов).
Примечание — Понятие «призматический» относится к аккумуляторам, имеющим прямоугольные стороны и основание.
Сборник задач по машиностроительной гидравлике Задача 3.31
Z24
: 11 ноября 2025
На барже с размерами дна L×B=60×10 м и осадкой С=1,5 м установлен кран грузоподъемностью 5 т с максимальным вылетом стрелы А=15 м.
Определить угол крена баржи при максимальной нагрузке крана, если центр тяжести системы расположен выше дна баржи на 4,25 м.
120 руб.
Основы расчетов на прочность и жесткость типовых элементов конструкций ВолгГТУ 2019 Задача 4 Вариант 12
Z24
: 5 ноября 2025
Расчеты на прочность при сложном сопротивлении
Плоскость Р — Р действия внешних нагрузок наклонена под углом α = 15º к вертикальной плоскости (рис. 12.4, а). Подобрать размеры поперечного сечения стального бруса в форме прямоугольника с отношением h/b = 1,5 или двутавра (в зависимости от варианта задания). Сопоставить напряжения в сечении при косом изгибе с напряжениями при плоском изгибе.
300 руб.