Если я правильно понял ваш вопрос, то вам следует полностью удалить код для вычисления евклидова расстояния между двумя точками!
Сначала позвольте мне повторить ваш вопрос:
У вас есть два набораточки, например
A = [ [1,1], [0,9], [3,3], [4,4] ]
B = [ [1,1], [2,2], [3,3], [4,4] ]
Вы пытаетесь вычислить левенштейновское расстояние между этими двумя наборами.Вы заменяете «буквы» на «точки».
До этого момента это имеет смысл.Просто замените «буквы» в алгоритме Левенштейна на точки, и все готово!
Но вы ошиблись: оригинальный алгоритм Левенштейна не рассчитывает расстояния между двумя буквами , например, расстояние (a, b) = 1 или расстояние (a, d) = 3.
Вы пытались расширить алгоритм таким способом (используя функцию euclideanDistance ()).Но алгоритм Левенштейна не предназначен для таких вещей.И если вы внимательно посмотрите на него, вы увидите, что он не будет работать (значения в матрице имеют значение, и каждая итерация цикла использует значения в матрице, которые были вычислены в предыдущей итерации).
Расстояние Левенштейна - это расстояние редактирования, а не геометрическое расстояние.Вы пытались изменить его так, чтобы он вычислял смесь редактирования и геометрического расстояния.Это сочетание не имеет смысла, оно бесполезно и неправильно, ИМХО.
Заключение
Чтобы вычислить левенштейновское расстояние двух наборов координат xy , вы должны заменить свой euclidianDistance () простым сравнением на равенство (a[0]==b[0] && a[1]==b[1]
).
Тогда алгоритм Левенштейна даст вам «расстояние редактирования».