ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ИсслСдованиС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² расчСта Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ расстояния

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅ расстояниС (Ρ‚Π°ΠΊΠΆΠ΅ расстояниС Π›Π΅Π²Π΅Π½ΡˆΡ‚Π΅ΠΉΠ½Π° ΠΈΠ»ΠΈ дистанция рСдактирования) ΠΌΠ΅ΠΆΠ΄Ρƒ двумя строками Π² Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ лингвистикС — это минимальноС количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ вставки ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа, удалСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа ΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для прСвращСния ΠΎΠ΄Π½ΠΎΠΉ строки Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ. РасстояниС Π›Π΅Π²Π΅Π½ΡˆΡ‚Π΅ΠΉΠ½Π° опрСдСляСт, сколько Ρ€Π°Π· Π½Π°Π΄ΠΎ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ИсслСдованиС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² расчСта Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ расстояния (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠœΠΈΠ½ΠΈΡΡ‚Π΅Ρ€ΡΡ‚Π²ΠΎ образования ΠΈ Π½Π°ΡƒΠΊΠΈ Российской Π€Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ Π€Π΅Π΄Π΅Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ агСнтство ΠΏΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ Π“ΠžΠ£ Π’ΠŸΠž «Π‘СвСрокавказский государствСнный тСхничСский унивСрситСт»

Π€Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ Ρ‚Π΅Π»Π΅ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° Ρ‚Π΅ΠΌΡƒ: «Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² расчСта Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ расстояния»

ΠΏΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ 90 105 «ΠšΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΠ΅ обСспСчСниС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ бСзопасности Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… систСм»

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»: Π§Π΅Ρ€Π²ΠΎΠ½Π΅Π½ΠΊΠΎ АлСксандр Π˜Π³ΠΎΡ€Π΅Π²ΠΈΡ‡ Π“Ρ€ΡƒΠΏΠΏΠ° БАБ-081

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

1. Алгоритм Π’Π°Π³Π½Π΅Ρ€Π°-Π€ΠΈΡˆΠ΅Ρ€Π°

1.1 Π Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅ прСдписаниС

1.2 Π Π°Π·Π½Ρ‹Π΅ Ρ†Π΅Π½Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ Ρ‚ранспозиция

1.3 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π’Π°Π³Π½Π΅Ρ€Π°-Π€ΠΈΡˆΠ΅Ρ€Π°

2. Алгоритм Π₯ΠΈΡ€ΡˆΠ±Π΅Ρ€Π³Π°

2.1 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π₯ΠΈΡ€ΡˆΠ±Π΅Ρ€Π³Π°

2.2 Анализ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°

3. НСчёткий поиск

3.1 Алгоритмы Π½Π΅Ρ‡Ρ‘Ρ‚ΠΊΠΎΠ³ΠΎ поиска Π±Π΅Π· индСксации

3.2 Алгоритм Bitap

3.3 Алгоритм Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников

ΠžΡ‡Π΅Π½ΡŒ часто ΠΌΡ‹ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Π΅ΠΌ, Π΄Π²Π΅ строки ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Ρ€Π°Π²Π½Ρ‹/Π½Π΅ Ρ€Π°Π²Π½Ρ‹, ΠΈ ΠΈΡΠΊΠ°Ρ‚ΡŒ строку Π² ΠΏΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΊΠ΅. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΆΠ΅, ΠΊΠΎΠ³Π΄Π° строки Π½Π΅ Ρ€Π°Π²Π½Ρ‹, интСрСсСн вопрос, Π° Π½Π°ΡΠΊΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π΄Π²Π΅ строки?

Π Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅ расстояниС (Ρ‚Π°ΠΊΠΆΠ΅ расстояниС Π›Π΅Π²Π΅Π½ΡˆΡ‚Π΅ΠΉΠ½Π° ΠΈΠ»ΠΈ дистанция рСдактирования) ΠΌΠ΅ΠΆΠ΄Ρƒ двумя строками Π² Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ лингвистикС — это минимальноС количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ вставки ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа, удалСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа ΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для прСвращСния ΠΎΠ΄Π½ΠΎΠΉ строки Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ. РасстояниС Π›Π΅Π²Π΅Π½ΡˆΡ‚Π΅ΠΉΠ½Π° опрСдСляСт, сколько Ρ€Π°Π· Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ/ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ/Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ символ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ΄Π½Ρƒ строку ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ. НапримСр, расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ словами kitten ΠΈ sitting Ρ€Π°Π²Π½ΠΎ Ρ‚Ρ€Π΅ΠΌ. Π­Ρ‚ΠΎΡ‚, ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для исправлСния ошибок Π² ΡΠ»ΠΎΠ²Π΅ (Π² ΠΏΠΎΠΈΡΠΊΠΎΠ²Ρ‹Ρ… систСмах, Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ тСкста, ΠΏΡ€ΠΈ автоматичСском распознавании отсканированного тСкста ΠΈΠ»ΠΈ Ρ€Π΅Ρ‡ΠΈ), Π² Π±ΠΈΠΎΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ для сравнСния Π³Π΅Π½ΠΎΠ², хромосом ΠΈ Π±Π΅Π»ΠΊΠΎΠ².

Π― Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π» ΠΌΠ΅Ρ‚ΠΎΠ΄ вычислСния Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ расстояния ΠΏΡ€ΠΈ использовании нСбольшого объСма памяти, Π±Π΅Π· сущСствСнной ΠΏΠΎΡ‚Π΅Ρ€ΠΈ скорости. Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… строк (порядка 105 символов, Ρ‚. Π΅. фактичСски для тСкстов) ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ†Π΅Π½ΠΊΠΈ «ΡΡ…оТСсти», Π½ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ всСх происходящих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° тСкста ΠΎΠ΄Π½ΠΎΠΉ строки Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ.

1. Алгоритм Π’Π°Π³Π½Π΅Ρ€Π°-Π€ΠΈΡˆΠ΅Ρ€Π°

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ, я Ρ€Π΅ΡˆΠΈΠ» Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π’Π°Π³Π½Π΅Ρ€Π°-Π€ΠΈΡˆΠ΅Ρ€Π°.

1.1 Π Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅ прСдписаниС

Π Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ прСдписаниСм называСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для получСния ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ дСйствия ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ: D (Π°Π½Π³Π». delete) — ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ, I (Π°Π½Π³Π». insert) — Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, R (replace) — Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, M (match) — совпадСниС.

НапримСр, для 2-Ρ… строк «CONNECT» ΠΈ «CONEHEAD» ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ:

M

M

M

R

R

R

R

I

C

O

N

N

E

C

T

C

O

N

E

H

E

A

D

Π’Π°Π±Π»ΠΈΡ†Π° 1.1 — Π’Π°Π±Π»ΠΈΡ†Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ.

Найти Ρ‚ΠΎΠ»ΡŒΠΊΠΎ расстояниС Π›Π΅Π²Π΅Π½ΡˆΡ‚Π΅ΠΉΠ½Π° — Π±ΠΎΠ»Π΅Π΅ простая Π·Π°Π΄Π°Ρ‡Π°, Ρ‡Π΅ΠΌ Π½Π°ΠΉΡ‚ΠΈ Π΅Ρ‰Ρ‘ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅ прСдписаниС.

1.2 Π Π°Π·Π½Ρ‹Π΅ Ρ†Π΅Π½Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ Ρ‚ранспозиция Π¦Π΅Π½Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Π²ΠΈΠ΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (вставка, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, Π·Π°ΠΌΠ΅Π½Π°) ΠΈ/ΠΈΠ»ΠΈ ΠΎΡ‚ ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² Π½Π΅ΠΉ символов, отраТая Ρ€Π°Π·Π½ΡƒΡŽ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΌΡƒΡ‚Π°Ρ†ΠΈΠΉ Π² Π±ΠΈΠΎΠ»ΠΎΠ³ΠΈΠΈ, Ρ€Π°Π·Π½ΡƒΡŽ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Ρ… ошибок ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ тСкста ΠΈ Ρ‚. Π΄. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС:

§ w (a, b) — Ρ†Π΅Π½Π° Π·Π°ΠΌΠ΅Π½Ρ‹ символа a Π½Π° ΡΠΈΠΌΠ²ΠΎΠ» b;

§ w (Π΅, b) — Ρ†Π΅Π½Π° вставки символа b;

§ w (a, Π΅) — Ρ†Π΅Π½Π° удалСния символа a.

НСобходимо Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΌΠ΅Π½, ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ ΡΡƒΠΌΠΌΠ°Ρ€Π½ΡƒΡŽ Ρ†Π΅Π½Ρƒ. РасстояниС Π›Π΅Π²Π΅Π½ΡˆΡ‚Π΅ΠΉΠ½Π° являСтся частным случаСм этой Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΡ€ΠΈ:

§ w (a, Π°) = 0;

§ w (a, b) = 1 ΠΏΡ€ΠΈ a? b;

§ w (Π΅, b) = 1;

§ w (a, Π΅) = 1.

Как частный случай, Ρ‚Π°ΠΊ ΠΈ Π·Π°Π΄Π°Ρ‡Ρƒ для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… w, Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π’Π°Π³Π½Π΅Ρ€Π° — Π€ΠΈΡˆΠ΅Ρ€Π°, ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅. Π—Π΄Π΅ΡΡŒ ΠΈ Π½ΠΈΠΆΠ΅ ΠΌΡ‹ ΡΡ‡ΠΈΡ‚Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ всС w Π½Π΅ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹, ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°: Ссли Π΄Π²Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΉ, это Π½Π΅ ΡƒΡ…ΡƒΠ΄ΡˆΠ°Π΅Ρ‚ ΠΎΠ±Ρ‰ΡƒΡŽ Ρ†Π΅Π½Ρƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ символ x Π½Π° y, Π° ΠΏΠΎΡ‚ΠΎΠΌ с y Π½Π° z Π½Π΅ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ сразу x Π½Π° z).

Если ΠΊ ΡΠΏΠΈΡΠΊΡƒ Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚Ρ€Π°Π½ΡΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ (Π΄Π²Π° сосСдних символа ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ мСстами), получаСтся расстояниС Π”Π°ΠΌΠ΅Ρ€Π°Ρƒ — Π›Π΅Π²Π΅Π½ΡˆΡ‚Π΅ΠΉΠ½Π°. Для Π½Π΅Ρ‘ Ρ‚Π°ΠΊΠΆΠ΅ сущСствуСт Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΉ O (MN) ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π”Π°ΠΌΠ΅Ρ€Π°Ρƒ ΠΏΠΎΠΊΠ°Π·Π°Π», Ρ‡Ρ‚ΠΎ 80% ошибок ΠΏΡ€ΠΈ Π½Π°Π±ΠΎΡ€Π΅ тСкста Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ ΡΠ²Π»ΡΡŽΡ‚ΡΡ транспозициями. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, расстояниС Π”Π°ΠΌΠ΅Ρ€Π°Ρƒ — Π›Π΅Π²Π΅Π½ΡˆΡ‚Π΅ΠΉΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈ Π² Π±ΠΈΠΎΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅.

1.3 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π’Π°Π³Π½Π΅Ρ€Π°-Π€ΠΈΡˆΠ΅Ρ€Π° Π—Π΄Π΅ΡΡŒ ΠΈ Π΄Π°Π»Π΅Π΅ считаСтся, Ρ‡Ρ‚ΠΎ элСмСнты строк Π½ΡƒΠΌΠ΅Ρ€ΡƒΡŽΡ‚ΡΡ с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ принято Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅, Π° Π½Π΅ с Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ принято Π² ΡΠ·Ρ‹ΠΊΠ°Ρ… Π‘, Π‘++, Java.

