Documentos de Académico
Documentos de Profesional
Documentos de Cultura
RoboCode PDF
RoboCode PDF
RoboCode PDF
COMUNICACIONES
Trabajos de la asignatura
Curso 11-12
Curso 11-12
NDICE
-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.
- 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.
- iii -
Palabras clave: Algoritmos de bsqueda, lenguaje de programacin
Java, diseo e implementacin de un agente, bsqueda, inteligencia
artificial, agentes.
- iv -
El coche inteligente
En busca de mayor seguridad, sostenibilidad y confort
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.
-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
-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.
-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
Palabras clave
1. INTRODUCCIN
- 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.
- 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:
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.
- 17 -
4. CONCLUSIONES
5. REFERENCES
- 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
2. RBOLES DE DECISIN
- 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.
- 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.
- 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
- 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.
- 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
- 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
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.
- 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.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.
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:
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
- 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
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
- 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.
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.
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
4. SISTEMA DE NAVEGACION
- 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.
- 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.
- 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
- 43 -
[6] Empresa del sector de los UAV: http://www.iuavs.com/
7. REFERENCIAS
- 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.
- 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
- 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)
- 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.
- 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:
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
- 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
- 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.
- 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.
- 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
1. INTRODUCTION
- 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
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.
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.
- 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.
- 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.
- 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]
- 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
- 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 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 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.
- 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.
- 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
- 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. ( ) = ( ) + ( )
- 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:
- 80 -
4.2 Familias de agentes
- 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.
- 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.
- 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).
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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
- 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:
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
6 REFERENCIAS
- 101 -