Questo problema può essere trasformato in problema di assegnazione , noto anche come problema di corrispondenza bipartita massimo ponderato.
Nota innanzitutto che la distanza di modifica è uguale al numero di elementi che devono cambiare da un set all'altro. Ciò equivale al numero totale di elementi meno il numero di elementi che non è necessario modificare. Quindi trovare il numero minimo di elementi che non cambiano equivale a trovare il numero massimo di vertici che non cambiano.
Lasciate e B = { B 1 , B 2 , . . . , B l } essere partizioni [ 1 , 2 , . . . , n ] . Inoltre, senza perdita di generalità, lascia k ≥ l (consentito perché e d i tA = { A1, A2, . . . , AK}B = { B1, B2,...,Bl}[1,2,...,n]k≥l ). Quindi lascia che B l + 1 , B l + 2 , ..., B k siano tutti l'insieme vuoto. Quindi il numero massimo di vertici che non cambiano è:edit(A,B)=edit(B,A)Bl+1Bl+2Bk
maxf∑ki=1|Ai∩Bf(i)|
dove è una permutazione di [ 1 , 2 , . . . , k ] .f[1,2,...,k]
Questo è esattamente il problema di assegnazione in cui i vertici sono , ..., A k , B 1 , ..., B k e i bordi sono coppie ( A i , B j ) con peso | A i ∩ B j | . Questo può essere risolto nel tempo O ( | V | 2 log | V | + | V | | E | ) .A1AkB1Bk(Ai,Bj)|Ai∩Bj|O(|V|2log|V|+|V||E|)