如何在有向图中找到最大化权重乘积的路径?

问题描述

给出一个权重在0到1之间的有向图。如何找到最大化权重乘积的路径?

想要:

path,prob = maximum_likelihood(4,[[1,2,0.2],[1,3,0.5],4,0.1],[2,[3,0.3]],1,4)
    assert prob == 0.15
    assert path == [1,4]

我已经找到了最大的产品

def maximum_likelihood(num_vertices,edges,s,t):
    
    ll = [0] * num_vertices
    ll[s-1] = 1

    for edge in edges:
        dst = edge[1]-1
        prev = edge[0]-1
        p = edge[2]
            
        if ll[dst] < ll[prev] * p:
                ll[dst] = ll[prev] * p
    return ll[t-1]

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)