ΠŸΡƒΡΡ‚ΡŒ S1 ΠΈ S2 — Π΄Π²Π΅ строки (Π΄Π»ΠΈΠ½ΠΎΠΉ M ΠΈ N ΡΠΎΠΎΡ‚вСтствСнно) Π½Π°Π΄ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠΌ, Ρ‚ΠΎΠ³Π΄Π° Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅ расстояниС d (S1,S2).

(1.1);

(1.2).

Π³Π΄Π΅ m (a, b) Ρ€Π°Π²Π½Π° Π½ΡƒΠ»ΡŽ, Ссли a = b ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС; min (a, b, c) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ наимСньший ΠΈΠ· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

Рассмотрим Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ 1.3.2 Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ. Π—Π΄Π΅ΡΡŒ D (i, j) — расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ прСфиксами строк: ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ i ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ строки S1 ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ j ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ строки S2. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅ расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ двумя пустыми строками Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ. Π’Π°ΠΊ ΠΆΠ΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡƒΡΡ‚ΡƒΡŽ строку ΠΈΠ· ΡΡ‚Ρ€ΠΎΠΊΠΈ Π΄Π»ΠΈΠ½ΠΎΠΉ i, Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ i ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ удалСния, Π° Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ строку Π΄Π»ΠΈΠ½ΠΎΠΉ j ΠΈΠ· ΠΏΡƒΡΡ‚ΠΎΠΉ, Π½ΡƒΠΆΠ½ΠΎ произвСсти j ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ вставки. ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ случай, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π΅ строки нСпусты.

Для Π½Π°Ρ‡Π°Π»Π° Π·Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ мСстами. Π’ ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, рассмотрим Π΄Π²Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

§ Π”Π²Π΅ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ символа — Π½Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ (Ссли ΠΌΡ‹ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ x Π½Π° y, ΠΏΠΎΡ‚ΠΎΠΌ y Π½Π° z, Π²Ρ‹Π³ΠΎΠ΄Π½Π΅Π΅ Π±Ρ‹Π»ΠΎ сразу Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ x Π½Π° z).

§ Π”Π²Π΅ Π·Π°ΠΌΠ΅Π½Ρ‹ Ρ€Π°Π·Π½Ρ‹Ρ… символов ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ мСстами.

§ Π”Π²Π° стирания ΠΈΠ»ΠΈ Π΄Π²Π΅ вставки ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ мСстами.

§ Вставка символа с Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ стираниСм — Π½Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ (ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡ… ΠΎΠ±Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ).

§ Π‘Ρ‚ΠΈΡ€Π°Π½ΠΈΠ΅ ΠΈ Π²ΡΡ‚Π°Π²ΠΊΡƒ Ρ€Π°Π·Π½Ρ‹Ρ… символов ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ мСстами.

§ Вставка символа с Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ — Π½Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ (излишняя Π·Π°ΠΌΠ΅Π½Π°).

§ Вставка символа ΠΈ Π·Π°ΠΌΠ΅Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ символа ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ мСстами.

§ Π—Π°ΠΌΠ΅Π½Π° символа с Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ стираниСм — Π½Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ (излишняя Π·Π°ΠΌΠ΅Π½Π°).

§ Π‘Ρ‚ΠΈΡ€Π°Π½ΠΈΠ΅ символа ΠΈ Π·Π°ΠΌΠ΅Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ символа ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ мСстами.

ΠŸΡƒΡΠΊΠ°ΠΉ S1 кончаСтся Π½Π° ΡΠΈΠΌΠ²ΠΎΠ» «a», S2 кончаСтся Π½Π° ΡΠΈΠΌΠ²ΠΎΠ» «b». Π•ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°:

