我有一个无向加权图G =(V,E),其中V代表节点,E代表边。通过Dijkstra算法,我得到了一个最短路径树Ts =(s,V),它根源于源节点s并跨越图G中的所有节点V.然后我选择了一个子树Tm =(s,K),(其中K是最短路径树Ts =(s,V)的V)的子集,其将s连接到所有V个节点中的仅K个节点,即,子树Tm是最短路径树Ts的子集。
我的问题是现在我怎么能通过参数或引理/定理来证明这个最短路径树Ts的子树Tm也是最短的树?先感谢您。
答案 0 :(得分:0)
嗯,我猜这个SPT(最短路径树)只是一个从源到另一个节点的边缘的树(如果不是这样的话,它可能包含周期)。
然后,如果您选择原始SPT的某个子树,则必须保留树的属性,然后我们会遇到一些情况:
Trivial Tree:只有一个节点,没有边
no problems in here, it's a SPT (empty)
Not-Trivial Tree:两个或更多节点,显然有边缘。
this is kind of tricky.
if you suppose that this sub-tree is rooted on source, then its easy
to see that the sub-tree will be a set of shortest paths between
the source and the other nodes, making it be a SPT ROOTED ON SOURCE.
otherwise, it wont be a SPT, cause if its rooted on some other node
(instead of source), the path from the root to other node (different
from source) may not be minimum.
我猜您对源自源的子树感兴趣,但很容易看出子树只包含最短路径(因为它是一个子树的子树) SPT本身),然后它将是SPT。
答案 1 :(得分:0)
由于问题不够明确,我认为您的问题如下 -
如果Ts =(s,V)是图G =(V,E,W)的最短路径树(以s为根),则证明T's =(s,K),Ts诱导的子树通过K(\ subset V),是由K诱导的G的子图G'=(K,E',W)的最短路径树(以s为根)。
你可以通过矛盾证明。
证明(非正式):让你在K中成为一个顶点。因为,u也在V中,路径p = s - >由Ts给出的是最短的。假设,T'不是G'的最短路径树。然后路径p = s - >由T给出的并不是G'中最短的。这意味着,存在另一个顶点v(在K中为\),使得 p不包含v ,并且v创建了一个类似s - >的快捷方式。 v - > ü。
由于路径p = s - >由Ts给出的是G中最短的, p必须在s和u之间的某处包含v ,这会导致矛盾。