<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Ganando la Carrera a la Incertidumbre: Bots Evolutivos Mejorados para un Simulador de Carreras de Coches</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Depto. de Teor´ıa de la Sen˜al</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Telema´tica y Comunicaciones</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dept. of Computer Sciences University of Mascara</institution>
          ,
          <addr-line>Argelia</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Depto. de Arquitectura y Tecnolog ́ıa de Computadores ETSIIT-CITIC, Universidad de Granada</institution>
          ,
          <addr-line>Espan ̃a</addr-line>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>ETSIIT-CITIC, Universidad de Granada</institution>
          ,
          <addr-line>Espan ̃a</addr-line>
        </aff>
      </contrib-group>
      <fpage>128</fpage>
      <lpage>142</lpage>
      <abstract>
        <p>One of the biggest problems in the design through optimization of bots for driving cars in racing simulators, is the so-called 'noise' inherent in the process. That is, in addition to the fact that the fitness function itself is a heuristic based on what we believe (or an expert believes) that will be most important to get a competitive controller to win races, that is, a surrogate/substitute model; the fitness calculation itself has associated uncertainty due to the stochastic components involved in its computation, such as the behavior of the rivals or the race conditions (track, weather), which are not deterministic. In previous work we defined an evolutionary controller based on fuzzy logic for the TORCS simulator. It worked with two sub-controllers, one dedicated to decide on the steering wheel rotation and the other to determine the target speed at each simulation instant. Both were optimized by means of a Genetic Algorithm (GA) based on a fitness calculation focused on maximizing the average speed during the race and minimizing the damage to the vehicle. The mentioned noise required to maintain diversity in the search (in the GA population), so we added the Blend Crossover operator (BLX-α), which also allows to exploit the current results while exploring for new solutions. Along with this in this work we try to manage the uncertainty in the selection of the best individuals of the GA by applying a novel race-based parent selection policy, called pole-position based selection. That is, individuals are grouped and compete against each other in several races, so that only the top-ranked individuals will remain in the population to reproduce. We have conducted several experiments, testing the performance of this new method and comparing the optimized controllers with others in the state of the art, including one of the best from an edition of the prestigious international Simulated Car Racing Championship, which we have clearly beaten.</p>
      </abstract>
      <kwd-group>
        <kwd>Simulacio´n de Carreras de Coches</kwd>
        <kwd>TORCS</kwd>
        <kwd>Controladores basados en Lo´gica Difusa</kwd>
        <kwd>Conductores aut o´nomos</kwd>
        <kwd>Algoritmos Gene´ticos</kwd>
        <kwd>Optimizacio´n</kwd>
        <kwd>Cruce BLX-</kwd>
        <kwd>Seleccio´n basada en Carreras</kwd>
        <kwd>Incertidumbre</kwd>
        <kwd>Ruido</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introducci o´n y descripci o´n del problema</title>
      <p>Los juegos son, en muchos casos, entornos cerrados y controlados, partes o mundos
simulados completos que permiten probar te´cnicas que luego eventualmente se podra´n
aplicar en el mundo real, probablemente combinado con diferentes tecnolog´ıas para
abordar su complejidad y variabilidad. Por ejemplo, la simulacio´n de carreras de coches
incluye muchos de los factores que esta´n presentes en conduccio´n auto´noma: las pistas
son muy diferentes y no se conocen por anticipado, hay otros veh´ıculos presentes en la
pista, las condiciones cambian segu´n el clima y el veh´ıculo se deteriora si sufre dan˜os.</p>
      <p>
        El coche simulado (o ma´s bien, su conductor) puede ser ‘consciente’ de todo esto
a trave´s de un conjunto limitado de sensores, y debera´ que tomar una decisio´n sobre la
velocidad y direccio´n o´ptimas con varios objetivos diferentes [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], incluyendo, segu´n
el contexto, la posibilidad de vencer a un conjunto de oponentes en una carrera virtual.
      </p>
      <p>
        Dado que probar diferentes metodolog´ıas de conduccio´n auto´noma en el mundo real
esta´ normalmente reservado a unas cuantas empresas en el mundo importantes, dichas
metodolog´ıas y los algoritmos asociados se prueban habitualmente en entornos
simulados. Estos entornos pueden ofrecer, adema´s, la posibilidad de comparar nuestro sistema
auto´nomo frente a otros. En este trabajo se usara´ uno de estos entornos, en concreto
The Open Racing Car Simulator (TORCS) [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], un simulador de carreras realista que
ofrece un gran banco de pruebas para la implementacio´n y evaluacio´n de conductores
auto´nomos. TORCS se ha utilizado varias veces en competiciones de Inteligencia
Artificial (IA), en las que el objetivo es crear el mejor conductor auto´nomo para competir en
carreras [
        <xref ref-type="bibr" rid="ref12 ref13 ref14">14,13,12</xref>
        ]. Adema´s de poder probar nuestro coche frente a otros que se han
publicado, se puede utilizar como un entorno independiente para optimizar la conduccio´n
en carreras en solitario.
      </p>
      <p>
        Por otra parte, los Algoritmos Evolutivos (EAs) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] se han aplicado
frecuentemente como un me´todo de optimizacio´n de propo´sito general en esta a´rea, generalmente
combinado con motores de comportamiento que gobiernan diferentes partes del coche
[
        <xref ref-type="bibr" rid="ref18 ref19 ref9">19,9,18</xref>
        ]. Dichos motores de conduccio´n han incluido u´ltimamente controladores
difusos [
        <xref ref-type="bibr" rid="ref11 ref17 ref6">6,17,11</xref>
        ], que son aquellos que aplican Lo´gica Difusa [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], una te´cnica bastante
adecuada para definir este tipo de agentes auto´nomos, ya que esta´n en parte inspirados
en el razonamiento humano al conducir. Un controlador difuso funciona con variables
lingu¨´ısticas que, por ejemplo, permitira´n girar ligeramente hacia la derecha cuando la
siguiente curva esta´ cerca, pero estos controladores deben disen˜arse para mapear
adecuadamente las entradas con las salidas deseadas en situaciones particulares.
      </p>
      <p>Desde el punto de vista de la optimizacio´n, uno de los principales problemas es que
el entorno siempre va a cambiar. Si esto esta´ reflejado correctamente en el simulador
utilizado, significara´ que la puntuacio´n (y por lo tanto, la clasificacio´n, si ese es el
objetivo final) siempre cambiara´, haciendo una seleccio´n probabil´ıstica del controlador
mejor o ganador. Esta incertidumbre es un desaf´ıo a dos niveles: en primer lugar,
controladores no o´ptimos (no ganadores) podr´ıan seleccionarse por casualidad, ya que se
les habr´ıa asignado una puntuacio´n alta favorecida por dicha incertidumbre; en segundo
lugar, una vez seleccionados, esto afectar´ıa a que el algoritmo explote zonas alrededor
de dichos controladores no o´ptimos y dejar´ıa otros (que podr´ıan ser prometedores) sin
explorar.</p>
      <p>Por estas dos razones, en este trabajo abordaremos dos desaf´ıos: reducir la
incertidumbre en la seleccio´n de los “ mejores” y mantener una alta diversidad en la
poblacio´n de soluciones (controladores) para no explotar solo las a´reas alrededor de esos
individuos, cuya puntuacio´n podr´ıa haber sido favorecida en parte por el azar durante
el proceso de evolucio´n.</p>
      <p>
        En trabajos previos, los autores presentaron un enfoque que combinaba dos
subcontroladores difusos especializados, disen˜ados por un experto, que pod´ıan decidir el
mejor a´ngulo de giro del volante y la velocidad deseada para el coche en cada punto
(o tic de simulacio´n) durante una carrera [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. Este controlador fue posteriormente
mejorado [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] optimizando los para´metros de sus funciones de pertenencia mediante un
algoritmo gene´tico [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Finalmente, los autores mejoraron el controlador en el u´ltimo
art´ıculo [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] mediante la definicio´n de nuevas funciones de fitness. La seleccio´n del
mejor controlador al final de la evolucio´n se baso´ en un conjunto de carreras entre las
mejores 4 soluciones, consiguiendo un mejor piloto que en estudios anteriores.
      </p>
      <p>Esto demostro´ que los algoritmos evolutivos son capaces de obtener los
mejores para´metros difusos para los subcontroladores, pero al mismo tiempo revelo´ varios
desaf´ıos. En general, los algoritmos evolutivos optimizan la funcio´n de fitness definida,
de modo que los controladores difusos evolucionados (en adelante, FCs) sera´n
eventualmente tan buenos como lo permita la funcio´n de fitness. Pero en este caso particular
no podemos utilizar como funcio´n de aptitud la posicio´n obtenida por el FC en todas las
carreras posibles en todas las pistas posibles con todos los posibles oponentes, por lo
que tenemos que conformarnos con un sustituto (subrogado) del fitness en un entorno
muy limitado. Primero optamos por eliminar oponentes y hacer evaluaciones en carreras
en solitario. Despue´s elegimos una pista en particular que combinaba segmentos rectos,
as´ı como algunas curvas, y finalmente tuvimos que decidir que´ factores relacionados
con la velocidad, el dan˜o y el tiempo por vuelta iban a ser incluidos efectivamente en la
funcio´n de fitness final.</p>
      <p>De este modo, las dos nuevas te´cnicas aplicadas en este trabajo: Seleccio´n basada
en pole-position (basada en carreras) y cruce BLX , intentan mejorar los resultados
anteriores confiando menos en la subrogacio´n de la funcio´n de fitness para seleccionar
las mejores soluciones (controladores). El mecanismo de seleccio´n utilizara´ una
funcio´n de aptitud sin para´metros (parameter-less) para seleccionar algunos individuos que
competira´n entre s´ı, adema´s las carreras reducira´n la aleatoriedad en la aptitud al poner
a los candidatos en un entorno ma´s real, es decir, enfrentar coches en carreras uno contra
uno ofrecera´ un resultado mucho menos variable que simplemente comparar un nu´mero
que represente su aptitud. Pero incluso en este caso, la incertidumbre estara´ presente al
calcular la aptitud y debemos evitar una explotacio´n excesiva de los resultados. El cruce
de BLX que hemos introducido se ocupara´ de este aspecto.</p>
      <p>Con estos me´todos, nuestro objetivo es obtener controladores ma´s confiables y
competitivos, los cuales sera´n probados contra oponentes muy competitivos, incluyendo un
controlador avanzado que obtuvo muy buenos resultados en varias ediciones de la
competicio´n internacional en TORCS.</p>
    </sec>
    <sec id="sec-2">
      <title>El simulador y los controladores</title>
      <p>En esta seccio´n se presentan el entorno de investigacio´n considerado (el simulador
de carreras de coches), y se describen los subcontroladores definidos por los autores.</p>
      <sec id="sec-2-1">
        <title>2.1. The Open Racing Car Simulator</title>
        <p>
          TORCS [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ] es un simulador de carreras de coches de co´digo abierto, realista,
multijugador y modular que permite a los usuarios competir contra otros oponentes
controlados por ordenador. Es un entorno de pruebas bastante fiable y muy utilizado en
investigacio´n en inteligencia artificial.
        </p>
        <p>
          Cada coche en TORCS manejara´ un conjunto de sensores y valores del entorno [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ],
por ejemplo distancias a bordes de la pista o a otros veh´ıculos rivales, el combustible
restante, la marcha actual, la posicio´n en la carrera, la velocidad, o los dan˜os, entre otros
(Ver Figura 1).
        </p>
        <p>Figura 1. Captura de TORCS en la que se muestran varios de los sensores que considera el coche.</p>
        <p>
          Estos valores sera´n considerados por los conductores auto´nomos o controladores,
para gestionar el coche utilizando los llamados actuadores [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]: giro del volante,
acelerador, freno y cambios de marcha.
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2. Subcontroladores Difusos</title>
        <p>El controlador disen˜ado por los autores se basa en el modelo de sensores y
actuadores de la Simulated Car Racing Competition.</p>
        <p>
          Sin embargo, la velocidad objetivo y el a´ngulo de giro de la direccio´n se calculan
mediante dos sistemas modulares y especializados [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]. Estos subcontroladores
incorporaron lo´gica difusa y consideran cinco sensores de posicio´n. Partiendo de ellos, se
aplicaron AGs para mejorarlos de manera automa´tica.
        </p>
        <p>El subcontrolador difuso de velocidad objetivo pretende estimar la velocidad
objetivo o´ptima del coche, tanto en las partes rectas, como en las curvas de la pista. Para
ello tiene en cuenta dos criterios: moverse lo ma´s ra´pido posible y de la manera ma´s
segura (con el menor dan˜o posible). Esta estimacio´n se basa en dos casos generales: si el
coche encara una l´ınea recta, la velocidad objetivo tomara´ un valor ma´ximo (maxSpeed
km/h). Sin embargo, si esta´ cerca de una curva, se disminuira´ la velocidad actual a un
valor incluido en el intervalo [minSpeed, maxSpeed] km/h.</p>
        <p>Este controlador difuso tiene una salida, la velocidad, y tres valores de entrada (ver
Figura 1):</p>
        <p>Front = Sensor 9: Distancia frontal al borde de la pista (a´ngulo 0°).</p>
        <p>M5 = max (Sensor 8, Sensor 10): distancia ma´xima al borde de la pista con un
a´ngulo de +5°y -5°con respecto a Front.</p>
        <p>M10 = max (Sensor 7, Sensor 11): distancia ma´xima al borde de la pista con un
a´ngulo de +10°y -10°.</p>
        <p>
          Se trata de un sistema difuso de tipo Mamdani [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] con tres funciones de pertenencia
(MF) trapezoidales para cada variable de entrada. En [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ] se optimizaron con un AG los
conjuntos de para´metros que definen las funciones de pertenencia, mejorando en gran
medida los resultados obtenidos.
        </p>
        <p>
          Adema´s, el controlador esta´ basado en un conjunto de reglas difusas, disen˜adas para
maximizar la velocidad del coche dependiendo de las distancias detectadas al borde de
la pista. Dichas reglas pueden verse en [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ].
        </p>
        <p>El segundo es el subcontrolador difuso para el giro del volante, que pretende
determinar el mejor a´ngulo de giro en base a una estimacio´n de la posicio´n objetivo del
coche. Su estructura es similar a la del controlador anterior, basa´ndose en los mismos
sensores, pero considerando el giro como salida del mismo.</p>
        <p>De modo que, como reglas generales: si el coche circula en l´ınea recta, se fijara´
como posicio´n objetivo el centro del carril por el que circula; mientras que, si el coche
esta´ cerca de una curva a derecha o izquierda, se acercara´ a la curva dejando un espacio
entre el coche y el borde de la pista para evitar la pe´rdida de control.</p>
        <p>Para detectar las curvas, el controlador revisa los valores de los sensores (M10, M5
y Front), de modo que si el valor en el sensor frontal es el mayor, hay un tramo
recto; mientras que si los valores de M5 y M10 con a´ngulos positivos (+5 y +10) son los
mayores, habra´ una curva a la derecha, y viceversa.</p>
        <p>
          El controlador usa un conjunto de reglas que fue definido modelando el
comportamiento de un conductor humano [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ].
        </p>
        <p>
          Los controladores difusos tienen funciones de pertenencia trapezoidales, que siguen
la Ecuacio´n 1. En un controlador de este tipo, las reglas difusas se aplican a te´rminos
lingu¨´ısticos, que califican las llamadas variables lingu¨´ısticas y que se definen mediante
funciones de pertenencia que dependen de un conjunto de para´metros que determinan
su forma y su ‘funcionamiento’. De modo que se aplico´ un AG para optimizar dichos
para´metros y determinar la particio´n difusa de la variable lingu¨´ıstica [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ]. Las variables
lingu¨´ısticas de entrada en nuestro problema sera´n Front, M5 y M10.
        </p>
        <p>Una funcio´n de pertenencia (MF) trapezoidal, se define como:
Con:</p>
        <p>A(x) =
8&gt; xx2 xx11 ; x1
&gt;&lt; 1; x2
&gt;&gt;: 0xx;44 xx3 ; x3
else
x
x
x</p>
        <p>Como se puede ver, una MF esta´ determinada por cuatro para´metros x1, x2, x3 y
x4, los cuales tienen valores en el intervalo [a, b] (Figura 2).</p>
        <sec id="sec-2-2-1">
          <title>Figura 2. Funcio´n de pertenencia trapezoidal</title>
          <p>En nuestra propuesta, una particio´n difusa con n MF trapezoidales se define
mediante 2n variables (a = x1,x2,. .., x2n = b)(Ecuacio´n 4). Con:
a = x1
x2
:::
x2n 1</p>
          <p>x2n = b
8 1;</p>
          <p>x1 x x2
A1(x) = &lt; xx33 xx2 ; x2 x x3
: 0; x &gt; x3
8&gt;&gt;&gt; 0; x x2i 2 ; xx2i 2x2i x2
&gt;&lt;&gt; x2i 1 x2i 2
Ai(x) = 1; x
x2i 1; n = 2; :::; i
1
An(x) =
(3)
(4)</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Optimizaci o´n Mediante un Algoritmo Gene´tico</title>
      <p>El algoritmo de optimizacio´n propuesto tiene como objetivo encontrar los
para´metros o´ptimos de las funciones de pertenencia de los dos subcontroladores previamente
introducidos.</p>
      <p>De modo que cada individuo/cromosoma es un vector de 18 valores/para´metros, 6
por variable, como se muestra en la Figura 3.</p>
      <sec id="sec-3-1">
        <title>Figura 3. Descripcio´n de un cromosoma</title>
        <p>
          La inicializacio´n de los cromosomas (poblacio´n inicial) se realiza asignando valores
aleatorios en un rango de variacio´n ([0; 100]) [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], a fin de comenzar por valores va´lidos
[
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]. Dado que nuestro trabajo requiere precisio´n y el intervalo de variacio´n de cada
para´metro no es completamente conocido, hemos considerado codificacio´n real [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] en
el vector de variables a optimizar.
        </p>
        <p>El proceso completo se puede ver en la Figura 3. Como se muestra, TORCS se usa
en la fase de evaluacio´n de cada individuo dentro del proceso evolutivo.</p>
        <p>
          La evaluacio´n de los individuos se ha realizado considerando la funcio´n de fitness
que mejores resultados nos ha dado hasta este trabajo, usada en el art´ıculo [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]. E´ sta es:
fAV S = AV G(Speed)
        </p>
        <p>Damage+1
(5)</p>
        <p>
          Es un enfoque sin para´metros (parameter-less) ya que no hay pesos en los te´rminos
[
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], que se centra en los objetivos reales de un conductor en una carrera, en lugar de en el
objetivo final de ganarla, a fin de conseguir controladores ma´s humanos (‘human-like’).
La funcio´n depende u´nicamente de dos variables, por lo que se intenta conseguir
conductores capaces de alcanzar la ma´xima velocidad media en la pista (AV G(Speed)), al
tiempo que se evita que el coche sufra dan˜os (Damage), ya que demasiado dan˜o hara´
que el coche tenga que abandonar la carrera.
        </p>
        <p>
          De modo que la aptitud de cada solucio´n candidata se calcula ‘inyectando’ sus
valores gene´ticos a los para´metros de las funciones de pertenencia de los dos
subcontroladores difusos. El controlador auto´nomo definido se utiliza para conducir un coche en
una carrera de 20 vueltas en un circuito sin oponentes, y los resultados (velocidad media
y dan˜o) se utilizan para calcular el valor de fitness. Como el objetivo del controlador
del coche es ganar tantas carreras como sea posible, intentamos optimizar el caso ma´s
general realizando carreras de entrenamiento en solitario, que sera´n menos sensibles
a la presencia de ruido/incertidumbre debido a la participacio´n de otros controladores
[
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. La pista seleccionada para esta evaluacio´n sera´ una que combine curvas y partes
rectas para obtener un ‘comportamiento todoterreno’.
Figura 4. Diagrama de flujo del proceso de optimizacio´n de un controlador difuso en TORCS.
Para evaluar a un individuo ponemos los valores de los para´metros de los dos subcontroladores
en el cromosoma correspondiente, luego lanzamos una carrera en TORCS con esta
configuracio´n, obteniendo los valores resultantes de Damage, T opSpeed y M eanLapT ime. El valor de
fitness del individuo se calcula utilizando estos valores.
        </p>
        <p>
          El operador de mutacio´n ha permanecido como en trabajos anteriores, es decir,
mutacio´n no uniforme [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ].
        </p>
        <p>Una nueva pol´ıtica de seleccio´n basada en pole-position ha sido implementada
(o seleccio´n basada en carreras), con el objetivo de lograr que individuos/controladores
mejores o ma´s confiables sean padres de la siguiente poblacio´n. Para ello, todos los
individuos se organizan en grupos de 10, luego se simulan diferentes carreras de varias
vueltas utilizando a cada individuo como controlador (con el mismo coche) en una pista
de TORCS. Despue´s de cada carrera, los participantes obtienen diferentes puntuaciones
en funcio´n de su posicio´n en la clasificacio´n final. Los 5 mejores controladores tras la
suma de puntuaciones de todas las carreras se seleccionan como padres para la siguiente
descendencia.</p>
        <p>
          De esta forma, se seleccionara´n los mejores individuos para reproducirse con mayor
probabilidad. No es posible asegurar que sean absolutamente los mejores, debido a la
incertidumbre presente en este tipo de entornos, es decir, juegos en los que competimos
contra oponentes no deterministas [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. Sin embargo, creemos firmemente que esta
pol´ıtica de seleccio´n sera´ “menos sensible” a esa incertidumbre (o ruido) y, por lo tanto,
sera´ ma´s justa y confiable que un enfoque basado puramente en los valores de fitness.
Por tanto, pensamos que este mecanismo de seleccio´n propuesto ser´ıa beneficioso para
conseguir un buen proceso de optimizacio´n.
        </p>
        <p>
          Adema´s, se ha aplicado el operador de cruce BLX- [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], en lugar del anterior
cruce en dos puntos. El Blendcrossoveroperator elige aleatoriamente un nu´mero en el
intervalo [xi (yi xi)::yi + (yi xi)], donde xi e yi son los ith valores de
para´metros de las soluciones padres x,y, y adema´s xi &lt; yi. Vea la Figura 5 para comprender
el proceso.
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>Figura 5. Operador de cruce (BLX</title>
        <p>)</p>
        <p>
          De forma que este operador se basa en la generacio´n aleatoria de genes de la
vecindad asociada a los genes en los padres. Se generan tres descendientes, con diferencias
entre s´ı y tambie´n entre ellos y sus padres, lo que lleva a un factor de exploracio´n
superior en la generacio´n de la descendencia. Este operador es normalmente usado en
algoritmos gene´ticos con codificacio´n real, en los que ha demostrado alcanzar un buen
equilibrio entre exploracio´n y explotacio´n [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ].
        </p>
        <p>En este operador, el para´metro controla la relacio´n entre exploracio´n y
explotacio´n, de modo que, para garantizar un equilibrio entre estos factores, tomara´ un valor
= 0;5.</p>
        <p>En los AGs, el proceso de bu´squeda necesita una alta tasa de exploracio´n en las
primeras generaciones para evaluar mu´ltiples partes del espacio de bu´squeda (alta
diversidad), pero en las u´ltimas generaciones se prefiere una alta explotacio´n para asegurar
que se llega a una solucio´n o´ptima.</p>
        <p>Hemos considerado dos enfoques diferentes en los experimentos, uno en el que se
usa un valor constante para y otro en el que el valor es variable, de forma que e´ste
decrece a medida que pasan las generaciones (obteniendo paulatinamente ma´s explotacio´n
y menos exploracio´n). De forma que el valor se calcula como:</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Experimentos y resultados</title>
      <p>
        Basa´ndonos en los resultados de nuestro art´ıculo anterior [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], la eleccio´n de una
pista adecuado para el entrenamiento es un factor importante para obtener bots
competitivos. De manera que hemos seleccionado el circuito Alpine 2 para los experimentos,
ya que combina mu´ltiples giros con partes rectas (Ver Figura 6).
      </p>
      <p>Adema´s, al igual que en nuestros estudios previos, hemos considerado el coche
car1-tbr1 en nuestros controladores, dado que tiene un rendimiento moderado que
per</p>
      <p>Figura 6. Alpine 2 Track: Circuito de montan˜a lento. Longitud: 3773.57m, Anchura: 10m
mitira´ a nuestro controlador adaptarse a la conduccio´n en casi todas las condiciones de
pista.</p>
      <p>Los controladores gene´ticos difusos (GFC) se han evaluado con la funcio´n de fitness
mencionada en la seccio´n anterior: fAV S (Ecuacio´n 5). Se ha considerado un taman˜o de
poblacio´n de 60 individuos. El resto de para´metros han sido: Generaciones=50, Prob.
Cruce=0,85, Prob. Mutacio´n=0,09, y 10 ejecuciones diferentes por configuracio´n.</p>
      <p>La seleccio´n basada en pole-position se ha aplicado sobre la pista indicada, con 5
carreras de 20 vueltas cada una y una parrilla inicial (posicio´n de partida) aleatoria. La
funcio´n de puntuacio´n se ha definido basa´ndonos en el esquema habitual en la Fo´rmula
1, de modo que las puntuaciones obtenidas dependen del puesto del coche en el ranking
final: 1 - 25 puntos, 2 - 18, 3 - 15, 4 - 12, 5 - 10, 6 - 8, 7 - 6, 8 - 4, 9 - 2, 10 - 1.</p>
      <p>Al final de la evolucio´n (en la u´ltima generacio´n) un proceso de seleccio´n basado
en carreras se ha aplicado de nuevo para elegir al mejor individuo de la ejecucio´n. De
modo que los 10 mejores individuos (en base a su fitness) de la poblacio´n final han
competido en 5 carreras de 5 vueltas en la misma pista. Se han calculado las mismas
puntuaciones y el controlador con mayor puntuacio´n ha sido elegido como el mejor.</p>
      <p>El proceso evolutivo se ha aplicado en grupos separados de ejecuciones y se han
obtenido los siguientes controladores:</p>
      <p>
        GF C: Controlador de nuestro trabajo anterior [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], en el que se uso´ el fitness fAV S
(Equation 5).
      </p>
      <p>GF C RS: Un controlador obtenido aplicado el cruce de dos puntos, seleccio´n
basada en pole-position cada 5 generaciones y el mismo fitness en las dema´s
generaciones.</p>
      <p>GF C F A: Un controlador obtenido aplicando BLX crossover con un valor
constante de = 0; 5 y seleccio´n basada en pole-position cada 5 generaciones y el
fitness fAV S en las dema´s.</p>
      <p>GF C V A: Un controlador obtenido aplicando BLX con un valor variable
de usando la expresio´n 6 y seleccio´n basada en pole-position carreras cada 5
generaciones y el fitness fAV S en las dema´s.</p>
      <p>Una vez que las 10 ejecuciones han terminado, los mejores 10 controladores
obtenidos compiten de nuevo en un conjunto similar de carreras al que se hace en la u´ltima
generacio´n, a fin de elegir al mejor controlador de cada esquema, es decir, el mejor
GF C RS, GF C F A y GF C V A.</p>
      <p>Los mejores GFC finales (uno por esquema) se han evaluado en grupos de varias
carreras, en una especie de mini campeonato de Fo´ rmula 1, que consta de 10 carreras,
cada una de 20 vueltas y con un total de 10 participantes por carrera: los 4 GFCs y 6
bots esta´ndar de TORCS. Hemos elegido dos controladores de tipo tita (un conductor
conservador), dos berniw (conocido por su agresiva pol´ıtica de adelantamiento) y dos
inferno (el ma´s ra´pido). Las primeras 5 carreras se llevaron a cabo en la pista Alpine
2 (utilizada durante el entrenamiento/optimizacio´ n); y las otras 5 carreras se realizaron
en la pista E-Track 5 (no entrenada para los nuevos controladores). Finalmente, para
hacerlo ma´s justo, hemos definido una puntuaci o´n adicional, por lo que el controlador
que consigue la vuelta ma´s ra´pida o el dan˜ o m´ınimo en cada carrera recibe 5 puntos
extra. La parrilla de salida se establecio´ nuevamente al azar.</p>
      <p>Los resultados de esta comparativa se muestran en la Tabla 1 y se resumen de
manera gra´fica en la Figura 7.</p>
      <p>
        Tabla 1. Resultados del mini-campeonato con 10 controladores y 10 carreras en dos pistas
diferentes. tita, berniw e inferno son controladores de ejemplo incluidos en TORCS [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]
Figura 7. Puntuaciones obtenidas por los diferentes controladores difusos gene´ticos en dos pistas
diferentes.
      </p>
      <p>De la tabla y la figura se desprende claramente que el controlador GF C V A
obtiene los mejores resultados. De hecho, el Dicho controlador gano´ tres carreras en la
pista Alpine 2 y se ha clasificado en segundo lugar en las otras dos pistas de carreras.
En el circuito E-Track 5 gano´ dos carreras, ha sido segundo dos veces y tercero en la
u´ltima carrera.</p>
      <p>El segundo controlador que usa BLX (valor constante de 0,5) quedo´ muy bien
posicionado en todas las carreras. Gano´ una carrera y se clasifico´ segundo en dos ma´s y
tercero otras. Las dema´s carreras las gano´ el controlador berniw, siempre un duro rival.
Podemos notar que los controladores basados en BLX ganaron tres de las cinco
carreras en la pista Alpine 2 utilizada en la seleccio´n y se clasificaron al menos en el
cuarto lugar. Se obtuvieron los mismos resultados o incluso mejores para la otra pista,
la cual era desconocida para nuestros controladores.</p>
      <p>Estos resultados confirman la eficacia y la solidez de la pol´ıtica de seleccio´n
basada en pole-position utilizada para evaluar a los individuos, as´ı como para seleccionar
a los candidatos para el cruce. Aunque esta pol´ıtica se ha aplicado solo una vez cada
5 generaciones debido a que consume mucho tiempo, claramente ha afectado
positivamente al rendimiento de los controladores, como se puede observar en la gran diferencia
existente entre los resultados del controlador GF C frente a GF C RS por ejemplo.</p>
      <p>A su vez, la pol´ıtica de seleccio´n propuesta, combinada con el operador BLX
, ha mejorado el rendimiento del controlador GF C F A. La introduccio´n de un
para´metro variable a lo largo de las generaciones en el bot GF C V A ha hecho
posible controlar mejor la relacio´n entre exploracio´n/explotacio´n durante el proceso
evolutivo, permitiendo generar descendientes diferentes de sus padres y ma´s eficientes
que ellos.</p>
      <p>
        Finalmente, para comprobar la bondad de nuestro mejor controlador, hemos
realizado un experimento adicional. Hemos considerado un oponente del estado del arte,
que participo´ en varias Competiciones de Carreras Simuladas en TORCS en ediciones
pasadas. Fue propuesto por Pe´rez-Lie´bana, Sa´ez, Recio e Isasi [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] y luego refinado en
el trabajo [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Lo hemos bautizado como PSRI en honor a los apellidos de sus autores.
      </p>
      <p>Este controlador funciona principalmente mediante una ma´quina de estados finitos
(FSM), definiendo los principales estados en los que puede encontrarse el conductor
(por ejemplo, girando, adelantando a un rival, etc). Las transiciones en la FSM se rigen
por un conjunto de reglas difusas, basadas en la informacio´n le´ıda de diferentes
sensores. Tambie´n existe un mo´dulo clasificador (a´rbol de decisio´n J48), capaz de analizar
las entradas de algunos sensores con el fin de predecir partes de la pista, para anticipar
las siguientes acciones a realizar. Las reglas difusas y tambie´n algunos para´metros del
FSM se optimizaron mediante un algoritmo NSGA-II.</p>
      <p>
        El controlador PSRI compitio´ en la edicio´n 2009 del Simulated Car Racing
Championship [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], donde ocupo´ el cuarto lugar considerando las puntuaciones obtenidas
en tres competiciones diferentes (celebradas en las conferencias CEC, GECCO y CIG
2009). En promedio tuvo un gran rendimiento, alcanzando buenas puntuaciones y
posiciones en varias carreras.
      </p>
      <p>La Tabla 2 muestra una comparativa entre nuestros dos controladores gene´ticos
difusos con BLX : GF C F A y GF C V A y PSRI. Los resultados son los valores
medios de Damage, M axSpeed y Speed para 10 carreras en la pistas Alpine 2 y
ETrack 5.</p>
      <p>Tabla 2. Dan˜o y Velocidades medios para 5 carreras en la pista Alpine 2 y 5 carreras en la pista</p>
      <sec id="sec-4-1">
        <title>E-Track 5</title>
        <p>Average Speed
(km/h)
Max Speed
(km/h)
Damage
Carreras
ganadas
225,07</p>
        <p>Los resultados de los controladores P SRI y GF C F A son similares, ganaron
dos y una carrera respectivamente de las 10. Sus velocidades promedio son comparables
pero en cuanto al dan˜o, el controlador GF C F A sufrio´ el m´ınimo al estar incluida la
variable Damage en la evaluacio´n de aptitud. Los resultados del controlador GF C
V A son aun ma´s satisfactorios, ya que gano´ 7 carreras y obtuvo el valor ma´s bajo de
dan˜os 117; 55 y 14; 67 para ambos circuitos, as´ı como la velocidad promedio ma´s alta
199; 65 y 170; 23.</p>
        <p>Observando estos resultados y los anteriores, podemos concluir que los
controladores propuestos son ma´s que competentes, debido a los nuevos mecanismos incluidos
para hacer frente a la incertidumbre y realizar una bu´squeda ma´s adecuada del espacio
de soluciones.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusiones y trabajo futuro</title>
      <p>En este art´ıculo hemos intentado obtener, mediante la optimizacio´n evolutiva de
sistemas difusos, controladores para coches de carreras competitivos mejorando el proceso
de seleccio´n con el objetivo de eliminar (o al menos paliar) el efecto de la incertidumbre
presente en este tipo de entornos. Para ellos se ha considerado evaluar a los
controladores mediante carreras reales en lugar de seguir una evaluacio´n basada en el ca´lculo
de un fitness. Adema´s, se ha controlado el equilibrio entre exploracio´n y explotacio´n
durante el proceso evolutivo de optimizacio´n mediante el uso de un operador BLX- .</p>
      <p>Cada controlador gene´tico difuso esta´ sujeto a incertidumbres en la pista,
especialmente en caso de que haya rivales (con un comportamiento no determinista), por lo que
para superar este problema y as´ı disen˜ar un bot robusto y confiable, propusimos aplicar
una Pol´ıtica de seleccio´n basada en pole-position, en la que la eleccio´n de los padres
en el proceso evolutivo se lleva a cabo de acuerdo con los resultados de un conjunto de
mini-campeonatos organizados entre los individuos de la poblacio´n, de manera similar
a un torneo de carreras de coches. Al mismo tiempo, y con el objetivo de
intensificar el proceso de exploracio´n en el espacio de bu´squeda, usamos el operador de cruce
BLX con valores decrecientes del para´metro a lo largo de las generaciones.</p>
      <p>La evaluacio´n se realizo´ comparando el controlador propuesto con bots de la
plataforma TORCS, arrojando muy buenos resultados. La otra evaluacio´n de nuestro
controlador fue una confrontacio´n con un bot real (controlador P SRI), que participo´ en
varias ediciones de campeonatos internacionales de carreras simuladas de coches. En
este caso, el operador BLX y la nueva pol´ıtica de seleccio´n han tenido un gran impacto
al ayudar a nuestro controlador a ganar tres cuartas partes de las carreras, obteniendo
adema´s los valores ma´s bajos de dan˜o, velocidad promedio y velocidad ma´xima.</p>
      <p>Estos resultados nos permiten pensar que nuestro controlador podr´ıa haber
alcanzado una muy buena clasificacio´n en dicha competicio´n, que lamentablemente ya no
se celebra desde 2015. En cualquier caso, pensamos que los resultados de este estudio
podr´ıan aplicarse con e´xito a otros simuladores de carreras de coches, como los que se
utilizan en las competiciones de e-sports actuales, como iRace (https://www.iracing.com/).</p>
      <p>Como l´ıneas de trabajo futuro, este controlador se puede mejorar de varias
formas: Podemos extender la pol´ıtica de seleccio´n a todas las generaciones superando el
inconveniente del tiempo de ca´lculo mediante una implementacio´n paralela. Tambie´n
podemos explorar otras funciones de fitness sin para´metros para evaluar a los
individuos, incluyendo otros factores que afecten al rendimiento del coche. Otra perspectiva
es utilizar mu´ltiples pistas (en lugar de solo una) en el proceso de seleccio´n para obtener
un controlador ma´s general, capaz de lidiar con muchas situaciones diferentes.</p>
    </sec>
    <sec id="sec-6">
      <title>Agradecimientos</title>
      <p>Este trabajo ha sido parcialmente financiado por los proyectos nacionales
RTI2018102002-A-I00 (Ministerio de Ciencia, Innovacio´n y Universidades),
TIN2017-85727C4-2-P y PID2020-115570GB-C22 (Ministerio de Econom´ıa y Competitividad), as´ı
como los proyectos autono´micos B-TIC-402-UGR18 y P18-RT-4830 (FEDER y Junta
de Andaluc´ıa).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. Ba¨ck, T.:
          <article-title>Evolutionary algorithms in theory and practice</article-title>
          . Oxford University Press (
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Elsayed</surname>
            ,
            <given-names>S.M.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sarker</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Essam</surname>
            ,
            <given-names>D.L.:</given-names>
          </string-name>
          <article-title>A genetic algorithm for solving the CEC2013 competition problems on real-parameter optimization</article-title>
          .
          <source>In: IEEE Congress on Evolutionary Computation</source>
          ,
          <string-name>
            <surname>CEC</surname>
          </string-name>
          <year>2013</year>
          . pp.
          <fpage>356</fpage>
          -
          <lpage>360</lpage>
          . Cancun, Mexico (
          <volume>21</volume>
          -
          <fpage>23</fpage>
          June 2013 2013)
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. Garc´ıa-Mart´ınez,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Lozano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Herrera</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Molina</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          ,
          <string-name>
            <surname>Sa</surname>
          </string-name>
          ´nchez, A.:
          <article-title>Global and local realcoded genetic algorithms based on parent-centric crossover operators</article-title>
          .
          <source>European Journal of Operational Research</source>
          <volume>185</volume>
          (
          <issue>3</issue>
          ),
          <fpage>1088</fpage>
          -
          <lpage>1113</lpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Godil</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shamim</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Enam</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Qidwai</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>Fuzzy logic: A 'simple' solution for complexities in neurosciences? Surg Neurol Int</article-title>
          . pp.
          <fpage>2</fpage>
          -
          <lpage>24</lpage>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Goldberg</surname>
          </string-name>
          , D.E.:
          <article-title>Genetic Algorithms in search, optimization and machine learning</article-title>
          .
          <source>Addison Wesley</source>
          (
          <year>1989</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Guadarrama</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vazquez</surname>
          </string-name>
          , R.:
          <article-title>Tuning a fuzzy racing car by coevolution</article-title>
          .
          <source>In: Genetic and Evolving Systems, GEFS 2008 (March</source>
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Harik</surname>
            ,
            <given-names>G.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lobo</surname>
            ,
            <given-names>F.G.</given-names>
          </string-name>
          :
          <article-title>A parameter-less genetic algorithm</article-title>
          .
          <source>In: Proceedings of the 1st Annual Conference on Genetic and Evolutionary Computation - Volume 1</source>
          . pp.
          <fpage>258</fpage>
          -
          <lpage>265</lpage>
          . GECCO'
          <volume>99</volume>
          , Morgan Kaufmann Publishers Inc., San Francisco, CA, USA (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Iancu</surname>
          </string-name>
          , I.:
          <article-title>A Mamdani Type Fuzzy Logic Controller</article-title>
          , pp.
          <fpage>325</fpage>
          -
          <lpage>352</lpage>
          . InTech (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Kim</surname>
            ,
            <given-names>T.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Na</surname>
            ,
            <given-names>J.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kim</surname>
            ,
            <given-names>K.J.:</given-names>
          </string-name>
          <article-title>Optimization of an autonomous car controller using a selfadaptive evolutionary strategy</article-title>
          .
          <source>International Journal of Advanced Robotic Systems</source>
          <volume>9</volume>
          (
          <issue>3</issue>
          ),
          <volume>73</volume>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Kolski</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ferguson</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stacniss</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Siegwart</surname>
          </string-name>
          , R.:
          <article-title>Autonomous driving in dynamic environments</article-title>
          .
          <source>In: In Proceedings of the Workshop on Safe Navigation in Open and Dynamic Environments at the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)</source>
          . Beijing, China (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. Lie´bana,
          <string-name>
            <given-names>D.P.</given-names>
            ,
            <surname>Recio</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Sa</given-names>
            ´ez, Y.,
            <surname>Isasi</surname>
          </string-name>
          ,
          <string-name>
            <surname>P.</surname>
          </string-name>
          :
          <article-title>Evolving a fuzzy controller for a car racing competition</article-title>
          .
          <source>In: Proceedings of the 2009 IEEE Symposium on Computational Intelligence and Games</source>
          ,
          <string-name>
            <surname>CIG</surname>
          </string-name>
          <year>2009</year>
          , Milano, Italy,
          <fpage>7</fpage>
          -
          <issue>10</issue>
          <year>September</year>
          ,
          <year>2009</year>
          . pp.
          <fpage>263</fpage>
          -
          <lpage>270</lpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Loiacono</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cardamone</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lanzi</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Simulated car racing championship competition. software manual</article-title>
          .
          <source>TORCS news</source>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Loiacono</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lanzi</surname>
            ,
            <given-names>P.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Togelius</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Onieva</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pelta</surname>
            ,
            <given-names>D.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Butz</surname>
          </string-name>
          , M..,
          <string-name>
            <surname>Lonneker</surname>
          </string-name>
          , T.D.,
          <string-name>
            <surname>Cardamone</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Perez</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Saez</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Preuss</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Quadflieg</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>The 2009 simulated car racing championship</article-title>
          .
          <source>IEEE Trans. Comput. Intell. AI Games</source>
          <volume>2</volume>
          (
          <issue>2</issue>
          ),
          <fpage>131</fpage>
          -
          <lpage>147</lpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Loiacono</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Togelius</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lanzi</surname>
            ,
            <given-names>P.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kinnaird-Heether</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lucas</surname>
            ,
            <given-names>S.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Simmerson</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Perez</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Reynolds</surname>
            ,
            <given-names>R.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Saez</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>The wcci 2008 simulated car racing competition</article-title>
          .
          <source>In: 2008 IEEE Symposium On Computational Intelligence and Games</source>
          . pp.
          <fpage>119</fpage>
          -
          <lpage>126</lpage>
          (
          <year>Dec 2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Merelo</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chelly</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mora</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <article-title>Ferna´ndez-</article-title>
          <string-name>
            <surname>Ares</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <article-title>Esparcia-Alca´zar,</article-title>
          <string-name>
            <given-names>A.I.</given-names>
            ,
            <surname>Cotta</surname>
          </string-name>
          ,
          <string-name>
            <surname>C.</surname>
          </string-name>
          , de las Cuevas,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Rico</surname>
          </string-name>
          , N.:
          <article-title>A statistical approach to dealing with noisy fitness in evolutionary algorithms</article-title>
          .
          <source>In: Computational Intelligence</source>
          , pp.
          <fpage>79</fpage>
          -
          <lpage>95</lpage>
          . Springer (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Neubauer</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>A theoretical analysis of the non-uniform mutation operator for the modified genetic algorithm</article-title>
          .
          <source>In: Proceedings of the IEEE International Conference on Evolutionary Computation</source>
          (
          <year>1997</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Onieva</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Alonso</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , Pe´rez, J., Milane´s, V.:
          <article-title>Autonomous car fuzzy control modeled by iterative genetic algorithms</article-title>
          .
          <source>In: Fuzzy Systems</source>
          . pp.
          <fpage>1615</fpage>
          -
          <lpage>1620</lpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Onieva</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pelta</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Godoy</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , Milane´s, V.,
          <string-name>
            <surname>Rastelli</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>An evolutionary tuned driving system for virtual car racing games: The autopia driver</article-title>
          .
          <source>International Journal of Intelligent Systems</source>
          <volume>27</volume>
          ,
          <fpage>217</fpage>
          -
          <lpage>241</lpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Onieva</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pelta</surname>
            ,
            <given-names>D.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Alonso</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , Milane´s,
          <string-name>
            <surname>V.</surname>
          </string-name>
          , Pe´rez, J.:
          <article-title>A modular parametric architecture for the torcs racing engine</article-title>
          .
          <source>In: Proceedings of the 5th IEEE Symposium on Computational Intelligence and Games (CIG'09)</source>
          . pp.
          <fpage>256</fpage>
          -
          <lpage>262</lpage>
          . IEEE Press, Piscataway, NJ, USA (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Perez</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Saez</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Recio</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Isasi</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Evolving a rule system controller for automatic driving in a car racing competition</article-title>
          .
          <source>In: 2008 IEEE Symposium On Computational Intelligence and Games</source>
          . pp.
          <fpage>336</fpage>
          -
          <lpage>342</lpage>
          (
          <year>Dec 2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Salem</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mora</surname>
            ,
            <given-names>A.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Merelo</surname>
            ,
            <given-names>J.J.:</given-names>
          </string-name>
          <article-title>The evolutionary race: Improving the process of evaluating car controllers in racing simulators</article-title>
          .
          <source>In: 2018 IEEE Conference on Computational Intelligence and Games (CIG)</source>
          . pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          (
          <year>Aug 2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Salem</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mora</surname>
            ,
            <given-names>A.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Merelo</surname>
            ,
            <given-names>J.J.</given-names>
          </string-name>
          , Garc´
          <fpage>ıa</fpage>
          -Sa´nchez, P.:
          <article-title>Driving in TORCS using modular fuzzy controllers</article-title>
          . In: Squillero G., S.K. (ed.) Applications of Evolutionary Computation.
          <source>EvoApplications</source>
          <year>2017</year>
          , LNCS, vol
          <volume>10199</volume>
          . pp.
          <fpage>361</fpage>
          -
          <lpage>376</lpage>
          . Springer, Cham (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Salem</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mora</surname>
            ,
            <given-names>A.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Merelo</surname>
            ,
            <given-names>J.J.</given-names>
          </string-name>
          , Garc´
          <fpage>ıa</fpage>
          -Sa´nchez, P.:
          <article-title>Evolving a TORCS modular fuzzy driver using genetic algorithms</article-title>
          . In: Sim,
          <string-name>
            <surname>K.</surname>
          </string-name>
          , Kaufmann, P. (eds.) Applications of Evolutionary Computation. pp.
          <fpage>342</fpage>
          -
          <lpage>357</lpage>
          . Springer International Publishing,
          <string-name>
            <surname>Cham</surname>
          </string-name>
          (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Thang</surname>
            ,
            <given-names>H.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Garibaldi</surname>
            ,
            <given-names>J.M.:</given-names>
          </string-name>
          <article-title>A novel fuzzy inferencing methodology for simulated car racing</article-title>
          .
          <source>In: IEEE International Conference on Fuzzy Systems</source>
          , Hong Kong, China,
          <fpage>1</fpage>
          -6 June, 2008, Proceedings. pp.
          <fpage>1907</fpage>
          -
          <lpage>1914</lpage>
          . IEEE (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Wyman</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Espie</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guionneau</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dimitrakakis</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Coulom</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sumner</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>TORCS the open racing car simulator (</article-title>
          <year>2000</year>
          ), http://www.torcs.org
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>