00068240 .pdf
Nombre del archivo original: 00068240.pdf
Este documento en formato PDF 1.3 fue enviado en caja-pdf.es el 25/02/2016 a las 22:47, desde la dirección IP 187.188.x.x.
La página de descarga de documentos ha sido vista 2575 veces.
Tamaño del archivo: 34 KB (17 páginas).
Privacidad: archivo público
Vista previa del documento
ESCUELA PRE UNIVERSITARIA
CICLO 2006−I
TEMA:
APLICACIONES DE LA INTELIGENCIA ARTIFICIAL
Año 2006
CHICLAYO − PERÚ
Agradecimiento
SUMARIO
• Introducción a la Inteligencia Artificial
• Prueba de Turing
• Agentes
• Búsqueda Heurística
• Visión Artificial
• Redes Neuronales
• Sistemas Expertos
• Robótica
• La Comunicación
Anexos:
• Algoritmo *A implementado en C++
• Compuertas Lógicas
Prólogo
El presente trabajo, sirve como una introducción a la Inteligencia Artificial, y a la vez ilustra sobre sus
aplicaciones en la vida real, ya que muchos piensan que la Inteligencia Artificial es tal como se ve en las
películas o en las series de animación: Gran error, la Inteligencia Artificial está en sus orígenes, no tiene más
de 56 años de vida. En el futuro podrán ser factibles los modelos de ficción con los que muchos sueñan. El
objetivo de este trabajo, es brindar al lector un concepto básico y las aplicaciones que hoy en día se le dan a
esta rama muy importante de la informática.
En los primeros 3 capítulos se trata de algunos conceptos generales para introducir al lector a la Inteligencia
Artificial. El capítulo IV es la aplicación de la Inteligencia Artificial en Juegos. El capítulo V, muestra la
aplicación de la Visión Artificial. Los capítulos VI y VII exponen los temas de Redes Neuronales y Sistemas
1
Expertos, respectivamente. El capítulo VIII muestra las aplicaciones del apasionante mundo de la robótica. El
capítulo IX habla de los conceptos de la comunicación y su uso. Los Anexos refuerzan los conceptos del
capítulo IV y VI. El primer anexo, muestra las Compuertas Lógicas, usadas en las Redes Neuronales. El
segundo anexo muestra el uso de la Búsqueda Heurística, específicamente del Algoritmo *A, con el código
fuente de un programa diseñado para ese fin.
Aplicaciones de la Inteligencia Artificial
Capítulo I − Introducción a la Inteligencia Artificial
1.1 Concepto de Inteligencia Artificial: La Inteligencia Artificial (I.A, por simplificar) es una rama de la
Informática que trata de enfocar el concepto de Inteligencia en las máquinas. Según el Diccionario de la Real
Academia Española, Inteligencia es: Potencia Intelectual, facultad de entender, de conocer, de entender o
comprender. La I.A persigue dos clases de metas: Metas Científicas, al saber como funciona el Cerebro
Humano y de Ingeniería, ya que persigue el objetivo de crear sistemas Inteligentes. Algunas personas creen
que las placas de silicio (Circuitos) no podrán pensar jamás y que la materia cerebral esta diseñada
explícitamente para ello. Otros creen que esto será posible algún día. Sorprendentemente los científicos han
encontrado seres unicelulares que pueden ser explicados como máquinas, como el Bacteriógrafo E6, que
inyecta ADN vírico en una célula y ensambla los virus resultantes, este comportamiento es igual al de una
máquina, por lo que se ha estudiado su ADN y se ha descubierto que tiene 1 830 137 pares de bases que serían
aproximadamente 3,6 x 106 bits (Aproximadamente 360 Kb). Hay 4 conceptos variados sobre I.A:
• Sistemas que piensan como humanos: Sistemas con procesos de pensamiento humano.
• Sistemas que actúen como humanos: Sistemas que al realizar trabajos requieran inteligencia.
• Sistemas que piensen racionalmente: Se enfoca en el estudio de las facultades mentales.
• Sistemas que actúen racionalmente: Se enfoca en el diseño de agentes inteligentes.
1.2 Aplicaciones de la I.A: Existen varias y son:
• Tratamiento de Lenguajes Naturales: Capacidad de Traducción, Órdenes a un Sistema Operativo,
Conversación Hombre−Máquina, etc.
• Sistemas Expertos: Sistemas que se les implementa experiencia para conseguir deducciones cercanas
a la realidad.
• Robótica: Navegación de Robots Móviles, Control de Brazos móviles, ensamblaje de piezas, etc.
• Problemas de Percepción: Visión y Habla, reconocimiento de voz, obtención de fallos por medio de la
visión, diagnósticos médicos, etc.
• Aprendizaje: Modelización de conductas para su implante en computadoras.
Capítulo II − Prueba de Turing
En los comienzos de la I.A se daban grandes listas de lo que un sistema de I.A debía cumplir para serlo. Alan
Turing, propuso un Test en 1950, para acabar con estas listas tan largas e inútiles, ya que lo único que
buscaban era imitar al ser humano y no desarrollar una I.A científica. Turing basó su prueba en una entrevista
entre un humano con un computador y otro humano ocultos, de manera que ninguno se pueda ver. Si el
entrevistador no puede distinguir las respuestas dadas por el hombre y la máquina, se puede hablar de un
Sistema Inteligente. Esta prueba merece ser reconocida, ya que no ha perdido validez hasta hoy. Para poder
superar la Prueba de Turing original, el computador debe contar con:
2
• Procesamiento del Lenguaje Natural que permita comunicarse perfectamente en inglés.
• Representación del Conocimiento para almacenar lo que se conoce o siente.
• Razonamiento Automático, para usar la información almacenada para responder a preguntas o extraer
conclusiones.
• Aprendizaje Automático, para adaptarse a muchas circunstancias y para detallar y extrapolar patrones.
Existe una variante de la Prueba de Turing: La Prueba Global de Turing, esta además de exigir lo anterior,
incluye una señal de video que permite evaluar la capacidad de visión del evaluado y además le da la
capacidad de pasar objetos a través de una pequeña ventana. Para que el computador pase esta variante, se
requiere además de lo anterior:
• Visión Computacional, para percibir objetos.
• Robótica, para manipular y mover objetos.
Como se dijo anteriormente esta Prueba mantiene su vigencia hasta hoy (56 años), sino que además
revolucionó la I.A ya que propuso estudiar la Inteligencia en lugar de emularla. Bajo un concepto similar, los
hermanos Wright, crearon la aviación: Al comprender los principios aerodinámicos y al dejar de imitar a los
pájaros.
Capítulo III − Agentes
Un Agente es algo que razona (Viene del latín agere, hacer). Sin embargo los agentes informáticos deben
tener algo que los diferencie de los programas comunes. Entre ellos está tener controles autónomos, percibir
su entorno, que persistan por un periodo de tiempo prolongado, que se adapten a los cambios y que sean
capaces de alcanzar objetivos distintos.
3.1 Tipos:
• Agente Racional: Es el que actúa con la intención de obtener el mejor resultado, o si hay
incertidumbre, el mas apropiado. Estos agentes se basan en Inferencias, aunque existen situaciones en
las que no se puede hacer nada correcto, pero se debe tomar una decisión; también poseen Actos
Reflejos, ya que son mucho mas eficientes que una larga inferencia en algunos casos. Para pasar la
Prueba de Turing, los sistemas deben tener estas características. Estudiar la I.A en base a Agentes
Racionales, es beneficioso ya que nos hace diseñar al agente en base a inferencias, una forma correcta
según las leyes del pensamiento. Sin embargo, por cuestiones de espacio es imposible diseñar una
personalidad perfecta. En la práctica se usa una racionalidad limitada, por razones de tiempo y
espacio.
• Agente Inteligente: Son capaces de percibir un medio ambiente, usando sensores y actuar usando
actuadotes, los sensores pueden ser de un agente robot: Teclado, red, detectores de luz, etc. Y los
activadores pueden ser una pantalla o la red. Se dice que una agente tiene percepción si puede recibir
múltiples entradas en cualquier instante. En general este agente tomará decisiones de acuerdo a todas
las entradas que recibió. A esta secuencia se le ordena en una tabla, no obstante por lo infinita o
grande que puede llegar a ser, se limitan algunas entradas. El Agente es manejado por el programa del
Agente, se debe diferenciar entre la función que es una descripción abstracta en el programa con el
propio programa, que es la implementación real.
3.2 Agentes de Estímulo−Respuesta: Estos agentes solo reaccionan de acuerdo a los estímulos que reciben
del mundo exterior donde operan, esta es la forma más sencilla de I.A. Tomemos por ejemplo el caso de un
robot que puede moverse en una superficie cuadricular, es capaz de percibir si las celdas están ocupadas o no
y ser capaz de moverse a las desocupadas. El robot entonces dispondrá de 8 entradas que llamaremos S1, S2,
3
S3, S4, S5, S6, S7, S8. y que están numeradas en sentido horario. Además tiene 4 movimientos posibles:
• Norte: Se mueve una celda arriba.
• Sur: Se mueve una celda abajo.
• Este: Se mueve una celda a la derecha.
• Oeste: Se mueve una celda a la izquierda.
• Características:
− Percepción: Según el ejemplo anterior hay 8 variables para ubicarnos, por tanto existen 28=256
combinaciones de valores posibles. Algunos pueden ser descartados, ya que no existen pasillos estrechos.
Podemos elegir 4 carcterísticas llamadas X1, X2, X3, X4.
− Acción: De las características definidas, lo siguiente que debemos hacer es darles alguna definición para que
puedan cumplir su cometido.
Capítulo III − Búsqueda Heurística
3.1 Introducción: Se llama Búsqueda Heurística debido a que usa conocimientos específicos del problema.
Con esta búsqueda podemos encontrar soluciones más eficientemente en el tiempo mas rápido posible sin
repetir ninguna ciudad. No obstante existe un tope de 30 ciudades, ya que aún a 1 µseg por solución, se
tardaría 1020 años en resolver el problema. (El universo solo tiene 1,6 x 1010 años). Una solución común es
de 9 ciudades, que nos da una combinación de 9!=362 880 viajes posibles. Como se ve, la Búsqueda
Heurística nos da la ventaja de rapidez en estos casos.
A la aproximación de la Búsqueda Heurística, la llamaremos: Búsqueda Primero el Mejor. Existen algunas
variantes:
3.2 Algoritmo *A: Es la forma de búsqueda Primero el Mejor más conocida, sirve para el pathfinding
(Búsqueda de Caminos) y es muy usada en juegos. Un ejemplo es el famoso juego Pacman: Los fantasmas
que persiguen a Pacman buscan el camino mas corto, en lugar de aparecer en forma aleatoria en el Mapa del
Juego, otro ejemplo es el Age of Empires, un juego de conquista de civilizaciones, los enemigos salvan
obstáculos para llegar a la ciudad del adversario. El Algoritmo *A, no desarrolla un camino por interacción,
sino que desarrolla varios caminos y elige los más prometedores. (Para ver un ejemplo del Algoritmo *A
véase el Anexo A).
4.3 Algoritmo MINIMAX: Se poseen 2 jugadores: MAX y MIN, primero jugará MAX y así seguirá el flujo
hasta acabar el juego. Existe un árbol de juegos que los programas utilizan para calcular los Movimientos
Legales (Permitidos). El valor MINIMAX será un valor que determine el estado final del juego (En le ajedrez:
−1, 0, 1; que son triunfo, derrota o empate). En algunos juegos este valor MINIMAX puede ser muy alto
(Como en el Backgamon, se estima algo de −192 a 192 valores).
Incluso el TicTacToe (3 en Raya), es complejo para armar el árbol de juegos. A los niveles del árbol se les
llama capas.
Para determinar la estrategia óptima a seguir se usan valores MINIMAX. MAX adoptará el valor máximo y
MIN el mínimo. La decisión MINIMAX supone que los 2 jugadores son óptimos, si uno es un novato será
fácilmente derrotado por esta decisión.
El Algoritmo MINIMAX es la forma computacional en la que se calcula el valor MINIMAX de cada estado
4
de sucesos. Lo interesante del Algoritmo MINIMAX es que no calcula todo el árbol de juegos, sino que
calcula solo un horizonte de k niveles. Un cálculo detallado del árbol de juegos perdería tiempo, ya que como
ejemplo, en el ajedrez se calculan algo de 35100 movimientos totales. El objetivo de MAX aquí es ganar a
MIN tomando alguna decisión sobre la mejor jugada que se puede hacer. El Algoritmo MINIMAX no se usa
como tal en la Industria de Juegos, ya que es en algunas ocasiones lento, en vez de este se usan versiones
optimizadas que veremos a continuación.
4.4 Poda −: El resultado del Algoritmo MINIMAX es el valor MINIMAX que nos permite tomar la
decisión más acertada para el horizonte de búsqueda fijado, no obstante hay ocasiones en el que la
ramificación del árbol de juegos es muy alta. (En ajedrez se calcula algo de 35100 o 10154 movimientos).
Sería un derroche tratar de probarlos todos, esta es la razón por la cual el Algoritmo MINIMAX no se usa
como tal en la Industria de Juegos. Afortunadamente se puede simplificar el proceso, evitando algunos nodos.
Esto se basa en que al momento de explorar se determina que el nodo no va a cambiar el valor MINIMAX, es
obviado, ya que no nos va a servir de mucho. Estos nodos quedan Podados, ahorrando así tiempo de proceso
en los programas.
El Algoritmo que implementa la poda − se llama Algoritmo −, y se basa en ajustar los límites llamados:
límite −" y límite +"; para el nodo raíz estos son de −" y "+; ya que el valor MINIMAX estará entre esos 2
límites. Estos valores se propagan hacia abajo y se actualizan. Los nodos MAX actualizan su valor si v> y
los nodos MIN actualizan su valor si v<. La situación de Poda se detecta si un nodo satisface a " y ello
implica obviar la exploración del sub−árbol siguiente y devolver como si se tratara de un nodo MIN. Si no
existiera Poda (Es decir no se satisface la expresión "), el algoritmo se comportará como un Algoritmo
MINIMAX normal.
4.5 Algoritmo MTD−f: El hecho de que la llamada al Algoritmo −, tenga los argumentos =−" y
=+", significa que el valor MINIMAX v del nodo raíz, satisface a −"<v<+". Esta es una ventana que se
puede cambiar, no obstante al contrario de lo que queremos, esto consume tiempo considerable, por lo que si
restringimos los valores habremos ahorrado una gran cantidad de tiempo. Si restringimos los valores a:
=−1, podemos hablar de Ventana Nula, en contraposición a la clásica ventana infinita.
Una sola llamada al esquema de la Ventana Nula, nos dará una cota, no el valor MINIMAX, para hallarlo
debemos usar distintas cotas para modificar los límites de −" y +", para encontrar el valor MINIMAX. A este
proceso se le llama Algoritmo MTD−f. (Memory−Enhanced Test Driver). Las cotas f+ y f−, se inicializan a
+" y −" respectivamente. Luego se comienzan a ajustar las cotas hasta que se la cota superior iguale o supere a
la inferior; esto se hace en el procedimiento − con =−1, es decir búsqueda de Ventana Nula que
devuelve g. Si g<, ajustamos la cota a ese valor y sino ajustaremos la cota inferior. Este valor g, nos sirve
para ajustar a (Por lo tanto de =−1) para la siguiente iteración. El número de estas dependerá de lo lejos
que este la estimación inicial de f del verdadero valor MINIMAX del nodo raíz.
Capítulo V − Visión Artificial:
Hasta ahora los agentes usaban formas sensoriales demasiado limitadas. La Visión por Computador, es uno de
los campos más extensos de la I.A ya que influyen muchos aspectos. La Visión para los humanos no es
ningún problema, pero para las máquinas es un campo muy complicado. Influyen Texturas, Luminosidad,
Sombras, Objetos Complejos, etc. El primer paso es captar la imagen mediante una cámara de TV. Las
imágenes a color tienen una matriz I(x,y,t); donde x y y nos indican la ubicación de un punto en la matriz de
colores y t, nos indica el tiempo.
Este proceso obtiene una imagen invertida, pero simplemente rotarla no nos dará la visión del terreno.
Influyen muchos elementos haciendo a este proceso complicado.
5
En la actualidad, algunos Robots emiten una señal y la reciben generando bajo esto una especie de espacio,
esta forma de ver es muy rústica, pero se sigue usando ya que desafortunadamente es imposible lograr una
reconstrucción de la imagen capturada. Y aunque así fuera, las computadoras no podrían distinguir un objeto
de juguete y uno real. Lo peor es que los modelos que existen tratan de resolver esto de forma muy
complicada. Al proceso de captar imágenes podemos dividirlo en: Bajo Nivel, Nivel Medio y Alto Nivel. El
primero se encarga de suavizar y quitar ruido a la imagen y de extraer características de la imagen
bidimensional, en particular de las aristas, el segundo se encarga de agrupar estas aristas para formar imágenes
bidimensionales y la tercera de usar estas imágenes para reconocer objetos del mundo real. Generalmente las
imágenes captadas por los robots son suficientes para sus propósitos.
Capítulo VI − Redes Neuronales
En biología, las neuronas tienen un cuerpo circular y una serie de ramificaciones: El axón y las dendritas. El
axón transporta la señal de salida otra célula y las dendritas permiten que la información llegue a la neurona.
Las conexiones intermedias se llaman Sinapsis, si la neurona pasa el umbral impuesto por la sinapsis, se
dispara, caso contrario no hace nada. Esto la asemeja a dispositivos digitales, siendo esta la base de la Redes
Neuronales, que buscan imitar a la neurona en términos computacionales. Se hace esto ya que se considera
que la neurona es la base de la capacidad de aprendizaje. No obstante la emulación de la neurona no es
perfecta, a la fecha se investigan algunas cualidades importantes como la Computación Distribuida para
tolerar Ruido (Distorsión) en la entrada y para el aprendizaje. Cada conexión Neuronal computacional posee
un peso numérico que limita la fuerza con la que el impulso sale de la neurona, de no ser así la información
crecería demasiado con resultados imprevisibles. Las Redes Neuronales reconocen solo dos estados: 0 (No
hay impulso) y 1 (Si lo hay), esto las asemeja a las compuertas lógicas de cualquier tipo: AND, XOR, OR, etc.
(Para ver las Compuertas Lógicas más comunes, véase el Anexo B).
Capítulo VII − Sistemas Expertos
Son programas de computación inteligentes que usan conocimientos y procesos de inferencia, para resolver
problemas sumamente difíciles para un humano ya que requerirían de mucha experiencia. En sí un Sistema
Experto; emula la capacidad de experiencia de un ser humano para tomar decisiones. Aunque los Sistemas
Expertos se centran el domino del problema, no tienen conocimientos mas allá de donde fueron programados,
esto es, no relaciona ningún otro concepto, a menos que este específicamente indicado. A este conocimiento
se le llama Dominio del Conocimiento y como ya se apuntó es muy cerrado. Los Sistemas Expertos se basan
en las Redes Neuronales. Sus partes son: La Base del Conocimiento, el Motor de Inferencia, el Subsistema de
Explicación y la Interfaz.
• La Base del Conocimiento: Aquí están almacenados todos los datos que el Sistema Experto tiene para
tomar decisiones.
• El Motor de Inferencias: Contiene todos los procesos que manipulan la Base del Conocimiento, para
deducir la información pedida por el usuario. (Por Ejemplo, resolución, encadenamiento atrás hacia
delante, etc).
• El Subsistema de Explicación analiza la estructura del razonamiento y da una explicación al usuario.
• La Interfaz, que es el puente de comunicación entre el sistema y el usuario.
Capítulo VIII − Robótica
6
Es uno de los campos de aplicación más apasionantes de la I.A; los Robots son agentes físicos que realizan
tareas mediante la manipulación física del mundo; por ser agentes y realizar su trabajo en forma autónoma, se
excluyen a los robots que son controlados por un operario humano, como son los que hacen tareas de rutina,
ya que la I.A busca robots con sistemas autónomos. La palabra Robot, proviene de la voz eslovaca Robota,
que significa Trabajador Forzado. En realidad esta rama comenzó como una historia de Ciencia Ficción, pero
interesó mucho a los desarrolladores de I.A. Los primeros Robots, solo podían seguir una línea blanca pintada
en el suelo. En la actualidad este campo a avanzado tremendamente.
8.1 Clases:
• Robots Manipuladores: Son brazos robóticos que están fijos en un lugar de trabajo y se usan
generalmente para ensamblar piezas, aunque también hay brazos usados para ayudar en hospitales o
incluso brazos que pintan lienzos con resultados muy originales.
• Robots Móviles: Se desplazan por el medio usando ruedas, piernas u otros. Hay 3 variantes: ULV
(Vehículo Terrestre sin Tripulación, en inglés), son robots que permiten un desplazamiento autónomo
por autopistas. UAV (Vehículo Aéreo sin Tripulación, en Inglés), son robots que permiten
operaciones de fumigación autónoma, así como de vigilancia o militares. AUV (Vehículo Submarino
sin Tripulación), son robots que permiten exploraciones marinas autónomas o incluso paseos
planetarios.
• Robots Humanoides: Son un tipo de Robots que se asemejan al torso humano. Esta clase usa sus
efectores mejor que los otros tipos, pero son mucho mas complejas que los otros robots.
8.2 Hardware Robótico:
• Sensores: Hay 2 clases, los Sensores Pasivos, que solo recogen información del medio, su desventaja
es que su margen de error es alto, y los Sensores Activos, que emiten energía al medio y la reciben
para usarla para las mediciones. Su única desventaja es que a más se implementen en un robot, mayor
es el riesgo de interferencia. Su ventaja es que su margen de error es mínimo. Existen algunos que
merecen ser mencionados:
♦ Escáneres de Rango: Miden la distancia.
♦ Sistemas Táctiles: Sensores sensibles al tacto.
♦ GPS: Calculan la posición absoluta del robot en la tierra.
♦ Sensores de Imagen: Permiten obtener imágenes y procesarlas.
♦ Sensores Perceptores: Informan al robot de su propio estado.
♦ Decodificadores de Ejes: Permiten medir las revoluciones de los motores para usarlas en
mediciones, en odometría. Este proceso es muy propenso a error debido a desgaste físico.
♦ Sensores Inerciales: Una alternativa al decodificador de ejes, pero no soluciona mucho.
♦ Sensores de Fuerza y Tensión: Le indican al robot con cuanta fuerza está cogiendo algo y
con cuanta fuerza lo está girando.
• Efectores: Existen varias clases:
♦ Articuladores de Revolución: Generan movimiento rotacional.
♦ Articulación Prismática: Genera desplazamiento lateral.
Las personas contamos con los 6 grados de libertad (x, y, z, que nos localizan en el espacio y desvió, balanceo
y cabeceo: Yaw, Roll y Pitch). Los robots tienen todos o algunos de estos grados de libertad.
Los robots no holomínicos son aquellos que tienen más grados de libertad efectivos que controlables, y los
holomínicos son los que tienen el mismo número, sin embargo los holomínicos aunque son fáciles de manejar,
son más complejos de desarrollar.
7
• Los Robots de Impulsión poseen 2 ruedas; como un tanque y cada rueda se mueve
independientemente de la otra.
• La Conducción Sincronizada se da cuando pueden girar y moverse en su propio eje.
• Un Robot es dinámicamente estable si puede mantenerse en pie mientras camina.
• Un Robot es estáticamente estable, si el centro de gravedad está encima del polígono que une a sus
piernas.
No obstante, no solo las partes hacen funcionar al Robot, se necesita una fuente de energía para hacer
funcionar sus efectores, la más popular es el motor electrónico, aunque también hay modelos hidráulicos y
neumáticos.
8.3 Aplicaciones:
• Industria y Agricultura: Los Robots han sido usados en entornos peligrosos para el hombre y en
muchas ocasiones son más rentables que trabajadores humanos. En la Agricultura, los Robots, están
siendo usados para sustituir las grandes máquinas usadas para excavar, cosechar, etc. Por ahora son
prototipos, pero pronto remplazarán a los humanos en estas tareas.
• Transporte: Los robots han servido mucho aquí: Desde helicópteros autónomos hasta sillas de ruedas
automáticas, e incluso portadores de carga que superan a humanos especializados. Incluso algunos
ayudan transportando cosas en los hospitales, como el Robot Helpmate.
• Entornos Peligrosos: Los Robots ayudaron en la limpieza de lugares de accidentes nucleares como
Chernobyl, Three Mile Island. Incluso estuvieron en la búsqueda y limpieza durante el colapso del
World Trade Center, ingresando a entornos muy peligrosos, además hay otros que desactivan bombas
o limpian campos minados.
• Exploración: Los Robots han explorado lugares inaccesibles para la gente, como Marte y los
Volcanes. Incluso existen los Drones, vehículos aéreos autónomos usados para fines militares.
• Salud: Los Robots son usados para ayudar en operaciones de alto riesgo, también sirven de ayuda a
los ancianos como andadores robóticos o juguetes que recuerdan cuando tomar la medicación.
• Servicios Personales: Algunos robots pueden prestar servicio en el hogar, como aspirar el hogar,
cortar el césped e incluso remplazar los quioscos por quioscos robóticos.
• Entretenimiento: Los robots han empezado a conquistar la industria de los juguetes, por ejemplo el
robot−perro Sony AIBO; está siendo usado para estudios de I.A en todo el mundo, siendo a la vez un
juguete. En 1995 se inició el torneo de fútbol de robots autónomos Robocup, cuyo objetivo es lograr
que robots autónomos ganen un partido de fútbol. Esto está provocando una investigación más
eficiente de la I.A, como a su vez darle algo de animación al campo.
• Aumento Humano: Se han creado máquinas que puede transportar gente, además se investiga como
aumentar la fuerza de las personas usando partes robóticas. Hay además proyectos de Robots que se
asemejan al ser humano, aunque en forma muy superficial. Estos Robot están en venta por algunas
compañías en Japón.
Capítulo IX − La Comunicación
Es el medio principal por el que las personas se comunican, sirve para:
• Informar: Para no repetir los mismos errores.
• Preguntar: Para recabar información sobre el resto del mundo.
• Compartir experiencias.
Los sistemas computacionales presentan algunos problemas al intentar estudiar el lenguaje:
8
• Descripciones Incompletas: Muchas cosas deben deducirse.
• Ambigüedad de Significado: La misma frase en contextos distintos significa cosas diferentes.
• No Completitud: Los lenguajes naturales tienen siempre nuevas palabras.
• Ambigüedad de Expresión: Un mismo significado puede ser dicho de muchas formas.
• Dependencia de Idioma: El procesamiento del lenguaje natural será distinto en otro idioma.
Hay que pensar porqué un agente necesita hablar, cuando puede hacer una acción. Comunicarse le da las
siguientes ventajas:
• Aceptación de Peticiones
• Solicitar la realización de acciones
• Prometer o comprometerse a un plan.
9.1 Tipos de Lenguaje:
• Lenguajes Formales: Son lenguajes en los que están muy bien definidos lo que se puede y no puede
decir. Sus definiciones son muy estrictas, a estos lenguajes pertenecen los Lenguajes de Programación
(ASM, C++, Basic, Java, etc).
• Lenguajes Naturales: Son lenguajes que, al contrario de los formales tienen una gramática más
flexible y se pueden añadir nuevas palabras. A estos lenguajes pertenecen los lenguajes del mundo
(Inglés, Danés, Español, etc).
9.2 Etapas: La comunicación tiene varias etapas que es preciso conocer. Supongamos que el hablante A desea
comunicarle algo a B; las fases que deberían seguir serían:
• Intención: Por algún motivo A, desea transmitirle información a B.
• Generación: A; planifica como transmitirle su mensaje B.
• Síntesis: A; pone en práctica su plan para transmitir su mensaje a B. Puede transmitir el mensaje por
medio de la voz, papel, etc.
• Percepción: B recibe el mensaje de A y lo decodifica de acuerdo a la forma en la que fue transmitido.
• Análisis: B inferirá que el mensaje recibido por A, tiene algún significado. Esto puede causar algunos
problemas ya que algunas palabras se interpretan en varios sentidos y esto da lugar a la ambigüedad:
No saber el significado de ciertas palabras.
9.3 Aplicaciones:
• Basadas en Texto: Encontrar documentos relacionados con ciertos temas en una base de datos
documental, extraer información de mensajes y artículos, traducir texto entre idiomas y resumir texto.
• Basadas en Diálogo: Síntesis del control en un lenguaje natural, donde la salida puede ser un
comando a un sistema operativo, un robot, etc; sistema automático de mensajes, compras por teléfono,
sistema de acceso a una base de datos en lenguaje natural y sistemas tutores.
Conclusiones
Dados los objetivos de esta monografía (Dar a conocer las aplicaciones de la I.A), podemos concluir que:
• La I.A tiene muchas aplicaciones en la vida real.
• La I.A no es como se ve en las películas, falta mucho por hacer.
• El mayor campo de aplicación de la I.A son los juegos.
• La robótica es otro de los campos en los que más se aplica la I.A
• Hospitales, Industrias y otros se benefician de la I.A, específicamente en la Robótica.
• Los Sistemas Expertos son útiles en muchas ocasiones.
9
• La Visión Artificial es el campo menos desarrollado de la I.A
• Las Neuronas humanas son parecidas a las computacionales.
• Los Robots están captando la atención de muchos debido a lo que pueden hacer gracias a la I.A (Por
ejemplo, el campeonato Robocup).
• Existen Robots que ayudan en Hospitales, a personas.
• El objetivo de la I.A es lograr un sistema totalmente autónomo.
Anexos
• Anexo A − Algoritmo *A Implementado en C++:
Nota: Debido a razones de espacio solo se mostrará la declaración de la clase, mas no su implementación.
class AstarPathfinder
{
private:
struct NODE
{
long f;
long h;
int g;
int tmpg;
int x;
int y;
int NodeNum;
NODE *Parent;
NODE *Child[ 8 ];
NODE *NextNode;
};
struct STACK
{
NODE *NodePtr;
STACK *NextStackPtr;
10
};
NODE *OPEN;
NODE *CLOSED;
NODE *PATH;
STACK *Stack;
bool isPath;
int HEIGHT;
int WIDTH;
int TOTAL_TILES;
int *TileMap;
public:
AstarPathfinder( int *map );
~AstarPathfinder();
void InitAstarTileMap( int *map );
void RedoAstarTileMap( int *map );
bool NewPath( int source_x , int source_y , int dest_x , int dest_y );
bool ReachedGoal();
void PathNextNode();
int NodeGetX();
int NodeGetY();
int TileNum( int x , int y );
bool FreeTile( int x , int y );
private:
void BoundaryTiles();
void FreeNodes();
void FindPath( int source_x , int source_y , int dest_x , int dest_y );
11
NODE *ReturnBestNode();
void GenerateSuccessors( NODE *BestNode , int dest_x , int dest_y );
void GenerateSucc( NODE *BestNode , int x , int y , int dest_x , int dest_y );
NODE *CheckOPEN( int tilenum );
NODE *CheckCLOSED( int tilenum );
void Insert( NODE *Successor );
void PropagateDown( NODE *Old );
void Push( NODE *Node );
NODE *Pop();
};
• Anexo B − Compuertas Lógicas:
• Compuerta Lógica AND:
Tabla de Verdad
A
B
X
0
0
0
0
1
0
1
0
0
1
12
1
0
• Compuerta Lógica OR:
Tabla de Verdad
A
B
X
0
0
0
0
1
1
1
0
1
1
1
1
• Compuerta Lógica XOR:
Tabla de Verdad
A
B
0
0
0
1
1
0
1
1
X
0
1
1
0
• Compuerta Lógica NAND:
Tabla de Verdad
13
A
0
0
1
1
B
0
1
0
1
X
1
1
1
0
• Compuerta Lógica NOR:
Tabla de Verdad
A
B
X
0
0
1
0
1
0
1
0
0
1
1
0
• Compuerta Lógica NOT:
Tabla de Verdad
A
X
0
1
1
0
Bibliografía
14
• Escobano, F., Cazorla, M., Alfonso, M., Colomina, O., Lozano, M. Inteligencia Artificial: Modelos,
Técnicas y Áreas de Aplicación. Madrid: Thomson Editores.
• Grupo Editorial McGraw Hill. Electrónica Práctica − Tomo 1. Bogotá: McGraw Hill.
• Nilson, N. Inteligencia Artificial. Una Nueva Síntesis. Madrid: McGraw Hill Interamericana S.A
• Norving, P. y Rusell, S. Inteligencia Artificial. Un Enfoque Moderno. Madrid: Pearson Education.
• Riley, G. Sistemas Expertos. Principios y Programación. México D.F: Thomson Editores.
• Daniel Harmon. http://agdn.pyrosoftware.net/ (Allegro Game Development Network).
Índice
Pág.
1. Dedicatoria 02
2. Agradecimiento 03
3. Sumario 04
4. Prólogo 05
5. Aplicaciones de la Inteligencia Artificial 06
I− Introducción a la I.A 06
1.1 Concepto 06
1.2 Áreas de Aplicación 06
II− Prueba de Turing 08
III− Agentes 09
3.1 Tipos 09
− Agente Racional 09
− Agente Inteligente 09
3.2 Agentes Estímulo−Respuesta 10
− Características 10
IV− Búsqueda Heurística 11
4.1 Introducción 11
4.2 Algoritmo *A 11
4.3 Algoritmo MINIMAX 11
4.4 Poda − 12
15
4.5 Algoritmo MTD−f 13
V− Visión Artificial 14
VI− Redes Neuronales 15
VII− Sistemas Expertos 16
VIII− Robótica 17
8.1 Clases 17
− Robots Manipuladores 17
− Robots Móviles 17
− Robots Humanoides 17
8.2 Hardware Robótico 18
− Sensores 18
− Efectores 18
8.3 Aplicaciones 19
IX. La Comunicación 21
9.1 Tipos de Lenguaje 21
− Lenguajes Formales 21
− Lenguajes Naturales 22
9.2 Etapas 22
9.3 Aplicaciones 22
6. Conclusiones 23
7. Anexos
A.− Algoritmo *A implementado en C++ 24
B.− Compuertas Lógicas 26
8. Bibliografía 28
9. Índice 29
Memory−Enhanced Test Driver: Probador de Dispositivo de Memoria Reforzada, en inglés.
16
Electrónica Práctica − Tomo 1: Usado para las Tablas del Anexo A.
Allegro Game Development Network: Usado para el código en C++ del Anexo B.
30
17
Descargar el documento (PDF)
00068240.pdf (PDF, 34 KB)
Documentos relacionados
Palabras claves relacionadas
robots
minimax
sistemas
inteligencia
algoritmo
capitulo
agente
valor
lenguajes
aplicaciones
puede
agentes
busqueda
robot
artificial