18
HAL Id: inria-00073495 https://hal.inria.fr/inria-00073495 Submitted on 24 May 2006 HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés. An Algorithm for Estimating all Matches Between Two Strings Mikhail J. Atallah, Frédéric Chyzak, Philippe Dumas To cite this version: Mikhail J. Atallah, Frédéric Chyzak, Philippe Dumas. An Algorithm for Estimating all Matches Between Two Strings. [Research Report] RR-3194, INRIA. 1997. <inria-00073495>

An Algorithm for Estimating all Matches Between Two Strings

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: An Algorithm for Estimating all Matches Between Two Strings

HAL Id: inria-00073495https://hal.inria.fr/inria-00073495

Submitted on 24 May 2006

HAL is a multi-disciplinary open accessarchive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come fromteaching and research institutions in France orabroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, estdestinée au dépôt et à la diffusion de documentsscientifiques de niveau recherche, publiés ou non,émanant des établissements d’enseignement et derecherche français ou étrangers, des laboratoirespublics ou privés.

An Algorithm for Estimating all Matches Between TwoStrings

Mikhail J. Atallah, Frédéric Chyzak, Philippe Dumas

To cite this version:Mikhail J. Atallah, Frédéric Chyzak, Philippe Dumas. An Algorithm for Estimating all MatchesBetween Two Strings. [Research Report] RR-3194, INRIA. 1997. <inria-00073495>

Page 2: An Algorithm for Estimating all Matches Between Two Strings

ISS

N 0

249-

6399

ap por t de r ech er ch e

��������������� ������� ��������������� ������� ����������� � ��!"������# �$���%���&�'�(�!"�����)# ��

* + * , -/.1032547698 :5.;0 < =>472�8 ?@4A2�+B- ?C,�,ED ?@4GF�6IHJ=K HL4�M HNHJ+ O M . PQ47032�+B-R=

SUTWVYX[Z\T^]�_a`[b'c�bed�d�bgfihkjklnmoqp mo lrTWsut�fgvxwybgz"h[{ XnTW]^T}|[| o�~�� SUb5�

�N�[�q�\�_\�nT}���q�����

cfU�� S$���

Page 3: An Algorithm for Estimating all Matches Between Two Strings
Page 4: An Algorithm for Estimating all Matches Between Two Strings

������������� ����� ����������������������������! ���#"$��%&�'(%)�+*,%&%-�/.0*,�213�#�������

46587:9#;<58=->@?�A�B&A�C&CDA�EGFIH�J:KLNM KL JO58PRQSEUTGVWAYXZFI[�9\58=]5_^@^ LG`�a 46A�bced#fg�hGgjijkml!ng�oqprgtsruwvwprxyprgysg{zex�|}srx�~�s$���qhY�@uwsrpr�+~qg�-� uN��g{ze��srvwu

� |}�:�@u � z���g � gyx d g � x d gtoj�������}��km��~qp�o����w���Yk �����:|}vwgy�

�����y�¡ ¡¢�£w��¤ ¥ g�vwp§¦�gZ| � |wo���u�h�pr¨ygy��|}srvwu � p§z d h�©_u � gy��z�p�hª|Nz�p�oqv«z d gª��xyu � gG¦�gyx{z�u � uw©hª|Nz�x d gy�j�@g{z­¬�gyg�o6|�z�g¯®�zt��z � p�oqv�uw©�srg�oqv}z d±° |woq�±|��:|Nz�z�g � o±��z � p�oqvZuw©�srg�oqv}z d±²´³ z d pr�pr�jz d g�¦�gyx{z�u � uw�qz�|}p�oqgy�µ¬ d g�o�z d g��:|Nz�z�g � o6pr�j��srpr��|}sru�oqv«z d g�z�g¯®�zy¶D|woq�±z d gGo<~:ht�#g � uw©hª|Nz�x d gy�-pr�·xyu�~�o�z�gy�G©_u � g�|}x d �#uw��p§z�pru�o�¸ c�d g � |woq��u�hGpr¨ygy�G|}srvwu � p§z d h´z�|}¹wgy����g{z�g � h�p�o�pr��z�prxz�p�hGgUº�»�» °G¼{²¾½}¿DÀ}Á� » ²Ã½�½ ¬ d g � g ¿DÀ}Á� » ²Ã½ pr��z d g�z�p�h�gS©8u � �@g � ©8u � hGp�oqvt|�xyu�o�¦�uws�~+z�pru�ouw©�zĬÅu�¦�gyx{z�u � ��uw©���pr¨yg ² g�|}x d ¸ ced gR|}srvwu � p§z d hÇÆ\oq�:�Y|woÈ~�o<��p�|}��gy��gy��z�p�hG|Nz�u � uw©ez d g��xyu � gy�y¶S¬ d uw��g�¦w| � p�|woqxygÉpr�!�:| � z�prx�~qs�| � s§�Ê��hª|}srsS©8u � ��xyu � gy�Zz d |Nz�| � gÉxysruw��gÉz�u ² ¶�p˸Ìg}¸r¶©_u � |}��� � uy®qp�hG|Nz�g�u�xyx�~ ��� g�oqxygy�3uw©-z d g��:|Nz�z�g � oÉp�oÍz d g�z�g¯®+zy¸�Î�u«|}����~:h��qz�pru�oq�3| � g�hª|}��g|}�#u�~+z·z d ge� � uw�:|}��prsrpr��z�prx�x d | � |}x{z�g � pr��z�prxy�Ïuw©#z d gep�o��:~+zy¶<u � |}�#u�~+z&z d g�o<~�hY�#g � uw©#��p§Ð#g � g�o�z���+hY�#uwsr��|}�:�@g�| � p�oqvtp�oªÑ(u �ÏÒ »Óp˸Ìg}¸r¶qz d g3|}sr� d |}�@g{zÏ��pr¨yg3oqgygy�«o�u}zÅ�#gSh�~qx d ��hª|}srsrg � z d |wo²¾½ ¸ ced g3��uws�~+z�pru�o«g¯®+z�g�oq����z�u�z d g3¬Ågyprv d z�gy��x�|}��gt|wo��Zz�u d prv d g � ��p�h�g�oq��pru�oq�y¸

Ô]ÕYÖ×­ØÚÙ�Û Ö×-Ü�ݧØÚÞÓßyà

