У меня есть два раздела и я ищу расстояние редактирования между ними.
Этим я хочу найти минимальное количество отдельных переходов узла в другую группу, которые необходимы для перехода из раздела A в раздел B.
Например, расстояние от {0 1} {2 3} {4}
в {0} {1} {2 3 4}
будет два
После поиска я наткнулся на эту статью, но а) я не уверен, принимают ли они во внимание порядок групп (что меня не интересует) на расстоянии б) я не уверен, как это работает и в) Там нет ссылок.
Любая помощь приветствуется
Ответы:
Эта проблема может быть преобразована в задачу назначения , также известную как проблема максимального взвешенного двудольного соответствия.
Во-первых, обратите внимание, что расстояние редактирования равно количеству элементов, которые необходимо изменить из одного набора в другой. Это равно общему количеству элементов минус количество элементов, которые не нужно менять. Поэтому нахождение минимального количества элементов, которые не меняются, эквивалентно нахождению максимального количества вершин, которые не меняются.
Пусть и В = { B 1 , B 2 , . , , , Б л } разбиения числа [ 1 , 2 , . , , , п ] . Также, без ограничения общности, пусть k ≥ l (допускается, потому что e d i tA={A1,A2,...,Ak} B={B1,B2,...,Bl} [1,2,...,n] k≥l ). Тогда пусть B l + 1 , B l + 2 , ..., B k все будут пустым множеством. Тогда максимальное количество вершин, которые не меняются:edit(A,B)=edit(B,A) Bl+1 Bl+2 Bk
где является перестановкой [ 1 , 2 , . , , , к ] .f [1,2,...,k]
Это именно та задача присваивания, где вершинами являются , ..., A k , B 1 , ..., B k, а ребра - пары ( A i , B j ) с весом | A i ∩ B j | , Это можно решить за O ( | V | 2 log | V | + | V | | E | ) время.A1 Ak B1 Bk (Ai,Bj) |Ai∩Bj| O(|V|2log|V|+|V||E|)
источник
Посмотрите на PDF этой статьи
http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.0030160
Я думаю, что определение расстояния редактирования там именно то, что вам нужно. Раздел 'reference' будет (произвольным) одним из двух ваших разделов, другой просто будет другим. Также содержит соответствующие цитаты.
Лучше всего, Роб
источник
Капризная идея воскресного утра, которая может быть, а может и не быть правильной:
Wlog, пусть будет разделом с большим количеством множеств, P 2 другой. Сначала назначим попарно разные имена n 1 ( S ) ∈ Σ вашим множествам P 1 . Затем найдите наилучшее наименование n 2 ( S ) для множеств P 2 по следующим правилам:P1 P2 n1(S)∈Σ P1 n2(S) P2
Now, you can consider the bit strings of your elements wrt either partition, i.e.w1=n1(1)⋅⋯⋅n1(n) and w2=n2(1)⋅⋯⋅n2(n) (with nj(i)=nj(S),i∈S∈Pj ). Then, the desired quantity is dH(w1,w2) , i.e. the Hamming distance between the bit strings.
источник