Выезд A *. Вы можете настроить свою эвристическую функцию так, чтобы она подходила под ваши данные - что-то вроде ответа moooeeeep, но с более подробной информацией и ссылкой на википедию. Если вам нужна эвристика, в которой есть случайность, вы можете написать ее.
Обычно графы имеют какую-то структуру, и имеет смысл искать их структурированным способом (если вы ищете путь, то имеет смысл искать узел, который уже связан с другим узлом, который вы уже нашли). поиск, а не случайный узел, который может быть отключен.) Большую часть времени я запускаю эти алгоритмы на ориентированных ациклических графах / DAG или деревьях (соединяет DAG.) Если у меня действительно нет логической структуры в моих данных, я обычно не пытайтесь сделать из него граф, а затем примените к нему теорию графов. Я думаю, это зависит от того, насколько случайным вы хотите, чтобы все было.
Удачи!