� �[Tâánmo�pno l o s X o l s X o�ã �·ä ã bÈä·åYsOæY� o �[s�å��[l­á~ åNç Z T}� oxpnoÅè å\]}�[s o Z\� hwä·åYsOæY� o �[s�å��[l­á hwé{ �OêNënhk��ì[�¯ë\�xd���t�f�����5b�v;t oqpno�íªî jkl Z\�[s o{ïc mo ] mo |[Xwå�� o�ðqî �\� ï ê[�u�\�Sñ\�3ë�ë �\�-ò c mo ] mo s�å�|nT o�ðDî ��� ï ê[���\�Sñ��Së\�7�¡ê

Page 5: An Algorithm for Estimating all Matches Between Two Strings

� � �����������#����%��R����¾���Ä%&�:�#�� ���#�������%&� "D� ����"&���%·��"D%&�%·���##% ��%��� "$������O��%&�

���� �������� ¤ Î�u�~q�e�:u�o�oqu�oq�e~:o«|}srvwu � p§z d hGg � |woq�:u�h�pr��ngU�#u�~ � s��Ìgy��z�p�hG|Nz�pru�o��:~Z¦�gyx{z�g�~ ���xyu � gS��gy�Åxyu�� ��oqxypr��g�oqxygy��g�o�z � g3~�oGz�g¯®�z�g3�:g�sru�oqv�~�g�~ � ° g{z�~�oRh�u}z�pr©I��g�sru�oqv�~qg�~ � ² ³ xyg¦�gyx{z�g�~ � gy��z�uw�qz�g�o�~Gg�oG©_|}pr��|wo�z-vwsrpr����g � srg�h�u}z�pr©#srgesru�o�vj�:~�z�g¯®+z�g�g{z-g�o�xyu�hG�qz�|wo�z-srg�o�u�h! � � gª�:gZxyu�� ��oqxypr��g�oqxygy�G|�x d |}�+~qgZ�#uw��p§z�pru�o#¸#"� |}srvwu � p§z d hGg � |woq��u�hGpr�<ng�|�~�o�gRxyu�hG��srg¯®qp§z<ng�:g�º�»�» °G¼{²Ã½}¿DÀ}Á: » ²¾½�½ g�oµz�g�h����Y�-ng{z�g � h�p�o�pr��z�g}¶·u f~ ¿DÀ}Á� » ²Ã½ gy��z�s�|Íxyu�h���srg¯®qp§z<ngZg�oz�g�hG���e�#u�~ ��� ng�|}srpr��g � ~�oqgtxyu�o�¦�uws�~qz�pru�oÉg�o�z � gt��g�~+®«¦�gyx{z�g�~ � �S��gtz�|}prsrsrg ² ¸�"� |}srvwu � p§z d hGgx�|}srx�~�srg�~:o6gy��z�p�hª|Nz�g�~ � ��gy����xyu � gy����~�p·gy��z�oqu�oµ��p�|}pr��ng�g{z���u�o�z�s�|!¦}| � p�|wo�xygRgy��zY�:| � z�prx$ ~�srp fg � g�h�g�o�z��#g{z�p§z�g��#u�~ � ��gy����xyu � gy�S� � u<x d gy���:g ² ¶@p˸Ìg}¸r¶I�#u�~ � srgy�Su<xyx�~ ��� g�oqxygy����prg�o�|}�% � � u<x d ngygy�D�:~jhGu}z�pr©q�:|woq�Wsrg�z�g¯®�z�g}¸D�S~qx�~�oqg d �+�#u}z d@fgy��gÏo&�Ìgy��z)©_|}p§z�gÅ��~ � srgy�)x�| � |}x{z<ng � pr��z�pr�+~qgy�� � uw�:|}��prsrpr��z�gy����gUs��Ìg�o�z � ngyg}¶$oqpI�O~ � srgto�u�ht� � gU��gU���+hY�#uwsrgy����p§Ð�ng � g�o�z��3|}���\| � |}pr����|wo�z��\|woq�srgªz�g¯®+z�gZg{z�srg�h�u}z�pr©j»Óp˸Ìg}¸r¶-s�|�z�|}prsrsrgZ��gRs�� |}sr� d |}�#g{z�o�gRo-ngyxygy����p§z�gZ�:|}���'�)(g{z � gZ��s�~q�Y�#g{z�p§z�g�+~qg ²¾½ ¸"*� |}srvwu � p§z d h�gU���­ng{z�g�o��Í|w~Zx�|}���#u�oq�-ng � ngUg{z�|w~�®Z��s�~q�ev � |woq��gy���:p�h�g�oq��pru�o��y¸

Page 6: An Algorithm for Estimating all Matches Between Two Strings

������������� ���� ��������� ������� �������� ���"!#�$ &%���'(�)*'+ -,.'/'0�213,.�546 �����7���

46587�9�;<5]=->@?�A98y;<=]=Ë;<9+:`�L ^�;�J;8=< L?> 8�@-AÏQ6@B<«^&C�8 L Jtb\P�5 LD> P LDE

[FC#J M C LRa�> 5HG L J E 5I8�JK L?E 8tC·;LAÄ;MJ L 8;8 L FON�PRQTSVUVW�S

a ? b�? AR?X&Y�ZB[+\�] ^�_a`abacB`�d^�d�cB`

H�J:KL¡M KL J�5_PRQ�9�Jae};�7afN�P�ghN�A

` @V<�;�5 >#L�M@Lji @<=kC#P L ;VCgh@\PDlTC L?> PD@BC#Jm8nY?â[-?poMWBq

SVr�osqVtZC L Q�9 LDE=> ;uJ�Q LNM#LwvH�J{; > P L

x b�dTcadBbOyT\ ^�zB{a|T}+Zs~�[+yM��bOyBZ�^��ab[�9\58=]5_^@^ Lª` C&<!; E

N�P�ghN�A` @B<!;<5 >@LGM@Lji @<=kC#P L ;VC

gh@\PDlTC L?> PD@BC#Jm8nY?â[-?poMWBq

SVr�osqVtZC L Q�9 LDE=> ;uJ�Q LNM#LwvH�J¯; > P L

� {(y���yM_T_�d^��T`�XOZ�]-[+yM�ab(yBZ�^��Tb

�7���;�;���s���� o� T�� o Z l Z\� p å¡çAT�� oqp Z ] � å�l T árX�ç���å�l o;� á T§ç Z�árTW� � árX o6� s�å�l o � o s�áÄå�lDåw�$ç Z�á s X o;���ao á�� oqo �$Z3á o�í á

� árlrT}� � åw��] o � � árX��QZ\� p Z |[Z�á­á o l � � á l T}� � å��5] o � � árX��3�-árXnT � T � á X o � o s�á­å�l3å � árZ\TW� oqp �gX o ��á X o|aZ�áÄá o l � T ��� ]^T p Z ] å�� � árX o á o�í áqh(Z\� p árX o ����ç �ko l�å��·ç Z�árs X o;� T � s�å��a�¡á oqp ��å�l o Z\s X |<å � TâárTâå�� `�c�X ol Z\� p å¡çAT�� oqp Z ] � å�l T árX�çÈá Z\V o;�'pno á o l çATW�[T � á T}sWá T§ç o� �î­î �h¡�� O¤£¥L¦�î � ï­ï �gX o l o9¢O¤£¥L¦<î � ï T � árX o árT ç o��å�l�| o l§��å�l­çAT}� � ZGs�å��?��å�]W��á T å���å���á��Wå7� o s�áÄå�l � åw� � T�� o � o Z\s X ` c�X o Z ] � å�l T árX�穨k� ps� Z����[� � T}Z �roqpo=� árT ç Z�áÄå�l)å��\á X o�� s�å�l o;� hu�gXwå �ro � Z�l T}Z\�[s o T � |[Z�lÄárTWsq�n]}Z\lr]�ª � ç Z ]W]B��å�l � s�å�l o;� á X[Z�á�Z\l o s ] å �ro á­åh�;h[T�` o `Wh��å�lxZ\|a|[lÄå í T§ç Z�á o ånsqs �[l l o �[s o=� åw�)árX o |[Z�á­á o lr��T}��árX o á o�í á ` �-åUZ ��� ��ç |wárTâå�� � Z�l o ç Z p[o Z � å��wáÏá X o|alÄå � Z � TW]WT � á T}sgs X[Z�lrZ�s�á o l T � á T}s � å���árX o TW�[|a�wá hwå�l�Z � å���á$árX o �Y��ç �ko l�åw� p T¬« o l o �Ná � ªwç � å\] � Z�|[| o Z\lrTW� � TW�­µå�l¯® î T�` o `Wh�á X o Z ]}|[X[Z �ko á � T�� o � o o p �wå¡á �ao çi�as X � ç Z ]W] o l�á X[Z\�°� ï `'c�X oF� å\]}�wá T å�� o�í á o � ps� á­å�á X o� o T � XNá oqp s Z �ro Z\� p áÄå�X[T � X o l p T§ç o � � T å�� � `

± oq��g¯® c g � h��-k |}srvwu � p§z d h��y¶�xyu�o�¦�uws�~+z�pru�o#¶#�:|Nz�z�g � o�hG|Nz�x d p�oqv+¸² �&³�´�µ(¶m·D¸§³D¹=º&»;º§¶m¸§¼�½�·D¾¿¾¿À9¶;ÁÃÂwÄ?¹�Å+¾¬¼�Æ�»=¼�µOµÇ·?ÈDÈM¹=ºÇ¸&½�º�¹=Éʸ§³D¼��'��� ���ÌËaº�¹;ÍH¼�Áθ0¶m¸OËa·?º§Æ�·?¼/¶;ÄuÆF´¿¸Ãµ+µÇÈM¹=Ä?µÇ¹=º§µ�Ï?´¬ÄÈu¶mºÇ¸�´�ÁηD¾�¶;º

�/¼ÎÅ+¾�¼Î¸�¸0ËT¶;ÁÃÂ;¶;º§Æ6¶;ÄuÆ�¸§³?¼�Ð �sÐ��¯¼�Èu¶mºÇ¸§ÉF¼�Ä£¸+¹;½y�¯¼�½Ñ¼�ÄuµÇ¼=ÐÒ �&³D¼�µÇ¼�Á�¹=Ä?Æ�¶mÄuƯ¸§³D´¬º§Æp¶m·D¸§³?¹;º§µ�Ó�Å&¹;º�Â/Å+¶;µBµÇ·?ÈDÈM¹=ºÇ¸§¼�Æ/´¬Ä$Èu¶mºÇ¸BÔ£À/¸§³D¼ �V¹=ÄD»��V¼�º�É �0¼�µÇ¼�¶;º§Á§³�Ëaº�¹mÍk¼�Áθ �(¾�Á�¹=É�Õ ���×ÖIØ�ÙmÚ�Ù�Û=Û£Ü

¹;½V¸§³?¼��a·?º�¹=ÈM¼�¶;Ä 0ÄD´¬¹=ÄLÐ

Page 7: An Algorithm for Estimating all Matches Between Two Strings

� � �S�##� � ��"W������¥ gt|}�:� � gy���Åz d gj©8uwsrsru�¬ep�oqv�� � uw��srg�h��&srg{zÏÑÃ�@gU|Yz�g¯®+z���z � p�oqv�|woq� Ò �@gU|��:|Nz�z�g � oZ��z � p�oqv���g{Æ\o�gy�Z���

Ñ�������� ����������� |woq� Ò �������������������� ��¥ g�¬Ï|wo�zSz�u�xyu�h��:~qz�gjz d g���� À ��!GÀ#"%$'&)( �+* ! ��, !�(.-/!0!yÁ Ñ &wÁ�1 Ò ¶Ip˸Ìg}¸r¶�z d gt¦�gyx{z�u �%2 ¬ d uw��g43Úz d xyu�h��#u oqg�o�z65�7�pr�Iz d g-o�~�hY�@g � uw©�hª|Nz�x d gy�W�#g{zĬÅgyg�oUz d g&z�g¯®+zW|woq�jz d g·�:|Nz�z�g � o3¬ d g�oUz d g&Æ � ��z$srg{z�z�g � uw©+z d g·�\|Nz�z�g � opr���#uw��p§z�pru�oqgy��p�oZ© � u�o�z�uw©Wz d g83Äz d srg{z�z�g � uw©$z d gj��z � p�oqvZ»Ó��gyg:9Wprv�~ � g�� ½ ¸/9:u � hG|}srs§�w¶:©_u � 3;�=<?>�@�@�@A> °CB6² ¶

5 7 ���� DEGF �:HGIKJMLON�P Q�N

¬ d g � g HGR P S ��g�oqu}z�gy�ez d gUT � u�o�gyx�¹wg � ���+hY�#uws.� HGR P S pr�3�jpr©)|woq�«u�o�s§��pr©6VW��X�|woq�!pr�Y<�u}z d g � ¬�pr��g}¸Z u�hG�:~+z�p�oqv�z d gÏ��xyu � gϦ�gyx{z�u � ��uws§¦�gy�-u�o�gϦ�g � ��pru�o�uw©@z d gÏ� � uw��srg�h�uw©�|}��� � uy®qp�hG|Nz�gÏ�:|Nz�z�g � oªhG|Nz�x d p�oqv[�|wo0g¯®q|}x{z«hG|Nz�x d xyu ��� gy���#u�oq���Gz�uµ|µ��xyu � g\5\� ² ³ |6hª|Nz�x d ¬ep§z d^] g ��� u � ��z�uÈ|µ��xyu � g\5\� ² B�] ¸� |Nz d g � z d |woª©_u�x�~q��p�oqvYu�oGxyu�hG�:~+z�p�oqvtz d g�g¯®q|}x{zÏ��xyu � gy�y¶+¬�gS��g{¦�gysruw�«|woRg_Gxyprg�o�z � |woq��u�hGpr¨ygy�R|}srvwu � p§z d hz�u!|}��� � uy®qp�hG|Nz�gYz d g�h«¸ ced pr�U|}srvwu � p§z d h�x�|wo±�@gYz�~�o�gy��z�u!|Nz�z�|}p�o6|woÉ| � �:p§z � | � ��srg{¦�gys&uw©�|}xyx�~ � |}x{�±|woq��¶�#gy��pr��gy�y¶�z d gS©_g{¬�g � z d gSo�~�hY�@g � ] uw©�hGpr��hG|Nz�x d gy�y¶�z d gS�#g{z�z�g � pr�Åz d gS|}�:� � uy®qp�hG|Nz�pru�oªz d |NzÅz d g3|}srvwu � p§z d h� g{z�~ � oq���Dg{¦�g�o�pr©Iz d g3gy��z�p�hG|Nz�gy�Z��xyu � gSx�|woZ�#g�©_| � © � u�h�z d gSg¯®�|}x{z�¦}|}s�~�g�¬ d g�oªz d gS�:|Nz�z�g � oZ|woq��z d g�z�g¯®+zd |�¦�g�srp§z�z�srg�hG|Nz�x d ¶�|woÉ|}s�hGuw��zSxyu�h���srg{z�g�hG|Nz�x d ¬eprsrs)�@g � gyxyuwv�oqpr¨ygy�6���«z d g�|}srvwu � p§z d hZ¸ ced gY|}srvwu � p§z d hsru�x�|Nz�gy�jz d gy��g�p�o�z�g � gy��z�p�oqv«�#uw��p§z�pru�oq�3¬�p§z d vwu<u��6|}xyx�~ � |}x{�w¶�¬ d prx d pr�3z d g��:p`_Gx�~qs§zU�:| � zUuw©-z d g�� � uw��srg�hZ¸± zSx�|woÍz d ~q�S�#gY~���gy�É|}�U|RÆ:s§z�g � ��|}©8z�g � |R©_g{¬¾�#uw��p§z�pru�o�� d |y¦�g��#gyg�o � gyxyuwv�oqpr¨ygy�6|}�3vwu�u��Éx�|woq��pr�:|Nz�gy�3©_u �|}��� � uy®qp�hG|Nz�gjhª|Nz�x d gy�y¶qz d gUg¯®q|}x{z���xyu � gy��x�|woZ�#g3xyu�h��:~+z�gy�Z©_u � z d uw��gU©8g{¬ �@uw��p§z�pru�oq�eu�oqs§�w¸

����� � u�®+p�hª|Nz�gU�:|Nz�z�g � o�hG|Nz�x d p�oqv d |}��hG|wo���|}�:��srprx�|Nz�pru�oq�y¶@p�oqxys�~q��p�oqvGp�o�z � ~���pru�o«��g{z�gyx{z�pru�o�p�o!|�xyu�h! �:~+z�g � ������z�g�h aâ�w�ObÓ¶�p�hª|}vwg±|wo�|}s§�+��pr�!|woq� �:|Nz�| xyu�hG� � gy����pru�oca �)bÓ¸ ± o,z d g�©8u � h�g � ¶S|}sr� d |}�#g{zZ���+hY�#uwsr�xyu ��� gy���@u�o��!z�u�g{¦�g�o�z��Up�o�|ª������z�g�h«¶#|wo��Í��p�oqxyg���u�h�gtg{¦�g�o�z��j| � g�hGu � gjp�hG�#u � z�|wo�z�z d |woÍu}z d g � ��»Ó© � u�h |��gyx�~ � p§zÄ���#uwp�o�z&uw©@¦+prg{¬ ½ p§z-©8uwsrsru�¬e�·z d |Nz·z d g��:g{Æ\oqp§z�pru�o�uw©@z d g���xyu � g�oqgygy�:�Dz�uj�#g -/!dKe * (�!�1 ����z d g � gys�|Nz�p§¦�gp�h��#u � z�|wo�xyg-uw©@|}sr� d |}�#g{zD���+hY�#uwsr�y¸ ced pr�)srgy��~q�)z�uSvwg�oqg � |}srpr¨ygeu�~ � h�g{z d u���|woq� � gy��~qs§zD��u�z d |NzDz d g{�Y|}����s§�z�u�¬Ågyprv d z�gy��¦�g � ��pru�o��euw©�z d gU� � uw�:srg�hZ¶qp˸Ìg}¸r¶�z�u�z d g3� � uw��srg�h uw©Wxyu�h��\~+z�p�oqv�¬Ågyprv d z�gy�Í��xyu � gy����g{Æ\oqgy�Z�<�

