Defina o número da partição de execução de uma permutação , denotada r ( π ) , usando o seguinte processo. Seja k o número inteiro máximo, de modo que os números min ( π ) , … , k apareçam em ordem crescente em π . Remova-os de π e repita o processo. O número de rodadas necessárias para consumir toda a permutação é r ( π ) .πr(π)kmin(π),…,kππr(π)
Por exemplo, vamos calcular . Primeiro , para obter . Então separamos , para obter . Em seguida, separamos , para obter . Finalmente, separamos para obter a permutação vazia. Isso leva quatro rodadas, então r ( 62735814 ) = 4 .r(62735814)6273584 234 6758 51627358423467585 678678678r(62735814)=4
Como essa representação é útil para classificar ? Faça cada segunda execução, ou seja, 234 , 678 , e mova esses números para a direita para obter 51627384 (editar: na ordem em que aparecem na permutação, ou seja, 627384 ). Agora, existem apenas duas execuções, 1234 , 5678 , e podemos classificar a lista movendo 5678 para a direita.62735814234,678516273846273841234,56785678
Agora deixe-me fazer a seguinte conjectura: Para uma permutação , vamos Π ser o conjunto de todas as permutações que são acessíveis a partir de π dentro de um movimento. Então min α ∈ ¸ r ( α ) = ⌈ r ( ππΠπ .minα∈Πr(α)=⌈r(π)/2⌉
Dada essa conjectura, é fácil mostrar que o número mínimo de movimentos necessários para classificar uma permutação é ⌈ log 2 r ( π ) ⌉ , e eu verifiquei essa fórmula para todas as permutações em S n paraπ⌈log2r(π)⌉Sn .n≤8
Edit: Aqui está uma interpretação diferente do número da partição de execução que fornece um algoritmo de tempo linear para computá-lo e permite que eu faça um esboço de uma prova de minha conjectura, verificando assim a fórmula .⌈log2r(π)⌉
Considere a permutação novamente. A razão pela qual a primeira execução termina em 1 é que 2 aparece antes de 1 . Da mesma forma, a segunda execução termina em 4, pois 5 aparece antes de 4 e assim por diante. Portanto, o número da partição de execução de uma permutação é o número de i s, tal que i +62735814121454i aparece antes de i .i+1i
Podemos afirmar isso de forma mais sucinta se olharmos para o inverso da permutação. Considere novamente . Tome π - 1 = 72485136 . Essa permutação possui três descidas: 7 2 48 5 1 36 (uma descida é uma posição menor que a anterior). Cada uma das descidas corresponde ao início de uma nova corrida. Então r ( π ) é igual a um mais o número de descidas em π - 1 .π=62735814π−1=7248513672485136r(π)π−1
Como é a operação em termos de ? seja B o conjunto de números que movemos para a direita e A seja o conjunto de números que ficam à esquerda. Substituímos os números em A por uma permutação em { 1 , … , | Um | } representando sua ordem relativa e substitua os números em B por uma permutação em { | Um | + 1 , … , | Um | + | B | }π−1BAA{1,…,|A|}B{|A|+1,…,|A|+|B|}. Por exemplo, considere a movimentação 248136 foi mapeado para 468357 . . Em termos de permutações inversas, são 7 248 5 136 ↦ 2 468 1 357 . Então 75 foi mapeado para 21 e62735814↦5162738472485136↦246813577521248136468357
Uma descida em π - 1 é perdido após a operação somente se x ∈ A e y ∈ B . Por outro lado, em termos de π - 1 , a partição em A e B corresponde a A -runs e B -runs; toda vez que um B- run termina e um A- run. Se matarmos duas descidas, teremos mudado no meio de um B…xy…π−1x∈Ay∈Bπ−1ABABBA corrida começa, há uma descida. Para "matar" uma descida, temos que mudar de um run para um BABB corrida para uma corrida , causando uma descida.A
Este argumento pode ser formalizadas para mostrar que se surge a partir π através de uma operação, em seguida, d ( α - 1 ) ≥ ⌊ d ( π - 1 ) / 2 ⌋ , onde d ( ⋅ ) é o número de descidas. Isso é equivalente a r ( α ) ≥ ⌈ r ( π ) / 2 ⌉απd(α−1)≥⌊d(π−1)/2⌋d(⋅)r(α)≥⌈r(π)/2⌉, provando assim uma direção da minha conjectura. A outra direção é mais fácil, e já foi descrita acima: simplesmente fazemos cada segundo ciclo e empurramos esses movimentos para a direita para obter uma permutação satisfazendo r ( α ) = ⌈ r ( π / 2 ) ⌉ .αr(α)=⌈r(π/2)⌉