Página 1 de 3

Generador de circuitos

Publicado: Vie Sep 20, 2019 3:54 pm
por HAL
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:
Imagen
 
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. 
Imagen

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).

Re: Generador de circuitos

Publicado: Vie Sep 20, 2019 3:54 pm
por HAL
Escrito originalmente por pep0n en 7 de Marzo del 2016
Se me olvidaba, los circuitos siempre empiezan a piñón fijo por una recta de 40cm en medio del borde de la pista, adicional a lo que se haya puesto en el control de cantidad de rectas de 40cm. Vamos, 1 recta más (seguramente la de conexiones).

Re: Generador de circuitos

Publicado: Vie Sep 20, 2019 3:54 pm
por HAL
Escrito originalmente por bebeto en 7 de Marzo del 2016
¡Grande Pepón!

Re: Generador de circuitos

Publicado: Vie Sep 20, 2019 3:55 pm
por HAL
Escrito originalmente por litus14 en 7 de Marzo del 2016
Madre mía. :aplausos:
 
Probaré con las pistas del diseño del California a ver qué sale :ja:

Re: Generador de circuitos

Publicado: Vie Sep 20, 2019 3:55 pm
por HAL
Escrito originalmente por Bayssman en 7 de Marzo del 2016
Gran aportación!!!! A ver cómo funciona...

Re: Generador de circuitos

Publicado: Vie Sep 20, 2019 3:55 pm
por HAL
Escrito originalmente por pep0n en 7 de Marzo del 2016
Bayssman escribió:Lun Mar 07, 2016 1:41 pmGran aportación!!!! A ver cómo funciona...
 
 
No es grande. Es chiquitita y no vale de mucho ... de momento.
 
litus14 escribió:Lun Mar 07, 2016 12:06 pmProbaré con las pistas del diseño del California a ver qué sale :ja:
 
Te diría que te fueras a tomar un café. Pero no será suficiente. 
 
Ya estoy pensando en introducir el concepto 'dificultad' en la generación a ver si soy capaz de restringir el espacio de búsqueda según lo difícil que vaya a ser un circuito ... tengo que pensar más.
Editado 7 de Marzo del 2016 por pep0n

Re: Generador de circuitos

Publicado: Vie Sep 20, 2019 3:55 pm
por HAL
Escrito originalmente por quinux en 7 de Marzo del 2016
pep0n escribió:Lun Mar 07, 2016 11:05 am El miércoles dediqué un rato a repasar trigonometría porque la tenía muy olvidada y hacia mucha falta.
:huh:  Es cierto, la trigonometría sirve!!!
Si la docencia fuera de otra forma y aplicada a casos reales en vez de tantos problemitas en cuadernos....
 
pep0n escribió:Lun Mar 07, 2016 1:52 pm 
Ya estoy pensando en introducir el concepto 'dificultad' en la generación a ver si soy capaz de restringir el espacio de búsqueda según lo difícil que vaya a ser un circuito ... tengo que pensar más.
 
¿Vas a poner unas tijeras de podar en el algoritmo? :ja:
 
Por cierto, gracias!!!! esto será otro CarreraSlot seguro!!!

Re: Generador de circuitos

Publicado: Vie Sep 20, 2019 3:55 pm
por HAL
Escrito originalmente por pep0n en 7 de Marzo del 2016
quinux escribió:Lun Mar 07, 2016 2:23 pm¿Vas a poner unas tijeras de podar en el algoritmo? :ja:
 
Exactamente. Esa es la idea. Ahora solo hay que pensar en cómo será la tijera.

Re: Generador de circuitos

Publicado: Vie Sep 20, 2019 3:55 pm
por HAL
Escrito originalmente por Richard77 en 7 de Marzo del 2016
Grande pep0n! Siempre innovando y currando para los demás! :aplausos:

Re: Generador de circuitos

Publicado: Vie Sep 20, 2019 3:55 pm
por HAL
Escrito originalmente por djlutz en 7 de Marzo del 2016
pep0n escribió:Lun Mar 07, 2016 11:05 am... 
El miércoles...
 
El jueves...
 
El sábado...
...y el domingo descansé...
 
 
Enorme Pepon.

Re: Generador de circuitos

Publicado: Vie Sep 20, 2019 3:55 pm
por HAL
Escrito originalmente por olgydan en 8 de Marzo del 2016
Es flipante la mente de este hombre!

Re: Generador de circuitos