5�7f���� DEGF �:g ».��7Kh E ½�i »`� E ½ H IKJMLANAP Q0N >

¬ d g � g g |wo�� i | � gjxyu�h���srg¯® Ú¦}|}s�~�gy�«©_~:oqx{z�pru�oq��uw©Wz d gU|}sr� d |}�@g{zy¸ced gUo�|}p§¦�gt|}srvwu � p§z d h z�uªxyu�h��:~+z�gSz d gUg¯®q|}x{z���xyu � g3¦�gyx{z�u � d |}��|�z�p�h�g3xyu�hG��srg¯®qp§zÄ�«uw©&º�»�» °jB6²lk

� ½ ²¾½ ¸ ¥ d g�o�z d gU|}sr� d |}�@g{z���pr¨ygUpr��º�» � ½ » d g�oqxygjh�~qx d ��hG|}srsrg � z d |wo ²Ã½ ¶:z d gU|}srvwu � p§z d h uw©m9)pr� d g � |woq�� |Nz�g � ��u�o\a nob\~q��gy�·xyu�o�¦�uws�~+z�pru�oªz�ut��uws§¦�g�z d ge� � uw��srg�h�p�oªº�» ° sruwv ²¾½ z�p�h�g}¸;p�u�¬Åg{¦�g � ¶qpr©@z d g�|}����~�hG�qz�pru�ouw©���hG|}srsD|}sr� d |}�#g{zU��pr¨yg�pr�j� � uw���#gy��¶#z d g�oÉ|woqu}z d g � |}��� � u�|}x d pr�joqgygy�:gy��¸ ced pr�S¦�g � ��pru�o±uw©·z d g�� � uw��srg�h»Óp˸Ìg}¸r¶#©8u � �@uw����pr��s§��s�| � vwgt|}sr� d |}�@g{z�� ½ ¬Ï|}�e�#uw��gy�!�<�Z���#uw��z�uwsrprxyuR|woq�ÍlU|}srprs�p�o�z d gyp � �#u�uw¹\aâ�+bÓ¶\¬ d g � g3p§z�pr�h�g�o�z�pru�oqgy�Gz d |NzÅ|jsrp�oqg�| � z�p�h�ge|}srvwu � p§z d h�x�|woª�#g�uw�qz�|}p�oqgy�R©_u � xyu�hG�:~+z�p�oqv3z d uw��geu}Ð#��g{z��q3)|Nz-¬ d prx d u�oqs§�|«��p�oqvwsrgGh�pr�OhG|Nz�x d � � g{¦�g�o�z��jz d gG�:|Nz�z�g � o±© � u�h u<xyx�~ ��� p�oqv«g¯®�|}x{z�s§�w¸±» ced g�xyu ��� gy���#u�oq��p�oqvZg�o�z � prgy�Yuw© 2z d g�oµgy��~:|}s ² B �w¸ ½ ced gª�@gy��zj¹�o�u�¬�oµ��g{z�g � hGp�oqpr��z�prxª|}srvwu � p§z d hÇ©8u � xyu�h��:~+z�p�o�vZz d gª¦�gyx{z�u �r2 pr�Y�:~qgp�oq��gy�#g�oq�:g�o�z�s§��z�u���� � | d |whG��u�oª|wo���TUuw�O| � |¡��~sa i�¶@�A< bI|woq� d |}�Ï|tz�p�h�g�xyu�h���srg¯®qp§zÄ�Ruw©�º=t °\u ² sruwv ²wvp�o�z d g�| � p§z d h�g{z�prx�xyu�hG�:~+z�|Nz�pru�o�|}s·hGu<�:gysWp�oɬ d prx d z d g�xyu�o�¦�uws�~qz�pru�o6uw©-zĬÅu ² Äsrg�oqv}z d ¦�gyx{z�u � �jx�|wo±�#g��u�oqgRp�o º�» ² sruwv ²¾½ z�p�h�g}¸ ced g�|}srvwu � p§z d h�uw©yxÅ|}gy¨�|� {z-|Nz�gy�R|woq� lSu�o:oqg{z�a}| bÅ��uws§¦�gy��z d g�� � uw��srg�h p�oº�» °�² sruwv ² ¼ sruwv °É½ z�p�hGg}¶�¬ d prx d pr���#g{z�z�g � z d |woͺ�» ° sruwv ²¾½ ©_u � ��hª|}srs ² ¶\p˸Ìg}¸r¶#pr© ² ~ sruwv ° ¸ ced g|}srvwu � p§z d h uw©6xÅ|}gy¨�|� {z-|Nz�gy�3|woq� � g � srgy�#g � v�a � b���uws§¦�gy�Ïz d g3� � uw��srg�h p�oZ|y¦�g � |}vwgjz�p�h�gUº�» °�² ¼ �I½ ¬ d g � g �pr��z d gt��pr¨ygtuw©)z d gY|}sr� d |}�#g{zt»Óp˸Ìg}¸r¶�z d gto�~�hY�@g � uw©D��pr��z�p�oqx{zS���qht�#uwsr�ez d |Nz�|}���#g�| � p�o ²¾½ ¶@¬ d prx d pr��vwu<u��

i

Page 8: An Algorithm for Estimating all Matches Between Two Strings

� uw��p§z�pru�o 3c g¯®+z ¸y¸y¸ � x | | � x | | � � � | x ¸y¸y¸� |Nz�z�g � o | � | � � |� |Nz�x d gy� � �

9)prv�~ � gt�)� ced g��:|Nz�z�g � oªpr�Å��srpr�Z|}sru�oqvYz d gez�g¯®+z�|woq�R©8u � g�|}x d �#uw��p§z�pru�o�¶<¬ÅgSxyu�~�o�z�z d gSo<~:ht�#g � uw©$hG|Nz�x d gy��#g{zĬÅgyg�oZz d gj�:|Nz�z�g � o«|woq�«z d g3xyu ��� gy���#u�oq�:p�oqv���srprxygUuw©Wz d gSz�g¯®+z ³ z d pr�evwp§¦�gy�ez d gj��xyu � g 2 ¸©_u � s�| � vwg � ¸ ced g�p�o�z�g � gy��z·p�o�z d gϦ�gyx{z�u � 2 pr�-~q�O~�|}srs§��hGu}z�p§¦}|Nz�gy�ª����z d g�o�gygy��z�u3Æ\o���|}srs:�#uw��p§z�pru�oq�&p�o�z d gz�g¯®+z·|NzD¬ d prx d z d g��\|Nz�z�g � o &��M$�À � (DÀ �0��� � �¯¶<p˸Ìg}¸r¶�z d gÏu}Ð#��g{z��;3I�O~qx d z d |Nz 5�7#pr�Dxysruw��gÅz�u ² ¸D�So�|}srvwu � p§z d h�uw©� � uw�\|}��prsrpr��z�prxÅz�p�h�g�º�» ° sruwv ²Ã½ ©_u � z d pr�D� � uw�:srg�hìÅ|}�&vwp§¦�g�o�p�o a � b ³�d u�¬�g{¦�g � ¶<z d pr�&|}srvwu � p§z d h´��gy�#g�oq���Wu�o��u�hGg � gy��z � prx{z�p§¦�gU|}����~�hG�qz�pru�oq�·u�oGz d g�� � uw�:|}�:prsrpr��z�prxSx d | � |}x{z�g � pr��z�prxy��uw©�z d g�p�oq�:~qzy¶�o�|whGgys§��z d gyx�g � o�u�~qsrsrph�u���gys˸ŻÓ��o�g�| � srprg � ¦�g � ��pru�o�uw© a � b�g ��� u�oqgyu�~q��s§�Yxys�|}p�hGgy��z d |Nz·��~�x d |wo�|}����~�h���z�pru�otpr�-oqu}z-oqgygy��gy���<�Yz d |Nz|}srvwu � p§z d h«¶<¬ d g � g�|}��p�oG©Ë|}x{z�p§z�¬Ï|}�Åo�gygy��gy��¸ ½ �(xysrg{¦�g � º�» ° »Ósruwv ²¾½���½ ��g{z�g � h�p�o�pr��z�prx�z�p�hGg�|}srvwu � p§z d h ©_u �gy��z�p�hª|Nz�p�oqvY|}srs@z d g���xyu � gy�Åuw©$hGpr��hG|Nz�x d gy��» � |Nz d g � z d |woªuw©$hG|Nz�x d gy� ½ ¬Å|}�Åvwp§¦�g�o��<� Tj| � sru}Ð�a �ob ³ |}s§z d u�~qv dTj| � sru}Ð �Ì�Ïgy��z�p�hG|Nz�u � pr�Å��p�|}��gy�I¶�p§zÅv�~:| � |wo�z�gygy��oqu}zÅz�u�u�¦�g � gy��z�p�hª|Nz�g3z d g3o�~�hY�@g � uw©�hGpr��hG|Nz�x d gy�Å����h�u � gz d |wo |�xyu�o���z�|wo�z�h�~qs§z�pr��srprx�|Nz�p§¦�g!©Ë|}x{z�u � ¶�|woq�Èz d g«|w~qz d u � ��z�|Nz�gy�ªz d |Nz d pr����x d g�hGg«|}���:| � g�o�z�s§��x�|wo:oqu}z�#gZh�u���p§Æ:gy��z�u±gy��z�p�hª|Nz�gZz d g!o�~�hY�#g � uw©3hG|Nz�x d gy�«» � |Nz d g � z d |wo hGpr��hG|Nz�x d gy� ½ z�uɬep§z d p�o |Éxyu�oq��z�|wo�zh�~qs§z�pr��srprx�|Nz�p§¦�gt�@u�~:oq��¸

± o0z d pr�Z�:|}�#g � ¬Åg�vwp§¦�g±| � |woq��u�hGpr¨ygy� |}srvwu � p§z d h ©8u � xyu�hG�:~+z�p�oqv�|woÊ~�o<��p�|}��gy� gy��z�p�hG|Nz�u � uw©jz d go�~�hY�@g � uw©DhG|Nz�x d gy���

� ~ � |}srvwu � p§z d h � ~:oq�Sp�o���g{z�g � h�p�o�pr��z�prxYz�p�h�g�º�»�» °G¼{²¾½}¿DÀ}Á� » ²¾½�½ ¶I¬ d g � g ¿DÀ}Á: » ²¾½ pr�Sz d gYz�p�h�gp§z�z�|}¹wgy��z�uÍ�#g � ©_u � h z d g�xyu�o�¦�uws�~qz�pru�o uw©�z­¬�u�¦�gyx{z�u � ��uw©esrg�oqv}z d ² |}srsÏuw©�¬ d uw��gªg�o�z � prgy�G| � gRuw©z d gª©_u � h�� E ¶)¬ d g � g� Épr��|wo6p�o�z�gyvwg � |woq���Ãpr��|wo��µ� � p�h�p§z�p§¦�g � z d � u<u}z�uw©e~�o�p§zÄ� » � gyx�|}srsÅz d |Nz �pr�Sz d gYo�~�hY�#g � uw©·�:pr��z�p�oqx{z3���qht�#uwsr��z d |NzU|}���#g�| � p�o Ò ½ ¸UÎ�u}z�g�z d |NzSz d pr��� pr�Uoqu}z � gys�|Nz�gy�Éz�uRz d g� u<u}z��&uw©#~�oqp§z­��~���gy��p�o�z d g 9�u�~ � prg � z � |woq��©8u � h¾p�hG��srg�h�g�o�z�|Nz�pru�o�uw©@xyu�o�¦�uws�~qz�pru�o!»Ëz d gÏu � ��g � uw©:z d gy��g� u<u}z��Uuw©Å~�oqp§z­�Í�:gy�@g�o����Su�o ² � |Nz d g � z d |woÉu�o � ¶�¬ d prx d pr�UzÄ�+��prx�|}srs§�É��hG|}srsrg � z d |wo ²Ã½ ¸ ± oÍz d g� gy��zÏuw©�z d gS�:|}�#g � ¶�¬�g � gy��s�|}xyg ¿DÀ}Á: » ²¾½ ��� ² sruwv ² ¶+¬ d prx d xyu ��� gy���#u�oq���-z�u�z d g�xyu�h��:~qz�|Nz�pru�o�|}shGu<�:gys$¬ d g � gY|woÉ| � p§z d h�g{z�prx�uw�#g � |Nz�pru�oÈ»Ú|}����p§z�pru�o�u � h�~qs§z�pr�:srprx�|Nz�pru�o ½ z�|}¹wgy�Uxyu�oq��z�|wo�zUz�p�hGg}¸ ~ �g¯®q�#g � p�h�g�o�z�|}s�p�h���srg�hGg�o�z�|Nz�pru�oq�Z~q��g��C� ]������ � ���� ¶�p�o0����p§z�g�uw©jz d g � u�~�oq��u}Ð(g ��� u � z d |Nz�z d pr�p�o�z � u��:~qxygy�Åp�o�|wo�� � g�|}srpr��z�prx3xyu�h��\~+z�g � k/z d g�g¯®+�#g � p�hGg�o�z�|}s � gy��~�s§z���� d u�¬ z d |Nz�z d g � u�~�oq��u}Ыg ��� u �x�|w~���gy�&oqu�|}�:�:| � g�o�zWsruw���Duw©�¦}|}srpr��p§z­�tuw©qz d g·z d gyu � g{z�prx�|}sq� � gy��prx{z�pru�oq�Å»Óp˸Ìg}¸r¶�z d g{�jxyu�o+Æ � h z d g-z d gyu � � ½ ¸

� c�d g3|}srvwu � p§z d h pr� � |wo���u�h�pr¨ygy�R�:~+zÏp§z��Ï�#g d |y¦+pru�~ � ��u�gy��oqu}zÏ��gy�#g�oq�Ru�oZ|wo���|�� � pru � p@� � uw�:|}�:prsrpr��z�prx|}����~�h���z�pru�oÉu�o�z d g�p�o��:~+zy¶�u � z d g���pr¨ygGuw©-z d gG|}sr� d |}�#g{zy¸ ced g�g¯®q�@gyx{z�gy�6¦}|}s�~�g�uw©�z d gGgy��z�p�hª|Nz�u �pr�jgy��~�|}s)z�u�z d g�g¯®q|}x{zU¦w|}s�~qg}¸ � u � g�� � gyxypr��gys§�w¶$¬Åg�xyu�h��:~+z�g�u�~ � gy��z�p�hG|Nz�g�uw©-z d g���xyu � g�¦�gyx{z�u ��2p�o0��g{z�g � hGp�oqpr��z�prx!z�p�h�gͺ�»�� ° sruwv ²¾½ ¶���~qx d z d |Nzªz d g�g¯®q�#gyx{z�gy� ¦w|}s�~qgÍuw©3p§z�� 3Äz d xyu�hG�@u�o�g�o�z �5�7gy�+~�|}sr� 5�7 ¸ � u � gyu�¦�g � ¶�z d g���z�|woq�:| � �R��g{¦+p�|Nz�pru�o�pr�-�#u�~�o���gy�ª|}�#u�¦�g��<�!» ² B 5�7 ½�¼ u ��¸&Î�u}z�gez d |Nz-¬Ågd |y¦�gU|Yz � |}��g$ Äu}Ð��#g{zĬÅgyg�oRz�p�h�gSxyu�h��:srg¯®+p§z­��|woq�Z|}xyx�~ � |}x{���·�<�ªx d u�uw��p�oqv�s�| � vwg � ¦w|}s�~qgy�Ïuw©���¶:h�u � g|}xyx�~ � |Nz�g�gy��z�p�hG|Nz�gy�S| � gjuw��z�|}p�oqgy��¸���sr��uRo�u}z�gUz d |Nz�z d gj��z�|woq�:| � �«�:g{¦�p�|Nz�pru�oÍpr���:| � z�prx�~qs�| � s§�«�OhG|}srs¬ d g�o 5�7Dpr�exysruw��gjz�u ² ¶�¬ d prx d pr�e� � gyxypr��gys§��z d gUx�|}��gtuw© &�� $�À � (�À �0��� �G��!{Á � ! z d |Nz�~q�O~�|}srs§�Zp�o�z�g � gy��z��~��y¸

¥ gt��~�hGhª| � pr¨yg�u�~ � hG|}p�o � gy��~qs§z���pr�ez d g3©8uwsrsru�¬ep�oqvGz d gyu � g�hZ¸��� �!   � �#"%$ Á ! � (.d $r& (�!y"{À)� ( * ! ��� À ��! 2 , !+(.-/!0!yÁ &\(�!'& ( � (.�Gd8Á[e�À�"(� !{Á?e ( * ° &}Á�1s&()?& ({(�!�¯Á � (.�Gd8Á?eÀ�"*� !{Á[e)( * ² � &wÁ , ! � À)$+) � (�!01 ,-, &/.ÉÀ}Á (�!10{¿;& �-�§Às&�� e�À �Gd ( * $ d_Á (.d $ ! º�» ° sruwv ²Ã½-243 * !���&}Á 1�À $ d65O!�1

Page 9: An Algorithm for Estimating all Matches Between Two Strings

��! � � � ( * & � $ !�&wÁ 2 &wÁ�1W!0& ��* !{Á (.� ,r* & � &�Âo& �Gd.&wÁ � ! , À � Á�1 !�1 ,-,�» ² B 5�7 ½ � ¼ � - * !��! � d � ( * !UÁ � $ , !�UÀ�"d.(�!�#&)(.dËÀwÁ � d_Á\( * ! .�À}Á (�!10{¿;&)� �§À�&��}e�À �Gd ( * $ 2��s§z d u�~qv d ¬�g�©_gygys�z d |Nz�z d gÅ|}srvwu � p§z d hÃ� d u�~qsr�j¬�u � ¹3�@gy��zI¬ep§z d z d g 9 9 c ��z�gy�t�#g � ©_u � hGgy�3���U��gy�:prx�|Nz�gy�

x d pr���y¶#¬�g d |�¦�g�|R©_~qsrsWp�h��:srg�h�g�o�z�|Nz�pru�o�p�o�xys�~q��p�oqvZ|ª��uw©]z 9 9 c ¸ 9)p � ��z3g¯®+�#g � p�hGg�o�z��Sxyu�o+Æ � h z d gtz d gyu � �w¶|woq�!| � gU��gy��x � pr�#gy�Zp�o�z d g3s�|}��z���gyx{z�pru�o�¸

� � #%·��O� O������%&�����!� �@%-�� ������������¥ gªÆ � ��zjuw�:��g � ¦�g�z d |NzYp§zY��~[_Gxygy�jz�u�uw�qz�|}p�o�|wo6|}srvwu � p§z d hÇuw©Åz�p�h�g�xyu�hG��srg¯®+p§z­��º�»�� ² sruwv ²Ã½ ©8u � z d gx�|}��g ° �Ãi ² ¸ ± oq��gygy�I¶\pr© °�� i ² ¶\¬Ågjx�|woÍ~q��gjz d gj��z�|wo��:| � �«z�gyx d oqpr�+~qg�a �ob�uw©D�:| � z�p§z�pru�oqp�oqvªz d gUz�g¯®+zp�o�z�u�º�» °G¼{²Ã½ u�¦�g � s�|}����p�oqvYx d ~�oq¹��-uw©�srg�o�v}z d i ² g�|}x d ¶�|woq�ªz d g�oG� � u<xygy����p�oqvjg�|}x d x d ~�oq¹���gy�:| � |Nz�gys§�Gp�oz�p�h�g�º�»�� ² sruwv ²¾½ ¸ ced g�u�¦�g � |}srs#xyu�h���srg¯®qp§zÄ��pr�-z d g�oRº�»�� ° sruwv ²¾½ ¸ ced g � gy©_u � ge¬�g d g�oqxygy©_u � z d |}���O~�h�g}¶¬ep§z d u�~qz�sruw���euw©)vwg�oqg � |}srp§z­�w¶\z d |Nz ° � i ² ¸

"�g{z�� �#g�|�Æ\oqp§z�gÏ|}sr� d |}�@g{zDuw©\x�| � ��p�o�|}srp§z­� � ¸ ¥ g�~q��g-z d gÅ©_uwsrsru�¬ep�oqvtoqu}z�|Nz�pru�o�©_u � z d gÏp�o�z�gyvwg � p�o�z�g � ¦w|}sa <?> � a}�A<?>�@�@�@o> � B ���)�

¥ g d g�oqxygy©_u � z d ~q��g �Íz�u��:g�oqu}z�gÏ|wo��Y� � p�h�p§z�p§¦�g � z d � u�u}z)uw©@~�oqp§z­�t|woq�� 6z�u��:g�oqu}z�g�z d gÅ��g{zDuw©:|}srs+�@uw����pr��srghG|}�:��p�oqvw�3© � u�h�� z�u�a <?> � a⸠����g � ¦�g�z d |Nzy¶W©_u � | � |woq��u�h ¦w| � p�|}��srg�� z d |Nztpr�t~�oqpr©_u � hGs§����pr��z � pr�:~+z�gy�u�¦�g � a <?> � aâ¶�¬�g d |�¦�g���� ����� � <�¸ ced pr��©_|}x{z���z�g�h��Å© � u�h´z d gSo�~qsrsrp§z­�ªuw©Iz d g��O~�h´uw©W|}srs#z d g � z d � u<u}z��Ïuw©~�oqp§z­�w¸·���Å|Yxyu � uwsrs�| � �w¶:pr©Iz d g � |wo���u�h ¦w| � p�|}��srg��0pr��~�o�pr©8u � hGs§����pr��z � pr�:~qz�gy�Ru�¦�g � �¶+z d g�o����'��� �"!$#%� �=<©_u � |wo��'&)('�ª¸* . ��% �����e�����#���

ced gª¹wg{�6pr��g�|!uw©�u�~ � |}srvwu � p§z d hÇpr�jz�uÍp§z�g � |Nz�p§¦�gys§�Èxyu�h��:~qz�g � |woq��u�hGpr¨ygy�6gy��z�p�hª|Nz�gy��¦}|}s�~qgy�Y©_u � 2 ³ z d g¦w|}s�~qgy�Guw�qz�|}p�o�gy�0| � gZz d uw��g«uw©3| � |woq��u�h ¦}| � p�|}�:srg«¬ d uw��g«h�g�|wo pr��z d g«��xyu � g!|wo�� ¬ d uw��g�¦w| � p�|woqxyg�pr���hª|}srs˸ ¥ gYz d g�o � gy�#g�|Nz�z d gtx�|}srx�~�s�|Nz�pru�o�z�u�gy��z�p�hG|Nz�gtz d g���xyu � gt¬ep§z d vwu<u���� � uw�:|}�:prsrp§zÄ�w¸ ± o!z d gY��gy�+~qgys˶�«��g�oqu}z�gy�U|R�#uw��p§z�p§¦�g�p�o�z�gyvwg � ¶Iz d g�o<~:ht�#g � uw© � gy�#g{z�p§z�pru�oq�3uw©Dz d g�|}srvwu � p§z d hZ¸U���S¬eprsrs)�#gt� d u�¬�oÍp�o�z d goqg¯®+ze��gyx{z�pru�o#¶:z d gUs�| � vwg � ��¶�z d g3��hª|}srsrg � z d g3¦w| � p�|woqxygUuw©)u�~ � |wo���¬�g � �y¸

ced g�p§z�g � |Nz�pru�o���z�gy�6uw©Åz d gG|}srvwu � p§z d hÇpr�j�\|}��gy�6u�o±z d gG©_uwsrsru�¬ep�o�v�pr��g�|?��|}����~:h�g�z d |Nzt¬�g d |y¦�gªzĬÅu��z � p�o�vw�Ïuw©Isrg�oqv}z d«²´³ pr©I¬Åg � g�o<~�hY�#g � z d g�srg{z�z�g � �e|Nz � |woq��u�h�¬ep§z d o�~�hY�#g � �·© � u�h a <?> � aâ¶�¬Åg�uw��z�|}p�o�zĬÅup�o�z�gyvwg � ��gy�+~qg�oqxygy�,+��6�����-+f��� e|woq�/. �6�����-.���� ³ p�o�z d gShGg�|wo�u�¦�g � |}srs � g�o�~�hY�@g � p�oqvw�y¶�z d g p�g � hGp§z�p�|wop�o�oqg � � � u��:~qx{z ��� D

EGF � ��0 N ��1 N ���� DEGF � ��0 N

� 1 Nxyu�~�o�z��Ïz d gUo�~�hY�#g � uw©)hG|Nz�x d gy���#g{zĬÅgyg�oZ�#u}z d ��z � p�o�vw�y¸ ¥ g3z d g � gy©8u � g d |y¦�g3z d g3©_uwsrsru�¬�p�oqvG|}srvwu � p§z d h z�uxyu�h��\~+z�gSz d g3��xyu � g ��3254  768� � �98¾� �;:=<>$?=@�ACB �D|�z�g¯®+zYÑC� ��� ������� � ��� �|woq� |Í�:|Nz�z�g � o Ò � � � ����� � ��� t¬ d g � gGz d g���7 �Ì��|woq��z d g4� 7 �Ì��| � gsrg{z�z�g � ��© � u�hD� ³E;AFB�@�AFB �@|woZgy��z�p�hG|Nz�gU©_u � z d gU��xyu � g3¦�gyx{z�u � 2 ¸�w¸ 9:u �,G � �)>Oi >�@�@�@O>-� �

Page 10: An Algorithm for Estimating all Matches Between Two Strings

»Ú| ½ ��gysrgyx{z � |woq�:u�h�s§�R|wo��!~�oqpr©_u � h�s§�R|�� ���%# © � u�h ³»Ó� ½ © � u�h�z d g�z�g¯®�zÅÑt¶�uw�qz�|}p�oZ|Yxyu�hG��srg¯®ª��gy�+~qg�oqxygeÑ����%#)uw©I��pr¨yg3i ² ��� � gy��s�|}xyp�oqv�g{¦�g � �R���+hY�#uws �

p�o�Ñ ��� ����� ���5� I # ³»Óx ½ © � u�h z d gU�:|Nz�z�g � o Ò ¶:uw�qz�|}p�o!|�xyu�hG��srg¯®Z��gy��~�g�oqxyg Ò ��� # ���

p˸ � gy��s�|}xyp�oqv�g{¦�g � �«���+hY�#uws?�!p�o Ò �<�(� � ��� ��5� Q # ³prp˸e�\|}����p�oqv�¬ep§z d!² »Ëz � |}prsrp�o�v ½ ¨yg � u�gy� ³»Ó� ½ xyu�hG�:~+z�gSz d gU¦�gyx{z�u �82 ���%#&|}��z d g3xyu�o�¦�uws�~+z�pru�oÍuw©$Ñ����%#&¬ep§z d z d g � g{¦�g � ��gUuw© Ò ���%#�¶:p˸Ìg}¸r¶

5 ���%#7 ���� DEGF � � � � ��� � IKJMLON # � � � ��� � Q0N # �

��� DEGF � � � � ��� � IKJ LAN #

� � � ��� � Q�N # ³

i<¸exyu�hG�:~+z�gSz d gU¦�gyx{z�u � �2 �� �� F 2 ��� # ¼ �R|woq�«u�~+z��\~+z�p§z�|}�eu�~ � gy��z�p�hG|Nz�gjuw© 2 ¸

ced g3� � g{¦+pru�~q�e|}srvwu � p§z d h ��gy��g � ¦�gy����g{¦�g � |}s � g�hG| � ¹��y¸� ± zGpr�ªx � ~qxyp�|}s�z d |Nz�� ���%# �@g«| � |woq��u�h $r&-)�) d_Á?e � |Nz d g � z d |wo | � |woq��u�h ) !�G$ � ( &)(.dÓÀ}Á ¸ ± o ©Ë|}x{zy¶�:g{¦�gysruw��p�oqv�z d g3|wo�|}s§�+��pr��uw©$z d g3oqg¯®+z���gyx{z�pru�o�¬ep§z d |��#g � h�~+z�|Nz�pru�o � |Nz d g � z d |woZ|�hG|}����p�o�vU¬Åu�~qsr�� g{¦�g�|}s\z d |Nz-z d g�xyu ��� gy���#u�oq�:p�oqvUgy��z�p�hª|Nz�g�pr����p�|}��gy��¶�¬ d g � g�|}�·¬Åg�o�gygy�R|woR~�o<��p�|}��gy�Ggy��z�p�hG|Nz�g�uw© 2 ¸

� c�d gjxyu�hG�:~+z�|Nz�pru�o�uw©)z d gtxyu�o�¦�uws�~+z�pru�o�pr���#g � ©8u � h�gy�«�<�«©_|}��zY9�u�~ � prg � z � |woq��©_u � hZ¸ ced g3z�p�h�gtxyu�h! �:srg¯®+p§z­��uw©-z d pr�3xys�|}����prx�|}s-|}srvwu � p§z d h pr�tº�» ² sruwv ²Ã½ ¶I¬ d prx d hª|}¹wgy�j~q�U|}x d prg{¦�gª|�sru�¬�xyu�h���srg¯®qp§zÄ�©_u � z d gju�¦�g � |}srs)|}srvwu � p§z d h«¸ x-gy��pr��gy�y¶:z d pr�e|}srvwu � p§z d h pr��oqu�¬ p�h���srg�hGg�o�z�gy�Zp�o«��gy��prx�|Nz�gy�!x d pr���y¸

� c�d g3©_|}��z�9�u�~ � prg � z � |woq��©_u � h g{¦w|}s�~�|Nz�gy�e�#uws§�qoqu�h�p�|}sr� � gys�|Nz�gy�Zz�u�p§z��ep�o��:~+z��Ï|Nz � u�u}z���uw©)~�oqp§zÄ�w¸ ced gs�|Nz�z�g � | � gjo�u}z � gys�|Nz�gy�!z�u � ³ z d gyp � u � �:g � pr��oqu}z � �\~+zÏz d g3��pr¨ygUuw©Wz d gUz�g¯®�z�i ² ¸

� ©@xyu�~ � ��g}¶�¬ d g�o�p�h��:srg�h�g�o�z�p�oqvSz d ge|}srvwu � p§z d hZ¶<u�o�ge� d u�~�sr�G~q��gÅz d ge��|wh�ge| ��� |y��©_u � |}srs�z d g 2 ��� # �Ì�y¶��u«|}�3z�u«|}x d prg{¦�gR|����:|}xyg�xyu�hG��srg¯®qp§zÄ��uw©Åº�» ²Ã½ � |Nz d g � z d |wo±º�»�� ²¾½ ¸«» ced gYz�p�hGgYxyu�hG��srg¯®qp§zÄ�Épr�srgy©8z�~�o�x d |woqvwgy�!����z d pr��uw��z�p�h�pr¨�|Nz�pru�o#¸ ½

� ������� �j�#��ced gY|wo�|}s§�+��pr��p�o!z d gYoqg¯®�z���gyx{z�pru�oͬeprsrs�� d u�¬Ãz d |Nz���� �2 � � 2 ¶@|wo��!z d |Nz�z d gt��z�|woq�:| � ����g{¦+p�|Nz�pru�o�uw© �5�7pr�j�#u�~�o���gy�±|}�#u�¦�gR��� » ² B 5�7 ½�¼ u ��¸ oqg�pr�Y~q��~�|}srs§�Éu�oqs§�±p�o�z�g � gy��z�gy��p�oÉz d g��#uw��p§z�pru�oq�U33|Nzj¬ d prx d 5�7pr��¦�g � �«xysruw��gYz�u ² »Óp˸Ìg}¸r¶�¬ d g � gjz d gY�:|Nz�z�g � oÍ|}s�h�uw��zSu<xyx�~ � ��p�o!z d gtz�g¯®�z ½ ¸S� ©Ë|}x{z�uw©·p�o�z�g � gy��zSpr��z d |NzSp§zpr�S� � gyxypr��gys§��©8u � z d gy��g43 �Ì��z d |Nz�z d gt��z�|woq�:| � �Í��g{¦+p�|Nz�pru�o�pr�ez d gY��hª|}srsrgy��zy¸ ced g � gy©8u � g �5�7·pr�S|G�\| � z�prx�~qs�| � s§�vwu�u<�Ègy��z�p�hª|Nz�u � uw©y5�7�¬ d g�o�5�7�pr��xysruw��gRz�u ² ¸sp�g � g����^� � À � !�(ÚÀ!² ¬�gZhGg�|woµ| d prv d �#g � xyg�o�z�|}vwgZuw©|}v � gyg�hGg�o�zy¶:p˸Ìg}¸r¶�5�7���� ² ¬ d g � g��!pr��|�xyu�oq��z�|wo�zexysruw��gUz�u«�w¸

¥ gt� � u�xygygy�«z�uGgy��z�p�hG|Nz�gUz d gjh�g�|wo«|wo��Zz d gU¦w| � p�|woqxygtuw©Wz d g �5�7 �Ì�y¸-��srsIz d g � |woq��u�h ¦w| � p�|}��srgy� �5�7·| � g��g{Æ\o�gy�Zp�o«|���p�hGprs�| � ¬Å|�� ³@d g�oqxyg3¬ÅgUvwg�oqg � prx�|}srs§�«xyu�o���pr��g � z d g � |woq��u�h ¦w| � p�|}��srg

� � � ��

�D� F

��� DE�F � � � � ��� � I N #

� � � ��� � Q0N # >¬ d g � gZz d g � E �Ì��|woq� z d g'� E �Ì��| � g!Æq®+gy�,|woq� z d g ����� # �Ì�R| � g!p�oq��gy�#g�oq�:g�o�zG|woq�,~�oqpr©_u � h�s§�È��pr��z � pr�:~+z�gy�� |woq�:u�h hG|}���:p�oqvw�Å© � u�h �´z�u a <?> � a⸠ced gUo�~�hY�#g � uw©)hª|Nz�x d gy�e�@g{z­¬�gyg�o ��� �����0����� e|woq�r���m����������� �pr�vwp§¦�g�o«�<�

5 ���� DE�F �4H I N�P Q0N >|

Page 11: An Algorithm for Estimating all Matches Between Two Strings

¬ d g � g3u�oqxygj|}v�|}p�o HGR P S ��g�oqu}z�gy�ez d g T � u�oqgyxO¹wg � ���+hY�#uws˸ced g � |woq��u�h ¦w| � p�|}��srg � � pr�Iz d g·h�g�|woUuw© �ep�o���gy�#g�oq��g�o�zIpr��g�o�z�prx�|}srs§�U�:pr��z � pr�:~+z�gy� � |woq��u�h ¦w| � p�|}��srgy� � ���%#�¸p�g�oqxygUp§ze��~ _Gxygy�Ïz�u�xyu�oq��pr��g � z d g � |woq��u�h ¦w| � p�|}��srg

� ���� DEGF � � � � I N #

� � � Q�N # >©_u � z d gjhGg�|woZ|woq�Z¦w| � p�|woqxygUuw© � � | � gSz d g�o«vwp§¦�g�o!���

��» � � ½ � ��» � ½ |woq� �·| � » � � ½ � �·| � » � ½� �¥ gt��z�| � ze�<�Rg{¦w|}s�~�|Nz�p�oqvGz d gUh�g�|wo«uw© �� ¬ep§z d z d gj©8uwsrsru�¬ep�oqvGsrg�hªhG|�¸

� � �#�É¢ " 3 * !4$ !�&}Á6À�" � � d � ( * !tÁ � $ , !�� 5 À#"U$'&)( ��* ! � , !+(.-/!0!yÁ ��� �������#��� &}Á�1 ���m����������� 2�U  ���� ced gUh�g�|wo«uw© � � pr�evwp§¦�g�o!���

�!» � � ½ � ��» � ½ ���� DE�F � � � � � � I N # � � � Q0N # �y�

Î�u�¬U¶Iuw����g � ¦�g�z d |NzSz d g�h�g�|woÍp�oq��pr�:gjz d g���~:h pr�S¨yg � u«~:oqsrgy���y� E ��� E ¶#�#gyx�|w~q��g�� � � I N # � � � Q0N # pr�3gy�+~�|}srs§�srpr¹wgys§�Íz�uR�#g�|wo���uw©&z d g � z d � u�u}z���uw©�~�oqp§z­��|woq�Íz d g���~�h uw©-|}srsWz d g � z d � u�u}z���uw©�~�oqp§z­�!pr�3¨yg � u+¸ � u � g� � gyxypr��gys§�w¶:¬Åg d |y¦�gjz d gUgy�+~�|}srp§zÄ�

��� � � � I N # � � � Q0N # � � H I NAP Q0N >© � u�h ¬ d prx d z d g � gy��~qs§z�©_uwsrsru�¬e�y¸ �

Î�g¯®�zy¶\¬�g3xyu�o���pr��g � z d gS¦}| � p�|wo�xygjuw© � � ¸ ¥ gth�g�o�z�pru�o�z d gUxyu ��� gy���#u�oq��p�oqv � gy��~�s§zeoqu�¬Ã©8u � z d gU�:~ � �#uw��guw©)g¯®+�#uw��p§z�pru�o�¶:�:~+zÏ�#uw��z��#u�oqg3p§z���� � u<uw©�z�u�z d gjo�g¯®�z���gyx{z�pru�o!¬ d g � g3pr��p§ze� � u�¦�gy�!p�o«hGu � gSvwg�oqg � |}srp§z­�w¸� � �#�É¢� 3 * !tÂo& �Gd{&}Á � !�À�" � � d �:, À � Á�1 !01 & � "yÀ�� �§À - ��

�·| � » � � ½ ~ » ² B 5 ½��� �

ced gyu � g�h �toqu�¬ ©_uwsrsru�¬e��© � u�h "$g�hªhG|}���t|woq��i<¸

� %·��%·#������D���#������

ced gÅ� � g{¦�pru�~q�Wz�gyx d oqpr�+~qgÏg¯®�z�g�o����)z�uSzĬÅuU��p � gyx{z�pru�o�����¬ÅgÅx�|wo�xyu�oq��pr�:g � ¬�gyprv d z�gy��¦�g � ��pru�o��&uw©�z d gÏ� � uw��srg�h�<�t~q��p�oqv3|Sh�u � g·vwg�oqg � |}sq©Ë~�oqx{z�pru�otz d |woYz d g-x d | � |}x{z�g � pr��z�prx�©_~:oqx{z�pru�oYuw©\hG|Nz�x d gy� ³ ¬ÅgÅx�|wo�xyu�oq��pr��g � | ��� |y�+�p�oZ��s�|}xygjuw©�¬Åu � ����¶�u � h�u � g3vwg�o�g � |}srs§� d prv d g � �:p�h�g�oq��pru�o:|}s#| ��� |y�+�y¸����� ��������������� �"!$#%�

ced g�h�g{z d u��t|wo�� � gy��~�s§z��$¬Åg-�:g{¦�gysruw�@gy��|}���:s§�3z�ue¬Ågyprv d z�gy�Y¦�g � ��pru�oq�)uw©qz d g·� � uw��srg�hZ¶}p˸Ìg}¸r¶wz�u�z d g-� � uw��srg�huw©)xyu�h��:~qz�p�oqvY¬�gyprv d z�gy����xyu � gy�e��g{Æ@oqgy�Z���

5�7f���� DEGF � g ».��7Kh E ½�i »`� E ½ H IKJMLANAP Q0N >

Page 12: An Algorithm for Estimating all Matches Between Two Strings

¬ d g � g g |wo�� i | � gjxyu�h���srg¯® Ú¦}|}s�~�gy�«©_~:oqx{z�pru�oq��uw©Wz d gU|}sr� d |}�@g{zy¸± o z d gÍ|}srvwu � p§z d hZ¶�z d gÍg�oqxyu���p�oqv�uw©3z d g�|}sr� d |}�#g{zR~���p�oqv � u<u}z���uw©j~:oqp§zÄ� d |}�Rz�u��#g!x d |woqvwgy�(|}x$

xyu � ��p�o�vws§���ɬ d g�o x � g�|Nz�p�oqvµÑ ���%# ¬ÅgÍo�u�¬ � gy��s�|}xygÍg{¦�g � � ���qhY�@uws���p�o Ñ ��� g ».� ½ � � � ��� � I # ¶�¬ d prsrg!¬ d g�ox � g�|Nz�p�oqv Ò ���%# ¬�g � gy��s�|}xygUg{¦�g � �Z���qhY�@uws?�!p�o Ò �<� i »`� ½ � � � � ��� � Q # ¸���U|ZhG|Nz�z�g � uw©-©_|}x{zy¶�¬�g�� � u�xygygy��z�uZ�#g � ©_u � h u�~ � |wo�|}s§����pr�Up�oÍz d g�h�u � g�vwg�oqg � |}sDx�|}��g�uw©·¬Ågyprv d z�gy���xyu � gy��uw©$z d gU©8u � h

5�7f���� DEGF �� ».��7Kh E >{� E ½ H IKJMLON+P Q�N >

¬ d g � g � pr�·|Sxyu�hG��srg¯® Ú¦w|}s�~qgy��©Ë~�oqx{z�pru�o�u�o��:|}p � �Duw©#srg{z�z�g � �-p�o=� �¡³ ¬Åg���uSz d pr�&gy����g�o�z�p�|}srs§��©8u � z d g��:~ � �#uw��guw©D|wo�|}s§�+��pr�y¶@|wo��«p§z�g�o�z�|}prsr��o�u�sruw���euw©)vwg�oqg � |}srp§zÄ�!��p�o�xygju�~ � |}srvwu � p§z d h �:g�|}sr��¬ep§z d pr��z d gU���@gyxyp�|}s�x�|}��gjuw©� ».��7Kh E >{� E ½ � g ».��7 h E ½�i »`� E ½ ¸ c�d g � |woq�:u�h�pr¨ygy��¦�gyx{z�u � �2 ¬Åg�uw�qz�|}p�oª��z�prsrs d |}�Dz d g�� � uw�@g � zÄ��z�uU�#g 2 ¶<¬ d prsrgz d g3¦w| � p�|woqxygjuw© �5�7Dpr��oqu�¬Ãº�»�» ² B 5�7 ½�¼ u � ½ ¸

o�xygU|}v�|}p�o#¶:¬ÅgUvwg�oqg � prx�|}srs§�«xyu�o���pr��g � z d g � |woq��u�h ¦w| � p�|}��srg

�� � ��

�D� F

��� DEGF �� ».� E >{� E ½ � � � ��� � I N # � � � �� � Q0N # >

¬ d g � gZz d g � E �Ì��|woq� z d g'� E �Ì��| � g!Æq®+gy�,|woq� z d g � ��� # �Ì�R| � g!p�oq��gy�#g�oq�:g�o�zG|woq�,~�oqpr©_u � h�s§�È��pr��z � pr�:~+z�gy�� |woq�:u�h hG|}���:p�oqvw�&© � u�h �Ãz�uWa <?> � a⸠c�d gŬ�gyprv d z�gy����xyu � g��#g{z­¬�gyg�o ��� �����0����� -|woq�U� � ����� ����� ·pr�-vwp§¦�g�o�<�

5����� DEGF �� ».� E >{� E ½ H I NAP Q0N >

¬ d g � g3u�oqxygj|}v�|}p�o HGR P S ��g�oqu}z�gy�ez d g T � u�oqgyxO¹wg � ���+hY�#uws˸ced g � |woq��u�h ¦w| � p�|}��srg � � pr�Iz d g·h�g�|woUuw© �ep�o���gy�#g�oq��g�o�zIpr��g�o�z�prx�|}srs§�U�:pr��z � pr�:~+z�gy� � |woq��u�h ¦w| � p�|}��srgy� � ���%# ¸p�g�oqxygUp§ze��~ _Gxygy�Ïz�u�xyu�oq��pr��g � z d g � |woq��u�h ¦w| � p�|}��srg

� ���� DEGF �� ».� E >{� E ½ � � � I N # � � � Q0N # >

©_u � z d gjhGg�|woZ|woq�Z¦w| � p�|woqxygUuw© � � | � gSz d g�o«vwp§¦�g�o!�����» � � ½ � ��» � ½ |woq� �·| � » � � ½ � �·| � » � ½� �

ced gj|wo�|}s§�+��pr�e��p§Ð#g � ��© � u�h z d gj~�o�¬Ågyprv d z�gy�Íx�|}��gjp�o«z d |Nzez d g � uwsrgjuw© HGR P S p�o�z d gY~�o�¬Ågyprv d z�gy��x�|}��gtpr�oqu�¬ ��s�|y��gy�Í�<� � »{V�>#X ½ H R P S ¸ ¥ gt��z�| � z�¬ep§z d z d gUh�g�|wo#¸� � �#�É¢�� 3 * !4$ !�&}Á6À�" � � d � ( * !4-/!�d e * (�!�1 ��� À ��!5��

��� DE�F �� ».� E >{� E ½ H I NAP Q0N

, !+(.-/!0!yÁ � � ������� ��� &}Á�1 � � ������� ��� 2�U  ���� ced gUh�g�|wo«uw© � � pr�evwp§¦�g�o!���

�!» � � ½ � ��» � ½ ���� DE�F � ��� � ».� E >{� E ½ � � � I N # � � � Q0N # � �

��� DE�F �� ».� E >{� E ½ � � � � � I N # � � � Q0N # � �=5O>

��p�oqxyg�� � � � � I N # � � � Q0N # � � H I N+P Q0N ¸ �¥ gYoqu�¬(z�~ � oRz�u�z d g3¦w| � p�|woqxyg}¶@� � u�¦�p�oqv "�g�hGhª|�i�|}��|��:| � z�prx�~�s�| � x�|}��g}¸

Page 13: An Algorithm for Estimating all Matches Between Two Strings

� � �#�É¢�� 3 * !tÂo& �Gd{&}Á � !�À�" � � d �:, À � Á�1 !01 & ��·| � » � � ½ ~���� � ��� � » ² B 5 ½��

� >- * !��#! ��� � ��� � 1 !{Á\À)(�! � ( * !4$'&�& d $ � $  &�� � !YÀ�" � � »{V�>#X ½ � À}Â)!� � � 2�U  ������ p�oqxyg �·| � » � ½ � � t � � � � v/B � �e» � ½ � � ¶q¬�gUÆ � ��z���z�~��q�Gz d gth�g�|wo�uw© � � � � � � � ¸ ± z�pr�

��» � � ½ � D�� 7 P E� � � ».��7�>{� 7 ½ � ».� E >{� E ½ ��� � � � IKJ # � � � QAJ # � � � I N # h � � Q0N # �y�

¥ d g�o � � � IKJ # � � � Q+J # � � � I N # h � � Q�N # �¾�·p�oq��gy�#g�oq��g�o�z�s§��© � u�h �S¶�z d g&p�o:oqg � h�g�|wo�� � � � � IKJ # � � � Q+J # � � � I N # h � � Q0N # �pr�3� ³ u}z d g � ¬epr��g}¶:p§z�pr�Y<�¸/x-�«|���p�h��:srg � p�oqxys�~q��pru�o Äg¯®qxys�~q��pru�o�| � v�~�hGg�o�zy¶:p§z�©_uwsrsru�¬��ez d |Nz��» � � ½ � D

�� 7 P E� � � ».��7�>{� 7 ½ � ».� E >{� E ½ � H IKJ P QAJ H I NAP Q0N k H IKJ{P I N H Q+J.P Q0N B H IKJ{P I N H QAJ.P Q0N H IKJ P Q+J H I N�P Q�N �8�¥ p§z d z d gSÆ � ��z�� � u��:~qx{zÏuw© T � u�oqgyxO¹wg � ���qhY�#uwsr�y¶qu�oqg � gyxyuwv�oqpr¨ygy��z d gUg¯®q�:|woq��pru�oZuw© � ��» � ½ � � ¶\��u�z d |Nz

�·| � » � ½ � ��� � � � � � B � �e» � ½ � � � D�� 7 P E� � � ».��7�>{� 7 ½ � ».� E >{� E ½ H IKJ{P I N H Q+J.P Q0N �¡� B H IKJ{P Q+J H I N+P Q0N �8�

"�g{z�~q��p�o�z � u��:~qxygSz d g � g�|}sI���qhGh�g{z � prx�hª|Nz � p ®� \� a � 7 P E b�uw©W��pr¨yg ����� ¬ep§z d ».3�> ½ z d g�o�z � ��vwp§¦�g�o!���� 7 P E � H IKJ�P I N H Q+J{P Q�N ��� B H IKJ{P QAJ H I N�P Q0N �8>

|woq�,z d gͦ�gyx{z�u ��� ¬ep§z d 3Úz d g�o�z � � � ».��7�>{� 7 ½ ¸ ¥ gÉuw�qz�|}p�o �·| � » � ½ � ��� � ¶e¬ d g � g«Ñ �:g�oqu}z�gy��z d gz � |woq���@uw��g�uw©�hª|Nz � prxygy�y¸ Z |}srs��:»� ½ z d gÏ���#gyx{z � |}s � |}��p�~q�Duw©� &¶�p˸Ìg}¸r¶<z d g�s�| � vwgy��z-h�u��:~qs�~q�Wuw©@p§z��·gyprvwg�o�¦}|}s�~qgy��¸� p�oqxyg� ±pr�e�@uw��p§z�p§¦�g3��g�h�pr��g{Æ@oqp§z�g}¶qp§z���gyprvwg�o�¦w|}s�~qgy��| � g3oqu�o ­oqgyv�|Nz�p§¦�gY|woq���:»� ½ pr��z d gSs�| � vwgy��zegyprvwg�o�¦}|}s�~�g}¸¥ g d |y¦�g

�·| � » � ½ � ��� � ~ �:»� ½ ����� �c u�p�h�� � u�¦�g3u�oRz d g3s�|Nz�z�g � ~����#g � �#u�~�oq�Z|woq�«hª|}¹wg3p§zeh�u � g�g¯®q��srprxyp§zy¶:¬ÅgUoqgygy��z�u�z�|}¹wg3z d gUo<~�hY�#g � 5�uw©hG|Nz�x d gy�ep�o�z�uG|}xyxyu�~�o�zy¸

ced gYo�~�hY�#g � � 7 P E pr�U<�~�oqsrgy���Y��7 �c� E��� � 7 ��� E ¸ ± z3g�o�z�|}prsr�3z d |Nz3p�oÍx�|}��g�uw©-|�hª|Nz�x d ��7 � � 7­¶I�#u}z dz d g:3Úz d srp�o�gt|woq�!z d g:3Äz d xyuws�~�hªo«uw©� | � g4<�¸���©8z�g ��� g�o<~�hY�#g � p�oqvYz d gYsrp�oqgy�S|woq�!xyuws�~:hGoq��p�o� |woq� � ¶¬ÅgU�:| � zÏz d gjs�|Nz�z�g � |}�e©_uwsrsru�¬����

� � < << �!#" |wo�� � � � <� !$" >

¬ d g � g% ! �'&(� !7 P E�) pr��|YhG|Nz � p ®Guw©���pr¨ygt» ² B 5 ½*� » ² B 5 ½ |wo�� � ! pr�Ï|3¦�gyx{z�u � uw©I��pr¨ygY» ² B 5 ½ ¸ ± z�©_uwsrsru�¬��z d |Nz ��� � � � ! � ! � ! ~ �:»� ! ½ � ! � � ! � oYz d gÅu}z d g � d |woq��¶wz d gÏ���@gyx{z � |}s � |}��p�~q���:»� +! ½ uw©, �!+pr�D�#u�~�oq��gy��|}�#u�¦�g��<�Yz d g � x d ~ � oqu � h.-û� �! ½ ¬ d prx d��|Nz�pr��Æ\gy��� -û� ! ½ � � D

/� 7 P E �����10 � � !7 P E � � ~ » ² B 5 ½ � �

n

Page 14: An Algorithm for Estimating all Matches Between Two Strings

9:~ � z d g � h�u � g}¶���g�oqu}z�p�oqv ��� � ��� � �Êhª|¡® � R P S #������ � � »{Vf>#X ½ � ¶\¬�gUuw��z�|}p�o� ! ��� ! ~ ��� � ��� �� » ² B 5 ½ �9)p�o�|}srs§�w¶

�·| � » � � ½ � �·| � » � ½� � � � �� � � ! � ! � !�~���� � ��� �� » ² B 5 ½��

� ��x�u}z d srg�hªhG|}��|}�#u�¦�gt� � u�¦�g3z d g3©_uwsrsru�¬ep�oqvGz d gyu � g�h«¸

��� �!   � � ��� À �U( * !U-/!dKe * (�!01�Â)!� � dÓÀ}ÁÍÀ#"8( * ! ) ��À , �`!�$��&}Ás! � (.d $'&)(�! �2 � &}Á , ! � À)$+) � (�!01 ,1, &�.ÉÀ}Á (�!-0¿;& �-� À�&�� e�À ��d.( * $jd_Á (.d $ ! º�»�� ° sruwv ²¾½ -;d.( * $ !�&}Á &}Á 1RÂo& �Gd.&wÁ � ! e)d8Â)!{Á ,-,

��� �2 � � 2 |woq� �·| � » �5�7 ½ ~ ��� � ��� �� » ² B 5�7 ½��� �

Î�u}z�gUz d |Nz�z d gS¦}| � p�|wo�xygjpr��u�oqxygt|}v�|}p�o«�:| � z�prx�~�s�| � s§�Z��hG|}srs#¬ d g�o 5�7Wpr��xysruw��gUz�u ² ¸���� � ����� � � � ��� ��� # ����� !�� !���� !�� #¥ g���¹wg{z�x d z d g�g¯®+z�g�oq��pru�o�z�u�z­¬�u Ä�:p�h�g�oq��pru�o:|}s·| ��� |����3p�o�z d g�o�u�o Ú¬�gyprv d z�gy�6x�|}��g ³ ��p�hGprs�| � pr��g�|}�3¬Åu�~qsr�g¯®+z�g�oq�µp§ztz�u«z d � gygª|woq� d prv d g � �:p�h�g�oq��pru�o��y¶W|woq�6z�u�hGp ®+gy�6¬�gyprv d z�gy� d prv d g � Ä��p�hGg�oq��pru�o�|}s&¦�g � ��pru�oq��|}�¬Ågysrs˸9�u � z d g��O|}¹wgÏuw©:��p�hG��srprxyp§zÄ�w¶w¬Åg�|}����~�hGg·p�otz d gÅ��gy�+~qgys�z d |Nz ² |woq� ° | � g-z d g�����~�| � gy�Wuw©:zĬÅuSp�o�z�gyvwg � ��¶² � . � |woq� ° � + � ¸ ced g�z�g¯®�z�Ñ pr��oqu�¬Ã|�hG|Nz � p ®�uw©���pr¨yg + � +D¶qz d g3�\|Nz�z�g � o Ò pr�e|���hª|}srsrg � hG|Nz � p ®uw©)��pr¨yg . � .ɶ:|wo��Zz d g � gy��~�s§z�¬�gj��gygy¹ªpr��|woÉ» + k � B . ½#� » + k � B . ½ hª|Nz � p ® 2 ¬ d g � g

5�7 P E � 1 � D� F �

1 � D� F � H � JML���� N�L�� P ��� � >

©_u � < ~ 3�> ~ + B .ɸ ced g3z�p�hGg3z�uGxyu�hG�:~+z�gUu�~ � gy��z�p�hG|Nz�g �2 uw© 2 pr��o�u�¬¾º�»�� ° sruwv ²¾½ ¶#|woq�«¬�gt��z�prsrsd |�¦�g�� � �2 � � 2 |woq� �·| � »"!5�7 P E ½q~ » ² B 5�7 P E ½ � ¼ ��¸ ¥ gto�g¯®�z�� � prg$#��R��¹wg{z�x dÍd u�¬(z d pr��pr�e��u�o�g}¸¥ gS��~q��z�pr©8��u�~ � ©8u�x�~q�3z�u�|}x d prg{¦+p�oqv!|�z�p�hGg�xyu�h���srg¯®qp§zÄ��uw©�º�»�� ² sruwv ²¾½ ©_u � z d g�x�|}��g;+ � i .2���z d gU©_uwsrsru�¬�p�oqv���z�|woq�\| � � � gy�:~�x{z�pru�o a �obIz�u�z d pr��x�|}��gU© � u�h z d gjvwg�oqg � |}sIx�|}��g�+ � i .s�

% Z u�¦�g � Ñ ¬ep§z d °G¼{² u�¦�g � s�|}����p�oqvµ���+~�| � gy��Ñ�7 P E uw©S��pr¨yg�i . � i . g�|}x d ¶Ï¬ d g � gRÑ 7 P E xyu�o���pr��z��Guw©z d gt���+~�| � gt��~q�:hª|Nz � p ®«uw©)Ñ�uw©&��pr¨yg�i . � i . z d |Nz', !�e d_Á �j»Óp˸Ìg}¸r¶ d |}��p§z���z�uw�% Äsrgy©]z3xyu � o�g � ½ |NzS�#uw��p z�pru�oG» .�3�> . ½ p�o�Ñj¸6p�g�o�xyg)Ñ 7 P E |woq�SÑ 7 hm'&)(�* 0 P E hm+&)(�* 0 u�¦�g � s�|}�Yu�¦�g � | � gyvwpru�oUuw©<ѵuw©+��pr¨yg . � .ɶÑ�7 P E |wo��ZÑ 7 P E hm+&)(�* 0 u�¦�g � s�|}��u�¦�g � | � gyvwpru�o�uw©D��pr¨yg�i . � .ɶ�Ñ�7 P E |wo��ZÑ 7 hm+&)(,* 0 P E u�¦�g � s�|}�Éu�¦�g �| � gyvwpru�o«uw©)��pr¨yg . � i .ɸ

% c�d g�|}srvwu � p§z d h ©_u � z d g�x�|}��g=+ �´i .2pr�Sz d g�oÉ~q��gy�Íu�o�g�|}x d uw©·z d g °G¼{² �\|}p � ��»_Ñ 7 P E > Ò ½ uw©·z�g¯®+z|wo����:|Nz�z�g � o#¸ ± z�pr��g�|}���Zz�uª��gygtz d |Nz�z d gy��g °G¼{² |woq��¬Åg � �ez�uwvwg{z d g � xyu�o�z�|}p�o�|G�:gy��x � pr�qz�pru�o�uw©)z d g�:gy��p � gy�±hG|Nz � p ® 2 ¸ ced gYu�¦�g � |}srs&z�p�hGg�xyu�h���srg¯®qp§zÄ��z�uZxyu�h��\~+z�gYz d g�h pr�tº�»�» °G¼{²Ã½ � ² sruwv ²Ã½ �º�»�� ° sruwv ²¾½ ¶\|}� � gy�+~qp � gy�I¸

ced g � gy©8u � g}¶q¬Åg d g�o�xygy©8u � z d |}����~�hGgSz d |Nz�+��(i .ɸced gªg¯®+z�g�oq��pru�o uw©ez d g�u�oqg$ Ä��p�hGg�oq��pru�o�|}s���uws�~+z�pru�oÈz�uÍz­¬�uÉ��p�hGg�oq��pru�oq�t¬Åu � ¹<���<�±z � |wo���©8u � h�p�oqv�z d g

