动态编程python程序的回溯

时间:2015-12-03 06:13:00

标签: python matrix

编写动态编程代码后,我得到以下矩阵:M = [[0 0 0 0 0 0 0] [1 0 0 1 0 0 1] [2 1 0 0 1 0 0]]。现在,我需要执行一个回溯操作,如下所示:

1.找到矩阵的最后一列中的下一个前一个数字,即矩阵的第3行,第5列。

2.然后找到该元素的下一个最大相邻数字' 1'水平,垂直或对角线左侧。在这种情况下,矩阵的第2行,第4列为1。

3.执行相同的程序,直到达到' 0' 0在第一列并返回位置。

要执行此步骤,我至今已编写以下代码:

    text='ACAGCAG'
    pattern='GC'

    n = len(pattern)
    m = len(text)

    M=numpy.zeros([n+1,m],int)

    M=[[0 0 0 0 0 0 0] 
       [1 0 0 1 0 0 1]  #Since I can't paste whole code,
       [2 1 0 0 1 0 0]] #I am pasting the #matrix and traceback function.


def trace(M,text,k,compare) :
a=list(numpy.array(M).reshape(-1,))
r=len(a)
for i in range(r-1,r-m,-1):
        if a[i] < k:
            b=a[i]
for j in range(r-m,r-1):
    if a[j]<k and a[i]==a[j]:
        l= max(i,j)
        return l #completed the first step till here

 s = trace(M,text,2,min)
 print s

我的查询是如何继续第二步?

0 个答案:

没有答案