Your SlideShare is downloading. ×
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Levenstein distance.beam
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Levenstein distance.beam

949

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
949
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Задача «Российская Инновация» или Levenstein distance Стас Фомин, stas@custis.ru Заказные ИнформСистемы 2 мая 2010 г. 1 / 35
  • 2. Россия Вперед!TM — Великий ПланTM Определение Технологическая Карта Завода — конвеер-последовательность из стандартных станков и прочих машин. Cтанок кодируются однобуквенным кодом из диапазона {0-9, A-z, a-z}. Например «04ABFGSDDD8F67GODMNDOT895J4C7DHT84H». Технологическая карта может быть очень длинной (до 1000 знаков). Соответственно, АналитикиTM Великого ПланаTM исследуют возможности по оптимальной перестройке всех заводов, выполняя многофакторную оптимизацию. 2 / 35
  • 3. Задача OLD — старая технологическая карта NEW — новая технологическая карта Разрешенные операции: D I — демонтаж станка с номером I R I S — замена станка с номером I на станок S. A I S — вставка станка S в позицию I. Т.е. замена «C» на «G» для «ABDCFFF23», выполняется командой «R 4 G», приводит к «ABDGFFF23». Т.е. вставка «E» перед «С» для «ABDCFFF23», выполняется командой «A 4 E», приводит к «ABDECFFF23». Найти план перестройки с минимальной стоимостью. 3 / 35
  • 4. Расстояние Левенштейна1 Оно же редакторское расстояние Динамическое программирование за O(m · n) времени Можно уложиться в O(n) памяти (даже при нахождении плана преобразования). Алгоритм и Оптимальность: любой оптимальный план можно переписать, чтобы операции шли над концом строки. 1 Владимира Иосифовича 4 / 35
  • 5. 5 / 35
  • 6. for i in x r a n g e (m+1): D[ i , 0 ] = COST [ "D" ] ∗ i P[ i , 0 ] = "D" for j in x r a n g e ( n +1): D[ 0 , j ] = COST [ "A" ] ∗ j P[0 , j ] = "A" f o r j i n x r a n g e ( 1 , n +1): f o r i i n x r a n g e ( 1 , m+1): i f o l d s c h e m e [ i −1] == newscheme [ j − 1 ] : D[ i , j ] , P [ i , j ] = D[ i −1, j −1] , ’M’ else : D[ i , j ] , P [ i , j ] = min ( (D[ i −1, j ] + COST [ ’D ’ ] , ’D ’ ) , (D[ i , j −1] + COST [ ’A ’ ] , ’A ’ ) , (D[ i −1, j −1] + COST [ ’R ’ ] , ’R ’ ) ) 6 / 35
  • 7. «» → «» стоит 0 M MI MIR A AC ACM ACMI ACMIP ACMIPT 7 / 35
  • 8. «A» → «» стоит 2 M MI MIR A 2D AC ACM ACMI ACMIP ACMIPT A ⇒ −→ D 1 8 / 35
  • 9. «AC» → «» стоит 4 M MI MIR A 2D AC 4D ACM ACMI ACMIP ACMIPT AC ⇒ −→ C ⇒ −→ D 1 D 1 9 / 35
  • 10. «ACM» → «» стоит 6 M MI MIR A 2D AC 4D ACM 6D ACMI ACMIP ACMIPT ACM ⇒ −→ CM ⇒ −→ M ⇒ −→ D 1 D 1 D 1 10 / 35
  • 11. «ACMI» → «» стоит 8 M MI MIR A 2D AC 4D ACM 6D ACMI 8D ACMIP ACMIPT ACMI ⇒ −→ CMI ⇒ −→ MI ⇒ −→ I ⇒ −→ D 1 D 1 D 1 D 1 11 / 35
  • 12. «ACMIP» → «» стоит 10 M MI MIR A 2D AC 4D ACM 6D ACMI 8D ACMIP 10D ACMIPT ACMIP ⇒ −→ CMIP ⇒ −→ MIP ⇒ −→ IP ⇒ −→ P ⇒ −→ D 1 D 1 D 1 D 1 D 1 12 / 35
  • 13. «ACMIPT» → «» стоит 12 M MI MIR A 2D AC 4D ACM 6D ACMI 8D ACMIP 10D ACMIPT 12D ACMIPT ⇒ −→ CMIPT ⇒ −→ MIPT ⇒ −→ IPT ⇒ −→ PT ⇒ −→ T ⇒ −→ D 1 D 1 D 1 D 1 D 1 D 1 13 / 35
  • 14. «» → «» стоит 0 M MI MIR A 2D AC 4D ACM 6D ACMI 8D ACMIP 10D ACMIPT 12D 14 / 35
  • 15. «» → «M» стоит 3 M MI MIR 3A A 2D AC 4D ACM 6D ACMI 8D ACMIP 10D ACMIPT 12D ⇒ −→ M A 0 M 15 / 35
  • 16. «» → «MI» стоит 6 M MI MIR 3A 6A A 2D AC 4D ACM 6D ACMI 8D ACMIP 10D ACMIPT 12D ⇒ −→ M ⇒ −→ MI A 0 M A 1 I 16 / 35
  • 17. «» → «MIR» стоит 9 M MI MIR 3A 6A 9A A 2D AC 4D ACM 6D ACMI 8D ACMIP 10D ACMIPT 12D ⇒ −→ M ⇒ −→ MI ⇒ −→ MIR A 0 M A 1 I A 2 R 17 / 35
  • 18. «A» → «M» стоит 4 M MI MIR 3A 6A 9A A 2D 4R AC 4D ACM 6D ACMI 8D ACMIP 10D ACMIPT 12D A ⇒ −→ M R 1 M 18 / 35
  • 19. «AC» → «M» стоит 6 M MI MIR 3A 6A 9A A 2D 4R AC 4D 6D ACM 6D ACMI 8D ACMIP 10D ACMIPT 12D AC ⇒ −→ MC ⇒ −→ M R 1 M D 2 19 / 35
  • 20. «ACM» → «M» стоит 4 M MI MIR 3A 6A 9A A 2D 4R AC 4D 6D ACM 6D 4M ACMI 8D ACMIP 10D ACMIPT 12D ACM ⇒ −→ CM ⇒ −→ M D 1 D 1 20 / 35
  • 21. «ACMI» → «M» стоит 6 M MI MIR 3A 6A 9A A 2D 4R AC 4D 6D ACM 6D 4M ACMI 8D 6D ACMIP 10D ACMIPT 12D ACMI ⇒ −→ CMI ⇒ −→ MI ⇒ −→ M D 1 D 1 D 2 21 / 35
  • 22. «ACMIP» → «M» стоит 8 M MI MIR 3A 6A 9A A 2D 4R AC 4D 6D ACM 6D 4M ACMI 8D 6D ACMIP 10D 8D ACMIPT 12D ACMIP ⇒ −→ CMIP ⇒ −→ MIP ⇒ −→ MP ⇒ −→ M D 1 D 1 D 2 D 2 22 / 35
  • 23. «ACMIPT» → «M» стоит 10 M MI MIR 3A 6A 9A A 2D 4R AC 4D 6D ACM 6D 4M ACMI 8D 6D ACMIP 10D 8D ACMIPT 12D 10D ACMIPT ⇒ −→ CMIPT ⇒ −→ MIPT ⇒ −→ MPT ⇒ −→ MT ⇒ −→ M D 1 D 1 D 2 D 2 D 2 23 / 35
  • 24. «A» → «MI» стоит 7 M MI MIR 3A 6A 9A A 2D 4R 7A AC 4D 6D ACM 6D 4M ACMI 8D 6D ACMIP 10D 8D ACMIPT 12D 10D A ⇒ −→ M ⇒ −→ MI R 1 M A 1 I 24 / 35
  • 25. «AC» → «MI» стоит 8 M MI MIR 3A 6A 9A A 2D 4R 7A AC 4D 6D 8R ACM 6D 4M ACMI 8D 6D ACMIP 10D 8D ACMIPT 12D 10D AC ⇒ −→ MC ⇒ −→ MI R 1 M R 2 I 25 / 35
  • 26. «ACM» → «MI» стоит 7 M MI MIR 3A 6A 9A A 2D 4R 7A AC 4D 6D 8R ACM 6D 4M 7A ACMI 8D 6D ACMIP 10D 8D ACMIPT 12D 10D ACM ⇒ −→ CM ⇒ −→ M ⇒ −→ MI D 1 D 1 A 1 I 26 / 35
  • 27. «ACMI» → «MI» стоит 4 M MI MIR 3A 6A 9A A 2D 4R 7A AC 4D 6D 8R ACM 6D 4M 7A ACMI 8D 6D 4M ACMIP 10D 8D ACMIPT 12D 10D ACMI ⇒ −→ CMI ⇒ −→ MI D 1 D 1 27 / 35
  • 28. «ACMIP» → «MI» стоит 6 M MI MIR 3A 6A 9A A 2D 4R 7A AC 4D 6D 8R ACM 6D 4M 7A ACMI 8D 6D 4M ACMIP 10D 8D 6D ACMIPT 12D 10D ACMIP ⇒ −→ CMIP ⇒ −→ MIP ⇒ −→ MI D 1 D 1 D 3 28 / 35
  • 29. «ACMIPT» → «MI» стоит 8 M MI MIR 3A 6A 9A A 2D 4R 7A AC 4D 6D 8R ACM 6D 4M 7A ACMI 8D 6D 4M ACMIP 10D 8D 6D ACMIPT 12D 10D 8D ACMIPT ⇒ −→ CMIPT ⇒ −→ MIPT ⇒ −→ MIT ⇒ −→ MI D 1 D 1 D 3 D 3 29 / 35
  • 30. «A» → «MIR» стоит 10 M MI MIR 3A 6A 9A A 2D 4R 7A 10A AC 4D 6D 8R ACM 6D 4M 7A ACMI 8D 6D 4M ACMIP 10D 8D 6D ACMIPT 12D 10D 8D A ⇒ −→ M ⇒ −→ MI ⇒ −→ MIR R 1 M A 1 I A 2 R 30 / 35
  • 31. «AC» → «MIR» стоит 11 M MI MIR 3A 6A 9A A 2D 4R 7A 10A AC 4D 6D 8R 11A ACM 6D 4M 7A ACMI 8D 6D 4M ACMIP 10D 8D 6D ACMIPT 12D 10D 8D AC ⇒ −→ MC ⇒ −→ MI ⇒ −→ MIR R 1 M R 2 I A 2 R 31 / 35
  • 32. «ACM» → «MIR» стоит 10 M MI MIR 3A 6A 9A A 2D 4R 7A 10A AC 4D 6D 8R 11A ACM 6D 4M 7A 10A ACMI 8D 6D 4M ACMIP 10D 8D 6D ACMIPT 12D 10D 8D ACM ⇒ −→ CM ⇒ −→ M ⇒ −→ MI ⇒ −→ MIR D 1 D 1 A 1 I A 2 R 32 / 35
  • 33. «ACMI» → «MIR» стоит 7 M MI MIR 3A 6A 9A A 2D 4R 7A 10A AC 4D 6D 8R 11A ACM 6D 4M 7A 10A ACMI 8D 6D 4M 7A ACMIP 10D 8D 6D ACMIPT 12D 10D 8D ACMI ⇒ −→ CMI ⇒ −→ MI ⇒ −→ MIR D 1 D 1 A 2 R 33 / 35
  • 34. «ACMIP» → «MIR» стоит 8 M MI MIR 3A 6A 9A A 2D 4R 7A 10A AC 4D 6D 8R 11A ACM 6D 4M 7A 10A ACMI 8D 6D 4M 7A ACMIP 10D 8D 6D 8R ACMIPT 12D 10D 8D ACMIP ⇒ −→ CMIP ⇒ −→ MIP ⇒ −→ MIR D 1 D 1 R 3 R 34 / 35
  • 35. «ACMIPT» → «MIR» стоит 10 M MI MIR 3A 6A 9A A 2D 4R 7A 10A AC 4D 6D 8R 11A ACM 6D 4M 7A 10A ACMI 8D 6D 4M 7A ACMIP 10D 8D 6D 8R ACMIPT 12D 10D 8D 10D ACMIPT ⇒ −→ CMIPT ⇒ −→ MIPT ⇒ −→ MIRT ⇒ −→ MIR D 1 D 1 R 3 R D 4 35 / 35

×