zĬÅu Ä��p�hGg�oq��pru�o�|}s\� � uw��srg�h�p�o�z�ut|Uu�oqg$ Ä��p�h�g�o���pru�o�|}s�u�oqg%a �ObÓ¶+|woq�Gp�o�z d g�� � u<xygy���-p�o�z � u<�:~�xygy�.-���u�o&� z�x�| � g0/���qhY�@uwsr�+��z d |Nz�pr�y¶·pr©���pr��z d gZ|}sr� d |}�#g{z�©8u � z d gRz­¬�u Ä��p�hGg�oq��pru�o�|}sÅ� � uw��srg�hZ¶Dz d g�oµz d g�xyu ��� gy���#u�oq��p�oqv

Page 15: An Algorithm for Estimating all Matches Between Two Strings

|}sr� d |}�#g{zÏ©_u � z d g�u�o�g$ Ä��p�h�g�oq��pru�o�|}s#� � uw��srg�h pr�,���3�� �S¬ d g � g��Gpr��| -���u�o'� zÅx�| � g0/����+hY�#uws@p�oGz d g���g�oq��gz d |Nzy¶:pr© V�u � XÍ»Óu � �#u}z d:½ gy��~:|}s��Gz d g�o HGR P S �=<�|}��|�xyu�o�¦�g�o�z�pru�o#¸

� u � gG���@gyxyp§Æ\x�|}srs§�w¶&© � u�h�z d g�z�g¯®+z�hG|Nz � p ®�Ñ uw©Ï��pr¨ygRi . � i .ɶW¬�gªx � g�|Nz�gRz d g�xyu ��� gy���@u�o���p�oqvZz�g¯®+z¦�gyx{z�u ��� ���«xyu�oqx�|Nz�g�o:|Nz�p�oqvGz d g � u�¬e�euw©WÑj¸ ced ~q� � d |}��srg�oqv}z d � . � ¸ 9 � u�h z d gj�:|Nz�z�g � oÍhG|Nz � p ® Ò uw©��pr¨ygC. � .ɶ\¬�gYx � g�|Nz�g�|��:|Nz�z�g � o!¦�gyx{z�u ��� uw©Dsrg�oqv}z d i . � �<�Z|w~�v�h�g�o�z�p�oqvGg�|}x d uw©)z d g � u�¬e��uw© Ò ���|}���#g�oq��p�o�v�z�uRz d g�g�oq��uw©·g�|}x d uw©Dz d g�h .����qht�#uwsr���!|woq�Íz d g�o�xyu�oqx�|Nz�g�o:|Nz�p�oqvZz d g�|w~qv�h�g�o�z�gy� � u�¬e�y¸"$g{zÇ�#gSz d g3��xyu � g3¦�gyx{z�u � ¬ep§z d � |}�Ïz�g¯®+z�|woq� � |}�e�\|Nz�z�g � o#¶:p˸Ìg}¸r¶

'7f� � 1 � � DEGF � H � JMLON�P � N

©_u � < ~ 3 ~ i . � |wo��±¬ep§z d z d gª~�o���g � ��z�|woq�:p�oqv�z d |Nz HGR P S pr�j¨yg � u�pr©Ågyp§z d g � VÈu � X±gy�+~�|}sr�jz d g����#gyxyp�|}s���qhY�@uws �\¸

