De qué se trata este proyecto

Imagen de portada del artículo sobre la evolución del coche con capacidad de aparcar, mostrando coches maniobrando en un espacio de estacionamiento
La portada del blog ilustra el proyecto de evolución del coche con capacidad de aparcar, mostrando coches navegando en un estacionamiento.trekhleb.dev

El párrafo de apertura introduce el artículo del blog Trekhleb y su implementación en TypeScript de un coche con capacidad de aparcar mediante un algoritmo genético, por lo que la imagen de portada ofrece a los lectores un punto de anclaje visual inmediato para el proyecto.

El artículo del blog Trekhleb de septiembre de 2021 explica cómo enseñar a un coche a aparcar mediante un algoritmo genético. El proyecto está implementado en TypeScript y el código completo ocupa menos de 500 líneas.

Cómo funciona el coche con capacidad de aparcar

El coche está equipado con ocho sensores de distancia —"ojos”— cada uno informa sobre la distancia a un obstáculo en un rango de 0 a 4 metros. Los sensores se actualizan cada 100 milisegundos; una lectura de 0 significa que no se ha detectado ningún obstáculo, mientras que valores positivos pequeños indican proximidad. El coche tiene dos "músculos": un músculo del motor que controla el movimiento hacia adelante, hacia atrás o en neutro, y un músculo del volante que gira hacia la izquierda, hacia la derecha o sigue derecho mientras se mueve. Cada músculo recibe una de tres señales (–1, 0 o +1) cada 100 ms.

El "cerebro" del coche consiste en dos polinomios lineales, uno que controla la señal del motor y otro la del volante. Cada polinomio toma ocho valores de los sensores como variables y nueve coeficientes como parámetros (ocho productos de coeficiente×variable más un término constante sumado sin multiplicación). Los 18 coeficientes definen juntos el comportamiento del coche y forman su genoma.

Estructura del genoma

Los 18 coeficientes decimales se convierten a cada uno en un número binario de 10 bits (1 bit de signo, 4 bits de exponente y 5 bits de fracción), lo que produce un genoma de 180 bits (18 coeficientes × 10 bits). Esto significa que el ADN completo del coche está compuesto por 180 ceros y unos.

Diagrama que muestra números decimales de punto flotante convertidos a representaciones binarias
Un ejemplo de conversión de coeficientes de punto flotante en la forma binaria usada en el genoma de 180 bits del coche.trekhleb.dev

El párrafo sobre estructura del genoma explica cómo cada uno de los 18 coeficientes decimales se codifica como un número binario de 10 bits, y este diagrama de conversión muestra exactamente ese paso de codificación.

Proceso evolutivo

Al principio, los coches reciben genomas aleatorios, lo que produce un comportamiento errático. Después de aproximadamente 40 generaciones, los coches empiezan a aprender qué implica el aparcamiento y se acercan al espacio de estacionamiento, aunque pueden seguir chocando contra otros coches o encajar en el espacio de forma imperfecta. El proyecto ofrece un simulador de evolución basado en navegador donde los usuarios pueden entrenar coches desde cero, ajustar parámetros genéticos o inspeccionar los coeficientes y valores del genoma del coche más exitoso.

Coches de primera generación con genomas aleatorios conduciendo de forma errática y colisionando en el estacionamiento
La primera generación de coches, sembrados con genomas aleatorios, se comporta de forma errática y rara vez aparca con éxito.trekhleb.dev

El párrafo sobre evolución describe cómo los coches comienzan con genomas aleatorios que producen un comportamiento errático, y esta animación de la primera generación lo demuestra vívidamente.

Coches de la cuadragésima generación aprendiendo a maniobrar en espacios de estacionamiento sin colisionar
Para la cuadragésima generación, los coches han comenzado a aprender cómo aparcar ellos mismos, acercándose al espacio objetivo de forma más fiable.trekhleb.dev

El mismo párrafo sobre evolución señala que, tras aproximadamente 40 generaciones, los coches comienzan a comprender el aparcamiento autónomo, y esta animación captura esa etapa de desarrollo.

Qué sigue sin resolver

El código no informa de las tasas exactas de éxito en el aparcamiento a lo largo de las generaciones, ni especifica una condición de terminación o una medida de rendimiento final. El blog menciona que el simple cerebro en forma de polinomio limita la capacidad del coche para generalizar a entornos desconocidos, pero no ofrece resultados cuantitativos.

Prueba

1. El algoritmo genético evoluciona los genomas de los coches a lo largo de generaciones, con aproximadamente la 40ª generación marcando el punto en el que los coches comienzan a aprender a aparcar. Esto está respaldado por el artículo principal del blog (extracto que menciona "este es solo el 40º generación desde la creación del mundo para ellos”) y el repositorio de GitHub (support-2) cuya descripción indica que los coches comienzan a aprender en la 40ª generación.

2. El cerebro del coche está implementado como dos polinomios lineales con un total de 18 coeficientes, y cuando cada coeficiente se codifica como un número de 10 bits, el genoma completo es de 180 bits. Esto está respaldado directamente por la explicación detallada del artículo principal sobre la estructura del polinomio, la conversión de coeficientes y la codificación del genoma.

Cada afirmación se mapea solo a las fuentes proporcionadas exactas y directamente relevantes. No se citan discusiones ni comentarios en HN ni otras fuentes no relacionadas.