Алгоритмы. Нахождение расстояния Левенштейна с помощью алгоритма Вагнера-Фишера

Поделиться
HTML-код
  • Опубликовано: 27 янв 2025

Комментарии • 13

  • @rustammk605
    @rustammk605 2 года назад +4

    Лучшее объяснение которое нашёл. Спасибо

  • @diteron
    @diteron 2 года назад +1

    Видео оказалось очень полезным. Спасибо!

  • @никитакирьянов-о7й
    @никитакирьянов-о7й 2 года назад +1

    Олександр, спасибо за труд!!))👋

  • @UlyanaVorobeva
    @UlyanaVorobeva 11 месяцев назад

    Почему у вас в реализации алгоритма на джаве в цикле написано, что 0 < I < …length, а не
    0 < I

    • @oleksandrtsymbaliuk
      @oleksandrtsymbaliuk  11 месяцев назад

      Так индексация в массивах в Java начинается с нуля, и если обратиться по индексу равному длине вы выйдите за границы массива и получите ArrayIndexOutOfBoundsException

  • @romanchumak1586
    @romanchumak1586 Год назад

    Дякую Вам за зроблену роботу. Поясніть будь-ласка тому що я не до кінця зрозумів. Наприклад остання ячейка, коли:
    i=3, j=4;
    D(i,j−1)+1 тобто D(3,3)+1= 4,
    D(i−1,j)+1 тобто D(2,4)+1= 5 (Чи 3 ??)
    Я не зрозумів за яким принципом вибирається з пари чисел одне, тобто D(2,4) потрібно брати меньше ?

    • @oleksandrtsymbaliuk
      @oleksandrtsymbaliuk  Год назад

      Доброго дня. Число вибирається за наступним принципом, потрібно взяти мінімальне число з трьох: 1 і 2 яке вийде якщо до числа, яке стоїть на індексах (i,j-1) і (i-1,j) додати один. Тобто. беремо не значення індексів, а число, яке стоїть на цих індексах, і 3-е число на індексах (i-1,j-1) + m(i,j) де про m описано в лекції, так от те число з цих 3 -х яке найменше те й вибираємо. І головне використовуються саме числа, які стоять на позиції з індексами i,j, а не самі індекси.

    • @romanchumak1586
      @romanchumak1586 Год назад

      @@oleksandrtsymbaliuk Я це зрозумів, я не зрозумів яке число вибирати з результату.
      Наприклад, для індексів i=3, j=4;
      Рахуємо формулу D(i−1,j)+1 тобто i-1=2, j=4. Яке з цих вдох чисел брати щоб додати одиницю? D(2,4)+1 меньше 2+1 чи більше 4+1 ?

    • @oleksandrtsymbaliuk
      @oleksandrtsymbaliuk  Год назад

      Доброго дня. Як я вже говорив ви не повинні працювати з індексами, ви повинні працювати зі значеннями у цьому масиві. У прикладі i=3, j=4. Розраховуємо значення D(i-1,j) + 1 ми повинні взяти значення, яке зберігається в матриці на індексах D(2,4), потрібно взяти те число, яке стоїть у другому рядку і четвертому стовпці і до цього числа додати 1. Не потрібно додавати 1 до самих індексів, одиницю потрібно додавати значення, яке зберігається на цих індексах.

    • @romanchumak1586
      @romanchumak1586 Год назад

      @@oleksandrtsymbaliuk Дякую Вам тепер зрозумів )

  • @ДмитрийМиронов-ъ7ф
    @ДмитрийМиронов-ъ7ф 2 года назад

    спасибо, пересмотрел кучу видосов. Но именно тут стало понятно)

  • @RedkeiGost
    @RedkeiGost 2 года назад

    Все-таки не плохо бы вывести как-то рекурентную формулу, а не просто показать. Откуда она упала? Потому что вот смотрю я курс Александра Куликова, не понял, пошел искать и везде тоже самое "рекурентная формула расстаняия Левенштейна вот она, упала с неба".

    • @oleksandrtsymbaliuk
      @oleksandrtsymbaliuk  2 года назад +1

      Ну не зря же в списке литературы указана ссылка на оригинальную статью авторов алгоритма - dl.acm.org/doi/pdf/10.1145/321796.321811
      Открываете статью и смотрите на вывод этого соотношения.