Skip to content

Latest commit

 

History

History
25 lines (14 loc) · 3.06 KB

File metadata and controls

25 lines (14 loc) · 3.06 KB

Задание 3. Структура графа и поиск кратчайших путей

Задание

Необходимо имплементировать класс Graph, хранящий взвешенный граф без циклов и с неотрицательными весами. Кроме того, нужно реализовать метод, выполняющий поиск кратчайших путей в соответствии с вариантом. Форма хранения графа может быть произвольной по усмотрению студента (как вариант - словарь смежности), но должна быть удобной для реализации метода поиска пути выбранного варианта.

Варианты

Общим заданием для всех вариантов является реализация структуры графа. В зависимости от варианта, вам нужно реализовать следующие способы поиска пути:

  1. Алгоритм Дейкстры
  2. Алгоритм Флойда-Уоршела
  3. Алгоритм A*

Метод должен принимать и возвращать аргументы, соответствующие особенностям работы алгоритма. Желательной является визуализация сложности алгоритмов, опционально по желанию студента - визуализация алгоритма на планарном графе.

Аспекты сдачи

При переходе по ссылке преподавателя выполняется форк шаблонного репозитория, содержащего шаблон кода с заготовкой классов, а также этот файл. Вам необходимо сделать локальный клон репозитория, внести свои изменения и закомитить их. Не забудьте выполнить push в ваш GitHub репозиторий. Для работы вы можете использовать утилиту git или любой Git-клиент, включая встроенные в IDE. Неплохим вариантом будет также использовать GitHub Desktop.

Вам отредактировать в репозитории файл student.md, содержащий информацию о студенте, его группе и предпочтительном способе обратной связи от преподавателя.

Дополнительно

Для получения максимального балла необходимо визуализировать (построить график) временную сложность выполнения метода поиска пути на разных объемах графа (линейно возрастающих)