Publicado: Vie Sep 20, 2019 3:55 pm
por HAL
Escrito originalmente por Pimpo en 8 de Marzo del 2016
Mare meua Pepon¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ gracias una vez mas.
 
Uffff como Litus se ponga a jugar....en breve se avecinan obras en la pista del California

Re: Generador de circuitos

Publicado: Vie Sep 20, 2019 3:55 pm
por HAL
Escrito originalmente por seritobom en 8 de Marzo del 2016
grande maestro , no se si se podra pero estaria bien  un programita de estos para android , poder utilizarlo en el movil o tablet para ratos muertos que tienes durante el dia o por ejemplo el dia que se decide cambiar el trazado en un club.
 
como siempre ahi que quitarse el sombrero  :aplausos: :aplausos:

Re: Generador de circuitos

Publicado: Vie Sep 20, 2019 3:55 pm
por HAL
Escrito originalmente por pep0n en 8 de Marzo del 2016
Lo siento Serito pero para Android sería muy complicado porque necesita mucha capacidad de cálculo. Al menos en su versión actual.

Re: Generador de circuitos

Publicado: Vie Sep 20, 2019 3:55 pm
por HAL
Escrito originalmente por pep0n en 8 de Marzo del 2016
Y como dije, hay una nueva versión
Esta vez se ha introducido el concepto de "dificultad" de un circuito. Es MUY discutible y quizás alguien tenga una idea mejor. Estaré encantado de oírla.
En su versión actual se define la dificultad de un circuito como el resultado de ir sumando o restando una serie de pesos en función de la pista que se coloque y de si es una contracurva o no.
Las rectas disminuyen la dificultad de un circuito:
* 40cm: -4
* 20cm: -2
* 10cm: -1
Las curvas aumentan la dificultad de un circuito:
* R1: +4
* R2: +2
* R3: +1
* R4 y R5 no aumentan la dificultad.
Las contracurvas multiplican por 6 la dificultad del circuito en función de la curva que se está poniendo. Ej: si la contracurva es una R1 la dificultad que se añade al circuito es (4*6).
¿Por qué esos valores? Por intuición y por haber probado varios y ser los que mejor me han parecido. 
La idea es que si un circuito va a ser muy difícil no siga por el camino que está explorando. Así pues hace falta un valor de máxima dificultad para podar los caminos. Ese valor se puede poner en la interfaz debajo de la etiqueta que pone 'Dificultad'. Si se pone un valor muy alto no descarta ningún circuito y entonces funciona como la versión anterior.
Imagen
Ahora, con los valores por defecto y una dificultad de 20. Tarda sólo 5:43 (mucho más rápido) y encuentra 5957 circuitos (a costa de haber desechado muchos por el camino)
Podéis descargarlo de aquí
Podéis ver que hay un botón llamado P. Si alguien quiere experimentar lo que es la exploración de las posibles soluciones que lo pulse.
Editado 2 de Octubre del 2017 por pep0n

Re: Generador de circuitos

Publicado: Vie Sep 20, 2019 3:55 pm
por HAL
Escrito originalmente por pep0n en 8 de Marzo del 2016
Y no será la última versión. Ésta sigue siendo una mala solución.
 
Ya se me ha ocurrido la 'buena'. Pero me costará bastante hacerla.

Re: Generador de circuitos

Publicado: Vie Sep 20, 2019 3:55 pm
por HAL
Escrito originalmente por litus14 en 8 de Marzo del 2016
Una cosilla.. salen circuitos con "puente", es decir a dos alturas.

Re: Generador de circuitos

Publicado: Vie Sep 20, 2019 3:55 pm
por HAL
Escrito originalmente por pep0n en 8 de Marzo del 2016
Sí, no está controlado.

Re: Generador de circuitos

Publicado: Vie Sep 20, 2019 3:55 pm
por HAL
Escrito originalmente por Robx en 8 de Marzo del 2016
Que bueno!!
Muchas Gracias Pepon, seguro que resulta muy util para montar circuitos caseros

Re: Generador de circuitos

Publicado: Vie Sep 20, 2019 3:55 pm
por HAL
Escrito originalmente por Bayssman en 9 de Marzo del 2016
pep0n escribió:Lun Mar 07, 2016 1:52 pmNo es grande. Es chiquitita y no vale de mucho ... de momento.
bueno si tú lo dices... Para mí es grande... Mucha gente demanda diseños y creo que será muy útil... A ver si puedo probarlo...