Задача состоит в том, чтобы найти циклы определенного размера k, где k - пользовательский ввод, с помощью Scala pregel. Однако я не понимаю, что делать с тем, какие сообщения следует отправлять в pregel, когда цикл обнаружен. То, что я пробовал до сих пор, - это использовать строку, содержащую список вершин, через которые она прошла, и поместить ее в атрибут вершины. Затем цикл обнаруживается, если srcAttr уже содержит dstId. Но я не уверен, что делать после, чтобы получить общее количество циклов. Кроме того, в задаче также указано, что это не цикл, если он содержит другой меньший цикл.
Каждая вершина отправляет сообщения своим соседям, содержащие (1) идентификатор исходной вершины и (2) количество переходов, которые проходит сообщение (изначально установлено на 1).
Каждая вершина перенаправляет полученные сообщения после увеличения значения (2) на единицу.
Проверяйте каждое сообщение, является ли msg.src_vid == msg.dst_id, и смотрите количество переходов.