Каким алгоритм сделать остов неориентированного взвешенного графа с весами на ребрах и вершинах? Добрый день. Вопрос задан некорректно, может быть, но все же. Есть значит граф неориентированный. Представим, что это точки на карте. Веса на ребрах - расстояния меж ними. НО. У каждой точки будет, скажем, коэффициент приоритетности от 1 до 10. Так же у меня есть бюджет, который позволяет обойти не все точки. В итоге нужен алгоритм, который бы построил остов графа учитывая расстояние меж точками + важность данной точки? Пробежался по основным алгоритмам (Краскала, Прима, Борувки), но они не учитывают "важность точки", которую нужно посетить.

21 Авг 2019 в 06:04
154 +1
0
Ответы
1

В вашем случае можно модифицировать алгоритм Прима. Вместо того, чтобы выбирать ребра с минимальным весом, можно выбирать ребра с минимальным учитывая их важность.

Алгоритм можно описать следующим образом:

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

Таким образом, вы можете адаптировать алгоритм Прима под вашу конкретную задачу.

20 Апр 2024 в 13:24
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир