RoboCode PDF

También podría gustarte

Está en la página 1de 106

INTELIGENCIA EN REDES DE

COMUNICACIONES
Trabajos de la asignatura
Curso 11-12

Departamento de Ingeniera Telemtica

Universidad Carlos III de Madrid


INTELIGENCIA EN REDES DE COMUNICACIONES
Trabajos de la asignatura

Curso 11-12

Julio Villena Romn


Raquel M. Crespo Garca
Departamento de Ingeniera Telemtica
Universidad Carlos III de Madrid
{jvillena, rcrespo}@it.uc3m.es

NDICE

1. El coche inteligente. .................................................................. 1


Daniel Asegurado Turn
Si alguna vez has soado con tener un coche como KITT, el coche
fantstico, ese sueo podra hacerse realidad en un futuro no muy lejano.
El sueo del coche fantstico es una realidad que est emergiendo con
fuerza en varios pases, incluido Espaa. El objetivo del presente
documento es realizar un recorrido por la historia del automvil hasta
llegar a los considerados coches inteligentes, donde nos detendremos a
analizar los diferentes proyectos que trabajan con esta idea.

Palabras clave: Coche autnomo, automatizacin de vehculos,


autoconduccin, Mecatrnica, radar, LIDAR, GPS, visin artificial, eye
tracking, estereoscopa.

2. Sistemas expertos: MYCIN ...................................................... 11


Ainhoa Sesmero Fernndez, Sandra Pinero Snchez
En este documento se explica lo que es un sistema experto, sus principales
usos y en concreto hablaremos del sistema MYCIN. Uno de los primeros
sistemas expertos para la deteccin y tratamiento de enfermedades de la
sangre.

Palabras clave: Sistemas expertos (SE), aplicaciones en medicina,


MYCIN, medicina, organismos, conocimiento.

-i-
3. Diseo e implementacin de un agente inteligente Mario A.I... 19
Yuchen Du, Virginia Izquierdo Bermdez
En este artculo se detalla el diseo y la implementacin de un agente
inteligente capaz de jugar al videojuego de Mario as cmo las tcnicas
utilizadas para este diseo.

Palabras clave: rbol de decisin, agente inteligente, Mario, enemigos,


agente, inteligencia, escenario.

4. Jugador virtual de pker Texas Holdem .................................29


Alberto lvarez Polegre, Lucas Bernalte Prez, David Daz Chinea
El pquer es un juego de cartas de los llamados de "apuestas", en los que
los jugadores, con todas o parte de sus cartas ocultas, hacen apuestas
sobre una puja inicial, recayendo la suma total de las apuestas en el
jugador o jugadores con la mejor combinacin de cartas. Este trabajo
hace un diseo de un jugador virtual de pker Texas Holdem.

Palabras clave: Pker, Texas Holdem, probabilidad, jugada, mano,


estrategia.

5. Inteligencia artificial en el mundo de la aviacin ..................... 37


Daniel Ruesga Ibaez, Hector Molla Ruiz
En este documento vamos a realizar un estudio del impacto que ha tenido
la inteligencia artificial en el mundo de la aviacin moderna. Nos
centraremos de forma especial en los sistemas de pilotaje automtico
disponibles en los aviones y su avance hasta los vehculos no tripulados
(UAVS).

Palabras clave: Sistemas expertos, aviacin, piloto automtico,


navegacin, vuelo, UAV.

6. Sistemas Expertos en meteorologa ......................................... 45


Carlos Lentisco Snchez, Tania Romero Rodrguez
Las aplicaciones basadas en inteligencia artificial son innumerables y
van desde la biomedicina o educacin hasta la prediccin de las
condiciones meteorolgicas que realizan los sistemas expertos, objeto de
estudio y razn de ser de este documento. Esta es la razn que justifica la
bsqueda del ser humano por predecir fiablemente las condiciones
meteorolgicas. A lo largo de este documento nos introduciremos ms en
los sistemas expertos repasando su evolucin histrica hasta nuestros
das para abordar posteriormente y con mayor profundidad un ejemplo
de estos sistemas. Centrndonos en el sistema Prometeo.

Palabras clave: Inteligencia, meteorologa, sistemas expertos,


prediccin meteorolgica.

- ii -
7. Traduccin automtica. Tcnicas y aplicaciones ...................... 53
Isabel Cuadrado Gutirrez, David Ferrer Figueroa
En este texto se aborda un tema de gran relevancia en la actualidad, el
concepto de la traduccin automtica. Se analizar esta rea desde su
origen hasta la actualidad, tratando la evolucin de las distintas tcnicas
empleadas para obtener la mayor calidad posible en las traducciones.
Asimismo, en el trrabajo se hace un breve repaso a las aplicaciones ms
utilizadas y al desarrollo futuro previsto en este campo teniendo en
cuenta, entre otros factores, la rentabilidad del negocio y la calidad de la
traduccin.

Palabras clave: Inteligencia artificial, Traduccin automtica,


algoritmo de corpus.

8. Resolucin de Puzzles Deslizantes ........................................... 61


Lara Rojo Celemn, Ivn Surez Morejudo
En 1878, Sam Loyd daba un premio de $1.000 a quien fuera capaz de
resolver su famoso 14-15 Puzzle. Se trataba de un puzzle deslizante de 16
piezas que no tena solucin, lo que hizo que muchas personas se
volvieran locas tratando de resolverlo. En este trabajo tratamos de
presentar diferentes algoritmos para resolver el 15-Puzzle desde el punto
de vista de la Inteligencia Artificial. Para ello, utilizamos el algoritmo de
bsqueda en rboles A*, del que daremos una visin general que luego
particularizaremos a nuestro caso del 15-Puzzle. Aunque en este trabajo
slo nos hemos centrado en resolver el rompecabezas de 16 piezas, los
algoritmos explicados pueden utilizarse para resolver cualquier puzzle
deslizante n x n con solucin.

Palabras clave: Puzzles, Algoritmos, permutaciones pares, heurstica,


Inteligencia Artificial, resolucin humana, puzzles deslizantes, 15-puzzle,
Sam Loyd, Algoritmo A*, herstica, Turing.

9. Desarrollo de un agente autnomo jugador de Super Mario ....70


Adrin Amor Martn, Cristina Garca Muoz
En este documento se va a detallar cmo realizar un agente, basado en
rboles de decisin, que sea capaz jugar de forma autnoma al juego
Super Mario en el marco del concurso Mario AI 2011.

Palabras clave: Agente, rboles de decisin, inteligencia artificial,


Super Mario.

10. Implementacin de un Agente para un jugador de Mario A.I. .. 78


Alejandro Prez Cruz, David de la Horra Iglesias
En este documento presentamos una posible implementacin de un
agente que pueda jugar al juego SuperMario Bross. con una cierta
inteligencia autnoma.

- iii -
Palabras clave: Algoritmos de bsqueda, lenguaje de programacin
Java, diseo e implementacin de un agente, bsqueda, inteligencia
artificial, agentes.

11. Robot de Robocode ................................................................. 86


Felipe Llinares Lpez, Juan Jos Torres Garca
En esta memoria describimos una implementacin que hemos realizado
de un robot de competicin para el programa Robocode.

Palabras clave: Algoritmos, Rendimiento, Diseo, Robocode.

12. Minera de Datos .................................................................... 94


scar Palomo Miambres
En este artculo analizaremos las ideas bsicas que sustentan el Data
Mining y, ms concretamente, la utilizacin de rboles de decisin como
herramienta estadstica avanzada. Presento tambin un ejemplo ficticio
de la aplicacin de estas tcnicas: predecir clientes que tienen un alto
porcentaje de impagos.

Palabras clave: Minera de Datos, rboles de decisin, impagos,


prediccin.

- iv -
El coche inteligente
En busca de mayor seguridad, sostenibilidad y confort

Daniel Asegurado Turn


Universidad Carlos III de Madrid
Legans, Madrid, Espaa

100066664@alumnos.uc3m.es

RESUMEN Durante muchos aos, esta idea del automvil no ha sido ms que
Si alguna vez has soado con tener un coche como KITT, el coche mera ciencia ficcin. Sin embargo, la realidad hoy es bien
fantstico, ese sueo podra hacerse realidad en un futuro no muy diferente. En los casi treinta aos que separan la emisin de la
lejano. El sueo del coche fantstico es una realidad que est legendaria serie de la actualidad, se han realizado grandes
emergiendo con fuerza en varios pases, incluido Espaa. El progresos en el estudio del coche inteligente. Organismos
objetivo del presente documento es realizar un recorrido por la oficiales, como la Unin Europea, fabricantes de automviles,
historia del automvil hasta llegar a los considerados coches como Volvo, o incluso compaas de otros sectores ajenos al
inteligentes, donde nos detendremos a analizar los diferentes motor, como es el caso de Google, se han lanzado a la carrera por
proyectos que trabajan con esta idea. conseguir el coche del futuro.
Cul es el inters por obtener un coche de estas caractersticas?
Palabras clave Siguiendo con la analoga del coche fantstico, el principal inters
Coche autnomo, automatizacin de vehculos, autoconduccin, sigue siendo salvar vidas. Mientras que KITT se preocupaba de
Mecatrnica, radar, LIDAR, GPS, visin artificial, eye tracking, salvarle la vida a su compaero Michael, el objetivo de los
estereoscopa organismos institucionales como la Unin Europea es reducir el
nmero de muertes al volante. Segn la DGT [1], en el primer
semestre de 2011 ya se contabilizaban 986 vctimas mortales por
1. INTRODUCCION accidentes en la carretera (no estn incluidas las vctimas de
Todos hemos tenido envidia del mtico Michael Knight cuando, lesiones graves o leves en el total de accidentes). En cifras
con slo una orden de voz llamaba a KITT, su coche fantstico, relativas, en Europa murieron 62 personas por milln de
para que le fuese a recoger all donde se encontrase. KITT no slo habitantes el pasado 2010, segn el informe del ETSC sobre
era capaz de conducir autnomamente, sino que era capaz de seguridad vial [2]. Aunque la cifra vaya en descenso en los
reaccionar a todo tipo de peligros a los que se enfrentase gracias a ltimos aos, sigue siendo demasiado elevado el nmero de
una supercomputadora integrada dotada de inteligencia artificial personas que pierden la vida en accidentes de trfico, por lo que
(cerebro), que era capaz de interpretar los datos procedentes de es necesario la puesta en marcha de proyectos que trabajen por
los diversos sensores de sonidos, imgenes e incluso olores (los aumentar la seguridad y evitar el mayor nmero posible de
rganos de los sentidos). Hasta era capaz de hablar. En definitiva, siniestros. Con el coche inteligente podramos mejorar en
un coche con el comportamiento de un ser humano. cuestiones de seguridad gracias a la incorporacin, por ejemplo,
de sistemas de alerta ante el alejamiento involuntario del carril,
detectores de peatones o sistemas de control del conductor que
sean capaz de reaccionar si el conductor se duerme al volante.
Por otro lado, el coche inteligente tiene que velar por la mayor
eficiencia energtica posible. Con el creciente nmero de coches
en el mundo (slo en 2010 se fabricaron ms de 58 millones en
todo el mundo segn el informe del OICA [3]), y la cada vez ms
escasa cantidad de recursos energticos, debida en gran parte a la
crisis del petrleo, exigen que los nuevos vehculos gestionen ms
eficientemente las fuentes de energa con las que cuente. Las
propias instituciones gubernamentales exigen, para cumplir con
las normativas de sostenibilidad y respeto del medio ambiente,
que adems se reemplacen los modelos ms antiguos por nuevos
que sean ms ecolgicos. En Espaa, un 13% del parque
automovilstico supera los 20 aos de antigedad segn el ltimo
informe de la DGT [4], por lo que un gran nmero de coches
deber ser renovado en los prximos aos. En este punto, el coche
Figura 1. KITT, el coche fantstico inteligente juega tambin un papel crucial, pudiendo dotrsele de
la capacidad para controlar el consumo de forma autnoma. Los

-1-
nuevos coches elctricos y los futuribles coches de hidrgeno u modelos que se venan desarrollando paralelamente a finales del
otras fuentes de energa limpias, exigirn an ms si cabe una siglo XIX, no dejaba de ser un mero carro (ms bien un triciclo
gestin eficiente de la energa, y el desarrollo del mismo grande) propulsado por un motor.
incentivar la creacin de coches cada vez ms sostenibles.
Al automvil, que ha vivido grandes transformaciones desde su
invencin, le llega por tanto el momento de cobrar inteligencia.
Para ello, siguiendo el prototipo de KITT, es necesario
incrementar la capacidad de percepcin (mejorar los rganos de
los sentidos para adquirir ms informacin del exterior) y dotarle
de un cerebro que controle, analice y sea capaz de decidir
autnomamente. Nuevos medidores no slo de mayor precisin de
los niveles internos del automvil, como tradicionalmente se ha
venido desarrollando, sino para incorporar nuevas funcionalidades
como detectores de obstculos para el aparcado automtico,
detectores de otros objetos mviles -como otros vehculos- para
aumentar la seguridad en el adelantamiento, o detectores de
posicin para el ambicioso plan de la autonavegacin. Todo ello,
una vez ms, para facilitarle la vida un poco ms al ser humano
del siglo XXI. Figura 2. Benz Patent-Motorwagen (1885)
El presente documento analizar el concepto de coche inteligente, Ya antes del invento de Benz, la idea del coche elctrico estaba
como el resultado de la incorporacin de elementos de desarrollndose. Los primeros coches elctricos se remontan a
inteligencia artificial en el automvil, segn el siguiente esquema: 1828, cuando el hngaro nyos Jedlik inventa el motor elctrico y
- Seccin 1 presenta una introduccin al tema de la crea el primer modelo de coche propulsado por dicho motor.
inteligencia artificial aplicada al automvil y motiva el Diversos ingenieros trabajan en la idea del coche elctrico hasta
estudio realizado en este informe. que alrededor de 1839, el escocs Robert Anderson inventa el
primer coche elctrico impulsado por bateras elctricas no
- Seccin 2 realiza una breve resea histrica de la recargables. Sin embargo, la abundancia de carburantes lquidos y
evolucin del automvil y de la incorporacin de la eficiencia de los motores de gasolina hacen que el coche
elementos de inteligencia artificial en el mismo. elctrico quede aparcado hasta la actualidad, cuando la necesidad
de nuevas alternativas a los derivados del petrleo hace que se
- Seccin 3 analiza las distintas tecnologas en las que
recupere esta vieja idea de coche elctrico.
actualmente trabaja la iniciativa i2010 Intelligent Car
Initiative, promovida por la Comisin Europea. La etapa comprendida entre los ltimos aos del siglo XIX y la
primera mitad del siglo XX est cargada de avances en la
- Seccin 4 aborda el concepto de autoconduccin, donde
produccin de automviles. Entre ellos, la invencin de la cadena
se presentarn diferentes proyectos que trabajan en
de montaje en 1910 de la mano de Henry Ford. A partir de este
conseguir coches que se conduzcan solos. Una especial
momento, gracias a la produccin industrial de modelos de coches
atencin se prestar al proyecto de Google, ya que est
y su uso extendido para todas las clases sociales, la industria del
actualmente en marcha en Estados Unidos, y al proyecto
automvil adquiere una importancia vital en la economa de los
que los compaeros de la Universidad Carlos III estn
pases y se convierte en una de las industrias en las que ms
desarrollando en esta materia.
recursos se invierten en investigacin y desarrollo.
- Seccin 5 valora el futuro de los coches inteligentes
Los avances ms destacados en la industria del automvil durante
para la sociedad en los prximos aos, desde el punto
el siglo XX se orientan principalmente en la mejora del motor.
de vista del autor del documento.
Las distintas empresas automovilsticas inician la guerra por
conseguir los motores ms potentes y eficientes, y se investigan en
los motores de explosin, o comnmente conocidos como diesel.
2. HISTORIA
Para entender con mayor detalle hacia dnde va dirigida la carrera En los ltimos aos del siglo pasado y los primeros del XXI,
por el coche del futuro, es interesante hacer un breve recorrido etapa considerada como la edad moderna del automvil, aparecen
por la evolucin del automvil y repasar los avances que se han las primeras automatizaciones dentro del coche. A continuacin,
ido desarrollando en la senda de la automatizacin desde su se presentan algunas de estas incorporaciones:
invencin hasta los modelos contemporneos y los nuevos coches
autnomos. El elevalunas elctrico: mediante un mecanismo
elctrico controlado por el usuario gracias a un botn de
dos posiciones, se suben y bajan las ventanillas del
2.1 El automvil clsico automvil, sustituyendo as a la tradicional manivela
Aunque hubo vehculos a vapor que se pueden considerar los manual.
precursores del automvil (como el invento de Cugnot en torno a
1769, o el modelo de Murdoch), se considera a Karl Benz el El airbag: sistema de bolsas de aire que
inventor del automvil moderno, con la incorporacin de la automticamente se dispara cuando el automvil sufre
combustin por gasolina. El primer modelo de Benz, el Benz un choque brusco. Mediante un sistema electro-
Patent-Motorwagen (representado en la Figura 2), al igual que los

-2-
mecnico, el coche es capaz de saber cundo debe El origen de la Mecatrnica se remonta a las investigaciones en el
activar el airbag y cundo no. rea de la Ciberntica de Turing (1936), Wiener y Morthy (1948)
y Devol (1954) y los autmatas programables de Bedford
El climatizador: un sistema de calefaccin que mantiene Associates en 1968. En la dcada de los setenta, la Mecatrnica se
la temperatura interna del vehculo a la temperatura centra en la tecnologa de servomecanismos, empleada en
deseada por el conductor. Cuenta con un sensor de productos como puertas automticas. En los aos ochenta, en
temperatura gracias al cual determina la temperatura del pleno auge de la tecnologa de la informacin, los
habitculo y si debe proporcionar mayor calor o fro microprocesadores empiezan a ser introducidos en los sistemas
para mantener la temperatura dentro de los mrgenes mecnicos para mejorar su desempeo. Las mquinas de control
fijados por el usuario. numrico y los robots se volvieron ms compactos, y las
El ordenador de abordo: con mayor o menor aplicaciones automotrices como los mandos electrnicos del
sofisticacin, los nuevos automviles incorporan una motor y los sistemas anticerrado y frenando se hicieron extensas.
pantalla que facilita informacin sobre kilmetros Por los aos noventa, se agreg la tecnologa de comunicaciones,
recorridos, consumo medio cada 100km, velocidad creando productos que podan conectarse en amplias redes. Al
media, etc. mismo tiempo, se estn usando novedosos microsensores y
microactuadores en nuevos productos como los sistemas
Aviso de cinturn de seguridad: mediante sensores de microelectromecnicos como los diminutos acelermetros de
presencia en los asientos, y sensores en el cierre del silicio que activan las bolsas de aire de los automviles. El
cinturn de seguridad, el sistema de alarma detecta, concepto de automatizacin en el automvil viene ligado
cuando el coche arranca el motor, los asientos que estn precisamente a esta rama de la ingeniera y en la aplicacin
ocupados y si en dichos asientos sus pasajeros tienen prctica de la Mecatrnica en tcnicas que asistan al conductor en
abrochado el cinturn de seguridad. En caso contrario, el control del vehculo.
se activa una alarma sonora y visual, indicando que hay
En este punto en el que se ha repasado brevemente la historia del
pasajeros sin cinturn de seguridad.
automvil y la aparicin de distintas tcnicas de automatizacin
Aviso de puertas abiertas: mediante un sistema de de la mano de la Mecatrnica, es necesario hacer una clasificacin
sensor de cierre, similar al del aviso de cinturn de de los nuevos vehculos, en funcin de la inmersin de la
seguridad, cuando el motor se enciende un piloto avisa inteligencia artificial en su produccin. As, podemos diferenciar
de si hay alguna puerta mal cerrada o abierta. tres tipos de vehculos:

Subida automtica del volumen en funcin de la Vehculos inteligentes: aquellos que emplean tcnicas
velocidad: al superar determinada velocidad punta, el de automatizacin de la Mecatrnica, y en particular de
coche sube automticamente el volumen del reproductor la inteligencia artificial, para disminuir o facilitarle las
de msica, avisando al conductor de que est responsabilidades del manejo del automvil al
sobrepasando el lmite de velocidad, o incluso conductor. En general, las caractersticas inteligentes de
despertarte el caso de que el aumento de velocidad se estos vehculos hacen referencia a tareas de baja o
deba a que el conductor se ha dormido. media dificultad. El control del automvil recae
totalmente en el conductor y la tarea fundamental de la
El limpiaparabrisas automtico: gracias a un sensor de inteligencia del vehculo es asistirle.
lluvia en el parabrisas, la velocidad y frecuencia de
Existen muchas tcnicas de automatizacin aplicadas al
barrido de los limpiaparabrisas se ajustan
automvil. Principalmente se clasifican en tres
automticamente de acuerdo con la cantidad de lluvia
categoras:
detectada.
o Asistencia sensorial (informativa): informan
Aunque no puedan considerarse como elementos de inteligencia al conductor sobre eventos que ocurren y de
artificial como tal en el automvil, estas sutiles incorporaciones los que el conductor puede que no se d
en los coches modernos son, por as decirlo, antecedentes de los cuenta. Algunos ejemplos son:
proyectos que hay en marcha ya para dotar a los coches de
inteligencia. El auge de las nuevas tecnologas y la aparicin de la Detectores de obstculos
conocida Sociedad de la Informacin, afectan a todos los mbitos Visin nocturna (con deteccin de
de la vida moderna. El automvil, herramienta que empleamos a peatones)
diario, no poda ser menos y, dado el enorme capital econmico Sistema de aviso para el cambio de carril
que genera la industria del automvil, cualquier mejora en este
aspecto proporcionar grandes beneficios econmicos, al margen
de cualquier otro progreso en sostenibilidad, seguridad o confort. Deteccin anticipada de colisin
Faros adaptativos
2.2 La automatizacin en el automvil Reconocimiento de seales de trfico
Con el auge de las nuevas tecnologas, surgen tambin nuevas
ramas en la ingeniera. Surge adems la llamada ingeniera o Asistencia para actuacin (correctiva):
Mecatrnica, que engloba los campos de las ingenieras mecnica, modifican las instrucciones del conductor
electrnica, de control e informtica, con el objetivo de disear para ejecutarlas de una forma ms eficiente.
productos o procesos inteligentes, involucrando sistemas de Entre las tcnicas ms conocidas estn:
control en su diseo. ABS (sistema de antibloqueo de frenos)

-3-
TCS (sistema de control de traccin) Aunque la idea se remonta a los aos treinta, no es hasta los
AWD (motor a las cuatro ruedas) ochenta cuando se empiezan a implementar los primeros modelos
reales, no slo tericos. En estos aos, Mercedes-Benz presenta
ESC (control electrnico de estabilidad) una caravana robtica capaz de alcanzar hasta 100 km/h en
DSR (respuesta a la direccin dinmica) carreteras sin trfico. El xito del modelo anim a la Comisin
Europea a lanzar el proyecto EUREKA-Prometheus (1987-1995)
o Asistencia sistmica: introducen mejoras que
para el desarrollo de vehculos autnomos, el mayor proyecto de
no se incluyen en las anteriores. Son por
I+D en el campo de los vehculos autnomos hasta el momento.
ejemplo:
Aparcamiento automtico Al mismo tiempo en Estados Unidos el Departamento de Defensa
realiza sus propios experimentos en el llamado Autonomous Land
Asistencia para el control de distancias Vehicle (ALV) y lleva a cabo la primera demostracin de
Dead man's switch: sistemas para detener vehculos capaces de seguir un camino utilizando LIDAR, visin
el coche de forma segura en caso de que el artificial y control robtico autnomo para controlar un vehculo
conductor quede inconsciente robtico hasta los 30 km/h. En 1987, consiguen que el ALV sea
capaz de viajar autnomamente fuera de carretera mediante un
La Comisin Europea est llevando a cabo un
sistema de navegacin autnomo basado en sensores. El nuevo
programa de desarrollo de coches inteligentes, en el
modelo es capaz de viajar 600m a 3 km/h en terrenos complejos
cul se engloban diferentes proyectos de universidades,
con fuertes pendientes, barrancos, grandes rocas y vegetacin.
centros de investigacin y empresas del mundo
automovilstico. Entre los objetivos de este proyecto
estn el control de crucero autnomo, sistemas de alerta
para el cambio de carril o estudios para atacar el
problema del conductor somnoliento.
En la siguiente seccin se presentarn en detalle en qu
consiste este programa y que tecnologas se estn
investigando para el futuro coche inteligente.
Vehculos semiautnomos: aquellos que emplean las
tcnicas de automatizacin para tareas de mayor
dificultad, especialmente en cuestiones relacionadas
con la navegacin. El control del automvil recae
principalmente en el conductor pero parte de la
responsabilidad se le cede al control automtico. El
coche semiautnomo es un paso intermedio entre el
coche inteligente y el coche totalmente autnomo. Figura 3. DARPA: Autonomous Land Vehicle (ALV)
Vehculos autnomos o robticos: aquellos que En 1994 y de vuelta a Europa, los vehculos robticos VaMP y su
confan por completo en el sistema de automatizacin gemelo Vita-2 logran circular miles de kilmetros por una
del vehculo. Se les conoce tambin por el nombre de autopista parisina de tres carriles, con trfico denso, alcanzando
driverless, es decir, coches sin conductor. El vehculo velocidades de hasta 130 km/h con una mnima intervencin
sustituye por completo las funciones que humana. El vehculo empleaba visin artificial para reconocer
tradicionalmente llevaba a cabo el conductor y, como el obstculos que se podan mover rpidamente, como otros coches,
propio nombre sugiere, conduce solo. El vehculo y poder realizar cambios de carril a izquierda o derecha evitando
autnomo es capaz de percibir el entorno (a imitacin colisionar con otros vehculos. El xito del proyecto dio paso a
de los sentidos humanos) mediante laser, radar, muchos otros proyectos en los siguientes aos que demostraron
LIDAR, GPS y visin artificial, y navegar por s ser capaces de recorrer mayores distancias a mayores velocidades.
mismo. El papel del humano en este caso se limita a
elegir un destino, pero ya no se le requiere realizar En 1996, el proyecto ARGO consigue completar una ruta de 2000
ninguna operacin mecnica sobre el vehculo. km a lo largo de autopistas del norte de Italia durante 6 das y con
una velocidad media de 90 km/h. Lo sorprendente del proyecto
fue que el vehculo consigui funcionar en modo totalmente
2.3 El coche autnomo automtico el 94% del tiempo. El automvil contaba slo con dos
Aunque en el apartado anterior se han descrito las principales
cmaras detectoras de blancos y negros de bajo coste y utilizaba
caractersticas de los vehculos autnomos y posteriormente se
algoritmos de visin estereoscpica para entender el entorno (se
presentarn diferentes proyectos que estn trabajando en el
guiaba gracias a que la carretera es negra y las lneas delimitantes
desarrollo del coche autnomo, es interesante realizar tambin un
son blancas) en contraposicin a la aproximacin laser/radar de
breve recorrido por la historia del coche autnomo.
los proyectos anteriores en el mismo campo.
La primera idea que se conoce sobre coches autnomos
corresponde al diseo Futurama, del americano Normal Bel Si hasta finales del siglo pasado, todos estos proyectos de coches
Geddes y financiado por General Motors, que fue presentado en la autnomos no eran ms que proyectos, con el cambio de milenio
Exposicin Universal de Nueva York de 1939. El proyecto se han conseguido implantar sistemas de autoconduccin en
presentaba coches elctricos, alimentados por circuitos integrados distintos lugares del mundo, como puede ser el caso del
en la calzada, y que eran controlados por radio. ParkShuttle en Rotterdam, un sistema de minibuses que funcionan
sin conductor. En 2010 adems, con motivo de la Exposicin

-4-
Universal de Shanghai, cuatro furgonetas elctricas realizaron el mantener la distancia de seguridad con el vehculo de delante,
primer viaje intercontinental sin conductor, saliendo desde Italia y ajustando automticamente la velocidad del vehculo. Si el
alcanzando China. vehculo de delante frena, el sistema ACC hace que el vehculo
reduzca la velocidad para mantener la distancia de seguridad y,
cuando el otro vehculo vuelve a acelerar, automticamente el
sistema ACC acelera hasta una velocidad programada.
Actualmente la mayora de sistemas funcionan para una gama de
velocidades limitada y el objetivo de la iniciativa es hacer que el
sistema funcione a cualquier velocidad, incluso que sea capaz de
detener el coche por completo si la situacin lo requiere.

3. EL COCHE INTELIGENTE
Los problemas derivados de incremento del trfico en Europa,
tales como congestin en las redes de carreteras y reas urbanas,
el dao al medio ambiente y a la salud pblica, el incremento del
gasto energtico y el elevado nmero de accidentes (40.000
personas mueren al ao en las carreteras europeas) han llevado a
la Comisin Europea a lanzar una iniciativa en favor del coche
inteligente para impulsar su implantacin en los nuevos coches
europeos. Entre los objetivos que persiguen alcanzar con los
nuevos sistemas inteligentes estn aumentar la seguridad,
ayudando a los conductores a prevenir o evitar accidentes y
mitigando las consecuencias de stos, y reducir el gasto Figura 4. Sistema de control de crucero adaptativo (ACC)
energtico, facilitando a los conductores informacin en tiempo Aunque los sistemas ACC ms comunes estn basados en
real sobre el estado del trfico para evitar zonas congestionadas y detectores radar, existen tambin sistemas basados en lser,
optimizando el funcionamiento del motor para mejorar la aunque stos tienen la limitacin de no detectar correctamente al
eficiencia energtica global. coche de delante en caso de condiciones meteorolgicas adversas.
La iniciativa europea, i2010 Intelligent Car Initiative, presenta Los sistemas ACC son infraestructuras totalmente independientes
una serie de tecnologas en las que se est trabajando o ya estn y no necesitan de ninguna seal satlite para funcionar. Sin
disponibles para los usuarios, y que se clasifican en tres embargo, estos sistemas pueden aprovechar tambin las seales
categoras: sistemas de ayuda a la conduccin, sistemas GPS para realizar mejores estimaciones. Por ejemplo, si el
cooperativos para la seguridad en carretera y sistemas basados en vehculo de delante frena no por congestin del trfico sino
localizacin para la seguridad en carretera. porque se aproxima a una salida de la autopista, en lugar de frenar
como el sistema ACC convencional hara, gracias a la seal de
3.1 Sistemas de ayuda a la conduccin GPS que avisa de que el otro coche tomar la prxima salida, el
coche mantendra su velocidad normalmente.
Los sistemas de ayuda a la conduccin buscan en ltima instancia
Existen multitud de fabricantes que incorporan el sistema ACC
ayudar al conductor a evitar accidentes o a mitigar el dao
parcialmente (es decir, requieren la intervencin del conductor a
causado por estos. Son los sistemas conocidos como eSafety a
partir de cierta velocidad), aunque BMW, Mercedes-Benz, Volvo
bordo. A continuacin, vamos a analizar con ms detalle algunas
y Audi ya cuentan con modelos que incorporan sistemas ACC
de las tecnologas ms interesantes relacionadas con estos
capaces de detener al vehculo por completo.
sistemas:
La nueva generacin de sistemas ACC incluir tambin
3.1.1 Sistema antibloqueo de frenos (ABS) informacin facilitada por el coche de delante, en lo que se
Como su propio nombre indica, el sistema antibloqueo de frenos conoce como sistemas cooperativos. Pero para ello, har falta un
(ABS) evita que las ruedas se bloqueen cuando el conductor pisa acuerdo entre los distintos fabricantes y la estandarizacin del
el freno. Esto se consigue modulando automticamente la presin sistema para la correcta comunicacin entre vehculos.
ejercida sobre la rueda gracias a una bomba que se incorpora a los
circuitos del lquido de freno y a unos detectores que controlan las 3.1.3 Asistente de cambio de carril / Detector de
revoluciones de las ruedas. Cuando los sensores detectan una punto muerto
reduccin repentina en las revoluciones de las ruedas (debida a Estos sistemas controlan en todo momento los puntos traseros del
una frenada brusca), interpreta que las ruedas estn a punto de vehculo que quedan fuera del alcance de la vista del conductor.
bloquearse, por lo que envan una seal al Mdulo de Control del Cuando el conductor pretende cambiar de carril y acciona la luz
sistema ABS, el cual reduce la presin ejercida sobre los frenos intermitente, el sistema se activa y, en caso de que los sensores
(sin intervencin del conductor). El sistema ABS se emple por detecten que hay otro vehculo que el conductor no ha podido ver,
primera vez en los aos 70 y es uno de los sistemas inteligentes avisa del peligro de choque mediante una seal luminosa o
ms extendidos en la actualidad. mediante vibracin en el volante.

3.1.2 Control de crucero adaptativo (ACC) 3.1.4 Sistema de control y alerta antisueo
Este sistema cuenta con un detector radar de gran alcance, un El sistema de control y alerta antisueo entran dentro de lo que
procesador de seales y un control longitudinal del vehculo para comnmente se conoce por sistema de monitorizacin del

-5-
conductor, y se encargan de analizar la atencin del conductor informacin de la zona alrededor del ojo y tambin ngulos de
sobre la carretera y detectar la somnolencia del mismo de posicionamiento de la cabeza. Con esta informacin, el sistema es
diferentes formas: atendiendo a las expresin facial, los capaz de calcular si la mirada se est fijando en la carretera o no,
movimientos de manos y pies, analizando el parpadeo y la aplicando geometra y una serie de mrgenes donde la mirada
posicin de la cabeza o incluso las alteraciones del ritmo cardiaco. debera estar situada, y tambin, de los gestos de la cara,
Cuando el sistema, mediante alguna combinacin de los factores comparando con modelos que la mquina haya aprendido o
anteriores, entiende que el conductor est durmindose o contenga de fabricacin, detectar sntomas de fatiga.
distrayndose de la conduccin, alerta al mismo mediante una En la Figura 5 podemos ver los puntos que emplea un modelo de
seal acstica, una fuerte seal luminosa o, en algunos vehculos, Nissan para detectar sntomas de fatiga. El sistema monitoriza la
tirando del cinturn de seguridad para con la presin captar su posicin de determinadas zonas de la cara que, cuando superan un
atencin. umbral una serie de puntos, se considera que el conductor est
dormido y se activan los sistemas de alerta.

3.1.5 Sistema de proteccin de peatones y usuarios


vulnerables de la va pblica

Los primeros modelos, de la mano del fabricante Lexus,


monitorizaban la posicin exacta y el ngulo de la cabeza del
conductor mientras el coche estaba en marcha. Si el sistema de
alerta de colisin (directamente relacionado con ste) detecta un
obstculo delante del coche, y el sistema de monitorizacin

Figura 5. Sistema de monitorizacin del conductor


observa que la cabeza del conductor se ha mantenido fuera de la
atencin de la carretera demasiado tiempo, se activan los sistemas
de aviso para evitar el choque. Toyota fue ms all e implant un
sistema en el Toyota Crown de 2008 que era capaz de detectar si
el conductor se dorma analizando el movimiento de las pestaas.
Los nuevos modelos son ms ambiciosos. Gracias a las imgenes
tomadas por la cmara, es posible realizar un seguimiento del
movimiento de los ojos. La tcnica conocida como eye tracking
en ingls evala el punto donde se fija la mirada o tambin el Figura 6. Sistema de deteccin de peatones
movimiento del ojo en relacin con la cabeza. Los ltimos Aunque an no haya implementaciones en esta materia, s hay un
modelos de Mercedes-Benz monitorizan el nivel de fatiga y especial inters en el seno de la iniciativa i2010 por impulsar un
somnolencia del conductor aplicando esta tcnica. sistema de proteccin de peatones y ciclistas. La idea de partida
Las cmaras que se utilizan para eye tracking contienen un sensor de este sistema es similar a la que se viene empleando para evitar
CCD con diminutas clulas fotoelctricas que registran la imagen, colisiones con otros vehculos. Se tratara de instalar una serie de
cuyo nmero determina la resolucin de la imagen. El sistema de sensores de diferentes tipos que vigilen la zona delantera del
deteccin por tanto funciona enviando una seal infrarroja que se vehculo y alerten de la presencia de usuarios vulnerables.
refleja en los ojos del conductor y se captura por el sensor ptico. El sistema integrara un control para accionar de forma automtica
Generalmente, se suelen emplear la seal reflejada en la crnea y el sistema de frenado para poder evitar la colisin. En caso de que
en el centro de la pupila para realizar el seguimiento de la visin la colisin fuese inminente y no pudiera evitarse, el sistema
del conductor. accionara nuevos elementos de seguridad pasiva del coche, por
En estos sistemas, es fundamental que no slo se analice el ojo en ejemplo airbags en el parachoques, elevacin del cap del coche,
s (como por ejemplo en los sistemas de reconocimiento de retina) etc., que disminuyesen el riesgo de lesiones graves de las
sino en la direccin de la mirada. Por ello, adems de analizar las vctimas.
seales reflejadas en la zona del ojo (para poder detectar tambin La Figura 6 representa las mediciones realizadas por la tecnologa
parpadeos o si el ojo est cerrado) es importante almacenar implementada por el proyecto de coche inteligente de la

-6-
Universidad Carlos III de Madrid. El sistema analiza no slo 3.1.8 Sistema de reconocimiento de seales de
todos los peatones que rodean al vehculo sino que tambin debe trfico
tener en cuenta los movimientos de stos para poder determinar
La deteccin de seales puede ser til para alertar al conductor de
quienes pueden presentar un problema de colisin con el
posibles seales que se le escapen a la vista, pero es muy
automvil.
importante para los coches autnomos. El sistema de
reconocimiento de seales se basa tambin en la visin artificial
para, dada una serie de imgenes tomadas desde la parte frontal
del coche hacia la carretera, es capaz de distinguir e interpretar
Especial inters recibe esta tcnica no slo como un sistema de
distintas seales de trfico.
alerta del cambio involuntario del carril, sino por ser una tcnica
que tambin ser til en el diseo del coche autnomo. Se trata de La localizacin de las seales no es trivial, ya que hay que
un sistema que vigila la posicin del vehculo dentro de un carril emplear modelos geomtricos que tengan en cuenta el color y la
y, en caso de que el conductor se salga o est prximo a salirse y forma y debe funcionar ante condiciones luminosas muy diversas.
el conductor no haya activado el intermitente, avisarle o, en los Adems, el diseo de las seales no est totalmente estandarizado,
modelos ms autnomos, corregir la posicin del vehculo y las seales antiguas y modernas son bastante diferentes.
automticamente hasta que el coche est posicionado
correctamente dentro del carril. Los sistemas que simplemente
3.1.9 Otros sistemas
alertan al conductor se conocen como LDW (lane departure Existen otras tecnologas recogidas en el proyecto europeo sobre
warning) mientras que los que corrigen automticamente la sistemas de ayuda a la conduccin que slo vamos a mencionar
posicin se conocen como LKS (lane keeping system). sin entrar en ms detalle:
Luces autoadaptables
Sistemas electrnicos de asistencia en la frenada
Control electrnico de estabilidad
Indicador de cambio de marcha
Sistemas de control de presin de neumticos

3.2 Sistemas cooperativos para la seguridad


en carretera
Ms all de la asistencia individualizada, los nuevos modelos
deben ser capaces de interactuar y comunicarse. El automvil
pasara a ser un elemento de una red de comunicaciones y se
podra gestionar la red de una forma eficiente, como ocurre con
Figura 7. Sistema de aviso de cambio involuntario de carril las redes de telecomunicaciones. Con la cooperacin entre
Los sensores empleados por estos sistemas se basan en sistemas vehculos, la iniciativa europea pretende obtener una mayor
de vdeo (montados detrs del parabrisas para tener una visin eficacia del transporte, maximizando la eficiencia de uso de las
general en ngulo de los lmites del carril), sensores lser (en la infraestructuras disponibles, y adems mejorar la seguridad. A
parte delantera del vehculo) y sensores infrarrojos (detrs del continuacin se detallan algunas tecnologas relacionadas.
parabrisas o bajo el coche). 3.2.1 Gestin dinmica del trfico
Los primeros modelos, como el Citren de 2005, empleaban Los paneles de sealizacin variable, o paneles luminosos, que
infrarrojos para monitorizar las lneas pintadas en la carretera. actualmente estn desplegados por las carreteras de toda Europa,
Cuando los sensores detectaban la presencia de la lnea divisoria, ayudan al conductor a conocer en tiempo real el estado de las
alertaban al conductor para que corrigiera la direccin. carreteras y ofrecen informacin sobre rutas alternativas en caso
Audi por su parte, desarrolla en 2007 un sistema basado en una de accidente. Los mensajes de obligatoriedad, de aviso de peligro
videocmara de espectro visible situada en el frontal del coche, y o informativos que actualmente se envan a travs de los paneles
que captura imgenes en el ngulo de visin del conductor para de sealizacin pueden ser enviados a un receptor situado en el
estimar el carril. Adems, incorpora ya un sistema en la direccin interior del vehculo, facilitando la llegada de informacin til al
que vibra en caso de salirse del carril, corrigiendo usuario sin necesidad de que ste tenga que llegar a la carretera
automticamente la direccin para que el vehculo retorne al que se encuentra con problemas de trfico para conocer su estado.
carril. Muchos GPS ya disponen de esta funcionalidad de controlar el
estado de las carreteras. Pero en la actualidad no deja de ser un
3.1.7 Visin nocturna sistema meramente informativo. En una red futura, en la que los
Para aumentar la capacidad visual del conductor durante la noche, coches cooperan entre s para una gestin eficiente del trfico, la
se incorporan al vehculo un sistema de visin nocturna basado en decisin de ruta debera gestionarse por elementos enrutadores
infrarrojos, con un alcance similar al de las luces largas. El (similares a los routers de las redes de ordenadores) y as evitar
sistema no deslumbra, pues se trata de luz infrarroja, y la escena que ciertas zonas se congestionen.
iluminada se le muestra al conductor en una pantalla especial,
siendo capaz de percibir ste mejor posibles obstculos o 3.2.2 eCall
vehculos distantes, adelantndose a situaciones peligrosas y as El sistema eCall incorporara a la red de comunicaciones de
poder reaccionar con mayor rapidez. coches a los servicios de urgencia. En caso de accidente, el

-7-
sistema establecera una conexin de voz con el servicio de Todas estas medidas se recogen en la iniciativa eSafety, impulsada
emergencias 112, enviando la hora y lugar del accidente, las por la Comisin Europea para mejorar la seguridad en la carretera.
caractersticas del vehculo afectado o incluso facilitar
informacin adicional sobre el conductor si fuese necesario
ponerse en contacto con los familiares. El ahorro de tiempo en 4. AUTOCONDUCCIN
atender la emergencia supondra salvar la vida de muchos Las mismas tecnologas que asisten al conductor en los coches
afectados en accidentes que mueren debido a que no es posible inteligentes, se toman desde una nueva perspectiva en los modelos
atenderles a tiempo. de coches autnomos. La tcnica es la misma; la filosofa cambia.
En lugar de alertar al conductor para que reaccione, por qu no
reaccionar autnomamente sin intervencin del conductor? Con
Uno de los puntos negros en los que ms accidentes se producen esta idea se empieza a trabajar en el coche sin conductor,
es en las intersecciones. La iniciativa de la Comisin tambin aplicando estas tecnologas y delegando toda la funcionalidad del
plantea actuar de forma cooperativa entre vehculos para aumentar conductor sobre la inteligencia artificial del vehculo.
la seguridad en los cruces. Para ello, se proponen dos sistemas. El
primero, aviso de preferencia, que indique al conductor que ceda En la actualidad existen ya varios modelos de vehculos
el paso a la derecha en una pantalla y, en caso de que el conductor autnomos que funcionan sin problemas sin la necesidad de un
no reaccione, avisarle del peligro de colisin. El segundo, conductor. En este documento vamos a analizar dos proyectos
asistente de semforos, recibira la informacin del semforo concretos: el modelo de Google, por ser el que ms atencin est
inalmbricamente para que el coche adece la velocidad y poder acaparando en el sector de los vehculos autoconducidos, y el
cruzarlo en verde. modelo que estn desarrollando investigadores de la Universidad
Carlos III de Madrid, por ser parte de nuestra universidad.
3.2.4 Sistema de aviso de obstculo o colisin
Las soluciones que actualmente hay implementadas sobre la 4.1 El coche sin conductor de Google
deteccin de obstculos son una extensin del sistema de control El proyecto que presenta Google en el mbito del coche autnomo
de crucero adaptativo: utilizan tambin informacin obtenida por est liderado por el ingeniero Sebastian Thrun, director del
detectores radar y generan avisos acsticos y visuales para alertar laboratorio de inteligencia artificial de la Universidad de
al conductor de un peligro inminente. Standford y coinventor de sistema Google Street View. El mismo
grupo de desarrollo de este prototipo ya gan en 2005 un premio
Sin embargo, hacia lo que se est caminando es a utilizar en un
del Departamento de Defensa norteamericano gracias al vehculo
futuro radares de largo y corto alcance, sistemas LIDAR y
robtico Stanley. Los coches sin conductor de Google son legales
procesado de imgenes de vdeo en la deteccin, y contar con un
en el estado de Nevada desde junio de 2011, convirtindose en el
sistema de frenado automtico, capaz de frenar a mxima
primer estado que permite la circulacin de vehculos autnomos
potencia, preparar los airbags o tensar los cinturones de seguridad
y convirtiendo al proyecto de Google como pionero en la
en caso de una colisin inminente.
comercializacin de estos modelos.
Los sistemas LIDAR (Laser Imaging Detection and Ranging) que
se mencionan se posicionan como la tecnologa de deteccin del
futuro ms inmediato y es la tecnologa que emplean por ejemplo
las pistolas lser de la polica para determinar la velocidad de los
vehculos que circular en el trfico rodado. Estos sistemas
determinan distancias entre un emisor lser y un objeto utilizando
haces lser pulsados y midiendo el tiempo de retardo entre la
emisin del pulso y la deteccin de la seal reflejada (igual que el
radar pero con ondas de luz en vez de radio).
Entre las principales ventajas del LIDAR sobre el radar estn: es
mucho ms rpido; los haces de luz divergen menos que los de
ondas sonoras, que se dispersan y rebotan en el entorno, y por
tanto son ms precisos en deteccin; son ms econmicos; puede
funcionar tambin de noche; y es ms fcil de transportar y
mantener.

3.3 Sistemas basados en la localizacin para Figura 8. Toyota Prius modificado para operar como
la seguridad en carretera Google driverless car
En el apartado anterior ya se presentaba la tecnologa eCall en El sistema de Google combina informacin obtenida directamente
materia de comunicar a los servicios de emergencias la posicin de Google Street View con software de inteligencia artificial.
exacta del lugar donde se ha producido un accidente en carretera. Cuenta con diversos sensores: videocmaras dentro del vehculo
Adems de este sistema, existen tambin proyectos que trabajan (que permiten controlar el movimiento del vehculo y detectar
con mapas de a bordo como sensores de posicin para (al igual peatones, ciclistas y semforos), un sensor LIDAR en el cap del
que se utiliza el sensor radar para detectar obstculos u otros coche (que permite al vehculo detectar a ms de 60 m en todas
vehculos) predecir donde estar el coche momentos despus, las direcciones y as crear un mapa 3D para el vehculo), sensores
pudiendo prever que le suceder cuando llegue a dicho punto, si radar en la parte delantera un sensor de posicin adherido a una
hay algn corte de trfico, o algn otro imprevisto en la carretera. de las ruedas traseras y que ayuda a localizar la posicin del coche
en la carretera. Los vehculos adems circulan a la velocidad
indicada por los mapas proporcionados por Google y lleva

-8-
instalado un sistema de control de distancias con sensores para Sistema de control del conductor: midiendo parpadeo
evitar colisionar con el vehculo delantero. de los ojos, movimiento de la cabeza y apertura de la
boca para detectar el grado de atencin.
Sistema de reconocimiento de seales de trfico:
emplean Algoritmos Genticos y Templado Simulado
como algoritmos de bsqueda para encontrar las seales
presentes en las imgenes captadas por una cmara a
color.
4.2 El proyecto de la UC3M
La Universidad Carlos III de Madrid cuenta con un proyecto Sistema de control de velocidad variable: el
propio en la carrera por el vehculo autnomo. El proyecto cuenta reconocimiento del vehculo delantero se realiza
con 3 modelos de vehculos: el IVVI, el iCab y el IVVI 2.0. mediante anlisis de imgenes en lugar de por sensores
radar. El sistema se fusiona con el mdulo de deteccin
de carriles para delimitar la bsqueda.
La segunda versin, el IVVI 2.0, mejora el diseo del vehculo e
incorpora como novedad que los sistemas de ayuda a la
conduccin slo informan al conductor cuando ste est en una
situacin real de peligro. Adems se incorpora una sonda CAN-
bus (que obtiene informacin del funcionamiento del vehculo) as
como un sistema GPS-IMU (que informa sobre posicin y
velocidad del vehculo) para determinar el estado del vehculo.
El tercer vehculo, el iCab, es un pequeo vehculo elctrico de
golf que es controlado por un ordenador embarcado. La funcin
de estos vehculos ser llevar de forma autnoma a los visitantes
del Campus, por lo que la autonoma estar limitada al entorno del
Campus y a entornos previamente conocidos.

Figura 9. Vehculo Inteligente basado en Informacin Visual


(IVVI). Universidad Carlos III de Madrid
5. EL FUTURO DEL COCHE
En este documento se ha pretendido hacer un recorrido por las
El IVVI (acrnimo en ingls de Vehculo Inteligente basado en distintas tecnologas que se estn empleando en construir los
Informacin Visual) es el homlogo al coche desarrollado por coches del futuro hoy. Sin embargo, aunque ya haya muchos
Google. Cuenta con un sistema estreo blanco y negro, con modelos que incorporen tecnologa inteligente y ya estn
cmaras de barrido progresivo para poder captar imgenes en circulando vehculos sin necesidad de conductor, an queda
movimiento y evitar as los problemas inherentes al vdeo mucho camino por recorrer.
entrelazado, adems de una cmara a color para otros temas cmo
la deteccin de seales de trfico. Para detectar obstculos como En la lnea de la iniciativa europea, considero que, una vez
peatones u otros vehculos en condiciones de visibilidad adversas, perfeccionadas las tcnicas que hacen que un vehculo sea capaz
cuenta con una cmara de infrarrojo lejano capaz de distinguir de conducirse slo, sin necesidad de una figura humana, hay que
objetos por el calor desprendido. En cuanto al interior, el sistema trazar un plan para que los vehculos cooperen entre ellos. Del
cuenta con tecnologa de monitorizacin del estado del conductor, mismo modo que una a persona que entiende la mecnica del
empleando para ello una cmara infrarroja. El cerebro del coche coche no le es suficiente para circular por carreteras con trfico,
viaja en el maletero, en donde se hayan dos PC encargados del sino que tiene que aprender el reglamento de circulacin, el coche
procesamiento de los sistemas de visin por computador. Para autnomo tiene que ir a la autoescuela. Es decir, el coche que se
conocer el estado del vehculo, ste incorpora adems un sistema conduce slo debe tambin saber conducirse en compaa de otros
GPS. coches.
Entre las tecnologas que se incorporan en este proyecto estn: El perodo que se abre para los prximos aos, en el que
convivirn vehculos autnomos y vehculos tradicionales, se
Sistema de alerta ante el alejamiento involuntario del
debe prestar especial atencin en que los vehculos autnomos
carril: se trabaja con imgenes que simulan una vista
comprendan la inexactitud del conductor humano y, del mismo
area de la va y se acompaan de algoritmos de
modo, lanzar un sistema de gestin de vehculos autnomos que
calibracin automtica. Se distinguen los carriles por la
permita la cooperacin entre los distintos automviles. Como ya
discontinuidad de los niveles de gris de la imagen.
adelantaba anteriormente, uno de los objetivos finales es la
Sistema de deteccin de peatones: dada la enorme eficiencia, entendida no slo como el eficiente uso de los recursos
diversidad de apariencia de los peatones y los cambios energticos del automvil sino tambin la gestin eficiente de las
en la forma de estos entre imgenes sucesivas, se infraestructuras: las redes de carreteras. Y entendindolas como
emplea un algoritmo basado en los Contornos Activos tales redes y aplicando un modelo similar al de las redes de
(tcnica empleada para delinear el contorno de un ordenadores, en las que una serie de sistemas se encargan de
objeto en una imagen 2D ruidosa), inicializados con los gestionar el trfico, se podra en un futuro algo ms lejano-
resultados de un sistema estreo y teniendo en cuenta la construir redes de carreteras inteligentes, donde los coches
simetra de las formas de los peatones. autnomos sean enrutados como los paquetes en los routers.

-9-
6. REFERENCIAS [7] Wikipedia. 2011. The history of the automobil. Artculo
colectivo.DOI=http://en.wikipedia.org/wiki/History_of_the_
automobile (ltima visita noviembre 2011)
[1] Direccin General de Trfico (DGT). 2011. Accidentalidad
mortal en carretera. Informe oficial. Ministerio del Interior, [8] Wikipedia. 2011. Vehicle Automation. Artculo colectivo.
Espaa. DOI=http://en.wikipedia.org/wiki/Vehicle_Automation
DOI=http://www.dgt.es/was6/portal/contenidos/documentos/ (ltima visita noviembre 2011)
seguridad_vial/estadistica/accidentes_24horas/resumen_anua [9] Comisin Europea, Sociedad de la Informacin y Medios.
l_siniestralidad/resumen_siniestralidad037.pdf (ltima visita 2010. i2010 Intelligent Car Initiative. Publicacin Oficial.
noviembre 2011). DOI=http://ec.europa.eu/information_society/activities/intelli
[2] European Transport Safety Council (ETSC). 2010. 2010 gentcar/index_en.htm (ltima visita noviembre 2011)
Road Safety Target Outcome:100,000 fewer deaths since [10] Wikipedia. 2011. Autonomous cruise control system.
2001. 5th Road Safety PIN Report. Unin Europea. Artculo colectivo.
DOI=http://www.etsc.eu/documents/pin/report.pdf (ltima DOI=http://en.wikipedia.org/wiki/Autonomous_cruise_contr
visita noviembre 2011). ol_system(ltima visita noviembre 2011)
[3] Organisation Internationale des Constructeurs dAutomobiles [11] Wikipedia. 2011. Driver monitoring system. Artculo
(OICA). 2010. 2010 Production Statistics. Informe oficial. colectivo.
DOI=http://oica.net/category/production-statistics/ (ltima DOI=http://en.wikipedia.org/wiki/Driver_Monitoring_Syste
visita noviembre 2011). m (ltima visita noviembre 2011)
[4] Direccin General de Trfico (DGT). 2009. Anuario [12] Lexus. 2011. Driver Monitoring System. Catlogo de
Estadstico General 2009. Informe oficial., Ministerio del prestaciones. DOI=http://www.lexus.eu/range/ls/key-
Interior. Espaa. features/safety/safety-driver-monitoring-system.aspx (ltima
DOI=http://www.dgt.es/was6/portal/contenidos/documentos/ visita noviembre 2011)
seguridad_vial/estadistica/parque_vehiculos/series_historicas [13] Wikipedia. 2011. Google driverless car. Artculo colectivo.
_parque/series_historicas_parque.pdf (ltima visita DOI=http://en.wikipedia.org/wiki/Google_driverless_car
noviembre 2011). (ltima visita noviembre 2011)
[5] Wikipedia. 2011. Automobile. Artculo colectivo. [14] Universidad Carlos III de Madrid. 2010. Sistemas
DOI=http://en.wikipedia.org/wiki/Automobile (ltima visita Inteligentes de Transportes. Sitio Web.
noviembre 2011). DOI=http://www.uc3m.es/portal/page/portal/dpto_ing_siste
[6] Wikipedia. 2011. Autonomous car. Artculo colectivo. mas_automatica/investigacion/lab_sist_inteligentes/sis_int_tr
DOI=http://en.wikipedia.org/wiki/Autonomous_car (ltima ansporte/ (ltima visita noviembre 2011).
visita noviembre 2011)

- 10 -
SISTEMAS EXPERTOS: MYCIN
Ainhoa Sesmero Fernndez Sandra Pinero Snchez
Estudiante Ing. Telecomunicacin Estudiante Ing. Telecomunicacin
Universidad Carlos III de Madrid Universidad Carlos III de Madrid
Avda. De la Universidad, 30 Avda. De la Universidad, 30
28911, Legans (Madrid-Espaa) 28911, Legans (Madrid-Espaa)
100066696@alumnos.uc3m.es 100067654@alumnos.uc3m.es

RESUMEN lo general, los expertos solucionan los problemnas de su


especializacin basndose en la experiencia. Muy sucintamente,
En este documento se explica lo que es un sistema esta experiencia consta de conocimientos de hechos y de
experto, sus principales usos y en concreto hablaremos del sistema soluciones de problemas. Con el desarrollo de los Sistemas
MYCIN. Uno de los primeros sistemas expertos para la deteccin Expertos se pretende estructurar este conocimiento de hechos y
y tratamiento de enfermedades de la sangre. soluciones de problemas de tal forma, que sean almacenados en
un ordenador y procesables por un programa. Por lo tanto, los
Sistemas Expertos son programas para ordenador, en los que se
Categorias y Descriptores de Temas han reflejado conocimientos humanos. Pero ya que el
conocimiento humano es extremadamente complejo, tenemos que
limitarnos, en estas imitaciones tcnicas a campos
[Inteligencia artificial]: Sistemas expertos (SE) y especializados muy delimitados.1
aplicaciones en medicina.
Se puede dividir los componenetes de un sistema
Terminos Generales experto en tres subsistemas direfentes: base de conocimientos,
motor de inferencias e interfase. (ver figura 1)
Algoritmos, medidas, documentacin, diseo, factores
humanos y teora.

Palabras clave

Sistema expertos, MAYCIN, medicina, organismos,


conocimiento.

1. INTRODUCCIN

Los sistemas expertos son programas que emulan el


comportamiento de un experto, como su propio nombre indica.
Estn desarrollados en un entorno de tal forma que son capaces de
gestionar la propia base de datos de conocimiento, resolver un Figura 1
problema especfico, producir nuevos conocimientos y explicar su
razonamiento.
Existen tres tipos de sistemas expertos principalmente.
MYCIN fue el primer sistema experto que llego a Estn los llamados basados en reglas, los basados en casos y
funcionar con la misma calidad que un experto humano. Muchos los basados en redes bayesianas. En el conjunto de sistemas
de los sistemas posteriores utilizaron MYCIN para comparar lo expertos basados en reglas nos encontramos con MYCIN del que
que era un sistema experto. hablaremos ms adelante, pero tambin nos encontramos con
MYCIN era un sistema estrictamente para investigacin, DENDRAL que fue el primer sistema experto utilizado para
fue desarrollado para ayudar a los mdicos en el diagnstico y propsitos reales y la inspiracin de MYCIN.
tratamiento de meningitis y enfermedades bacterianas como
explicaremos a lo largo de este documento.
2.1 Base del Conocimiento
2. SISTEMAS EXPERTOS
En ella se representan todos los conocimientos acerca
Por tener ms definiciones de sistemas expertos, unida a de un dominio concreto. Puesto que el ordenador no posee dichos
la anterior podemos decir de forma ms rigurosa: Los Sistemas
Expertos son programas que simulan el comportamiento de los 1
NEBENDAHL, D.,Sistemas Expertos, Vol. 2, Marcombo. Barna., 1991.
sistemas expertos humanos a la hora de resolver problemaas. Por p. 1.

- 11 -
conocimientos es necesario que sean introducidos por un experto la base del conocimiento y controla de forma estratgica la el
humano en el tema en cuestin. sistema de conocimiento.
Adems de utilizar la base del conocimiento el motor de
Ya que como su nombre indica es la base, es necesario inferencias tambin hace de controlador de la consulta del usuario
que las reglas establecidas sean lo ms clara posibles para evitar y decide el orden en el que se hacen las inferencias.
ambigedad, eficiencia, que se facilite la deduccin a la maquina
por inferencia, y fuerza de expresin para definir de forma
adecuada y completa todos los elementos del universo del tema 2.3 Interfase
elegido.
Como vemos por lo descrito anteriormente, es Se encarga de proporcionar el usuario una interfaz lo
complicado traducir a un lenguaje todos los conocimientos de un mas amigable posible para poder interactuar con el sistema
experto humano de forma que pueda entenderlo y reflexionar experto de una forma fcil y sencilla. Recordemos que lo que
sobre ellos como si del humano mismo se tratara y para el cual hacemos es solucionar problemas como lo solucionara un
muchos de sus actos son de forma intuitiva. experto, con esto se ayuda a las personas y usuarios del sistema,
no queremos que le sea ms difcil y complicada su utilizacin.
Qu se le pide o que se le podra pedir a un experto
humano? Esta interfase se encargara de gestionar las entradas y
salidas al sistema experto.
- Habilidad para llegar a una solucin de la forma
ms rpida posible y a poder ser de forma certera.
Para que sea de una forma rpida y certera 2.4 Ventajas y desventajas de los SE
obligamos al experto, no solo a que sepa en que
campo se mueve si no, que tenga experiencia en el.
- Habilidad para explicar a las personas que no
2.4.1 Ventajas de los SE
cuentan con ese conocimiento o esa experiencia los
resultados obtenidos.
Los sistemas expertos tienen multitud de ventajas, entre ellas
- Habilidad de poder reestructurar el conocimiento
podemos ver:
para que se adapte a las circunstancias.
- Habilidad para poder aprender de las experiencias.
Los expertos deben aprender de sus experiencias - Un sistema experto puede replicarse tantas veces
propias, pero adems tambin de las de los dems. queramos. Una vez que un SE ha sido creado podemos
Esto implica que un experto debe estar al da en replicarlo y usarlo por donde queramos.
cuanto a sus conocimientos. - Por causa de su replica su coste a largo plazo es bajo.
Aun que inicialmente crearlo puede ser caro, al poder
ser replicado su coste a largo plazo es bajo.
2.1.1 Tipos de Conocimiento
- Los SE no se ven afectados por la edad, o el entorno
que les rodea como los seres humanos por lo que
Existen tres tipos de conocimiento para construir un sistema tambin es una ventaja a considerar.
experto:
Reglas
2.4.2 Limitaciones de los SE
Declaraciones estructuradas en forma de oraciones
condicionales.
En cuanto a sus limitaciones podemos hablar de:
Estructuras
Contienen jerarqua de componentes y de atributos
- El lenguaje es algo problemtico. Con un humano
objeto que pueden ser asignados heredados de otras
podemos conversar y explicarnos mejor, con un SE lo
estructuras a travs de diversos procedimientos.
que hay esta en sus reglas y no podemos usar
Lgica explicaciones, aclaraciones, gestos
Son expresiones con predicados, valores y tomos para - Es difcil que un SE aprenda de sus errores. Para un ser
evaluar hechos del mundo real. humano la experiencia, los errores y los aciertos hace
que vaya mejorando, en un SE esto es difcil de
conseguir.
2.2 Motor de Inferencias - Perspectiva global. Un experto humano es capaz de
separar los datos realmente relevantes de los
El motor de inferencia lo que hace es decidir, interpretar irrelevantes, un SE no. Y a estos podemos aadirle que
y aplicar el conocimiento que se ha obtenido de la base del no estn abiertos a nueva fuente de datos para ver como
conocimiento a la base de los hechos para poder as obtener la se puede resolver un problema ya que sus datos estn
solucin adecuada, o dicho de otra forma, es el encargado de programados.
hacer uso de los hechos y las reglas que el experto ha integrado en - Elevado coste y tiempo.

- 12 -
2.5 Aplicaciones Primero es necesario concluir si el paciente tiene una
infeccin significativa.
A continuacin hay que establecer al o los posibles
En el siguiente cuadro podemos observar algunas de las organismos involucrados.
reas en las que los sistemas expertos tienen aplicacin.
Despus escoger el conjunto de antibiticos que puedan
ser necesarios.
Por ltimo elegir el antibitico.

Sin embargo dicho proceso no es nada fcil. Esto se


debe a que el cuerpo humano est normalmente poblado por
bacterias. Se toma del paciente las muestras necesarias
realizndole un cultivo. Por lo que el diagnstico inicial se base
en criterio clnico, fiebre y dolor.
Los resultados de las pruebas pueden tomar de 24 a 48
horas o ms. Una vez que el mdico dispone de los resultados
debe elegir el tratamiento basndose en:

Veamos algunos ejemplos: Posibles identidades del organismo.


La probabilidad efectiva del agente antimicrobiano
- En el campo de la medicina tenemos varios como contra este rango de posibilidades.
DENDRAL, MYCIN o PUFF. De entre ellos el ms
famoso es MYCIN del que hablaremos en el siguiente
apartado. Una vez que el mdico dispone de los resultados del
cultivo debe de decir que tratamiento hay que aplicar al paciente.
- En el campo de la programacin tenemos sistemas como
Sin embargo, este tratamiento puede tener diferentes sntomas o
EURISKO, sistema que es capaz de aprender a medida
efectos en cada paciente con lo que es necesario cambiarle el
que funciona y crear circuitos microelectrnicos
tratamiento.
tridimensionales.
Por otra parte, es evidente que el mdico necesite ayuda
- Sistemas militares tenemos TWIRL, que simula guerras
con la seleccin antimicrobiana. Con lo que el problema se
completas y gua de mejores accionas para realizar en
contina aunque haya habido intentos para educar a los mdicos;
casi todas las situaciones.
pocos parecen ir a travs del proceso metdico de decisin. La
- En la industria podemos ver RI, Programa utilizado para sobre-prescripcin en EEUU durante los aos 70 fue estimado
el descubrimiento de yacimientos petrolferos bajo con un factor de 10 a 20, con lo que el coste anual para pacientes
aguas marinas. y hospitales es monumental. Asimismo, la sobre-prescripcin
- En el mbito econmico tenemos el TRADING, una puede resultar en el desarrollo de cepas bacterianas resistentes.
serie de reglas matemticas bien estructuradas en las El objetivo de MYCIN es asistir al doctor, el cual no
que se basan las operaciones en bolsa. tiene por qu ser experto en el rea de los antibiticos con el
- En la geologa encontramos el PROSPECTOR, diagnstico y tratamiento de infecciones sanguneas.
utilizado para hallar yacimientos de minerales. Este sistema experto consta fundamentalmente de tres
componentes:

3. MYCIN 1) Un sistema de consulta entre el programa y el doctor.


Este sistema consiste en realizar una serie de preguntas,
Es un sistema experto desarrollado por Edgar ShortLiffe entrega de conclusiones y dar consejos.
en la Universidad de Stanford a principios de los aos 70. Su 2) Un sistema de explicacin por parte del sistema al
objetivo es el diagnstico de enfermedades infecciosas de la doctor en el cual, ste responde a las preguntas del
sangre. Incluso es capaz de razonar el proceso seguido para llegar mdico y justifica sus propios consejos.
a los diagnsticos y de recetar medicaciones personalizadas a cada
3) Un sistema para conseguir las reglas, agregas nuevas
paciente.
reglas y cambiar las existentes.

3.1 Tratamiento de infecciones sanguneas

Elegir el tratamiento adecuado para una infeccin


bacteriana sigue un proceso de cuatro partes:

- 13 -
si tiene ese paciente algn cultivo pendiente que es nuestro caso.
Entonces MYCIN le dice que necesita conocer la informacin del
cultivo pendiente. El usuario le responde con una serie de datos y
por ltimo le contesta que no hay ningn organismo. Por lo tanto,
el sistema experto no puede sacar conclusiones y sigue planteando
preguntas.
En cierto momento de la consulta llega a esto:

13) Ha presentado David sntomas de cefalea


persistente un otros sntomas neurolgicos
anormales (vrtigo, letargo,)?
S
14) Hay en David alguna evidencia objetiva
reciente de signos neurolgicos anormales
(rigidez de nuca, coma, convulsiones,),
3.2 Sistema de consulta documentados por observacin o examen
clnico?
Esta primera parte del MYCIN consiste en generar el S.
conjunto de hiptesis relacionado con el organismo daoso y de
este modo realizar una serie de recomendaciones de terapias para Hay que destacar que los cultivos LCR (cultivo de
estas hiptesis. Recalcar que MYCIN suele describirse lquido cefalorraqudeo) estn asociados con meningitis.
incorrectamente como un programa de diagnstico mdico; en
realidad es un programa para tratamiento de infecciones Las dos siguientes preguntas representan un enfoque
sanguneas. ms tradicional al diagnstico por sntomas y tras tener la
Para comprender mejor un sistema de consulta a contestacin de la pregunta 14, MYCIN informa de su primera
continuacin se muestra un ejemplo: conclusin: la infeccin del LCR es probablemente meningitis.

Primero MYCIN necesita cuatro datos del paciente ya Despus contina con otra tanda de preguntas para
que son esenciales para cualquier diagnstico. Una vez que identificar el organismo concreto causante de la infeccin
dispone de ellos realiza una serie de preguntas para conocer la meningtica.
disponibilidad del cultivo.
1) Nombre del paciente: 34) La meningitis se ha contrado en el hospital?
David King No
2) Edad: 35) Es la historia clnica de David consistente
34 con Epiglotis?
3) Sexo: No
Varn 36) Es la historia clnica de David consistente
4) Raza con Otitis-media?
Caucasiana No
5) Hay cultivos de David qu puedan estar 37) Ha estado alguna vez el paciente en una zona
relacionados con su enfermedad actual, en los endmica de coccidiomicosis?
que hayan llegado a crecer organismos en el Desconocido
laboratorio de microbiologa? 38) Se ha sometido David a esplenotoma?
No No
6) Hay cultivos pendientes de David? 39) Ha sufrido David quemaduras?
S Si
7) De qu lugar se tom la muestra para el He encontrado evidencia (REGLA 507) de
cultivo? que el tratamiento debe cubrir Diplococcues-
LCR pneumoniae causante de meningitis.
8) Por favor, escriba la fecha y la hora de la toma He encontrado evidencia (REGLA 545) de
del cultivo de LCR pendiente (m/d/a hora) que el tratamiento debe cubrir E. coli causante
Junio/24/84 7:00 de meningitis.
9) Se examin un frotis cuando se obtuvo la He encontrado evidencia (REGLA 545
muestra para el cultivo pendiente de LCR? REGLA 578) de que el tratamiento debe
S cubrir Pseudomonas-aeruginas causante de
10) Se vio organismo en el frotis de la muestra meningitis.
sometida al cultivo de LCR pendiente?
No A partir de este momento ha finalizado la parte
diagnstica de la consulta. Ahora el programa se encarga de
Antes que nada deja que sea el propio mdico quin buscar el conjunto de medicamentos para acabar a los organismos
diga los hechos conocidos. Pero en este ejemplo al paciente no se sin perjudicar al paciente. Con lo que vuelve a realizar otra serie
le ha realizado ningn cultivo positivo con lo que MYCIN insiste

- 14 -
de preguntas. Aunque hay que destacar que estas preguntas son 3.2.2 Estructuras de datos
diferentes dependiendo de los resultados intermedios.
40) Tiene David signos neurolgicos focales?  Estructuras de datos estticas
No
41) Presenta David alguna reaccin alrgica
Se encarga de guardar la informacin de definicin.
importante frente algn agente
Dicha informacin es mantenida separada del
antimicrobiano?
conocimiento inferencial, en la forma de listas simples
S
(enumeran todos los organismos y sitios estriles
42) Cul es el ms reciente aclaramiento de
conocidos por el sistema), tablas de conocimiento
creatinio, en ml/min, que usted considera
(tienen los registros de ciertos parmetros clnicos y los
representativo de la funcin renal de David?
valores que toman bajo diversas circunstancias) y un
77
sistema de clasificacin para parmetros clnicos.
43) Peso de David en Kg
77
 Estructuras de datos dinmicas
Dicho sistema de consulta consiste en una serie de
reglas de produccin, un conjunto de estructuras estticas y
Son almacenados en un rbol de contexto, el cual se
dinmicas, y una estructura de control.
utiliza para organizar la informacin referente a un
paciente en concreto. El consejo estar basado tanto en
3.2.1 Reglas de produccin los cultivos, organismos, operaciones previas y
tratamientos relacionados con el paciente, como en
La gramtica que se utiliza para realizar dichas reglas es caractersticas personales del paciente. Con lo que el
representada internamente como cdigo LISP. El cual es un rbol ayuda a estructurar el problema clnico y
lenguaje de alto nivel de procesamiento de listas en el cual relacionar un contexto con otro.
MYCIN est implementado. La sintaxis que se maneja es la
siguiente:
<rule>::= <premise> <action>
<premise>::= ($AND <condition> ...
<condition>)
<condition>::= (<predicate> <context>
<parameter> <value>)
| ($OR <condition> ... <condition>)
<action>::= <conclusion> | <instruction>
Un ejemplo de esta estructura es el siguiente:
PREMISE: ($AND (SAME CNTXT GRAM GRAMNEG)
(SAME CNTXT MORPH ROD)
(SAME CNTXT AIR AEROBIC)) Figura 2
ACTION: (CONCLUDE CNTXT CLASS
ENTEROBACTERIACEAE TALLY .8)
3.2.3 Estructura de control
Donde gram se refiere a la cepa del organismo, morph a
la morfologa del organismo y air a la aerobicidad del organismo.  Encaminamientos hacia atrs
El smbolo CNTXT es una variable que es instanciada por el
nombre que MYCIN le da al nodo contextual que est
actualmente observando. MYCIN tiene una regla meta de mximo nivel que
define la tarea completa del sistema de consulta:
El mdico, el cual utiliza este sistema experto, no IF there is an organism which
observa dicho cdigo. Simplemente las reglas son traducidas en el requires therapy, and consideration
terminal del siguiente modo: has been given to the possibility of
If 1) the stain of the organism is gramneg, aditional organisms
and requiring therapy
2) the morphology of the organism is rod, THEN compile a list of possible
and therapies, and determine the best
3) the aerobicity of the organism is therapy in this list.
aerobic Para realizar una sesin de consulta es necesario seguir
THEN there is strongly suggestive evidence los siguientes pasos:
(.8) that the class of the
organism is enterobacteriaceae. Crear el contexto del paciente como el nodo
de ms alto nivel en el rbol de contexto.
Donde (0.8) indica el factor de confianza que
posteriormente se explicara. Intentar aplicar la regla meta a este contexto
del paciente.

- 15 -
Al aplicar la regla meta es necesario evaluar primero su 3.4 Sistema de adquisicin de reglas
premisa, la cual necesita determinar si hay un organismo
que requiera terapia.
En el programa se pueden agregar nuevas reglas de
Por lo tanto la consulta se realiza mediante una decisin o cambiar alguna presente. El usuario no las agrega en
bsqueda a travs de un rbol meta. La meta superior en LISP sino en formato ingls. Es el propio programa que se
la raz del rbol es la parte de accin de la regla meta. encargar de traducirla.
Las sub-metas futuras hacia abajo en el rbol, las cuales
determinar el organismo involucrado y el ver si es
importante. Puede ocurrir que estas sub-metas tengan a Sin embargo puede ocurrir que una nueva regla puede
su vez ms sub-metas, como por ejemplo para descubrir contradecir a otra del sistema o simplemente agregar una regla
las propiedades de la cepa y morfologa del organismo. presente en el programa. Con lo que Shortliffe discuti planes
Las hojas del rbol son metas fcticas, tambin para proveer facultades para verificar los efectos que pueden
conocidas como hechos, que no pueden ser deducidos causar al ingresar una nueva regla en su libro.
como por ejemplo datos de laboratorio. Como se puede
observar en la figura (ver figura 2). Randall Davis desarrollo estos planes ampliamente en
Se llama estructura de control de encadenamiento hacia un sistema llamado TEIRESIAS. Este sistema ayuda a un experto
atrs porque el programa razona hacia atrs desde lo que a depurar y llenar el conjunto de reglas de un sistema experto
quiere probar hacia los hechos que necesita para existente. Adems utiliza generalizaciones acerca de la estructura
hacerlo. de reglas existentes.

 Factor de certeza
3.5 Ventajas y Desventajas
A este sistema experto realizaron una serie de
A cada regla se le asocia un factor de certeza, CF, investigaciones para saber su grado de fiabilidad. Los resultados
comprendido entre [-1, 1]. Este factor indica el grado de obtuvieron una tasa de aciertos de aproximadamente el 65%. Con
confianza en la conclusin obtenida, dada la evidencia lo que mejoraba las estadsticas de los doctores no especializados
de las premisas. Si es positivo indica un grado de en el diagnstico de infecciones bacterianas, que ejercan la
confianza, mientras que si es negativo un grado de profesin en aquellos aos.
desconfianza.
Adems este sistema experto presenta una
3.3 Sistema de explicacin representacin sencilla y una facilidad de comunicacin con el
sistema.
Este sistema consiste en explicar al doctor todo lo
referente a la consulta. Dicho doctor puede realizar las preguntas Sin embargo, a pesar de los resultados favorables
generales o relacionadas con la consulta necesaria al programa no obtenidos, MYCIN fue cayendo en desuso. El motivo es las
slo al final de la consulta sino durante la consulta misma. debilidades que tena el programa y por cuestiones legales y ticas
debido a que se dejaba en manos de una mquina la
responsabilidad de la salud de una persona.
Estas preguntas pueden ser del estilo Qu te hace
pensar que el organismo puede ser un Proteus?Ante esta
situacin MYCIN escribe las reglas que utiliz, su grado de
certeza en cada decisin y la ltima pregunta hecha. Todo esto lo 3.6 Ejemplo
puede hacer porque lleva un registro de las decisiones que se
hace. A continuacin mostramos un pequeo ejemplo
realizado en Prolog para simular el comportamiento de un sistema
La facilidad que tiene MYCIN para responder a dichas experto en el mbito de la medicina.
preguntas est basada en sus habilidades para:
No es un ejemplo MYCIN porque es el propio sistema
el que realiza las preguntas al usuario y con dichas respuestas
Desplegar aquellas reglas que se estn
concluye el organismo infeccioso y el posible tratamiento.
utilizando durante la consulta.
Almacenar dichas reglas y asociarlas con
eventos. En el siguiente cdigo se muestra los sntomas y
posibles tratamientos de enfermedades habituales.
Utilizar el indizado de reglas para recuperar
reglas particulares como respuestas a
peticiones. El cdigo de dicho programa es el siguiente:

sintomas_de(dolor_cabeza,gripe).
sintomas_de(escalofrios,gripe).
sintomas_de(tos_seca,gripe).
sintomas_de(fiebre,gripe).

- 16 -
sintomas_de(tos,pulmonia).
sintomas_de(fiebre_alta,pulmonia).
sintomas_de(escalofrios,pulmonia). En la imagen anterior preguntamos por los sntomas de
sintomas_de(dificultad_respirar,pulmonia). la varicela y nos devuelve los cinco sntomas y con el orden
sintomas_de(dolor_pecho,pulmonia). exactamente igual que estn en el programa. La ltima sentencia
sintomas_de(dolor_muscular,pulmonia). es false para indicar que ya no hay ms sntomas para esa
enfermedad.
sintomas_de(manchas_cuerpo,varicela).
sintomas_de(dolor_cabeza,varicela).
sintomas_de(fiebre_baja,varicela).
sintomas_de(falta_hambre,varicela).
sintomas_de(cansancio,varicela).

sintomas_de(fiebre_alta,meningitis).
sintomas_de(dolor_cabeza_intenso,meningitis)
.
sintomas_de(nuca_riguida,meningitis). A continuacin consultamos el tratamiento que hay que
sintomas_de(vomitos_bruscos,meningitis). seguir para pacientes con dicha enfermedad.
sintomas_de(somnolencia,meningitis).
sintomas_de(perdida_conciencia,meningitis).

tratamiento_de(gripe,reposo).
tratamiento_de(gripe,beber_mucho_liquido).
tratamiento_de(gripe,analgesicos).

tratamiento_de(pulmonia,antibioticos).
tratamiento_de(pulmonia,beber_mucho_liquido)
.
tratamiento_de(pulmonia,reposo).

tratamiento_de(varicela,analgesicos).
tratamiento_de(varicela,crema_calman_picor).

tratamiento_de(meningitis,hospital).
tratamiento_de(meningitis,antibioticos). Tambin podemos saber con dicho programa la
enfermedad que se corresponde con el sntoma especificado,
como se puede observar en la captura de arriba.
Como se puede observar solamente tratamos cuatro
enfermedades, gripe, pulmona, varicela y meningitis.

Ejecutamos el programa y obtenemos:

Para el siguiente ejemplo el programa trata de mostrar


las posibles enfermedades que tienen como tratamiento la variable
reposo.

Finalmente, con este ltimo ejemplo buscamos si


tenemos alguna enfermedad que tenga como sntoma de dolor de
garganta. En este caso el programa nos responde con false porque
en nuestro programa no tenemos ninguna enfermedad con dicho
sntoma.

- 17 -
4. CONCLUSIONES

Como podemos ver el uso de los sistemas expertos en la


sociedad tiene numerosas ventajas.
Por un lado como ya se ha dicho en este documento los
sistemas expertos no se cansan, no les afecta el medio estn en
continuo funcionamiento y si los programas bien son rpidos y
adems eficaces.
Pero entrando en el terreno que nos ocupa, Cmo de
lejos puede llegar un sistema experto en medicina?, los pacientes
se fiaran de una mquina, o prefieren el trato personal? Estas
preguntas serian fcilmente contestables viendo la cada de
MYCIN. De quin es la culpa de un mal tratamiento?, Del
mdico?, si es del experto, Para qu queremos la mquina?
Desde nuestro punto de vista los sistemas expertos son
un gran avance en la sociedad, parece mentira a lo que llega la
sociedad con el paso del tiempo, es increble que una mquina
programada pueda diagnosticar, y ayudar a las personas como si
de un experto humano se tratara y sobre todo es increble que este
programada para aprender. Aun as, despus de las ventajas
comentadas a lo largo del documento, e incluso las ventajas que
nosotras en este mismo momento pudiramos verle todava desde
nuestro punto de vista hay sistemas expertos, como en medicina
que no consideramos que estn preparados para anular al experto,
sencillamente podran complementarlo, ayudarlo, o podran usarse
para otro fin mdico.
Muchos expertos podran pensar que los sistemas
expertos no son tan buenos ya que si empezamos a usar los
sistemas expertos los expertos del mundo se quedaran
inservibles, o peor an, solo serviran para darle conocimiento a
una mquina.

5. REFERENCES

[1] Inteligencia artificial y derecho By Danile Bourcier,


Pompeu Casanovas

[2] Fundamentos de inteligencia artificial Escrito por Luis


lvarez Munrriz

[3] Sistemas Expertos Escrito por David King,Paul Harmon

- 18 -
Diseo e implementacin de un agente
inteligente Mario A.I.
Yuchen Du Virginia Izquierdo Bermdez
Ingeniera de Telecomunicacin Ingeniera de Telecomunicacin
Universidad Carlos III de Madrid Universidad Carlos III de Madrid
100073084@alumnos.uc3m.es 100072580@alumnos.uc3m.es

RESMEN ninguna atencin a los distintos elementos


presentes en escenario.
En este artculo se detalla el diseo y la
implementacin de un agente inteligente capaz de Adicionalmente, comprobaremos la funcionalidad
jugar al videojuego de Mario as cmo las tcnicas de diversos mtodos y variables implementados en
utilizadas para este diseo. otras clases dentro del paquete de software que
nos sern de gran ayuda para la construccin en
Categoras y descriptores cdigo Java de nuestro agente inteligente.
Java [Lenguaje de programacin]
Por ltimo, procedemos a implementar y
Trminos generales programar el rbol de decisin construido
rbol de decisin, agente inteligente previamente y a comprobar su funcionamiento
real en diversos escenarios utilizando las distintas
Palabras claves
opciones de simulacin disponibles.

2. RBOLES DE DECISIN

1. INTRODUCCIN Se trata de modelos de prediccin en los cuales se


utilizan tcnicas mediante las que se pueden
Para la implementacin de este agente inteligente
analizar decisiones secuenciales basadas en el uso
analizaremos el uso de tcnicas utilizadas
de resultados. Estos rboles son utilizados para
frecuentemente en aplicaciones de Inteligencia
generar sistemas expertos, rboles de juegos o
Artificial, tales como rboles de decisin.
bsquedas binarias. Mediante su uso, un sistema
Despus, construiremos nuestro propio rbol de
dotado de Inteligencia Artificial podr tomar
decisin para la solucin del problema de agente
decisiones en situaciones previamente definidas.
inteligente planteado en la pgina web de 2011
Mario AI Championship. En un rbol de decisin, se dispone de unas ciertas
entradas o situaciones, a partir de las cuales se
A continuacin, haremos un estudio detallado del
devuelve un resultado, convergiendo as en una
paquete de software proporcionado por dicha
nueva situacin donde una nueva decisin ha de
pgina web, sobre el cual se apoya nuestra
ser tomada. Esta accin ser realizada tantas veces
implementacin del agente de Mario inteligente.
como sea necesario, hasta llegar a un punto final,
Para ello, analizaremos agentes bsicos
llamado hoja en nuestro rbol de decisin, donde
proporcionados dentro del paquete de software,
se determina la accin a realizar tras el camino
tales como el ForwarJumpingAgent el cual
tomado, aquella que se ajusta a la situacin
simplemente salta hacia delante sin prestar
requerida.

- 19 -
Un ejemplo de rbol de decisin, binario en este Cada nodo consiste en una posible situacin a la
caso, se muestra a continuacin. que se podra enfrentar el agente a lo largo de una
partida. A continuacin, veremos detalladamente
en qu consiste cada una de ellas, para tener
especial cuidado a la hora de implementar nuestro
sistema, evitando implementaciones que puedan
dar lugar a comportamientos errneos del agente
inteligente.

3.1 Obstculos delante

Si mientras caminamos observamos un objeto el


cual no es franqueable, necesitaremos saltar para
evitar situaciones en las que nos encontraramos
estancados. Ser conveniente adelantarnos a esta
situacin y no detectar el obstculo cuando se
encuentra justo a nuestro lado, sino que convendr
3. DISEO DEL AGENTE intentar predecir la presencia de obstculos a
distancias un poco mayores. De sta manera se
Para el diseo de nuestro agente, haremos uso de mejorar el rendimiento del sistema al tratar de
un rbol de decisin, no binario en ste caso, adelantarse en la resolucin de problemas que
donde se tomarn decisiones dependiendo del pueden ser evitados fcilmente con un simple
escenario al que se enfrenta Mario en cada salto a tiempo.
momento, indicndole la accin a realizar para
tratar de llegar lo menos daado posible al final 3.2 Agujero delante
del nivel. Al igual que en el caso anterior, ser necesario
Aqu mostramos el rbol de decisin que hemos predecir cundo hay agujeros para tratar de evitar
diseado para resolver el presente problema: caer en ellos y consecuentemente perder de forma
definitiva la partida. Para superar estos agujeros,
tomaremos la misma accin que anteriormente, es
decir, saltar en el momento necesario para evitar
situaciones indeseadas una vez ms.

3.3 Enemigos delante

Los enemigos tambin han de ser evitados para no


ser daados innecesariamente. Por ello, cuando
veamos un enemigo prximo y siempre que sea
posible (antes de saltar siempre habra que
comprobar si dicha accin es conveniente, vase
3.4), saltaremos hacia delante para evitar ser
alcanzados por un enemigo que pueda daar a
Mario y reducir su nivel en un rango (disparo
grande pequeo fin de partida).

- 20 -
3.4 Obstculos encima 4. IMPLEMENTACIN DEL AGENTE

Ser necesario tambin comprobar si cuando es Para la implementacin del agente en Java, con
necesario saltar, es decir, si nos encontramos en ayuda del cdigo proporcionado por 2011 Mario
las situaciones 3.1, 3.2 o 3.3, esto es conveniente. AI Championship necesitaremos analizar ciertas
En concreto, necesitamos comprobar si cuando se funciones y variables ya implementadas o
requiere realizar un salto, hay algn tipo de definidas, que nos sern de apoyo a la hora de
enemigo u obstculo infranqueable por encima de programar.
Mario. Si se diese alguna de estas situaciones, lo
ms sensato sera no saltar, sino retroceder, ya que 4.1 Escenario
de lo contrario estaramos arriesgando a ser
En primer lugar, y como informacin ms
daados de forma innecesaria (enemigo encima) o
importante ser necesario observar el escenario en
saltar en vano (objeto infranqueable) y estar
el que se mueve Mario. Segn las descripciones
expuesto de nuevo a los peligros detectados
de la pgina web de la competicin, este escenario
anteriormente.
consiste en una matriz de 22 x 22 en el que Mario
3.5 Estancados se encuentra siempre en el centro de la
perspectiva, es decir, en esta matriz siempre
Puede darse la situacin en la que tratamos de ir aparece en la columna 11 y en la fila 11.
hacia delante y saltar para evitar algn tipo de
obstculo, pero no podemos franquearlo por En esta matriz, podemos encontrar todo tipo de
encontrar nuevos impedimentos y quedarnos informacin acerca de los objetos que aparecen en
estancados, por ejemplo si chocamos con un pantalla, tales como enemigos, obstculos o
objeto que se encuentra justo encima nuestro y a monedas.
la vez tenemos una pared o una tubera delante
Existen diversos mtodos que permiten acceder a
nuestro no podramos avanzar con un simple salto
la informacin de esta matriz en todo momento
hacia delante. Por ello, la accin correcta a
con distinto nivel de detalle, pudiendo seleccionar
realizar si esta situacin ocurre es la descrita en
el tipo de informacin que se quiere conocer, bien
3.7, es decir, retroceder y probar a saltar de nuevo.
sea los enemigos, los obstculos o ambas a la vez.
3.6 Saltar Por simplicidad utilizaremos los siguientes
Si hemos llegado a esta hoja del rbol, la accin mtodos: getLevelSceneObservationZ (int level),
final a realizar es saltar hacia delante. La duracin para ver nicamente los obstculos en el
y por tanto la altura del salto depende del escenario; getEnemiesObservationZ (int level), en
propsito de dicho salto, ya que depende de si este caso para ver solo los obstculos; y por
estamos intentando evitar un obstculo o si ltimo, getMergedObservationZZ(int level, int
queremos recoger ms monedas, nos interesa level) en el cual se pueden observar ambas
saltar alturas diferentes. informaciones.

3.7 Retroceder Es importante mencionar que, a diferencia de la


matriz de perspectiva completa de dimensiones 22
Finalmente, si llegamos a esta hoja, ya sea para x 22, estas funciones que simplifican la tarea de
evitar una situacin de estancamiento, o para obtencin de informacin dividindola segn su
escapar de un enemigo cuando no era conveniente clase, nos devuelven una matriz de perspectiva de
saltar directamente, retrocederemos hacia detrs dimensiones 19 x 19 con la informacin requerida
durante un tiempo determinado para despus segn la funcin invocada. Al igual que antes,
poder saltar hacia delante sin chocarnos con Mario siempre estar situado en el centro de
ningn tipo de obstculo que podramos habernos perspectiva, que en este caso pasa a ser la fila 10 y
encontrado. la columna 10.

- 21 -
La variable level permite modificar el nivel de disponga de la opcin de disparar, lo har
detalle de los objetos en la pantalla que queremos repetidamente mientras que va avanzando
obtener. Cuando se le asigna el valor 2 a esta rpidamente por el nivel. Despus de sufrir algn
variable de entrada, los datos que devuelve la dao y perder la capacidad de disparo, perdemos
funcin tendrn la forma ms simple proteccin contra los enemigos que vienen de
(mayoritariamente 0s y 1s) facilitando su frente, por lo que dejaremos de correr para
procesamiento y manipulacin posterior, mientras mejorar nuestra reaccin contra las distintas
que si se le asigna 0 a esta variable, los datos situaciones adversas que puedan tener lugar.
obtenidos tendrn la mxima precisin, siendo
posible la distincin entre distintos tipos de 4.2.3 marioEgoRow y marioEgoCol
enemigos u obstculos. A la hora de programar, Estas dos variables indican la posicin de Mario
dependiendo del propsito y las necesidades de la en la matriz de perspectiva de escenario en un
funcin determinada, utilizaremos un nivel de momento determinado.
detalle mayor o menor, para adaptarnos mejor a la
situacin concreta. 4.2.4 action

4.2 Variables utilizadas A parte de los atributos anteriores que utilizamos


para obtener informacin acerca del escenario
A parte de estos tres mtodos que utilizamos presente, tambin cabe mencionar que, para
para obtener informacin acerca del entorno en el indicar las acciones que debe tomar Mario en cada
que se desenvuelve Mario, aprovecharemos momento, modificamos el array de variables
tambin otros atributos que se encuentran boolean action, que contiene la informacin
distribuidos en el paquete de software Mario AI: acerca de qu botones deben ser pulsados durante
4.2.1 isMarioOnGround una ronda determinada. Los que utilizamos
principalmente son:
Indica si en un momento determinado Mario est
sobre una plataforma fija, o si est en medio del action[Mario.Key_RIGHT]
action[Mario.Key_LEFT]
aire. Este atributo nos ser de gran utilidad para action[Mario.Key_JUMP]
determinar si estamos preparados para detectar action[Mario.Key_SPEED]
nuevos enemigos u obstculos y saltar de nuevo, o
si por el contrario tenemos que prestar mayor Que tienen nombres bastante intuitivos.
atencin a la zona donde Mario va a caer,
4.3 Enemigos
comprobando la proximidad a enemigos y
decidiendo si se debe retroceder hacia atrs para Siempre que sea posible, como dijimos en la parte
evitar un posible choque y dao indeseado. de diseo, al encontrarnos con un enemigo al lado
nuestro trataremos de saltar para no ser daados.
4.2.2 Mario.fire
En caso de que esto no fuera posible, bien porque
Este atributo nos permite saber si Mario an hay ms enemigos encima o porque tenemos
mantiene en su situacin inicial con capacidad de algn obstculo que nos lo impide, nos
disparo, o si ya ha sufrido daos y desplazaremos hacia atrs para poder huir de l y
consecuentemente es grande o pequeo, tomar distintas decisiones ms adelante. Por lo
inhabilitado para disparar. Esto es til ya que, en general, esta funcionalidad no es utilizada muy
el caso de que podamos disparar, sera muy frecuentemente, pero en ocasiones resulta de vital
interesante disparar continuamente para destruir importancia ya que nos evita ser daados por un
los enemigos que vienen de enfrente y por tanto estrecho margen. Tambin se da la situacin
para aumentar las posibilidades de sobrevivencia. cuando estamos cayendo despus de un salto, que
Ntese que, al tratarse el botn de disparar el Mario hace contacto muchas veces (sin llegar a
mismo que sirve para correr, mientras Mario saltar encima) con un enemigo justo cuando est a
punto de tocar el suelo, por lo que es imposible
- 22 -
realizar otro salto para evitar ser daado (para Del cdigo fuente del paquete software, podemos
realizar un salto es necesario que Mario est sobre saber que cuando se utiliza un nivel de detalle 0,
alguna plataforma firme). Para prevenir y una flor enemiga ser traducida con el valor de
solucionar este peligro, analizamos la posibilidad 91 cada vez que se invoque el mtodo
de que algn enemigo se encuentre alrededor de la getEnemiesObservationZ(...).
zona de aterrizaje, y cuando se d el caso,
trataremos de retroceder o bien frenar la De esta forma, cuando detectamos un obstculo
trayectoria y as evitar algunos enemigos que delante, y cuando no observamos ningn
podran habernos atacado si simplemente impedimento para saltar por la existencia de
hubiramos seguido el salto con nuestra obstculos, procedemos a comprobar la existencia
trayectoria inicial. de flores enemigas en las celdas siguientes. En
caso de encontrarlas, nos pegaremos a la tubera,
4.4 Obstculos o Monedas esperaremos a que dichas flores bajen y cuando ya
el camino est libre, saltaremos hacia delante.
Aparte de los enemigos, a la hora de comprobar
obstculos, nos interesa diferenciar si nos 5. RESULTADOS
encontramos ante un objeto slido, al que hara
falta realizar un gran salto por encima para Una vez implementado nuestro sistema podemos
superarlo y as poder seguir avanzando en el nivel, comprobar cmo este funciona aceptablemente,
o de monedas, que en vez de esquivarlas lo que siendo capaz de terminar diversos escenarios, con
realmente nos interesa es recolectar la mayor distintas dificultades y obstculos sin ser apenas
cantidad posible, realizando saltos pequeos para daados. Tambin es cierto que nuestro agente no
intentar coger todas las monedas cercanas. En este es infalible y en ocasiones comete fallos que le
caso, esta tarea es relativamente fcil, pues suponen la prdida de fuerza, sin embargo las
utilizando un nivel de detalle 2, bajo la presencia consecuencias no son tan graves en comparacin
de monedas, el mtodo para obtener informacin con la dificultad de la implementacin de
de escenario devuelve 2s en aquellas posiciones soluciones a dichos problemas.
donde stas se encuentran, diferencindolas Por tanto, hemos tratado de llegar a una
fcilmente de los obstculos indeseados, que implementacin en la que exista un compromiso
corresponderan a 1s, evitando franquearlas de entre funcionalidad y dificultad, consiguiendo, en
forma innecesaria. nuestra opinin una solucin muy acertada en
cuanto a resolucin de problemas por parte de
4.5 Flores enemigas
Mario y la dificultad a la que su implementacin
Por lo general, para obtener la matriz con la est sometida.
informacin del escenario ser suficiente con un
nivel de detalle 2, pero en ocasiones, como por No obstante, comentaremos posteriormente ciertas
ejemplo cuando tratamos de evitar las flores mejoras que pueden realizarse para conseguir un
enemigas que se esconden en las tuberas, nos agente mucho ms inteligente y capaz de superar
interesara saber especficamente si los enemigos problemas mayores a los que nuestro agente puede
que encontramos delante se tratan de dichas flores enfrentarse.
o no, ya que dependiendo de eso actuaremos de Antes de eso, mostraremos algunas de nuestras
una forma u otra: en el caso de que se trate de implementaciones ms destacadas, demostrando
enemigos comunes, no habra ningn problema y su correcto funcionamiento, obteniendo el efecto
por tanto actuaremos igual que ante el resto de deseado segn lo explicado anteriormente,
enemigos, mientras que cuando detectamos flores atendiendo a las decisiones que se toman tras
enemigas, es mucho ms seguro esperar a que se recorrer nuestro rbol de decisin definido.
refugien de nuevo en las tuberas antes de avanzar
de nuevo hacia delante.

- 23 -
5.1 Enemigos 5.2 Flores enemigas

La tarea bsica para hacer que nuestro agente Otra accin a realizar, es esquivar flores
funcione es tratar de esquivar enemigos que se enemigas, emergente de las tuberas del escenario
acercan hacia nosotros, a nivel del suelo. Para de Mario. Para ello, ya hemos explicado que
ello, antes de que estos nos ataquen, daremos un trataremos de esperar, hasta que esta se ha
salto evitndolos de forma exitosa, tal y como se escondido para saltar, evitando que la flor nos
muestra en las imgenes a continuacin: dae:

- 24 -
5.3 Situaciones de estancamiento 6. POSIBLES MEJORAS

Otra situacin muy incmoda es cuando Mario se Debido a limitaciones tales como el tiempo
encuentra atascado entre varios bloques disponible, nuestra implementacin no resulta ser
irrompibles, ya que si no se toman medidas, Mario la ms idnea, ya que existen detalles en el
se mantendr en la misma posicin infinitamente, funcionamiento del sistema que podran ser
pues ni puede seguir hacia delante ni puede saltar, mejorados realizando implementaciones ms
al chocar con algn bloque de su alrededor. Por complejas.
ello, ser necesario hacer que Mario retroceda
Una de las posibles mejoras que a priori parece
cuando se encuentre en esta situacin, pudiendo
asequible es la siguiente: del motor de generacin
completar el escenario tal y como se muestra:
de niveles automtico que utiliza el paquete de
software, muchas veces genera escenarios en el
cual hay muchos enemigos en distintos niveles
movindose hacia la izquierda (hacia Mario) y
cayndose. Utilizando el agente que hemos
implementado, se necesita mucha suerte para
poder esquivar todos, ya que no es nada fcil
evitar contacto con 5 o ms enemigos cayendo. A
simple vista, una posible solucin sera: cuando se
detecta una gran cantidad de enemigos por
delante, en vez de seguir hacia delante, Mario
puede permanecer quieto o incluso retroceder un
poco, y esperar hasta que los enemigos hayan
cado sobre plataforma firme para seguir
avanzando, utilizando nuestro rbol de decisin
para esquivar los enemigos.

Sin embargo, esta solucin no es ptima del todo.


Uno de los problemas generados por intentar
esquivar los enemigos saltndolos es que, cuando
hay una presencia numerosa de enemigos, es
complicado evitar el contacto con todos. Nosotros
intentamos detectar si en el aterrizaje de un salto
es posible hacer colisin con algn enemigo y as
cambiar la trayectoria del salto. Pero esto no evita
colisiones al 100% y muchas veces perdemos vida
justo en los instantes siguientes de un salto.

Adems, en los niveles avanzados que se generan


con el paquete de software, son muy comunes los
enemigos con alas que pueden moverse en todas
las direcciones. Dado el caso, no sera de utilidad
esperar a que todos los enemigos aterricen, ya que
es algo que no ocurrira.

Para hacer frente a esta situacin y resolver los


problemas que puedan presentarse, es necesario
disear una implementacin ms compleja: hara
falta conocer las posiciones de todos los enemigos
- 25 -
import ch.idsia.benchmark.mario.engine.sprites.Mario;
y los obstculos presentes y, teniendo en cuenta import ch.idsia.benchmark.mario.environments.Environment;
las direcciones de movimiento de los enemigos, import
ch.idsia.benchmark.mario.environments.MarioEnvironment;
calcular hacia que posiciones sera conveniente public class AiAgent extends BasicMarioAIAgent implements
Agent {
saltar (ya sea un hueco entre los enemigos o saltar // Variable para controlar el salto
int trueJumpCounter = 0;
sobre algn enemigo, aunque esta ltima opcin // Variable para controlar retrocesos
int trueBufferCounter = 0;
implicara un pequeo salto forzado despus de
matar al enemigo, que habra que tener en cuenta public AiAgent() {
super("AiAgent");
para contemplar posibles resultados). Al mismo reset();
}
tiempo, habra que tener conocimiento sobre las /**
* Metodo de inicializacion Estado inicial: todos
capacidades de Mario, es decir, sus velocidades de los botones sin presionar
*/
movimiento y de salto, para ver de la lista de public void reset() {
posiciones seguras hacia dnde es factible saltar. action = new
boolean[Environment.numberOfKeys];
Y eso no es todo: habra que tener un control action[Mario.KEY_RIGHT] = false;
action[Mario.KEY_SPEED] = false;
exhaustivo en todo momento sobre las posiciones action[Mario.KEY_JUMP] = false;
trueJumpCounter = 0;
futuras de los enemigos y de Mario para as evitar trueBufferCounter = 0;
}
cualquier sorpresa. /**
* Metodo para chequear si hay enemigos delante
*
Como podemos imaginar, esta solucin, que * @param environment
funcionara de forma correcta en todas las * : el entorno en el que se
* desenvuelve Mario. De ahi sacaremos
situaciones posibles, requiere una enorme * la informacion necesaria para
* interactuar con el resto de
complejidad ya que se necesitara estudiar * elementos que aparecen en la
* pantalla.
ecuaciones sobre los movimientos de Mario y los * @return boolean existencia de un enemigo
* cercano Simplemente comprobamos
enemigos, y se escapan del rango de * la existencia de enemigos en la
requerimientos de este trabajo. En cualquier caso, * posicion consecutiva del array
*/
el sistema para evitar enemigos que hemos private boolean checkEnemiesFront(Environment
environment) {
implementado funciona razonablemente bien para byte[][] enemies =
environment.getEnemiesObservationZ(2);
niveles de dificultad limitada, superando incluso a if (enemies[marioEgoRow][marioEgoCol + 1]
!= 0) {
las capacidades de un jugador humano con poca return true;
experiencia. } else {
return false;
}
Tambin existen otros aspectos en donde se puede }
/**
implementar mejoras, tales como recolectar * Metodo para chequear si hay obstaculos
*
championes y flores para mejorar el estado de * @param environment
* : el entorno en el que se
Mario, as como colectar todas las monedas que * desenvuelve Mario.
* @return boolean existencia de obstculos
aparecen en pantalla. Sin embargo, todo eso * delante Comprobamos la
aumentara en gran medida la complejidad del * existencia de elementos bloqueantes
* por delante de la posicion
sistema, por lo que para el presente diseo se ha * actual de la figura de Mario
* Prestamos atencion a si el elemento
decidido por un sistema ms simple y al mismo * se trata de una moneda ya que de ser
* asi, no se le considera como
tiempo veloz, que es capaz de resolver problemas * un elemento bloqueante
*/
de cierta magnitud. private boolean checkObsFront(Environment
environment) {
byte[][] obstacles =
environment.getLevelSceneObservationZ(2);
7. CDIGO FUENTE if ((obstacles[marioEgoRow][marioEgoCol +
1] != 0 &&
obstacles[marioEgoRow][marioEgoCol + 1] !=
/** 2) || (obstacles[marioEgoRow][marioEgoCol
* Inteligencia en Redes de Comunicaciones + 2] != 0 &&
* Curso 2011 - 2012 obstacles[marioEgoRow][marioEgoCol + 2] !=
* Diseo e Implementacin de un agente inteligente Mario 2) || (obstacles[marioEgoRow][marioEgoCol
A.I. + 3] != 0 &&
* @author - Yuchen Du 100073084 obstacles[marioEgoRow][marioEgoCol + 3] !=
* @author - Virginia Izquierdo Bermdez 100072580 2) ||
*/ (obstacles[marioEgoRow - 1][marioEgoCol +
package ch.idsia.agents.controllers; 1] != 0 &&
import ch.idsia.agents.Agent;

- 26 -
obstacles[marioEgoRow - 1][marioEgoCol + /**
1] != 2)) { * Metodo para comprobar si hay monedas cerca
return true; *
} else { * @param environment
return false; * : el entorno en el que se
} * desenvuelve Mario.
} * @return boolean si hay monedas cerca
/** * Comprobamos en los alrededores de la
* Metodo para chequear si hay un agujero delante * posicion actual de Mario la
* * existencia de monedas
* @param environment */
* : el entorno en el que se private boolean areCoins(Environment environment)
* desenvuelve Mario. {
* @return boolean existencia un agujero delante byte[][] coins =
* Verificamos si hay en la environment.getLevelSceneObservationZ(2);
* columna delante existe una posicion if (coins[marioEgoRow - 1][marioEgoCol] ==
* vacia 2 || coins[marioEgoRow - 1][marioEgoCol +
*/ 1] == 2) {
private boolean checkGapFront(Environment return true;
environment) { } else {
byte[][] obstacles = return false;
environment.getLevelSceneObservationZ(2); }
if (obstacles[marioEgoRow + 1][marioEgoCol }
+ 1] == 0) { /**
return true; * Metodo para comprobar si hay enemigos cerca
} else { * en los instantes finales de
return false; * un salto
} *
} * @param environment
/** * : el entorno en el que se
* Metodo para chequear si se puede saltar * desenvuelve Mario.
* * @return boolean la existencia de peligro
* @param environment * cercana Comprobamos si hay
* : el entorno en el que se * enemigos alrededor de la zona en
* desenvuelve Mario. * donde caeria mario
* @return boolean si debemos saltar Comprobamos */
* la existencia de enemigos private boolean checkWhileFalling(Environment
* por encima de la posicion de Mario. environment) {
* Si se diera la situacin, no
* se debe saltar para evitar colision.
*/ if (things[marioEgoRow + 1][marioEgoCol +
private boolean checkJump(Environment environment) 1] != 0 || things[marioEgoRow +
{ 1][marioEgoCol + 2] != 0 ||
byte[][] things = things[marioEgoRow + 1][marioEgoCol + 3]
environment.getEnemiesObservationZ(2); != 0 || things[marioEgoRow +
if (things[marioEgoRow - 1][marioEgoCol] 2][marioEgoCol + 3] != 0 ||
!= 0 || things[marioEgoRow + 2][marioEgoCol + 2]
things[marioEgoRow - 2][marioEgoCol] != 0 != 0) {
|| return true;
things[marioEgoRow - 3][marioEgoCol] != } else {
0) { return false;
return false; }
} else { }
return true; /**
} * Metodo para comprobar si ha salido una flor
} * enemiga de alguna de las
/** * tuberas cercanas
* Metodo para chequear si se ha llegado a una *
* situacion de estancamiento * @param environment
* * : el entorno en el que se
* @param environment * desenvuelve Mario.
* : el entorno en el que se * @return boolean la existencia de una flor
* desenvuelve Mario. * carnivora Chequeamos en los
* @return boolean si Mario esta estancado en * puntos cercanos si hay alguna flor
* algun punto Verificamos si * enemiga
* Mario se encuentra en una situacion */
* de estancamiento, es decir, private boolean checkFlower(Environment
* si por delante de el hay un muro environment) {
* infranqueable, pero al mismo byte[][] things =
* tiempo existe elementos irrompible environment.getEnemiesObservationZ(0);
* por encima de el if (things[marioEgoRow - 2][marioEgoCol +
*/ 1] == 91 || things[marioEgoRow -
private boolean stucked(Environment environment) { 3][marioEgoCol + 1] == 91 ||
byte[][] things2 = things[marioEgoRow - 4][marioEgoCol + 1]
environment.getLevelSceneObservationZ(2); == 91 || things[marioEgoRow -
if ((things2[marioEgoRow - 2][marioEgoCol] 2][marioEgoCol + 2] == 91 ||
== -60 || things2[marioEgoRow - things[marioEgoRow - 3][marioEgoCol + 2]
3][marioEgoCol] == -60) == 91 || things[marioEgoRow -
&& 4][marioEgoCol + 2] == 91) {
(things2[marioEgoRow][marioEgoCol + 1] == return true;
1 && things2[marioEgoRow - 1][marioEgoCol } else {
+ 1] == 1)) { return false;
return true; }
} else { }
return false; /**
} * Metodo auxiliar para imprimir el array por la
} * pantalla
- 27 -
* // y asi determinar las acciones a
* @param environment // desarrollar
* : el entorno en el que se else if ((checkEnemiesFront(env) ||
* desenvuelve Mario. checkObsFront(env) || checkGapFront(env))
* @return void && trueBufferCounter == 0) {
*/ if (isMarioOnGround == false) {
private void printout(Environment environment) { // Si hay enemigos
byte[][] things = // cercanos al punto de
environment.getLevelSceneObservationZ(2); // caida,
for (int i = 0; i < 19; i++) { // retrocedemos
System.out.println(""); if (checkWhileFalling(env)) {
for (int j = 0; j < 19; j++) { action[Mario.KEY_RIGHT] = false;
System.out.print(things[i][j]+" action[Mario.KEY_LEFT] = true;
"); trueBufferCounter = 1;
} }
} }
} // Si se puede saltar con
/** // seguridad y Mario no se
* Metodo para decidir en cada momento las // encuentra en una situacion de
* acciones a tomar // estancamiento, movemos hacia
* // la derecha
* @return boolean[] el array indicando los
* botonos que se deben mantener
* pulsado Utilizando los mtodos action[Mario.KEY_RIGHT]
* definidos anteriormente, = true;
* comprobamos la situacion en la que se // Si no hay una flor
* encuentra Mario en cada // enemiga fuera de una
* momento y decidimos los botones que // tuberia, saltamos
* debemos accionar // En caso contrario
*/ // esperamos hasta que
public boolean[] getAction() { // la flor se refugie
if (!checkFlower(env)) {
MarioEnvironment env =
MarioEnvironment.getInstance(); action[Mario.KEY_JUMP] = true;
// Si Mario se dispone de la habilidad de trueJumpCounter = 7;
// disparo, }
// encendemnos y apagamos alternativamente }
// el botn // Si no es asi, retrocedemos
// de SPEED y as disparar continuamente // hacia la izquierda
if (Mario.fire) { else {
action[Mario.KEY_SPEED] = action[Mario.KEY_RIGHT] = false;
!action[Mario.KEY_SPEED]; action[Mario.KEY_LEFT] = true;
} trueBufferCounter = 3;
// En caso contrario, avanzamos a }
// velocidad regular }
else { // Si hay monedas cerca
action[Mario.KEY_SPEED] = false; else if (areCoins(env) &&
} trueBufferCounter == 0) {
// Primero comprobamos si Mario esta // Si saltar no implica ningun
// retrocediendo // peligro,
// para evitar un enemigo o un obstaculo // saltamos un poco para coger
if (trueBufferCounter > 0) { // mas monedas
trueBufferCounter--; if (checkJump(env)) {
// Si este contador se ha llegado action[Mario.KEY_RIGHT]
// a 0, dejamos de mover = true;
// hacia la izquierda y volvemos action[Mario.KEY_JUMP] =
// hacia la derecha true;
if (trueBufferCounter == 0) { trueJumpCounter = 1;
action[Mario.KEY_RIGHT] }
= true; }
action[Mario.KEY_LEFT] = // Finalmente si no pasa nada,
false; // simplemente
} // movemos hacia la derecha
} else if (trueBufferCounter == 0) {
// Ahora comprobamos si Mario estaba action[Mario.KEY_RIGHT] = true;
// saltando, action[Mario.KEY_JUMP] = false;
// gracias al contador trueJumpCounter }
if (trueJumpCounter > 0) { return action;
trueJumpCounter--; }
// Si mario ya se encuentra sobre }
// alguna plataforma,
// reseteamos el contador
if (isMarioOnGround) {
trueJumpCounter = 0;
}
8. REFERENCIAS
// Si el contador esta a 0,
// dejamos de pulsar el boton de [1] Pgina web de Mario AI Championship 2011:
// saltar
if (trueJumpCounter == 0) { http://www.marioai.org/
action[Mario.KEY_JUMP] =
false;
} [2] Ejemplo del rbol de decisin tomado:
}
// Si no se da lugar ninguna de las http://dms.irb.hr/tutorial/tut_dtrees.php
// situaciones anteriores,
// Comprobamos si hay enemigos, obstaculos
// o agujeros delantes
- 28 -
JUGADOR VIRTUAL DE PKER TEXAS HOLDEM
Alberto lvarez Polegre Lucas Bernalte Prez David Daz Chinea
Ingeniera de Telecomunicacin Ingeniera de Telecomunicacin Ingeniera de Telecomunicacin
Universidad Carlos III de Madrid Universidad Carlos III de Madrid Universidad Carlos III de Madrid
100085949@alumnos.uc3m.es 100294293@alumnos.uc3m.es 100294308@alumnos.uc3m.es

RESUMEN la grande). La primera de estas tres rondas se conoce como Flop y


El pquer es un juego de cartas de los llamados de "apuestas", en en ella se mostrarn en la mesa tres cartas sacadas del montn de
los que los jugadores, con todas o parte de sus cartas ocultas, cartas que no se ha repartido. Posteriormente pasamos al Turn
hacen apuestas sobre una puja inicial, recayendo la suma total de donde solo se ensea una carta conocida como Cuarta Calle. Por
las apuestas en el jugador o jugadores con la mejor combinacin ltimo, se gira una ltima carta, Quinta Calle, en la ronda llamada
de cartas. River, formando las cinco Cartas Comunes. Con tres de estas
cartas mostradas combinadas con las dos obtenidas al principio de
Palabras Clave la partida el jugador deber formar su mano de cartas con las que
Pker, Texas Hold em, probabilidad, jugada, mano, estrategia. intentar ganar la partida. As pues a partir de aqu se presentan las
manos posibles que puede tener cada jugador, ordenadas de mayor
1. INTRODUCCIN a menor valor.
El Texas Holdem es una variacin del conocido juego de cartas
conocido como Pker. En este juego se utilizan las 52 cartas de la Escalera Real de Color
baraja inglesa, las cuales tienen los valores, de menor a mayor, 2,
3, 4, 5, 6, 7, 8, 9, 10, J, Q, K y A, en las cuatro combinaciones de
palos diferentes: trbol , corazones , picas , y diamantes .
En el pker se realizan una serie de apuestas en las que el jugador
que obtenga la mejor combinacin de cartas ser el ganador de
esta, llevndose el bote acumulado que ser la suma de todo lo
apostado por el resto de jugadores. Adems el jugador tambin
La mejor jugada del pker. Comprende las cartas 10, J, Q, K y A
puede obtener el premio si el resto de jugadores de la mesa se ha
del mismo palo.
retirado de la partida. Cada jugador ser eliminado si pierde todas
las fichas que ha apostado.
Escalera de Color
2. REGLAMENTO
Esta variacin se caracteriza sobre todo porque cada jugador
obtiene dos cartas boca abajo al inicio de la partida, que sern
siempre fijas. Dichas cartas sern reveladas al final de la ronda
por parte de los jugadores que queden al cerrar las apuestas, en
caso de que todos se retiren si el que no lo haga lo desea, o si los
apostantes que siguen en la partida apuestan todas sus fichas Cinco cartas de orden consecutivo del mismo palo. Cuanto mayor
restantes (jugada conocida como All-In). sea la carta ms alta de la escalera, mejor es el ranking de la
mano. En este ejemplo la carta ms alta es el 10; vencera a una
A partir de aqu cada jugador comienza apostando a continuacin escalera de color con un 9 de carta ms alta.
de la ciega grande (jugador que parte obligatoriamente con la
apuesta mnima, de modo que el jugador solo puede igualarla o
aumentarla si no quiere retirarse) siguiendo las agujas del reloj. A
Pker
esta ronda se le denomina, en trminos del juego, Pre-Flop, y si
quedan ms de dos jugadores tras esta se seguir apostando.
Posteriormente se inicia una fase de tres rondas conocida como
Post-Flop, cada una con sus respectivas rondas de apuestas y ,en
cuanto a las mismas, a partir de aqu el jugador puede pasar (no
apostar nada) solo si los anteriores han pasado o es l el primero;
retirarse de la partida, igualar la apuesta o subirla. En este caso la Cuatro cartas del mismo valor. Cuanto ms alto es el valor de
ronda la iniciar el jugador a la izquierda de la ciega grande, estas cuatro cartas, ms alto es el ranking de la mano. En caso de
conocido como ciega pequea (apuesta inicialmente la mitad que empate gana la mano cuya quinta carta sea ms alta.

- 29 -
Una doble pareja est formada por dos cartas del mismo valor en
combinacin con otras dos cartas tambin de un mismo valor,
Full pero diferente al valor de las dos primeras. Cuando dos manos
muestran doble pareja, gana la mano cuya pareja es ms alta.
Como siempre, en caso de empate decide la carta ms alta.

Pareja

Esta jugada rene 3 cartas de un valor y 2 de otro. Cuando se


comparan dos fulls, gana el que tiene el valor de las tres cartas
ms alto. As pues, un full 7-7-7-2-2 supera a un full 5-5-5-A-A.
En caso de que los tros sean del mismo valor en dos manos, gana
la mano que tenga la pareja de cartas restante ms alta, con lo que Dos cartas del mismo valor. Cuanto ms alto es el valor de la
por ejemplo 7-7-7-A-A superara a 7-7-7-K-K. pareja, ms alto es su ranking. En caso de igualdad, se recurre a la
carta ms alta.
Color
Carta Ms Alta
Cuando ningn jugador consigue formar una de las jugadas arriba
expuestas, gana la mano aquel que tiene la carta ms alta. Y en
caso de empate, se usa la siguiente carta ms alta.

El color lo forman cinco cartas no consecutivas del mismo palo. 3. OBJETIVO Y PRESENTACIN DEL
Gana el desempate entre dos colores aquel que tenga la carta ms MODELO
alta.
3.1 Introduccin
Escalera Primero, decir que un modelo que simule el comportamiento de
un humano jugando al pker, es casi inviable, por la cantidad de
factores que influyen, tanto dentro del juego como factores
externos.
El modelo que se presenta aqu, y la inmensa mayora de modelos
existentes son modelos simplificados, que slo tienen en cuenta
factores internos del juego y siempre ser una mquina, luego
Para la escalera se precisan cinco cartas de valor consecutivo. siempre pensar con la cabeza fra y elegir la mejor jugada en
Entre dos escaleras gana la que sea ms alta. Por otra parte, el As cada momento.
puede usarse para formar la escalera A-K-Q-J-10, que sera una A corto plazo puede no resultar victorioso, pero este modelo sigue
Escalera Real, y tambin la escalera 5-4-3-2-A. un criterio de probabilidades, por el cual est comprobado que a
Poquer.com.es. xx medio/largo plazo se obtienen ganancias.
Tro
Nuestro modelo empezar siguiendo una determinada estrategia, y
podr ir cambiando a lo largo de la partida, dependiendo del
comportamiento del rival.

3.2 Modelos de jugador de Pker


Podemos analizar que bsicamente hay distintos tipos
Lo componen tres cartas del mismo valor. Entre dos tros gana el
de jugadores de Pker. Encontramos que podemos agrupar a los
que est formado por cartas ms altas. Si ambos tros estn
diferentes tipos de jugadores en cuatro categoras, de acuerdo a
formados por cartas del mismo valor, decide el desempate la carta
dos criterios: tight y loose y por otro aggressive y passive.
ms alta de las dos restantes de que consta la mano, y si esas dos
cartas fueran iguales, se compararan las quintas cartas de cada As podemos empezar por explicar que significa tight y loose y
mano. aggressive y passive.
De acuerdo con la cantidad de manos de Pker podemos
Doble Pareja clasificar a un jugador como tight o loose. Un jugador loose juega
muchas y diferentes manos. En cambio uno tight juega pocas
manos y adems con buenas cartas, es decir que tiene muchas
posibilidades de ganar.
Asimismo, encontramos los jugadores pasivos y agresivos. En
general el jugador pasivo sigue las apuestas del otro de la mesa de

- 30 -
Pker, en cambio el agresivo sube con frecuencia la apuesta y 3.4.2 Fuerza de la mano
toma la iniciativa. La fuerza de la mano es la probabilidad que tiene sta de ganar la
jugada sin saber qu cartas tienen nuestros adversarios. La fuerza
de la mano inicial (en el pre-flop) se basa en la tabla del punto 3.3.
3.3 Fuerza de la mano inicial A partir de aqu se calcular de la siguiente manera:
-En el Flop: ODDS*4 + 1 (%)
-En el Turn: ODDS*2 - 1 (%)
-En el River: ODDS (%)
*ODDS: Las ODDS son las cartas que faltan por salir para tener la
mano ganadora a la que aspira el jugador.

3.4.3 Ratio de ganancia


El ratio de ganancia es la cantidad de fichas que ganars (en %) en
funcin de la apuesta que se haga y la cantidad de fichas en el
bote. Por ejemplo, si la apuesta es 20 fichas y hay 40 fichas en el
bote, entonces el ratio de ganancia ser 20/(20+40) = 0.333.

3.4.4 Ratio de devolucin


El ratio de devolucin es (en media) la proporcin en que se
multiplicar la apuesta si se contina jugando esa mano. Se
calcula como el cociente entre la fuerza de la mano y el ratio de
ganancia. Normalmente, seguiremos jugando esa mano si este
parmetro es igual o superior a 1 (como se mostrar en el punto
4).

3.4.5 Ratio de subida


El ratio de subida es la cantidad de fichas que se apostarn en caso
de que se decida ver y subir. Se calcula teniendo en cuenta los 3
parmetros anteriores de la siguiente forma:

3.4.6 Probabilidad total


La probabilidad total es la suma de la fuerza de la mano con un
Random de C++. Esta parmetro ha de ser igual o superior a la
probabilidad umbral para jugar la mano.

3.4.7 Random
Para simular de mejor manera el jugador virtual, utilizaremos la
funcin de C++ Random y as poder hacer un jugador ms
imprevisible. En todas las tomas de decisiones utilizaremos esta
funcin.

4. DESARROLLO DEL JUEGO


3.4 Parmetros en los que basar las
4.1 Pre-Flop
decisiones. El jugador comprobar si es ciega grande o pequea y pondr la
En esta seccin explicares los parmetros en los que se basa el cantidad de fichas necesarias que estas indiquen.
jugador para tomar una decisin u otra.

if (ciega_grande == true)
3.4.1 Probabilidad umbral Poner_ciega_grande();
La probabilidad umbral es la probabilidad mnima de ganar que
debe tener la mano para jugar. Est es diferente dependiendo la if (ciega_pequea == true)
cantidad de jugadores en mesa. Por debajo se este umbral, se Poner_ciega_pequea();
considera que la mano tiene muy pocas probabilidades de ganar y
se supone una prdida innecesaria de fichas. A lo largo de la
partida, dependiendo del tipo de jugadores a los que nos Luego, se reparten dos cartas a cada jugador, y en ese momento
enfrentemos, esta probabilidad umbral variar a ms o menos. calculamos la probabilidad que tiene nuestra mano de ganar

- 31 -
(fuerza de la mano), dependiendo del nmero de jugadores, de
nuestra posicin en la mesa y de si hemos sido ciega (grande o
pequea) o no.
Diagrama de las fases del juego:

if (ciega_grande == true || ciega_pequea == true)


{
Poner ciega
probabilidad_total = Fuerza_mano(mano_inicial) +
Random(0,0.2) - Random(0,0.2) + 0.05; Irse

else
probabilidad_total = Fuerza_mano(mano_incial) + Calcular FM Igualar
Random(0,0.2) - Random(0,0.2);
}
Subir
Mientras las apuestas no hayan sido igualadas, calcularemos el
ratio de ganancia y el ratio de devolucin para realizar la jugada.
Teniendo en cuenta estos parmetros y los factores Random
jugaremos (funcin Jugar) de un modo u otro (Irse, Igualar o Flop
Subir). Irse
A lo largo de las manos, se analizar a los adversarios y teniendo
en cuenta la variables para este anlisis jugaremos siguiendo una
estrategia u otra (definidas en el punto 3.2). Calcular FM Igualar

4.2 Flop
Con esto llegamos al Flop, donde se reparten tres cartas Subir
comunitarias. A partir de este momento nuestra mano pasar a
tener 5 cartas, y la probabilidad para calcular la fuerza de la mano
se calcular por un mtodo sealado anteriormente. Hay que
sealar que este mtodo no es del todo exacto, pero nos da una
muy buena aproximacin de nuestras probabilidades de ganar la Turn
mano.
Irse
Como ya se hiciera en el Pre-Flop, calcularemos de nuevo los
parmetros bsicos para la toma de decisiones y en funcin de
ellos jugaremos (funcin Jugar). Calcular FM Igualar
4.3 Turn
Igual que en las fases anteriores, realizaremos un tipo de jugada u
otra segn los parmetros bsicos. Subir

4.4 River
En esta ltima fase se decidir quin gana finalmente esa mano
despus de las apuestas. River
Irse
Como aadido, el jugador har un All in (apostarlo todo) si sus
fichas actuales son diez veces menos que sus fichas iniciales para
intentar salvar la partida (o perder inmediatamente). Calcular FM Igualar

Subir

*FM: Fuerza de la mano

- 32 -
Subir(ratio_subida);
}
5. TOMA DE DECISIONES (funcin Jugar)
En el cdigo se ha implementado una funcin que decidir cmo
jugar teniendo en cuenta el ratio de devolucin.
5.4 Ratio de devolucin superior a 1.3
Despus de calcular este parmetros, se entrar en una serie de En cuanto nuestro ratio de devolucin sea superior a 1.3
condiciones para saber si ver la apuesta, subirla (o hacer un farol) significar que tenemos una mano difcilmente de ganar. Para este
o irse. caso igualaremos con un 30% y subiremos con un 70%. Tampoco
nos iremos en ningn caso.
5.1 Ratio de devolucin inferior a 0.8
Este caso se considera una mano realmente mala, por lo que con
el 95% de probabilidad el jugador se ir, con un 5% subir la
apuesta (farol) y en ningn caso igualar.
{
if (aleatoriedad > 0.3)
if (ratio_devolucion < 0.8)
Subir(ratio_subida);
{
if (aleatoriedad <= 0.3)
if (aleatoriedad > 0.05)
Igualar();
Irse();
}
if (aleatoriedad <= 0.05)
Subir(ratio_subida);
El hecho de tomar una decisin u otra depender del factor de
} aleatoriedad que nos brinda la funcin Random de C++. Cunto
apostar en caso de subida lo determinar el ratio de subir que se
calcula con la frmula vista en el punto 3.4.5.
5.2 Ratio de devolucin inferior a 1 En cuanto se igualen las apuesta de resolver la jugada y se ver
En este caso nuestra mano seguir siendo bastante mala, por lo qu jugador gana ese mano.
que lo ms lgico sera irse. No obstante, ha mejorado con
respecto al caso anterior conque nuestras probabilidades
cambiarn. Con un 80% de probabilidad nos iremos, subiremos
con un 15% (farol) y tan solo con un 5% igualaremos la apuesta.
Diagrama del ratio de devolucin:

if (ratio_devolucion < 1)
Si
{ Irse (95%)
if (aleatoriedad > 0.15)
Irse();
if (aleatoriedad <= 0.15 && 0.05 < aleatoriedad) RD < 0.8 Igualar (0%)

Subir(ratio_subida);
Subir (5%)
if (aleatoriedad <= 0.05)
Igualar();
}
Si
Irse (80%)
5.3 Ratio de devolucin inferior a 1.3
En este punto nuestra mano ya se considerar buena y tendremos
opciones reales de hacernos con el boto final. As que en este caso RD < 1 Igualar (5%)
igualaremos la apuesta con un 60% de probabilidad y subiremos
con un 40%. En ningn caso nos iremos.
Subir (15%)
if (ratio_devolicion < 1.3)
{
if (aleatoriedad > 0.4)
Igualar();
if (aleatoriedad <= 0.4)

- 33 -
7. BIBLIOGRAFA

Si [1] Wikipedia, La Enciclopedia Libre, www.wikipedia.org


Irse (0%) [2] Cowboy Programming, Programming Poker AI
[3] Reglas del Pker, Tipos de jugaroes,
www.reglasdelpoker.es/Hay-diferentes-tipos-de-jugadores-
RD < 1.3 Igualar (60%) de-poker
[4] Apuntes de la asignatura Inteligencia en Redes de
Subir (40%) Comunicacin, Universidad Carlos III de Madrid
[5] Probabilidades Pker, www.probabilidadespoker.es
[6] World Series of Poker: Tournoment of Championship,
vdeojuego PlayStation 2
[7] Poker Stars, www.pokerstars.com

Si
Irse (0%) 8. ANEXO. PSEUDO CDIGO EN C++
// Variables
RD > 1.3 Igualar (30%)
int numero_jugadores,
probabilidad_umbral, probabilidad_total,
Subir (70%) aletoriedad;
int fichas_iniciales,
fichas_disponibles, bote, apuesta,
ratio_devolucion, ratio_subida;
*RR: Ratio de devolucin bool ciega_grande, ciega_pequea,
apuesta_igualada, hablo, perder;
char mano_inicial [2],
6. CONCLUSIONES cartas_comunitarias [5];

El juego est basado en la minimizacin del factor suerte, luego // Funciones (slo se define Jugar())
slo sera rentable tras un nmero bastante grande de manos. Y void Poner_ciega_grande(void);
todo esto teniendo en cuenta slo factores del juego, aunque no se void Poner_ciega_pequea(void);
hayan contemplado todos (sera demasiado trabajoso y casi
void Igualar(void);
inviable).
void Irse(void);
Si la mquina se enfrentara a un jugador principiante, lo ms void Subir(int);
probable es que gane, puesto que todas las probabilidades usadas, void All_in(void);
frmulas y estrategias son reales. Est comprobado que si se juega int Fuerza_mano(char);
de esa forma se obtienen beneficios a largo plazo. Esto, sumado a
que una mquina siempre piensa framente y que siempre va a
int Ratio_ganancia(int, int);
elegir la que cree que es su mejor opcin, la hace un rival muy bool Jugar(int, int, int, int);
difcil de batir. bool Resolucion_jugada(void);
Por otro lado, si tenemos el juego muy estudiado y sabemos cul
es la mejor opcin, podramos predecir el comportamiento del
void main(void)
jugador virtual. {
// Clculo de probabilidad umbral
Cabe mencionar, en cuanto al tema de poker y la inteligencia
suponiendo un mximo de cuatro jugadores
artificial, el ordenador Polaris, que se us como experimento,
switch (numero_jugadores)
contra Phil Laak y Ali Eslami, dos jugadores de pquer de Los
ngeles clasificados entre los mejores del mundo. Aunqu gan y {
empat las 2 primeras partidas (de 500 manos cada una), al final case 2:
el resultado se decant para el lado humano. probabilidad_umbral = 0.58;
case 3:
Todo esto demuestra que a pesar de los aos de estudio de la
inteligencia artificial, todava estamos en una constante evolucin probabilidad_umbral = 0.42;
y nos queda mucho camino por recorrer. case 4:
probabilidad_umbral = 0.32;
}

- 34 -
// Inicio de la partida Fuerza_mano, ratio_devolucion,
while (1) aletoriedad);
{ }
// Se ponen las ciegas }
if (ciega_grande == true)
Poner_ciega_grande(); // Turn (cuatro cartas comunitarias)
if (ciega_pequea == true) probabilidad_total =
Poner_ciega_pequea(); Fuerza_mano(mano_inicial,
cartas_comunitarias)
// Se reparte la mano (dos cartas + Random(0,0.2) -
privadas) Random(0,0.2);
if (ciega_grande == true || if (probabilidad_total >=
ciega_pequea == true) probabilidad_umbral)
{ {
probabilidad_total = while (apuesta_igualada == false
Fuerza_mano(mano_inicial) + || perder == false)
Random(0,0.2) - Random(0,0.2) + 0.05; {
else Ratio_ganancia(bote,
probabilidad_total = apuesta);
Fuerza_mano(mano_incial) + Random(0,0.2) ratio_devolucion =
- Random(0,0.2); Fuerza_mano / Ratio_ganancia;
} aleatoriedad = Random(0,1);
Jugar(Ratio_ganancia,
// Pre-Flop Fuerza_mano, ratio_devolucion,
if (probabilidad_total >= aletoriedad);
probabilidad_umbral) }
{ }
while (apuesta_igualada == false)
{ // River (cinco cartas comunitarias)
Ratio_ganancia(bote, probabilidad_total =
apuesta); Fuerza_mano(mano_inicial,
ratio_devolucion = cartas_comunitarias)
Fuerza_mano / Ratio_ganancia; + Random(0,0.2) -
aleatoriedad = Random(0,1); Random(0,0.2);
if (probabilidad_total >=
Jugar(Ratio_ganancia, Fuerza_mano, probabilidad_umbral)
ratio_devolucion, aletoriedad); {
} while (apuesta_igualada == false
} || perder == false)
{
// Flop (tres cartas comunitarias) Ratio_ganancia(bote,
probabilidad_total = apuesta);
Fuerza_mano(mano_inicial, ratio_devolucion =
cartas_comunitarias) Fuerza_mano / Ratio_ganancia;
+ Random(0,0.2) - aleatoriedad = Random(0,1);
Random(0,0.2); Jugar(Ratio_ganancia,
if (probabilidad_total >= Fuerza_mano, ratio_devolucion,
probabilidad_umbral) aletoriedad);
{ }
while (apuesta_igualada == false }
|| perder == false)
{ bool Jugar(void){
Ratio_ganancia(bote, if (hablo == true)
apuesta); {
if (fichas_disponibles <
fichas_iniciales / 10)
aleatoriedad = Random(0,1); All_in();
Jugar(Ratio_ganancia, else

- 35 -
if (ratio_devolucion < 0.8) mano
//Muy mala mano {
{ if (aletoriedad
if (aleatoriedad > > 0.4)
0.05) Igualar();
Irse(); if (aletoriedad
if (aleatoriedad <= <= 0.4)
0.05)
// Farol ratio_subida = (10*Ratio_ganancia)
* fichas_disponibles /
ratio_subida = (10*Ratio_ganancia) (100*Fuerza_mano);
* fichas_disponibles /
(100*Fuerza_mano); Subir(ratio_subida);
}
Subir(ratio_subida); else
} // Muy
else if buena mano
(ratio_devolucion < 1) // Mala {
mano if (aletoriedad
{ > 0.3)
if (aletoriedad
> 0.15) ratio_subida = (10*Ratio_ganancia)
Irse(); * fichas_disponibles /
if (aletoriedad (100*Fuerza_mano);
<= 0.15 && 0.05 < Aletoriedad)
// Farol Subir(ratio_subida);
if (aletoriedad
ratio_subida = (10*Ratio_ganancia) <= 0.3)
* fichas_disponibles / Igualar();
(100*Fuerza_mano); }
}
Subir(ratio_subida); else
if (aletoriedad
<= 0.05)
Igualar(); perder =
} Resolucion_jugada();
else if }
(ratio_devolicion < 1.3) // Buena

- 36 -
Inteligencia artificial en el mundo de la aviacin

Daniel Ruesga Ibaez Hector Molla Ruiz


Estudiante Ing. Telecomunicacin Estudiante Ing. Telecomunicacin
Universidad Carlos III de Madrid Universidad Carlos III de Madrid
Avda. De la Universidad, 30 Avda. De la Universidad, 30
28911, Leganes (Madrid) 28911, Legans (Madrid)
100071034@alumnos.uc3m.es 100055188@alumnos.uc3m.es

RESUMEN 2. SISTEMAS EXPERTOS


En este documento vamos a realizar un estudio del impacto que ha
tenido la inteligencia artificial en el mundo de la aviacin Como ya se ha comentado en la introduccin un sistema experto
moderna. Nos centraremos en los sistemas de pilotaje automtico es aquel que puede almacenar el conocimiento de un experto en
disponibles en los aviones y su avance hasta la los vehculos no un campo determinado y limitado, y a su vez solucionar
tripulados (UAVS). problemas mediante la induccin- deduccin lgica.
Los sistemas expertos son programas de computacin que
capturan el conocimiento de un experto y tratan de imitar su
proceso de razonamiento cuando resuelven los problemas en un
Categoras y Descriptores de Temas
determinado dominio.
[Inteligencia Artificial]: sistemas expertos [Avinica]: pilotaje
Para que un sistema experto sea efectivo, los usuarios tienen que
interactuar de una manera sencilla, siendo necesarias dos
Terminus Generales capacidades para poder cumplirlo:
Documentacin, diseo, fiabilidad, seguridad, factores humanos,
teora.
1. Explicar conocimientos y razonamientos: es necesario
que al realizar los sistemas se sigan unas pautas y reglas
Palabras Clave
Sistemas expertos, aviacin, piloto automtico, navegacin, vuelo, que resulten comprensibles para lograr que se genere
uav. una explicacin para cada una de ellas.

1. INTRODUCTION 2. Obtencin mientos e integrador del


sistema: mecanismos que modifican los conocimientos
Un piloto automtico es un sistema mecnico, elctrico o previos. Puede decirse que los sistemas son el resultado
hidrulico usado para guiar un vehculo sin la ayuda de un ser de investigaciones en el campo de la inteligencia
humano. Aunque puede usarse en distintos tipos de vehculos
nosotros nos centramos en el pilotaje de aviones. De esta forma artificial, puesto que no busca sustituir a los expertos
tenemos que el sistema de piloto automtico que se implementan sino que sirvan de ayuda a la hora de realizar las tareas
en los aviones son sistemas expertos. con mayor rapidez y eficacia.

Un sistema experto es una aplicacin informtica que emula la


forma de pensar y razonar de un experto en un campo Los sistemas expertos estn formados por diversos elementos:
determinado, que normalmente requiere de una gran cantidad de base de conocimientos, base de hechos, motor de inferencia,
conocimientos asociados. Con esta clase de sistemas lo que se mdulos de justificacin e interfaz de usuario.
busca es una mejora en la rapidez y velocidad de las respuestas.

2.1 Base de conocimientos


El sistema de piloto automtico tiene implementados los
conocimientos necesarios de navegacin y fundamentos de vuelo
necesarios para pilotar un avin de manera automtica sin Son bases de datos con los conocimientos de los expertos
necesidad de la interaccin del piloto. implementados en el sistema sobre el campo concreto de trabajo.
A travs de la base de conocimiento, el sistema experto obtiene
los razonamientos que debe aplicar en su funcionamiento.
Un vuelo est dividido en varias etapas: rodaje, despegue,
ascenso, crucero, descenso, aproximacin, y aterrizaje. De todas
las anteriores las nicas etapas que nos pueden ser controladas
nicamente por el sistema de pilotaje automtico son la de rodaje
y despegue.

- 37 -
2.2 Base de hechos fuerza que se ejerce consigue contrarrestar al peso propio de la
aeronave mantenindola de esta forma en el aire.

Compuesta por los hechos descubiertos durante el anlisis que se


realiza cuando existe algn problema.

Fig.2. Fuerzas sobre aeronave

3.2 Control aeronave

Para el movimiento de la aeronave es necesaria una fuerza de


empuje que se obtiene gracias a los motores de reaccin. Estos
motores se encargan de contrarrestar la resistencia aerodinmica
Fig.1. Estructura sistema experto que se genera precisamente por la sustentacin.

2.3 Motor de inferencia Los aviones son capaces de rotar sobre tres ejes perpendiculares
entre s. El punto donde se cruzan estos tres ejes se encuentra en
el centro de gravedad del avin. Los tres ejes son los siguientes:
Se encarga de modelar el proceso del razonamiento humano. Para
ello utiliza el conocimiento disponible en las bases de
conocimientos y hechos.

2.4 Mdulos de justificacin

Se encarga de proporcionar una explicacin al usuario del


razonamiento que ha utilizado el sistema experto para obtener una
conclusin determinada.

Fig.3. Ejes del avin


2.5 Interfaz de usuario

La interfaz de usuario es el medio por el cual la mquina y el Transversal


usuario se comunican. Comprende todos los puntos posibles de Este eje cruza de una punta a la otra de las alas del avin.
contacto entre el usuario y la mquina. Comnmente suelen ser
El movimiento asociado a este eje se le llama cabeceo y su
con diseos intuitivos, fciles de entender y manejar.
funcin es la de levantar el morro del avin para variar su
sustentacin.

3. FUNDAMENTOS DE VUELO Longitudinal


Este eje cruza el avin desde el morro hasta la cola.
Es necesario profundizar un poco en los fundamentos de vuelo de El movimiento asociado a este eje se le llama alabeo y consiste en
los aviones para entender como el piloto automtico es capaz de levantar un ala mientras bajas la otra.
manejar un avin de manera independiente.

Vertical
3.1 Sustentacin Este eje cruza el avin desde la parte inferior hasta la superior
pasando por el centro de gravedad.
El principio bsico por el que los aviones se mantienen en el aire El movimiento asociado a este eje se le llama guiado y sirve para
y consiguen volar es por la fuerza de sustentacin. Se crea gracias modificar el rumbo hacia el que apunta el morro del avin.
a las alas de los aviones, la cola y en general su estructura. Esta

- 38 -
Para el control de los movimientos, la aeronave dispone de una Brjula: Permite conocer el rumbo que esta siguiendo
serie de superficies de control que se encuentran en las alas: el avin.
Indicador de rumbos: Permite eliminar los defectos de
la brjula.
ADF: Capta la seal emitida por una estacin terrestre y
nos muestra la direccin en la que se encuentra.
DME: Calcula la distancia del avin a un punto emisor.
CDI: Muestra la posicin relativa de la aeronave con
respecto al radial que queremos seguir.
ILS: Muestra el ngulo de descenso y la alineacin con
la pista de aterrizaje.
Fig.4. Superficies de control

Alerones: Se tratan de superficies mviles colocadas en


los extremos de las alas del avin, sobre el borde de 5. PILOTO AUTOMATICO
salida. La funcionalidad de los alerones es la de
controlar el movimiento de alabeo. Una vez comprendimos los componentes bsicos que permiten a
los aviones moverse y los sistemas que proporcionan la
informacin necesaria para la navegacin podemos mostrar el
Flaps: Son dispositivos de hipersustentacin que estn
funcionamiento del piloto automtico.
colocados tambin en el borde de salida del ala.
Normalmente se encuentran cerrados y cuando se El avin est equipado para su guiado automtico con dos
utilizan se despliegan separndose del ala. Los flaps computadores digitales de vuelo (DFGG) que suministran la
solo se usan en determinadas maniobras como el informacin necesaria para la realizacin de las funciones de
despegue y el aterrizaje. piloto automtico, estabilidad, empuje, altitud y direccin de
vuelo.
Los pilotos automticos utilizan sistemas informticos para
Spoilers: Son superficies con movilidad situadas en el
controlar diversos aspectos del avin, desde el control del vuelo a
extrads del ala. El objetivo es reducir la fuerza de
componentes para la comunicacin, sistemas para evitar
sustentacin que se genera en el ala.
colisiones y maniobras de gran precisin como aterrizajes sin
visibilidad.
Slaps: Son dispositivos hipersustentadores como los El sistema de piloto automtico obtiene la informacin necesaria
flaps con la diferencia de que estos estn situados sobre de la posicin del avin gracias a los sistemas implementados de
el borde de ataque del ala y sirven para aumentar la navegacin. Estos datos le permiten calcular los movimientos que
curvatura de esta. sern necesarios efectuar para seguir el rumbo establecido. Los
datos obtenidos del sistema de navegacin son enviamos al
sistema de gestin de vuelo que se encarga de establecer los
Existen tambin otras superficies necesarias para el control del cambios necesarios en el rumbo y la altitud del avin.
avin pero que a diferencia de las anteriores no se encuentran en
el ala. Estas son el timn de direccin y el de profundidad. El sistema tiene los conocimientos necesarios sobre los
fundamentos de vuelo del avin para poder actuar sobre los
diferentes elementos de control de movimiento que hemos visto
Timn de direccin: Es una superficie de control anteriormente adems de sobre los motores para aumentar o
generalmente colocada en el estabilizador vertical y disminuir el empuje segn sea necesario. Basndose en estos
cuya funcin es la de controlar el movimiento de conocimientos proporcionados previamente por un experto, el
guiada. sistema es capaz de controlar los ejes de cabeceo, alabeo y
guiado del avin.

Timn de profundidad: Es una superficie


estabilizadora situada en la parte posterior del avin y
su funcin es la de controlar el movimiento de cabeceo

4. SISTEMA DE NAVEGACION

El sistema de navegacin de un avin esta compuesto por varios


instrumentos esenciales que permiten orientarse seguir el rumbo
deseado. Los instrumentos bsicos del sistema de navegacin son
los siguientes:

- 39 -
Los datos necesarios de posicin del avin se obtienen de un informacin al ordenador del piloto automtico, el cual procesa
sistema de gua inercial. Estos sistemas tienen el problema de que los datos recibidos y toma una decisin para actuar sobre esta
acumulan errores con el tiempo de forma que se implementan variacin. Esta decisin se lleva a cabo mediante el envo de las
sistemas de reduccin de errores. seales necesarias a los mecanismos de control de la aeronave, en
El error que se produce en los giroscopios es conocido como error este caso a los que controlan los alerones. Estas seales son
de deriva y viene dado por las propiedades fsicas del sistema, que comandos muy especficos que indican que se tienen que producir
corrompen los datos de localizacin. Estos errores se resuelven unos ajustes muy precisos. Esta actuacin sobre los alerones
con la ayuda del procesamientos digital de seales, mediante un provoca que las alas se muevan de tal forma que se vuelva al nivel
filtro de Kalman hexadimensional. Siendo estas seis direcciones el establecido en el control dl piloto automtico. Una vez se
balanceo, la inclinacin, orientacin, altitud, latitud y longitud. restablece el nivel adecuado, el ordenador retira el comando de
actuacin sobre los alerones.
Las rutas por las que se mueven los aviones tienen asociadas un
factor de rendimiento exigido, de forma que el error tiene que ser
controlado para poder volar sobre dichas rutas. EL sistema de
pilotaje automtico utiliza las ayudas de radio y los instrumentos
de navegacin junto con sistemas como el GPS para corregir la
posicin de la aeronave.
En la siguiente imagen podemos observar en detalle la seccin de
control del piloto automtico de un avin.

Fig.5. Piloto automtico

En el panel podemos observar los siguientes controles:


A/T: activa el control automtico de la velocidad. Fig.6. Algoritmo piloto automtico
AP: activa el piloto automtico.
HDG: activa la fijacin de rumbo.
ALT: activa el seguimiento de altitud.
SPD/MACH: activan el control de velocidad en nudos o
mach.
NAV: activa el seguimiento de un radial. Cuando el piloto automtico falla el piloto puede desactivarlo
APR: activa el seguimiento de ILS fcilmente devolviendo el control del avin a un modo manual.
BC: permite alejarse de una pista. Una de las limitacin que se tiene en estos sistemas es la
imposibilidad de activar el piloto automatico durante la fase de
LVL: mantiene el avin nivelado.
despegue, hasta que no se hayan superado los 200 pies de altitud
Y/D: amortigua el giro. sobre el terreno.
Tambin se tienen cuadros numricos para establecer valores de
funcionamiento.
COURSE: establecer radial. 6. UAV
HDG: direccin hacia donde volar.
En este ltimo apartado del trabajo vamos a ir ms all del
ALT: altitud en pies. concepto de piloto automtico para tratar lo que se podra
IAS/MACH: velocidad respecto al aire. considerar como la evolucin lgica de este. Si bien el piloto
automtico toma como principal objetivo la sustitucin
VS: velocidad vertical.
momentnea y circunstancial de algunas de las funciones de un
piloto humano, llegando a tener en cuenta solo un conjunto
Un caso de demostracin de un sistema de pilotaje automtico se reducido de variables de todas la que pueden llegar a influir en la
da cuando el piloto fija un modo de control para que las alas del toma de decisiones que el piloto humano, el siguiente paso
avin se mantengan en un nivel concreto. Durante el vuelo se natural en la evolucin de este tipo de sistemas experto sera la
pueden producir diferentes tipos de sacudidas de forma que el sustitucin completa del ser humano en el pilotaje del avin. Y
avin puede sufrir una inclinacin. Este cambio es detectado por de esta idea nace el concepto de Vehculo areo no tripulado o,
los sensores colocados en las alas de forma que envan dicha

- 40 -
como comnmente se le conoce por sus siglas en ingls, los UAV
(Unmanned Aerial Vehicle). En este momento es necesario aclarar que aunque inicialmente se
empezaron a desarrollar los UAV como aviones, tambin se
Los UAV pueden volar de forma autnoma o bien ser controlados pueden considerar representados por estas siglas los helicpteros
de forma remota desde una estacin de control, aunque en este no tripulados y todas aquellas aeronaves que vuelen de forma
trabajo nos centraremos principalmente en los que vuelan de totalmente autnoma. Es por ello por lo que se ampla su campo
forma autnoma. de utilizacin a ms actividades de naturaleza mucho ms
delicada, como lo son el apoyo en rescates de montaa o en zonas
de difcil acceso, exploracin de cuevas o cualquier tipo de
lugares desconocidos que entraen peligro.
6.1 Piloto Automtico vs UAV
Adems de todo esto y como muchos de los grandes avances
Para una clara diferenciacin de estos dos conceptos (piloto tecnolgicos, los UAV tienen su base en la industria militar. En
automtico y UAV), vamos a hacer una breve comparativa que este sector cobran una gran relevancia, ya que posibilitan la
motive claramente la aparicin de los UAV, dejando a la vista el realizacin de misiones demasiado arriesgadas para una aeronave
gran avance que estos suponen. tripulada y adems, gracias a que no se necesita un habitculo
para el humano en su interior ni equipos para su
acondicionamiento, permite disear aeronaves con geometras
Un piloto automtico recibe informacin del sistema de mucho ms difciles de detectar por los radares enemigos.
gestin de vuelo acerca de las correcciones necesarias Principalmente se utilizan para tareas de vigilancia, combate y
de altitud, rumbo, etc. que han sido calculadas en base a misiones espa.
la informacin de la posicin que proporciona el
sistema de navegacin. Con esta informacin, se
pretende que el piloto automtico sea capaz de actuar Como ltimo punto de la exposicin del gran avance que suponen
sobre los distintos elementos que influyen en el los UAV en nuestro mundo actual, cabe sealar que a medida que
movimiento del avin para mantener el rumbo prefijado. vaya evolucionando y creciendo la potencia de la Inteligencia
Artificial, llegar el da en que los aviones comerciales o
aeronaves de combate estn pilotados de forma totalmente
Una UAV, al margen de tener un piloto automtico que autnoma sin la necesidad de ningn tipo de intervencin humana
se encargue de todo lo descrito anteriormente, debe ser ms all de la fijacin de los objetivos.
capaz de gestionar cualquier otra situacin en la que un
piloto intervendra, como puede ser: eleccin de rumbo
ptimo o cambios en el mismo por distintos motivos 6.3 IA en los UAV
(climticos, situaciones de combate, obstculos no
previstos, escasez de combustible, etc.), gestin de los
Anteriormente se han enumerado algunas de las tareas que debe
diferentes recursos del avin en funcin de las
realizar un UAV de forma autnoma pero, sin duda, la ms
necesidades del momento (combustible, municin o la
importante de todas ellas ser la de la eleccin del rumbo ptimo.
propia integridad de la aeronave).
Con toda certeza el nmero de variables que forman parte de esta
decisin es demasiado elevado como para analizarlo en este
trabajo, ya que se escapa a las pretensiones del mismo, pero si nos
6.2 Utilidades de los UAV centraremos en los algoritmos que actualmente se utilizan para, en
funcin de un conjunto de variables, calcular el mejor camino
En primera instancia, puede parecer que estos aviones no entre un origen y un destino prefijados.
tripulados tienen y tendrn su principal mercado en el mundo
militar, pero esto no es as. Actualmente hay diversas empresas 6.3.1 Bsqueda de la ruta ptima
que se dedican al desarrollo de un tipo de UAV de bajo coste El algoritmo ms utilizado en el presente en la bsqueda del mejor
orientado a actividades civiles, ofreciendo una alternativa ms camino posible es el algoritmo A*. Este algoritmo se basa en la
econmica que evita poner en peligro vidas humanas y que bsqueda mediante grafos del camino de menor coste entre los
permite liberar al humano de la carga de tareas rutinarias. Algunas nodos origen y destino. Es completo, por lo que el propio
de estas actividades son o podran ser: prevencin y control de algoritmo asegura que siempre que exista una solucin, este la
incendios, fotografa area, control de trfico en carreteras, encontrar.
bsqueda de personas desaparecidas, ayuda crtica en los
momentos posteriores a un desastre natural, apoyo en estudios
La bsqueda se realiza a travs de un espacio de nodos en el que
medioambientales, etc. Adems, ya se est yendo ms all y se
slo se visitan los posibles nodos en los que se puede alcanzar una
estn implementando flotas enteras de UAV que trabajan en
mejor solucin que la ltima encontrada. Para ello se hace uso de
equipo en labores tan complejas como la prediccin
una funcin heurstica, que ser la encargada de determinar el
meteorolgica o la monitorizacin y control de incendios
nodo que supone la mejor opcin.
forestales. En estas flotas, cada UAV no solo tiene en cuentas un
objetivo individual, sino que en la toma de sus decisiones
El funcionamiento global del algoritmo se describe a
interviene tambin el trabajo llevado a cabo por el resto de UAV
continuacin:
del grupo, para conseguir as un resultado ptimo en conjunto.

- 41 -
menor que el que es en realidad. Para construir una de estas
En un primer paso cogemos como nodo a expandir el funciones admisibles podemos basarnos en dos tcnicas:
nodo origen.

Expandimos el nodo origen dando lugar a todos sus Relajando la definicin del problema.
nodos hijos que cumplen que puede haber un camino al
nodo destino mejor que el que hasta ahora se ha
Aprendiendo de la experiencia entrenando la funcin
encontrado. Evidentemente estos hijos representarn
con diversos tipos de problemas.
todos los posibles lugares a los que la aeronave podr
llegar en un solo movimiento (considerando como un
movimiento el resultado de la actuaciones sobre los En el otro lado, tenemos la eleccin de los costes que suponen
elementos de control del rumbo de la aeronave en un cada uno de los nodos del recorrido, que habrn de ser elegidos
ciclo de decisin del algoritmo) con especial cuidado atendiendo a una escala de prioridades que
estar formada por todo el conjunto de variables que la aeronave
A continuacin nos quedaremos con el que segn la tendr en cuenta para la eleccin de la ruta. Como en la eleccin
funcin heurstica vaya a tener un menor coste de entre de la funcin heurstica, ahora tambin ser necesario el
todos los nodos posibles a los que podemos llegar desde entrenamiento, para conseguir la experiencia necesaria que nos de
los nodos expandidos y que no han sido, a su vez, unos costes ptimos.
expandidos. Es por esto por lo que es crucial la buena
eleccin de la heurstica a utilizar, as como los pesos
que se reparten a las diferentes variables (montaas, En la siguiente figura podemos ver un ejemplo de lo que sera una
tormentas, combustible, obstculos mviles, etc.) que bsqueda del camino ptimo muy simplificada. En ella podemos
influyen en la decisin. apreciar como el espacio se ha dividido en un enjambre de nodos
a los que se les han asignado una serie de costes. Estos costes
Si el nodo al que llegamos es el nodo destino, podran deberse en la vida real a multitud de factores:
comprobamos si es mejor camino que el mejor combustible, obstculos, clima, territorio enemigo, corrientes de
encontrado hasta el momento, sino, seguimos con el aire, etc. Adems se puede observar como tambin hay nodos que
mismo algoritmo. tienen coste infinito (los grises), es decir, que en ninguno de los
casos pueden ser elegidos. En la realidad estos nodos
Este proceso se repetir cclicamente hasta que no representaran zonas no accesibles, como por ejemplo las
existan otros nodos que sean capaces de mejorar el delimitadas por la propia elevacin del terreno que se sobrevuela.
mejor camino encontrado hasta el momento.

Un aspecto importante que se ha de tener en cuenta es


que la heurstica sea admisible, es decir, que nunca se
debe tener un valor heurstico mayor que el coste
mnimo del nodo, lo cual ha de cumplirse para cualquier
nodo.

Con este algoritmo se consigue dar solucin a los problemas que


se producen en algunos algoritmos de bsqueda en estructuras de
cierta complejidad, como por ejemplo el algoritmo voraz, que se
guan solo por la funcin heurstica, la cual puede no indicar
siempre el camino de menor coste, o por el coste real de
desplazarse de un nodo a otro, pudindose dar la circunstancia de
que sea preciso llevar a cabo un movimiento de mayor coste para
llegar a la solucin. Por este motivo en muy intuitivo el hecho de
que un buen algoritmo de bsqueda, como lo es el A*, debera
tener en cuenta los dos factores: Fig.7. Eleccin de la ruta optima con A*

Es evidente, que si extrapolamos este algoritmo a un escenario


Valor heurstico de los nodos
real, el nmero de nodos y de variables que influyen en el clculo
Coste real del recorrido. de los costes es elevadsimo, lo que supone la ayuda de un gran
potencial computacional para poder llevar a cabo la eleccin de la
ruta ptima en tiempo real.
Centrmonos primero en la eleccin de la funcin heurstica. Es
evidente que de su buena eleccin depender el buen
6.3.2 Gestin de flotas de UAV
funcionamiento de todo el algoritmo por lo que hay que poner
Otro aspecto importante a tener en cuenta en lo que a algoritmos
especial atencin es ello. Una buena funcin heurstica ser
de navegacin se refiere es la forma en la que se gestiona una flota
aquella que nunca sobrestime el coste real de alcanzar el objetivo.
para poder controlar un grupo de UAV que trabajan en equipo
Las funciones heursticas admisibles sern por naturaleza
optimistas, porque creern que el coste de resolver el problema es

- 42 -
para la consecucin de un objetivo comn. El algoritmo utilizado como avin de reconocimiento. En este proyecto
para tal fin est definido y consta de cuatro capas: Espaa cobra mucha importancia, estando, junto
con otros pases, al frente del mismo.

1) Describe el sistema de navegacin encargado de la A travs de los programas Marco tambin se estn creando
planificacin de la misin, eleccin de objetivos, distintas lneas de desarrollo de UAV. En el VPM se encuentra el
reparto de trabajo entre los distintos miembros de la proyecto COMMETS, que se llev a cabo en la Universidad de
flota, comunicacin entre ellos, etc Sevilla. Este proyecto consista en el desarrollo e implementacin
de una flota de UAV que fuese capaz de realizar en tiempo real
una monitorizacin y deteccin de incendios. El proyecto fue
2) Es la encargada de analizar toda la informacin
ejecutado con xito.
proveniente de los sensores de los UAV

Tambin en Sevilla, se est desarrollando el proyecto AWARE,


3) Es la que controla el sistema de interpretacin (FIS).
que consiste en la integracin de una flota de UAV con redes de
Este sistema tiene como misin principal utilizar la
sensores terrenos. En el proyecto tambin se contempla el
informacin de la capa anterior para evitar colisiones
despliegue autnomo de la red a travs de un conjunto de
con obstculos dinmicos o estticos.
helicpteros no tripulados y totalmente autnomos orientados
principalmente a seguridad civil y como herramienta de ayuda
4) En esta ltima capa es en la que se engloba el ante catstrofes naturales.
sistema de navegacin y el piloto automtico.

Otras funciones importantes del sistema de control de flotas de


UAV seran:
ALO (Avin Ligero de Observacin),
Evitar colisiones entre los distintos vehculos que SIVA (Sistema Integrado de Vigilancia Area)
forman la flota. ALBA (Avin Ligero Blanco Areo)

Y otros ms recientes como:


Control del entorno por visin mediante tratamiento y
reconocimiento de imgenes. HADA (Helicptero Adaptativo Avin)
MILANO (versin de largo alcance del SIVA)
DIANA (Avin Blanco de Bajo Coste).

6.4 Proyectos de UAV

En el mercado de los UAV es evidente que, como en todo lo


relacionado con tecnologa militar, los Estado Unidos estn al
frente con un gran nmero de compaas que dedican muchos
fondos a su desarrollo. Adems, tambin hay otros pases punteros
en la materia, como por ejemplo Alemania, Japn o Israel, que
han conseguido grandes avances.

Centrndonos solo a nivel Europeo cabe destacar un gran nmero


de iniciativas bastante interesantes. Algunas de las ms
interesantes se enumeran a continuacin:

NEURON: quizs sea el UAV ms famosos


(junto con el Barracuda) por su peculiar geometra.
El principal objetivo del programa es conseguir un
UAV de combate, capaz de atacar un objetivo sin
que sea detectado por ningn radar. Aqu Espaa
tiene diversos frentes de colaboracin a travs de Fig.8. EADS Barracuda
EADS-Casa: realizacin del ala del avin en fibra
de carbono, de la estacin de control y de la
integracin del Data Link.

ADVANCED: es un programa que trata de disear


un UAV de gran altitud llamado HALE para su uso

- 43 -
[6] Empresa del sector de los UAV: http://www.iuavs.com/

[7] Informacin algoritmo A*:

[8] Informacin sobre UAV:


http://es.wikipedia.org/wiki/Veh%C3%ADculo_a%C3%A9r
eo_no_tripulado

[9] Informacin sobre proyectos de UAV:


http://es.wikipedia.org/wiki/Anexo:Veh%C3%ADculos_a%
C3%A9reos_no_tripulados
Fig.9. Neuron

[10] Almudena Jimnez Sierra, Fco. Javier Muoz Rodrguez,


Por ltimo vamos a ver algunos grficos que estiman la evolucin Gonzalo Torres Porta,2006, Aplicacin de mtodos de IA
en los prximos aos del nmero de UAV que se van a construir y para la stoma de decisiones en simulaciones de mviles:
de la cantidad de fondos que se van a invertir en su desarrollo. http://eprints.ucm.es/8938/1/TC_2006-14.pdf

Unidades de UAS por regiones


2012 2013 2014 2015 2016 2017 [11] Ral Morales, 2008, Incorporan un algoritmo a un AUV
para predecir el tiempo con ms exactitud:
USA 189 267 1772 1722 1747 1787
http://www.tendencias21.net/Incorporan-un-algoritmo-a-un-
Europe 283 403 572 655 492 174 avion-no-tripulado-para-predecir-el-tiempo-con-mas-
Mid East 98 178 171 110 109 23 exactitud_a2844.html
Asia 687 788 662 604 542 679
[12] A. Barrientos, J. del Cerro, P. Gutirrez, R. San Martn, A.
Martnez, C. Rossi, 2007, UAV para uso civil. Tecnologa y
Financiacin por regiones (M$) aplicaciones:
2012 2013 2014 2015 2016 2017 http://webdiis.unizar.es/~neira/docs/ABarrientos-
USA 2105 2035 1865 1765 2095 2060 CEDI2007.pdf
Europe 470 655 697 761 623 566
Mid East 492 280 266 43 122 448
Asia 478 510 609 625 718 613

7. REFERENCIAS

[1] Villena, J. Apuntes de la asignatura Inteligencia en redes de


Comunicaciones. 5 Ingeniera de Telecomunicacin.

[2] Muoz, M. A., Manual del vuelo


http://www.manualvuelo.com/

[3] Sistemas expertos:


http://es.wikipedia.org/wiki/Sistema_experto

[4] Informacin piloto automtico:


http://es.wikipedia.org/wiki/Piloto_autom%C3%A1tico

[5] Nogueira, J. I... Apuntes de la asignatura Avinica. 3


Ingeniera de Telecomunicacin.

- 44 -
Sistemas Expertos en meteorologa
Carlos Lentisco Snchez Tania Romero Rodrguez
Ingeniera de Telecomunicaciones Ingeniera de Telecomunicaciones
Universidad Carlos III de Madrid Universidad Carlos III de Madrid
Av. de la Universidad, 30 28911 Legans (Madrid) Av. de la Universidad 30 28911 Legans (Madrid)
100060695@alumnos.uc3m.es 100066707@alumnos.uc3m.es

RESUMEN Esta es la razn que justifica la bsqueda del ser humano por
predecir fiablemente las condiciones meteorolgicas.
In this paper, we describe the formatting guidelines for ACM SIG A lo largo de este documento nos introduciremos ms en los
Proceedings. sistemas expertos repasando su evolucin histrica hasta nuestros
das para abordar posteriormente y con mayor profundidad un
Categoras y Descripciones de Temas ejemplo de estos sistemas. Centrndonos en el sistema Prometeo.

[Inteligencias Artificial]: Sistemas expertos y aplicaciones


metorolgicas 2. EVOLUCIN HISTRICA
Trminos Generales El inters del ser humano por reproducir las habilidades mentales
humanas se remontan muy atrs en la historia, desde la antigua
Meteorologa, Medidas, documentacin, diseo y teora. Grecia (mito del coloso de Rodas) y pasando por la edad medieval
(estatuas parlantes) hasta el androide Von Kempelen que jug al
Palabras clave ajedrez con Napolen y el motor analtico de Charles Babbage
que calculaba logaritmos.
Inteligencia, meteorologa, sistemas expertos, prediccin
meteorolgica. Hemos abierto con una cita de Aristteles y no sin un porqu,
Aristteles (322-384 antes de Cristo) fue el primero en formular
1. INTRODUCCIN un conjunto de leyes que gobernaban la parte racional de la
inteligencia. Desarroll un sistema informal para razonar con
La inteligencia consiste no slo en el conocimiento, sino tambin silogismos, que se podan extraer conclusiones mecnicamente a
en la destreza de aplicar los conocimientos en la prctica partir de una serie de premisas inciales.
Aristteles define perfectamente en esta frase lo que entendemos
por inteligencia, la inteligencia es un atributo que tenemos por La idea de inteligencia artificial ha ido acompaada pues por la
naturaleza y el ser humano como creador se ve impulsado a dotar filosofa, en 1315 d.c. Ramn Lull adelanto que se podra obtener
a sus creaciones (artificiales y no naturales) de este atributo, razonamiento til mediante medios artificiales. Thomas Hobbes
consiguiendo de esta forma obtener un sin fin de beneficios y (1588-1679 d.c.) relacion la inteligencia artificial con la
aplicaciones destinados a mejorar la calidad de vida del ser computacin numrica.
humano, o por lo menos, as debera ser.
El ltimo elemento en la discusin filosfica es la relacin que
Las aplicaciones basadas en inteligencia artificial son existe entre conocimiento y accin, el objetivo es pues crear un
innumerables y van desde la biomedicina o educacin hasta la agente que tome decisiones que sean razonables o estn
prediccin de las condiciones meteorolgicas que realizan los justificadas. El algoritmo de Aristteles (anlisis basado en
sistemas expertos, objeto de estudio y razn de ser de este objetivos) se implementa 2300 aos ms tarde por Newell y
documento. Simon con la ayuda de su programa SRGP.
De inicio no se propone que hacer cuando varias alternativas nos
llevan al mismo objetivo o que hacer si ningn camino lleva a la
solucin.
Las ideas filosficas necesitan formalizarse formalmente por las
matemticas y Boole es el primero que desarrolla el concepto de
lgica formal.

Los fenmenos meteorolgicos son ocurrencias fsicas


observables dentro de la atmsfera, algunos de estos fenmenos
son por ejemplo lluvia, nieve, granito o niebla. Estos eventos
pueden alterar y alteran la actividad humana proponiendo en
algunos casos situaciones de peligro y amenaza.

- 45 -
A pesar de que una computadora puede ejecutar una instruccin
en un nanosegundo (mucho ms rpido que una neurona) el
cerebro acaba siendo 100.000 veces ms rpido en su conjunto.
Ms cercano a nuestra poca y en el 1940 introducimos el campo
de ingeniera computacional, para que la inteligencia artificial
llegue a ser posible se necesitan dos cosas, inteligencia y un
artefacto. El artefacto es la computadora y la ingeniera de
computacin tiene como objetivo desarrollar eficaz y
eficientemente un computador inteligente. Como podemos ver la
gnesis de la inteligencia artificial desde sus orgenes es extensa y
Aparece el teorema de incompletitud que demostr que en complicada.
cualquier lenguaje que tuviese la capacidad suficiente para La inteligencia artificial nace en 1956 y los conceptos que se
expresar las propiedades de los nmeros naturales existen deducen de ella se explican en la asignatura por lo que no
aseveraciones verdaderas no decidibles en el sentido de que no es ahondaremos en ellos y pasaremos a presentar los sistemas
posible decidir su validez con ningn algoritmo. expertos.
Ms tarde Turing afirma que su mquina es capaz de computar
cualquier funcin computable pero que ninguna mquina puede 3. SISTEMAS EXPERTOS
decidir si se producir una respuesta dado una entrada o si por lo
contrario seguir computando indefinidamente. Se considera a alguien experto en un problema cuando un
Otro principio importante de cara a abordar la inteligencia individuo tiene un conocimiento especializado sobre dicho
artificial es el concepto de intratabilidad que dice que un problema problema
es intratable si el tiempo que se necesita para resolverlo crece Podra afirmarse que para resolver un problema en la prctica
exponencialmente con el tamao de los casos. habra que conocer la respuesta de antemano, si no conocemos la
solucin como sabremos que lo hemos resuelto?
Adems de la lgica y clculo otro pilar bsico de la inteligencia El programa DENDRAL es el primero que enfocan este problema,
artificial se proporciona mediante la probabilidad, siendo diseado por Feigebaum y Lederberg encuentran una solucin al
Cardano el primero que propone el concepto en si de problema de inferir una estructura molecular a partir de la
probabilidad. La economa empleando dicho concepto aporta su informacin proporcionada por un espectro de masas. Se resolva
beneficio con la teora de decisiones y juegos. de la siguiente manera: generacin de todas las posibles
estructuras que correspondieran a la formula, prediccin a
Ms cerca de nuestro tiempo actual y con la Neurociencia (1861 posteriori del espectro de masas y comprobacin con el espectro
hasta presente) se ahonda ms en la IA (Inteligencias Artificial) ya real.
que esta se basa en el estudio del sistema neurolgico y en A continuacin comienza el proyecto de programacin heurstica
particular, del cerebro. (PPH) se dedico a determinar el grado con el que la nueva
Santiago Ramn y Cajal que termin acudiendo a sesiones metodologa de sistemas expertos poda aplicarse a otras reas de
espiritistas para intentar comprender aquello que no poda la actividad humana.
comprender utilizo la tcnica de Golgi para la observacin de Los sistemas expertos emulan el razonamiento de un experto en
neuronas individuales en el cerebro un dominio concreto. Con ellos se busca una mejor calidad y
rapidez en las respuestas dando as lugar a una mejora de la
productividad del experto, en la mayora de las ocasiones no
suplen al experto pero si lo ayudan en su labor.
Para un persona sera una experiencia traumtica realizar una
bsqueda de reglas posibles al completado de un problema,
mientras la persona responde a las preguntas formuladas por el
sistema experto este recorre las ramas ms interesantes del rbol
hasta dar con la respuesta al fin del problema.
Estos SSEE (sistemas expertos) son aplicaciones informticas, son
una amalgama de programas cimentados sobre una base de
conocimientos de uno o ms expertos en un rea. Estos sistemas
imitan a los humanos en la resolucin de problemas, que no
necesariamente tienen que estar relacionados con la IA, aunque en
este documento es en ese tipo de sistemas expertos en los que nos
vamos a centrar.
La ciencia est todava lejos en este aspecto ya que no hay Los sistemas expertos tienen una gran flexibilidad ya que solo
ninguna teora de cmo se almacenan recuerdos individuales. basta con introducir una nueva regla sin necesidad de cambiar el
La conclusin increble de todo esto, por si no es ya de por si funcionamiento del programa.
increble, es que una coleccin de pequeas clulas genera Otra de las ventajas de este tipo de sistemas es la gran cantidad de
razonamiento, accin y conciencia. Los cerebros generan informacin que manejan, manejar tal volumen de informacin es
inteligencias. una tarea compleja para el analista humano.

- 46 -
(Saussure 1781). Y es que hasta que no existieron estos aparatos
de medida la prediccin meteorolgica era imprecisa y, en
demasiadas ocasiones, arbitraria y localizada ya que las
previsiones se basaban en sucesos meteorolgicos ya pasados y en
circunstancias pasadas que posiblemente podan no ser parecidas a
las del momento posterior de prediccin, no siempre que hay
nubes en el cielo llueve, por ejemplo. Fue Benjamin Franklin el
primer americano en registrar de modo seguro y detallado la
condicin del tiempo sobre la base diaria y hacer una previsin
sobre esa misma.
El primero en realizar una explicacin general de la circulacin
atmosfrica global fue George Hadley. A este le siguieron otros
estudios de Gaspard-Gustave Criolis y William Ferrel entre otros.
No fue hasta comienzos del siglo XX cuando el progreso en la
compresin de la dinmica atmosfrica dio comienzo a la creacin
de la moderna previsin del tiempo basada en modelos
Un SE se basa en conocimiento declarativo (hechos sobre objetos) matemticos. En 1922, Lewis Fry Richardson descubri como
y de control (informacin sobre el seguimiento de una accin). simplificar las variantes de las ecuaciones de los fluidos para
Este tipo de sistemas tienen una serie de requisitos para poder ser facilitar una previsin del tiempo sencilla mediante soluciones
considerados eficaces. matemticas. Aun con estas simplificaciones, el clculo numrico
era bastante grande.
En primer lugar deben ser capaces de dar explicaciones sobre los
razonamientos a los que llegan. Cada regla debe tener su Finalmente, en los aos 50 se empezaron a mostrar factibles los
explicacin y debe estar basada en hechos. experimentos de clculo numrico con computadores. Dando
lugar a la primera previsin realizada con este mtodo usando los
En segundo lugar, un SE, debe ser capaz de adquirir conocimiento
modelos baroscpicos.
fruto de la experiencia. Es decir, tiene que ser capaz de modificar
los conocimientos almacenados si la experiencia indica que no En los aos 60 la meteorologa adopto la teora del caos y los
son correctos del todo. avances matemticos obtenidos en este campo, de esta forma se
Las partes bsicas de un SE, como ya se vio en clase, son la base ayud a estabilizar el lmite de previsibilidad del modelo
de conocimientos, la base de hechos, el motor de inferencia, los atmosfrico (efecto mariposa).
mdulos de justificacin y la interfaz de usuario. Otro hito importante en la meteorologa es el lanzamiento de
Existen diversos tipos de SE atendiendo al modo de llegar a la satlites meteorolgicos. El primero fue el TIROS-1, lanzado en
solucin de los problemas que se plantean. Estn los sistemas 1960, que marc el inicio de una difusin global de la informacin
basados en reglas previamente establecidas (lgica difusa), los climtica.
basados en casos (CBR, razonamiento basado en casos) y los
basados en redes bayesianas (razonamiento basado en la
estadstica y en el teorema de Bayes).
Algunos ejemplos importantes dentro del mbito de los SSEE son
DENDRAL (como se cito antes), XCon, Mycin, CLIPS, Prolog

4. SISTEMAS EXPERTOS EN EL MBITO


DE LA PREDICCIN METEOROLGICA

Este documento ha comenzado con una cita de Aristteles, este


filsofo griego no solo reflexion sobre la inteligencia sino que
tambin fue el primero en hablar de la meteorologa. l acuo ese
trmino que proviene del griego meteoron (referente a objetos
altos en el cielo). De esta forma, sin saberlo, Aristteles trabajo en
dos temas muy diferentes a priori que, en la actualidad, estn muy
relacionados y que estn siendo tratados en este documento.
Aunque fue Aristteles quien acuo el trmino meteorologa, fue
su discpulo Teofrason quien habl por primera vez de previsiones
del tiempo basadas en experiencias vividas y recopiladas.
Sin embargo, fueron necesarios algunos avances tcnicos para que
se llegara a poder medir la temperatura ambiental con un
termmetro (Galileo 1607), la presin con un barmetro
(Torricelli 1643), la velocidad del viento con un anemmetro Y as llegamos hasta el da de hoy, en el que el uso de
(Hooke 1667) o la humedad con el higrmetro de cabello computadores y modelos matemticos para la previsin del

- 47 -
tiempo estn totalmente afianzados y en el que los satlites juegan
un papel crucial a la hora de saber como se desplazan las
tormentas, ciclones,
En la actualidad existen muchos y muy diversos SSEE
relacionados con los fenmenos atmosfricos. Algunos de ellos
son: Sistema Automtico de Informacin Hidrolgica (SAIH),
pronstico de vientos en el Mediterrneo (MEDEX), pronstico
de ciclones tropicales, anlisis del tipo de nubes en imgenes
satelitales, estudio de imgenes satelitales para clasificar el hielo
marino y Prometeo diseado para la generacin y distribucin
automtica de la prediccin a partir de modelos matemticos,
entre otros. Este ltimo se tratara en este documento con una
mayor extensin y profundidad. Adems, existen sistemas
expertos que, basndose en los datos meteorolgicos recogidos
por otros sistemas, llevan a cabo labores de otra ndole como
puede ser por ejemplo facilitar a los conductores informacin
meteorolgica en tiempo o real o ayudar a los rganos gestores de 4.2 Pronstico de vientos en el Mediterrneo
trfico para un uso ms dinmico y en tiempo real de los datos
meteorolgicos.
(MEDEX)

MEDEX (MEDiterranean EXpert system) es un paquete software


que usa tecnologas de inteligencia artificial para predecir la
4.1 Sistema Automtico de Informacin creacin, continuacin y fin de vientos huracanados. Este software
Hidrolgica (SAIH) hace uso de sistemas expertos que simulan la experiencia de un
meteorlogo de aproximadamente 25 aos de experiencia en el
El SAIH es una red de recogida de datos de precipitacin y de Mediterrneo para hacer frente a la imprecisin inherente a este
control de caudales circulantes. tipo de conocimientos. Pero, por qu surge la idea de MEDEX?
En la zona del mediterrneo son especialmente tiles estos La zona del mediterrneo, como ya se ha indicado anteriormente,
sistemas porque las crecidas de los ros son muy comunes (existe es una de las de ms difcil pronstico principalmente debida esta
una creciente ocupacin humana de las vegas y riberas fluviales) y circunstancia a la topografa montaosa que lo rodea. La
muy repentinas. Estas inundaciones causan grandes daos, tanto prediccin de los vientos aleatorios de esta zona requiere muchos
materiales como humanos, econmicos o sociales, por lo que se aos de experiencia y de muchos datos los cuales no se tienen. De
puso de relieve la necesidad de medidas eficaces de previsin, esta forma, MEDEX es diseado como un sistemas de prediccin
prediccin y control de las crecidas de los ros. (que proporciona probabilidades de eventos de vientos
huracanados para complementar las decisiones de pronstico de
Sin embargo, esto no es sencillo, existen dos problemas sistemas) y un sistema de aprendizaje (fue entrenado con la
principalmente: hay un tiempo muy corto para avisar a la experiencia de 25 aos en el mediterrneo y aprende con la
poblacin expuesta al riesgo y una escasa informacin hidrolgica utilizacin de los usuarios).
en los momentos clave. Se hacen necesarios datos en tiempo real
o incluso poder preveer mediante modelos el comportamiento de MEDEX hace uso de sistemas expertos y de tecnologas de
las cuencas. conjuntos difusos. Las reglas que siguen sus sistemas expertos en
sus inicios fueron derivadas por Brody y Nestor (1980). La ayuda
El primer sistema de este tipo que se creo en Espaa fue el de la de los sistemas difusos, cuyas respuestas no son si o no, sino
Confederacin Hidrogrfica del Jcar en 1984 tras el desastre del rangos de 0 (absolutamente no) a 4 (definitivamente si). Las
embalse de Tous (el cual se podra haber prevenido con un buen reglas estn expresadas en trminos de lgica difusa, de forma que
sistemas automtico q trabajara con los datos como hace el los umbrales son reemplazados por conjuntos difusos. Finalmente,
SAIH). las salidas difusas son porcentajes (de 0 a 100%) que indican la
Los datos captados por los sensores del sistema se almacenan en probabilidad de la prediccin
los puntos de control. A su vez, estos puntos de control transmiten .
la informacin va radio y va satlite al Centro de Proceso (para
el caso del SAIH del Jcar este centro se encuentra en Cuenca). El 4.3 Meteosafety
centro de proceso es una sala de control del SAIH donde se
centralizan las labores de gestin y mantenimiento de la
El proyecto Meoteosafety pretende mejorar la seguridad vial en
informacin que se recibe y, en el caso de Espaa, se suele situar
las carreteras espaolas haciendo un uso inteligente de la
en la sede de la Confederacin correspondiente. Para el caso del
informacin recibida por parte de los sistemas meteorolgicos
Jcar la sede de la Confederacin del Jcar est en Cuenca.
existentes.
Est liderado por el Instituto de Robtica y Tecnologas de la
Informacin y la Comunicacin (IRTIC) de la Universidad de
Valencia (UV) y tambin est financiado, en parte, por el Centro
de Estudios y Experimentacin de Obras Pblicas (CEDEX). Se
inici en el 2008 y la creacin del prototipo final se llevo a cabo a
finales del 2010, la cual est en fase de implantacin en este
momento.

- 48 -
Los modelos actuales de prediccin meteorolgica se basan en la
integracin numrica de un conjunto de ecuaciones diferenciales
de compleja resolucin. El tiempo de cmputo necesario que
tenemos que asumir como coste es tan elevado que el tamao de
la rejilla no es suficiente para dar pronsticos locales que se
adecuen a las propias caractersticas de la zona.
Este proyecto cuenta con dos lneas de actuacin: Un ejemplo de esto es el Centro Europeo de Prediccin a Plazo
- Actualizacin dinmica y en tiempo real de los paneles Medio cuya rejilla no permite obtener un pronstico
luminosos de carretera, para que los usuarios tengan en meteorolgico a una resolucin menor a 100 Km.
cada momento la informacin meteorolgica. El sistema A pesar de ello contamos con un registro completo de las
experto Meteosafety trata los datos provenientes los caractersticas de losmicroclimas gracias al I.N.M (Instituto
diferentes sistemas meteorolgicos para ofrecer dichas Nacional de Meteorologa).
predicciones.
Nos encontramos con el problema de tener diferencias no
- Anlisis de las acciones a tomar para reducir las
despreciables en los patrones climticos de estaciones cercanas
consecuencias de los fenmenos meteorolgicos
observando que los patrones de correlacin son muy diferentes y
adversos (envo de datos al Centro de Gestin de
mostrando la limitacin de los modelos numricos a la hora de
Trfico, por ejemplo)
realizar pronsticos de forma local.
Adems de estos dos frentes de actuacin se pretende
aprovechar el conocimiento adquirido para asesorar a los
organismos responsables de carreteras y analizar la influencia
de los factores meteorolgicos sobre la accidentalidad de las 2. Sistema Prometeo
mismas y as poder ofrecer soluciones.
Para facilitar la implantacin de este innovador sistema los El proceso de inferencia se basa en dos etapas: se realiza un
trabajos se han basado en los estndares y tecnologas que ya clculo de analogas entre la salida del modelo numrico para el
existen en el mercado. da problema y los datos recogidos por ERA que hemos
La integracin de estos sistemas expertos va a ayudar a comentado anteriormente, obtenindose un conjunto de das
realizar un gran avance para la seguridad de los conductores y anlogos.
para la gestin eficaz del trfico y de las carreteras,
Posteriormente se infieren pronsticos a mayor resolucin en base
a los datos numricos y registros para los das anlogos obtenidos
utilizando un modelo de regresin mltiple y una red neuronal.
4.4 PROMETEO: Sistema Experto basado en
redes Neuronales

1. Introduccin
Prometeo, de la estirpe de los Titanes, fue segn la mitologa el
creador de la humanidad, que este hizo con barro y agua. Es por
tanto un buen nombre para definir a este sistema experto ya que el
ser humano se ve atrado a dotar de inteligencia (al igual que
Prometeo) los sistemas consiguiendo de estos beneficios prcticos
para la humanidad.
Este sistema utiliza las predicciones a baja resolucin de los
modelos numricos sobre el grid peninsular y busca En la figura anterior podemos ver las etapas que se realizan para
configuraciones anlogas en las serie diaria 1979-1993 de la base llegar finalmente a la prediccin meteorolgica, vamos a ir
de datos ERA (del Centro Europeo de Meteorologa). Estas documentando progresivamente dichas etapas.
configuraciones anlogas permiten entrenar una red neuronal La recogida de datos ERA (datos que utiliza Prometeo) consiste
utilizando como salida los datos locales de cualquier observatorio en la produccin de un re-anlisis a partir de los datos recogidos
del Instituto Nacional de Meteorologa obteniendo, de esta forma, mediante diversos medios.
un sistema para mejorar la resolucin de los modelos numricos. Con los datos obtenidos se construyen las condiciones inciales
para introducir en el modelo numrico del CEPPM obteniendo
predicciones sobre la evolucin temporal de la atmsfera.

- 49 -
Una vez hecho esto debemos calcular un conjunto de das Vamos a profundizar un poco en este concepto para tener ms
anlogos para un da problema, para obtenerlos se compara el claro en qu consiste una red neuronal y como se aplica al caso de
estado de la atmsfera del da problema con los estados que nuestro estudio.
tenemos de ERA. El nmero de variables asociadas con el grid del Como hemos comentado brevemente el cerebro humano tiene
modelo es demasiado grande por lo que seleccionamos variables 10^11 de neuronas y 10^14 sinapsis (conexiones) en el sistema
representativas que satisfacen nuestros objetivos. nervioso, esto implica que por razones fsicas somos capaces de
Las variables tienen en cuenta el comportamiento de la atmsfera mejorar el tiempo de conmutacin de las neuronas, el problema es
en la escala sinptica (global) y el comportamiento en la que las neuronas naturales mejoran la conectividad en un orden de
mesoescala (local). 1000 veces superior.
La discrepancia de dos das se obtendra en base a la distancia Vamos a explicar con mayor detalle los modelos de regresin y
euclidea de los vectores numricos resultantes de la mesoescala y redes neuronales desde un punto de vista ms matemtico.
la escala sinptica en los das analizados. Los modelos de regresin estudian las relaciones entre una serie
de variables (independientes) xi y otras variables dependientes o
de respuesta denotadas por y en funcin de los valores de las
xi.
3. Modelos de regresin y redes
neuronales
Una vez obtenidos los das anlogos como hemos visto
anteriormente se puede obtener un pronstico local donde
tengamos un observatorio del INM, para ello lo que realiza es la
extraccin de una relacin entre los valores del modelo numrico
como son la direccin del viento o temperatura y el valor a
pronosticar y registrado en el observatorio.
Para ello lo ms sencillo es utilizar un modelo de regresin
mltiple para obtener una relacin lineal ptima entre las
variables.
Sin embargo en la figura siguiente podemos ver la necesidad de
obtener un modelo no lineal que nos permita ms flexibilidad en
el modelo.
Otro problema importante es determinar el nmero ptimo de
anlogos. Si usamos un conjunto reducido no obtendremos buenos
resultados de estimacin. Por otra parte, si usamos un conjunto
muy amplio corremos el riesgo de ocultar la dinmica particular Donde:
del conjunto de observaciones.

Donde h(.) es la funcin que liga las componentes i son los


coeficientes, N es el nmero de variables independientes y 0 es la
pendiente.
Como hemos comentado lo ms sencillo es utilizar un modelo
lineal, este modelo lineal se puede implementar como un modelo
una red neuronal simple. La red neuronal tiene una unidad de
sesgo constante a 1, una entrada x y una salida:

Se ve aqu por tanto la importancia de las redes neuronales en


estos sistemas expertos.

- 50 -
como pueden ser Cantabria y Asturias. Estas comarcas se
El modelo lineal tiene por lo tanto 3 componentes, la variable encuentran en el territorio norte de la pennsula Ibrica pero deben
aleatoria y (con media y varianza 2), un componente que mostrar sus diferencias locales como se sobreentiende.
relaciona las variables independientes (observaciones) x i con el Los pronsticos se actualizan cada 12 horas y tras la supervisin
predictor lineal y una funcin que relaciona la media con el de un experto se envan a una pgina web.
predictor lineal. Como podemos ver en la figura anterior tenemos mltiples
Como hemos comentado lo ms sencillo es utilizar un modelo de variables de salida que contienen el estado de las rachas de viento,
regresin mltiple lineal, este es una generalizacin de lo que niebla, nubosidad, lluvia si la hubiere, granizo, o el estado de la
acabamos de contar si se considera que la variable aleatoria se marea.
distribuye como una normal y la funcin h(.) asume que es la Mostramos aqu los resultados:
identidad .
El modelo quedara por lo tanto de la siguiente forma:

Donde . El objetivo es encontrar los coeficientes i


que minimizan la suma de cuadrados de los errores.
Este problema es equivalente al de una red neuronal con una sola
capa donde los i son los pesos y la funcin de activacin es la
identidad.
El problema es que necesitamos un modelo no lineal que nos de la
flexibilidad que nos falta.
Para ello la funcin de activacin debe ser una funcin no lineal,
el modelo quedara de la siguiente forma:

Donde como ya sabemos xip son las entradas e yi las salidas.


Cada procesador realiza una actividad muy simple: valor
sigmoidal de la combinacin lineal de las actividades recibidas
por la neurona:

5. CONCLUSIONES
A lo largo de este documento hemos hecho una introduccin a la
inteligencia artificial cuya primera piedra pone Aristteles en su
obra Metafsica, hemos visto la parte ms histrica de la
inteligencia artificial viendo su evolucin hasta nuestros das.
Hemos justificado por lo tanto la razn de ser de este documento y
dado el porqu de la razn que hace tan importante la IA.
Una vez hecho esto nos hemos centrado en los sistemas expertos,
los hemos definido y comprendido para pasar a los sistemas
expertos en el mbito de la meteorologa.
Hemos visto los SEs SAIH, MEDEX y METEOSAFETY para
pasar a un ejemplo prctico de esto: el sistema experto
PROMETEO.

4. Salidas del sistema Hemos introducido PROMETEO y visto en que etapas resuelve el
A continuacin vamos a mostrar las salidas del sistema proceso de prediccin describiendo el modelo de regresin lineal
PROMETEO para un par de predicciones entre distintas comarcas y no lineal desde el punto de vista de las redes neuronales.

- 51 -
Por ltimo hemos visto algn resultado prctico del sistema [3] Kandel, A. (1992). Fuzzy Expert Systems, CRC Press, Boca
Prometeo. Raton, FL, 314 pp. (MEDEX)
Visto todo lo anterior podemos concluir la importancia de la IA
no solo para un proceso que puede no parecer crtico como la [4] Zadeh, L.A. (1983). The role of fuzzy logic in the
prediccin meteorolgica (realmente si es crtico y beneficioso), management of uncertainty in expert systems. Fuzzy Sets Syst.,
sino en cualquier mbito que involucra a la especia humana. 11: 199. (MEDEX)
Es por tanto una herramienta que en s misma es altamente
interesante y beneficiosa y que solo bajo un mal uso del ser
humano puede ser destinada para fines pocos ticos. Es por tanto [5]MEDEX
labor nuestra usar el conocimiento con fines justificados y http://www.nrlmry.navy.mil/~medex/
beneficiosos para nosotros.
Desde el punto de vista meteorolgico, permite evitar la sesga de
[6] SAIH
vidas por catstrofes naturales y nos ha permitido comprender
mejor los sistemas expertos. http://www.mma.es/portal/secciones/acm/aguas_continent_zonas_
asoc/saih/index.htm
El sistema PROMETEO nos resulta pues, un sistema de alta
importancia que nos permite realizar predicciones locales gracias
a los modelos de regresin no lineales que hemos explicado en [7] METEOSAFETY
este documento, logrando de esta forma, una buena precisin y
resolucin en la prediccin que como su nombre indica no deja de http://www.tecnocarreteras.es/web/items/1/6/meteosafety-un-uso-
ser eso, una prediccin. inteligente-de-la-informacion-meteorologica

[8] PROMETEO
6. BIBLIOGRAFA
[Bishop97] Bishop, B. Neural Networks for Pattern Recognition.
[1] Wikipedia Clarendon Press, 1997
http://es.wikipedia.org/wiki/Sistema_experto Juan Miguel Marn Diazaraque. Introduccin a las Redes
Neuronales Aplicadas
http://es.wikipedia.org/wiki/Historia_de_la_meteorolog%C3%AD
a PROMETEO: Un Sistema Experto para el Pronstico
Meteorolgico Local basado en Redes Neuronales y
http://es.wikipedia.org/wiki/Sistema_Autom%C3%A1tico_de_Inf Clculo de Analogas.
ormaci%C3%B3n_Hidrol%C3%B3gica grupos.unican.es/ai/meteo/articulos/caepia99.pdf

[2] Brody, L. R. & Nestor, M.J.R. (1980). Regional Forecasting http://www.monografias.com/trabajos30/sistemas-


Aids for the Mediterranean Basin (Handbook for Forecasters in expertos/sistemas-expertos.shtml#ejempl
the Mediterranean, Part 2) (MEDEX)
http://grupos.unican.es/ai/meteo/Book.html

- 52 -
Traduccin automtica. Tcnicas y aplicaciones
Isabel Cuadrado Gutirrez David Ferrer Figueroa
Ingeniera de Telecomunicacin Ingeniera de Telecomunicacin
Universidad Carlos III de Madrid Universidad Carlos III de Madrid
100060618@alumnos.uc3m.es 100060609@alumnos.uc3m.es

ABSTRACTO en da en todo tipo de lenguas hace que sea ms que necesaria la


mecanizacin de la traduccin.
En este texto se aborda un tema de gran relevancia en la La traduccin supone todo un reto para los seres humanos dado
actualidad, el concepto de la traduccin automtica. Se analizar que no tenemos el mismo dominio en ambas lenguas, pero el
esta desde su origen hasta la actualidad, tratando la evolucin de hecho de intentar que todo el proceso de traduccin lo lleve a cabo
las distintas tcnicas empleadas para obtener la mayor calidad un sistema automatizado se convierte en un trabajo todava ms
posible en las traducciones. complejo.
Asimismo, se hace un breve repaso a las aplicaciones ms
utilizadas y al desarrollo futuro previsto en este campo teniendo Por este motivo, hoy en da uno de los principales objetivos del
en cuenta, entre otros factores, la rentabilidad del negocio y la ser humano es conseguir que, mediante el uso de tecnologa, se
calidad de la traduccin. puedan pasar las palabras habladas y escritas en una lengua a otra
sin perder informacin por el camino ni decir cosas diferentes a
las del texto original.
Categoras y descripciones
I.2.6.g [Computing Methodologies]: Machine learning Uno de los pioneros en dar a conocer la traduccin automtica
fue Warren Weaver que adems de introducir este concepto
I.2.7.f [Computing Methodologies]: Machine translation sugiri algunos mtodos para encarar la disciplina como son el
uso de tcnicas criptogrficas, los anlisis estadsticos, la
exploracin de la lgica subyacente, la aplicacin de los teoremas
Trminos generales de Shannon. Los primeros desarrollos informticos se realizaron a
finales de la dcada de 1950 pero no se obtuvieron los resultados
Documentacin, Algoritmos, Teora
que se esperaba.

En la actualidad, no hay ningn sistema capaz de obtener


Palabras clave resultados de igual calidad que un traductor humano.
Especialmente, si la traduccin se realiza sobre un texto de
lenguaje comn o coloquial. Nadie ha sido capaz hasta ahora, ni
empleando el mejor programa que hay en el mercado, de ofrecer
la fluidez y habilidad que nos proporcionan los nativos de un
1. INTRODUCCIN idioma y los traductores humanos. No nos cansaremos de reiterar
lo complicada que puede llegar a ser la traduccin, debido en gran
Desde el origen de los tiempos, el hombre, como ser social, ha
medida a que el significado de las palabras depende siempre del
necesitado comunicarse con otras personas. Si bien en un
contexto en el que se formulan.
principio el entorno del ser humano era restringido, conforme ha
ido avanzando el tiempo, el hombre ha ido expandiendo su rea de Todos los traductores de los que disponemos en la red hacen que
accin, lo cual le supone un problema cuando ha de hacerlo con en la gran mayora de ocasiones la traduccin se haga inteligible
alguien que no habla su misma lengua. Esta necesidad de entre otros motivos porque realizan mal las puntuaciones, tienen
comunicacin unida a la cantidad de informacin disponible hoy errores gramaticales, desplazan las palabras y son bastante
imprecisos. La deficiencia con la que cuentan algunos sistemas en
cuanto a traducciones se refiere es tal que slo son capaces de
traducir algunas palabras o frases hechas como ocurre por ejemplo
con algunos sistemas de reservas de vuelos.
Permission to make digital or hard copies of all or part of this work
for personal or classroom use is granted without fee provided that Se ha observado sin embargo, que cuando se pretende realizar una
copies are not made or distributed for prot or commercial advantage traduccin entre dos lenguas que no tienen races comunes (como
and that copies bear this notice and the full citation on the rst page. por ejemplo el espaol y el alemn) la calidad de la traduccin
To copy otherwise, to republish, to post on servers or to redistribute empeora mucho en comparacin con la que se consigue
to lists, requires prior specic permission and/or a fee. traduciendo entre lenguas de races afines (por ejemplo, las
Copyright 2011 Isabel Cuadrado Gutirrez y David Ferrer lenguas romances: Espaol, portugus, francs, etc.).
Figueroa Se ha comprobado que uno de los factores ms importantes para
Inteligencia en Redes de Comunicacin. 2011 obtener una traduccin de alta calidad, es el grado de
especializacin, ya que cuanto ms especializado est el sistema al

- 53 -
tipo de texto y vocabulario que se pretende traducir mejor ser la La idea de utilizar ordenadores para traducir idiomas fue
calidad del texto obtenido. propuesta en 1946 por A.D. Booth entre otros.
As pues, un sistema especializado en traducir cotizaciones en
bolsa produce traducciones muy buenas, incluso para lenguas que En la dcada de 1950, se llev a cabo el conocido como
no son afines. Sin embargo, esta idea no se puede aplicar a Experimento de Georgetown, donde se tradujeron exitosamente
campos como la medicina. ms de cincuenta frases del ingls al ruso. Este experimento
supuso un punto de inflexin en esta rea de trabajo, y tambin el
La traduccin es un proceso ms tedioso de lo que parece ya que comienzo de una poca dorada en el campo, donde se invirti una
con sustituir todas las palabras por su significado correspondiente gran cantidad de dinero.
no es suficiente, tenemos que tener en cuenta otra gran cantidad En 1954, en el Birkbeck College (Universidad de Londres) se
de factores como son el orden en que aparecen las palabras, la consigui realizar una traduccin muy bsica entre el francs y el
influencia que tienen unas sobre las otras, el contexto en el que ingls usando la mquina APEXC. Otro ejemplo, fue la lectura y
son escritas, etc. Esto es debido a que todos los idiomas cuentan escritura de textos Braille por ordenador.
con tres factores fundamentales en las construcciones de oraciones
como son la morfologa de las palabras, la sintaxis de las frases y Por aquel entonces se esperaba que la traduccin automtica fuese
la semntica, un texto por muy sencillo que parezca puede contar un problema resuelto en unos 4 o 5 aos. Pero la realidad fue muy
con palabras o frases ambiguas. diferente, y conforme se observaba que los frutos obtenidos no
Sin embargo, hoy en da existen mtodos estadsticos que eran los esperados, la financiacin dedicada a esta rea se fue
traducen textos sin tener en cuenta la gramtica, pero la tendencia reduciendo notablemente.
actual es aplicar todas las metodologas a lo que llamamos corpus Por aquel entonces, la traduccin automtica se realizaba casi por
lingsticos. completo mediante sistemas basados en reglas. Como su nombre
indica, estos sistemas de traduccin requeran de expertos en
2. HISTORIA: lingstica que formasen los diccionarios de ambos lenguajes
La idea de la traduccin automtica se remonta al siglo XVII. En teniendo en cuenta tanto reglas gramaticales como sintcticas. Por
1629, Ren Descartes ya propuso un lenguaje universal, con ideas ejemplo, que en espaol los adjetivos siguen al nombre y en ingls
equivalentes en otras lenguas que compartiesen un mismo es al revs. No obstante, la gran complejidad de los idiomas, con
smbolo. todas sus variantes, haca que los sistemas resultantes se
encontrasen muy lejos de una traduccin de calidad.
En el siglo XIX, Jean-Franois Champollion consigui, tras
muchos intentos fallidos, descifrar los jeroglficos egipcios a Con los avances tecnolgicos propios de la dcada de los 80, se
travs del primer texto bilinge conocido, la Piedra Rosetta. Esta consigui abaratar y aumentar la potencia de los ordenadores, y
piedra es un fragmento de una estela egipcia que contiene un esto permiti a los expertos centrar su investigacin en otros
mismo texto escrito en tres lenguas distintas: Egipcio demtico, modelos de traduccin, los llamados modelos estadsticos. Desde
antiguos jeroglficos egipcios, y griego antiguo. entonces, los investigadores han ajustado sus algoritmos
basndose en esta metodologa.
Otro momento de gran importancia en el campo sucedi con el
boom de Internet. Desde entonces han salido a la luz ingentes
cantidades de textos iguales en diversos idiomas. Este hecho ha
permitido los sistemas comparar muchos ms textos y conseguir
traducciones mejores.
Sin embargo, prcticamente desde que se comenz a trabajar en
este aprendizaje mquina, ha habido diversidad de opiniones
acerca de si una mquina podr ser capaz algn da de producir
traducciones de texto con una gran calidad. Si bien grandes
expertos en el rea consideran este objetivo como imposible, y
relegan el papel de la traduccin automtica a una herramienta
para el traductor humano, otros creen que en un futuro s ser
posible automatizar las traducciones con una calidad ptima

3. TRADUCCIN AUTOMTICA
Este subcampo de la lingstica computacional investiga el uso de
programas para traducir texto o voz entre dos idiomas. [1]
Existen diferentes aproximaciones para traducir lenguajes. La
aproximacin ms sencilla consiste en cambiar directamente
palabras provenientes de un lenguaje en palabras de otro. Sin
Imagen 1. Piedra Rosetta
embargo, este mtodo puede inducir a una mala traduccin,
puesto que en muchas ocasiones, la informacin que prima se
Para poder descifrarla, Champollion tuvo que buscar patrones basa en el contexto y la frase en las que se encuentra la palabra a
entre los textos, smbolos repetidos y posteriormente encontrar su traducir.
significado.

- 54 -
Una manera de solventar el problema anterior consiste en situar el destino. Sin embargo, esta representacin se puede dividir en
contenido a traducir en el contexto del que proviene. As, se diversos niveles segn su profundidad: Se pueden traducir todas
pueden acotar los posibles significados del texto y sus las palabras independientemente de las dems, o bien, se puede
traducciones. Por ello, muchos programas hoy en da permiten crear una interlingua, donde existe una representacin intermedia
focalizar la bsqueda en funcin de las profesiones o de los completa. En la Imagen 2 se puede observarlas aproximaciones
campos a los que va dirigido el texto. basadas en diccionario (color rojo), en transferencia (color verde)
e interlingua (color azul).
No obstante, la ayuda de las personas sigue siendo muy til (y
necesaria en muchos casos) para obtener mejores resultados en la
traduccin. Por ejemplo, si se le indica al sistema que palabras del
texto son nombres propios, acrnimos, o palabras en general que
no se deben traducir, el traductor puede ofrecer resultados ms
precisos.

4. COMPONENTES DE UN SISTEMA DE
TRADUCCIN AUTOMTICA
La traduccin automtica puede dividirse en tres fases principales.
Primero el sistema tiene que analizar la entrada en el lenguaje
original para crear una representacin interna. Entonces,
normalmente se manipula esta representacin interna para
transferirla a una forma adecuada del lenguaje destino.
Finalmente, genera la salida en el lenguaje de destino.
Normalmente, un sistema de traduccin automtica contiene
componentes de anlisis, transferencia y generacin. Estos
componentes incorporan un gran conocimiento de las palabras
(conocimiento lxico) y del lenguaje (conocimiento lingstico).
Este conocimiento es almacenado en uno o ms lexicones y
posiblemente en otras fuentes de conocimiento lingstico, como
gramticas. La interfaz de usuario es invariablemente una parte
crucial de la mayora de los sistemas de traduccin automtica. La
interface permite a los usuarios verificar, desambiguar y si es
necesario, corregir la salida del sistema. Otra caracterstica comn Imagen 2. Modelos de traduccin automtica basados en
dentro del procesamiento de lenguaje natural es el uso de grandes reglas
corpora (plural de corpus). Un corpus es una gran coleccin
de texto que ha sido correctamente etiquetada, y se emplea para
adquirir el conocimiento lxico y lingstico requerido. 5.1.1 Basada en diccionario
El lexicn es un componente importante de cualquier sistema de
traduccin automtica Contiene toda la informacin relevante Se basa en el uso de entradas de diccionario. Esto quiere decir que
acerca de palabras y frases que se requiere para los distintos se har una traduccin directa palabra por palabra, que por lo
niveles de anlisis y generacin. Una entrada tpica del lexicon general, carece de relacin con las palabras colindantes.
para una palabra contendra la siguiente informacin acerca de la
palabra: La parte de discurso, las variantes morfolgicas, las Si bien esta tcnica es la ms rudimentaria, es vlida para la
palabras tpicas, frases o construcciones tpicas que acompaan a traduccin de listas de frases (ej. Frases incompletas o catlogos
esta palabra, algn tipo de informacin semntica acerca de la sencillos de productos y servicios).
palabra e informacin acerca del equivalente de la palabra en el Tambin se puede utilizar para facilitar la traduccin manual si la
lenguaje de destino. Algunos sistemas prefieren dividir el lexicn persona a cargo de la traduccin tiene un elevado nivel de
en lexicones de fuente, destino y transferencia que enlaza los otros comprensin en ambos idiomas, y por lo tanto, es capaz de
dos. El formato exacto de los lexicones depende del diseo corregir errores de sintaxis y gramtica.
ingenieril.
En la Imagen 3, se puede apreciar un ejemplo de un mal uso de la
traduccin basada en diccionario.

5. TIPOS DE TRADUCCIN
AUTOMTICA
5.1 Basada en reglas
Este es el mtodo inicial explicado anteriormente; consiste en
dividir el texto original en fragmentos, y convertir estos
fragmentos en partes del texto en el lenguaje de destino.
El proceso a seguir en este tipo de traducciones es el siguiente:
Primero, se crea una representacin simblica del texto y
posteriormente se pasa de esa representacin al lenguaje de

- 55 -
Este proceso se va ampliando hasta que implica a una parte de
texto suficientemente grande.
Los resultados proporcionados por este mtodo son muy buenos,
aunque sin embargo, conlleva un elevado coste computacional por
todas las iteraciones que son necesarias para traducir un texto.
Sin embargo, como contrapartida, es muy sencillo ampliar la
traduccin a nuevos idiomas, ya que al no precisar de un lenguaje
intermedio, la traduccin se realiza nicamente con diccionarios y
un corpus apropiado.

5.3 Basada en corpus


La traduccin automtica realizada en base a un corpus lingstico
consiste en el anlisis de textos lingsticos con sus respectivas
traducciones. Podemos diferenciar entre dos tipos de mecanismos
que emplean los corpus como son los basados en mtodos
estadsticos y los basados en ejemplos. Para comprender el
Imagen 3. Traduccin basada en diccionario funcionamiento de ambos mtodos que explicaremos a
continuacin hay que tener claros los conceptos siguientes:
- Corpus bilinge paralelo: Es la seleccin de un texto original y
5.1.2 Basada en transferencia: de su traduccin en otra lengua, colocado todo de forma natural
Este mtodo tiene en cuenta que para poder realizar sin haber realizado ningn anlisis ni separacin.
adecuadamente una traduccin es necesario tener una
representacin intermedia que sea capaz de entender el significado - Corpus bilinge alineado: Es la seleccin de un texto original y
de la frase original y as, poder producir la traduccin adecuada. de su traduccin en otra lengua colocada siguiendo algn tipo de
orden pudiendo ste ser realizado por palabras, frases o prrafos.
Normalmente, se sigue el siguiente patrn a la hora de realizar una
- Alineamiento: Este trmino se define como la accin de
traduccin basada en transferencia: Primero se analiza el texto de
identificar en dos textos en idiomas diferentes, qu partes de uno
entrada sintctica y morfolgicamente para crear la representacin
de ellos (prrafos, frases, palabras) se corresponden con las del
interna. Posteriormente, se genera la traduccin desde esta
otro.
representacin interna empleando vocabulario y reglas
gramaticales.
Esta tcnica produce resultados satisfactorios en 5.3.1 Traduccin automtica estadstica
aproximadamente un 90% de los casos. El empleo de tcnicas estadsticas en la traduccin automtica
cuenta con defectos y virtudes como suele ocurrir con muchos
aspectos hoy en da. Un beneficio destacable es el poder conseguir
5.1.3 Basada en un lenguaje intermedio: que un sistema aprenda a traducir gracias a una inmensa cantidad
de ejemplos de los que se realiza su traduccin previamente.
En este caso, tambin se considera necesario emplear un lenguaje Asimismo, este hecho hace a su vez que se vean los importantes
intermedio para realizar la traduccin. Sin embargo, ahora este defectos que van a arrastrar estos sistemas de traduccin, como
lenguaje tiene una importancia mucho mayor, es la interlingua. El son la necesidad de disponer de estos corpus y el hecho de que el
lenguaje original, es convertido a esta interlingua que sistema obtenido es muy sensible al sistema de entrenamiento
estructuralmente, es independiente de ambos lenguajes (origen y utilizado.
destino). Finalmente, el texto traducido se obtiene desde esta Debido a este motivo se han obtenido resultados bastante
interlingua. satisfactorios cuando se emplea traduccin estadstica en campos
restringidos de traduccin que estn especializados en un lenguaje
determinado, por el contrario cuando el traductor sale de este
5.2 Basada en contexto: campo y abarca un mbito de lenguaje ms coloquial, predominan
Este mtodo emplea tcnicas que buscan la mejor traduccin todava los sistemas que se basan en conocimiento.
posible para cada una de las palabras basndose en su contexto Los sistemas de traduccin estadsticos parten de lo que se conoce
(palabras colindantes). As pues, el texto se divide en ventanas de como corpus bilinge. Para que se entienda mejor el concepto, un
unas pocas palabras, y se busca la traduccin idnea para cada una ejemplo de corpus bilinge sera por ejemplo los subttulos de una
de las palabras, desechando todas las acepciones que no tienen pelcula.
sentido dentro de la ventana utilizada.
El proceso comienza con la obtencin de un corpus bilinge, y
Posteriormente, se desplaza esta ventana una posicin (palabra), y una vez que se dispone de ste, se pasa al proceso de alineacin.
se repite el proceso anterior. Como se puede observar, una sola La finalidad de la alineacin del corpus es crear una
palabra se traduce en varias ocasiones hasta obtener un resultado correspondencia entre las palabras de un idioma y otro, y es en
ptimo. este punto donde la estadstica empieza a ser importante.
Finalmente, se amplan las ventanas para que las frases, o el texto Para hacernos una idea de cmo va a funcionar el sistema
en general tengan tambin significado, y se hace otra bsqueda. imaginemos que tenemos dos textos iguales en dos idiomas
diferentes. Si nos ponemos a compararles oracin por oracin nos

- 56 -
damos cuenta de que ciertas palabras en uno de ellos siempre se
corresponden con otras en el otro texto. Por ejemplo, si en todas
las oraciones inglesas de un texto en las que aparece la palabra
boy vemos que la versin en espaol tiene la palabra nio
relacionaramos una con la otra obteniendo su traduccin.
Del mismo modo en esta etapa el sistema observa muchos pares
de oraciones escritos en dos idiomas diferentes, siendo unas
traducciones de las otras y a partir de lo que observa construye
asociaciones entre palabras. Para lograr buenas asociaciones es
necesario observar muchas oraciones, ya que con una nica
oracin sin saber nada del idioma es imposible determinar con
certeza el significado de algunas palabras, as podemos decir que
cuanto ms grande sea el corpus con ms certeza crearemos
Imagen 4. Ejemplo de corpus basado en frases
asociaciones.
Una vez completado el alineamiento de todos los pares de
oraciones, buscamos entre nuestras asociaciones las que encajan Posteriormente, se continua alineando al nivel de palabras: Para
en nuestra oracin realizando as la traduccin. cada par de oraciones del corpus paralelo, se enlazan las palabras
de la oracin fuente con las palabras de la oracin destino.
Sin embargo, utilizando nicamente estas asociaciones no siempre
Finalmente se realiza la extraccin de frases bilinges,
es posible traducir de forma correcta una oracin, ya que por
entendiendo estas como la unin de dos frases tal que no exista un
ejemplo podemos encontrarnos con palabras que muestran
enlace entre alguna de las palabras de la frase bilinge y una
ambigedades como por ejemplo la palabra ganar en una
palabra que est fuera de la misma:
sentencia en ingls puede ponerse como win,gain,get y no
sabemos cul de todas es la correcta para nuestra oracin.
Por ello en la traduccin automtica estadstica se emplean dos
modelos: el de traduccin y el de lenguaje. Con estos modelos
podremos puntuar a las posibles traducciones eligiendo finalmente
a la que tenga mayor puntuacin. Con el modelo de traduccin
puntuamos lo bien que est traducida una palabra, mientras que
con el modelo de lenguaje puntuamos lo bien que est escrita la
traduccin.
Estos modelos no son los nicos que participan en el clculo de la Imagen 5. Ejemplo de extraccin de frases bilinges
traduccin, existen varios dependiendo del paradigma de
traduccin que se siga. El que nos vamos a centrar en explicar es
En este ejemplo se puede ver que la frase bilinge This will-
el basado en frases, para ello nuestro corpus tiene que estar
Este ser no es vlida, pues el enlace be-ser asocia una
alineado a nivel de oraciones de forma que tendremos dos
palabra dentro de la frase con una fuera. De esta forma sern
documentos con el mismo nmero de oraciones tal y como se
vlida frases como This will be-ser, will be- ser,
muestra a continuacin:
interesting-interesante, interesting example-ejemplo
interesante, "This will be an interesting example-Este ser un
ejemplo interesante.
Una vez extradas todas las frases de todos los pares de oraciones
del corpus podemos calcular el modelo de traduccin. sta tcnica
de traduccin parte de la definicin de un modelo estadstico en el
que se trata de estimar la probabilidad de que, dadas dos frases
cada una en un idioma, una sea la traduccin de la otra, y as
poder decidir cmo de buena es una traduccin para una frase
determinada; todo esto a partir de funciones y cambios
estadsticos.
Este modelo de traduccin junto con el de lenguaje (que tambin
basndose en funciones estadsticas estimar la probabilidad de
que una traduccin ya realizada sea la ms adecuada para ese
texto en concreto y est hecha de forma correcta) intentarn
conseguir una traduccin con la mejor calidad posible.

5.3.2 Traduccin basada en ejemplos


La idea en la que se fundamenta la traduccin basada en ejemplos
tal y como su nombre indica, es realizar las traducciones a partir
de ejemplos similares a las oraciones que se pretenden traducir y
de los cules ya conocemos su traduccin. Se precisa contar con
una gran cantidad de corpus bilinges alineados para obtener estos
ejemplos de traducciones y almacenarlos en bases de datos para

- 57 -
que resulte ms fcil encontrarlos a partir de las palabras que 6. DESAMBIGUACIN EN LA
contienen los ejemplos.
TRADUCCIN
Adems, hay que tener en cuenta otro concepto dentro de la La desambiguacin consiste en encontrar la traduccin correcta
traduccin basada en ejemplos, las memorias de traduccin. Al cuando hay varias traducciones posibles. Este problema fue
igual que en el caso de los ejemplos, las memorias de traduccin enunciado en la dcada de 1950 por Yehoshua Bar-Hillel. l
buscan en el corpus bilinge frases similares a las que se quiere indicaba que sin una enciclopedia universal, una mquina nunca
traducir en un momento determinado y se mira cmo se tradujo sera capaz de distinguir entre dos significados de una misma
dicha frase tomndola como ejemplo. El traductor podr emplear palabra.
esta informacin como referencia una vez la haya encontrado.
Hoy en da existen numerosas aproximaciones diseadas para
La forma de llevar a cabo la traduccin de un sistema basado tanto paliar este problema. Pueden dividirse en someras y profundas.
en ejemplos como en memorias se realiza de la siguiente forma:
en primer lugar se introduce al sistema el texto del que queremos Las aproximaciones someras asumen que no hay un conocimiento
obtener la traduccin, seguidamente el sistema le divide en del texto. Simplemente aplican mtodos estadsticos a las palabras
unidades de texto buscando en la base de datos aquellos ejemplos que rodean a la palabra ambigua para obtener el resultado mejo.
que se asemejan a nuestras unidades. Si la traduccin se basa en Las aproximaciones profundas sin embargo, pre asumen un
memorias, el sistema extrae todos los ejemplos que encuentra conocimiento comprensivo de la palabra.
proporcionndoselos a un traductor humano que ser el encargado Sin embargo, a da de hoy, las aproximaciones someras han
de construir las frases adecuadas Sin embargo si la traduccin
demostrado dar mejores resultados en las traducciones.
est basada en ejemplos, no hay intervencin humana en el
proceso realizndose todo el proceso por el sistema automatizado Grandes expertos en el mundo de la traduccin (como Claude
que se arriesga a tomar las decisiones que producirn el texto de Piron, que fue traductor para las Naciones Unidas y la
salida. Organizacin Mundial de la Salud), indican que la traduccin
automtica, como mucho, ser capaz de automatizar la parte ms
A la hora de realizar la bsqueda de los ejemplos, hay que tener
sencilla del trabajo de un traductor; sin embargo, la parte ms
cuidado con la longitud de las unidades de texto elegidas para
costosa y que consume mayor cantidad de tiempo, tendr que
realizar dicha bsqueda dado que si establecemos segmentos con
seguir siendo realizada por una persona cualificada, ya que
una longitud muy pequea podemos encontrarnos con demasiados
normalmente implica hacer una investigacin extensa para
problemas de ambigedad que en muchos casos provocaran que
resolver ambigedades en el texto de origen.
el sistema se confundiese en sus decisiones al realizar la
traduccin. Para poder realizar esta investigacin a un nivel tan profundo sera
necesario que el software de traduccin emplease tambin parte
Actualmente muchos sistemas basados en ejemplos funcionan
de sus recursos a buscar la desambiguacin correcta. Sin embargo,
utilizando la oracin como unidad de texto, pero cabe destacar
esto requiere un nivel de desarrollo en Inteligencia Artificial que
que para explotar la capacidad con la que cuentan estos sistemas
no se ha alcanzado an.
debemos emplear unidades ms pequeas que la oracin y as a
partir de ellas, realizando combinaciones, producir oraciones
completas.
7. SERVICIOS DE TRADUCCIN
AUTOMTICA
5.4 Traduccin hbrida Si bien, como se ha indicado anteriormente, ningn sistema de
Estas tcnicas aprovechan los puntos fuertes de las metodologas traduccin hoy en da es capaz de producir una traduccin
basadas en reglas y estadstica. perfecta en campos que no se encuentren restringidos, hay una
Actualmente varias empresas dedicadas a la traduccin gran variedad de sistemas automticos que producen resultados
automtica (Asia Online, LinguaSys, Systran, PangeaMT, UPV) muy notorios.
afirman tener sistemas hbridos de este tipo. A continuacin vamos a nombrar slo dos de estas aplicaciones.
Se pueden distinguir dos variantes principales dentro de esta No obstante, para mostrar el gran impacto que tiene este mercado,
metodologa: y la cantidad de empresas que hay, mostramos en la siguiente
tabla, una comparacin entre las empresas ms importantes y el
nmero de lenguajes en los que traducen.
5.4.1 Reglas de post-procesado por las estadsticas
Las traducciones son realizadas utilizando un motor basado en Tabla 1. Nmero de idiomas disponibles por empresa
reglas. Posteriormente se emplean reglas estadsticas en un intento
de ajustar o corregir la salida del motor de reglas. Compaa Nmero de idiomas
Asia Online 77
5.4.2 Estadsticas guiadas por reglas: Google Translate 65
Las reglas se utilizan para preprocesar los datos, en un intento de WorldLingo 43
orientar mejor el motor estadstico. Las reglas son empleadas
PROMT 43
tambin en el post-proceso de la produccin estadstica para
realizar funciones tales como la normalizacin. Este enfoque tiene Apertium 42
mucho ms poder, flexibilidad y control cuando se traduce. Systran 36
Systran 36

- 58 -
7.1 Systran para obtener correlaciones en el corpus. Los corpora que se
Systran es una de las empresas ms antiguas en traduccin emplean en estas investigaciones pueden ser para un nico idioma
automtica. Fue fundada por el Dr. Peter Toma en 1968 y ha o bien pueden ser corpora bilinges alineados, que tal y como se
trabajado durante muchos aos para el departamento de defensa ha comentado con anterioridad se trata de textos traducidos en dos
de los Estados Unidos de Amrica y para la Comisin Europea. lenguas y ordenados haciendo corresponderse ciertas partes del
texto origen con el texto destino.
En un origen, bas sus mtodos de traduccin en reglas, aunque
posteriormente ha ido migrando a memorias de traduccin (corpus Las memorias de traduccin son otra lnea de investigacin hoy en
paralelos). da. Consisten en recordar automticamente las traducciones
completas de frases o expresiones comunes para evitar procesarlas
Hoy en da es una de los sistemas ms utilizados aunque muchas repetitivamente.
veces el cliente lo desconoce. Este sistema se encuentra integrado
en aplicaciones como en el traductor de textos de los ordenadores Actualmente, hay gran actividad en el mundo de la traduccin
que emplean el sistema operativo Mac OS X, en el traductor automtica en Japn y la Unin Europea, y por extensin en
online de Yahoo!, Yahoo! Babel Fish, y fue tambin utilizado por EEUU.
el buscador Google hasta 2007. Todava se continuar investigando hasta que se obtenga un
sistema de traduccin que, desde el punto de vista lingstico y
comercial, sea rentable. Como hemos comentado ya a lo largo del
7.2 Google translate trabajo los sistemas han sido tiles y rentables cuando nos
Posiblemente es una de las aplicaciones ms conocidas para centramos en campos y ciencias especficas de un grupo, por ello
traducir textos hoy en da. Esta herramienta de uno de los gigantes se est tendiendo a realizar sistemas que se basan en lo que
de Internet, Google, proporciona traduccin automtica entre 65 denominaramos sublenguajes como entre otros podemos
idiomas (Si bien, entre muchos de ellos se realiza una traduccin encontrar, el jurdico, el cientfico, el mdico, el filosfico, etc.
intermedia al ingls). Para lograrlo, el sistema busca rpidamente Estos sublenguajes no requieren traducciones de calidad elevada y
en Internet de entre la gran cantidad de textos ya traducidos que pueden resultar muy valiosos para las personas que desempeen
existen, aquella combinacin de palabras que proporciona un actividades dentro de estos campos. La traduccin resultar ms
resultado mejor. El sistema empleado para la traduccin es sencilla haciendo estas subdivisiones dado que el vocabulario ser
estadstico, y por tanto, su misin no es fragmentar y reunir las ms reducido y la sintaxis est ms limitada, ya que son lenguajes
frases para obtener el significado, sino que proporciona un con formas fijadas, ms estticos, abundan en ellos frmulas y
resultado obtenido tras analizar los textos equivalentes ms suelen estar sometidos a controles permanentes.
probables. Las fuentes de datos provienen en la mayora de los Un ejemplo claro de lo que acabamos de exponer es el de Meteo,
casos de traducciones humanas: Desde textos clsicos hasta un programa que desde el ao siguiente a su instalacin (1977) ha
obras modernas. En el primer caso los resultados son muy estado produciendo partes meteorolgicos para el servicio
interesantes, pero cuando se enfrenta a nuevos textos, en muchos meteorolgico de Canad diariamente. En la actualidad, podemos
casos, Google Translate se pierde en la intencin, el contexto real hablar de unos resultados tan buenos como son que el programa
y el estilo. traduzca alrededor de 37.000 palabras diarias con un 90%.de
precisin.
8. PROBLEMAS EN LA TRADUCCIN Resultados como los obtenidos con un sistema como es Meteo
hacen que se pueda demostrar lo rentable que resulta la traduccin
AUTOMTICA automtica en algunos casos, a pesar de que para otros mbitos
La traduccin automtica en s misma es un problema difcil por todava no lo sea., como ocurre con el lenguaje espontneo,
dos motivos principalmente: El primero es que los lenguajes coloquial que se resiste a una formalizacin precisa y a ajustarse a
naturales son muy ambiguos. Esta ambigedad se da en todos los reglas gramaticales, hechos que resultan necesarios para la
niveles (tanto lxico, sintctico, semntico como pragmtico). obtencin de una buena traduccin. De esta forma, tendremos que
Una palabra of rase puede tener ms de un significado. Decidir el esperar para ver buenos resultados en lo que al lenguaje comn se
significado adecuado en cada momento es crucial para hacer un refiere por lo que de momento slo podemos hablar de traductor
anlisis correcto. El segundo motivo es que cuando los humanos como un complemento de ayuda al ser humano.
emplean el lenguaje natural, emplean a la vez una enorme
cantidad de sentido comn, y conocimiento acerca del mundo, que
les ayuda a resolver la ambigedad. Conseguir que la traduccin 10. CONCLUSIONES
automtica consiga el mismo conocimiento del mundo en un Podemos concluir que el desarrollo de los sistemas de traduccin
contexto sin restricciones requiere de un gran esfuerzo. ha sido posible gracias a dos hechos importantes que les han
favorecido claramente: en primer lugar la explosin de
informacin al alcance de todo el mundo y en idiomas diferentes
9. INVESTIGACIN ACTUAL Y de lo cual el gran culpable es Internet y en segundo lugar la
RENTABILIDAD DE LA TRADUCCIN globalizacin. Esto significa que hay una enorme necesidad de
AUTOMTICA comunicacin y de hacerse con informacin la cul debe estar
Las investigaciones llevadas a cabo hoy en da en los sistemas de disponible en diversos idiomas para que pueda ser accesible a
traduccin automtica estn centradas en especial en la bsqueda todo el mundo
y mejora de tcnicas de aprendizaje mquina para adquirir el Slo basta con fijarse en las cifras para hacerse una idea de la
significado de las palabras y la gramtica de forma automtica. vala que tiene el mercado de la traduccin automtica hoy en da;
Estas tareas necesitan emplear inmensas cantidades de corpora y se estima que a nivel mundial vale casi 10.000 millones de euros.
aplicar tcnicas estadsticas como por ejemplo redes neuronales

- 59 -
Hemos comprobado que los sistemas encargados de traducir por [5] Rao, Durgesh D. (1998)
ejemplo grandes obras literarias (como puede ser El Quijote) se Machine translation: A gentle introduction.
encuentran an muy alejados de obtener una traduccin de buena
calidad, pero por el contrario aquellos que traduzcan partes ISSN: 0971-8044
meteorolgicos, textos tcnicos, etc. tienen un peso importante [6] Jos Hallebeek
hoy en da para la sociedad.
El corpus paralelo. Universidad de Nijimegen. Nederlands
El mayor problema con el que cuentan todava los sistemas de
[7] Jos A. Troyano
traduccin radica en la calidad que se obtiene tras la realizacin
de la traduccin. An tenemos que recortar distancias entre el Alineacin de textos y traduccin automtica. ITALICA.
producto obtenido y la verdadera traduccin, porque aunque cada Universidad de Sevilla
vez vayamos imitando mejor la labor que lleva a cabo un [8] Petra Prochzkov (2006)
traductor humano, todava nos queda un largo camino que recorrer
para igualarlo. Fundamentos de la lingstica del corpus. Concepcin de
los corpus y mtodos de investigacin con corpus.
[9] Andreas Eisele (2007)
11. REFERENCIAS Hybrid machine translations: Combining rule-based and
[1] Wikipedia statistical MT systems. Saarland University & DFKI. LT
http://es.wikipedia.org/wiki/Traduccion_automatica Lab.
[2] Cohen, J.M., "Translation", Encyclopedia Americana, 1986, [10] WIRED
vol. 27, pp. 1215.
http://www.wired.com/wired/archive/14.12/translate.html
[3] Wikipedia
[11] European Association for Machine Translation
http://es.wikipedia.org/wiki/Piedra_de_Rosetta
[4] Hutchins, W. John; and Harold L. Somers (1992). An
Introduction to Machine Translation. London: Academic
Press. ISBN 0-12-362830-X.

- 60 -
Resolucin de Puzzles Deslizantes

Lara Rojo Celemn Ivn Surez Morejudo


Ingeniera de Telecomunicacin Ingeniera de Telecomunicacin
Universidad Carlos III de Madrid Universidad Carlos III de Madrid
100072784@alumnos.uc3m.es 100072643@alumnos.uc3m.es

ABSTRACT filas se colocarn por columnas. Este mtodo, como veremos ms


adelante, ser el ms eficiente.
Finalmente, daremos una visin desde el punto de vista de la
En 1878, Sam Loyd daba un premio de $1.000 a quien fuera
psicologa sobre las habilidades obtenidas resolviendo este tipo de
capaz de resolver su famoso 14-15 Puzzle. Se trataba de un puzzle
rompecabezas as como las partes de nuestro cerebro que se ven
deslizante de 16 piezas que no tena solucin, lo que hizo que
afectadas. Adems explicaremos las diferencias de nuestra mente
muchas personas se volvieran locas tratando de resolverlo.
con respecto a las mquinas y las variables que influyen en la
En este trabajo tratamos de presentar diferentes algoritmos para forma de resolver problemas, como es el caso de la ansiedad.
resolver el 15-Puzzle desde el punto de vista de la Inteligencia
Artificial. Para ello, utilizamos el algoritmo de bsqueda en
rboles A*, del que daremos una visin general que luego
particularizaremos a nuestro caso del 15-Puzzle.
2. EL PUZZLE
Aunque en este trabajo slo nos hemos centrado en resolver el
rompecabezas de 16 piezas, los algoritmos explicados pueden 2.1 Definicin
utilizarse para resolver cualquier puzzle deslizante n x n con
solucin. El (n2 - 1)puzzle consiste en un tablero de (n x n) con n casillas,
numeradas del 1 al (n2 - 1) , ordenadas de manera aleatoria. La
Trminos Generales casilla n2 se encuentra vaca para poder realizar los movimientos
necesarios, de forma horizontal o vertical, para poder cambiar el
Puzzles, Algoritmos, permutaciones pares, heurstica, Inteligencia orden de las casillas. Recibe multitud de nombres segn el
Artificial, resolucin humana. nmero de fichas 8-puzzle para la versin 3x3, 15-puzzle para la
versin de 4x4, u otros nombres menos comunes como Puzzle
Gem, Puzzle Boss o Cuadrado Mstico. El objeto del
rompecabezas es ordenar las fichas utilizando el espacio vaco
Keywords para desplazarlas.
Puzzles deslizantes, 15-puzzle, Sam Loyd, Algoritmo A*,
herstica, Turing.

1. INTRODUCTION

El objetivo de este trabajo es presentar diferentes algoritmos para


la resolucin de puzzles deslizantes. Aunque slo nos hemos
centrado en el 15-puzzle, los algoritmos aqu presentados pueden
ser aplicados a puzzles de cualquier tamao, siempre y cuando
estos tengan solucin.
Sin embargo, no slo nos centraremos en cmo resolverlos de
forma manual sino tambin explicaremos como implementar
dichos algoritmos en ordenadores. Para ello, utilizaremos
bsquedas en rboles aplicando el algoritmo de bsqueda A*, el
cual explicaremos y particularizaremos.
El primer algoritmo que presentaremos es el algoritmo propuesto
por Richard Hayes [4] en el cual el n-puzzle se ir reduciendo a Figura 1: 15-Puzzle resuelto.
(n 1)puzzle resolviendo la primera fila y la primera columna.
En el segundo, [5] propone colocar en orden las casillas de las
primeras (n 2) filas. Finalmente, las piezas de estas dos ltimas

- 61 -
Es un problema clsico de modelacin de algoritmos usando Casi un siglo despus, Ern Rubik se interes por el
heurstica, de modo que estos sean eficientes con buenos tiempos rompecabezas buscando una forma de que funcionara sin el
de ejecucin y usando ptimas soluciones. El uso de la heurstica espacio vaco que permita mover las piezas. Finalmente, su
comn en este problema conlleva el recuento del nmero de fichas trabaj desemboc en la creacin del famoso Cubo de Rubik.
que se encuentran fuera de lugar, y encontrar la suma de las
distancias Manhattan desde su posicin actual hasta su posicin
correcta.

3. ALGORITMOS

2.2 Historia Para resolver el 15-puzzle podemos aplicar distintos algoritmos


que nos lleven a la solucin. Como es lgico, unos algoritmos son
ms eficientes que otros. A continuacin se presentan dos
No se sabe muy bien a quien atribuir la invencin de este algoritmos pero en ambos, la condicin necesaria para que tengan
rompecabezas ya que la historia es confusa. Los libros, en un solucin es que el nmero de permutaciones sea par.
principio, la atribuyen a Sam Loyd debido a que en 1878 llevara
al mundo a la locura por un premio de $1.000 a quien fuera
capaz de resolver el famoso puzzle de 14-15, el cual no tena 3.1 Permutaciones pares
solucin debido que se necesitaba un nmero impar de
movimientos y, como veremos ms adelante, slo un nmero de
movimientos par tiene solucin. Como hemos dicho anteriormente, el 15-puzzle slo tiene
solucin si el nmero de movimientos para resolverlo es par. El
El puzzle se extendi rpidamente por todas las ciudades de
nmero de posibles estados iniciales es n!, siendo n el nmero de
Estados Unidos, Canad incluso lleg a Europa.
fichas. Por tanto, en nuestro caso, tendremos ms de 130.000
En realidad, el puzzle no fue inventado por Sam Loyd, a pesar que millones de posibles estados iniciales. Sin embargo, slo la mitad
l lo defendiera durante aos, sino que era una variacin del de esas combinaciones tiene solucin.
rompecabezas creado por Palmer Noyes Chapman con los bloques
Para poder saber la paridad del estado inicial se define el concepto
14-15 invertidos.
de Inversin, es decir, la violacin del orden de la posicin de
acuerdo a su valor. En otras palabras, la inversin de una ficha
ser la suma del nmero de fichas que se encuentran en una
posicin superior a dicha ficha y que deberan estar situadas en
una posicin inferior. La inversin total ser la suma de las
inversiones individuales. Si este nmero es par, el puzzle tendr
solucin. En caso contrario, no habr solucin.
Por ejemplo, en el puzzle propuesto por Loyd, la inversin total
ser uno y, como este nmero es impar, el nmero de
permutaciones ser impar y, por tanto, el puzzle no tiene solucin.
Una vez que se conoce la paridad del puzzle, podremos aplicar
algn tipo de algoritmo para resolverlo. En nuestro caso,
presentamos dos posibles soluciones.

Figura 2: Ilustracin de Sam Loyd sobre su puzle. 3.2 Algoritmo I

Palmer Noyes Chapman, en Agosto de 1880, present ante la Este algoritmo fue propuesto por Parberry en 1997 para resolver
oficina de patentes el registro del 15-puzzle. Sin embargo, su puzles deslizantes n x n. Su mtodo se basa en reducir el n-puzzle
solicitud le fue denegada ya que en Febrero de 1878 se haba en un (n-1)-puzzle resolviendo la primera fila y la primera
registrado otra patente de un puzzle similar llamado Puzzle de columna de cada puzzle, quedando como resultado un (n-1)-
bloques por Ernest U. Kinsey. puzzle. Sin embargo, una vez que se llega a un 3x3-puzzle, este
mtodo deja de funcionar ya que no tenemos libertad de
Previamente, su hijo lo distribuy en 1879 por diferentes ciudades movimiento para no afectar a las piezas colindantes y se tiene que
de Estados Unidos. Por suerte, uno de dichos rompecabezas fue a resolver usando la fuerza bruta.
parar a la Escuela Americana de Sordos de Hartford, quienes lo
comenzaron a fabricar en su taller de carpintera para venderlo en Ms tarde, en 2001, Richard Hayes, utilizando el algoritmo de
las calles de Hartford y Boston. Matthias Rice, propietario de un Parberry, consigue evitar el problema de resolver el puzzle usando
negocio de carpintera de lujo en Boston, se interes en la la fuerza bruta.
fabricacin del mismo y convenci a Yankee Notions
(Distribuidor de bienes de lujo) para su comercializacin con el
nombre de Puzzle Gem.

- 62 -
El algoritmo se desarrolla en tres pasos: posible combinacin tal que se pueda resolver a travs del
1. Colocar las piezas de la primera fila algoritmo previamente descrito.
2. Colocar las piezas de la primera columna. Las nicas combinaciones que no tienen solucin ocurren cuando
3. Volver al primer paso con el (n-1)puzzle. la pieza (n- 1) de una fila se sita en la posicin (n 2) o cuando
la pieza (n 1) de una columna se encuentra en ((n 2), 0). Por
ello, lo nico que debemos hacer es mover dicha pieza de esa
posicin.

Figura 3: Reduccin del 15-puzzle a 3-puzzle.


Figura 6: Caso especial.

Para colocar tanto las piezas de la primera fila como de la primera


columna de manera eficiente, se toma como referencia las
diagonales de la posicin en la que debe ir la ficha en cuestin. En
funcin de la posicin original de la ficha, utilizaremos una
3.3 Algoritmo II
diagonal u otra.
A partir de la informacin obtenida en [4], podemos resolver el
Si la ficha se encuentra a la izquierda de la columna en la que
15-Puzzle ordenando la primera y segunda fila de manera
debera ir o en la misma columna, utilizaremos la diagonal de la
consecutiva, para luego terminar de ordenar las dos ltimas filas
figura 4a. En cambio, si la ficha se sita a la derecha, utilizaremos
por columnas. De esta manera se consigue llegar al estado final
una de las diagonales descritas en las figuras 4b y 4c.
del puzzle en un promedio de 80 movimientos, una cifra bastante
eficiente teniendo en cuenta el nmero de movimientos posibles.
La implementacin de dicho mtodo se basa en el Algoritmo de
bsqueda A*.

3.3.1 Algoritmo de bsqueda A*

Figura 4: Descripcin de las diagonales. El algoritmo de bsqueda A* es un algoritmo computacional


clasificado dentro de la bsqueda por grafos, para encontrar el
camino de menor coste entre el nodo origen y destino. Est
No obstante, las dos ltimas fichas de la fila sern colocadas de motivado debido a que en algoritmos de bsqueda en grafos
manera especial. En este caso, se coloca en la posicin 1 x (n-1) la informados, como el algoritmo voraz, estos siguen un camino
ficha (n-2) y, en la posicin 2 x (n-2) la ficha (n-2) siguiendo el basado nicamente en la funcin heurstica. Dicha funcin no nos
mismo procedimiento explicado con anterioridad. Por ltimo, se indica el coste real de desplazarse de un nodo a otro, sino una
desplaza la ficha(n 2) a la posicin 1 x (n 2) y la (n 1) a su aproximacin que puede no ser ptima, llevando a realizar
posicin. movimientos extra que terminan derivando en un mayor coste
para alcanzar la solucin.
Por ello un algoritmo ptimo de bsqueda informada deber tener
en cuenta el factor del valor heurstico de los nodos, y el coste real
del recorrido. Por ello el algoritmo A* usa la siguiente funcin de
evaluacin f(n) = g(n) + h'(n), siendo el primer trmino g(n) el
coste real del camino recorrido para llegar al nodo n, y h(n) el
valor heurstico del nodo a evaluar desde el actual n hasta el final.
Figura 5: Colocacin de las ltimas piezas. Adems A* necesita de dos estructuras de datos auxiliares, para
mantener un conjunto de soluciones parciales almacenadas:

Para las columnas, se sigue un procedimiento similar: se colocan Abiertos: se trata de una cola de prioridad ordenada
las primeras piezas y cuando queden slo dos, se pondr la segn el valor f(n) de cada nodo.
penltima pieza en la ltima posicin y la ltima pieza en la Cerrados: informacin de los nodos ya visitados.
columna adyacente a la ltima posicin.
Sin embargo, hay algunas combinaciones que no pueden ser En cada iteracin del algoritmo se realiza una consulta de la
resueltas aplicando este algoritmo. Para ello, buscamos una estructura de Abiertos, se consulta el primer nodo de la lista
ordenada, si no se trata de un nodo objetivo, se calcula la f(n) de

- 63 -
todos sus hijos, se insertan en la cola de Abiertos, y finalmente el Si para todos los nodos n del grafo se verifica que h(n)
nodo evaluado se traspasa a la estructura de Cerrados. = 0, se trata de una bsqueda de coste uniforme no
Se trata de un algoritmo de bsquedas de tipo primero en anchura informada.
para g(n) con primero en profundidad para h(n). Esto quiere decir
que: Pero en este algoritmo no todo son ventajas, existe un gran
problema a la hora de ejecutar un algoritmo basado en A*, que es
la gran cantidad necesaria de memoria. Esto es debido a que se
Para g(n) se establece un nodo raz, y se exploran y debe almacenar todos los posibles siguientes nodos de cada
evalan todos los vecinos de este nodo, y a estado, derivando por ello en una cantidad de memoria
continuacin para cada uno de los vecinos se exponencial respecto al tamao y complejidad del problema.
exploraran sus correspondientes vecinos adyacentes, y Como alternativas a este problema se presentan variaciones de
se realiza esto hasta que hayamos explorado todo el este algoritmo como pueden ser RTA*, IDA* o SMA*.
rbol.
Para h(n) el modo de exploracin es diferente, en la
bsqueda en profundidad partimos de un nodo que
vamos expandiendo de manera recurrente para un
camino determinado, en el momento que ese camino no
se puede propagar ms, volvemos atrs y comenzamos
de nuevo a expandir el nodo vecino del cual partimos y
que ya ha sido procesado. Es un algoritmo que nos
permite recorrer todo el rbol de manera ordenada pero
no uniforme.

La complejidad y carga computacional de este algoritmo est


dispuesta por la calidad heurstica usada en el problema. Por ello
para una mala heurstica la complejidad ser exponencial, y para
una heurstica ptima tendremos una complejidad lineal y por ello
un tiempo de ejecucin del mismo modo, siendo necesario por
ello, que con una heurstica optima se verifique que:
h(x) <= g(y) - g(x) + h(y) Figura 7: Ejemplo de aplicacin del algoritmo A*.
,donde h(y) es un estimador de h(x) que indica la distancia a la
solucin.
A continuacin explicamos el funcionamiento del algoritmo
Las propiedades del algoritmo son las siguientes: mediante un ejemplo. En dicho ejemplo buscamos el camino a
Es un algoritmo completo, en caso de existir solucin la recorrer ms corto para ir desde el punto verde al rojo, esquivando
encontrar. el muro azul el cual no podemos atravesar. Como observamos el
rea de bsqueda se ha dividido en una simple rejilla,
El algoritmo no desarrolla un camino por interaccin, simplificando as el problema a una matriz bidimensional,
formula varios y selecciona lo ms competentes. representando as cada cuadrado de la rejilla como un elemento de
Para garantizar que se trata de un algoritmo ptimo, la la rejilla, y pudiendo as almacenar sus propiedades y valores,
funcin h(n) deber ser vlida, sin exagerar el valor real como si es posible atravesarlo. A partir de ahora a dichos
de encontrar la solucin. cuadrados los llamaremos nodos.
SI h(n) realiza una estimacin exacta de h(n), el
algoritmo converge rpidamente a la solucin.
Si h(x) = 0, la bsqueda es controlada por la funcin
g(x).
Si h(x) = g(x) = 0 se trata de una bsqueda aleatoria.
Si h(x) = 0 y g(x) = 1, se trata de una bsqueda que se
desarrolla primero en anchura.
Si h(x) no se sobrestima por h(x), se encuentra un
camino optimo pero se han buscado rutas alternativas
que han conllevado un sobre clculo desaprovechado.
En caso contrario si h(x) se sobrestima por h(x), no se
asegura que se avance por el camino de menor coste.
Si para todos los nodos n del grafo se verifica que g(n)
= 0 se trata de una bsqueda voraz. Figura 8: rea de bsqueda en rejilla. En verde, punto de
inicio. En rojo, punto final.

- 64 -
Comienza la bsqueda: b. En el caso del valor H este se puede estimar de
muchas maneras diferentes. En este caso
utilizaremos una aproximacin mediante la
1. Comenzamos por el nodo de inicio (verde), aadimos este a
distancia Manhattan, donde solo tendremos en
una lista abierta, la cual est formada por los nodos que
cuenta el nmero de cuadrados horizontales y
pueden formar parte del camino a seguir, pero que an
verticales (solo existe movimiento ortogonal) que
debemos comprobar.
debemos desplazarnos de manera directa
(ignorando y no teniendo en cuenta los obstculos
2. Revisamos todos los nodos alcanzables y colindantes al nodo
que pudieran existir en el recorrido) para llegar
de inicio, ignorando los cuadrados intransitables como puede
desde el nodo inicio al nodo de destino. Como
ser el muro. Los aadimos a la lista abierta, marcando en
observamos se trata de una aproximacin del
cada uno de ellos una referencia al nodo de inicio como su
recorrido a seguir, de ah que se trate de un valor
nodo padre. Bordeamos los nodos de la lista abierta en color
heurstico.
verde, y marcamos la referencia al nodo padre con una flecha
gris.

En la Figura [9] podemos observar los valores obtenidos, donde el


valor G est representado en la esquina inferior izquierda, H se
encuentra en la esquina inferior derecha, y el valor F de resultante
de la suma de G y H se encuentra en la esquina superior izquierda.
Tambin vemos que hemos elegido el nodo que colinda a la
derecha con el nodo inicio (marcado con el borde azul), ya que se
trata del nodo con menor valor de F, en este caso 40.

Figura 9: Nodo de inicio y sus nodos alcanzables.

3. Traspasamos el nodo inicio a la lista cerrada, ya que no es


necesario para nada de momento. El borde de su color en la Figura 9: Valores de las funciones.
imagen ser azul, debido a que se encuentra en la lista
cerrada.
5. Traspasamos el nodo seleccionado de la lista abierta a la
cerrada, ya que no vamos a operar ms con l, y cambiamos
4. Ahora deberemos seleccionar el nodo con el valor de F (F =
por ello el color de su borde de verde a azul.
G+H) ms bajo. Donde G es el valor de movimiento del
nodo inicio a otro nodo de la rejilla siguiendo el camino
6. Verificamos que los nodos contiguos que sean accesibles y
necesario, y siendo F el valor del movimiento estimado para
no se encuentren en la lista cerrada, y aadimos a la lista
ir desde ese nodo hasta el nodo final, donde este ltimo valor
abierta a aquellos que no pertenecen an a ella, marcando
no es ms que una hiptesis ya que no conocemos an la
como nodo padre al seleccionado anteriormente.
distancia exacta.

7. Comprobamos para los nodos contiguos que ya se


a. En este ejemplo al valor de G le daremos un valor
encontraban en la lista abierta, si su valor G es inferior al
de 10 a los movimientos ortogonales, y de 14 a los
nuevo valor de G que recalcularamos con el nodo
movimientos diagonales. Para el clculo del valor
actualmente seleccionado. Si el valor G del nuevo camino es
G del nodo, sumaremos al valor G de su padre el
menor, seleccionamos este nuevo nodo, y cambiamos el
valor del tipo de movimiento que realicemos.
padre de los nodos contiguos por este otro, recalculando de
estos nodos su nuevo valor de G y F.

- 65 -
En nuestro caso como observamos, el valor obtenido de G 11. El camino buscado que une el nodo inicial con el final, es
para el nodo inferior derecho movindonos en diagonal aquel el cual apuntan las flechas partiendo desde el nodo
desde el nodo inicio tiene un valor de 14, frente al valor G final, recorrindolas hasta el nodo inicial. En la Figura [12],
observamos el camino obtenido para esta interaccin.
igual a 20 que tendra si el camino recorrido por dicho nodo,
proviniera del nodo superior, que previamente provena por
su izquierda del nodo inicial. Por ello seleccionamos este
nuevo nodo (marcndolo como azul), desechamos el anterior.
En el caso de existir un caso con dos posibilidades
seleccionamos aquella con valor F menor.

8. Marcamos y apuntamos el nuevo nodo seleccionado como


padre para los nodos contiguos. Comprobamos los nodos
contiguos y calculamos sus valores de G, H y F. Podemos
observar el proceso en la Figura [10].

Figura 12: Camino obtenido para llegar del nodo origen al


destino aplicando este algoritmo de bsqueda.

Aplicando este algoritmo para el caso del 15 Puzzle, nuestros


nodos sern las posibles combinaciones que conseguimos
desplazando las fichas a travs de la casilla vaca. A travs del
siguiente ejemplo explicaremos su funcionamiento.
Partimos del siguiente estado inicial, Figura [13]. Primero
comprobaremos el nmero de permutaciones, que en este caso es
Figura 10: Marcamos y calculamos las funciones de las casillas par (4). A continuacin, creamos las dos listas o estructuras de
colindantes al nuevo nodo. datos: Abierta y Cerrada. En la abierta, insertamos nuestro estado
inicial.

9. Comprobamos si el nodo situado a la izquierda del ahora


seleccionado tiene un coste G menor a travs del nodo actual,
frente a llegar desde el nodo inicial. Como no es as lo
desechamos.

10. Repetimos de manera recursiva este proceso, hasta que


finalmente aadimos el nodo destino a la lista abierta. Una
vez llegado a ese estado obtendremos algo similar a lo que
podemos apreciar en la Figura [11]. Figura 13: Estado Inicial de nuestro Puzzle.

Ahora tenemos que analizar los nodos alcanzables a nuestro nodo


origen, es decir, definimos los posibles movimientos que podemos
realizar. En este caso, slo tenemos dos posibilidades (Figura
[14])

Figura 14: Posibles movimientos.

Figura 11: Resultados tras aplicar el algoritmo.

- 66 -
Hay que calcular el valor de la funcin f(n). Dado que estamos
realizando un ejemplo sencillo y slo hacemos movimientos
ortogonales (horizontal o vertical), tomaremos como funcin g(n)
el nmero de movimientos realizados hasta llegar a ese estado. En
cuanto a la funcin heurstica h(n), utilizaremos la suma del
nmero de casillas que se encuentran en una posicin superior
con respecto a la casilla analizada, sin tener en cuenta la casilla
vaca. Para ello, la forma ms sencilla es colocar nuestro tablero
en forma de vector:
Estado inicialA: 1 2 3 4 5 6 7 8 9 10 12 15 13 14 11
Estado final: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
gA(n)= 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 3 + 1+1= 6
Estado inicialB: 1 2 3 4 5 6 7 8 9 10 12 15 13 14 11
Estado final: 1 2 3 4 5 6 7 8 9 10 11 13 14 11 15
gB(n)= 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1+1= 3
Por tanto, obtendremos los siguientes valores para la funcin f(n):
fA(n) = gA(n) + hA(n) = 1 + 6 = 7
fB(n) = gB(n) + hB(n) = 1 + 3 = 4
A continuacin pasamos nuestro estado origen a la lista Cerrada y
aadimos en la lista Abierta nuestros nuevos estados ordenados en
orden creciente de acuerdo al valor obtenido de la funcin. Figura [17]: rbol resultante.
Nuestro nodo origen ser ahora el estado de la figura [14]b. Ahora
slo obtendremos un nuevo estado: Figura [15]

4. ENFOQUE PSICOLGICO PARA EL


PLANTEAMIENTO DE ALGORITMOS

En las ltimas dcadas, debido al desarrollo tecnolgico, ha


Figura 15: Nuevo estado inicial. tenido una especial importancia el debate sobre si la mente
humana puede compararse con el ordenador. Para ello, se han
La funcin f(n) ser ahora 5, as que ser nuestro siguiente nodo
realizado estudios que abordaban la resolucin de problemas tanto
origen.
en humanos como en ordenadores. En Psicologa han destacado
Aplicando dos veces ms este algoritmo, llegamos a la solucin dos autores que han tratado este tema: Turing afirm que la mente
del puzzle en tan slo 4 movimientos. humana se puede comparar con el ordenador debido a que ambos
pueden razonar lgicamente, mientras que Searle se opuso a esta
afirmacin defendiendo que, si bien es cierto que ambos pueden
manejar smbolos, slo la mente humana es capaz de atribuir
significado a los smbolos que maneja, por ello, segn este autor
la mente no es un programa informtico. No obstante, para
resolver determinadas tareas no es necesaria la intervencin del
significado, por ejemplo, en la solucin de este puzle basta con
Figura [16]: ltimos estados iniciales.
manejar los smbolos adecuadamente.
Turing es considerado uno de los padres de la ciencia de la
Finalmente, en la Figura [17] se muestra el rbol resultante tras computacin ya que formaliz los conceptos de algoritmo y
aplicar el algoritmo: computacin mediante su famosa mquina de Turing. Adems, es
uno de los precursores de la Inteligencia Artificial ya que
consideraba que las mquinas podran llegar a pensar. Lo cual
enunci a travs de la prueba que lleva su nombre, en la que
pretenda comprobar de manera estndar si una mquina puede
apuntar a ser sensible o sintiente.
Con respecto a la anatoma cerebral, cabe destacar que el cerebro
se divide en dos hemisferios y para resolver este puzle se
requieren ambos. Por un lado, el hemisferio izquierdo se relaciona
con el razonamiento y la habilidad numrica, puesto que es
analtico, racional, secuencial, organizado, matemtico, simblico,
etc. Mientras que, por otro lado, el hemisferio derecho se
corresponde con la habilidad visoespacial. Las habilidades

- 67 -
mencionadas son necesarias para resolver el puzle y estos datos se abandona durante un tiempo en el que la mente de forma
pueden apoyar mediante tcnicas cerebrales como el EEG que inconsciente sigue pensando en el problema hasta dar con la
muestran las reas cerebrales que se activan ante esta tarea. solucin. Este fenmeno recibe el nombre de insight y es uno de
Adems, las alteraciones en determinadas zonas del cerebro los aspectos que diferencia a los seres humanos de los
suelen ir acompaadas de una dificultad a la hora de resolver este ordenadores. Sumado a ello, los seres humanos presentan otras
tipo de problemas. variables que influyen en la forma de resolver problemas, por
Esta especializacin cerebral se produce por la necesidad que ejemplo, la ansiedad, que facilita hasta cierto punto la resolucin
tiene el cerebro de ahorrar energa, lo que nos da una similitud de la tarea y, pasado ese punto, la dificulta. Por ello, la relacin
con la programacin que nos conlleva siempre a disear entre rendimiento y activacin se representa siguiendo la Ley de
programas especializados para hacer un uso eficiente de los Yerkes-Dodson:
recursos disponibles y/o limitados de la mquina para su
ejecucin.
En cuanto a la solucin de problemas, los seres humanos aplican
una serie de estrategias segn el tipo de problema. Para resolver
este puzle la estrategia ptima es la divisin del problema en
subproblemas o submetas. Esta estrategia se basa en la idea de
divide y vencers, por lo que se trata de reducir un problema
amplio en varios ms pequeos que acerquen a la persona a la
meta.
Para la Gestalt, la solucin de problemas es algo ms que aplicar
de forma mecnica la experiencia, es realizar una reestructuracin
perceptiva. Este enfoque diferencia entre pensamiento productivo
y reproductivo: el pensamiento productivo es la produccin de
una solucin nueva a partir de una organizacin creativa del
problema (se usa cuando se ha comprendido la estructura del
problema), por ello, para la Gestalt ste es el verdadero
pensamiento; por otro lado, el pensamiento reproductivo consiste
en aplicar en situaciones similares la misma solucin. Para la
Figura 18: Ley de Yerkes-Dodson.
resolucin del puzle se requiere el pensamiento productivo.
Por otro lado, segn Greeno, los problemas se pueden dividir en
tres clases principales: Problemas de deduccin de la estructura, Otro punto a destacar es el papel que tiene el aprendizaje en la
Problemas de organizacin y Problemas de transformacin. Este resolucin de este tipo de puzle. Por un lado, existen teoras sobre
puzle es un problema de transformacin, puesto que tiene todos la solucin de problemas basadas en habilidades generales, como
los elementos del estado inicial y, a medida que se va avanzando y la Gestalt y el Procesamiento de la Informacin, mientras que
se van aplicando operadores, se va transformando el problema otras teoras defienden que la solucin de problemas se basa en
hasta llegar a la meta. habilidades especficas, como la teora de Expertos y novatos.
Para el primer enfoque se puede aprender a resolver este tipo de
Sumado a ello, cabe mencionar los cuatro pasos necesarios para
problemas de forma que el aprendizaje afecte a las habilidades
resolver un problema propuestos por Polya (1945). En primer
generales. No obstante, segn el enfoque de Expertos y novatos el
lugar, es necesaria la comprensin del problema, esto supone no
aprendizaje solo se produce en una habilidad especfica, puesto
slo descodificar el lenguaje del enunciado, sino tambin adoptar
que, por ejemplo, aprender a resolver un puzle no mejora la
una actitud de solucin de la tarea e identificar el problema.
capacidad para resolver problemas de ndole social. La eficacia en
Algunos ejemplos de preguntas que se pueden proponer en esta
la solucin de un problema no depende de la disposicin de
fase son: cul es la meta?, cules son los datos?, qu
estrategias o habilidades generales y transferibles, vlidas para
condiciones? y es suficiente la informacin?. En segundo lugar
cualquier problema, sino de los conocimientos especficos, tiles
se elabora un plan. Las preguntas caractersticas de este paso son:
para solucionar ese problema. El rendimiento experto sera el
conozco algn problema relacionado con ste?, es necesario
modelo para la solucin eficiente de un problema. Hay dos tipos
dividir el problema? y es necesario resolver alguna parte antes
de expertos: los tcnicos y los estratgicos. Los tcnicos resuelven
que otra?. En tercer lugar, se ejecuta el plan, se comprueba cada
un problema de su dominio de forma automtica y rutinaria. Los
paso y se resuelve el problema. Algunas de las preguntas de esta
estratgicos resuelven un problema nuevo o poco familiar dentro
paso son: es necesario este paso?, es correcto?. Por ltimo, el
de su dominio sin contar con procedimientos automticos, por
cuarto paso contempla la visin retrospectiva o revisin de la
ello, requieren un control metacognitivo.
tarea, esto es, verificar el resultado y el razonamiento. Algunos
ejemplos de preguntas son: se puede obtener el mismo resultado Los expertos son mejores que los novatos resolviendo problemas
por algn otro mtodo?. Estos cuatro pasos son descriptivos y incluso cuando se enfrentan con problemas fuera de su rea de
normativos y, como puede observarse, mantienen relacin con el pericia porque manejan ms recursos cognitivos.
proceso que lleva a cabo un ordenador a la hora de resolver este
tipo de problemas.
- La eficacia en la solucin de problemas no se debe a
No obstante, en determinadas ocasiones la mente humana no diferencias en la capacidad cognitiva general, sino a las
sigue estos pasos ininterrumpidamente, sino que llega a un punto
diferencias en conocimientos especficos.
en el que la persona no se ve capaz de resolver el problema y lo

- 68 -
- El conocimiento procedural: Por un lado, los expertos y Referencias
los novatos utilizan distintos heursticos en la solucin
de los mismos problemas. Adems, los expertos [1] Fifteen Puzzle
controlan mejor la ejecucin del problema. Por ltimo, http://en.wikipedia.org/wiki/15-puzzle
los expertos utilizan un amplio nmero de algoritmos de
[2] Slocum, J. Sonneveld D. 2006. The 15 Puzzle: How it drove
forma automtica y, adems los generalizan a diversos the World crazy. The Slocum puzzle Foundation.
problemas. Los expertos aplican tcnicas y no
[3] Juego del Puzzle
estrategias (uso deliberado e intencional).
http://es.scribd.com/doc/41776980/Juego-Del-Puzzle-1
[4] Hayes, R. 2001. The Sam Loyds 15 Puzzle.
Sumado a ello, la teora de Expertos y novatos destaca el papel del
[5] Parberry, I. 1997. A Real-Time Algorithm for the (n2-1)-
conocimiento previo, lo que nos lleva a una de las teoras ms
Puzzle. University of North Texas. Department of Computer
relevantes de la Psicologa de la Educacin: el Constructivismo.
Science.
Pese a que la idea de que una persona no es experta en todo sino
que slo en unos dominios, como propone la teora de Expertos y [6] Bsqueda en rboles
novatos, es opuesta a la teora de Piaget, tambin es cierto que http://es.scribd.com/doc/19950923/Busqueda-Heuristica
ambas teoras recogen la importancia de la experiencia o [7] Algoritmo A*
conocimiento previo debido a la influencia que tiene a la hora de http://es.wikipedia.org/wiki/Algoritmo_de_b%C3%BAsqued
resolver un problema de este tipo. Por ejemplo, si una persona a a_A*
aplicado anteriormente una estrategia inadecuada para resolver el
puzle, en el futuro ser menos probable que vuelva a aplicar la [8] A* search algorithm
misma estrategia, por lo que dar antes con la estrategia ptima y http://en.wikipedia.org/wiki/A*_search_algorithm
solucionar la tarea con mayor rapidez. [9] Zorahn. 2010. Applying Search Algorithms to Turn-Based
Por su parte, esta relacin entre la conducta y sus consecuencias Games. http://forum.codecall.net/blogs/zoranh/1323-
ya la propuso el Conductismo cuyo fundador fue Watson, applying-search-algorithms-turn-based-games.html
destacando el condicionamiento instrumental u operante [10] Carreteto, M. 2008. Psicologa del Pensamiento: Teora y
desarrollado por Skinner, cuya premisa principal es que aquella prcticas. Madrid: Alianza
conducta que vaya seguida de una consecuencia negativa (castigo)
[11] Carretero, M. 2009. Constructivismo y educacin. Buenos
tendr menor probabilidad de repetirse, mientras que la conducta
Aires: Paids.
seguida de una consecuencia positiva (refuerzo) probablemente se
repita en un futuro. [12] Haines, D. E. 2003. Principios de Neurociencia. Madrid:
Elsevier.
[13] Hergenhahn, B. R. 2001. Introduccin a la Historia de la
Psicologa. Madrid Paraninfo.
[14] Alan Turing
http://es.wikipedia.org/wiki/Alan_Turing
[15] Weiten, W. 2004. Themes and Variations. Thomson-
Wadsworth

- 69 -
Desarrollo de un agente autnomo jugador de Super Mario
Adrin Amor Martn Cristina Garca Muoz
100072611 100072663
Ingeniera de Telecomunicacin Ingeniera de Telecomunicacin
Universidad Carlos III de Madrid Universidad Carlos III de Madrid

100072611@alumnos.uc3m.es 100072663@alumnos.uc3m.es

RESUMEN espectacular crecimiento es la capacidad de generar jugadores


En este documento se va a detallar cmo realizar un agente, automticos mejores que el propio humano, de manera que el
basado en rboles de decisin, que sea capaz de jugar de forma jugador se debe esforzar en superar a la mquina. Esto se
autnoma al juego Super Mario en el marco del concurso Mario convierte en un fenmeno social (se habla incluso de la llamada
AI 2011. generacin gamer) y provoca tambin un incremento en la
investigacin en inteligencia artificial, ya que muchos juegos
compiten en demostrar que su jugador no humano es mejor que
Descripcin de categoras y temas. cualquier otro (como puede observarse con la guerra anual entre
[Agente]: Un agente es un sistema informtico que demuestra juegos de ftbol). De esta manera, se producen cada vez jugadores
que percibe su entorno a travs de sensores y es capaz de actuar ms inteligentes, llegando a imponer niveles de dificultad que
sobre dicho entorno mediante efectores. slo son resolubles despus de mucha experiencia en el juego.
[Super Mario]: Videojuego de plataformas muy popular desde la De esta manera, se vio de manera casi inmediata que la fuerza
dcada de los 80, diseado por Shigeru Miyamoto. bruta para implementar un jugador automtico (es decir, explorar
todas las posibilidades hasta el final para ver si con cierto
Palabras clave. movimiento podemos llegar a la derrota o a la solucin) es,
Agente, rboles de decisin, inteligencia artificial, Super Mario. adems de poco eficiente, irrealizable en la prctica debido a la
limitacin de los sistemas de computacin del momento. Se
impone as investigar sobre tcnicas de bsqueda que permitan
1. INTRODUCCIN. resolver problemas, ya sean relacionados con derrotar a un
Una de las principales inquietudes del ser humano es conseguir jugador humano o llegar a la solucin de, por ejemplo, las torres
hacer entes que se muevan artificialmente, es decir, que simulen de Hanoi.
(e incluso mejoren) el comportamiento humano. As, a lo largo de
la Edad Media se desarrollaron autmatas como el hombre de Todas estas tcnicas para llegar a una solucin deben maximizar
palo de Juanelo Turriano, en Toledo, y artificios como El Turco, la eficiencia de clculo, para lo que las opciones que se deben
que era capaz de jugar al ajedrez de manera autnoma (aunque se evaluar deben ser las ms inteligentes posibles, e intentar llegar a
descubriera poco despus que era un engao). Con el auge de la la solucin ptima. De esta manera, una primera aproximacin
computacin se empieza a tener una capacidad de procesamiento son los rboles de decisin en los que se contemplan todas las
similar a la del ser humano, de manera que se desarrollan posibilidades de actuacin y se elige la ms ventajosa (ya sea con
programas que intentan simular un jugador automtico. La lnea una funcin de evaluacin o heurstica, es decir, basada en la
de investigacin que ms se desarroll en el siglo XX fue la de prctica); otra aproximacin son las redes neuronales, que
desarrollar un autmata capaz de vencer a un ser humano al construyen asociaciones entre las entradas del problema y las
ajedrez, de manera que se empiezan a disear estrategias en la salidas, de manera que buscan la solucin ms eficiente; y otra
dcada de los 50 por, entre otros, Shannon y Turing, y el aproximacin son mquinas de estados, que es otra manera de
refinamiento de estas estrategias consiguen que, en 1998, se hacer jugadores razonablemente inteligentes. Se evalan todas las
produzca la derrota del campen mundial del momento, Gary entradas en cada mquina y se llega a un estado de actuacin; el
Kasparov, a manos de una objetivo es llegar al estado final que es la solucin. A estos
mquina llamada Deep efectos se implementan los llamados autmatas de Moore y de
Blue. Mealy, que no contemplaremos en este trabajo por considerar que
un agente no puede ser perfectamente definido por estas mquinas
Debemos destacar tambin de estados.
el auge de la industria del
videojuego que, si bien Una vez que situados en el contexto histrico actual, y haber
nace con la creacin del planteado las opciones que tenemos a la hora de hacer un jugador
Pong (juego muy simple automtico, uno de los entretenimientos que sirve para ahondar en
entre dos personas), el concepto de inteligencia artificial es generar un agente, que sea
experimenta un gran capaz de hacer cosas que un ser humano, si no es experto,
normalmente no consigue. En esta lnea surge el concurso Mario
incremento desde la dcada AI Championship, o Mario AI Competition, consistente en
de los 80. Una de las Figura 1. Pong original.
proporcionar una interfaz fcil de usar para el usuario de
razones de este manera que ste se encargue, nicamente, de generar un agente

- 70 -
que se pase todas las pantallas posibles. Posteriormente o -90 para tuberas.
ahondaremos en las posibilidades que se nos dan a la hora de
elegir el nivel que queremos que juegue nuestro agente, pero la
libertad es casi infinita.
As, se convoca un concurso intentando escoger al agente que
demuestre un mejor comportamiento en la interfaz que se
proporciona al usuario. En este documento detallaremos cmo es
la interfaz y qu podemos utilizar para que nuestro jugador juegue
de manera autnoma de manera similar a como lo hara un
humano; las estrategias que podemos seguir a la hora de conseguir
el objetivo (que es que se pase la pantalla con la mayor Figura 5. Tubera.
puntuacin posible), evaluando su dificultad y la estrategia que Es importante saber que la interfaz nos da varias
seguiremos finalmente; y las reglas que hemos usado, finalmente, posibilidades de zoom, es decir, que podemos
para conseguir un agente lo ms complejo posible. especificar si queremos, por ejemplo, que se nos
informe de qu tipo de ladrillos tenemos, o simplemente
2. INTERFAZ CON EL ENTORNO. se nos diga que hay un ladrillo, o un obstculo. Esto es
Antes de nada, lo que tenemos que analizar es qu necesitamos til cuando se empieza a codificar un agente, pero si se
del escenario para que nuestro agente sobreviva. As, a primera quiere aadir un poco de complejidad es necesario usar
vista necesitamos: el zoom ms detallado que hay. Podemos ver un
esquema del comportamiento de la matriz en la figura 2.
Conocer cmo es el escenario, dnde estn las cadas
(que en el cdigo se llamarn gaps), dnde podemos
saltar, romper ladrillos, conseguir monedas, bonus
Todo esto se nos da en la matriz levelScene; es una
matriz de tipo byte que incluye todos los elementos
relativos al escenario, es decir, dnde est el suelo, los
ladrillos y que tiene como dimensiones [19x19], de
manera que Mario slo es capaz de ver 10 posiciones
delante suya (ya que Mario est en el centro de esta
matriz). Los valores relevantes que debemos tener en
cuenta en una primera aproximacin son: Figura 6. Matriz de observaciones (levelScene).
o 0 si no hay nada.
Conocer dnde estn los enemigos, y qu tipo de
o -60 para el suelo. Debemos destacar que este enemigos podemos tener, es decir, si podemos
valor no es constante desde que empieza el eliminarlos saltando sobre ellos o disparndoles, o no
suelo hasta el final, sino que tenemos un -60 les podemos eliminar. Esto se da mediante la matriz de
en la primera lnea de suelo y ms hacia abajo, byte enemies, que tiene la misma dimensin que
0. Esto es importante a la hora de detectar levelScene, es decir, [19x19]. As, los valores ms
gaps para nuestro cdigo. relevantes que tenemos son:
o 80 para un goomba. Se puede eliminar
saltando o disparando sobre l.

Figura 2. Casilla con suelo.


o -62 para suelo que se puede acceder saltando
desde abajo (es decir, el agente no se cae si
est encima pero puede sobrepasarlo
saltando).
o -20 para ladrillos que se pueden romper.

Figura 7. Goomba.
Figura 3. Ladrillo rompible. o 84 para una bala, que solo sale si tenemos los
caones activados. Se puede eliminar de la
o -22 para ladrillos que no se pueden romper
misma manera que el goomba, saltando sobre
(cuadrados con interrogacin en los que se
l o disparando.
consigue un bonus).

Figura 4. Ladrillo irrompible.

Figura 8. Bala.

- 71 -
o 81 y 82 para un koopa. Un koopa se puede completo, y en la coordenada Y, la altura de Mario
eliminar disparndole, y si se salta sobre l sobre el fondo de la pantalla.
dejar un caparazn sobre el que, si salta, se
desplazar a lo largo de la pantalla Posicin absoluta sobre el escenario en la que se
destruyendo todo lo que encuentre en su encuentran los enemigos. Esto se da con
camino. enemiesFloatPos, que es un array en el que se da el
identificador del enemigo y su posicin segn las
caractersticas que hemos descrito anteriormente.
Una vez que conocemos todas las variables que podemos
usar para determinar el comportamiento de nuestro agente, lo
que debemos evaluar es qu debemos cambiar en el cdigo
para que haga lo que nosotros queremos. De esta manera, se
nos dan unos agentes ya hechos (pero casi sin inteligencia
asociada) y podemos observar que lo que debemos modificar
es el mtodo getAction(), que devuelve un array de boolean
cuyo significado es el comportamiento que va a hacer Mario
Figura 9. Koopa. en cada momento, es decir, si va a ir a la izquierda, derecha,
correr y disparar (es la misma tecla), agacharse y saltar. Para
o 91 para las flores que saltan de las tuberas. Se
definir eso habr que poner a true las acciones que queremos
puede eliminar saltando por debajo de ellas o
que haga en las posiciones correspondientes del array, y a
disparando.
false las acciones que queremos que no haga. Con esto
podemos controlar el comportamiento de nuestro agente cada
vez que se llama a getAction(), que es en un intervalo de
tiempo lo suficientemente pequeo para ser capaz de pasarse
la pantalla.
As, una vez familiarizados con el entorno de trabajo, ya
conocemos todo lo que podemos usar para crear nuestro
Figura 10. Flor. agente, es decir, toda la informacin relevante que influir en
su comportamiento con el escenario y con los enemigos. A
De nuevo se puede hacer una distincin entre el zoom
continuacin, debemos determinar cul ser nuestra
que queremos, de manera que se distingue entre
estrategia de comportamiento para nuestro agente.
enemigos que son destructibles saltando sobre ellos, o
aquellos que no se pueden destruir, como Spiky:

3. POSIBLES ESTRATEGIAS DE
COMPORTAMIENTO.
A continuacin vamos a detallar posibles estrategias de
comportamiento que fueron evaluadas para hacer nuestro agente,
y justificaremos, finalmente, la estrategia elegida.

3.1 Redes neuronales.


Una red neuronal es capaz de modelar la relacin existente entre
las entradas a la red y sus salidas. De esta manera, lo que tenemos
que escoger es qu queremos como entrada, y qu queremos como
salida, ya que la relacin entre ellos se encargar de definirlo el
Figura 11. Spiky.
modelo de red neuronal que utilicemos, como, por ejemplo, el
Debemos destacar, tambin, que la matriz enemies y perceptrn. Un modelo general de red neuronal es el que se ve
levelScene se pueden usar en la misma matriz, llamada aqu:
mergedObservation, que contiene los mismos valores
pero concatenando ambas matrices.
Posicin en la que se encuentra Mario. Sus coordenadas
dentro de la matriz levelScene y enemies se nos da con
marioCenter, array de dos posiciones en la que la
primera posicin corresponde a la coordenada Y de
Mario, y la segunda, a la coordenada X.
Posicin absoluta sobre el escenario total en la que se
encuentra Mario. Esto se da con marioFloatPos, array
de dos posiciones en la que, en una posicin se nos da
la coordenada X absoluta de Mario sobre el escenario

Figura 12. Modelo general de red neuronal.

- 72 -
Como entrada querramos saber, por ejemplo, si Mario puede quedarnos parados, descartando esa opcin, y
saltar, si Mario puede disparar, si Mario est en peligro de caer, o posteriormente decidiremos en qu direccin debemos
si tiene un gap cercano, si Mario ve enemigos en fin, las ir.
entradas deberamos definirlas con cuidado, mientras que las se es un simple ejemplo de funcin heurstica, sin
salidas estn claras: sern las acciones que debe tomar Mario, es embargo, si lo pensamos un poco, la complejidad no
decir, si salta, si se mueve a la izquierda, si se agacha, si se para hace ms que incrementarse, ya que debemos tener en
bsicamente, definir el array action que debemos devolver en el cuenta el enemigo que tenemos delante: si salta, lo ms
mtodo getAction(). conveniente es quedarse parado, o retroceder un poco y
saltar sobre l; si no salta, lo ms inteligente es saltar
para intentar eliminarlo; si somos capaces de disparar,
deberamos dispararle para destruirlo y adems de
todas las reglas que en una primera exploracin se nos
ocurren, debemos tener en cuenta el movimiento que
van a seguir nuestros enemigos, es decir, si van a saltar,
si van a moverse hacia nosotros, o hacia el otro lado, si
Este modelo no fue el que utilizamos porque lo vimos complejo son ms rpidos o ms lentos; es decir, debemos
(debemos programar dos fases, la de entrenamiento para generar conocer el sentido de su marcha pues es intil saltar
el modelo, y la de juego en s, aunque aprendera con el tiempo) y sobre un goomba que no viene hacia nosotros, por
computacionalmente costoso al tratarse de una red neuronal. Por ejemplo. As, deberamos hacer un seguimiento de cada
ello, esta estrategia fue descartada. enemigo para tener una funcin heurstica buena.
El algoritmo, por tanto, debera calcular el camino menos costoso,
3.2 Bsqueda A* para lo que cada casilla de la matriz mergedObservation (si
La siguiente solucin que nos planteamos seriamente fue hacer consideramos escenario y enemigos a la vez) es un nodo,
una bsqueda heurstica, pues est claro que en nuestro problema, evaluando la funcin para cada casilla y considerando cul es el
que no es un problema cerrado, debemos tener en cuenta el factor camino que nos puede llevar hacia la meta. Para ello, necesitamos
heurstico. As, podemos usar una funcin de evaluacin best-first una estimacin futura de lo que va a pasar hasta que lleguemos
como la bsqueda A*. La bsqueda avariciosa (greedy search) la hacia la meta para que la funcin heurstica est bien definida.
descartamos por poder atascarse en bucles infinitos si las
No vamos a hablar sobre temas de implementacin porque sta no
estimaciones no son del todo correctas, as que nos decantamos
fue la solucin que escogimos, aunque fue la solucin ganadora
por la investigacin sobre A*.
en el concurso de 2009. No fue escogida porque para que
Como ya hemos dicho, A* hace una bsqueda best-first que evita funcionara adecuadamente debamos implementar un simulador
expandir caminos que ya son muy costosos de por s, para no de cada elemento en pantalla, es decir, todos los enemigos, las
desperdiciar recursos de computacin. En cada nodo tiene que bolas de fuego que lanzamos para ser precisos y eso es algo
evaluar una cierta funcin f(n) que es: cuya complejidad excede el espritu de este trabajo; adems, la
f(n) = g(n) + h(n) implementacin de un algoritmo A* tampoco es trivial (debemos
evaluar la funcin en cada nodo) ni algortmica ni
donde f(n) es el coste estimado total hasta la meta pasando por el computacionalmente. Por ello, la solucin que escogemos,
nodo n (que es el que estamos evaluando), g(n) el coste sufrido finalmente, es la de los rboles de decisin.
hasta alcanzar el nodo n, y h(n) el coste estimado total hasta la
meta pasando por n. 3.3 rboles de decisin.
A* es capaz de alcanzar la solucin ptima (el camino ms corto En primer lugar, debemos referirnos a esta estrategia como un
hacia la meta) si conseguimos que la funcin heurstica no punto medio entre hacer un algoritmo muy elaborado, como el
sobreestime el coste real. algoritmo A*, y hacer una estrategia completamente heurstica, es
decir, ir parcheando el agente para que se pase una sola
Una vez planteado el modelo que se debera usar, debemos
pantalla.
plantearnos las siguientes dudas:
Un rbol de decisin constituye un mecanismo de aprendizaje
Cul es la meta? Obviamente, no es la meta final, ya
mediante induccin supervisada, como las redes neuronales
que Mario no es capaz de acceder a ella desde el
(aunque con menos complejidad a priori).
principio, por lo que lo ms razonable es escoger el
punto de suelo que se encuentre ms a la derecha de
nuestra matriz levelScene, y evaluar el camino hacia all
tomando el camino ms corto posible.
Qu funcin heurstica debemos emplear? Aqu es
donde est la calidad del algoritmo A*; en realidad,
deberamos evaluar si hay un enemigo, si hay un gap
poniendo por delante de todo la supervivencia.
Pongamos un ejemplo: est claro que si avanzamos
hacia la derecha y hay un enemigo, no deberamos
avanzar y, en vez de eso, deberamos quedarnos parados
o saltar. De esta manera, al camino que sea avanzar le
ponemos un coste sensiblemente superior al de saltar o
Figura 13. Modelo general de rbol de decisin.

- 73 -
De esta manera, buscamos encontrar las reglas que mejor modelan analizaremos en orden creciente de prioridad las herramientas con
la relacin entre las entradas, que en nuestro caso es el entorno las que cuenta Mario para salir airoso de las trampas que aparecen
(tanto escenario como enemigos) y las salidas, que es el en su camino.
comportamiento de Mario, es decir, si decidimos que salte, que La base de la que partimos permite al agente correr mientras
vaya a la izquierda, a la derecha... dispara bolas de fuego de manera intermitente. Los mtodos a
continuacin descritos modifican los valores base de manera
apropiada para hacer que el agente se adapte a las situaciones
detectadas.
Para obtener el mximo rendimiento de este planteamiento se
hace necesario un estudio previo de los peligros que van a acechar
al jugador automtico a lo largo de los recorridos que atraviesa.
As, la manera de trabajar ser ir aumentando la inteligencia del Una vez estudiados se puede establecer un orden de actuacin
agente en funcin de la dificultad de la pantalla, introduciendo para dar ms prioridad a la resolucin de los problemas ms
reglas y, por tanto, expandiendo el rbol que debemos evaluar. graves. La mejor manera de identificar de forma real el mayor
Otra ventaja con la que contamos es que la implementacin no es nmero de situaciones posibles es jugar manualmente
muy costosa computacionalmente, ya que bsicamente se trata de experimentando los problemas y viendo cmo pueden solventarse.
evaluacin de condiciones if-else; adems, su implementacin es Fruto de este estudio previo del entorno pudimos descubrir que
sencilla algortmicamente, ya que al tratarse de este tipo de las fuentes de fallo ms habituales sin tener en cuenta las criaturas
condiciones, es fcilmente entendible. que puedan aparecer son:
El gran problema de usar estos tipos de algoritmos es que no son Hoyos: en principio bastara con saltar al detectar una
tan generales como pueda ser el algoritmo A*, ya que se aproximacin a uno de ellos, sin embargo pudimos
programan en base a pantallas, es decir, de forma heurstica. De comprobar que en ocasiones es necesario ajustar el
esta manera, puede llegar a ocurrir que sea ptimo para una impulso ya que la superficie disponible para aterrizar el
pantalla pero que sea incapaz de pasarse otra pantalla salto no es infinita.
completamente distinta; por ello, nuestro objetivo a la hora de
Combinaciones de obstculos y escalones con hoyos:
implementar este rbol es la generalizacin, es decir, que no haya
los hoyos presentan una dificultad mayor si van detrs
sobreentrenamiento en nuestro modelo de aprendizaje. Esto lo
de un escaln de bajada, ya que por el impulso de
mostraremos con varias pantallas con escenarios muy diversos.
avanzar ya caes al vaco. Adems si el hoyo est detrs
Una vez que hemos decidido usar esta estructura por su sencillez de un obstculo corremos el peligro de saltar ms de la
y los resultados aceptables que se obtienen, debemos pensar en cuenta y precipitarnos por el gap.
ciertos aspectos:
Bloqueo entre ladrillos: cuando hay ladrillos en
Prioridades, es decir, qu entrada es ms importante ocasiones el espacio que hay entre ellos y el suelo no
para garantizar la supervivencia del agente. Esto, permite avanzar por lo que el agente se queda atascado
traducido a rboles de decisin, es qu condicin vamos como si se tratase de un callejn. En particular ocurre
a evaluar primero, si la condicin de que haya un cuando los ladrillos no pueden romperse. En la figura
enemigo delante o la condicin de que haya un gap por vemos que el hueco que queda es de una unidad y al ser
el que nos podamos caer. el agente grande no entra, por lo que tiene que dar la
Acciones a tomar, esto es, que si vemos, por ejemplo, vuelta y saltar por encima.
un enemigo que no salte, nuestra decisin sea saltar
sobre l o esquivarlo. Para ello deberamos prever el
movimiento del enemigo, como ya discutimos en la
seccin 3.2; el problema es que este simulador fsico no
es fcil (se requieren muchas horas para calibrarlo) as
que estas reglas se determinarn de forma heurstica
para el caso en el que haya enemigos.
Objetivos, es decir, si preferimos, por ejemplo, caminar
por encima de una fila de ladrillos porque haya una fila
de monedas o por el suelo porque haya ms enemigos a
los que podemos matar, o simplemente garantizar Figura 14. Bloqueo.
nuestra supervivencia que es a lo que este concurso se
Bloqueo con caones: la situacin de los caones
limita.
cuando tambin hay ladrillos impide el paso y el salto
Con todo esto en nuestra cabeza, pasamos sin ms dilacin a la del agente de la misma manera.
explicacin del cdigo realizado.
Obstculo final demasiado alto: el final del escenario
4. REGLAS DEL RBOL DE por defecto presenta una colina alta que obliga al agente
a subir ayudndose de otras colinas intermedias.
DECISIN.
El cdigo desarrollado dota al agente de una serie de habilidades Escaleras: las escaleras presentan un problema ya que
para superar los obstculos que pueda encontrarse a lo largo de suelen tener un hoyo detrs y deben estar muy ajustadas
distintas pantallas de nivel medio-alto. En este apartado

- 74 -
para no sobrepasarlas como tambin apuntbamos con la situacin lo que nos da tiempo para conseguir frenar
los obstculos anteriormente. y caer de manera casi vertical. Sin embargo para el
jugador automtico decidimos detectar la situacin con
un par de casillas de antelacin y ajustar la cantidad de
frenada en funcin de la altura que tenga el escaln. De
esta forma cambiamos de direccin durante un nmero
de intervalos proporcional a la cantidad de frenada
calculada y con ello conseguimos que caiga en tierra
firme.

Figura 15. Escaleras con gap.


Considerando todos estos retos sumados a la posibilidad de
aparicin de criaturas y balas, se establece un mtodo por
solucin requerida.
Las reglas que se encuentran implementas en nuestro agente son,
por prioridad:
Evitar flor de las tuberas: esta amenaza se resuelve de
forma pasiva, parndose hasta que la planta est
escondida. En este caso detecto las flores con una Figura 16. Escaln con gap.
antelacin de tres cuadros para tener un margen de Gap: el mtodo que detecta los hoyos y asigna una
frenada ya que no es posible pararse en seco. intensidad de salto que es por defecto la mxima ya que
Evitar enemigo saltando contamos con el mtodo de parar salto para ajustar
mejor la potencia del salto.
Bloqueo: como respuesta al peligro de quedar atascado
manifestado anteriormente, ya sea por la existencia de Obstculo delante: contamos con dos mtodos que
ladrillos o por la colocacin de un can, se implementa detectan que hay obstculos delante y uno adicional que
este mtodo. En cada consulta del mtodo getAction() identifica el tipo de obstculo de manera que si es uno
se intenta detectar si nos encontramos en situacin de con un hoyo detrs, la intensidad que se le pone al salto
bloqueo. Detectamos bloqueo cuando tenemos un es la mnima para que lo supere sin pasarse.
objeto sobre nosotros que nos impide saltar y adems el Gap salvable: para que el agente recorriese las pantallas
hueco que hay por delante es nulo o insuficiente. Si de forma ms fluida introdujimos este mtodo que
descubrimos que estamos en ese punto nos servimos de detecta cuando podemos saltar para acortar el camino
unos contadores para dar varios pasos en sentido aunque no haya un hoyo entre medias del origen y el
contrario, volver a girar y saltar sobre el objeto que nos destino del salto. De forma emprica establecimos unos
impeda el salto. lmites de lo que Mario es capaz de saltar y con ello
Enemigo no saltarn, destructible saltando sobre l: si el cada vez que detecta que saltando puede llegar
enemigo no salta, y lo detectamos justo delante (o una acortando el recorrido. Viene bien cuando hay tuberas
casilla ms adelante) de Mario, saltamos para intentar ya que en muchas ocasiones estn emparejadas y acorta
eliminarlo. bastante.
Parar salto: es un mtodo crucial ya que nos permite Subir ladrillo: este mtodo detecta cuando hay ladrillos
hacer un ajuste menos fino de la potencia de los saltos. por delante a una altura a la que pueda llegar con un
Cuando el agente est en pleno salto se hace un barrido salto el agente de forma que ste se mueva por las zonas
por el suelo y si se detecta que el hueco se termina en ms altas para coger monedas, evitar criaturas y posibles
los dos prximos cuadros, el salto se frena y con la bloqueos por debajo de las filas de ladrillos.
inercia que lleva es suficiente para caer sobre la Bala: si detectamos una bala encima de Mario, o encima
superficie detectada. Esto soluciona los problemas que y a la derecha de Mario, esperamos a que pase antes de
aparecan cuando haba que aterrizar sobre una proseguir nuestro camino.
superficie pequea.
Colina alta final: en esta competicin de Mario se ha
Frenar: este es otro de los mtodos que ms a menudo habilitado la opcin de que el final sea en alto, es decir,
salvan a nuestro agente. Cuando tenemos un escaln de sobre una colina muy alta que no es alcanzable saltando
bajada seguido de un hoyo no basta con pararse ya que con Mario, sino que tiene que volver atrs y saltar desde
como no se consigue frenar en seco la inercia que llevas ms arriba. Estamos hablando, por ejemplo, de esta
slo de avanzar hace que te precipites. Cuando se juega situacin:
manualmente este problema se resuelve anticipndose a

- 75 -
-ltb [on/off]: define si queremos que haya tuberas en
nuestro nivel (tuberas en las que pueden salir flores
como las que se detallaron en el apartado 2).
-lc [on/off]: con esto podemos hacer que en la pantalla
haya caones (de los que salen balas) o no.
-ld <nmero>: define la dificultad del nivel.
-lt <nmero>: define el tipo de escenario en el que
queremos jugar: si es el estndar, en el castillo no
tiene mucha ms repercusin en el nivel salvo el fondo
de escenario.
-ll <longitud>: con esto puedes especificar la longitud
deseada del nivel.
-ls <valor>: define la semilla del nivel. El nivel se
Figura 17. Colina alta final.
genera aleatoriamente, pero los nmeros aleatorios
En ese caso lo que hacemos es volver atrs hasta que dependen de una semilla; pues bien, con esto podemos
encontramos una estructura de ese tipo y llegamos a una cambiar la semilla generando tantos niveles distintos
altura suficiente desde la que podamos saltar y alcanzar (con dificultad similar) como queramos.
la meta. Con la adecuada manipulacin de esas opciones, observamos que
nuestro agente es lo suficientemente inteligente para superar:
5. RESULTADOS OBTENIDOS.
Como ya explicamos en la introduccin, la posibilidad de El escenario por defecto.
personalizacin del nivel al que juega Mario es muy grande. El escenario por defecto, con nivel de dificultad 2, slo
Listaremos aqu algunas de las que hemos usado para mostrar el goombas, con una semilla de 256 y una longitud de 200.
comportamiento de nuestro agente:
El escenario por defecto, con nivel de dificultad 3, slo
-le: define los enemigos que queremos que aparezcan en goombas, con una semilla de 985, con caones y con
la pantalla. Al contrario de lo que pone en la pgina una longitud de 150.
oficial, [1], ya no se hace una mscara a nivel de bit
sino que requiere un String. De esta manera, si ponemos El escenario por defecto, sin enemigos salvo flores y
le g, los nicos enemigos que aparecern sern balas, dificultad 4, con caones y tuberas.
goombas. Debemos destacar que esta opcin est El escenario por defecto, con goombas voladores y no
definida de forma distina a la que viene en la pgina voladores, semilla de 3 y longitud de escenario de 150.
oficial del campeonato, que propone hacer mscaras de
El escenario por defecto con koopas verdes y rojos,
bits cuando aqu funcionan Strings concatenados. De
semilla de 1780, nivel de dificultad de 1 y longitud de
esta manera las opciones que tenemos aqu (y son
escenario 250.
importantes a la hora de caracterizar si Mario reconoce
bien a cada enemigo) son: El escenario por defecto, con koopas verdes y rojos,
semilla de 2, nivel de dificultad 4 y longitud de
g: para los goombas.
escenario de 145.
gw: para los goombas voladores. No hemos probado muchos escenarios ms por falta de tiempo,
rk: para los koopa rojos. aunque creemos que con el tiempo invertido los resultados de
nuestro agente son razonablemente buenos y generales, puesto
gk: para los koopa verdes.
que sobrevive de manera admirable a ciertas pantallas que un
s: para spiky. humano no se pasara fcilmente, como hemos podido comprobar.
De igual manera que se hace para los goombas, si se le De esta manera, el techo de nuestro agente est en un nivel de
aade una w al final de cada cadena, se convierten en dificultad 4 tanto con enemigos (con koopas, aunque es lo mismo
voladores. con goombas y con una combinacin de los dos) como sin ellos.
De esta manera, si tenemos por ejemplo grkwgk en la
pantalla lo que tendremos es enemigos que son, 6. REFERENCIAS.
nicamente, goombas, koopas rojos voladores y [1] Pgina oficial de Mario AI Championship 2011:
koopas voladores. Parece trivial insistir en esto, pero http://www.marioai.com/.
no est bien documentado (hay que mirar el cdigo [2] Historia del Pong: http://es.wikipedia.org/wiki/Pong.
que da la competicin) y puede ahorrar ms de un
quebradero de cabeza. [3] Historia sobre Inteligencia Artificial:
http://es.wikipedia.org/wiki/Inteligencia_artificial.
-lg [on/off]: define si se quiere que haya gaps en
nuestro nivel o no, es decir, si Mario puede morir por [4] Historia sobre jugadores automticos de ajedrez:
caer en un hoyo que no haya contemplado. http://es.wikipedia.org/wiki/Ajedrez_por_computadora.
[5] Reflexiones sobre la generacin gamer:
http://www.cookingideas.es/como-motivar-a-la-generacion-

- 76 -
gamer-cambiando-las-notas-de-clase-por-puntos-de- [8] Resumen de la primera competicin de Mario AI:
experiencia-20110111.html http://en.wikipedia.org/wiki/A*_search_algorithm.
[6] Apuntes de la asignatura Inteligencia en Redes de [9] Agente basado en algoritmo A* (ganador de Mario AI 2009):
Comunicaciones, 5 IT. http://www.youtube.com/watch?v=DlkMs4ZHHr8.
[7] Informacin sobre el algoritmo A*:
http://en.wikipedia.org/wiki/A*_search_algorithm.

- 77 -
IMPLEMENTACIN DE UN AGENTE PARA UN JUGADOR
DE MARIO A.I.
Alejandro Prez Cruz David de la Horra Iglesias
Ingeniera de Telecomunicacin Ingeniera de Telecomunicacin
Universidad Carlos III de Madrid Universidad Carlos III de Madrid
NIA: 100072647 NIA: 100066695
100072647@alumnos.uc3m.es 100066695@alumnos.uc3m.es

RESUMEN 2. ESTRATEGIAS DE BSQUEDA


En este documento presentamos una posible implementacin de
un agente que pueda jugar al juego SuperMario Bross. con una Los algoritmos de bsqueda tratan de encontrar, en general, la
cierta inteligencia autnoma. solucin ms apropiada al problema en cuestin. Para ello se parte
de un estado inicial y se trata de alcanzar un estado final deseado
Categoras y descriptores de temas. (meta, objetivo) por medio del uso de rboles de decisin en los
[Inteligencia Artificial]: Agente reactivo que permite interactuar
cuales se van expandiendo nodos y desechando caminos de
con el medio y realizar acciones para superar los distintos niveles
bsqueda segn se avanza en el rbol.
del juego SuperMario Bros.
Para ello existen diferentes estrategias de bsqueda que definen el
Trminos generales orden para la expansin de nodos y que deben ser evaluadas
Algoritmos de bsqueda, lenguaje de programacin Java, diseo e segn:
implementacin de un agente.
Completitud de la solucin: hay que evaluar si la
Palabras Clave solucin se encuentra siempre que esta exista.
Bsqueda, inteligencia artificial, agentes. Complejidad temporal: en este caso, lo que se debe
1. INTRODUCCIN evaluar es el nmero de nodos que han sido generados.
Complejidad espacial: hay que evaluar adems el
A lo largo del siguiente documento expondremos las diferentes nmero de nodos que como mximo se han guardado en
estrategias de bsqueda existentes y las posibles memoria.
implementaciones que se deben tener en cuenta para desarrollar Optimalidad de la solucin: hay que evaluar si se
un agente que permita jugar de manera autnoma y con cierta encuentra la solucin con menor coste.
inteligencia al SuperMario, consiguiendo superar el mayor
nmero de niveles posibles y con la mayor puntuacin posible. Para evaluar cada estrategia se utilizan unos parmetros, que son:
Adems se explicar la solucin llevada a cabo y nuestra 1) Factor de ramificacin (b).
implementacin del agente en Java para lograr un resultado 2) Profundidad de la solucin (d).
satisfactorio en la competicin para nuestro jugador. Se presentar
pues el algoritmo utilizado (rboles de decisin) y el entorno en el 3) Mxima profundidad (m).
que se desarrolla nuestra aplicacin.
Una vez tenemos toda la informacin necesaria para evaluar
nuestra solucin, trataremos de implementar aquella estrategia que
se adece ms al fin que persigamos y que sea posible con los
recursos de tiempo y memoria de los que se dispone.
En nuestro caso se dispone de informacin del dominio por medio
de una matriz de 19x19 que nos proporciona informacin de la
escena en la que se encuentra nuestro Mario y en la que dicho
Mario se encuentra centrado en la posicin (9,9) en todo
momento.
As pues, debido a que tenemos informacin del dominio puede
ser lgico utilizar algn tipo de estrategia heurstica que ayude a
encontrar la solucin a nuestro problema, es decir, en nuestro caso
a permitir avanzar a nuestro jugador a lo largo de un nivel sin que
sufra dao alguno.

- 78 -
3. ALGORITMOS 3.3 Algoritmo de pathfinding A*

3.1 rboles de decisin Presentamos este algoritmo porque tambin se recomienda desde
la competicin de MarioAI ya que ha dado buenos frutos a
anteriores participantes que lo desarrollaron.
Es la estrategia que hemos seguido para desarrollar nuestro
agente. Consiste en un modelo de prediccin usado en el mbito Este algoritmo se clasifica dentro de los algoritmos de bsqueda
de la inteligencia artificial. Permiten construir un diagrama de en grafos. Adems, se demuestra que la bsqueda realizada por
decisiones y/o de prediccin basados en reglas que sirven para medio de este algoritmo alcanza la solucin ptima (el camino de
representar una serie de condiciones que ocurren de forma menor coste entre un nodo origen y uno objetivo) siempre que se
sucesiva. utilice un heurstico admisible, es decir, que no sobreestime el
coste real.
Un rbol tiene una serie de entradas, las cuales pueden ser un
objeto o una situacin descrita a partir de un conjunto de atributos. Este algoritmo utiliza una funcin de evaluacin que tiene en
Como resultado del procesamiento de las entradas y a travs de la cuenta tanto el coste real del recorrido como el valor heurstico de
estructura del rbol, basada en ciertas reglas, se consigue alcanzar los nodos. La funcin es la siguiente:
las hojas del rbol en el que se encuentran las decisiones a tomar
en funcin de las entradas que se tenan. ( ) = ( ) + ( )

As pues, lo importante en este tipo de algoritmos es definir bien Donde:


las reglas de modo que se adapten correctamente a la situacin g(n): coste sufrido hasta alcanzar n (nodo actual).
que se plantea para que la solucin que se alcanza sea la ms
apropiada dada la situacin y el conocimiento del entorno que se h(n): coste estimado desde n hasta la meta.
tiene. f(n): coste estimado total hasta la meta pasando por n.
Dicho algoritmo mantiene dos estructuras de datos auxiliares:
3.2 Algoritmos genticos nodos abiertos (implementados como una cola con prioridad
ordenada por el valor f(n) de cada nodo) y los nodos cerrados
donde se guarda la informacin de los nodos que ya han sido
Este tipo de algoritmos se desarrolla en mltiples mbitos de la visitados.
inteligencia artificial y era uno de los que se nos propona
desarrollar desde la pgina web de la competicin de Mario AI y
por eso aparece en esta memoria.
Un algoritmo gentico es una tcnica de bsqueda basada en la
teora de la evolucin de Darwin, que ha cobrado tremenda
popularidad en los ltimos aos.
Esta tcnica se basa en los mecanismo de seleccin que utiliza la
naturaleza, de acuerdo a los cuales, los individuos ms aptos de
una poblacin son los que sobreviven al adaptarse ms fcilmente
a los cambios que se producen en su entorno.
As pues, los algoritmos genticos son mtodos adaptativos que
pueden usarse para resolver problemas de bsqueda y
optimizacin y que estn basados en el proceso gentico de los En cada paso, se expande el nodo que est primero en abiertos, y
organismos vivos. en caso de que no sea un nodo objetivo, calcula el f(n) de todos
sus hijos, los inserta en abiertos, y pasa el nodo evaluado a
Durante la fase reproductiva se seleccionan los individuos de la cerrados.
poblacin para cruzarse y producir descendientes que constituirn,
una vez mutados, la siguiente generacin de individuos. La As pues, este algoritmo es una combinacin entre bsquedas de
seleccin de padres se efecta al azar usando un procedimiento tipo en anchura con bsquedas en profundidad.
que favorezca a los individuos mejor adaptados, ya que a cada
individuo se le asigna una probabilidad de ser seleccionado que es
proporcional a su funcin de adaptacin. De este modo, los
individuos bien adaptados se escogern probablemente varias
veces por generacin, mientras que los pobremente adaptados no
se escogern ms que de vez en cuando.
Por lo tanto, un algoritmo gentico es un mtodo de bsqueda
dirigida basada en probabilidad. Bajo una condicin muy dbil
(que el algoritmo guarde siempre al mejor elemento de la
poblacin sin hacerle ningn cambio) se puede demostrar que el
algoritmo converge en probabilidad al ptimo. Es decir, al
aumentar el nmero de iteraciones, la probabilidad de tener el
ptimo en la poblacin tiende a uno.

- 79 -
4. AGENTES Delegacin: capacidad para realizar tareas delegadas por
el usuario u otros agentes.
Una vez hemos comentado un poco las diferentes estrategias de
bsqueda para ayudarnos a solucionar nuestro problema, vamos a Movilidad: capacidad de suspender la ejecucin a mitad
comentar un poco la teora que hay por debajo del agente que de una tarea y reanudarla en otro nodo.
debemos desarrollar.
Personalidad: capacidad para tener un estado mental que
incluya creencias, deseos, intenciones, motivaciones...
4.1 Definicin y principios bsicos que determinen su comportamiento.

Un agente es una entidad capaz de percibir su entorno, procesar Continuidad temporal: se considera un agente como un
tales percepciones y responder o actuar en su entorno de manera proceso sin fin, ejecutndose continuamente y
racional, es decir, de manera correcta y tendiendo a maximizar un desarrollando su funcin.
resultado esperado basndose en la evidencia proporcionada por
sus sensores y en el conocimiento del que disponga.
Veracidad: asuncin de que un agente no comunica
As pues, un agente es autnomo en tanto en cuanto sus acciones
informacin falsa a propsito.
y elecciones dependen ms de su propia experiencia que del
conocimiento introducido sobre el entorno por el programador.
Benevolencia: asuncin de que un agente est dispuesto
Segn Michael Wooldridge un agente inteligente es el que es
a ayudar a otros agentes si esto no entra en conflicto con
capaz de actuar con autonoma de forma flexible, destacando la
reactividad, la proactividad y la habilidad social sobre otras sus propios objetivos.
propiedades.
En general, los agentes poseen las siguientes propiedades: Adems, presentamos las arquitecturas generales de los agentes:

Autonoma: es la independencia del usuario. El agente


debe ser capaz de tomar decisiones por su cuenta.

Reactividad: el agente debe observar e interactuar con el


entorno.

Proactividad: debe haber una intencin de cumplir con


los objetivos fijados mediante planificacin y
razonamiento prctico.

Persistencia: es la capacidad para mantener un estado


(estado mental) que no se modifica caprichosamente.

Razonamiento: el agente debe ser capaz de interpretar la


informacin del entorno, realizar inferencias y tomar las
decisiones oportunas.
En nuestro caso, implementamos un agente reactivo debido a su
Aprendizaje: es la capacidad para cambiar su simplicidad bsicamente.
conocimiento a partir de la experiencia.
Adems, cabe decir que la conducta de una agente rara vez es la
Planificacin: se define como la capacidad de construir ptima. Esto es debido a que calcular el ptimo de un criterio de
planes propios para lograr objetivos a partir de las tareas un modo suficientemente bueno para ser considerado razonable es
que se sabe realizar o podemos pedir a otros. muy difcil cuando en el problema planteado concurren mltiples
restricciones.
Comunicacin: es la capacidad para entenderse con
otros agentes en un lenguaje expresivo con actos
comunicativos.

Cooperacin: es la capacidad para solicitar o dar


servicios a otros agentes y trabajar en cooperacin para
conseguir un objetivo comn.

- 80 -
4.2 Familias de agentes

Por ltimo, en este apartado ms terico sobre agentes


describiremos algunas familias:

Agentes colaborativos: son aquellos que principalmente


cooperan con otros agentes.

Agentes personales: actan par un usuario o un grupo de


usuarios compartiendo tareas, datos, etc. Mario Pequeo: Este estado es el ms pequeo de todos
en tamao, y esto repercute en que tenga que saltar ms
Agentes de informacin: investigan y analizan la que Sper Mario o Mario Fuego para superar el mismo
informacin en la red y permiten fusionar la obstculo, adems de no disponer del botn correr y
informacin de mltiples fuentes. echar fuego.

Agentes mviles: son aquellos que se desplazan para


ejecutarse. Suelen ser agentes de informacin.

4.3 Estados de Mario

Aunque en nuestra implementacin no tenemos en


cuenta el estado en el que se encuentra Mario,
consideramos cultura del juego el que el lector sepa los
diferentes estados en los que se puede encontrar Mario y
las caractersticas de las que puede disponer.
4.4 Estados de movimientos
Mario Fuego: Este es el mejor estado en el que puede
encontrarse Mario, en el podr efectuar todos los Mario podr estar en diversos estados a lo largo de la partida,
movimientos posible incluyendo correr y echar fuego. estos son vitales para posteriormente poder establecer las
Si Mario es herido por alguna de las criaturas pasar al reglas de decisin.
estado Sper Mario tras parpadear un tiempo en la Estos estados vienen ya codificados en el paquete que nos
pantalla. Este es por defecto el estado en el que empieza descargamos de [8]
la partida. Estos estados son:

Andando: Este movimiento se produce cuando se pulsan


cualquiera de las teclas de direccin izquierda (KEY_
LEFT) o derecha (KEY_RIGTH). Esta accin es
independiente del estado de Mario y tambin podemos
pasar a cualquier otra accin.

Corriendo: Mario avanza a una velocidad superior a la


normal, esto solo se puede conseguir si se encuentra en
los estados Mario Fuego o Sper Mario.
Para poder llegar a este estado es necesario mantener
pulsadas las teclas de direccin ya sea izquierda o
Sper Mario: Mario llega a este estado tras comer una
derecha y la de correr (KEY_SPEED).
seta desde Mario o ser herido desde Mario Fuego, podr
realizar todos los movimientos excepto correr y echar Saltando: Esta accin se puede realizar en cualquier
fuego. estado de Mario, pero debido al tamao reducido de
Mario pequeo como es obvio necesitara saltar ms para
poder sobrepasar el mismo obstculo.
Este movimiento contempla desde que presionamos la
tecla de salto hasta que llegamos al punto ms alto, el
nivel del salto depende de cunto tiempo est pulsada la
tecla de salto (hasta alcanzar un mximo).

- 81 -
Es importante tener en cuenta que para poder iniciar un En nuestra implementacin distinguimos ente:
salto no puede estar pulsada con anterioridad la tecla de
salto, en ese caso no saltar.
Avanzar: Esta accin consiste en correr hacia la
Cayendo: Despus de haber efectuado un salto, la derecha, dicha accin tiene una prioridad muy baja, ya
gravedad nos hace caer, en este momento no podremos que como es lgico ser interrumpida cuando encuentre
impulsarnos ms e iremos hacia el suelo. un enemigo o tenga que saltar.
Esta accin es independiente del estado en que se Esta es la accin bsica de nuestro Agente.
encuentre Mario y no requiere pulsar ninguna tecla. Eso
si podremos mantener una de las teclas de direccin Saltar paredes: Como su propio nombre indica esta
pulsadas para controlar la cada. accin se aplicara cuando Mario encuentre un obstculo
en su campo de visin. Las reglas que aplicamos para
Agachado: Este movimiento har que Mario reduzca su este mtodo son muy amplias debido a que deber
tamao lo cual puede ser til para esquivar una bala por distinguir entre una amplia gama de superficies y
ejemplo. Mario pequeo no se podr agachar. Para tambin dependiendo de la superficie elegir la mas
alcanzar este estado se debe pulsar la tecla de direccin optima Hemos incorporado un contador de saltos cuyo
que apunta hacia abajo (KEY_DOWN). objetivo es que cuando la tecla salto este mucho tiempo
Cuando nos encontremos en este estado no se podr pulsada pero siga teniendo que saltar suelta la tecla (se
saltar. ponga a KEY_JUMP=false en el cdigo). Esto es muy
necesario debido a que Mario no puede saltar si ya esta
Disparando: Este movimiento solo se podr hacer presionada la tecla de salto y si esto ocurriera antes de
cuando se encuentre en el estado Mario Fuego. Para que Mario pudiera saltar, si por ejemplo esta en el aire,
realizarlo habr que hacer una pulsacin de la tecla de esto producira que nuestro agente se quedase
correr (KEY_SPEED). bloqueado.

Herido: Este estado se alcanzar tras colisionar con Saltar escaleras: Este movimiento es uno de los ms
algn enemigo, acto seguido dispondr de un tiempo de complicados debido a la complejidad que supone saltar
aproximadamente medio segundo de inmunidad y luego de un escaln en un escaln. Primero deber detectar la
cambiara de estado. escalera, lo cual lo hacemos cuando se la encuentra o
cae de un salto en un escaln. A continuacin saltar de
Si el estado inicial era Mario Fire pasar a Supe Mario, uno peldao si ese es el ltimo escaln, es decir, si
si por el contrario Mario se encontraba en el estado de despus ya solo tiene vacio saltara al otro lado, en caso
Supe Mario iremos a Mario Pequeo y por ltimo si contrario deber saltar al siguiente escaln. Esto lo
estbamos en Mario Pequeo moriremos y se acabar la realizar todas las veces que sea necesario.
partida.
Saltar enemigo: Para esta accin hemos puesto reglas
genricas aplicables a todos los enemigos, ya que
4.5 Movimientos de nuestro agente despus de analizar el cdigo que nos proporcionan
hemos visto que la mayora tienen un valor mayor o
Nuestro agente como ya mencionamos en el apartado de igual a 80. Estas reglas son del estilo: saltar cuando
algoritmos ser reactivo y se basara en distintas reglas de ms o detecte un enemigo delante suya, saltar cuando detecte
menos prioridad para decidir qu accin deber realizar. un enemigo cayendo hacia l, etc. Para hacer bien este
movimiento deberemos tener en cuenta muchas
Para ilustrar grficamente los movimientos hemos construido un variantes ya que los enemigos pueden perseguir a
rbol para que se pueda ver el nivel de decisin el primer estado Mario, caer del cielo, o incluso caer a sus pies.
que es Final especial es el estado que tiene ms prioridad y el
estado Avanzar es el que tiene menos prioridad. Agacharse: Esto es un caso especial de esquivar un
enemigo y lo hacemos cuando un misil va hacia Mario,
en este caso se agacha hasta que pase. Para ello
mantenemos pulsada la tecla con direccin hacia abajo
(KEY_DOWN=true) e ir comprobando si en la
posicin de encima de su cabeza no tiene nada, slo
entonces podr levantarse.

Retroceder: Si hay enemigos en una posicin en la cual


INICIO:
no va a poder esquivarlos saltando, retrocedemos. Esto
se antoja de vital importancia en niveles muy altos
Saltar
Final
especial
Esquivar
flor
Esquivar
bala
tubera/ca
Saltar
escalera
Evitar
hoyos
Saltar pared Avanzar donde pueden aparecer 10 enemigos de golpe, esto har
n
que retrocedamos y podamos analizar mejor la situacin
ya que si hubiramos seguido avanzando podramos
haber sido heridos al no poder tener en cuenta todos a la
vez.

- 82 -
Andar sobre tubo: Cuando estamos sobre un tubo no Algunos de los ms usuales son:
corremos, esto evitar que nos caigamos en un hoyo o
justo al lado de un enemigo al caer. Para esto ltimo
deberemos hacer varas consideraciones ya que habr
que explorar diferentes opciones y aadir muchas
reglas debido a la posible diversidad del escenario.

Escaln antes de hoyo: Cuando detectamos un escaln


antes de un hoyo calculamos si podemos realizar el
salto, si es afirmativo saltamos y si no vamos ms
despacio. El ir ms despacio tiene como objetivo poder
caer en el siguiente escaln y una vez all poder afrontar
el salto con seguridad.

Final En Alto Para poder terminar una partida cuando el


final es un alto que no es accesible a priori hemos hecho
una serie de mtodos que son: SaltoFinal, Doble,
EstoyDebajo y buscarCamino por los que ira pasando
para poder llegar a la meta.

4.6 Interfaz Grfico

Para empezar cabe el interfaz grfico se facilita en [8]. Este


interfaz es bastante completo y a parte de unos grficos
aceptables, nos da multitud de opciones para poder cambiar de
nivel, apariencia, obstculos

Vamos a mostrar una captura de la pantalla para que se pueda


tener una idea ms grfica.

Nuestro agente dispondr de dos matrices de 19x19 las cuales le


aportarn informacin de su entorno. Mario estar en la posicin
(9,9) en todo momento.
En cualquiera de las dos matrices si no hay nada, esa posicin
tendr el valor 0.

La primera matriz ser LevelScene, esta matriz le indicara los


elementos fijos de la pantalla, tales como: paredes, tuberas,
caones

- 83 -
Como podemos apreciar en esta primera matriz salen todos los
valores del entorno incluyendo las monedas cuyo valor es el nico
positivo (el 1).

La segunda matriz es enemies tambin de 19x19 y en su interior


tendr los valores de los enemigos.

Algunos de los enemigos ms usuales son:

Una vez tenemos identificados los nmeros que tendr la matriz


Como podemos ver en la imagen aunque el fuego que arroja
enemies, vamos a ver sobre la pantalla como quedara.
Mario no es un enemigo como tal, tambin viene indicada en la
Tambin es llamativo resaltar que la mayora de enemigos tiene
matriz enemies con un 25.
un valor superior a 80, eso nos facilitara a la hora de implementar
el cdigo para que esquive a cualquier enemigo desconocido y sin
Como hemos podido comprobar estas matrices nos van a ser de
que necesidad de tratarlo como un caso especial.
vital importancia para poner las reglas ya que nos irn
proporcionando informacin detallada de la posicin y el numero
Para eso utilizamos la pantalla anterior aunque solo tengamos un
de enemigos en cada instante.
par de enemigos del mismo tipo.

- 84 -
5. SOLUCIN PTIMA 6. BIBLIOGRAFA
[1] http://es.wikipedia.org/wiki/%C3%81rbol_de_decisi%C3%B
3n
Obviamente el algoritmo que hemos implementado en dos
semanas dista de ser el ptimo y deseado, la mayora de los [2] http://julian.togelius.com/mariocompetition2009/GIC2009Co
participantes mejor clasificados disponen de algoritmos genticos mpetition.pdf
Y en particular los tres mejores clasificados del 2010 usaron el [3] http://es.wikipedia.org/wiki/Algoritmos_gen%C3%A9ticos
pathfinding A* [4] http://eddyalfaro.galeon.com/geneticos.html
[5] http://es.wikipedia.org/wiki/Algoritmo_de_b%C3%BAsqued
a_A*.
[6] http://es.wikipedia.org/wiki/Agente_inteligente_(inteligencia
_artificial)
[7] http://www.ati.es/novatica/2000/145/vjulia-145.pdf
[8] http://www.marioai.com/

- 85 -
Inteligencia en Redes de Comunicaciones
Robot de Robocode
Felipe Llinares Lpez Juan Jos Torres
100072665 Garca
10072753

ABSTRACTO
En esta memoria describimos una implementacin
que hemos realizado de un robot de competicin para
el programa Robocode.

General Terms
Algoritmos, Rendimiento, Diseo.

1. INTRODUCTION
Robocode es, en parte un juego, y en parte un
language de programacin.

Los tanques, llamados robots, estn puramente


controlados por un algoritmo interno para cada uno
de ellos. Es decir, es un juego de Inteligencia
Artificial. Dichos algoritmos se escriben en el
lenguaje de programacin Java.
Es un juego en el que unos tanques controlados por el El propio programa da muchas facilidades para hacer
ordenador luchan entre s por su propia robots, y es muy sencillo escribir el algoritmo de un
supervivencia, dentro de un tablero de juego. robot bsico que se mueva, detecte a los enemigos y
les dispare. Sin embargo, los algoritmos pueden llegar
a complicarse mucho. Hay quien dedica mucho
tiempo a hacer robots muy difciles de combatir. De
hecho, incluso hay una liga profesional de Robocode.
Nuestro trabajo ha consistido en hacer un robot
bastante competitivo. Quiz no tan efectivo como los
mejores de la liga profesional, pero s es capaz de
vencer con facilidad a los robots sencillos, e incluso
es capaz de ganar algunas veces a los ms
complicados.
En esta memoria, explicamos de forma breve en qu
consisten los algoritmos que hemos utilizado. Est
dividida en dos partes:

- 86 -
Sistema de Disparo Debido a la limitacin mxima de diez pginas que
pesa sobre el contenido de este trabajo,
Sistema de Esquiva
renunciaremos a la posibilidad de exponer el estado
El sistema de disparo intenta predecir el movimiento del arte sobre los sistemas de Inteligencia Artificial
de los robots enemigos, para as disparar a donde van para disparo en Robocode y nos centramos en
a estar cuando la bala llegue a su posicin, mientras describir de forma detallada cul es la forma en la que
que el sistema de esquiva mueve al robot intentando nosotros hemos atajado el problema.
esquivar de la forma ms efectiva las balas de los En nuestra opinin, el problema de disear un sistema
robots enemigos. de disparo es claramente un problema que se presta a
ser tratado desde la rama del Aprendizaje Mquina.
Es fcil plantearlo como un problema de aprendizaje
2. Sistema de Disparo supervisado, concretamente, como un problema de
estimacin, o si consideramos un comportamiento
2.1 Introduccin puramente determinista, de regresin.
El lema de Robocode es Build the best, destroy the
rest. Por tanto, no debe resultar una sorpresa que
disear un sistema efectivo de disparo es esencial 2.2 Preprocesador de Datos
para obtener un bot competitivo. Cada vez que escaneamos a un robot enemigo (lo
Hay multitud de aproximaciones a dicho problema. cual, con un algoritmo de escaneo adecuado, ocurre
La ms sencilla de todas es conocida como Head- cada turno), el kernel que controla la ejecucin de la
On-Targeting batalla invoca el mtodo onScannedRobot, el cul
recibe como parmetro un objeto de la clase
ScannedRobotEvent.
Dicho objeto contiene informacin muy interesante
sobre el estado del robot enemigo, como la distancia
al enemigo, su direccin, velocidad, energa restante o
el ngulo relativo entre nuestra direccin y su centro.
Adems, dedicando suficiente esfuerzo, es posible
programar un mdulo de pre procesado de datos que
obtenga muchas otras medidas de segundo, tercer o
incluso cuarto orden a partir de los datos que se
obtienen directamente del objeto ScannedRobotEvent
y de invocaciones anteriores de dicho mtodo.
Por ejemplo, a partir de la velocidad y la direccin se
puede obtener la velocidad radial y angular, as como
Consiste simplemente en disparar hacia donde vemos el sentido de giro del robot enemigo respecto a
al enemigo. Si bien a primera vista puede parecer algo nuestro centro. Igualmente, a partir de nuestra
totalmente razonable, la reducida velocidad de las posicin (la cual es conocida en todo momento), la
balas, entre 11 pixeles por turno para las balas ms distancia al robot enemigo y el ngulo relativo entre
poderosas hasta 20 pixeles por turno para las ms nuestra direccin y el centro del robot enemigo
dbiles, hace que si utilizamos Head-On-Targeting, podemos calcular la posicin absoluta del robot
lo ms probable es que para cuando la bala llegue a la enemigo. Otro dato interesante es la distancia del
posicin del bot enemigo, ste ya no se encuentre all. robot enemigo a los muros, que puede ser medida
tanto en pixeles como en el nmero de turnos que
Por tanto, disear un buen sistema de disparo es tardara el robot enemigo en chocar con los muros si
mucho ms complejo de lo que puede parecer en un siguiese la misma trayectoria.
principio y ha sido objeto de estudio por muchos
aficionados a la Inteligencia Artificial dentro del Si adems usamos los datos obtenidos en el evento
mundo de Robocode. anterior, podemos obtener medidas con dimensin
temporal como la aceleracin del robot enemigo, el
nmero de turnos que lleva sin cambiar sentido de

- 87 -
giro, sin acelerar o sin decelerar o simplemente En el momento de generar la onda, almacenamos
parado. informacin sobre la posicin en la que se encontraba
el enemigo. A cada turno, comprobamos si la onda ha
llegado al enemigo. Cuando es as, podemos saber
cul ha sido su desplazamiento desde que disparamos
la bala virtual hasta que dicha bala habra
impactado. Una vez realizada dicha medida, tenemos
una nueva muestra para nuestro conjunto de datos de
entrenamiento, formada por todos los datos de
entrada comentados anteriormente (velocidad,
direccin, aceleracin, etc.) y el ngulo de desviacin
que debimos usar.

La forma de obtener dicho dato es bastante original.


Cada vez que vemos al enemigo, consideramos que se
genera una onda esfrica en el centro de nuestro robot En la figura se muestran las ondas originadas para el
y que se propaga a la misma velocidad que lo hara la clculo de los valores exactos de la variable de salida.
bala que dispararamos en ese momento si Las ondas negras tienen una bala real .mientras que
pudiramos hacerlo (hay que recordar que en las blancas son balas virtuales.
Robocode, no es posible disparar repetidamente de As, nuestro sistema tratar de utilizar una serie de
forma ilimitada porque hay calentamiento en el datos que obtenemos de las invocaciones del mtodo
can). onScannedRobotEvent para tratar de estimar
mediante ciertos algoritmos cmo se mover nuestro
rival durante el tiempo que tardar la bala en llegar a
l y as calcular el ngulo correcto con el que
debemos compensar nuestro can a la hora de
disparar.
Realmente, la limitacin en los datos que tomaremos
cada vez que escaneamos al robot enemigo est
simplemente en nuestra imaginacin y habilidad
como diseadores. Un buen pre procesado de datos,
en el que adquiramos datos verdaderamente
relevantes para el problema, es la primera clave para
disear un sistema de disparo efectivo. En ese
sentido, vemos que el problema no se diferencia en
absoluto de cualquier otro sistema que hemos

- 88 -
estudiado durante la asignatura en el tema de durante breves periodos de tiempo por un
Aprendizaje Mquina. movimiento circular. En esa situacin, es
posible disear un algoritmo que, asumiendo
dicho movimiento circular, prediga de forma
exacta donde se encontrar en enemigo y
dispare ah. Dado que la similitud al
movimiento circular es grande pero no exacta,
la probabilidad de fallar existe. Sin embargo,
este algoritmo funciona bien a distancias
cortas.

Least Mean Squares: La utilizacin del


2.3 Algoritmos archiconocido algoritmo LMS en Robocode
Una vez hemos adquirido y procesado los datos que es, creemos, una contribucin original nuestra
conformaran nuestro conjunto de entrenamiento, ya que no hemos encontrado referencia
debemos disear algoritmos para estimar el ngulo de alguna en la wiki. Tras volcar conjuntos de
desviacin ptimo al disparar a partir de dichos datos.
datos obtenidos tras varias batallas en
La primera cosa que debemos mencionar es que, ficheros y procesarlos con MATLAB,
gracias al concepto introducido anteriormente de
llegamos a la conclusin que una regresin
balas virtuales, podemos utilizar simultneamente
varios algoritmos distintos. As, a cada momento, lineal era sorprendentemente precisa. Debido
elegimos cul es el algoritmo que est obteniendo a la elevada complejidad computacin de las
mejores resultados en trminos de porcentaje de regresiones lineales exactas (inversin de
acierto y la bala real es disparada segn la prediccin matrices principalmente) y a que en este
de dicho algoritmo. El resto simplemente generan una contexto es mucho ms interesante emplear
bala virtual de la cual nos ocuparemos para ver si un algoritmo adaptativo, llegamos a la
hace impacto virtual o no.
conclusin de que LMS poda obtener buenos
Utilizando dicha idea, nuestro sistema de disparo se resultados, como as hemos comprobado en la
compone de cuatro algoritmos:
prctica.
Sistema de disparo de corto alcance: En
situaciones en las que nuestro enemigo est Dynamic Clustering: El algoritmo de moda
cerca, esto es, a menos de 100 pxeles, se puede para disparar en Robocode a fecha de
aproximar el movimiento del bot enemigo Diciembre de 2012. El mtodo es una

- 89 -
combinacin de KNN con estimacin de
densidades de probabilidad. A cada instante
que debemos disparar, buscamos en nuestro
conjunto de datos las K situaciones ms
similares a la actual que hemos vivido en el
pasado, donde cada situacin se caracteriza
por los datos de entrada que hayamos
decidido usar. Con dichas K situaciones ms
similares, trataremos de estimar la PDF de la
variable de salida para nuestro estado actual y
elegiremos como ngulo de desviacin aquel
que tenga la mxima densidad de
probabilidad. En otras palabras, usamos el
criterio de mxima verosimilitud. Es
importante resear que tanto el mtodo de
estimacin de la PDF, como el parmetro K,
como los datos de entradas para identificar LMS Weighted Dynamic Clustering: Nuestra
situaciones son algo que debe elegir el segunda aportacin original a los algoritmos
diseador. Sobre los datos de entrada ya de disparo en el mundo de Robocode. Uno de
hemos hablado. Respecto a los otros dos los problemas, a nuestro juicio, del algoritmo
parmetros, nosotros utilizamos el mtodo de Dynamic Clustering es que es tremendamente
las ventanas de Parzen con kernel gaussiano heurstico. Viendo el cdigo de varios bots
para la estimacin de la PDF y K = 25 como open source que implementan dicho
parmetro del KNN ya que es la algoritmo, comprobamos que cada bot
configuracin que mejor tasa de acierto nos tomaba sus propios datos de entrada y les
ha proporcionado en nuestros benchmark. asignaba pesos de una forma bastante oscura
a priori. Por tanto, nos planteamos si haba
una forma de que nuestro robot aprendiese
tambin, a la hora de buscar las situaciones
ms similares en el paso KNN del algoritmo
de Dynamic Clustering, que datos de entrada
son realmente ms importantes. Nuestra idea
fue emplear los pesos del filtro LMS, en valor
absoluto y normalizados, como indicador de
qu datos son ms importantes. As,
sustituimos la distancia Eucldea por una
distancia con pesos y el resto del algoritmo se
mantiene igual.

Este algoritmo es utilizado por los robots ms


competentes de todo Robocode.

- 90 -
De nuevo, hay multitud de formas de afrontar el
problema, y el espacio que podemos dedicarlas en
esta memoria es escaso. Por tanto, nos centraremos en
nuestra forma de resolver el problema.
Hemos utilizado un algoritmo bastante comn entre
los robots ms poderosos actuales, conocido como
Wave Surfing, o surfeo de ondas, que exponemos a
continuacin.

Predicciones para la futura posicin del enemigo


segn los distintos algoritmos
Como dijimos, los cuatros algoritmos anteriormente
descritos son constantemente simulados de forma
concurrente. Sus tasas de acierto virtual son
monitorizadas y, aquel con mayor tasa de acierto
virtual, es el que guiara la direccin de nuestra
siguiente bala real. En la prctica, hemos comprobado
que el algoritmo LMS Weighted Dynamic Clustering
es aquel que suele ofrecer mejores resultados. Sin
3.2 Preprocesador de Datos
embargo, mantener los cuatro a la vez es, sin duda, la Como ya hemos comentado, con un algoritmo
mejor eleccin: no slo hace nuestros disparos ms adecuado, nuestro robot escanear al robot enemigo
impredecibles sino que hace nuestro bot mucho ms cada turno. La idea bsica de Wave Surfing consiste
adaptable a enemigos de distintas caractersticas. en que cada vez que esto ocurre, generamos una onda
imaginaria esfrica, como la que se generaba para el
algoritmo de disparo, pero esta vez centrada en el
robot enemigo.
3. Sistema de Esquiva
Dicha onda se ir propagando a lo largo del tiempo, y
3.1 Introduccin llegar un momento en el que su frente rompa contra
Al igual que nuestro bot intenta estimar la posicin nuestro robot. Como generamos una onda cada turno,
del bot enemigo para impactarle incluso aunque se cada vez que el robot enemigo dispare una bala, habr
mueva, de igual forma el bot enemigo intentar una onda asociada a ella.
estimar nuestra posicin.
Nuestro deber es ponerle al bot enemigo lo ms difcil
posible dicha estimacin. Es decir, debemos decidir
hacia qu direccin y sentido queremos mover
nuestro bot y cunto, en trminos de velocidad, para
que las bolas enemigas no nos den. Dicho de otra
forma, tenemos que elegir dnde vamos a estar cierto
tiempo despus al momento de disparo del enemigo,
tal que el movimiento de la bola enemiga no
interseccione con el de nuestro robot.

- 91 -
3.3 Algoritmo
Nuestro algoritmo en concreto, anlogamente a lo que
hacamos para disparar, consiste en estimar con
cunto ngulo de desviacin respecto a donde est
nuestro robot est disparando el robot enemigo.
Para ello, nos basamos en las balas que nos
impactaron anteriormente. Cada vez que nos impacta
una bala, buscamos entre las ondas que tenemos
apuntadas a cul estaba asociada. En dicha onda,
tenemos apuntado el punto de donde sali, que es
dnde estaba el enemigo cuando dispar la bala que
nos ha dado, y tambin tenemos dnde estaba nuestro
robot en el momento de disparo. Sabiendo el punto en
el que nos ha impactado la bala, que es justamente
nuestra posicin en el momento del impacto,
podemos estimar con cunto ngulo de desviacin
Lo interesante del algoritmo estriba en que la bala
dispar el robot enemigo.
enemiga viaja en uno de los puntos del frente de su
onda asociada. Por tanto, haciendo una estimacin de La idea es guardarnos con que ngulos de desviacin
cul es ese punto, podemos predecir dnde estar la nos est impactando ms veces el robot enemigo. De
bala enemiga cuando el frente de la onda rompa con esta forma, a la hora de movernos, nos moveremos
nuestro robot. hacia un punto cuyo ngulo de desviacin tenga poca
probabilidad de impactarnos.
Si adems, nuestro robot se mueve a lo largo del
frente de dicha onda, podemos moverlo a un punto en Ms en detalle, lo que hace el algoritmo de
el que creamos que la bala no estar, de forma que la movimiento es buscar la onda que est ms cerca de
esquivaremos. Y ese tipo de movimiento es conocido nuestro robot, ya que est asociada a la bala ms
como surfear la onda. cercana y por tanto ms peligrosa. A continuacin,
estima donde estara nuestro robot cuando la onda nos
Cada vez que escaneamos al robot enemigo, que es
impacte, si nos movisemos a lo largo del frente de
cuando queremos generar la onda, se llama al mtodo
dicha onda (surfendola) hacia la derecha y hacia la
onScannedRobot, que como ya hemos comentado,
izquierda, y a diferentes velocidades. A continuacin,
tiene datos de sobra como para apuntar todo lo que
para cada uno de esos puntos, calcula cunto sera el
necesitamos saber de la onda. Concretamente, el
ngulo de desviacin con el que tendra que haber
momento en el que la generamos, su velocidad (en
disparado el robot enemigo para impactarnos, y busca
funcin de la potencia con la que dispara nuestro
entre los impactos anteriores cul de dichos ngulos
enemigo), su direccin (que sera hacia donde est
de desviacin nos ha impactado menos veces
apuntando el enemigo), la posicin en la que se
anteriormente. Y pone al robot en movimiento hacia
genera (que es la posicin del enemigo), y la posicin
dicho punto y con dicha velocidad.
de nuestro propio robot en el momento que se genera.
De esta forma, cuando la onda nos impacte, estaremos
Cada turno, tenemos que actualizar la posicin de
en el punto de su frente de onda cuyo ngulo de
todas las ondas que tenamos apuntadas (en funcin
desviacin con el que tendra que haber disparado el
del tiempo que ha transcurrido desde que se
robot enemigo para darnos tiene menos probabilidad
generaron y de su velocidad individual), y borrar las
de darnos, basndonos en los disparos que nos
ondas que ya han traspasado nuestro robot.
impactaron anteriormente.
Adems, en cada turno, tenemos que elegir cmo
Hay que tener en cuenta, que todo esto se recalcula
movernos a lo largo del frente de la/las ondas que
cada turno, de forma que nos iremos acercando de
tenemos apuntadas, para esquivar las balas enemigas.
una forma suave al punto ms seguro.
La forma en la que lo hagamos es lo que diferencia a
los distintos algoritmos de Wave Surfing.

- 92 -
Empricamente, hemos descubierto que el algoritmo [3] Para el algoritmo de esquiva, hemos utlizado
ms efectivo es moverse surfeando la onda hacia el informacin de las siguientes pginas:
lado con menor probabilidad de impacto, a una http://robowiki.net/wiki/Wave_surfing
velocidad constante, y ese es el algoritmo que hemos
utilizado finalmente. [4] Hemos utilizado tambin los apuntes de la
asignatura.
Hemos utilizado tambin cdigo open-source de
bots del repositorio de robocode.

La gran ventaja de este algoritmo es que, aunque el


robot enemigo tenga un mtodo para aprender y
estimar nuestros movimientos, si consigue
impactarnos alguna bala, nuestro algoritmo
reaccionar y empezar a mover el robot de forma
diferente para contrarrestar la forma de disparo del
robot enemigo.

4. Referencias
[1] La mayor parte de la informacin la hemos
adquirido de Robowiki
http://robowiki.net/wiki/Main_Page
[2] Para el algoritmo de disparo, hemos utilizado
informacin de las siguientes pginas:
http://en.wikipedia.org/wiki/Kernel_density_esti
mation
http://es.wikipedia.org/wiki/Knn
http://robowiki.net/wiki/Dynamic_Clustering_Tut
orial
http://en.wikipedia.org/wiki/Kd-tree
http://robowiki.net/wiki/GuessFactor_Targeting
http://homepages.inf.ed.ac.uk/rbf/CVonline/LOC
AL_COPIES/AV0405/MISHRA/kde.html
http://robowiki.net/wiki/Maximum_Escape_Angl
e

- 93 -
Minera de Datos
scar Palomo Miambres
Universidad Carlos III de Madrid
Avda. De la Universidad, 30
28911, Legans (Madrid-Espaa)
100049074@alumnos.uc3m.es

Abstract Existencia de herramientas automticas


que no hacen necesario el ser un experto
En este artculo analizaremos las ideas bsicas en estadstica
que sustentan el Data Mining y, ms Potencia de computo
concretamente, la utilizacin de rboles de
decisin como herramienta estadstica avanzada.
Presento tambin un ejemplo ficticio de la 2. MINERIA DE DATOS DATA MINING
aplicacin de estas tcnicas: predecir clientes que
tienen un alto porcentaje de impagos.
La tcnica usada para realizar estas hazaas en
Data Mining se llama Modelado. Modelado es
1. INTRODUCCIN simplemente el acto de construir un modelo en
una situacin donde usted conoce la respuesta y
La minera de datos (DM, Data Mining) consiste
luego la aplica en otra situacin de la cual
en la extraccin no trivial de informacin que
desconoce la respuesta. Por ejemplo, si busca un
reside de manera implcita en los datos. Es una
galen espaol hundido en los mares lo primero
tecnologa con gran potencial para ayudar a las
que podra hacer es investigar otros tesoros
compaas a concentrarse en la informacin ms
espaoles que ya fueron encontrados en el
importante de sus Bases de Informacin. Las
pasado. Notara que esos barcos frecuentemente
herramientas de Data Mining predicen futuras
fueron encontrados fuera de las costas de
tendencias y comportamientos, permitiendo en
Bermuda y que hay ciertas caractersticas
los negocios tomar decisiones proactivas y
respecto de las corrientes ocenicas y ciertas
conducidas por un conocimiento acabado de la
rutas que probablemente tomara el capitn del
informacin.
barco en esa poca. Usted nota esas similitudes y
Lo que en verdad hace el data mining es reunir arma un modelo que incluye las caractersticas
las ventajas de varias reas como la Estadstica, la comunes a todos los sitios de estos tesoros
Inteligencia Artificial, la Computacin Grfica, las hundidos. Con estos modelos en mano sale a
Bases de Datos y el Procesamiento Masivo, buscar el tesoro donde el modelo indica que en el
principalmente usando como materia prima las pasado hubo ms probabilidad de darse una
bases de datos. situacin similar. Con un poco de esperanza, si
tiene un buen modelo, probablemente
Existen cuatro razones fundamentales por las encontrar el tesoro.
cuales el Data Mining es una realidad en nuestros
das: 2.1 CICLO DATA MINING
Avances tecnolgicos en almacenamiento
masivo de datos y CPU. El data mining se ha ido incorporando a la vida de
Existencia de nuevos algoritmos para empresas, gobiernos, universidades, hospitales y
extraer informacin en forma eficiente diversas organizaciones que estn interesadas en
explorar sus bases de datos. Podemos decir que
- 94 -
"en data mining cada caso es un caso". Sin mediante el uso de distintas tcnicas, se
embargo, en trminos generales, el proceso se deben comparar los modelos en busca de
compone de cuatro etapas principales: aquel que se ajuste mejor al problema. Si
Seleccin del conjunto de datos, tanto en ninguno de los modelos alcanza los
lo que se refiere a las variables objetivo resultados esperados, debe alterarse
(aquellas que se quiere predecir, calcular alguno de los pasos anteriores para
o inferir), como a las variables generar nuevos modelos.
independientes (las que sirven para hacer Por ejemplo, tenemos un conjunto de
el clculo o proceso) datos y sabemos que algunos algoritmos
Pre procesamiento de los datos. de generacin de clasificadores funcionara
Determinacin, obtencin y limpieza de mejor sobre esos datos que otros Cual
los datos necesarios. Esta etapa consume usar?, ej.: J48 o SVM?
generalmente alrededor del setenta por Podemos hacer validacin cruzada y
ciento del tiempo total de un proyecto de quedarnos con el mas alto (en la practica
data mining. esto es suficiente), pero en ocasiones la
Determinacin del modelo. Despus de diferencia puede ser debida al azar y no
haber sido pre procesados y realizar la ser significativa estadsticamente
limpieza de datos, se sigue teniendo una Ejemplo: buscamos un algoritmo preciso
cantidad enorme de variables o atributos. pero tambin rpido (lo vamos a utilizar
La seleccin de caractersticas reduce el en una situacin dinmica que exige un
tamao de los datos, eligiendo las entrenamiento rpido). Tenemos un
variables ms influyentes del problema, algoritmo A (J48) que obtiene un 90% de
sin apenas sacrificar la calidad del modelo aciertos, y otro B (NN) que obtiene un
de conocimiento obtenido del proceso de 92%, pero B es 100 veces ms lento que A.
minera. Merece la pena usar B?
Los mtodos para la seleccin de los
atributos que ms influencia tienen en el Integracin, si procede, de los resultados
problema son bsicamente dos: en un sistema transaccional o similar.
- Aquellos basados en la eleccin de los
mejores atributos del problema.

- Aquellos que buscan variables


independientes mediante test de
sensibilidad, algoritmos de distancia o
heursticos.

Realizado esto se comienza realizando


unos anlisis estadsticos de los datos, y
despus se lleva a cabo una visualizacin
grfica de los mismos para tener una
primera aproximacin. Segn los objetivos
planteados y la tarea que debe llevarse a
cabo, pueden utilizarse algoritmos
desarrollados en diferentes reas de la
Inteligencia Artificial.
Figura 1. Proceso Data Mining
Anlisis de los resultados. una vez
obtenido el modelo, se debe proceder a
su validacin comprobando que las
conclusiones que arroja son vlidas y
suficientemente satisfactorias. En el caso
de haber obtenido varios modelos
- 95 -
2.2 EL ALCANCE DE DATA MINING Redes Neuronales. Son un paradigma de
aprendizaje y procesamiento automtico
inspirado en la forma en que funciona el
Dadas bases de datos de suficiente tamao y sistema nervioso de los animales, es decir,
calidad, la tecnologa de Data Mining puede un sistema de interconexin de neuronas
generar nuevas oportunidades de negocios al en una red que colabora para producir un
proveer estas capacidades: estmulo de salida.
Esta tecnologa puede ser desarrollada
Las herramientas de Data Mining pueden analizar tanto en software como en hardware y
bases de datos masivas en minutos. con ella se pueden construir sistemas
Procesamiento ms rpido significa que los capaces de aprender, de adaptarse a
usuarios pueden automticamente experimentar condiciones variantes, o inclusive si se
con ms modelos para entender datos complejos. dispone de una coleccin suficiente
Alta velocidad hace que sea prctico para los grande de datos, predecir el estado futuro
usuarios analizar inmensas cantidades de datos. de algunos modelos. Estas tcnicas son
Grandes bases de datos, a su vez, producen adecuadas para enfrentar problemas que
mejores predicciones. hasta ahora eran resueltos slo por el
cerebro humano y resultaban difciles o
Las bases de datos pueden ser grandes tanto en imposibles para las mquinas lgicas
profundidad como en ancho: secuenciales.

Ms columnas. Los analistas muchas Regresin lineal.- Es la ms utilizada para


veces deben limitar el nmero de formar relaciones entre datos. Rpida y
variables a examinar cuando realizan eficaz pero insuficiente en espacios
anlisis manuales debido a limitaciones de multidimensionales donde puedan
tiempo. Sin embargo, variables que son relacionarse ms de 2 variables.
descartadas porque parecen sin
importancia pueden proveer informacin rboles de decisin.- Un rbol de decisin
acerca de modelos desconocidos. Un Data se describe como un modelo de
Mining de alto rendimiento permite a los prediccin utilizado en el mbito de la
usuarios explorar toda la base de datos, inteligencia artificial, ya que dada una
sin preseleccionar un subconjunto de base de datos se construyen diagramas de
variables. construcciones lgicas, muy similares a los
Ms filas. Muestras mayores producen sistemas de prediccin basados en reglas,
menos errores de estimacin y desvos, y que sirven para representar y categorizar
permite a los usuarios hacer inferencias una serie de condiciones que suceden de
acerca de pequeos pero importantes forma sucesiva, para la resolucin de un
segmentos de poblacin. problema.

En este tipo de rbol, los nodos


2.3 TCNICAS DE DATA MINING intermedios son los atributos de entrada
de los ejemplos presentados, las ramas
Como ya se ha comentado, las tcnicas de la
representan valores de dichos atributos y
minera de datos provienen de la Inteligencia los nodos finales son los valores de la
artificial y de la estadstica, dichas tcnicas, no clase.
son ms que algoritmos, ms o menos Para elegir qu atributos y en qu orden
sofisticados que se aplican sobre un conjunto de
aparecen en el rbol, se utiliza una
datos para obtener unos resultados.
funcin de evaluacin: ganancia de
informacin.
Las tcnicas ms representativas son:
Modelos estadsticos.- Es una expresin
simblica en forma de igualdad o ecuacin
- 96 -
que se emplea en todos los diseos La concesin de crditos bancarios en el
experimentales y en la regresin para momento que vivimos es un tema bastante
indicar los diferentes factores que complicado. La crisis econmica que se esta
modifican la variable de respuesta. viviendo en estos momentos obliga a los bancos a
ser muchos ms estrictos a la hora de conceder
Clustering. Mtodos de agrupacin de un prstamo/crdito a sus clientes. Se ha
datos que nos permiten clasificar los datos intentado, a partir de ciertos estudios y usando
por su similitud entre ellos. Son utilizadas distintas metodologas, identificar las
con frecuencia para entender los grupos probabilidades que tiene un cliente de devolver
naturales de clientes en empresas o un crdito de acuerdo con los datos de los que se
bancos. dispone de l.
Es importante destacar que los modelos cambian
Algoritmos genticos. Son modelos y dependen en ocasiones del momento en que se
inspirados incluir fcilmente ligaduras realizan, es decir, no es lo mismo dar un crdito
complicadas que limitan la solucin a un hoy en da que hace unos aos en los que se
problema en la evolucin de las especies y otorgaban crditos ms fcilmente. Con ello
que se aplican generalmente en quiero decir, que aunque los datos de los que
problemas de optimizacin. disponemos son los mismos y unos casos
conviene realizar el estudio con un subconjunto
Segn el objetivo del anlisis de los datos, los determinado y en otras con otro. En este caso, la
algoritmos utilizados se clasifican en supervisados minera de datos, junto con el uso de un modelo
y no supervisados: basado en rboles de decisin, nos ayudar a
investigar las correlaciones existentes en los
Algoritmos supervisados (o predictivos): casos de morosidad.
predicen un dato (o un conjunto de ellos)
desconocido a priori, a partir de otros
conocidos.
Algoritmos no supervisados (o del 3.1 Objetivos del anlisis
descubrimiento del conocimiento): se
descubren patrones y tendencias en los Antes de comenzar con la aplicacin de las
datos. tcnicas de WEKA a los datos de este dominio, es
muy conveniente hacer una consideracin acerca
A continuacin se describen un ejemplo de de los objetivos perseguidos en el anlisis. Como
aplicacin en el sector financiero y banca donde se mencion en la introduccin, un paso previo a
se ha visto involucrado el data mining. la bsqueda de relaciones y modelos subyacentes
en los datos ha de ser la comprensin del
3 APLICACIONES DE USO: CONCESIN DE dominio de aplicacin y establecer una idea clara
CREDITOS BANCARIOS acerca de los objetivos del usuario final. De esta
manera, el proceso de anlisis de datos (proceso
Para el desarrollo de este ejemplo he utilizado KDD), permitir dirigir la bsqueda y hacer
WEKA (herramienta de aprendizaje automtico y refinamientos, con una interpretacin adecuada
data mining, escrita en lenguaje Java, gratuita). Es de los resultados generados. Los objetivos,
un entorno para experimentacin de anlisis de utilidad, aplicaciones, etc., del anlisis efectuado
datos que permite aplicar, analizar y evaluar las no "emergen" de los datos, sino que deben ser
tcnicas ms relevantes de anlisis de datos, considerados con detenimiento como primer
principalmente las provenientes del aprendizaje paso del estudio.
automtico, sobre cualquier conjunto de datos
del usuario. Para ello nicamente se requiere que En nuestro caso, un banco desea obtener reglas
los datos a analizar se almacenen con un cierto para predecir qu personas de las que piden un
formato, conocido como ARFF (Attribute-Relation crdito no van a devolverlo.
File Format).

- 97 -
Por otra parte, este anlisis tiene un enfoque
introductorio e ilustrativo para acercarse a las
tcnicas disponibles y su manipulacin desde la Si seleccionamos uno de ellos podemos apreciar
herramienta. la relacin existente. Por ejemplo:

3.2 Pre procesado de los datos

La entidad bancaria cuenta con una gran base de


datos correspondiente a los crditos concedidos
a otros clientes con anterioridad. Para este caso
los datos disponibles son:

@attribute estado {soltero, casado, divorciado}


@attribute DNI
@attribute nomina real
@attribute sexo {HOMBRE, MUJER}
@attribute PAGO {si, no}

El campo Pag? es binario (solo puede tomar Figura 3. Relacin Nomina-Pago


como valores s o no) y es el atributo clave que
tiene el banco para estudiar la concesin del Podemos apreciar que todos aquellos clientes
crdito. No siempre existe un atributo clave. A con nminas superiores a 2000 euros van a
devolver el prstamo. Por otra parte cuando la
partir de los datos, las tcnicas de DM podran
nmina es menor de esa cantidad la devolucin
generar un modelo de los datos, consistente en no esta solo relacionado con este atributo sino
un conjunto de reglas, que permitiesen predecir que depende de otros factores. Podemos deducir
en el futuro, el posible comportamiento de un por lo tanto que el modo visual nos ayuda a tener
cliente que solicitase un prstamo. una idea de los datos pero no a conocerlos por
completo.
Para generar grficos con los datos del ejemplo,
se seleccionar la pestaa Visualize. Por defecto, 3.3 Arboles de decisin
se muestran grficos para todas las
combinaciones de atributos tomadas dos a dos, Utilizar un conjunto de datos disponibles, en
de modo que se pueda estudiar la relacin entre forma de tabla de atributos, para aprender a
dos atributos cualesquiera. El aspecto de la predecir la clase de datos NO VISTOS TODAVA.
pantalla es el mostrado en la figura siguiente El predictor puede tomar diversas formas, segn
el algoritmo (rbol de decisin, reglas, funcin,
red de neuronas, probabilidades, centroides, ..).
Pero en ltimo termino, un predictor es una
estructura que toma una entrada (los distintos
valores de los atributos que representan al dato)
y devuelve una salida (la clase o cantidad
predicha para ese dato)

En este ejemplo he utilizado la tcnica de


generacin de reglas en forma de rboles de
decisin ya que es un modelo de datos sencillo y
comprensible para todo el mundo. Obtenemos el
siguiente esquema:

Figura 2. Relacin entre datos dos a dos


- 98 -
Ejemplo: si en el conjunto original un 65% de los
datos pertenecen a la clase positiva, la
estratificacin intentara que esa proporcin se
mantenga en entrenamiento y test

Se suele utilizar como mtodo de validacin,


conseguir el mayor porcentaje de aciertos,
aunque en ocasiones es importante evaluar el
conocimiento obtenido con otras medidas:

Comprensibilidad: si el conocimiento es
Figura 4. rbol de decisin fcilmente comprensible para un ser
humano. til para evaluar si el
Cabe destacar que para la realizacin del conocimiento es correcto o para tomar
clasificador se ha utilizado validacin cruzada decisiones en base al conocimiento
(dividir varias veces el mismo conjunto de datos obtenido.
en entrenamiento y test y calcular la media. As, Muy relacionado con el tamao (numero
las particiones de test no solaparan). El mtodo
de reglas o nodos en el rbol de decisin)
de validacin cruzada utiliza muy bien los datos al
A veces merece la pena perder en
calcular el porcentaje de aciertos esperado,
porque todos ellos se utilizan para test (en alguna porcentaje de aciertos (= subadaptacion)
particin). De hecho, todos los datos figuran para ganar en comprensibilidad
como entrenamiento o test en alguno de los (construyendo arboles de decisin mas
ciclos de validacin cruzada. Pero es costoso en pequeos, discretizando atributos, etc.)
tiempo (hay que lanzar el algoritmo de
aprendizaje n veces) Algunos atributos pueden ser redundantes y
hacen ms lento el proceso de aprendizaje. Otros
son irrelevantes (como el DNI para predecir si una
persona va a devolver un crdito). En ocasiones el
3.4 Anlisis de los resultados exceso de atributos puede llevar a
sobreaprendizaje, pues incrementa la
Una vez obtenido el conocimiento es necesario complejidad del modelo (sobre todo si hay pocos
validarlo para observar su comportamiento con datos). En este ejemplo sencillo podemos deducir
datos no vistos. fcilmente algunas reglas que servirn para
determinar si se concede el prstamo a un
Es una prctica conveniente el realizar el
determinado cliente o no.
experimento, el clculo, dividiendo los datos en
dos subconjuntos de distinta magnitud. Un
Si la nomina es > 2000 siempre pagan el
subconjunto para entrenamiento (66%) y otro
prstamo.
subconjunto para test (33%).
Un hombre soltero, con nomina < 800 euros tiene
grandes probabilidades de no devolver un
Esto puedo ocasionar problemas, es posible que
prstamo.
por azar, los datos de entrenamiento y test estn
sesgados. Por lo tanto, la proporcin entre las
clases que existe en el conjunto de datos original, 4 Extensiones del data mining
se intenta mantener en los conjuntos de
entrenamiento y test. Web mining: consiste en aplicar las
tcnicas de minera de datos a
documentos y servicios del Web. Todos
- 99 -
los que visitan un sitio en Internet dejan clasificacin, categorizacin, etc.
huellas digitales (direcciones de IP, Generalmente se utilizan palabras clave
navegador, etc.) que los servidores para encontrar una pgina relevante. En
automticamente almacenan en una cambio, el text mining se refiere a
bitcora de accesos (Log). Las examinar una coleccin de documentos y
herramientas de Web mining analizan y descubrir informacin no contenida en
procesan estos logs para producir ningn documento individual de la
informacin significativa. Debido a que los coleccin; en otras palabras, trata de
contenidos de Internet consisten en varios obtener informacin sin haber partido de
tipos de datos, como texto, imagen, vdeo, algo.
metadatos o hiperligas, investigaciones
recientes usan el trmino multimedia data 5 CONCLUSIONES

mining (minera de datos multimedia) Nuestra capacidad para almacenar datos ha


como una instancia del Web mining para crecido en los ltimos aos a velocidades
exponenciales. En contrapartida, nuestra
tratar ese tipo de datos. Los accesos
capacidad para procesarlos y utilizarlos no ha ido
totales por dominio, horarios de accesos a la par. Por este motivo, el data mining se
ms frecuentes y visitas por da, entre presenta como una tecnologa de apoyo para
explorar, analizar, comprender y aplicar el
otros datos, son registrados por
conocimiento obtenido usando grandes
herramientas estadsticas que volmenes de datos. Descubrir nuevos caminos
complementan todo el proceso de anlisis que nos ayuden en la identificacin de
interesantes estructuras en los datos es una de
del Web mining.
las tareas fundamentales en el data mining.
Text mining: dado que el ochenta por
ciento de la informacin de una compaa Las herramientas comerciales de data mining que
existen actualmente en el mercado son variadas y
est almacenada en forma de
excelentes. Las hay orientadas al estudio del web
documentos, las tcnicas como la o al anlisis de documentos o de clientes de
categorizacin de texto, el procesamiento supermercado, mientras que otras son de uso
de lenguaje natural, la extraccin y ms general. Su correcta eleccin depende de la
necesidad de la empresa y de los objetivos a
recuperacin de la informacin o el
corto y largo plazo que pretenda alcanzar.
aprendizaje automtico, entre otras,
En resumen, el data mining se presenta como
apoyan al text mining (minera de texto).
una tecnologa emergente, con varias ventajas:
En ocasiones se confunde el text mining por un lado, resulta un buen punto de encuentro
con la recuperacin de la informacin. entre los investigadores y las personas de
negocios; por otro, ahorra grandes cantidades de
Esta ltima consiste en la recuperacin
dinero a una empresa y abre nuevas
automtica de documentos relevantes oportunidades de negocios. Adems, no hay duda
mediante indexaciones de textos, de que trabajar con esta tecnologa implica cuidar
- 100 -
un sinnmero de detalles debido a que el
producto final involucra "toma de decisiones".

6 REFERENCIAS

[1] Introduccin a la Minera de Datos


Jos Hernndez Orallo, M.Jos Ramrez Quintana,
Csar Ferri Ramrez
Editorial Pearson, 2004. ISBN: 84 205 4091 9
[2] Tendencias de la Minera de Datos en
Espaa
Ral Girldez, Jos C. Riquelme, Jess S.
Aguilar-Ruiz
Red Espaola de Minera de Datos TIC2002-
11124-E
.
[3] Baker, R.S.J.d. Data Mining for Education.
Encontrado en McGaw, B., Peterson, P.,
Baker, E. (Eds.) International Encyclopedia of
Education (3rd edition). Oxford, UK: Elsevier
[4] Artculo: Data mining: torturando a los datos
hasta que confiesen.
Luis Carlos Molina Felix.
Universitat Politcnica de Catalunya.

- 101 -

También podría gustarte