Я просто изучаю теорию графов, и я пытаюсь написать код для проблемы с алгоритмом. Проблема включает в себя n группа людей, каждая из которых имеет хотя бы одну взаимную дружбу с одним из членов. Проблема заключается в том, чтобы найти кратчайшую связь между двумя людьми. Самая короткая связь дружбы содержит наименьшее количество людей. Например; A и B являются общими друзьями, а B и C являются общими друзьями, если A и C являются общими друзьями, тогда A-C и A-B-C являются связями между A и C, но A-C считается короче, потому что он включает в себя меньших людей.Алгоритм - Друг друга
Я хотел бы знать, какой алгоритм теории графов применим в этом случае, и я был бы признателен за любую рекомендацию хорошей бесплатной интернет-документации по теории графов (кроме вики).
Любой кратчайшего алгоритма путь будет здесь достаточно. См. [Dijkstra] (http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm) или [BellmanFord] (http://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm). – phoeagon
@phoeagon Если есть недостающие ссылки, он не будет, повторите вопрос, пожалуйста. Я думаю, что переходное закрытие должно сделать. – axiom
Вы говорите: «У каждого из них есть хотя бы одна взаимная дружба с одним из членов», как насчет этого набора: {A-B C-D}. Что делать, если между A и C нет связи? –