T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 Oplossing Langste Pad Probleem Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Oplossing langste pad probleem Restrictie: het gegeven voorbeeld was een boom: voor ieder tweetal knopen v,w is er precies een pad van v naar w. v w Nb:het langste pad probleem in bomen is oplosbaar in polynomiale tijd Aan te tonen: gevolgde O(1) procedure voor bepaling langste pad is correct
T U Delft Parallel and Distributed Systems group PGS Correctheid procedure Claim1: als graaf opgepakt wordt aan knoop w en v is onderste knoop dan is v eindpunt van een langste pad in G v w Claim 2: als v het eindpunt is van een langste pad in G, dan is het andere eindpunt van dit pad een onderste knoop als G opgehangen wordt aan v.
T U Delft Parallel and Distributed Systems group PGS Ad claim 1 Claim 1: als graaf opgepakt wordt aan knoop w en v is onderste knoop dan is v eindpunt van langste pad in G Stel v is geen eindpunt langste pad. Twee mogelijkheden (i) langste pad loopt geheel links of rechts van pad w-v (ii) langste pad kruist pad w-v v w
T U Delft Parallel and Distributed Systems group PGS langste pad links van w-v w Ad (i) Langste pad loopt geheel links(rechts) van w-v: Stel langste pad is x-y. Laat a hoogste knoop op pad x -y zijn. Maar w-v is langer dan a-y. Dus is x-a-w-v een langer pad. Tegenspraak! v x y a
T U Delft Parallel and Distributed Systems group PGS langste pad rechts van w-v gaat geheel analoog aan voorafgaande geval: langste pad links van w-v
T U Delft Parallel and Distributed Systems group PGS langste pad kruist pad w-v v x y w Geval (ii): x-y kruist w-v. Zoek laagste knoop a die w-v en x-y gemeenschappelijk hebben.Nu is a-v langer dan a-y. Dus x-w-a -v is een langer pad. Tegenspraak! a
T U Delft Parallel and Distributed Systems group PGS Conclusie Veronderstelling dat v geen eindpunt is van langste pad leidt in beide gevallen tot tegenspraak => v moet wel eindpunt van langste pad zijn Als nu v bovenste knoop is, dan moet tweede eindpunt van langste pad onderste knoop zijn: dit eindpunt kan derhalve gevonden worden door G op te hangen aan v => twee stappen in constante tijd voldoende om langste pad te bepalen : O(1)-algoritme voor LPad