एकल सबसे छोटा पथ देने के बजाय, येन का k-सबसे छोटा पथ एल्गोरिदम k सबसे छोटे पथ देता है ताकि हम दूसरा सबसे छोटा पथ और तीसरा सबसे छोटा पथ और इसी तरह प्राप्त कर सकें।
आइए एक परिदृश्य पर विचार करें कि हमें स्थान A से स्थान B तक यात्रा करनी है और स्थान A और स्थान B के बीच कई मार्ग उपलब्ध हैं, लेकिन हमें सबसे छोटा पथ ढूंढना है और उन सभी पथों को उपेक्षित करना है जो अपने समय जटिलता के संदर्भ में कम विचार किए जाते हैं ताकि गंतव्य तक पहुंचा जा सके।
आइए एक उदाहरण से समझें:

दिए गए उदाहरण को पुल के रूप में मानें जिसकी चोटी B है। यदि कोई पुल को A से C तक पार करना चाहता है, तो कोई भी पुल पार करने के लिए चोटी पर नहीं जाएगा। इसलिए A से C तक का पथ थोड़ा लंबा होगा।
सबसे छोटा पथ पाने के कई तरीके हैं। लेकिन हमें (k-1) तक सबसे छोटा पथ ढूंढना है।
k-सबसे छोटे पथ के लिए एल्गोरिदम
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)