Eu tenho duas cordas, onde uma é uma permutação da outra. Eu queria saber se existe uma alternativa à distância de Hamming, onde, em vez de encontrar o número mínimo de substituições necessárias, ele encontraria o número mínimo de translocações necessárias para ir da string a para a string b.
Minhas strings são sempre do mesmo tamanho e sei que não há erros / substituições.
Exemplo:
1 2 3 4 5
3 2 5 4 1
Isso me daria dois:
3 2 5 4 1 (start)
-> 3 2 1 4 5
-> -> 1 2 3 4 5
Se isso já estiver implementado em R, seria ainda melhor.
terminology
string-metrics
permutations
edit-distance
user1357015
fonte
fonte
Respostas:
Encontrar a distância mínima é chamado de problema "Classificação por translocação". Parte de um resumo de um artigo :
"Dados dois genomas multicromossômicos assinados Pi e Gamma com o mesmo conjunto de genes, o problema de classificar por translocações (SBT) é encontrar uma sequência mais curta de translocações que transformem Pi em Gamma, onde o comprimento da sequência é chamado de distância de translocação entre Pi e Gamma. Em 1996, Hannenhalli forneceu pela primeira vez a fórmula da distância de translocação, com base na qualO (n3) algoritmo para SBT foi dado. Em 2005, Anne Bergeron et al. revisitou esse problema e deu uma prova elementar da fórmula da distância de translocação que leva a uma novaO (n3) algoritmo para SBT ".
O que é chamado "translocação" aqui é chamado de transposição, isto é, uma permutação de exatamente dois elementos em uma lista, na linguagem combinatória tradicional.
fonte
Precisamos encontrar o número mínimo de transposições que levam uma stringuma para outra string b , Onde a , b são permutações. Parece que você está procurando a distância mínima entre dois vértices dadosa , b ∈Sn no gráfico de transposição completo, que é o gráfico de Cayley de Sn gerado pelo conjunto de todas as transposições.
fonte