Generador de circuitos
Publicado: Vie Sep 20, 2019 3:54 pm
Escrito originalmente por pep0n en 7 de Marzo del 2016
¿Alguna vez os habéis preguntado cuántos circuitos puedo diseñar con las pistas que tengo?
Por otro lado, muchas personas cuando empiezan en el hobby lanzan preguntas del estilo, ¿alguien me puede diseñar un circuito ...?
Pues aquí tenéis la respuesta a esas preguntas.
El miércoles por la noche estaba durmiendo cuando me desperté a las 4 de la mañana porque estaba soñando que podía hacer un programa que generara de manera automática circuitos. Me quedé despierto un buen rato dando vueltas, pensando si eso que había soñado se podía hacer o no. A las 5 ya había decido que sí que se podía hacer. Así que me levanté para tomar notas. No es la primera vez que sueño algo y luego me olvido.
El miércoles dediqué un rato a repasar trigonometría porque la tenía muy olvidada y hacia mucha falta.
El jueves por la mañana tuve una crisis. Me puse a pensar en el coste temporal de lo que estaba pensando hacer y me asusté. Por la tarde, dándole más vueltas al asunto me equivoqué y creí que al coste no iba a ser tan alto. Así que me lancé a hacerlo.
El sábado, con el programa ya funcionando, volví a pensar en el coste temporal y me di cuenta de lo que había hecho. Si lo hubiera pensado bien antes, igual no lo hubiera intentado. Pero como me equivoqué y ya estaba hecho, solo había que pulir la interfaz para que se pudiera usar.
Así que, aquí lo tenéis por si queréis jugar con él.
La interfaz es muy sencilla:

Puedes poner el número de pistas que quieres utilizar. El ancho y alto del tablero que servirá como base. El error de cierre del circuito. Por defecto es 1cm si queréis un cierre perfecto poner un 0.
A continuación viene el susto. Indica el espacio de soluciones en el que tiene que buscar los circuitos. Utiliza fuerza bruta. O sea, intenta todas las combinaciones posibles de pistas. En este momento sólo limitadas por la superficie del tablero en el que debe ir.
Si queréis intentarlo, le dais al botón de Generar y ... empieza a buscar circuitos que se puedan cerrar.

El botón de Generar se transforma en un Parar y encima de él aparece el tiempo que lleva buscando. Al lado, un número se irá incrementando conforme encuentre circuitos. Podréis verlos cambiando con el control de la derecha del todo.
En el estado actual, y sin capar más el espacio de búsqueda es un juguetito en el que para tableros pequeños y pocas pistas se puede ver algo. Si ponéis tablero grandes o muchas pistas ... puede tardar años o quizás más.
Además, los circuitos que encuentra son muchos y la mitad están duplicados (son simétricos a otros).
A modo de ejemplo: en mi máquina tal y como está configurado por defecto (8 rectas de 40, 4 R1 y 8 R2 en un tablero de 4m x 2m) me descubrió 46.644 circuitos y necesitó 37 minutos y 21 segundos.
Si queréis jugar, os lo podéis descargar de aquí (última versión).
¿Alguna vez os habéis preguntado cuántos circuitos puedo diseñar con las pistas que tengo?
Por otro lado, muchas personas cuando empiezan en el hobby lanzan preguntas del estilo, ¿alguien me puede diseñar un circuito ...?
Pues aquí tenéis la respuesta a esas preguntas.
El miércoles por la noche estaba durmiendo cuando me desperté a las 4 de la mañana porque estaba soñando que podía hacer un programa que generara de manera automática circuitos. Me quedé despierto un buen rato dando vueltas, pensando si eso que había soñado se podía hacer o no. A las 5 ya había decido que sí que se podía hacer. Así que me levanté para tomar notas. No es la primera vez que sueño algo y luego me olvido.
El miércoles dediqué un rato a repasar trigonometría porque la tenía muy olvidada y hacia mucha falta.
El jueves por la mañana tuve una crisis. Me puse a pensar en el coste temporal de lo que estaba pensando hacer y me asusté. Por la tarde, dándole más vueltas al asunto me equivoqué y creí que al coste no iba a ser tan alto. Así que me lancé a hacerlo.
El sábado, con el programa ya funcionando, volví a pensar en el coste temporal y me di cuenta de lo que había hecho. Si lo hubiera pensado bien antes, igual no lo hubiera intentado. Pero como me equivoqué y ya estaba hecho, solo había que pulir la interfaz para que se pudiera usar.
Así que, aquí lo tenéis por si queréis jugar con él.
La interfaz es muy sencilla:

Puedes poner el número de pistas que quieres utilizar. El ancho y alto del tablero que servirá como base. El error de cierre del circuito. Por defecto es 1cm si queréis un cierre perfecto poner un 0.
A continuación viene el susto. Indica el espacio de soluciones en el que tiene que buscar los circuitos. Utiliza fuerza bruta. O sea, intenta todas las combinaciones posibles de pistas. En este momento sólo limitadas por la superficie del tablero en el que debe ir.
Si queréis intentarlo, le dais al botón de Generar y ... empieza a buscar circuitos que se puedan cerrar.

El botón de Generar se transforma en un Parar y encima de él aparece el tiempo que lleva buscando. Al lado, un número se irá incrementando conforme encuentre circuitos. Podréis verlos cambiando con el control de la derecha del todo.
En el estado actual, y sin capar más el espacio de búsqueda es un juguetito en el que para tableros pequeños y pocas pistas se puede ver algo. Si ponéis tablero grandes o muchas pistas ... puede tardar años o quizás más.
Además, los circuitos que encuentra son muchos y la mitad están duplicados (son simétricos a otros).
A modo de ejemplo: en mi máquina tal y como está configurado por defecto (8 rectas de 40, 4 R1 y 8 R2 en un tablero de 4m x 2m) me descubrió 46.644 circuitos y necesitó 37 minutos y 21 segundos.
Si queréis jugar, os lo podéis descargar de aquí (última versión).