1. Π‘ΠΈΠΌΠ²ΠΎΠ» «Π°», Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ кончаСтся S1, Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π±Ρ‹Π» стёрт. Π‘Π΄Π΅Π»Π°Π΅ΠΌ это стираниС ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ. Π’ΠΎΠ³Π΄Π° ΠΌΡ‹ ΡΡ‚Ρ‘Ρ€Π»ΠΈ символ «a», послС Ρ‡Π΅Π³ΠΎ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ i? 1 символов S1 Π² S2 (Π½Π° Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ), Π·Π½Π°Ρ‡ΠΈΡ‚, всСго ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ;

2. Π‘ΠΈΠΌΠ²ΠΎΠ» «b», Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ кончаСтся S2, Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½. Π‘Π΄Π΅Π»Π°Π΅ΠΌ это Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ послСднСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ. ΠœΡ‹ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ»ΠΈ S1 Π² ΠΏΠ΅Ρ€Π²Ρ‹Π΅ j ?1 символов S2, послС Ρ‡Π΅Π³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ «b». Аналогично ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ ΡΠ»ΡƒΡ‡Π°ΡŽ, ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ D (i, j-1)+1 ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ;

3. Оба ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… утвСрТдСния Π½Π΅Π²Π΅Ρ€Π½Ρ‹. Если ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΠ»ΠΈ символы справа ΠΎΡ‚ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ «a», Ρ‚ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ послСдним символом «b», ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ ΠΈΠ»ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ (Π½ΠΎ Ρ‚ΠΎΠ³Π΄Π° ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ 2 Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π²Π΅Ρ€Π½ΠΎ), Π»ΠΈΠ±ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° Π½Π΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡ‚ΠΈΡ… Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… символов (Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ символа с Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ). Π—Π½Π°Ρ‡ΠΈΡ‚, символов справа ΠΎΡ‚ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ «a» ΠΌΡ‹ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ»ΠΈ. Π‘Π°ΠΌΠΎΠ³ΠΎ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ «a» ΠΌΡ‹ Π½Π΅ ΡΡ‚ΠΈΡ€Π°Π»ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ 1 Π½Π΅Π²Π΅Ρ€Π½ΠΎ. Π—Π½Π°Ρ‡ΠΈΡ‚, СдинствСнный способ измСнСния послСднСго символа — Π΅Π³ΠΎ Π·Π°ΠΌΠ΅Π½Π°. Π—Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ 2 ΠΈΠ»ΠΈ большС Ρ€Π°Π· Π½Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ.

Π—Π½Π°Ρ‡ΠΈΡ‚:

1. Если a = b, ΠΌΡ‹ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ символ Π½Π΅ ΠΌΠ΅Π½ΡΠ»ΠΈ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΡΡ‚ΠΈΡ€Π°Π»ΠΈ ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠΏΠΈΡΡ‹Π²Π°Π»ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ справа ΠΎΡ‚ Π½Π΅Π³ΠΎ, ΠΎΠ½ Π½Π΅ Π²Π»ΠΈΡΠ» Π½Π° Π½Π°ΡˆΠΈ дСйствия, ΠΈ, Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΌΡ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

2. Если, ΠΌΡ‹ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ символ мСняли ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Π‘Π΄Π΅Π»Π°Π΅ΠΌ эту Π·Π°ΠΌΠ΅Π½Ρƒ ΠΏΠ΅Ρ€Π²ΠΎΠΉ. Π’ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ ΡΠ»ΡƒΡ‡Π°ΡŽ, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ D (i-1, j-1) ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π·Π½Π°Ρ‡ΠΈΡ‚, всСго потрСбуСтся D (i-1, j-1)+1 ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

2. Алгоритм Π₯ΠΈΡ€ΡˆΠ±Π΅Ρ€Π³Π°

ΠŸΡ€ΠΈ рассмотрСнии массива расстояний ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π’Π°Π³Π½Π΅Ρ€Π°-Π€ΠΈΡˆΠ΅Ρ€Π° становится, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ трСбования ΠΊ ΠΏΠ°ΠΌΡΡ‚ΠΈ Ρ€Π°Π²Π½Ρ‹ O (M*N). НапримСр, для сравнСния Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ Π² 105 строк потрСбуСтся ΠΎΠΊΠΎΠ»ΠΎ 40 Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚ памяти. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌΠΈ строками, Π₯ΠΈΡ€ΡˆΠ±Π΅Ρ€Π³ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Ρ‚Ρ€Π°Ρ‚ памяти Π²Π΅Ρ€ΡΠΈΡŽ этого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

2.1 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π₯ΠΈΡ€ΡˆΠ±Π΅Ρ€Π³Π°

Π‘ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ для разбиСния Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡ΠΈ, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ памяти. Для Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… зарисовок возьмСм ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ значСния строк:

S1 = ACGTACGTACGT,

