Acho que, para o algoritmo funcionar corretamente, basta que estas quatro condicoes sejam satisfeitas:
a[0][0] <= 0
b[0][0] <= 0
c[0][0] <= 0
Pelo menos um dos três ser igual a 0.
Isso porque a posição [0][0] das matrizes só é consultada quando o algoritmo calcula a[1][1].
Abraços.
Igor.
Para calcular a similaridade (as matrizes a, b e c) as condições funcionam.
Um pouco de cuidado precisaria ser tomado para determinar o alinhamento.
Para tornar o algoritmo de alinhamento mais independente é melhor fazer
a[0][0] = 0
b[0][0] = - infinito
c[0][0] = - infinito
Por exemplo, se estivermos determinando o alinhamento e estamos, digamos, na posição [0,1] da matriz b com pontuação -37, usando a recorrência dada em aula para b[0,1] o alinhamento pode não ser encontrado se fizermos as inicializações com b[0,0] = 0 e a[0,0] < 0.
Para funcionar nesse tipo de caso, teria que fazer o algoritmo de alinhamento terminar quando uma das coordenadas for zero. Note que não é esse o caso no algoritmo de alinhamento dado em aula, que só pára a recursão quando i=0 e j=0.
Zé Augusto
Um pouco de cuidado precisaria ser tomado para determinar o alinhamento.
Para tornar o algoritmo de alinhamento mais independente é melhor fazer
a[0][0] = 0
b[0][0] = - infinito
c[0][0] = - infinito
Por exemplo, se estivermos determinando o alinhamento e estamos, digamos, na posição [0,1] da matriz b com pontuação -37, usando a recorrência dada em aula para b[0,1] o alinhamento pode não ser encontrado se fizermos as inicializações com b[0,0] = 0 e a[0,0] < 0.
Para funcionar nesse tipo de caso, teria que fazer o algoritmo de alinhamento terminar quando uma das coordenadas for zero. Note que não é esse o caso no algoritmo de alinhamento dado em aula, que só pára a recursão quando i=0 e j=0.
Zé Augusto
Ops! Tem razão.
Sem querer eu fiz a suposição de que as pessoas estavam montando o alinhamento da mesma maneira como eu fiz (sem olhar as pontuações). #)