Estoy interesado en construir estructuras laberínticas en el mosaico [5, 4] del plano hiperbólico, donde por laberinto me refiero a algo parecido a un árbol de extensión del entramado subyacente: un subgrafo del entramado que sigue estando conectado (cada celda puede llegar a todas las demás) pero con una especie de efecto de "multiplicador de distancia" en el que desde cualquier celda dada en el entramado, es probable que haya celdas cercanas en el mosaico original con un largo "camino más corto" a través del subgrafo para llegar a ese punto. (Se trata de una noción ciertamente imprecisa, pero dudo que haya resultados explícitos sobre este tipo de cosas). Podría utilizar cualquiera de los algoritmos estándar de generación de laberintos, pero implican un "prepaso" que mantiene todo el grafo de la celosía en la memoria y, por lo tanto, no son realmente prácticos para celosías infinitas (o funcionalmente infinitas); estoy buscando algo que pueda generar paredes (o, equivalentemente, cortar aristas del grafo subyacente) de forma "local" sin necesidad de mirar explícitamente la estructura global.
Si estuviera en el plano, hay formas relativamente sencillas de hacerlo: por ejemplo, para cada celda, colocar un muro al azar en el borde sur o este de esa celda. Con una probabilidad de 1, esto creará un árbol de extensión del plano. No es un árbol de extensión "aleatorio" (en particular, por supuesto, es imposible que cualquier celda tenga tanto su lado sur como su lado este "amurallados", lo que imagino que ocurre con una probabilidad 0 para un árbol de extensión aleatorio del plano), pero es un árbol, aun así. Por ejemplo, aquí hay dos 5×55×5 rejillas de celdas con sus lados este o sur amurallados al azar:
Del mismo modo, si el proceso de generación utiliza una moneda de tres caras con las mismas probabilidades de sacar una pared sur, una pared este o ninguna pared, entonces las cuadrículas resultantes no son árboles de distribución (pueden existir múltiples caminos disjuntos entre los nodos), pero siguen teniendo claramente el tipo de multiplicación de distancia que estoy buscando:
Desgraciadamente, estas técnicas no funcionan tan bien para la malla hiperbólica que me interesa; obtener una noción canónica de los bordes exteriores es un poco más difícil, y la "vaguedad" del resultado es mucho más difícil de controlar. ¿Alguien conoce un esquema similar a las técnicas de lanzamiento de monedas en el que sólo se genere/utilice información local que pueda aplicarse a mallas regulares arbitrarias?
0 votos
¿Qué rejilla utilizas?
0 votos
Puede utilizar un método basado en la teoría de los grafos .
1 votos
@PyRulez Esos son exactamente los métodos a los que me refiero con "los algoritmos estándar de generación de laberintos"; aunque en abstracto son los mejores, realmente no funcionan para la situación específica que estaba viendo por las razones que doy (requieren mantener el laberinto en memoria).
0 votos
¿Se puede utilizar el algoritmo de Kruskal de forma "perezosa" con una cuadrícula infinita?