Я обеспокоен тем, что это может работать над проблемой NP-Complete. Я надеюсь, что кто-то может дать мне ответ, есть ли это или нет. И я ищу больше ответа, чем просто да или нет. Хотелось бы знать, почему. Если вы можете сказать: "Это в основном эта проблема" x ", которая/не является NP-Complete (ссылка на wikipedia)"
(Нет, это не домашнее задание)
Есть ли способ определить, связаны ли две точки на произвольном неориентированном графе. например, следующий
Well
|
|
A
|
+--B--+--C--+--D--+
| | | |
| | | |
E F G H
| | | |
| | | |
+--J--+--K--+--L--+
|
|
M
|
|
House
Точки A, хотя M (no 'I') - контрольные точки (например, клапан в трубе для природного газа), которые могут быть либо открытыми, либо закрытыми. "+" - это узлы (например, труба T), и я думаю, что Well и House также являются узлами.
Я хотел бы знать, закрываю ли я произвольную контрольную точку (например, C), будут ли Well и House еще подключены (другие контрольные точки также могут быть закрыты). Например, если B, K и D закрыты, у нас все еще есть путь через A-E-J-F-C-G-L-M, и закрытие C отключит Well и House. Конечно; если только D был закрыт, закрытие только C не отключает Дом.
Другим способом для этого является C-мост/режущий край/перешеек?
Я мог бы обрабатывать каждую контрольную точку как вес на графике (либо 0 для открытого, либо 1 для закрытого); а затем найдите кратчайший путь между Well и House (результат >= 1 будет означать, что они были отключены. Там различные способы я могу закоротить алгоритм поиска кратчайшего пути (например, отбросить путь, когда он достигнет 1, остановить поиск, когда у нас есть ЛЮБОЙ путь, который соединяет колодец и дом и т.д.). И, конечно же, я могу также установить некоторые искусственные ограничения на количество перелетов, которые нужно проверить перед тем, как отказаться.
Кто-то, должно быть, раньше классифицировал эту проблему, я просто пропустил имя.