Ayuda sobre el siguiente problema combinatorio?

8

Tengo vectores de bits, cada uno de los cuales está compuesto por bits. Denotemos con el bit del -ésimo vector, . Cada vector de bits está sujeto a las siguientes 2 restricciones:m v i [ j ] j i i , j [ 1 , m ] v immvi[j]jii,j[1,m]vi

  1. vi[j]=0 ji .
  2. vi[j]=1 j<imlog(m) .
  3. Los bits que no se encuentran dentro de las restricciones anteriores pueden ser o , pero en tal caso el número de puede ser como máximo . 1 0 1201012

Ahora tengo otro vector de bits , de bits: inicialmente todos los bits de se establecen en . Por "aplicación a " me refiero a la realización de una operación AND entre y , y luego almacenar el resultado en el . Estoy interesado en la evolución de después de aplicaciones repetidas de los vectores dados en la entrada. m m s 1 v i s s v i s s v 1 , . . . , v msmms1vissvissv1,...,vm

Llamemos a esas "aplicaciones repetidas" una trayectoria , y definamos tal trayectoria más formalmente. Una trayectoria es una secuencia compuesta por, como máximo, vectores (seleccionados de aquellos dados en la entrada) de modo que si está en la secuencia, entonces todos los después de ellos deben tener . Entonces, por ejemplo, es una trayectoria, mientras que no lo es (porque ). v 1 , . . . , v m v i v j j < i < v 8 , v 3 > < v 3 , v 8 , v 7 > 8 3mv1,...,vmvivjj<i<v8,v3><v3,v8,v7>83

Claramente, hay trayectorias diferentes. Deje . Supongamos a tomar y dejar que se someten a una trayectoria : para cada paso de la trayectoria , poner el nuevo valor tomado por en . Luego repita el mismo proceso para otra trayectoria (siempre comenzando desde , y siempre poniendo cada nuevo valor de en ). Por otra parte, hasta que haya probado todas las trayectorias posibles de . Al final, el conjunto contendrá todos los valores posibles que S = s = 1 m T 12mS=s=1mT1 s S T 2 s = 1 m s S 2 m S sT1sST2s=1msS2mSs puede suponerse dados los vectores en la entrada.

Preguntas

  1. Tengo en la entrada. Quiero saber, Es decir, el número de valores distintos que pueden nunca asumir. Por supuesto, quiero calculareficientemente, es decir, sin probar todas las trayectorias posibles una por una.| S | s | S |vi,...,vm|S|s|S|
  2. Supongamos que se elimina la segunda restricción de los vectores de entrada. Cómo hacerlo afecta? |S|
  3. Más importante aún, lo que más me importa es cómocrece con . Esa lo más polinomio en ? Esa lo sumo sub-exponencial en ? ¿O existen instancias malas en las quees necesariamente exponencial en ?m | S | m | S | m | S | metro|S|m|S|m|S|m|S|m

La siguiente figura es un ejemplo con : m=17Ejemplo

Estoy recogiendo datos experimentales con el fin de tratar de averiguar cuál es la relación entre y. Hasta ahora, los experimentos parecen sugerir quecrece más rápido que y más lento que . Sin embargo, por el momento esos datos no tienen mucha importancia: solo pude hacer pruebas hasta , por lo que puede haber una gran constante oculta o algún otro factor que permita que una ley exponencial se vea como una ley polinómica para pequeña . Necesito ayuda para descubrir el comportamiento asintótico decon respecto a . | S | El | S | m 3 m 4 m = 90 m | S | metrom|S||S|m3m4m=90m|S|m

Giorgio Camerani
fuente
44
@Downvoter: ¿Por qué hacer downvoting? Por favor motivar.
Giorgio Camerani
¿No son las trayectorias que lo complican demasiado? Podrías hablar sobre subconjuntos de{1m}
Peter Taylor
@ Peter: Sí, una trayectoria no es más que un subconjunto de . Acabo de pensar que hablar sobre trayectorias habría dado una imagen más intuitiva y "visual" del problema. Quería poner el acento en la evolución del vector , hacer hincapié en el hecho de que estoy interesado en cuántos valores diferentes pueden asumir durante todas sus posibles evoluciones. s s{1,...,m}ss
Giorgio Camerani
3
@Walter: Una posible razón para los votos negativos es el título de la pregunta, que no sirve de nada. Es posible que desee reformularlo para que no contenga "ayuda" y quizás insinuar los objetos que desea contar. ¡Salud!
Michaël Cadilhac
@ MichaëlCadilhac: Sí, es cierto que el título es muy genérico. Probablemente lo cambiaré por algo más "atractivo" . Gracias por tu pista, ¡salud!
Giorgio Camerani

Respuestas:

8

He repensado esto y mi límite inicial fue correcto. En el peor de los casos, |S|=Θ(m2mlgm)

La prueba tiene dos partes. En primer lugar . Considere los posibles valores desde una trayectoria que termina envx. Cada bits[j]parajxes 0, y cada bits[j]paraj<x-m|S|=O(m2mlgm)svxs[j]jxs[j] es 1. Por lo tanto, solo hay2mj<xmlgm valores quespuede tomar. Multiplicamos por el número devxy tenemos el límite superior.2mlgmsvx

En segundo lugar, considere

    0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 
    0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 
    0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 
    0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 
    0 0 0 0 0  1 1 1 0 1 1 1 1 1 1 1 1 
    0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1
    ...
    0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 
    0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0
     0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
     0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
     0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

Afirmo que este esquema te da . Para cada columnavxconsidere también el(m|S|=Ω(m2mlgm)vxcolumnas a su derecha. Cada uno de los2 m(mlgm2)combinaciones de ellas dan unasdiferente, y en cada una de esassel bit de conjunto superior es el bit de conjunto superior devx, por lo que no hay un recuento doble entre diferentesvx.2mlgm2ssvxvx

Peter Taylor
fuente
Gracias por tu respuesta. ¿Tiene alguna idea de si la tercera restricción (es decir, no más de ceros) hace alguna diferencia? En otras palabras, ¿cree que restringir los ceros a un máximo de 12 implica que el número de valores diferentes introducidos por trayectorias que terminan en v x es mucho menor que 2 m / l o g m (por "mucho menos" quiero decir no exponencial en m / l o g m )? Mi sensación es que no hace ninguna diferencia: incluso si permitimos como máximo 1 cero, parece que podemos generar 2 m1212vx2m/logmm/logm1 valores diferentes para al menos unavx. 2m/logmvx
Giorgio Camerani
@WalterBishop, mi ejemplo usa no más de 1 cero.
Peter Taylor
Lo siento, analicé la respuesta y el ejemplo demasiado rápido.
Giorgio Camerani
@WalterBishop, aunque si restringe el número de 1s (no más de de los valores libres en un vector puede ser 1) obtendrá | S | = O ( m k + 1 )k|S|=O(mk+1)
Peter Taylor
¿Cómo se deriva en tal caso? Para mí, parece que en tal caso tendríamos | S | = O ( m 2 k ) = O ( m ) (ya que k es constante). Debido a que los vectores AND-ing 2, un 1 puede convertirse en un 0 pero un 0 no puede convertirse en un 1 : por lo tanto, independientemente del hecho de que nuestra "ventana deslizante" tiene m / l|S|=O(mk+1)|S|=O(m2k)=O(m)k1001 vectores, podemos generar como máximo 2 k vectores diferentes para cada una de lasposiciones m de la"ventana deslizante". ¿Me estoy perdiendo de algo? m/logm2km
Giorgio Camerani