给出一个数组(2,2,2)。我想找到一条最大的跨产品价值之路。
我知道我可以列出所有可能的路径,但是时间和空间复杂度会很高,因为数组的形状很大。
鉴于阵列垫,我想使用max_prb函数来计算路径的以下概率并找到具有最大概率的路径:
a = a * a = 0.2 * 0.5 = 0.01; a = a = b = 0.2 * 0.5 = 0.01;
- a-> b-> b = 0.8 * 0.9 = 0.72;
- ...
我的目标是调用max_prb_path并获取[a,b,b] 例如:
mat = np.array([ [ [0.2, 0.8], [0.3, 0.7] ] ,[ [0.5, 0.5], [0.1, 0.9] ] ])
def max_prob_path(mat):
return(path)
>> max_prob_path(mat)
[1] [a,b,b]
我认为解决方案之一是递归或BFS,但我对数据结构或算法不熟悉。有什么建议吗? (假设起点是a,但没有终点)