Thay vì cho 1 đường đi ngắn nhất, thuật toán Yen's k-shortest path cho k đường đi ngắn nhất để lấy đường thứ 2, thứ 3...
Xét tình huống đi từ A đến B, nhiều tuyến đường, tìm đường ngắn nhất, bỏ qua các đường kém hơn về độ phức tạp thời gian.
Ví dụ:

Ví dụ như cây cầu đỉnh B. Muốn qua từ A đến C, không ai leo đỉnh B. Đường A-C dài hơn một chút.
Nhiều cách tìm shortest path. Nhưng phải tìm đến (k-1) đường ngắn nhất.
Thuật toán k-shortest Path
query= \"\"\" MATCH(start: place{id:source}),*end: Place {Id:destination}) Call algo.kshortestPaths.stream(start,end,10, \"distance\") Yield nodeIDs, path costs, index Return index. [node in algo.getNodeByID(nodeId[1...-1]) | node.id] aS, Reduce (acc=0.0, cost in costs | acc+cost ) as total cost \"\"\"
params= {\"source\": Alex,Destination: \"US\"}
With driver.selection() as session:
Row session.run(query, params)
df = pd.DataFrame[dict(record) for record in rows])
pd.set_option('max_colwidth', 100)
display(df)