����� �� �����.


������ ���������.

����� � �������, ��������, �������������������:
����� ���������������������, ���������.

�������.

����� ���������� ���������� ����� ����� �������� � ��������� ����������� ������������������ �������� �������������� �������� [Ukkonen, 1985] ������� �� ������� ������������� ����������������, ������ ������� O(dm) ������� � ������, ��� d � ��� ���������� ����� �������� xy, � m � ������� �� ���� ���� �����. ����� �������, ���� ����� ����������, ����� ���������� ����� �������� ����, �� ���� ����� ������ ������. �������� ���� ��������� ������� � ���������� ������ �������� ���� � ������������ ����� � ������� di,j, � �������� ���� ���������� �������� ���������� di,j.

��� � �����, ����� �������, ��� m < n. ��������, ��� � ������ ������������� ���������������� di,j ��������, ������� ����������� �� ���������� � ������ �������������� ����������� ��� ������� �������� �������� ������� (11). �� ���������� ���������� dm,n, ������������������ �������� �������������� ����������� ���� �������� �������������� ���� ����� �������, ���������� �� ���������, ������ ����������� di,j.

����������� ����� ���������� ������� d ����� ����������� ������������� ������ � ���� �� (i, j)(i', j') ���������� ������ ���� di'j' �������� �� di,j. ���������� � ���������� ���� ������������ �������� ��������� �����, ���������� �� ���� ����� (i, j) � ������������, �������������� � ������������ (�� �������� ������ � ������� �������) ���, ����������� ������� ����. ��� ���� ��������, ��������������, ��������, �������, � ����� ������ � �������������. ������� � ������ ����� ����������� ���� ���� ��������, � �������� di,j �����, ����� �������, ���������� ������ ����� �� ����� ���� �� (0, 0)(i, j). ����������� ����� ������ � ������ ���������.

di-1,jsingle_arrowdi,j   w(xi,eps) di,j-1single_arrowdi,j   w(eps, yj) di-1,j-1single_arrowdi,j   w(xi,yj)

�������� �������� �� ���� �� (i,j)(i', j') � ����� ������������ ������� ��������� ������������, ��� d � ����� ��� ���� ��� � ����:

di' j'= di,j + d (45)

���������� di,j ����� ����� �������� ��������, ����� �������, ����������� ����� ����� ���� �� d0,0dm,n � ����� �����������.

��� ����������� ������ �������� ���� � ����� (���, �������� � ������ [Aho, Hopcroft, Ullman, 1974]) ����� ������������ �������� �������� (Dijkstra), ������� ������� ��� �� ����� O(mn log mn). ������, ��������� ����� ��������� ����� � ����� ����������� �������, ��������, ����� ������������� ����������������. ���� ����� ��������, ��� ����� ��������� ����� ������ ������� d, ������� ����� ���������.

�������� dm,n ����������� ������ �� ������ di,j �� ��������� ���� �� (0,0)(m,n). �������� ��������, ��� ��� ���������� ������� ������� O(n), ��� ��� ����� ����� ���� �������� �� ������ m+n ���. ���������� ������ ���������, ����������� �� dm,n ��������� �����, ������, h. �� 11 ����� ������, ��� �������� dij ��������� ���������� ����� ������ ���� � ����� �����������. ����� �������, ���� dm,n < h, � ��������� di,j > h, �� ��� di,j �� ����� �������� ������ ���� � (m, n).

��������� ����� wmin ����������� ���� ���� ������� � ��������, �� ����

wmin = min{w(a, eps), w(eps, a) : abelongsbig_sigma} (46)

 

��� �������� big_sigma. ��� ��������� ������������� ����� wmin > 0. ����� ����, ����������� ��������� ������� ���������� ������ ������� kbelongs[-m, n] ����� �������, ����� ��������� k �������� �� ��������� (i, j), � ������� j - i = k.

���������� ������������ ���� �� (i, j)(i', j') � ����� �����������. ������� (i, j) ����� �� ��������� k = j - i, � (i', j') � �� ��������� k' = j' - i'. ���� k' - k < 0, �� ���� �������� �� ������ |k' - k| �������� (������������ ���), � ���� k' - k > 0, �� ������ |k' - k| ������� (�������������� ���). �� (45) �� ����� ���������:

di',j' > di,j + |(j' - i') - (j - i)|*wmin (47)

����� �������, di,j > |j - i|*wmin ��� ������� (i, j) �� ���� �� (0,0)(m, n). ����� ����, ��� ��� di,j < dm,n ��� ������ (i, j) � ����, �� ����� ���������:

|j - i| < di,j/wmin < dm,n/wmin (48)

��� ���������� dm,n ���������� ����������� �������� �� ������������ ����� dm,n/wmin < j - i < dm,n/wmin. �� ����� ����, ��� ����� ����� ������ ��� ������, ��� � ����� �������� ����.

���������� ���� �� (0, 0)(m, n) � ����� �����������. ��� ����� ��������� �� ��� ����: �� (0, 0)(i, j) � �� (i, j)(m, n). �� (47) �� ����� ���������:

dm,n > d0,0 + |j - i|*wmin + |(n - m) - (j - i)| * wminderivesdm,n > (|j - i| + |(n - m) - (j - i)| * wmin (49)

 

���������� ��� ������: ������, ����� j < i, � ������, ����� j > i. � ������ ������ (49) ��������� ���

dm,n > (-(j - i) + n - m - (j - i))wminderivesdm,n/wmin - (n - m) > -2(j - i) (50)

 

� ������ ����, ��� j - i ����� �����!!!!!!!!!!!!!!!! 0, ������ ��������

(51)

 

��� ������, ����� j > i, ���������� ��� �����������, � ������, n - m > j - i, � n - m < j - i. � ������ ������ (49) ��������� ���

dm,n > (j - i + n - m - (j - i))wminderivesdm,n/wmin > n - m (52)

� �� ������

dm,n > (j - i + j - i - (n - m))wmin derivesdm,n/wmin - (n - m) > 2(j - i) - 2(n - m) (53)

� ������ ���� �����, ��� � ������ ������ j - i �������� ����� ������ > 0, ��������

(54)

��������� (51) � (54), �������� ��������� ����������� �� j - i ��� ����� (i, j), ������� �� ��������� ���� �� (0,0)(m, n) � ����� �����������:

-p < j - i < n - m + p,
���
(55)

���������� �� (55) �������� ��, ��� ��� �������� ���������� ����������� d(x, y) < h ����� ������������ ����������� di,j, ������� �� ����� ����� ����������� -pn-m+p, ��� p = [(h/wmin - (n - m))/2].

�������� ��� ���������� ����� ���������� �������� �������� �� ������� (19). �������� ���������� ������������� ��������, ���� �������� �� ����������, � �������� dm,n, ���� ��� ������ ��� ����� ����������. �������� �� ����������� � ����������� ������, ���������� ���������� (52), ��� ��� ���������� ������ ���� �� ������� ���� ����� �������� ���� ����� �������� �� ����������� ��������� ������� � ��������. � �� ����������� ������ ����������� �������� di,j �� ������������ �����, ���������� (55). �� ���������� ���� ���������� ������������� �������� dm,n ������������ � ���������.



distance_test(h)

   if h/wmin < N - M

      - ����������� ������

      RETURN(-1)

   else

      - �������������

      P = INT((H/Wmin - (n - m))/2)

      d0,0 = 0

      for j = 1 to min{n, n - m + p}

         d0,j = d0,j-1 + w(eps, yj)

      - ��������� dm,n

      for i = 1 to m

         for j = max{0, i - p} to min{n, i + n - m + p}

            if j = 0

               di,0 = di-1,0 + w(xi,eps)

            else

               di,j = min{di-1,j + w(xi,*),

                         di,j-1 + w(eps,yj), di-1,j-1 + w(xi,yj)}

      if dm,n > h

         return(dm,n)

      else

         return(-1)

������� 19: ��������� �������� ���������� ����� ����� ��������


h = (n - m + 1)wmin

while (d = distance_test(h)) < 0

   H = 2H

������� 20: ���������� ���������� ����� �������� ��������

��� ������ �� m+1 ����� ���������� ����������� ��������� ������� �� ����������� n-m+2p+1, ��� �������� O(h), ��� �������� ����.

p = [(h/wmin - (n - m))/2] derives 2p < h/wmin - (n - m) derives n - m + 2p + 1 < 1 + h/wmin= O(h) (56)

����� �������, ��������� �������� ����������� �� ����� O(hm), � ������� O(hm) ������, ���� ����������� ������ �������� �� ������������ �����. �������� ��������, ��� ���� ��������� ������ �������� ���������� ����� ��������, �� ���������� � ������ ����� ��������� �� O(h) �����, ��� ��� ��� ���������� ������� ������ ��������� ������ �������� ���������� ������ (�������� ��������� � �������� ��������).

����� ����� ����������� ���������� ����� ����� ��������, ����� �������� ��������� ���������� �������� � ��������������� ������������� ���������� h, ���� �������� �� ����������. �������� ��� ����� �������� �� ������� 20. � ������ ������ ������������� ����������� �� ��������� �������� ���������� ���� wmin, ������� ����� ��������������� �����������. �� ���������� d ��������� ���������� ����� ����� ��������.

��������� ��������� ��������� �������� h0, ���������, ������ 2h0, h1, ���������, ������ 22h0, h2, � �.�. ����� �������, r-� �������� hr ����� 2rh0. ���� ��� ����������� d(x, y) ��������� r ������� distance_test, �� ����� ��������� ����� , �� ���� O(m(2hr - 1)), ��� ����� O(mhr). ������, ��� ��� d > hr/2, ����� ��������� ��������� ����� O(dm). ����������� ������������������ �������������� ����� ���� ��������� �� ���������� ��� � ������ �������-������.

������� ���������� ����� ������� ������, ����� ���� ���� �������� �������������� ����� (�� ���� ���������� ���������� �����������), ��� �������� ����� ��������� ���������� � ������ � ��������� ����� �����������, �� �������� O(dm), ������ ����� ���������� d(x, y).




����� �� ��������, � ���������� � ���������.

SpyLOG