Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.27 KB | None | 0 0
  1. def longestPath(self, order):
  2. '''
  3.  
  4. :param order:
  5. :return:
  6. '''
  7. #
  8. self.order = order
  9. source, sink, edgeDict, weightDict = (self.source, self.sink, self.edgeDict, self.weightDict)
  10. #
  11. weightDistance = {node: -999 for node in order}
  12. #
  13. ordern = order[order.index(source)+1:order.index(sink) + 1]
  14. traceback = {node: None for node in ordern}
  15. weightDistance[source] = 0
  16.  
  17. #
  18. for node in order:
  19. #
  20. r node in edgeDict:
  21. #
  22. for adjNode in edgeDict[node]:
  23. #
  24. if weightDistance[adjNode] < (weightDistance[node] + weightDict[node][adjNode]):
  25. #
  26. traceback[adjNode] = node
  27. weightDistance[adjNode] = weightDistance[node] + weightDict[node][adjNode]
  28.  
  29. longestPath = []
  30. #
  31. while sink in traceback.keys():
  32. #
  33. longestPath = [sink] + longestPath
  34. #
  35. sink = traceback[sink]
  36.  
  37. #
  38. longestPath = [source] + longestPath
  39. #
  40. longestDistance = weightDistance[self.sink]
  41.  
  42. return longestPath, longestDistance
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement