Número mínimo de transposiciones para ordenar una lista


15

Al tratar de idear mi propio algoritmo de clasificación, estoy buscando el punto de referencia óptimo con el que pueda compararlo. Para una ordenación no ordenada de los elementos A y una ordenación ordenada B , ¿cuál es una manera eficiente de calcular el número óptimo de transposiciones para llegar de A a B ?

Una transposición se define como cambiar la posición de 2 elementos en la lista, por ejemplo

1 2 4 3

tiene una transposición (transposición 4 y 3) para hacerlo

1 2 3 4

Algo como

1 7 2 5 9 6

requiere 4 transposiciones (7, 2), (7, 6), (6,5), (9, 7)

Actualización (7/9/11): la pregunta cambió para usar "transposición" en lugar de "intercambios" para referirse a intercambios no adyacentes.


¿Qué pasa si solo puedes intercambiar vecinos? ¿Cómo puedo calcular el número mínimo de permutas?

Respuestas:


23

Si solo se trata de permutaciones de elementos, necesitará exactamente swaps, donde es el número de ciclos en la descomposición del ciclo disjunto de . Como esta distancia es bi-invariante, transformar en (o en , o viceversa) requiere tales movimientos.nnc(π)c(π)ππσABnc(σ1π)


A pesar de haber votado por esto hace mucho tiempo, solo hizo clic hoy. Como un cubo de Rubik, ¿verdad: D?
sova

11

La distancia de intercambio también puede integrarse isométricamente en el espacio euclidiano. Para cada cadena s, construir una matriz de donde si se produce antes de y es cero en caso contrario. Entonces la distancia de Frobenius es la distancia de intercambio . (de las diapositivas de Graham Cormode ). No es tan elegante como la respuesta de Anthony, pero es bastante fácil de calcular.METRO(s)METROyoj=1yojM(s)M(s)2d(s,s)

Actualización: por favor vea los comentarios de Oleksandr


Me parece que en la presentación de Graham quieren decir norma espectral ( ) y no norma de Frobenius ( ). A2AF
Oleksandr Bondarenko

aunque si todo lo que quieres hacer es contar las diferencias, entonces el cuadrado de la norma frobenius debería funcionar bien?
Suresh Venkat

cuál es, por supuesto, la distancia de Hamming para matrices 0-1
Suresh Venkat

Tienes razón sobre la igualdad entre el cuadrado de la norma Frobenius y la distancia de Hamming. Me gustaría agregar que la distancia de Hamming dividida por es igual a la distancia de intercambio. Pero la pregunta era sobre la distancia de transposición ("Un intercambio se define como cambiar la posición de 2 elementos en la lista") y no sobre la distancia de intercambio. Lo que concierne a la norma espectral es que su cuadrado es igual a la distancia de intercambio. 2
Oleksandr Bondarenko

Oleksandr: ¿Entonces supongo que usted interpreta "intercambiar" como "intercambiar dos elementos adyacentes"?
Anthony Labarre
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.