Вопрос задан 07.03.2025 в 05:57. Предмет Математика. Спрашивает Кулакова Дарья.

Практическая работа № 28. Алгоритмы моделирования кратчайших путей между вершинами (построение дерева решений, алгоритм Дейкстры, метод динамического программирования). Элементы теории игр (выигрышная стратегия)

1. Цель работы:

Освоить алгоритмы моделирования кратчайших путей между вершинами (построение дерева решений, алгоритм Дейкстры, метод динамического программирования). Ознакомиться с элементами теории игр (выигрышной стратегией).

2. Оборудование, приборы, аппаратура, материалы:

Компьютер с выходом в интернет, инструкционная карта.

3. Краткие теоретические сведения:

Графы как информационные модели находят широкое применение во многих сферах нашей жизни. Поиск оптимального транспортного маршрута, кратчайшего объездного пути, расположения торговых точек, проектирования инженерных сетей и линий электропередач приводят к задаче поиска кратчайшего пути.

Путь между вершинами A и B графа считается кратчайшим, если:

  • Эти вершины соединены минимальным числом рёбер (если граф не взвешенный).
  • Сумма весов рёбер, соединяющих эти вершины, минимальна (если граф взвешенный).

4. Задания

Задача 1.

На рисунке представлена схема дорог, связывающих населённые пункты A, B, C, D, E, F. Вес рёбер означает стоимость проезда между двумя населёнными пунктами. Определить минимальную стоимость проезда из пункта E в пункт C.

Решение:

  1. Строим дерево решений, начиная с пункта E. В него можно попасть из пунктов B и D, проставляем вес каждого ребра.
  2. Определяем, из каких вершин можно попасть в B, строим далее дерево решений, проставляем веса рёбер.
  3. Следим, чтобы каждая ветка заканчивалась вершиной C.
  4. Выбираем ветку с минимальной суммой весов – это и есть ответ.

Задача 2.

Определить минимальное расстояние от вершины A до F с помощью алгоритма Дейкстры.

Решение:

  1. Обозначаем расстояние до исходной вершины A как 0, а до остальных – как ∞.
  2. Находим вершину с минимальной меткой, определяем минимальное расстояние до смежных вершин, отмечаем вершину как рассмотренную.
  3. Проверяем наличие непосещённых вершин.
  4. Повторяем шаги, пока все вершины не будут обработаны.
  5. В конце получаем минимальное расстояние до F.

Задача 3 (самостоятельная работа).

Рассчитать количество путей из пункта A в пункт Ж с помощью метода динамического программирования.

Задача 4.

Малыш и Фрекен Бок играют в игру. На столе лежат конфеты. Первым ходом Малыш делит конфеты на три непустых кучки, затем Фрекен Бок отдаёт две кучки Карлсону, а третью снова делит на три. Затем ходит Малыш, и процесс продолжается. Кто не может сделать ход, проигрывает.

Кто победит при верной игре, если на столе:
а) 9 конфет?
б) 7 конфет?
в) 12 конфет?
г) 14 конфет?

Решение:

  1. Определяем проигрышные позиции (когда игрок не может сделать ход).
  2. Если число конфет = 1 или 2, игрок проигрывает.
  3. Если конфет 3, игрок может их разделить на три кучки по одной и выиграть.
  4. Используем стратегию расчёта выигрышных и проигрышных позиций, строя дерево игры.

Задача 5.

В коробке 60 спичек. За один ход можно взять от 1 до 5 спичек. Проигрывает тот, кто не может сделать ход. Кто из игроков выиграет при правильной игре?

Заполните пробелы в тексте:
Если количество спичек меньше или равно 5, то тот игрок, чья очередь ходить, заканчивает игру и выигрывает.
Если же количество спичек равно 6, то игрок, чей ход был до появления этой позиции, своим следующим ходом заканчивает игру. Значит, эта позиция проигрышная для того, кто ходит.
Аналогично проигрышными являются позиции, когда количество спичек кратно 6. Значит, и позиция «60 спичек» является проигрышной для того, кто будет ходить, то есть для первого игрока.


5. Содержание отчёта:

  1. Название работы.
  2. Цель работы.
  3. Задания и их решения.
  4. Ответы на контрольные вопросы.
  5. Вывод по работе.

6. Контрольные вопросы:

  1. Граф – это …
  2. Перечислите алгоритмы нахождения кратчайшего пути.
  3. В чем заключается суть алгоритма Дейкстры?
  4. Динамическое программирование – это …
  5. Что значит выигрышная стратегия?

Вывод:

Какая была цель урока? Освоение алгоритмов поиска кратчайшего пути, методов динамического программирования и теории игр.

Перейти к ответам

Ответы на вопрос

Отвечает Исаева Юлия.

Практическая работа № 28 включает изучение алгоритмов для моделирования кратчайших путей между вершинами графа, а также знакомство с элементами теории игр. Основное внимание уделяется алгоритму Дейкстры, методу динамического программирования и построению дерева решений.

1. Цель работы

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

2. Оборудование и материалы

Для выполнения работы необходим компьютер с выходом в Интернет и доступом к необходимым инструментам и инструкциям. Важным материалом является инструкционная карта, которая содержит все необходимые данные и шаги для выполнения практического задания.

3. Теоретические сведения

Графы являются мощным инструментом моделирования различных объектов и процессов, таких как транспортные маршруты, проектирование инженерных сетей и многие другие. Задача поиска кратчайшего пути заключается в нахождении маршрута между двумя вершинами графа, который либо состоит из наименьшего числа ребер, либо имеет минимальную суммарную стоимость для взвешенного графа. Важно понимать, что существует несколько методов решения этой задачи, и каждый из них применим в зависимости от условий задачи.

Построение дерева решений

Алгоритм построения дерева решений помогает находить кратчайший путь в ориентированных графах. Он строит путь от исходной вершины и последовательно минимизирует возможные затраты на прохождение через промежуточные вершины.

4. Задания

Задача 1. Построение дерева решений

В данном примере требуется найти минимальную стоимость проезда из пункта E в пункт C. Сначала строим дерево, начиная с вершины E. Для этого анализируем, из каких пунктов можно попасть в E, и проставляем веса для всех ребер. Затем продолжаем строить дерево, изучая, какие вершины можно достичь из каждой текущей вершины, пока не дойдем до C. Выбираем ветку с минимальным числом, что и будет ответом.

Задача 2. Алгоритм Дейкстры

Алгоритм Дейкстры используется для нахождения кратчайшего пути от одной вершины к остальным вершинам графа. Пример задачи: необходимо определить минимальное расстояние от вершины A до вершины F. Для этого назначаем метки расстояний от вершины A: на старте расстояние до A равно 0, а до всех остальных вершин – бесконечность. Далее находим вершину с минимальной меткой, обновляем метки для смежных вершин и повторяем процесс, пока не найдем кратчайшее расстояние до каждой вершины.

Метод динамического программирования

Метод динамического программирования представляет собой подход, основанный на разбиении сложной задачи на несколько более простых подзадач. В контексте нахождения кратчайшего пути этот метод помогает оптимизировать поиск, разбивая задачу на более мелкие, постепенно решаемые части. Например, чтобы подготовиться к экзамену, можно не учить весь материал за один день, а изучать его по частям в течение года.

Заключение

Практическая работа помогает понять ключевые алгоритмы для решения задач на графах, а также дает представление о принципах теории игр и применении динамического программирования для эффективного решения различных задач.

Похожие вопросы

Топ вопросов за вчера в категории Математика

Последние заданные вопросы в категории Математика

Задать вопрос