En relación con el rompecabezas Slither Link , me he estado preguntando: supongamos que tengo una cuadrícula de celdas cuadradas , y quiero encontrar un ciclo simple de bordes de cuadrícula, uniformemente al azar entre todos los ciclos simples posibles.
Una forma de hacer esto sería usar una cadena de Markov cuyos estados son conjuntos de cuadrados cuyos límites son ciclos simples y cuyas transiciones consisten en elegir un cuadrado aleatorio para voltear y mantener el volteo cuando el conjunto modificado de cuadrados todavía tiene un ciclo simple como Su límite. Uno puede pasar de cualquier ciclo simple a otro de esta manera (usando resultados estándar sobre la existencia de envolturas) de modo que esto eventualmente converja en una distribución uniforme, pero ¿qué tan rápido?
Alternativamente, ¿hay una mejor cadena de Markov o un método directo para seleccionar ciclos simples?
ETA: consulte esta publicación de blog para obtener un código para calcular la cantidad de ciclos que estoy buscando y sugerencias para OEIS para algunos de estos números. Como sabemos, contar es casi lo mismo que la generación aleatoria, y deduzco de la falta de un patrón obvio en las factorizaciones de estos números y la falta de una fórmula en la entrada de OEIS que es poco probable que exista un método directo simple conocido . Pero eso todavía deja las preguntas sobre qué tan rápido converge esta cadena y si hay una cadena mejor abierta.