
上面的图是自己画的,每个点之间的费用已经写明。每天练习编程,自己给自己出题,快速解决以上从Y点到G点的最便宜路径问题。
承接国内外留学生Python Homework ,assignment,代写Python家庭作业。Python留学生教学辅导。Python留学生作业辅导。
"""
使用动态规划求Y到G的最短路径解决方案,
以下程序设计了一个Node类。它表示一个节点,每个节点有前置节点及到前置节点的权值。
即一个节点到另一个节点的费用。
"""
class Node:
def __init__(self,name,prenodes): # prenodes = {a:10,b:20,c:30},a,b,c也是节点
"""prenodes是它的前趋节点字典"""
self.name = name # 节点的名字
self.prenodes = prenodes
def f(node):
"""node:一个节点"""
if node.prenodes: # 如果它有前置节点
dist = []
for n in node.prenodes: # 遍历它的所有前置节点
dist.append( f(n)+node.prenodes[n] ) #
return min(dist)
else:
return 0
y = Node('y',{}) # 第一个节点,没有前置节点
d = Node('d',{y:5}) # 这个节点有一个前置节点
e = Node('e',{y:8})
x = Node('x',{y:2})
a = Node('a',{d:9,e:3})
b = Node('a',{e:2})
c = Node('c',{x:1})
g = Node('g',{a:3,b:2,c:8})
print(f(g))
承接国内外留学生Python Homework ,assignment,代写Python家庭作业。Python留学生教学辅导。Python留学生作业辅导。