ced gUxyu�o�oqgyx{z�pru�o��#g{zĬÅgyg�o�2|woq�Zz d gU��xyu � gYhG|Nz � p ® 2 ©_u � z�g¯®+z�Ñ�|woq�«�:|Nz�z�g � o Ò pr��|}��©_uwsrsru�¬e�+� 5�7 P Egy�+~�|}sr�� � 1 � 7 � # h E ¸ ced g � gy©8u � g}¶Ixyu�h��:~+z�p�o�vGz d g�hª|Nz � p ® 2 � gy�\~qxygy�Sz�u�xyu�h��:~+z�p�o�vGz d g�¦�gyx{z�u � µ¸ ced gxyu�h��\~+z�|Nz�pru�o�pr�·oqu}z&h�~qx d hGu � g�xyu�h���srprx�|Nz�gy���<�jz d gÏ� � gy��g�oqxygÅuw©\z d gÏoqg{¬U¶����#gyxyp�|}s��t���+hY�#uws.�$¬ÅgÅ��p�h��:s§�©_uwsrsru�¬ z d g � ~qsrgy�·uw©#z d g�|}srvwu � p§z d h�uw© � gyx{z�pru�o��Ug¯®qxygy�qz·z d |Nzy¶q|Nz-z d ge�:s�|}xyge¬ d g � gÏz d g�|}srvwu � p§z d h � gy��~�p � gy�z�uZx � g�|Nz�g � � � I # » � gy����¸ � � � � Q # ½ ¶I¬�g�u�o�s§����u���u�pr© �Y» � gy����¸[� ½ pr�jo�u}z�z d g������qht�#uws˶I|woq��¬Åg�x � g�|Nz�gG|�<p�oq��z�g�|}�6pr© �Y» � gy����¸ � ½ pr�3z d g��!���qhY�@uws˸ p�g�oqxyg�¬�g�~���g�z d g�¬Ågyprv d z�gy��h�u���gys�p�o�z � u��:~qxygy�Ép�o � gyx{z�pru�o |<¶¬ep§z d z d g3¬�gyprv d z�©Ë~�oqx{z�pru�o��

g » & ½ � i » & ½ �¾�©_u � |wo��Zsrg{z�z�g � &�( ��g¯®qxygy�qze© � u�h

g »�� ½ � i »�� ½ �=<?�ced g � gy��~qs§z���uw© � gyx{z�pru�o |Y��p�h���s§�Rsrg�|}�«z�u�z d gU©8uwsrsru�¬ep�oqvGz d gyu � g�hZ¸��� �!   � � � � À �U( * !:(.-·À 0#1 d $ !yÁ � dÓÀ}Á�&��$ !�� � dËÀ}Á�À�"U( * ! ) ��À , � !$ � &}Á ! � (.d $'&)(�! �2 � &}Á , ! � À $�) � (�!01 ,1, &.�ÀwÁ (�!-0y¿;& �-� À�&��}e�À)��d.( * $Cd8Ás(.d $'! º�»�� ° sruwv ²¾½ -;d.( * $'!0&}Á &}Á�1ªÂ & ��d{&}Á � !Ue d_ !yÁ ,1,

��� �2 � � 2 |woq� �·| � »�!5�7 P E ½q~» ² B 5�7 P E ½��� �

� � � ����%·� %·���#���#����/���!� % �!�ª%-����%-���@��������

¥ g d |�¦�gep�hG��srg�h�g�o�z�gy��|woq��z�gy��z�gy�ªu�~ � |}srvwu � p§z d h«¸ ¥ g d |y¦�g��#g � ©8u � h�gy����g{¦�g � |}s�g¯®q�#g � p�h�g�o�z��Du�o���g{¦�g � |}szÄ�+�#gy�Åuw©I�:|Nz�|?� � |woq�:u�h�s§��vwg�oqg � |Nz�gy��z�g¯®+zy¶q��gy��~�g�oqxygy��vwg�oqgy�y¶q��u�hG|}p�o��·p�oR� � u}z�gyp�oq��¶�srp§z�g � |Nz�~ � gSp�oª��g{¦�g � |}so�|Nz�~ � |}s�s�|wo�v�~�|}vwgy�-|woq� � ±��6± g�oqxyu���p�oqvSuw©:xys�|}����prx�|}s:h�~q��prx}¸ ¥ d |Nz&pr�Duw�:��g � ¦�gy��pr�Dp�o�g¯®qxygysrsrg�o�z�|}v � gyg�h�g�o�z¬ep§z d z d g�� d g�oqu�hGg�o�|R� � gy��prx{z�gy�±�<��z d g�z d gyu � �w¸ ced g�|}srvwu � p§z d h �#g d |y¦�gy�j¬�gysrs&p�o±� � |}x{z�prxygª|}�t��u�u�o±|}�z d gR�:|Nz�z�g � oÈpr����~[_ªxyprg�o�z�s§��s�| � vwg�»ËzÄ�+��prx�|}srs§�w¶�s�| � vwg � z d |woÈ��i!u � �}���<�<z�gy� ½ ¶-g{¦�g�oÈ©8u � |���hG|}srs-¦}|}s�~�gRuw©z d gY�:| � |whGg{z�g � ��z d |NzSxyu�o�z � uwsr� � gy�#g{z�p§z�pru�oq�3p�o«z d gY|}srvwu � p§z d h�»ËzÄ�+��prx�|}srs§�w¶��W�¾�ª��~[_Gxygy� ½ ¸ ~ � ��z�~���prgy�xyu�oqxyg � o«z d gU~�o�¬�gyprv d z�gy��hGu<�:gys˸

� Æ � ��z�g¯®q�#g � p�h�g�o�z�¬Å|}���#g � ©_u � hGgy�6¬ep§z d |Íz�g¯®+zGuw©8n�����i��<�<z�gy��x d uw��g�o |Nz � |woq��u�h |}xyxyu � �:p�oqv�z�uz d g«~�o�pr©8u � hÇ��pr��z � pr�:~+z�pru�oÈu�¦�g � z d gZ|}sr� d |}�#g{z�uw©���pr¨yg�i)| ��¸ ced gRÆ � ��z�� <w�)�±����z�gy��¬Åg � gZ��prx�¹wgy�,|woq� |�:|Nz�z�g � o ¬Å|}�ªuw�qz�|}p�oqgy� �<�ÈhGu<�:pr©]�+p�oqvÉ|Nz � |woq�:u�hZ¶·��u±|}��z�u±¹wgygy� � <}��i6hG|Nz�x d gy�y¸ 9�u � z d pr��x�|}��g}¶Åz d g�:| � |whGg{z�g � ��| � g ° � i ² � n�����i<¶ � � i)| ��¶ �r� ��¸Å��srsIz d gjgy��z�p�hª|Nz�gy�!��xyu � gy��¬Åg � g � g{z�~ � oqgy�Zz�uwvwg{z d g �¬ep§z d z d g�xyu ��� gy���@u�o���p�oqvRg¯®q|}x{zU��xyu � gy�y¸t���:| � z3© � u�h z d g�|}s�h�uw��z3xyu�h��:srg{z�g�hª|Nz�x d ¬ep§z d ��xyu � gY� <}��i<¶)|}srsu}z d g � �#uw��p§z�pru�oq� d |y¦�g�|!��xyu � gGsrgy���tz d |woµu � gy�+~�|}s-z�u |}��¸ ced g�� � uwv � |wh � � u<xygy����gy� � u�~qv d s§�6i n)<!�<��z�gy��#g � ��gyxyu�oq��¸ ced g � gy�O~qs§z�pr�Åz d |Nz�z d g��#gy��zÏhG|Nz�x d pr�Å©8u�~�o��G¬ d prsrg�z d g�� � uwv � |wh �#g d |y¦�gy�ŬÅgysrs�u�o�|}srs�u}z d g �� d pr©8z��y¸

�A<

Page 16: An Algorithm for Estimating all Matches Between Two Strings

���e|woqu}z d g � g¯®q|whG��srg}¶q¬�gjxyu�oq��pr��g � gy��z d gU��g�| � x d ©8u � |}��� � u�®+p�hª|Nz�g3u<xyx�~ ��� g�oqxygy��uw©)|�xys�| � p�oqg{z�z d g�h�guw© x-gyg{z d u�¦�g�o&�Ì�Y9Wpr©8z d � �qh�� d u�o�� ¸/9�u � z d pr�Ïg¯®q�#g � p�h�g�o�zy¶+z d g3�:|Nz�|}�e| � g � ± ��± xyu<�:g}¶:|woq��z d g3srg�oqv}z d uw©z d gtz d g�h�gtpr� ² �´�¡i n�¶I��uªz d |Nz�¬ÅgY��g{z ° �¾i ² ��i)| ��¶ � �´�¡i n�¶ ���¾��¸y9\~ � z d g � hGu � g}¶�|�z d � gy� d uwsr�uw© � �j<?�M|Ípr��~q��gy�Èp�o�u � ��g � z�uÍÆ:s§z�g � |}�:� � uy®qp�hG|Nz�gZhª|Nz�x d gy�«»Óp˸Ìg}¸r¶-z d g�� � uwv � |wh�u�~qz��:~+z���u�oqs§�6z d uw��ghG|Nz�x d gy��¬�p§z d 5 � � ²¾½ ¸p�g � gj| � gj��gysrgyx{z�gy���\| � z���uw©�z d gUu�~+z��:~qz�p�o«| � g�|}�:|}�:srgU©8u � h |woq�«��u � z�gy��������gyx � g�|}��p�oqv���xyu � gy�+����������� ������������������������������������������ �������������������� �!���� �����������" #�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�$��������� %�&�'���������������������������������� (���%�&����)�*������ �!���� ��+�&���+�+" ,�#�#�#�#�,�#�#�#�,�#�#�#�#�,�#�#�#�,�#�#�#�#�,�#�#�#�#�,�#�#�#�#�,�#�#�#�,�#�#�#�#�,�#�#�#�,�#�#�#�#�,�#�#�#�,�#�#�#�#�,�#�#�#�#�,�,�#�#�#�,�,�#�#�,�,�#�#�#�,�,�#�#�,�,�#�#�#�,�,�#�#�,�,�#�#�#�,�,�#�#�#�,�,�#�#�#�,�,�#�#�#�,�,�#�#�#�,�,�#�#�#�,�#�#�#�#�,�$��������� -&�&���&������������������%������������� -&�.�(���%�&��*������ �!���� ����(�%�%�&" ,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�#�,�,�,�,�#�,�#�,�,�#�,�#�#�#�#�,�#�#�#�,�#�#�#�#�,�#�#�#�,�#�#�#�#�,�#�#�#�,�#�#�#�#�,�#�,�,�#�,�#�#�#�#�,�#�#�#�,�,�#�#�#�,�#�#�#�,�,�#�#�#�,�#�#�#�,�,�#�#�#�,�#�,�#�#�,�,�#�#�#�,�#�#�#�#�,�,�#�#�#�,�#�,�,�#�#�,�,�,�#�$��������� -&���%�'�'����������������(�+����������� -&�'�+���(����*������ �!���� +�./����'�%" #�,�#�#�#�#�,�#�#�#�,�#�#�#�#�,�#�#�#�,�#�,�,�#�,�#�,�,�#�,�#�#�#�#�,�#�#�#�,�#�#�#�#�,�#�#�#�,�#�#�#�#�,�#�#�#�,�#�,�,�#�,�#�,�,�#�,�,�#�#�#�,�#�#�#�,�,�#�#�#�,�#�#�#�,�,�#�#�#�,�#�#�#�,�,�#�#�#�,�#�,�,�#�,�,�,�,�#�,�#�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�$��������� -&�(���'������������������(�&����������� -&���%��������*������ �!���� 0����+���%�'" ,�#�#�#�#�,�#�#�#�,�#�#�#�#�,�#�#�#�,�#�#�#�#�,�#�#�#�#�,�#�#�#�#�,�#�#�#�,�#�#�#�#�,�#�#�#�,�#�#�#�#�,�#�#�#�,�#�#�#�#�,�#�#�,�,�,�,�#�#�#�,�,�#�#�,�,�,�#�#�,�,�#�#�,�,�,�#�#�,�,�#�#�,�,�,�,�#�,�,�#�,�,�,�,�,�,�,�,�,�#�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�$��������� -&���(���'�(��������������(������������� .�%�(�&�(����*������ �!���� 0����.�����." #�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�,�#�,�,�#�,�#�,�,�,�,�,�,�,�,�,�,�,�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�#�,�#�,�,�#�,�#�,�,�,�,�,�,�,�,�,�,�,�#�,�,�#�#�#�,�#�#�#�,�,�#�#�#�,�#�#�#�#�,�,�,�#�#�#�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�$

�-|}x d ��sru�x�¹6xyu ��� gy���#u�oq���tz�u±|Íxyg � z�|}p�oÈ�#uw��p§z�pru�o#¸ ± o6g�|}x d ��sru�x�¹\¶·z d gªÆ:gysr�21*354�6Évwp§¦�gy��z d g�gy��z�p�hª|Nz�gy���xyu � g �507 ¼{² ¶�z d gÅÆ:gysr�7198*:<;=4tvwp§¦�gy�·z d gÏg¯®q|}x{z-��xyu � g 5�7 ¼{² |wo���z d gÅÆ:gysr�?><:@4A@BUvwp§¦�gy�&z d g � |Nz�pru �5�7 ¼ 5�7 ¸ ced gx d | � |}x{z�g � �?C«|woq�ED � gy� � gy��g�o�zj|ZhG|Nz�x d |woq�±|ZhGpr��hG|Nz�x d ¶ � gy���#gyx{z�p§¦�gys§�w¸�x�gy��pr��g�z d g�g¯®q|}x{zYu<xyx�~ ��� g�oqxyguw©�z d g�z d g�hGgÉ»ËÆ � ��z���sru�x�¹ ½ ¶Å¬�g!x�|Nz�x d ��g{¦�g � |}seu�xyx�~ ��� g�oqxygy��¬ d g � g�z d gZ�:|Nz�z�g � o0|woq� z d g�z�g¯®+zR|}s�hGuw��zhG|Nz�x d �:~ � p�oqvtsru�o�v���gy��~�g�oqxygy�U»Úoqg¯®+ze©_u�~ � ��sru�x�¹�� ½ ¶:|}�ϬÅgysrs$|}�e|wo�u�xyx�~ ��� g�oqxygS¬ d g � g3p�o�z�g � h�gy��p�|Nz�g$ Ä��pr¨ygy���gy�+~qg�oqxygy��uw©�g¯®q|}x{zRhG|Nz�x d | � gRp�o�z�g � s�|}xygy� ¬ep§z d ��gy�+~qg�oqxygy��uw©�©_~qsrsÏhGpr��hG|Nz�x d »Ós�|}��z���sru<xO¹ ½ ¸ÈÎ�u}z�gZz d g|}xyx�~ � |}x{�Ruw©�z d gS|}srvwu � p§z d h u�oªz d pr�Åg¯®qgyx�~+z�pru�o��&z d g � |Nz�pru �5�7 ¼ 5�7�¦}| � prgy�Ïsrp§z�z�srg3| � u�~:oq�!�w¸ c�d g�|}srvwu � p§z d h pr�z d ~q���+~qp§z�gUvwu�u<�!|Nz�sru<x�|Nz�p�oqvªp�o�z�g � gy��z�p�oqvGg{¦�g�o�z��y¸

F�%&��%-#%·��"D%&�G �IH"bx`ab�|�å � á­å\]WTWs�å"Z\� p w�`KJ5Z\]^TW] î � ps� ï h ¢O¤MLONQP ¥�RMS�¤MTQP�RVU�WXU Y?¤MTQP�S[ZVL]\�¤£¥_^°¤`T�ab\dc �Y|[lrTW� �\o lqh �q�¡ì¡ë[`G �bH z"`�b � lrZ�X[Z�ç � å�� h�edJ o � o l Z ]WT�� oqp �NárlrTW� � SUZ�á s XnT}� � h fhgji Wlknms¤Mo@T�¥�R`U-¤)p¢O¤`LlqKo@S�P ¥jY h �Oñaha�q�¡ì��nh |[| `a�¯ê\���{ò�OêNën�\`G �MH"S ` _[`nb)árZ\]^]}Z\X h�vA`rJ$mo �[TW� hnZ�� p � `a�?� |[Z\�[V�å£� � V�T�hse bJ{(Z�áÄá o l ��SUZ�á s XnT}� � b�|[|[l­å�Z\s XUáÄå ã çAZ �\o t�å¡ç |[l o;�)t

� T å�� h fvu TΤxwdydyza`P ¥=Y`\°¤)p{S[Z=y}|�ZVP�Tza i)~�~�~�i ¥�S�yIT�¥�RMS[PI¤£¥�R`U�¢+¤w¥�pIy�T�ym¥Kwdyj¤£¥ i L�R�Y5y u TΤxwzyI\d\QP ¥=Y h(d�Z�� � Z��[� o h�?��T áÃ� o l ]}Z\� p h �q����ñ[hn|[| `a� ���{òY�Në�ña`G �`H"S ` _[`�b)á Z ]W]WZ�X h�{'`�_�Z\sOæY� o áqh�Z\� p � `��u�q|[Z��[V�å£� � V�T�h�e b;{�l­å � Z � T^]WT � árTWs be|a|[lÄå�Z\s XGáÄå${(Z�á­á o lr��SUZ�á s XnT}� ���Tâá X S$T � ç Z�á s X o;� h f�� R£¥KaD¤ML g S[TQo�wIS[o@T�yI\XR£¥�ahWXU YD¤`TQP�S�Z5L�\ h[�kh �q�\���[hn|[| `��q�[��òn�[�q�[`G ëbHSäx` bx`:é�Z o �qZ t v�Z�á o=� Z�� p J7` fi`J-å��[� o áqh�e b1� o �1b�|[|[l­å�Z�s XGá­åUc o�í á � o Z�lrs XnT}� � h f ¢O¤MLhL]oM¥rP�wdRMS[PI¤£¥9\7¤)p

S�ZjyXW�¢�k�c �¡ë[h � �\���nhn|[| ` � �yòwì��n`G ñMHSäx` bx`�é�Z o �qZ t v�Z�á o;� Z�� p t�` fi`�{ o lr] o=�ao l � h�erjkZ � á�Z\� p { lrZ�s�árTWsqZ ]�be|[|[l­å í T ç Z�á o {(Z�á­á o l ��S�Z�árs X[TW� � h f�i ¥��

p�¤MTQL�RMS[PI¤£¥ u TΤxwdyQ\d\QP ¥=Y��yIS[S/y�Td\dc ë\�[h �q����ñahY|a| `a�n��òn���n`G �xH"S ` t l­åns X o ç�å�l o Z\� p � `�ä$ª}áÄá o lqh |ry��5S�WXU YD¤`TQP�S�Z5L�\ hK� í ��å�l p � �nT�� o l � Tâá�ª {�l o;��� hy�q��� �k`G ìMH"S ` _[`Yj�T � s X o l�Z�� p S ` � `n{(Z�á o l � å�� hse �Ná l T}� � S�Z�árs X[TW� � Z\� p �-árX o l {�l­å p �[s�á � h f ¢O¤ML�qKU�y��5P�S[� ¤)p9¢O¤ML�qro@S�RM�

S�PI¤w¥9c g@i Wlk7��W�k g�u TΤxwzydydaMP ¥jYM\dc �Yh��q��� �ahY|[| ` ���q�yò � �¡ën`G �MH fi`�zxZ\lr] åw«�hXerjkZ � áibe] � å�lrTâá X�ç � ��å�l7b�|[|[l­å í T ç Z�á o ]�ª t�å��[�Ná T}� � SUT � ç Z�árs X o;� h f�i ¥xp�¤MTQL�RMS[PI¤£¥ u TΤxwdyQ\d\QP ¥=Y

�sy�S[S/y�Td\dc �Nì[hy�q���\�[hn|[| `<ë �yò}ñ�êa`G �OêMH�� ` äx`[zÏå � Z\l ZM� � hser����s T o �Náe�NárlrT}� � SUZ�á s XnTW� � h f�ç Z���� � sql T}|wá ha_�å�Xa� � f·å�|[V�TW� �� �nT�� o l � Tâá�ª�h �q��ìY�Y`

� �&³D¼O¶;·�¸§³?¹=º§µBÅ&¶;º�É�¾¿À$¸§³u¶;ÄDÂg�0¹;ÔM¼�ºÇ¸§¹��£´�¼�º�º§¶ Ö��V���b�b���V���V���I s¡��x�Q DÜaÅO³?¹¯µÇ¼Q¢£·?¼�Ä?Á�¼�Æ�¸§³D¼�ÅO³?¹m¾¬¼0µkÀ�ÉFÈD³?¹=Ä£À¯´¬Ä5! ����VÁ�¹wÆD¼=ϸ§¹=»;¼�¸§³?¼�ºOÅ+´¿¸§³9¹m¸§³?¼�ºOÉ�·uµk´�Á�¶m¾LÈ�´�¼�Á�¼�µ�ÏM¶mÄuÆÉ�¶=ÆD¼0¸§³?¼�É ½�º�¼�¼�¾¿À ¶Q£;¶m´¿¾�¶;Ô�¾�¼$¹;Ä�¸§³?¼¥¤ �s¦0Ð

�w�

Page 17: An Algorithm for Estimating all Matches Between Two Strings

G �\�IH�� `Yzx��ç Z\l Z\� p �e` fi`[�Y|[Z£«+å�l p h�erbJ{(Z�á­á o l � t SUZ�á s XnT}� � S�å pno ]-��å�l ã �Ná lr� � T å�� ~5o á o s�árTâå�� h f�u TΤxwdydyza`P ¥=Y`\F¤)pS�Zjy��]RMS[PI¤£¥�R`UO¢O¤`LlqKo@S/y�T g ydw�o@TQP�S��°¢O¤£¥xpIyIT�ym¥Kwdy h�� �\� �khn|[| ` ����òn�[�\`

G � �bH ~ ` �e`�zx����árX h |�Z=y W�TQS6¤�pÌ¢O¤ML�qro@S�yIT u T�¤�YVT�RMLhLhP ¥=Y`c��-¤VU����� g y�L]P ¥ro@L�y�TQP�wdR`U�WXU Y?¤MTQP�S[ZVL]\dc b p[p T � å�� t� o=� ] o ª�hk� � p o p `^h��q��ìa�\hn|[| ` � ��êyòn�\� �a`

�¡i

Page 18: An Algorithm for Estimating all Matches Between Two Strings

����� ���� * ��� ����� ������������������ ( ��� ��� ���! "� ��� � (�#%$(�& � * �'�(� � � )+*�,-��/. ( ��0 �213� &4#�5 060 � � � �7��� 8!9 5 ���: <; 5 � *�5>= �/ * ��� , ( � � ����9 5 �7�2,3? ��G � ;A@ : �#�CB ���"�"DE�(FG�HD-FG���I�(1KJ����� ���� * ��� ����� ������������������6� ��� � 0 �!�� ��0 ����16� &4#�5 0 5 ��� L � 0�� � � � �� * �',-�M� 5�& � � 5 � � ;��/@ � ��DK���(D-FN1-� * � O����� ���� * ��� ����� ������'���(�6���P�6� $( � �Q*�� &�# � 0 � : ;�; �R� L � � 5 � * � &TS D 5 (�# ��� ��U � � �4VXW �� 6, W �(� W YF� V �I�% 3�������� ���� * ��� ����� ������'���(�6���P� ( � 9 5 � � � (�5 � �[Z ( & � ��� � * � B (�&�5 � �M� 5 �R� ( � 9 5 � � � (�5 � �[,3? ��7; �\ U <; � �"D]13^(DKF����%J_13� * �QO����� ���� * ��� ����� ������'���(�6���_F (�# � � �A*�� �7��� # (�& ��0 � � �#�/@ (�5 � � * � 0 � 5 � � (�& � 0 ��,3?a` � � � : ` � � F W ?K^�����*��(�( 3��? W �[�bF1-� * �QO

m� p T á o �[lã �·ä ã bih ~ åNç Z T}� o�pnoÏè å\]}�[s o Z\� hwä·åYsOæY� o �[s�å��[l­á hwé{ �OêNënha�yìa�¯ë\�id���t�f�����5b�v;t oqpno�í

î jkl Z\�[s o{ïc�dQd�e"f g[g�hih�hkj�lnm[o�l p"j q oã �[��� ê�� ��� t ñ\�\���