Лабораторной работе №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 руб.
Другие работы
«Определение показателей бюджета продаж и производства» (на примере филиала ОАО «РЖД» )
lyianya
: 4 мая 2016
Содержание:
Введение…………………………………………………………………...………4
Исходные данные………………………………………………………...……….6
Раздел 1. Расчет показателей плана грузовых перевозок на отделении доро-ги……………………………………………………………………………..…….8
Раздел 2. Определение объема работы подвижного состава……………........11
2.1. Определение объема работы вагонов……………………………….….11
2.2. Расчет работы в т-км брутто………………………………………….….15
2.3. Расчет пробега и количества поездов по участкам и направлениям…17
2.4. Пробег поездных и
250 руб.
Оценка эффективности реконструкции центральных тепловых пунктов в г. Сургуте
alfFRED
: 31 марта 2014
Введение 4
1. Экономическая эффективность – источник экономического роста на предприятии.
7
1.1. Факторы экономического роста на уровне предприятия. 7
1.2. Показатели экономического роста. 8
1.3. Проблемы достижения эффективности на предприятиях жилищно-коммунального хозяйства и пути их решения.
10
2. Роль технико-экономического анализа в повышении эффективности производства.
13
2.1. Основные принципы технико-экономического анализа. 14
2.2. Методика технико-экономического анализа на предприят
5 руб.
Информатика. Курсовая работа. 9-й вариант. 2-й семестр.
sanco25
: 20 мая 2012
Оглавление
1. Задание к курсовой работе 3
2. Описание процесса проектирования базы данных 3
2.1. Общее описание предметной области 3
2.2. Инфологическая модель 3
2.3. Выделение информационных объектов 5
2.4. Определение логической структуры базы данных 6
2.5. Датологическая модель в среде выбранной субд 7
3. Структура таблиц базы данных (в режиме конструктора) 10
4. Схема связей между таблицами 11
5. Содержание таблиц 12
6. Структура запросов (в режиме конструктора) и описание процесса их созда
130 руб.
Контрольная работа. Централизованные системы сигнализации в современных цифровых сетях. Вариант 20
bioclown
: 23 октября 2013
Сообщение 1
TLink1B 00:24.061
000: AF C8 1C 85 41 60 00 B8 BB 01 01 00 48 00 F6 03
010: 02 0A 08 83 10 83 21 65 78 88 0F 08 01 00 00
Сообщение 2
TLink1A 00:24.088
000: C8 B1 0B 85 01 60 10 B8 BB 01 03 01 00 00
Сообщение 3
TLink1B 00:24.182
000: B1 C9 0B 85 41 60 00 B8 BB 01 04 01 00 00
Сообщение 4
TLink1A 00:24.480
000: CA B3 0D 85 01 60 10 08 68 00 0C 02 00 02 8A 90
Сообщение 5
TLink1B 00:24.492
000: B3 CB 09 85 41 60 00 88 68 00 10 00
Соо
150 руб.