рд╕рдВрдкрд╛рджрдХреАрдп рджреВрд░реА рдХреА рдЧрдгрдирд╛


рд╕рдВрдкрд╛рджрдХреАрдп рджреВрд░реА, рдпрд╛ рд▓реЗрд╡реЗрдирд╢реАрди рджреВрд░реА, рдПрдХ рдореАрдЯреНрд░рд┐рдХ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рджреЛ рд▓рд╛рдЗрдиреЛрдВ рдХреА "рд╕рдорд╛рдирддрд╛" рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ - рдПрдХ рд╡рд░реНрдг рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдЪрд╛рд▓рди рдХреА рдиреНрдпреВрдирддрдо рд╕рдВрдЦреНрдпрд╛, рдПрдХ рд╡рд░реНрдг рдХреЛ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдПрдХ рд╡рд░реНрдг рдХреЛ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ, рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рджреВрд╕рд░реА рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд▓реЗрдЦ рдореЗрдВ рдореЗрдореЛрд░реА рдХреА рдереЛрдбрд╝реА рдорд╛рддреНрд░рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдкрд╛рджрдХреАрдп рджреВрд░реА рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдмрд┐рдирд╛ рдЧрддрд┐ рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдиреБрдХрд╕рд╛рди рдХреЗред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдмрдбрд╝реА рд▓рд╛рдЗрдиреЛрдВ (10 5 рд╡рд░реНрдгреЛрдВ рдХреЗ рдХреНрд░рдо рдореЗрдВ, рдЬреЛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧреНрд░рдВрдереЛрдВ рдХреЗ рд▓рд┐рдП) рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм рди рдХреЗрд╡рд▓ "рд╕рдорд╛рдирддрд╛" рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдХреНрд░рдо рднреА рд╣реЛрддрд╛ рд╣реИред

рдереЛрдбрд╝рд╛ рдФрдкрдЪрд╛рд░рд┐рдХрддрд╛

рдЖрдЬреНрдЮрд╛ рджреЗрдирд╛ рджреЛ рд▓рд╛рдЗрдиреЗрдВ S 1 рдФрд░ S 2 рд╣реИрдВ ред рд╣рдо рдПрдХ рдХреЛ рджреВрд╕рд░реЗ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдкрд╣рд▓реЗ рдХреЛ рджреВрд╕рд░реЗ рдореЗрдВ рджреЗрдВ, рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдкрд░реЗрд╢рди рд╕рдордорд┐рдд рд╣реИрдВ):

рдлрд┐рд░ d (S 1 , S 2 ) S 1 рдХреЛ S 2 рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП I / D / R рд╕рдВрдЪрд╛рд▓рди рдХреА рдиреНрдпреВрдирддрдо рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдФрд░ рд╕рдВрдкрд╛рджрдХреАрдп рдирд┐рд░реНрджреЗрд╢ рдЙрдирдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рд╕рдВрдЪрд╛рд▓рди рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИред

рд╡реИрдЧрдирд░ - рдлрд┐рд╢рд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рджреНрд╡рд╛рд░рд╛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, O (| S 1 | * | S | S) рд╕рдВрдкрд╛рджрдХреАрдп рдиреБрд╕реНрдЦреЗ рдХреЛ рдмрд╣рд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рд╕реЗрд▓реНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдореИрдВ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ "рдЕрдиреБрдХреВрд▓рди" рдЗрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред

рд╡реИрдЧрдирд░-рдлрд┐рд╢рд░ рдПрд▓реНрдЧреЛрд░рд┐рдердо

рд╡рд╛рдВрдЫрд┐рдд рджреВрд░реА рд╕рд╣рд╛рдпрдХ рдлрд╝рдВрдХреНрд╢рди рдбреА (рдПрдо, рдПрди) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдЬреЛ рд╕рдмреНрд╕рдЯреНрд░рд┐рдВрдЧреНрд╕ рдПрд╕ 1 [0..M] рдФрд░ рдПрд╕ 2 [0..N] рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд╛рджрдХреАрдп рджреВрд░реА рдкрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рдХреБрд▓ рд╕рдВрдкрд╛рджрдХреАрдп рджреВрд░реА рдкреВрд░реНрдг рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рджреВрд░реА рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧреА: d (S 1 , S 2 ) = D S 1 , S 2 (M, N)ред

рд╕реНрд╡рдпрдВ рд╕реНрдкрд╖реНрдЯ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐:

рдбреА (0,0) = 0ред

рджрд░рдЕрд╕рд▓, рдЦрд╛рд▓реА рд░реЗрдЦрд╛рдПрдВ рд╕рдорд╛рди рд╣реЛрддреА рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрд░реНрде рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╣реИ:

рдбреА (i, 0) = i;
рдбреА (0, рдЬреЗ) = рдЬреЗред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреЛрдИ рднреА рд░реЗрдЦрд╛ рдЦрд╛рд▓реА рд╣реЛ рд╕рдХрддреА рд╣реИ, рд╕рд╣реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд░реНрдг рдЬреЛрдбрд╝рдХрд░, рдХреЛрдИ рднреА рдЕрдиреНрдп рдСрдкрд░реЗрд╢рди рдХреЗрд╡рд▓ рд╕реНрдХреЛрд░ рдмрдврд╝рд╛рдПрдЧрд╛ред

рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдореЗрдВ, рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓:

D (i, j) = D (i-1, j-1) рдпрджрд┐ S 1 [i] = S 2 [j,
рдЕрдиреНрдпрдерд╛, D (i, j) = min (D (i-1, j), D (i, j-1), D (i-1, j-1)) + 1ред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЪреБрдирддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рдЕрдзрд┐рдХ рд▓рд╛рднрджрд╛рдпрдХ рд╣реИ: рдЪрд░рд┐рддреНрд░ (D (i-1, j)), рдЬреЛрдбрд╝реЗрдВ (D (i, j-1)), рдпрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ (D (i-1, j-1))ред

рдпрд╣ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдЕрдиреБрдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рдХреЙрд▓рдо, рд╡рд░реНрддрдорд╛рди (рдбреА (рдЖрдИ, *)) рдФрд░ рдкрд┐рдЫрд▓реЗ (рдбреА (рдЖрдИ -1, *)) рдХреА рд╕реНрдореГрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдВрдкрд╛рджрдХреАрдп рдкрд░реНрдЪреЗ рдХреЛ рдмрд╣рд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдирд┐рдЪрд▓реЗ рджрд╛рдПрдВ рдХреЛрдиреЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░ (M, N), рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдКрдкрд░реА рдЪрд░рдг рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдореЗрдВ рдиреНрдпреВрдирддрдо рддреАрди рд╕рдВрдХреЗрддреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВ:
рдпрд╣рд╛рдВ (i, j) рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдХреЛрд╢рд┐рдХрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЗрд╕ рдХрджрдо рдкрд░ рд╣реИрдВред рдпрджрд┐ рддреАрди рдореЗрдВ рд╕реЗ рджреЛ рдорд╛рди рдиреНрдпреВрдирддрдо рд╣реИрдВ (рдпрд╛ рд╕рднреА рддреАрди рд╕рдорд╛рди рд╣реИрдВ), рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ 2 рдпрд╛ 3 рдмрд░рд╛рдмрд░ рд╕рдВрдкрд╛рджрдХреАрдп рдиреБрд╕реНрдЦреЗ рд╣реИрдВред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, O (| S 1 | * | S 2 |) рд╕рдордп рдФрд░ O (| S 1 | * | | S 2 |) рдореЗрдореЛрд░реА рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рддрд░реНрдХ

рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд░реНрдд рдПрдХ рд╕рд╛рдзрд╛рд░рдг рддрдереНрдп рд╣реИ: рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ, рд╕реНрдореГрддрд┐ рд╕рдордп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдорд╣рдВрдЧрд╛ рд╣реИред рджрд░рдЕрд╕рд▓, рд▓рдВрдмрд╛рдИ рдореЗрдВ 2 16 рд╡рд░реНрдгреЛрдВ рдХреЗ рддрд╛рд░ рдХреЗ рд▓рд┐рдП, рд▓рдЧрднрдЧ 2 32 рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдСрдкрд░реЗрд╢рди (рдЬреЛ рдЖрдзреБрдирд┐рдХ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЧрдгрдирд╛ рдХреЗ рджрд╕ рд╕реЗрдХрдВрдб рдХреЗ рднреАрддрд░ рдЧрд┐рд░ рдЬрд╛рдПрдВрдЧреЗ) рдФрд░ 2 32 рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдорд╢реАрди рдХреА рднреМрддрд┐рдХ рдореЗрдореЛрд░реА рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдбрд╝рд╛ рд╣реИред

рд╕рддрд╣ рдкрд░ рджреВрд░реА рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдореГрддрд┐ рдХреА рд░реИрдЦрд┐рдХ рд░рд╛рд╢рд┐ (2 * | рдПрд╕ 1 |) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдЗрд╕рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╕рдВрдкрд╛рджрдХреАрдп рдкрд░реНрдЪреЗ рдХреА рдЧрдгрдирд╛ рдореЗрдВ рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИред

рдХрд╛рдЙрдВрдЯрд░ рдЧрдгрдирд╛ рд╡рд┐рдзрд┐ (рд╣рд┐рд░реНрд╢рдмрд░реНрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо)

рд╣рдо рдХрд╛рд░реНрдп рдХреЛ рдЙрдк-рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрдирд░рд╛рд╡рд░реНрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдЧреЗ рдХреЗ рд╕реНрдХреЗрдЪ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рдХреБрдЫ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд▓реЗрддреЗ рд╣реИрдВред

S 1 = ACGTACGTACGT,
S 2 = AGTACCTACCGTред

рд▓рдЧрддрд╛ рд╣реИ? рд▓реЗрдХрд┐рди рдПрдХ "рдЖрдВрдЦ рд╕реЗ" рджреВрд╕рд░реЗ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЗрддрдирд╛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рдкрддреНрд░, рд╡реИрд╕реЗ, рд╕рдВрдпреЛрдЧ рд╕реЗ рдирд╣реАрдВ рдЪреБрдиреЗ рдЧрдП рдереЗ - рдпреЗ рдирд╛рдЗрдЯреНрд░реЛрдЬрдирд╕ рдЖрдзрд╛рд░ (рдП, рдЯреА, рдЬреА, рд╕реА), рдбреАрдПрдирдП рдШрдЯрдХ рд╣реИрдВ: рд╕рдВрдкрд╛рджрдХреАрдп рджреВрд░реА рдЕрдиреБрдорд╛рди рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬреАрд╡ рд╡рд┐рдЬреНрдЮрд╛рди рдореЗрдВ рдореНрдпреВрдЯреЗрд╢рди рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рддрдм рдореВрд▓ рдЕрдирдлрд┐рд▓реНрдб рдореИрдЯреНрд░рд┐рдХреНрд╕ рджрд┐рдЦреЗрдЧрд╛ (рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рджрд┐рдЦреЗрдЧрд╛, рд╣рдо рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВрдЧреЗ) рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:



рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдореЗрдВ рд╕рдВрдкрд╛рджрдХреАрдп рджреВрд░реА рдХрд╛ рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рдо рдореВрд▓ рдХрд╛рд░реНрдп рдХреЛ рдПрдХ рдЙрдк-рднрд╛рдЧ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдХреЛ рджреЛ рд╕рдорд╛рди (рдпрд╛ рд▓рдЧрднрдЧ рдмрд░рд╛рдмрд░) рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╡рд┐рднрд╛рдЬрди рдХреА рдЬрдЧрд╣ рдХреЛ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рднрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рд╡реИрдЧрдирд░-рдлрд┐рд╢рд░ рдореЗрдВ рдХрд┐рдпрд╛ рдерд╛:



рдЕрдВрджрд░ рднрд░рдиреЗ рдкрд░, рд╣рдо рдкрд┐рдЫрд▓реЗ рдХреЙрд▓рдо рдХреЛ рд╕реНрдЯреЛрд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ, рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рддрдХ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо D (i, j) рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, D (i-1, j) рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:



рдЗрд╕реА рддрд░рд╣, рд╡рд┐рднрд╛рдЬрди рдХреЗ рджрд╛рдИрдВ рдУрд░ рднрд░реЗрдВред рдпрд╣рд╛рдВ рд╣рдо рджрд╛рдПрдВ рд╕реЗ рдмрд╛рдПрдВ, рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рдХреА рдУрд░ рдЬрд╛рдПрдВрдЧреЗ:



рддреЛ рд╣рдо рдорд┐рд▓реЗред рдЕрдм рдЖрдк рдХреЛрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдХреЙрд▓рдо рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдорд╛рдиреЛрдВ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдХрд░реЗрдВ рдФрд░ рдиреНрдпреВрдирддрдо рдЪреБрдиреЗрдВред



рдЗрд╕ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ? рд╣рдордиреЗ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЛ рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдлрд┐рд░ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЗ рджреВрд╕рд░реА рдЫрдорд╛рд╣реА рдХреЗ рд╕рд╛рдеред рдпреЛрдЧ рдЖрдкрдХреЛ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдпрд╣ рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдХреЗ рдкрд╣рд▓реЗ рдФрд░ рджреВрд╕рд░реЗ рдЫрдорд╛рд╣реА рдХреЗ рд╕рдорд╛рдкреНрддреА рдХреА рдУрд░ рдЬрд╛рдП (рдЕрд░реНрдерд╛рдд рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП) ... рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╕рдВрдкрд╛рджрдХреАрдп рджреВрд░реА рдорд┐рд▓ рдЧрдИ рд╣реИ! рд▓реЗрдХрд┐рди, рдпрд╣ рдмрд╣реБрдд рдЦреБрд╢реА рдХреА рдмрд╛рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд░рд┐рдгрд╛рдо рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐)ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдЕрд▓рдЧ рдХреЛрдг (рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ) рдХреА рддрд╕реНрд╡реАрд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдореЗрдВ рдПрдХ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рддрдереНрдп рдорд┐рд▓рд╛: рдЕрдм рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЛ рджреЛ рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рдХреИрд╕реЗ "рдХрдЯ" рдХрд┐рдпрд╛ рдЬрд╛рдП, рддрд╛рдХрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдЬреЛрдбрд╝реЗ рд╣рдореЗрдВ рд╕рдВрдкрд╛рджрдХреАрдп рджреВрд░реА рджреЗрдВ: d (S 1 1 , S 2 1 ) + d (S 1 2 , S 2 2 ) = d (S 1 , S 2 )ред рдкрдВрдХреНрддрд┐ (рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ) рдЬрд┐рд╕рдореЗрдВ рдиреНрдпреВрдирддрдо рд╕реНрдерд┐рдд рд╣реИ рд╡рд╛рдВрдЫрд┐рдд рд╡рд┐рднрд╛рдЬрди S 1 рд╣реИ , рдФрд░ рдпрд╣ рд╡рд┐рднрд╛рдЬрди рд╕рдВрдкрд╛рджрдХреАрдп рдкрд░реНрдЪреЗ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕реА рддрд░рд╣, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░рд┐рдгрд╛рдореА рдкрджрд╛рд░реНрдереЛрдВ рдПрд╕ 1 1 рдФрд░ рдПрд╕ 2 1 рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВрдЧреЗ (рдФрд░ рд╣рдо рдпрд╛ рддреЛ рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рднреВрд▓реЗрдВрдЧреЗ:



рд╣рдо рд╡рд┐рднрд╛рдЬрди рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм 1 рд╕реЗ рдЕрдзрд┐рдХ рд▓рдВрдмрд╛рдИ рдХрд╛ рдХреЛрдИ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрд╕ 1 рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред



рд╣рдореЗрдВ рд╡рд┐рднрд╛рдЬрдиреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдорд┐рд▓рддреА рд╣реИ, рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рд╕рдмреНрд╕реНрдЯреНрд░рд┐рдВрдЧ S 1 (рд▓рдВрдмрд╡рдд рд░реВрдк рд╕реЗ), рд╕рдВрдмрдВрдзрд┐рдд рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ S 2 (рдХреНрд╖реИрддрд┐рдЬ) рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдиреНрдпреВрдирддрдо рдЕрдиреБрдорд╛рди рджреЗрддрд╛ рд╣реИред



рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд░рдВрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рд╢рд╛рдиреЛрдВ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд┐рдпрд╛: рд╣рд░реЗ рд░рдВрдЧ рдХрд╛ рдЕрд░реНрде рд╣реИ рдЪрдпрдирд┐рдд рдкрджреЛрдВ рдореЗрдВ рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдПрдХ рдЪрд░рд┐рддреНрд░-рджрд░-рд╡рд░реНрдг рдорд┐рд▓рд╛рди, рдиреАрд▓рд╛ рдХрд╛ рдЕрд░реНрде рд╣реИ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛, рдФрд░ рд▓рд╛рд▓ рдХрд╛ рдЕрд░реНрде рд╣реИ рд╣рдЯрд╛рдирд╛ рдпрд╛ рдЬреЛрдбрд╝рдирд╛ред рдпрд╣ рдиреЛрдЯрд┐рд╕ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ "рд▓рд╛рд▓" рд╕рд░реНрдХрд▓ рдПрдХ рд╣реА рдкрдВрдХреНрддрд┐ / рдХреЙрд▓рдо рдореЗрдВ рд╣реИрдВ (рдХрд╛рд░реНрдп рдЪреМрдХрд╕ рд╣реИ: рдпрд╣ рдмрддрд╛рдПрдВ рдХрд┐ рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ)ред

рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░реВрдк рдореЗрдВ, рдкрд░рд┐рдгрд╛рдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд▓рд╛рд▓ рд╕реНрдЯреНрд░реЛрдХ - рдорд┐рд▓рд╛рди рд╡рд╛рд▓реЗ рд╡рд░реНрдг, рдмрджрд▓рд╛рд╡ рдХрд╛рд▓реЗ рдХреНрд╖реИрддрд┐рдЬ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ):



рдПрд▓реНрдЧреЛрд░рд┐рдердо рд╡рд┐рд╢реНрд▓реЗрд╖рдг

рдореЗрдореЛрд░реА: рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдХреЙрд▓рдо d (i, *) рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдФрд░ рд╡рд┐рднрд╛рдЬрди рдХрд╛ рдПрдХ рд╕реЗрдЯ рдпрд╛рдж рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛: 1 ред рдХреБрд▓ O (| S 1 | + | S 2 |)ред рдпрд╣реА рд╣реИ, рдПрдХ рджреНрд╡рд┐рдШрд╛рдд рдорд╛рддреНрд░рд╛ рдХреЗ рдмрдЬрд╛рдп, рд╣рдореЗрдВ рдПрдХ рд░реИрдЦрд┐рдХ рдорд┐рд▓рддрд╛ рд╣реИред

рд╕рдордп: рдХреЙрд▓рдо t рдореЗрдВ S [0..N] рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рднрд╛рдЬрди рд╕рдмреНрд╕рдЯреНрд░рд┐рдВрдЧ S [0..t] рдФрд░ S [t ..] рдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдХреБрд▓ рд╡рд┐рднрд╛рдЬрди рдПрдиред рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рднрд╛рдЬрди рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп (S 1 [i..j], S 1 [k..n]), (j - i) x (n - k) рд╕рдВрдЪрд╛рд▓рди рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдкрд░, рд╣рдореЗрдВ 2 * | S 1 | * - рдПрд╕ 2 | рд╕рдВрдЪрд╛рд▓рдиред рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЪрд▓рдиреЗ рдХрд╛ рд╕рдордп рджреНрд╡рд┐рдШрд╛рдд рдмрдирд╛ рд░рд╣рд╛, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЧреБрдгрдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдПрдХ рд░реИрдЦрд┐рдХ рд░рд╛рд╢рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдФрд░ рдЧрддрд┐ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЦреЛ рджрд┐рдпрд╛, рдЬрд┐рд╕реЗ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рд╕рдлрд▓рддрд╛ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

[*] рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛: рд╣рд┐рд░реНрд╢рдмрд░реНрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдердо ред

Source: https://habr.com/ru/post/In117063/


All Articles