S2 = AGTACCTACCGT.

ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ «Π½Π° Π³Π»Π°Π·» Π½Π΅ Ρ‚Π°ΠΊ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ. Π‘ΡƒΠΊΠ²Ρ‹, кстати, Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ Π½Π΅ ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΠΎ — это азотистыС основания (A, T, G, C), ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π”ΠΠš: ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΡ†Π΅Π½ΠΊΠΈ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ расстояния Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ примСняСтся Π² Π±ΠΈΠΎΠ»ΠΎΠ³ΠΈΠΈ для ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΌΡƒΡ‚Π°Ρ†ΠΈΠΉ. Π’ΠΎΠ³Π΄Π° исходная Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ (ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ, Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅) ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Рисунок 2.1 — ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°

Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡ‚ΠΎΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ расстояния. ПодСлим ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ Π½Π° ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΏΠΎΠ΄Π΅Π»ΠΈΠ² Π²Ρ‚ΠΎΡ€ΡƒΡŽ строку Π½Π° Π΄Π²Π΅ Ρ€Π°Π²Π½Ρ‹Π΅ (ΠΈΠ»ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ€Π°Π²Π½Ρ‹Π΅) части, Π·Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ мСсто разбиСния, ΠΈ Π½Π°Ρ‡Π½Π΅ΠΌ Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Ρ€ΠΎΠ²Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Π»ΠΈ Π² Π’Π°Π³Π½Π΅Ρ€Π° — Π€ΠΈΡˆΠ΅Ρ€Π°:

Рисунок 2.2 — ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°

ΠŸΡ€ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ столбцы, двигаясь слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ, свСрху Π²Π½ΠΈΠ·, ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ вычислСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ D (i, j) значСния D (i-1, j) ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ:

Рисунок 2.3 — Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

Аналогично, Π·Π°ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΏΡ€Π°Π²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ разбиСния. Π—Π΄Π΅ΡΡŒ Π±ΡƒΠ΄Π΅ΠΌ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ справа Π½Π°Π»Π΅Π²ΠΎ, свСрху Π²Π½ΠΈΠ·.

Π’ΠΎΡ‚ ΠΌΡ‹ ΠΈ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΠ»ΠΈΡΡŒ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΠ±Ρ‰Π΅ΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ, совмСстив частныС. ΠŸΡ€ΠΎΡΡƒΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠ΅ΡΡ Π² Π»Π΅Π²Ρ‹Ρ… ΠΈ ΠΏΡ€Π°Π²Ρ‹Ρ… столбцах значСния ΠΈ Π²Ρ‹Π±Π΅Ρ€Π΅ΠΌ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ.

Рисунок 2.4 — ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅ прСдписаниС

Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ это совмСщСниС? Π― ΠΏΠΎΠΏΡ‹Ρ‚ался ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку с ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΎΠΉ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строки, Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку с Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΎΠΉ строки. Π‘ΡƒΠΌΠΌΠ° позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ измСнСния ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ привСсти Π΅Π΅ ΠΊ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строки (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строкС) это Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ расстояния. Но, Ρ€Π°Π½ΠΎ Ρ€Π°Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ, ΠΈΠ±ΠΎ этого Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ ΠΈ ΠΏΡ€ΠΎΡ‰Π΅ (Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄).

Однако, посмотрСв Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΏΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΡƒΠ³Π»ΠΎΠΌ (Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ), ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ сущСствСнный Ρ„Π°ΠΊΡ‚: Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ ΠΊΠ°ΠΊ «Ρ€Π°Π·Ρ€Π΅Π·Π°Ρ‚ΡŒ» ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку Π½Π° Π΄Π²Π΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Ρ‹ Π΄Π°Π»ΠΈ Π½Π°ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅ расстояниС: d (S11,S21) + d (S12,S22) = d (S1,S2). Π‘Ρ‚Ρ€ΠΎΠΊΠ° (Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ располоТСн ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΈ Π΅ΡΡ‚ΡŒ искомоС Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ S1, ΠΈ ΡΡ‚ΠΎ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ отправляСтся Π² Π²Ρ‹Π΄Π°Ρ‡Ρƒ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ прСдписания.

Аналогично Π±ΡƒΠ΄Π΅ΠΌ Π΄Π΅Π»ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ ΡƒΠΆΠ΅ для ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΡ…ΡΡ подстрок S11 ΠΈ S21 (ΠΈ Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΏΠ°Ρ€Ρƒ Ρ‚ΠΎΠΆΠ΅ Π½Π΅ Π·Π°Π±ΡƒΠ΄Π΅ΠΌ):

Рисунок 2.5 — ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

Π—Π°Π²Π΅Ρ€ΡˆΠΈΠΌ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΡΡ‚анСтся Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ подстроки S1 Π΄Π»ΠΈΠ½Ρ‹ большС 1.

Рисунок 2.6- ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ подсчСта ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠΌ список Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠΉ, Π³Π΄Π΅ каТдая подстрока S1 (ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ) Π΄Π°Π΅Ρ‚ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΎΡ†Π΅Π½ΠΊΡƒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ подстроки S2 (ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ).

Для удобства я Ρ€Π°ΡΠΊΡ€Π°ΡΠΈΠ» ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠΈ Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ: Π·Π΅Π»Π΅Π½Ρ‹ΠΉ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ посимвольноС совпадСниС строк Π² Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… позициях, синим Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρ‹, Π° ΠΊΡ€Π°ΡΠ½Ρ‹ΠΌ — удалСния ΠΈΠ»ΠΈ добавлСния. НСтрудно Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ «ΠΊΡ€Π°ΡΠ½Ρ‹Π΅» ΠΊΡ€ΡƒΠΆΠΊΠΈ находятся Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ строкС/столбцС (Π·Π°Π΄Π°Ρ‡ΠΊΠ° Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ: ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ ΠΈΠ· Ρ‡Π΅Π³ΠΎ это слСдуСт).

Π’ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записан Ρ‚Π°ΠΊ (красныС ΡˆΡ‚Ρ€ΠΈΡ…ΠΈ — соотвСтствиС символов, сдвиги ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Ρ‹ Ρ‡Π΅Ρ€Π½Ρ‹ΠΌΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ):

Рисунок 2.7 — Π‘Ρ‚Ρ€ΠΎΠΊΠΈ

2.2 Анализ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°

ΠŸΠ°ΠΌΡΡ‚ΡŒ: для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ шага потрСбуСтся Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ столбСц d (i,*) ΠΈ Π½Π°Π±ΠΎΡ€ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠΉ S1. Π˜Ρ‚ΠΎΠ³ΠΎ O (|S1| + |S2|). Π’ΠΎ Π΅ΡΡ‚ΡŒ вмСсто ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΡ‡Π½ΠΎΠ³ΠΎ объСма ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ.

ВрСмя: ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ S[0.N] ΠΏΠΎ ΡΡ‚ΠΎΠ»Π±Ρ†Ρƒ t ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ подстрок S[0.t] ΠΈ S[t.N]. ВсСго Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠΉ N. ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ разбиСния (S1[i.j], S1[k.n]) трСбуСтся (j — i) x (n — k) ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Буммируя, ΠΎΡ†Π΅Π½ΠΊΡƒ Ρ…ΡƒΠ΄ΡˆΠΈΡ… случаСв для подстрок ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π² ΠΈΡ‚ΠΎΠ³Π΅ 2 * |S1| * |S2| ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. ВрСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΡ‡Π½Ρ‹ΠΌ, Ρ…ΠΎΡ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π°ΡΡŒ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΈΠ²Π½Π°Ρ константа.

Π˜Ρ‚Π°ΠΊ, я Ρ€Π΅ΡˆΠΈΠ» Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ, Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ количСство памяти ΠΈ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ потСряли Π² ΡΠΊΠΎΡ€ΠΎΡΡ‚ΠΈ, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ успСхом.

3. НСчёткий поиск

3.1 Алгоритмы Π½Π΅Ρ‡Ρ‘Ρ‚ΠΊΠΎΠ³ΠΎ поиска Π±Π΅Π· индСксации

Π­Ρ‚ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для поиска ΠΏΠΎ Π·Π°Ρ€Π°Π½Π΅Π΅ нСизвСстному тСксту, ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ‚Скстовых Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°Ρ…, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… для просмотра Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ Π² Π²Π΅Π± Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ… для поиска ΠΏΠΎ ΡΡ‚Ρ€Π°Π½ΠΈΡ†Π΅. Они Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ тСкста ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π›Π΅Π²Π΅Π½ΡˆΡ‚Π΅ΠΉΠ½Π°) ΠΊ ΡΠ»ΠΎΠ²Π°ΠΌ ΠΈΠ· Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ тСкста. ΠŸΡ€ΠΈ использовании ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ, этот ΠΌΠ΅Ρ‚ΠΎΠ΄ позволяСт Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ скорости Ρ€Π°Π±ΠΎΡ‚Ρ‹. Но, ΠΏΡ€ΠΈ этом, Ρ‡Π΅ΠΌ большС k, Ρ‚Π΅ΠΌ сильнСС возрастаСт врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹. АсимптотичСская ΠΎΡ†Π΅Π½ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ — O (kn).

3.2 Алгоритм Bitap

Алгоритм Bitap (Ρ‚Π°ΠΊΠΆΠ΅ извСстный ΠΊΠ°ΠΊ Shift-Or ΠΈΠ»ΠΈ Baeza-Yates-Gonnet)ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΅Π³ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Π½Π΅Ρ‡Π΅Ρ‚ΠΊΠΎΠ³ΠΎ поиска Π±Π΅Π· индСксации. Π•Π³ΠΎ вариация ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² unix-ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ agrep, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ стандартному grep, Π½ΠΎ Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ошибок Π² ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΎΠΌ запросС ΠΈ Π΄Π°ΠΆΠ΅ прСдоставляя ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ возмоТности для примСнСния рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

Π’ΠΏΠ΅Ρ€Π²Ρ‹Π΅ идСю этого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Ricardo Baeza-Yates ΠΈ Gaston Gonnet, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ Π² 1992 Π³ΠΎΠ΄Ρƒ. ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ вСрсия Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π΅Π»ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π·Π°ΠΌΠ΅Π½Π°ΠΌΠΈ символов, ΠΈ, фактичСски, вычисляСт расстояниС Π₯Π΅ΠΌΠΌΠΈΠ½Π³Π°. Но Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅ Sun Wu ΠΈ Udi Manber ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ этого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° для вычислСния расстояния Π›Π΅Π²Π΅Π½ΡˆΡ‚Π΅ΠΉΠ½Π°, Ρ‚. Π΅. привнСсли ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ вставок ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΉ, ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π° Π΅Π³ΠΎ основС ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ agrep.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ Bitshift:

(3.1)

Вставки:

(3.2)

УдалСния:

(3.3)

Π—Π°ΠΌΠ΅Π½Ρ‹:

(3.4)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

(3.5)

Π³Π΄Π΅ k — количСство ошибок, j — индСкс символа, sx — маска символа (Π² ΠΌΠ°ΡΠΊΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Π΅ Π±ΠΈΡ‚Ρ‹ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΡΡ…, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… позициям Π΄Π°Π½Π½ΠΎΠ³ΠΎ символа Π² Π·Π°ΠΏΡ€ΠΎΡΠ΅). Π‘ΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ нСсовпадСниС запросу опрСдСляСтся самым послСдним Π±ΠΈΡ‚ΠΎΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° R.

Высокая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ этого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° обСспСчиваСтся Π·Π° ΡΡ‡Π΅Ρ‚ Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° вычислСний — Π·Π° ΠΎΠ΄Π½Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, провСсти вычислСния Π½Π°Π΄ 32 ΠΈ Π±ΠΎΠ»Π΅Π΅ Π±ΠΈΡ‚Π°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. ΠŸΡ€ΠΈ этом Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Π°Ρ рСализация ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ поиск слов Π΄Π»ΠΈΠ½ΠΎΠΉ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 32. Π­Ρ‚ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ обуславливаСтся ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ стандартного Ρ‚ΠΈΠΏΠ° int (Π½Π° 32-Π±ΠΈΡ‚Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ…). МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ‚ΠΈΠΏΡ‹ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… размСрностСй, Π½ΠΎ ΡΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стСпСни Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

НС ΡΠΌΠΎΡ‚Ρ€Ρ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ асимптотичСскоС врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ этого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° O (kn) совпадаСт с Ρ‚Π°ΠΊΠΎΠ²Ρ‹ΠΌ Ρƒ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΎΠ½ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрСС ΠΏΡ€ΠΈ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… запросах ΠΈ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π΅ ошибок k Π±ΠΎΠ»Π΅Π΅ 2.

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ простой ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Bitap, сильно зависит ΠΎΡ‚ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π° ошибок k.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ссли Ρ€Π΅Ρ‡ΡŒ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎ ΠΏΠΎΠΈΡΠΊΠ΅ Π² Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹Ρ… тСкстах большого объСма, Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΡ поиска ΠΌΠΎΠΆΠ½ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ, произвСдя ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ тСкста, Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ индСксациСй.

3.3 Алгоритм Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ

Π­Ρ‚ΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ часто примСняСтся Π² ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΎΡ€Ρ„ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ (Ρ‚.Π΅. Π² spell-checker'Π°Ρ…), Ρ‚Π°ΠΌ, Π³Π΄Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ словаря Π½Π΅Π²Π΅Π»ΠΈΠΊ, Π»ΠΈΠ±ΠΎ ΠΆΠ΅ Π³Π΄Π΅ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся основным ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅ΠΌ. Он ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎ Π½Π΅Ρ‡Π΅Ρ‚ΠΊΠΎΠΌ поискС ΠΊ Π·Π°Π΄Π°Ρ‡Π΅ ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎΠΌ поискС.

Из ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ запроса строится мноТСство «ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹Ρ…» слов, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°Ρ‚Π΅ΠΌ производится Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ поиск Π² ΡΠ»ΠΎΠ²Π°Ρ€Π΅.

ВрСмя Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сильно зависит ΠΎΡ‚ Ρ‡ΠΈΡΠ»Π° k ΠΎΡˆΠΈΠ±ΠΎΠΊ ΠΈ ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° A, ΠΈ Π² ΡΠ»ΡƒΡ‡Π°Π΅ использования Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ поиска ΠΏΠΎ ΡΠ»ΠΎΠ²Π°Ρ€ΡŽ составляСт:

(3.6)

НапримСр, ΠΏΡ€ΠΈ k = 1 ΠΈ ΡΠ»ΠΎΠ²Π° Π΄Π»ΠΈΠ½Ρ‹ 7 (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «ΠšΡ€ΠΎΠΊΠΎΠ΄ΠΈΠ»») Π² Ρ€ΡƒΡΡΠΊΠΎΠΌ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π΅ мноТСство ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹Ρ… слов Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΎΠΊΠΎΠ»ΠΎ 450, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ 450 запросов ΠΊ ΡΠ»ΠΎΠ²Π°Ρ€ΡŽ, Ρ‡Ρ‚ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ. Но ΡƒΠΆΠ΅ ΠΏΡ€ΠΈ k = 2 Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΎΠ³ΠΎ мноТСства Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ 115 тысяч Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ², Ρ‡Ρ‚ΠΎ соотвСтствуСт ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Ρƒ нСбольшого словаря, Π»ΠΈΠ±ΠΎ, ΠΆΠ΅ 1 / 27 Π² Π½Π°ΡˆΠ΅ΠΌ случаС, ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ достаточно Π²Π΅Π»ΠΈΠΊΠΎ. ΠŸΡ€ΠΈ этом Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΈ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… слов Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ провСсти поиск Π½Π° Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ совпадСниС Π² ΡΠ»ΠΎΠ²Π°Ρ€Π΅.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ: Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ «ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹Ρ…» Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, ΠΈ, ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ словаря, ΠΈ, соотвСтствСнно, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ памяти.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ: ΠΌΠΎΠΆΠ½ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Π²ΡΡ‘ мноТСство «ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹Ρ…» слов, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΈΠ· Π½ΠΈΡ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ вСроятно ΠΌΠΎΠ³ΡƒΡ‚ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒΡΡ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ситуации, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, слова с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ распространСнных орфографичСских ошибок ΠΈΠ»ΠΈ ошибок Π½Π°Π±ΠΎΡ€Π°.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ написания Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ стала программная рСализация ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² расчСта Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ расстояния ΠΈΠ»ΠΈ расстояния Π›Π΅Π²Π΅Π½ΡˆΡ‚Π΅ΠΉΠ½Π°.

Π”Π°Π½Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… срСдствах ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ — рСсурсов, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²ΠΈΠ΄Π°Ρ… символьного поиска, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΠΈ тСкста ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΡ Π² Π½Π΅ΠΌ ошибок.

Основной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ ΠΏΡ€ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² являСтся ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ рСсурсоёмкости ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Ρ‡Ρ‚ΠΎ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ сказываСтся Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΠΈ расчСта Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ расстояния. ИмСнно Ρ‚Π°ΠΊ Π±Ρ‹Π»ΠΈ созданы Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π½Π΅Ρ‡Ρ‘Ρ‚ΠΊΠΎΠ³ΠΎ поиска. Π­Ρ‚ΠΎ ΠΈ ΡΠ²Π»ΡΠ΅Ρ‚ся основным нСдостатком Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² расчСта расстояния Π›Π΅Π²Π΅Π½ΡˆΡ‚Π΅ΠΉΠ½Π°.

Π’ ΡΠ²ΠΎΠ΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° я Π²Π·ΡΠ» Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π’Π°Π³Π½Π΅Ρ€Π°-Π€ΠΈΡˆΠ΅Ρ€Π°.

Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅ прСдписаниС

Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников

1. Π’. И. Π›Π΅Π²Π΅Π½ΡˆΡ‚Π΅ΠΉΠ½. Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ с ΠΈΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ‹ΠΏΠ°Π΄Π΅Π½ΠΈΠΉ, вставок ΠΈ Π·Π°ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΉ символов. Π”ΠΎΠΊΠ»Π°Π΄Ρ‹ АкадСмий Наук Π‘Π‘Π‘Π , 1965

2. Π’. И. Π›Π΅Π²Π΅Π½ΡˆΡ‚Π΅ΠΉΠ½, Об ΠΎΠ΄Π½ΠΎΠΌ классС систСматичСских ΠΊΠΎΠ΄ΠΎΠ², Π”ΠΎΠΊΠ». АН Π‘Π‘Π‘Π , 131, 5, 1960, 1011−1014

3. Π’. И. Π›Π΅Π²Π΅Π½ΡˆΡ‚Π΅ΠΉΠ½, О Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… свойствах ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Ρ… систСм, Π”ΠΎΠΊΠ». АН Π‘Π‘Π‘Π , 140, 6, 1961, 1274−1277

4. Π’. И. Π›Π΅Π²Π΅Π½ΡˆΡ‚Π΅ΠΉΠ½, Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ с ΠΈΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ‹ΠΏΠ°Π΄Π΅Π½ΠΈΠΉ, вставок ΠΈ Π·Π°ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΉ символов, Π”ΠΎΠΊΠ». АН Π‘Π‘Π‘Π , 163, 4, 1965, 845−848

5. Гасфилд. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ, Π΄Π΅Ρ€Π΅Π²ΡŒΡ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ…. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ биология. НСвский Π”ΠΈΠ°Π»Π΅ΠΊΡ‚ Π‘Π’Π₯ — ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 2003

6. Π‘Π»Π΅ΠΉΡ…ΡƒΡ‚ Π . ВСория ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΊΠΎΠ΄ΠΎΠ², ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ошибки (Theory and Practice of Error Control Codes) — М.: ΠœΠΈΡ€, 1986

7. Мак-Π’ΠΈΠ»ΡŒΡΠΌΡ Π€. Π”ΠΆ., Блоэн Н. Π”ΠΆ. А. ВСория ΠΊΠΎΠ΄ΠΎΠ², ΠΈΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ошибки. М.: Π Π°Π΄ΠΈΠΎ ΠΈ ΡΠ²ΡΠ·ΡŒ, 1979

8. ΠœΠΎΡ€Π΅Π»ΠΎΡ-Барагоса Π . Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ помСхоустойчивого кодирования. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ / ΠΏΠ΅Ρ€. Ρ Π°Π½Π³Π». Π’. Π‘. ΠΡ„Π°Π½Π°ΡΡŒΠ΅Π²Π°. — Πœ.: ВСхносфСра, 2006

9. Романовский И. Π’. «Π”искрСтный Π°Π½Π°Π»ΠΈΠ·», Москва, 2005

10. Π . ЛоурСнс, Π ΠΎΠ±Π΅Ρ€Ρ‚ А. Π’Π°Π³Π½Π΅Ρ€, «ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ строка — Π² — строку», JACM, 1975

11. Π‘. Π”. ОоммСн, Π .К. Π‘. Π›ΠΎΠΊ, «Π Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ строки с Π·Π°ΠΌΠ΅Π½ΠΎΠΉ, вставкой, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½ΠΎΠΉ пСрСстановкой»

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