मैं यह पता लगाने की कोशिश कर रहा हूँ कैसे पथ ग्राफ़ Eppstein के एल्गोरिथ्म के अनुसार इस में कागज काम करता है और कैसे मैं फिर से संगठित कर सकते हैं कश्मीर से कम से कम पथ रों को टी इसी ढेर निर्माण के साथ एच ( जी ) ।
अब तक:
एक शीर्ष छोड़ने सभी किनारों शामिल v ग्राफ में जी जिसमें एक कम से कम पथ का हिस्सा नहीं हैं जी । वे "समय की बर्बादी" कहा जाता द्वारा ढेर-आदेश दिया गया हैं δ ( ई ) पर उसके स्थान पर एक कम से कम पथ पर एक के इस बढ़त का उपयोग कर। दिज्क्स्त्र को लागू करने से मुझे टी से हर शिखर पर सबसे छोटा रास्ता मिल जाता है ।
मैं किनारे की लंबाई + (सिर के शीर्ष का मान (जहां निर्देशित किनारा इंगित कर रहा है) का मान लेकर इसकी गणना कर सकता हूं - पूंछ का शीर्ष (जहां निर्देशित किनारा शुरू हो रहा है) का मान। अगर यह है। कम से कम रास्ते पर नहीं है, अगर यह हैसबसे छोटे रास्ते पर है।
अब मैं का निर्माण एक 2-मिन-ढेर किनारों के सेट heapifying द्वारा ओ यू टी ( v ) उनके के अनुसार δ ( ई ) किसी के लिए वी ∈ वी , जहां जड़ ओ यू टी आर ओ ओ t ( v ) का केवल एक बच्चा (= सबट्री) है।
आदेश बनाने के लिए मैं डालने ओ यू टी आर ओ ओ टी ( v ) में एच टी ( एन ई एक्स टी टी ( v ) ) टर्मिनल शिखर में शुरुआत टी । हर एक शीर्ष किसी भी तरह छुआ, जबकि यह डालने एक के साथ चिह्नित है है * ।
अब मैं निर्माण कर सकते हैं के बाकी डालने से एच ओ यू टी ( डब्ल्यू ) में एच टी ( v ) । में हर शिखर एच जी ( v ) या तो शामिल 2 से बच्चों को एच टी ( v ) और 1 से एच ओ यू टी ( डब्ल्यू ) या 0 पहली और से 2 दूसरे से और एक 3-ढेर।
साथ मैं निर्माण कर सकते हैं एक DAG बुलाया डी ( जी ) प्रत्येक के लिए एक शीर्ष युक्त * से -marked शिखर एच टी ( v ) और प्रत्येक गैर-रूट शिखर के लिए से एच ओ यू टी ( v ) ।
की जड़ों में डी ( जी ) कहा जाता है ज ( v ) और वे अनुसार करने के लिए कोने वे हैं से जुड़े हैं करने के लिए ओ यू टी ( v ) एक "मानचित्रण" द्वारा।
अब तक सब ठीक है।
कागज कहता है कि मैं निर्माण कर सकते हैं एक रूट डालने से आर = आर ( रों ) और को यह जोड़ने ज ( रों ) के साथ एक inital किनारे से δ ( ज ( रों ) ) । D ( G ) के कोने P ( G ) में समान हैं, लेकिन वे भारित नहीं हैं। किनारों की लंबाई होती है। फिर प्रत्येक निर्देश दिया बढ़त के लिए ( यू , वी ) ∈ डी ( जी )में इसी किनारों बनाया है और के आधार पर भारित कर रहे हैं δ ( v ) - δ ( यू ) । उन्हें हीप एज कहा जाता है। फिर प्रत्येक शिखर के लिए वी ∈ पी ( G ) है, जो कोने की एक जोड़ी जोड़ने बढ़त एक कम से कम पथ में नहीं प्रतिनिधित्व करता यू और डब्ल्यू , "पार किनारों" से बनाई गई हैं वी करने के लिए एच ( डब्ल्यू ) में पी ( G ) लंबाई वाले δ ( ज ( w । में प्रत्येक शीर्ष पर केवल 4 अधिकतम की एक आउट गोइंग डिग्री है ।
R से शुरू होने वाले P ( G ) के रास्तोंको G में s - t -paths केबीच एक से एक लंबाई के पत्राचार माना जाता है।
अंत में एक नए ढेर का आदेश दिया गया 4-हीप का निर्माण होता है। में एक पथ के लिए प्रत्येक शीर्ष मेल खाती पी ( G ) पर निहित आर । किसी भी शीर्ष के माता-पिता के पास एक कम बढ़त है। एक शीर्ष का वजन संबंधित पथ का हिस्सा है।
To find the shortest paths I use BFS to and "translate" the search result to paths by using .
Unfortunately, I don't understand how I can "read" and then "translate" it through to receive the shortest paths.