Индивидуальная практическая работа № 2
Общие сведения
Цель работы: изучение алгоритмов теории графов.
Порядок выполнения работы
1) Изучить темы 5 лекционного материала.
2) Написать программу согласно своему заданию.
3) Граф отобразить, путь вывести. Если нет пути, вывести сообщение.
4) Ввод матрицы должен осуществляться из файла и через форму.
5) Представить для проверки результат выполнения работы в виде одного или нескольких файлов с исходным кодом на любом языке программирования.
Указания по выбору варианта
Номер варианта соответствует последней цифре номера зачётной книжки.
Варианты ЛР4
Имеется список N городов и задан список пар городов, между которыми существует прямая дорога. вывести список городов, которые напрямую сообщаются более чем с М городами.
Подсчитать количество узлов на каждом уровне данного бинарного дерева.
Определить, если в данном бинарном дереве два одинаковых элемента.
Вывести номера уровней данного бинарного дерева, на котрых имеются листья.
Вывести номера вершин, у которых количество потомков в левом поддереве не равно количеству потомков в правом поддереве.
Вывести номера вершин, для которых высота левого поддерева не равна высоте правого поддерева.
Вывести номера вершин, у которых количество потомков в левом поддереве отличается от количества потомков в правом поддереве на 1.
Найти высоту дерева H и удалить в нем все вершины на уровне H/2.
Найти минимальный путь между листьями и удалить центральную вершину этого пути.
Найти максимальный путь между вершинами дерева и удалить центральную вершину этого пути.
Найти высоту дерева H и удалить в нем все вершины на глубине H/2, у которых высота левого поддерева равна высоте правого поддерева.
Найти путь максимальной длины и отразить дерево зеркально относительно этого пути.
Найти путь максимальной длины между вершинами с разным числом потомков.
Найти путь максимальной длины между вершинами разной высоты.
Найти пути минимальной длины между корнем и листьями и удалить центральные вершины этих путей.
Определить, являются ли два дерева зеркальным отражением друг друга по структуре.
Найти среднюю по значению вершину в дереве.
Найти вершины, у которых высоты поддеревьев равны, а количество потомков в правом и левом поддеревьях не равны.
Найти вершины, у которых высоты поддеревьев не равны, а количество потомков в правом и левом поддеревьях равны.
Найти среднюю вершину в дереве, у которой высоты поддеревьев равны.
Удалить все вершины, для которых количество потомков в левом поддереве отличается от количества вершин в правом поддереве на 2 и более.
Удалить все вершины, для которых высота левого поддерева отличается от высоты правого поддерева на 2.
Подсчитать число узлов и листьев в данном бинарном дереве.
Задача коммивояжера.
Разработать программу, реализующую поиск в глубину в графе из заданной вершины.
Разработать программу нахождения остовного дерева в графе методом поиска в глубину.
Разработать программу, реализующую поиск в ширину в графе из заданной вершины.
Разработать программу нахождения остовного дерева в графе методом поиска в ширину.
Разработать программу, реализующую нахождение кратчайшего пути между заданными городами (алгоритм Дейкстры).
Разработать программу, реализующую нахождение кратчайших расстояний между всеми парами городов (алгоритм Флойда).
Разработать программу, реализующую нахождение кратчайших расстояний между источником и всеми городами (алгоритм Форда-Беллмана).
Разработать программу нахождения всех гамильтоновых циклов в графе.
Граф называется полным, если каждая его вершина непосредственно связана со всеми остальными. Найти максимальный полный подграф (клику) в неориентированном графе. Исходный граф задан матрицей смежности порядка n.
Подсчитать количество связанных кусков в графе.
Найти наименьший связанный кусок в графе.
Указания по выполнению работы
Должны быть проверки на корректность и соответствие здравому смыслу введённых значений, с которыми пользователь собирается выполнять операции и т.п.
В случае возникновения нештатной ситуации, программа должна в максимально удобной для пользователя форме реагировать на происходящее, предлагая варианты решения и предотвращая необратимые действия пользователя, которые могут привести к повреждению или потере данных.
- Общие сведения Сведения об эумк
- Методические рекомендации по изучению дисциплины
- Рабочая учебная программа Учреждение образования «Белорусский государственный университет информатики и радиоэлектроники»
- Пояснительная записка
- Содержание дисциплины
- 1. Название тем лекционных занятий, их содержание, объем в часах Наименование тем, их содержание
- 2. Перечень тем ипр
- Перечень тем контрольных работ
- 4. Литература
- 4.1 Основная
- 4.2 Дополнительная
- 5. Перечень компьютерных программ, наглядных и других пособий, методических указаний и материалов и технических средств обучения
- 6. Учебно-методическая карта дисциплины содержание дисциплины
- Теоретический раздел Вступление
- Дискретная и вычислительная математика
- Часть 1. Вычислительная математика Математическое моделирование и вычислительный эксперимент
- 1 Решение систем линейных алгебраических уравнений
- 1.1 Точные методы
- 1.1.1 Метод Гаусса
- 1.1.2 Связь метода Гаусса с разложением матрицы на множители. Теорема об lu разложении
- Теорема об lu разложении
- 1.1.3 Метод Гаусса с выбором главного элемента
- 1.1.4 Метод Холецкого (метод квадратных корней)
- 1.2 Итерационные методы решений систем алгебраических уравнений
- 1.2.1 Метод Якоби (простых итераций)
- 1.2.2 Метод Зейделя
- 1.2.3 Матричная запись методов Якоби и Зейделя
- 1.2.4 Метод Ричардсона
- 1.2.5 Метод верхней релаксации (обобщённый метод Зейделя)
- 1.2.6 Сходимость итерационных методов
- 2 Плохо обусловленные системы линейных алгебраических уравнений
- 2.1 Метод регуляризации для решения плохо обусловленных систем
- 2.2 Метод вращения (Гивенса)
- 3 Решение нелинейных уравнений
- 3.1 Метод простых итераций
- 3.1.1 Условия сходимости метода
- 3.1.2 Оценка погрешности
- 3.2 Метод Ньютона
- 3.2.1 Сходимость метода
- 4 Решение проблемы собственных значений
- 4.1 Прямые методы
- 4.1.1 Метод Леверрье
- 4.1.2 Усовершенствованный метод Фадеева
- 4.1.3 Метод Данилевского
- 4.1.4 Метод итераций определения первого собственного числа матрицы
- 5 Задача приближения функции
- 5.1 Интерполяционный многочлен Лагранжа
- 5.1.1 Оценка погрешности интерполяционного многочлена
- 5.2 Интерполяционные полиномы Ньютона
- 5.2.1 Интерполяционный многочлен Ньютона для равноотстоящих узлов
- 5.2.2 Вторая интерполяционная формула Ньютона
- 5.3 Интерполирование сплайнами
- 5.3.1 Построение кубического сплайна
- 5.3.2 Сходимость процесса интерполирования кубическими сплайнами
- 5.4 Аппроксимация функций методом наименьших квадратов
- 6 Численные методы решения задачи Коши для обыкновенных дифференциальных уравнений и систем дифференциальных уравнений
- 6.1 Семейство одношаговых методов решения задачи Коши
- 6.1.1 Метод Эйлера (частный случай метода Рунге-Кутта)
- 6.1.2 Методы Рунге-Кутта
- 6.2 Многошаговые разностные методы решения задачи Коши для обыкновенных дифференциальных уравнений
- 6.2.1 Задача подбора числовых коэффициентов aк , bк
- 6.2.2 Устойчивость и сходимость многошаговых разностных методов
- 6.2.3 Примеры m-шаговых разностных методов Адамса для различных m
- 6.3 Численное интегрирование жестких систем обыкновенных дифференциальных уравнений
- 6.3.1 Понятие жесткой системы оду
- 6.3.2 Некоторые сведения о других методах решения жестких систем
- 6.3.2.1 Методы Гира
- 6.3.2.2 Метод Ракитского(матричной экспоненты) решения систем оду
- 6.4 Краевые задачи для обыкновенных дифференциальных уравнений
- 6.5 Решение линейной краевой задачи
- 6.6 Решение двухточечной краевой задачи для линейного уравнения второго порядка сведением к задаче Коши
- 6.7 Методы численного решения двухточечной краевой задачи для линейного уравнения второго порядка
- 6.7.1 Метод конечных разностей
- 6.7.2 Метод прогонки (одна из модификаций метода Гаусса)
- 7 Приближенное решение дифференциальных уравнений в частных производных
- 7.1 Метод сеток для решения смешанной задачи для уравнения параболического типа (уравнения теплопроводности)
- 7.2 Решение задачи Дирихле для уравнения Лапласа методом сеток
- 7.3 Решение смешанной задачи для уравнения гиперболического типа методом сеток
- Часть 2. Дискретная математика
- 1. Основные Элементы теории множеств
- 1.1 Элементы и множества
- 1.2 Задание множеств. Парадокс Рассела
- 1.3 Операции над множествами
- 1.4 Булеан множества
- 1.5 Представление множеств в эвм
- Разбиения и покрытия
- 2 Отношения и функции
- 2.1 Прямое произведение множеств
- Элементы комбинаторики
- Теория конфигураций и теория перечисления
- Размещения
- Сочетания
- 3.1 Перестановки и подстановки
- 4 Элементы математической логики
- 5 Конечные графы и сети Основные определения
- 5.1 Матрицы графов
- Матрица смежности Списки инцидентности
- 5.2 Достижимость и связность
- 5.3 Эйлеровы и гамильтоновы графы
- 5.4 Деревья и циклы
- 5.5 Алгоритмы поиска пути
- Двунаправленный поиск
- Поиск по первому наилучшему совпадению
- Алгоритм Дейкстры
- АлгоритмА*
- Остовное дерево
- Матрица Кирхгофа
- 5.6 Конечные автоматы
- 5.6 Элементы топологии
- 5.7 Метрическое пространство
- Указания по выбору варианта
- Контрольная работа № 2 Общие сведения
- Квадратурная формула Гаусса
- Указания по выбору варианта
- Индивидуальные практические работы Индивидуальная практическая работа № 1 Общие сведения
- Интерполяционный полином Лагранжа
- Аппроксимация функций с помощью кубического сплайна
- Приближение формулами Ньютона
- Аппроксимация функций методом наименьших квадратов
- Индивидуальная практическая работа № 2