martes, 26 de junio de 2007

Características del lenguaje prolog

Ejecución de los programas:
Para la ejecución de los programas de Prolog, proponemos el Ciao-Prolog, http://www.clip.dia.fi.upm.es/Software/Ciao/index.html#ciao
el cual tiene un shell que permite ejecutar objetivos.

El shell es una aplicación que esta incluida dentro del Ciao-Prolog con el nombre de ciaosh, y al ejecutarla aparece el siguiente mensaje:

Ciao-Prolog 1.9 #44: Mon Dec 30 16:47:15 2002
?-

El símbolo? nos indica la zona donde podemos escribir los objetivos a ejecutar.

Por ejemplo:

Ciao-Prolog 1.9 #44: Mon Dec 30 16:47:15 2002
?- f(X) = f(3).

X = 3 ?

Para ejecutar el objetivo es necesario teclear punto al final y teclear ENTER.
A continuación, el shel nos dice si los objetivos tiene éxito o no y como quedan instanciadas las variables. Después aparece un signo de interrogación, lo cual nos indica que le podemos pedir otra solución tecleando un punto y como (;) y pulsando ENTER.

Para cargar un programa en Ciao-Prolog es como sigue:


?- Consutl( ‘Programa.pl’ ).

Yes
?-

Observe que el nombre de fichero se escribe entre comillas simples. En caso de que se quiera ejecutar a los programas desde una carpeta, por ejemplo curso, seria:

?- Consutl( ‘c:/curso/Programa.pl’ ).

Yes
?-


Para salir del shell basta teclear el predicado halt.
?- halt.




2.2.1. Declaración de hechos y reglas

Como ya se dijo una regla al estilo prolog se representa como:

Predicado (Argumento1, Argumento2,.....)

Pc(Arg,..) si P1(Arg,.....) y P2(Arg,.....) y .......

Ahora bien la sintaxis correcta en Prolog seria

Pc (Arg,.....) :- P1(Arg,......) , P2(Arg,.....) , P3(Arg,....)........
(la cual es la sintaxis estándar que viene DEC 10 Prolog)

Algunos lenguajes aceptan también la siguiente sintaxis

Pc(Arg,.....) if P1(Arg,....) and P2(Arg,....) and ..........

Donde a cada regla se le llama cláusula
Y tendremos que para:
Pc :- Pi
Pc: Cabeza de la cláusula
Pi: Cuerpo de la cláusula
:- Cuello de la cláusula.

Sean los siguientes ejemplos de hechos o predicados:
progenitor (juan, luis).
progenitor (maria, luis).
progenitor (luis, jose).
progenitor (luis, ana).
progenitor (ana, elena).


Ahora si se preguntaran al compilador Prolog

? – progenitor (juan, luis).
yes.

Pero si fuera

? – progenitor (juan, sofia)
no

Seria la respuesta, ya que no existe ningún hecho que confirme la pregunta.

Si quiseramos saber todos los descendiente de Luis

?- progenitor (luis, X).
X= Jose
X= Ana

José y Ana son los descendientes de Luis

Ahora vamos a definir una regla o cláusula, hasta ahora solo hemos definidos hechos.
Veamos la regla abuelo:
abuelo(X,Y) :- progenitor(X,Z) , progenitor(Z, Y) , masculino (X).
Nos hizo falta un predicado que no estaba definido (masculino), por lo que necesitamos incluir nuevos hechos.
masculino(juan).
masculino(jose).
masculino(luis).
femenino(ana).
femenino(maria).
femenino(elena).
Ahora mi base de conocimientos esta compuesta por la regla Abuelo y los hechos progenitor, masculino y femenino.
Y si quisiera incluir la regla hermano.
hermano(X,Y) :- progenitor(Z,X), progenitor(Z,Y), masculino(X).
O la regla madre:
madre(X,Y) :- progenitor(X,Y), femenino(X).


Estructura de datos

Variables: Un nombre de variable puede ser cualquier sucesión de caracteres alfanuméricos que comience con una letra “mayúscula” o un subrayado (permite representar variables anónimas).
Ejemplo: Balonm X, _ , _39
Puede utilizarse la variable anónima ( _ ) cuando no interesan los valores de ese termino.
Hallar ( _, X, Y, _) Prolog solo devolverá los valores del 2do. Y 3er. Argumento. El primero y cuarto no se imprimen.
Las variables pueden unificarse con cualquier termino.

Atomos: Son constantes textuales. Pueden tener letras, dígitos o símbolos, comenzando con letras “minúsculas”. Si comienza con letra “mayúscula” o un dígito, entonces hay que encerrarlos entre apóstrofes.
Ejemplo: tenis, ‘23’, ‘París’
Los átomos siempre se unifican con átomos del mismo nombre.

Enteros: Los enteros siempre unifican con enteros del mismo valor.
Ejemplo: -2, 0, 313

Reales: Los números en Prolog no tienen limite de precisión o rango. Están limitados únicamente por la memoria disponible.
Ejemplos: 0.5 , 55.3 , -83.021
Los siguientes casos son erróneos:
5. , .5

Cadenas: Las cadenas son constantes textuales utilizadas para manipular textos en forma eficiente. Se escriben como caracteres ASCII.
Ejemplo: “Pedro vive en: “ , “El numero de tarjeta es: “
Las cadenas se unifican con otras cadenas idénticas. Las cadenas y los átomos no se unifican.


Estructura: Es una colección de objetos agrupados bajo un nombre (functor), donde
Ti = functor (A1, A2, A3,......) y unifica si los functores cazan y los argumentos son iguales.
Ejemplo: h1 = mamiferos( perro, gato, caballo)
Y h2 = mortales( mamiferos, peces, aves)
Lo cual se puede unificar como: mortales(mamiferos(perro,gato,caballo), peces, aves)

Lista: Es una colección de objetos (al igual que la estructura) agrupados en secuencia.
L = [a, b, c]. Donde siempre se extrae el primer elemento y se incluye también por el principio.
Ejemplo: Para extraer un elemento de L
L = [X ¦ R] donde ¦ es el constructor de lista
Y se obtiene X = a y R = [b, c] con X y R como variables no instanciadas
Otro ejemplo:
X = 1 y R = [2, 3]
P = [X ¦ 2, 3]
Se obtiene: P = [1, 2, 3]


Unificación de términos

La unificación es el mecanismo mediante el cual las variables toman valores. Una variable puede tomar cualquier valor de los definidos anteriormente y en ese caso se dice que la variable esta instanciada y las variables no instanciadas, son aquellas que no han tomado aun valor alguno.

Los argumentos en la unificacion cazan de la siguente forma:

Ejemplos:
?- X = 3 X unifica con el entero 3 ( y a partir de este momento queda instanciada con ese valor).
?- 5 = 5 da verdadero
?- f(X, 3) = f(5, Y) donde la variable X unifica con el entero 3 y la Y con el 5. Quedando ambas variables instanciadas con sus respectivos valores.

Estructura.

Propietario(juan,libro)
Lo que quiere decir que: Juan es propietario de un libro
Ahora si quisiéramos decir: Juan es propietario del libro la edad de oro de José Marti.
Propietario (juan, libro(“Edad de oro”, “Jose Marti”))
O mejor: Propietario(Nombre, libro(Titulo, autor(Nombre, Apellido)))
Y seria: Propietario( juan, libro(“Edad de oro”, autor (Jose, Marti)))
Esta representación tiene la ventaja que nos permite hacer búsquedas de cualquier objeto que posea Juan.
Ejemplo:
Propietario(juan, radio)
Propietario(juan, televisor)
Propietario(juan, libro(“Ismaelillo”, autor(Jose, Marti)))
Propietario(juan, libro(“Don Quijote”,autor(Miguel, Cervantes))

A la pregunta
?- Propietario (juan, Y) nos dará todas las propiedades que posee Juan
?- propietario (juan, libro) dará todos los libros que posee Juan.
?- porpietario(juan, libro(X, autor(jose, marti))) dara todos los libros que posee Juan cuyo autor sea José Marti.


Ejemplo, sean los hechos:

padre(pedro, luis).
padre(juan,mario).
padre(luis, jose).
padre(mario, marco).

Y la regla:
abuelo(X,Y) :- padre(X,Z), padre(Z,Y).

Se puede preguntar:
? - abuelo(X,Y) Todos los abuelos que existen para ese Universo
? - abuelo(juan, X) Quienes son los nietos de Juan
? - abuelo(X, jose) Quien es el abuelo de Jose (de acuerdo a la base de hechos solo puede haber un abuelo).
? - abuelo(juan, jose) Comprobar si Juan es el abuelo de Jose.


Veamos como unifican los términos para abuelo(X, jose)

?- abuelo(X, jose)

Lo primer que hará será tratar de demostrar que el objetivo abuelo se cumple, para ellos buscara una cláusula (regla), que será abuelo(X,Y) :-
Y luego unificaran los términos la variable X con la variable X y el átomo ‘jose’ con la variable Y.
Después se pasa al cuerpo de la cláusula :- padre(X,Z), padre(Z,Y).
Convirtiéndose padre(X,Z) en el objetivo a demostrar.
Para ello seleccionara el primer predicado (hecho) padre.
Padre(pedro,luis) y unificara los términos X con pedro y Z con luis
Y se pasa a ejecutar el otro predicado contenido en el cuerpo de la cláusula.
Padre(Z, Y) donde Z viene instanciada con el valor ‘luis’ y la Y viene con el valor ‘jose’
O sea buscara un padre(luis, jose).
Y como este predicado existe en la base de hecho de los padres.
Dará X = luis.

Mecanismo de control. El retroceso

Sean los siguientes hechos o predicados
padre(juan, pedro).
padre(juan, ramon).
padre(juan, luis).
padre(luis, francisco).
padre (jose, nicolas).

Y la regla o clausula
hermano(X, Y) :- padre(Z, X) , padre(Z, Y), diferente(X, Y).
diferente(X, Y) :- X \== Y.

Probar que:

?- hermano(pedro, X), padre(X, francisco).

Observen que se esta pidiendo demostrar dos objetivos. Probar que Pedro es hermano
de alguien (X) y que ese alguien es padre de Francisco.

1. Hay que demostrar que los objetivos se cumplen.
2. Analizar para que valores de las variables los objetivos se hacen ciertos.

Se probo que Pedro y Ramón son hermanos pero ahora falta demostrar el otro objetivo: Ramón padre de Francisco.
Para ello prolog deber retroceder hasta el objetivo hermano e instanciar la variable X con el átomo ramon, y pasar el objetivo padre

Por lo que prolog deberá retroceder nuevamente al objetivo hermano y comienza nuevamente el proceso de buscar otro hermano para Pedro

Prolog va marcando los hechos (padres) que ya utilizo en su demostración (con los que fracaso) y escoge otros, siempre que no se indique otra cosa escogerá los predicados de la base de hechos de forma consecutiva.


La recursividad

Veamos ahora uno de los mecanismos más complejos de estos tipos de lenguajes: la recursividad.

Primero vamos a tratar de entender el algoritmo y luego veremos un ejemplo practico.
Sea la regla:
f(X, Y) :- h(X, X1), f(X1, Y1), g(Y,Y1).
y los hechos:
f(3,3). (criterio de parada).
h(0,1)
h(1,2)
h(2,3)
g(3,2)
g(2,1)
g(1,0)

Que pasaría si le preguntáramos lo siguiente:

?- f(X, Y)


Veamos un ejemplo:

Hallar el factorial de 4
4! = 1 x 2 x 3 x 4 = 24
Esto es igual a
4! = 4 x 3!
3! = 3 x 2!
2! = 2 x 1!
O sea:
N! = N(N-1)!
(N-1)! = (N-1)(N-2)!
Por lo que podemos definir una función recurrente como sigue.
Fact(n) = n . Fact(n-1)

Veamos el programa en Prolog
% Se le asigna a la variable N1 el resultado de la expresión N – 1. (esto es un comentario)
resta(N, N1) :- N1 is –(N,1).
% Se le asigna a la variable F el resultado de la expresión N * F1.
mult(N, F1, F) :- F is *(N, F1).
fact(1,1).
fact(N,F) :- resta(N, N1), fact(N1,F1), mult(N, F1, F).

Observen que para la asignación se utilizo IS, ya que el signo(=) lo que hace es unificar
O sea si digo: X = 3+4, la variable X unificara con la estructura +(3, 4). Por lo que el valor de X no será 7, sino la expresión 3 + 4. Si quiere asignarle a X el valor de la expresión seria: X is 3 + 4. Y ahora, si el valor de X es 7.

miércoles, 6 de junio de 2007

Realidad ampliada

Vivimos tiempos de cambio, donde el desarrollo acelerado de las tecnologías se está convirtiendo en un problema, no sólo por la contaminación (hoy se habla de desarrollo sostenible) sino también por las dificultades para su asimilación, cada vez se hace más difícil digerir los cambios que se están produciendo, llamados por algunos el shock del futuro. Y casi todos coinciden en que nos encontramos en la tercera era de la computación: la computación ubicua.

Mark Weiser el creador de la computación ubicua considera tres eras de la computación:
1. La de los Mainframes que eran grandes y caras computadoras que trabajaban en tiempo compartido (muchos usuarios para una máquina) y todo el personal informático estaba en función de la computadora.
2. Las computadoras de sobremesa, pequeñas y baratas computadoras de carácter personal (una computadora para cada usuario) y aunque desaparece gran parte de la dependencia y ya no es exclusividad de los informáticos, sigue existiendo cierta dependencia.
3. La que sé esta iniciando actualmente, computadoras ubicuas, increíblemente pequeñas y baratas que serán invisibles y estarán integradas al entorno (muchas computadoras para un usuario) desaparece la computadora como la conocemos hoy y estarán incluidas de forma natural en todas las máquinas, aparatos, vivienda, ropas, etc.

Todo esto requiere cambios en la forma de comunicarse con las máquinas y de la creación de nuevas interfaz humano-computadora donde se persigue
1. Inteligencia (que los objetos no sólo procesen información sino que también manipulen conocimientos y mejor aun que aprendan del entorno)
2. Movilidad (que puedan trasladarse por si mismo, robot, o que puedan ser trasladados, usarse desde cualquier lugar: teléfonos móviles)
3. Integrabilidad (que se integre al cuerpo humano, a los objetos, al entorno)
Comunicación (conexión entre los objetos y que sean capaces de interactuar entre ellos y con los humanos.
La computadora puede aislar aún más al individuo de sus semejantes.

Tanto la computación ubicua como la realidad ampliada son una reacción ante la ideología que se oculta detrás de la realidad virtual, en lugar de sumergir al hombre en un mundo virtual y que interaccione en el ciberespacio, lograr que el mundo real sea más cómodo, inteligente y agradable a través de la interacción con objetos tantos reales como virtuales.

En vez de sumergirse en un ciberespacio creado en la computadora, se busca ciberizar la realidad donde los objetos del mundo real adquieren atributos virtuales. Piensen en un televisor que en cuanto se levanta del asiento se apague solo y cuando regrese se encienda, que si usted se pone a conversar baje el volumen. Que nos avise cuando va a comenzar nuestro programa preferido… Se persigue dotar de inteligencia al mundo que nos rodea (objetos inteligentes), romper las barreras de las comunicaciones (globalización). Como una forma de llevar las computadoras al espacio humano, o como otros dicen: humanizar a las máquinas.

Tenemos que aceptar desde hoy, que la visión que teníamos del mundo ha ido cambiando en los últimos años de forma ascendente:
• De una ciencia, la Inteligencia Artificial, que aspiraba a lograr máquinas cada vez más inteligentes a los nuevos intentos de lograr que las máquinas inteligentes a través de su interacción con los humanos hagan que este sea cada vez más inteligente.
• De máquinas conectadas entre si a través de una red cerrada (local) a personas conectadas entre si a través de redes abiertas.
• En lugar de introducirse dentro de una computadora (realidad virtual) que las computadoras se inserten en la vida del hombre.

El hombre tiene la elección de alcanzar una vida mejor, sin formulas evasivas, con máquinas quizás no tan inteligentes, pero si cada vez más cercanas a nosotros y más acorde con nuestro mundo y sus conflictos tanto económicos, sociales (no se puede ignorar la pobreza extrema en que viven muchos países) o éticos

jueves, 31 de mayo de 2007

Fundamentos de la Inteligencia Artificial: La Cibernética

En nuestros días la Cibernética no debe verse ni como una ciencia, ni como una disciplina; sino como un movimiento de ideas, que trató de romper con la estrechez de conocimientos propios de cada disciplina. El movimiento cibernético permitió que científicos de ramas muy diferentes se agruparan en colectivos de investigación y por primera vez, matemáticos, fisiólogos y especialistas en electrónica se integraran en equipos multidisciplinarios. Su creador Norbert Wiener después de estar años trabajando en las teorías matemáticas y de agregar algunas fórmulas más al gran aparato matemático, comenzó a trabajar en cuestiones técnicas como el control de los disparos de la artillería antiaérea y la transmisión más eficiente de mensajes codificados a través de sistemas de comunicaciones. Escribió un libro sobre cibernética y el control en los animales y las máquinas que se convirtió en un éxito. Las condiciones estaban dadas para una nueva revolución dentro de la ciencia.

La cibernética se basa en el estudio de las máquinas (objetos artificiales) y su aplicación, lo que promovió una nueva revolución científica sobre la base de la interrelación de los humanos con las máquinas a un ritmo tecnológico de crecimiento jamás visto y de carácter impredecible. Este ritmo ya se hace sentir y podemos afirmar, por ejemplo, que un hombre del siglo XVI pudiese muy bien, haber vivido sin mucho sobresalto en el siglo XVII en cambio uno del siglo XIX tendría grandes problemas para adaptarse al XX y todo indica que esta aceleración seguirá aumentando, lo cual hará que una persona en su vejez tenga que vivir en un mundo totalmente diferente al de su infancia.

Con la cibernética el concepto de máquina ha ido cambiando a lo largo de los años. Luego de aquellas primeras máquinas mecánicas donde se pretendía reemplazar completa o parcialmente el trabajo físico del hombre y de los animales, han seguido otras, cuyo fin, es la mecanización del trabajo intelectual. Hoy las máquinas realizan funciones que antes se consideraban propias del intelecto humano. Pero quizás el aporte más importante de la cibernética fue fundamentarse sobre las analogías, de ahí su característica de ciencia exógena, la cual está dada por la interrelación con otras ramas del conocimiento y su asimilación interna, pero sobre todo por la propuesta de teorías generales que expliquen fenómenos propios de las otras ciencias. Por ejemplo, la cibernética ha preferido basarse en la teoría de los modelos, que hace más hincapié en la representación funcional de los organismos que en su estructura en el sentido vertical o jerárquico. Esto, unido a la búsqueda de analogías entre los fenómenos y no a la reducción de uno en otro la llevó a convertirse en una ideología científica para la comprensión del mundo.

Otro de los aportes de la cibernética, es la utilización del aparato matemático, que hasta ese momento era de uso casi exclusivo de la física y como la cibernética a su vez era una disciplina común a varios sectores de investigación, trajo como consecuencia que ramas como la psicología, la sociología y la biología, pudieran de alguna manera formalizar sus teorías, y aún fue más lejos, ya que les proporcionó métodos de experimentación mediante la creación de máquinas que permitieran estudiar conductas, reacciones, reflejos, aprendizaje, etc.

Cuando los cibernéticos intentaban modelar la estructura de un objeto, más que la estructura lo que tenían en cuenta era la reproducción de su funcionamiento sobre otra estructura y se aspiraba a que ese modelo u objeto artificial exhibiera una conducta similar a la del original. Digo similar porque en realidad la conducta mostrada por los modelos siempre ha estado supeditada a la interpretación del investigador. Estos intentos de modelación llevaron a los científicos a la construcción de máquinas con conducta como las tortugas de Grey Walter y los zorros de Albert Ducrocq, que no eran más que pequeñas máquinas dotadas de movimiento y que se orientaban por la luz, otras se orientaban por el sonido o poseían alguna forma de radar. Pero lo más interesante era la interpretación que se le daba al comportamiento de estos ciberanimalitos. Para Grey Walter las tortugas podían pasar de un comportamiento flemático a otro irascible. Para Ducrocq, sus zorros eran capaces de manifestar sentimientos de afecto entre si. Sé que esto a los racionalistas les puede parecer infantil, pero ¿no es interesante por no decir válido que el ser humano siga recurriendo a su fantasía para interpretar los fenómenos y que mantenga viva, en estos tiempos de determinismo científico, su capacidad de "sorprenderse"?.

Hoy nadie habla de las experiencias emocionales con tortugas, zorros, ratones... Las ideas eran demasiado simples: cualquier aparato podía mostrar alguna forma de conducta humana. Ese era el gran sueño de los cibernéticos: reproducir la vida en todas sus manifestaciones y no sólo la inteligencia, como pretende en estos tiempos la Inteligencia Artificial. Y es que la Cibernética no basó su investigación sobre la base de que la máquina sustituiría al hombre, ya que siempre vio a ambos como sistemas con analogías funcionales, que a la vez que tenían grandes diferencias por ser organismos con estructura y organización propias poseían a su vez, muchas similitudes; De a.C. que los cibernéticos le dieran, siempre, mayor importancia a la influencia de la estructura sobre la mente, pero ambos vistos como un sistema capaz de funcionar como un todo.

Vivimos en un mundo de crisis tanto social como espiritual, y el hombre desesperado vuelve sus ojos a la ciencia y espera de ella la solución a los grandes problemas que lo agobian y ve en la ideología cibernética un nuevo enfoque. Veamos algunos de los problemas que se están retomando: El sistema educativo, la salud (las prótesis), la muerte, la creatividad, la producción de bienes de consumo, el desarrollo, la comprensión de la mente humana, la felicidad, la evolución (convergencia hombres y máquinas), nuevas formas de organización social (posthumanidad), mejoramiento humano (conexión hombre máquinas)

Es por eso que la Cibernética al pasar de los años se ha ido transformando en una de las ideologías de la ciencias más influyentes, y al igual que la Física y la Biología, engendra grandes promesas y para muchos se convierte en la nueva salvadora del mundo, gracias a que ha aportado una de las metáforas más ricas y poderosas: la llamada metáfora computacional o cibernética, que ofrece una nueva óptica de la sociedad y abre las puertas hacia una nueva era post-industrial. Hoy en día son muchos los que piensan que la máquina sustituirá al hombre, o los que creen que la mente humana se puede simular a través de una computadora, o los que sueñan con crear una vida artificial.

viernes, 25 de mayo de 2007

Paradigmas de interacción

Estamos en el cambio hacia la tercera generación del ordenador personal o de tecnologías personales, donde la tecnología desaparecerá en la herramienta, aportando funcionalidades valiosas, pero quitándose de en medio, la generación donde el ordenador desaparece en herramientas específicas a tareas.
Alan Kay

Los paradigmas de interacción son los modelos de los que se derivan todos los sistemas de interacción. Actualmente existen 4 paradigmas de interacción hombre-computadora.
1. La computadora personal o de sobremesa
2. La realidad virtual
3. La computación ubicua
4. La realidad aumentada

1. La computadora personal.

Para Donald Norma, la computadora personal es probablemente la tecnología más frustrante jamás fabricada, a lo que agrega: es demasiado visible, demasiado exigente y controla nuestro destino. Su complejidad y sus frustraciones son debidas a la concentración de demasiadas funciones en una caja que está en nuestra sobremesa

2. La realidad virtual.

El termino de realidad virtual (RV) se suele aplicar a
• Interfaces en 3D con las que se puede interactuar y se actualizan en tiempo real
• Sistemas cuyo nivel de autonomía, interacción y sensación de presencia es casi igual al del mundo real

Donde las condiciones necesarias para hablar de un sistema de RV:
• Sensación de presencia física directa mediante indicaciones sensoriales (visuales, auditivas, hápticas) creadas por la tecnología
• Indicaciones sensoriales en tres dimensiones
• Interacción natural. Permiten manipular los objetos virtuales con los mismos gestos que los reales: coger, girar, etc.

3. La Computación Ubicua.

Trata de extender la capacidad computacional al entorno del usuario.

Permite que:
• La capacidad de información esté presente en todas partes en forma de pequeños dispositivos muy diversos que permiten interacciones de poca dificultad conectados en red a servidores de información
• El diseño y localización de los dispositivos son específicos de la tarea objeto de interacción
• La computadora queda relegada a un segundo plano, intentando que resulte “transparente” al usuario (ordenador invisible)
• La interacción se diluye en el entorno
- La capacidad informática está por todas partes
- Dispositivos grandes y pequeños
- Una infraestructura global de información
- Conectados entre ellos
- Actúan como detectores y controles
• Forma parte y mejora el mundo real

La computación ubicua tiene su origen en las ideas de Mark Weiser, Xerox PARC, 1991

Podemos decir que son entornos en los que los usuarios no interaccionan directamente con ordenadores, sino con dispositivos de diverso tipo y tamaño. Se considera los opuesto a la realidad virtual.

Realidad Virtual: el mundo en la computadora
Realidad ampliada: El mundo en las computadoras en el mundo

En la realidad ampliada existe una gran variedad de dispositivos:
• Insignias activas
• Marcas
• Tabletas
• Pizarras, etc.

Pero hasta el momento, los avances en hardware que se han producido no son suficientes para el cambio de paradigma.

4. La realidad aumentada

Son ambientes aumentados de la realidad o ambientes simplemente aumentados, en los que se trata de reducir las interacciones con el ordenador utilizando la información del entorno como una entrada implícita

La realidad aumentada integra el mundo real y el computacional:
• El mundo real aparece aumentado por información sintética
• Se consigue una disminución importante del coste interactivo

Y tiene entre sus objetivos
• Mejorar la interacción con el mundo real
• Integrar el uso del ordenador en actividades cotidianas
• Posibilitar el acceso a usuarios diversos y no especializados. Los objetos cotidianos se convierten en objetos interactivos
• Trasladar el foco de atención del ordenador al mundo real. La información se traslada al mundo real, en lugar de introducir el mundo real en el ordenador (realidad virtual)
• Cconstruir entornos interactivos que aumenten directamente los sentidos de un usuario con material generado por ordenador

Estas son las tecnologías en las que se esta trabajando

• Visualizadores personales: Dispositivos que permiten ver a través de un casco para aumentar los sentidos visuales y auditivos de un usuario
• Ordenadores corporales
• Entornos aumentados
• Interfaces de usuario tangibles
• Integración el mundo real y el computacional: (Wellner,1993)
• Método más común: Solapamiento entre la información digital y las imágenes del mundo real a través del uso de visualizadores en casco o proyecciones de vídeo
• Combinación del medio ambiente con objetos asibles
• Reconocimiento automático de la situación del usuario a través de diversas técnicas de reconocimiento: tiempo, posición, objetos, códigos de barra…


Líneas fundamentales de investigación

1. Aplicar la realidad virtual al mundo real
• Se aumenta o mejora la visión que el usuario tiene del mundo real con información adicional sintetizada
• La información se superpone mediante el uso de gafas especializadas

2. Usar dispositivos que aumentan la realidad e interaccionan directamente con ella
• El usuario interactúa con el mundo real, que está aumentado con información sintetizada
• No se trata de superponer la información real con la virtual, sino de hacer participar a objetos cotidianos como un lápiz o una mesa que interactúan con el sistema de forma automática

Entre las áreas aplicación se encuentran.

• Medicina
• Mantenimiento mecánico y reparación
• Diseño interior
• Cultura, ocio


Tiene como líneas principales de trabajo.

• Superficies interactivas: Transformación de la superficie dentro de un espacio arquitectónico (paredes, mesas, puertas, ventanas) en una superficie activa entre el mundo físico y el mundo real
• Acoplamiento de bits y átomos: Acoplamiento sin interrupciones entre los objetos de cada día que se pueden coger (tarjetas, libros, etc.) con la información digital que está relacionada con ellos
• Medio ambiente: Uso del medio ambiente como sonido, luz, corrientes de aire y movimiento de agua como interfaces de fondo

miércoles, 9 de mayo de 2007

Interfaces de interacción

Definición de interfaz:
Las interfaces básicas de usuario son aquellas donde se incluyen menús, ventanas, teclado, ratón, etc. En general, son todos aquellos canales por los cuales se permite la comunicación entre el hombre y la computadora.

Se considera a una interfaz multimodal cuando se usan múltiples canales de comunicación simultáneamente.

Canales de comunicación
- Teclado
- Mouse
- Display
- Micrófono
- Bocinas

Característica de la multimodalidad
- Eficiencia: Apuntar es más fácil que describir
- Redundancia: Dos fuentes de información son mejores que una
- Naturalidad: Imitar la interacción entre humanos
- Exactitud: Combinación de fuentes que dan más certidumbre

Otras modalidades alternativas

Otras modalidades alternativas

Los conversores texto a voz (text to speach – TTS), que surgieron hacia finales de los años 70. Eran máquinas capaces de convertir texto tecleado en voz (conversor texto-voz), que junto con los programas de reconocimiento óptico de caracteres (Optical Carácter Recognition en inglés) produjeron los primeros sistemas comerciales para leer libros en voz alta.

Ejemplo de programa que lee los textos por ti
TextAlaoud: http://www.nextup.com/

Interfaces adaptativas

Son aquellas que pueden cambiar de acuerdo al contexto y que son capaces de aprender de acuerdo al perfil de los usuarios.

Se esta produciendo un cambio en los dispositivos para interactuar.
• Varios tamaños de display.
• Alternativas como escritura a mano.
• Identificación del contexto.
• Contextos visibles
• Adaptable a dimensiones de pantalla.

Otras interfaces

Interfaces inteligentes: Esta relacionada con la interacción asistida y con el uso de los agentes inteligentes y con la interpretación semántica de los problemas.

Interfaces emotivas: tiene como objetivo desarrollar tareas que tienen que ver con el estado emotivo de la persona. Permite medir algunos tipos de emoción como: alegria, tristeza, sorpresa, cansancio, etc.

Interfaces táctiles: permite el acoplamiento entre el mundo sensible al tacto con nel mundo generado por la computadora. Tiene aplicación en personas con limitaciones físicas.

Se espera que las computadoras portátiles se integrarán a la vestimenta de las personas. Se prevén diferentes sistemas de ayuda personal y profesional (agendas, sistemas para navegación en carretera o en ciudad, ayuda para la realización de tareas, acceso a telefonía e Internet, etc.) en lo que ya se conoce como wearable computation. Independientemente de la función de este tipo de dispositivos, está claro que los ordenadores que «se llevan puestos», entre otras características propias, necesitan un sistema especial de interacción con el usuario.

jueves, 1 de marzo de 2007

Programación lógica

Introducción:
En los comienzos de los años 70 el francés Alain Colmenuer desarrolló el lenguaje PROLOG que también permite el desarrollo de aplicaciones en forma declarativa.

En general el PROLOG es un demostrador automático de problema, el cual utiliza una Base de Conocimientos en forma de reglas de inferencia deductivas (cláusulas de Horn), es decir sus reglas tienen como consecuente una única acción y las inferencias obte­nidas son estrictamente lógicas (verdaderas o falsas), aunque puede parecer una limitación, esto no es totalmente justo, ya que PROLOG permite programar mecanismos inferenciales con lógica probabilisticas, dado que se trata de búsquedas en árboles con acumulación de evidencias.

El PROLOG como lenguaje surgido del cálculo de predicados, tomó las siguientes ideas de la lógica para su ejecución.
1) Un conjunto de axiomas o hechos.
2) Reglas de inferencias las cuales se resuelven por resolución y unificación.
3) El objetivo a demostrar, que serán las condiciones a unificar con las reglas.
También tomó del LISP el tratamiento de las listas para la repre­sentación de estructuras complejas.Aunque el PROLOG tuvo su ori­gen en la lógica matemática no fue una transposición exacta, y esta ligada a las discusiones que sostienen desde hace años los principales investigadores de la Inteligencia Artificial, los cuales están divididos en dos grandes grupos, de una parte Minsky quien propone estudiar los mecanismos del pensamiento humano y luego simularlo en la computadora.
Lo más importante para Minsky son los conceptos, o sea la inter­pretación que se le puede dar a cada palabra en dependencia de un contexto dado.

El otro grupo encabezado por Mac Carthy (autor del LISP), afirma que la lógica matemática es el elemento característico para la representación del razonamiento y su implantación en la computadora, este grupo centra su atención en la formalización y en la estructura de los conocimientos más que en el sentido de los mismos.

La lógica desde la antigüedad se concibió como el método de descubrir las leyes del pensamiento, pero estas leyes siempre han estado restringidas al pensamiento científico y muy especialmente el matemático, quedando fuera el sentido común. Esta deficiencia es admitida por los defensores de la lógica, pero ellos consideran que la lógica es la única senda posible para desarrollar programas capaces de mostrar inteligencia.
2.1.1. Programación declarativa

En la programación declarativa lo principal no son las instrucciones que se dan en forma secuencial (programación prescriptiva), en su lugar, el programador se dedica a describir el problema a través de reglas y hechos que funcionan de forma independiente y es a través de un mecanismo de inferencia que se ejecutan las reglas.

En la programación declarativa las reglas (base de conocimientos) esta separada del programa de control (maquina de inferencia).

Ejemplo de programación declarativa:
Si y/o y/o .... entonces y/o ....

Donde un hecho seria:
Juan es un estudiante
El perro es blanco
A María le gusta el cine.

El conocimiento operativo tiene carácter procedimental.
Si Premisas entonces Conclusión
(También hay quienes utilizan: Si Condiciones entonces Acciones)

Si P entonces C
Donde:P y C instrucciones estaríamos en presencia de una representación procedimental.
P y C hechos o aserciones estaríamos en presencia de una representación declarativa.

Ejemplo de representación procedimental
Si A1 = B1 y A2 > B2 entonces X := A1 + A2

Donde A1 = B1 y A2 > B2 son comparaciones que tomaran el valor de ¨verdadero¨ o ¨falso¨.


O sea que tendríamos:

Si P1 y P2 entonces C

donde P1 y P2 serian variables lógicas (darían verdadero o falso)

Ejemplo de representación declarativa
Si y entonces

Esto en cualquier lenguaje se haría de la siguiente forma:
X := “Juan es un estudiante”
Y := “Juan tiene 7 años”

if X = “Juan es un estudiante” and Y = “Juan tiene 7 años”
then Z := “Juan esta en la primaria”

Veamos ahora la forma de formalizar los hechos o aserciones
Ejemplo: Juan tiene 10 años de edad
1)
<10>
2) relacion (concepto, concepto,....) La que utiliza Prolog
edad(Juan, 10)
También se utiliza
3)


Nos concentraremos en las dos primera representaciones.

Ejemplo1: El león es un mamífero

es-un(leon, mamifero)

Ejemplo 2: A María le gusta el cine.
1)
2) gusta(maria, cine)

Veamos ahora algunos ejemplos donde se combinan los hechos en formas de reglas o cláusulas:

si y
entonces

Y ahora formalizando los hechos tendremos:


1) si y
entonces

O también (similar a Prolog)
2) vive(tiburon, en-agua) si vive(pez, en-agua) y es-un(pez, tiburon)

Observen que en prolog la conclusión se pone delante de las premisas

Representación en forma de reglas:
si Premisas entonces Conclusión
Lo que se interpretaría como:
si entonces
Donde la conclusión puede estar compuesta por varios hechos o aserciones.

Representación en prolog:
Conclusión si Premisas
Y se interpretaría como:
si
Donde la conclusión estará dada por un solo hecho o aserción.

Ejercicio 1:
1. A María le gusta el tenis.
2. A Tomas le gusta el béisbol.
3. A José le gustan los deportes que le gustan a Tomas.

1.
2. S
3. Si entonces

Similar a prolog:
1. gusta(maria, tenis)
2. gusta(tomas, beisbol)
3. gusta(Jose, X) Si gusta(tomas, X)

Ejercicio 2:

Sofía desea un hombre que no fume.

si y

Similar a prolog:
desea(sofia, X) si hombre(X) y no fuma(X)


Calculo proposicional y de predicados.

Introducción a la lógica de predicados.

Esquemas lógicos:

Habíamos definido que Prolog utiliza la representación:
Relación (concepto1, concepto2,....)

En lógica el nombre de la relación se denomina “predicados” y los conceptos “argumentos” y dicha estructura se denomina ‘proposición” las cuales toman el valor de verdadero o falso. Y se resuelven a través del calculo de predicados.

Predicado (Argumento1, Argumento2, .....)

Un argumento puede ser representado con una constante o con una variable.

Ejemplos:
Propietario(pedro, radio)
Estudia (maria, X-materia)
Posee (luis, X-cualidad)
Supervisa(pedro, juan)

Calculo de predicados: Dado una formula cualquiera determinar si es verdadera o falsa.



Modus ponens: A, A Þ B

B

Si A se cumple y A Þ B se cumple entonces también se cumple B

Si tenemos A1 Ù A2 Ù A3 Þ B donde si todas las A se cumplen entonces se cumple B. Pero, si alguna de las A da falso, en ese caso no se puede saber el valor de B, dado que B puede ser verdadera o falsa
Ya que la formula: (falso) Þ B es verdadera tanto para si B es verdadera o falsa.

Ejemplo:

Todos los hombres son mortales
Socrates es hombre

Socrates es mortal

Como ya sabemos esto se representaría de forma declarativa:

Si hombre. X entonces mortal. X
Hombre. Socrates

Mortal. Socrates

En calculo de predicados seria:

Hombre (X) Þ Mortal (X)
Hombre (Socrates)

Mortal (Socrates)

Lo cual es posible ya que si Hombre(X) es verdadero también Hombre(Socrates) es verdadero por interpretación de formulas.


Interpretación de formulas del calculo de predicados.

Veamos algunas definiciones:
U: Universo o dominio para la interpretación.
Predicado: “Relación entre elementos de U y las propiedades de los elementos.

Definición: Una formula A es verdadera en U. Si A evaluada para cualquier valor de X tomado de U da siempre verdadero.

O sea:

A es verdadero en U si "(X), X Î U y A(X) verdadero


Donde X es una variable libre (no instanciada)

Ejemplo de Universo:
U = {Socrates, Platon, Democrito}

Cuantificadores universales

": Para todo o para cada.
"(X):Todas las sustituciones de la variable X por elementos de algún dominio de aplicación, deben tomar el valor verdadero.

$: Existe.
$(X): Solamente alguna de las sustituciones necesita tomar dicho valor.

En Prolog los cuantificadores se dan de forma implícita. Hay que eliminar los cuantificadores y mantener la dependencia.

Si tenemos la siguiente expresión
" (X) $(Y) tal que X £ Y
Como Y depende de X , al eliminar los cuantificadores quedaría:
Y = f(X).

Ejemplo 1:
Sea el predicado Persona(X)
Sea U = { juan, maria, jose, ana}
El predicado persona seria cierto en U si se cumple:
"(X) tal que X Î {juan, maria, jose, ana}
O sea persona(X) se cumple para:
Persona(maria) ® verdadero
Persona (luis) ® falso

Ejemplo 2
Todas las personas tienen una madre.
Tendriamos la siguiente expresión:
"(X) $(Y) persona(X) Þ Madre(Y, X)

Veamos algunas propiedades
Ø(Ø A) = A
A Þ B = ØA Ú B
Ø(A Ù B) = ØA Ú ØB
Ø(A Ú B) = ØA Ù ØB
A Ù (B Ú C) = A Ù B Ú A Ù C
A Ú (B Ù C) = A Ú B Ù A Ú C


Conjuntos y relaciones

Pocos lenguajes pueden ser interpretados desde tres ángulos diferentes, como declarativos, como lógicos y como relacionales. Tal vez esta sea una de las mayores dificultades a la hora de comprender la esencia de Prolog, pero a su vez, en esa riqueza de interpretación radica, tanto su complejidad como su encanto.

Hemos estado afirmando que Prolog los hechos se representan como:
Relación(concepto1, concepto2,.......)

Ejemplo:
1. gusta(maria, juan)
2. gusta(maria, Y)
3. gusta(X, Juan)
4. gusta(X, Y)

Lo que se interpreta como:
1. A María le gusta Juan.
2. A María le gusta alguien
3. A alguien le gusta Juan
4. A alguien le gusta alguien

Repasemos algunos conceptos sobre RELACION

Producto cartesiano
A = {a,b,c} y B = {2,3}
Sea el par (x,y) con x Î A y y Î B
Se obtiene el conjunto
AxB = { (a,2), (a,3), (b,2), (b,3), (c,2), (c,3)}
Y se denota como
AxB = { (x,y) / x Î A y y Î B}

Relación entre conjuntos
Sea C = { (c,2), (c.3)}
Se tiene que C Ì AxB
Una relación entre dos conjuntos A y B es cualquier subconjunto del producto cartesiano AxB.
Por tanto C es una relación del conjunto ab
O lo que es lo mismo.
Si R Ì ab Þ R es una relación entre A y B

Aquí R fue seleccionada arbitrariamente. En la practica se establecen las condicione entre los componentes de los pares con el objeto de obtener una relación determinada, del tipo.
R = { (x,y) Î AxB / }

Ejemplo:
Sean los conjuntos A = { 1, 3 } y B = { 2, 4 }
Sea la relación R = { (x,y) Î AxB / x < y }
Tendremos R = { (1,2), (1,4), (3,4) }
Entrando en materia

Sean los conjuntos H = { juan, jose } y M = {maria, ana }
Sea la relación G (gusta) G = { (x,y) Î HxM / si x Î H y y Î M}
Tendremos G = { (juan, maria), (juan, ana), (jose, maria), (jose, ana) }

En Prolog seria:
Gusta (X,Y) si hombre(X) y mujer(Y)
Hombre(juan)
Hombre(jose)
Mujer(maria)
Mujer(ana)

Y el resultado seria: gusta(juan,maria), gusta(juan,ana), gusta(jose, maria) y gusta(jose, ana).

Ejemplo 1:
A José le gustan todas las mujeres bonitas.
Seria
Gusta (José, X) si mujer(X) y bonita(X)
Bonita(ana).

Observen que ahora estamos haciendo referencia al conjunto de las mujeres bonitas el cual es subconjunto de M= {maria, ana}

Ejemplo 2:
María odia a todos los hombres
Odia(maria, X) si hombre(X)

martes, 20 de febrero de 2007

Hacia un nuevo enfoque de la Inteligencia Artificial

A partir de la crisis en la IA han surgido nuevas áreas de investigación de la IA tales como:
‑ Redes Neuronales
‑ Algoritmos Genéticos
‑ Inteligencia Artificial Distribuída

Todas tienen en común un nuevo enfoque: la inteligencia es producto de la asociación, combinación o conexión de entidades independientes más simples (agentes, genes o neuronas), las cuales pueden tener alguna inteligencia o ninguna y producto de su interacción, el sistema presentaría un comportamiento inteligente. Lo cual nos lleva a un nuevo paradigma basado en la copia de los sistemas emergentes y evolutivos de la naturaleza, que de cierta manera es un retorno a la Cibernética, primera ciencia de carácter técnico inspirada en la naturaleza.

Las investigaciones en las RNA han estado inmersas en la creación de autómatas que aprendan a descubrir relaciones ocultas en los datos a la vez que puedan codificar y almacenar información en forma similar a como lo realiza el cerebro.

La neurocomputación utiliza como base la metáfora cerebral, pero no persigue como objetivo la construcción de máquinas absolutamente plausibles biológicamente, sino el desarrollo de máquinas útiles.

La capacidad intelectual depende de la acción colectiva de las neuronas, que realizan procesos en serie y en paralelo utilizando la retroalimentación y una organización molecular y laminar con alta capacidad de auto-organización y cooperatividad basado en una estructura jerárquica que permite el procesamiento local y centralizado en fases.

Vida artificial es el nombre dado a una nueva disciplina, nacida en los años 80, que estudia la vida natural mediante la recreación de fenómenos biológicos en la computadora y otros medios artificiales, con el fin no solamente de la comprensión teórica de los fenómenos bajo estudio, sino también de descubrir y realizar aplicaciones prácticas y útiles de los principios biológicos en la tecnología de la computación y en la ingeniería, como por ejemplo, en robots móviles, naves espaciales, medicina, nanotecnología, fabricación industrial y ensamblaje así como también en otros proyectos de ingeniería.

En la Naturaleza, la evolución, en particular la de los seres vivos, presenta algunas características que motivaron a John Holland a comenzar una línea de investigación en un área que eventualmente se transformó en lo que hoy se denomina Algoritmos Genéticos (AG). La habilidad de una población de cromosomas para explorar el espacio de búsqueda "en paralelo" y combinar lo mejor que ha sido encontrado en él por medio del mecanismo de sobrecruzamiento (crossover), es algo intrínseco a la evolución natural y trata de ser explotada por los AGs.

Desde el punto de vista biológico, el problema se centra en la imitación del mecanismo evolutivo de los seres vivos. De una población, tienen más posibilidades de sobrevivir y de tener descendencia aquellos organismos mejor adaptados al medio. De combinarse dos que tengan características deseables para aspectos distintos pueden surgir nuevos que hereden ambas peculiaridades.

La premisa de los AGs, trás la publicación del libro de Holland "Adaptation in Natural and Artificial Systems" y de los numerosos investigadores que los utilizan como metaheurística para optimización, es que se pueden encontrar soluciones aproximadas a problemas de gran complejidad computacional mediante un proceso de "evolución simulada", en particular como un algoritmo matemático implementado en un ordenador.

En la Inteligencia Artificial Distribuida (IAD) se estudia la solución cooperativa de problemas por un grupo de agentes distribuídos. Tal cooperación se basa en que ninguno posee la información (experticidad, recursos, etc) para resolver completamente el problema y donde un agente tiene como característica la de ser una entidad mas o menos autónoma, con conocimientos propios y de su entorno así como con la posibilidad de interactuar con dicho entorno y otros agentes.

A diferencia de los sistemas expertos, llamados por muchos "sistemas autistas" estas nuevas investigaciones se ocupan de que los mismos sean capaces de interactuar con el entorno o lo que es lo mismo que sean abiertos y flexibles.

Por otra parte, los agentes inteligentes se perfilan como una de las aplicaciones de la IA mas prometedoras debido a su estrecha relación con Internet (la tercera revolución de la informática). Sin crear falsas expectativas, debemos recordar los sistemas expertos y los agentes inteligentes dadas las ventajas que representan para el acceso a las redes. Ellos están llamados a cambiar nuestra forma de trabajo al permitir a los usuarios moverse en ambientes más cómodos y amistosos.


CONCLUSIONES

Hasta hoy, es posible desarrollar sistemas que se comportan ‘eficazmente’ en una materia específica, pero no que 'emulan' a la inteligencia humana. La lógica es sólo una arista de la misma: el sentido común, razonamiento no monótono, reconocimiento y otros procesos ‘inteligentes’ aún no están totalmente resueltos.

Los programas de ajedrez son una demostración palpable de lo que podría llamarse una inteligencia basada en la fuerza bruta, dado que su método consiste en la velocidad de cálculo, lo cual le permite buscar en grandes espacios y procesar una cantidad enorme de información, velocidad de procesamiento que supera ampliamente la del cerebro humano. Muchos creen que la rapidez creciente en el cálculo de las computadoras, que no parece tener limites, debe conducir al surgimiento de las llamadas máquinas inteligentes, afirmación sustentada en que las computadoras al poder valorar más variantes de un problema, ya sea el juego de ajedrez, un cálculo de ingeniería, un diseño industrial o un diagnóstico mecánico, será capaz de alcanzar soluciones más rápidas y eficientes, relegando la de los humanos a un segundo plano. Este argumento se fundamenta en el auge acelerado que se evidencia en el hardware de las computadoras, mientras subestima el desarrollo del software e ignora las posibilidades del cerebro.

Actualmente, la ciencia deja de encerrarse en si misma y se fija en lo que le rodea, comprende que la mejor manera de entender cómo funciona algo en un ser humano es entenderlo primero en los animales más simples. Es así que la ciencia descubre las propiedades emergentes de la inteligencia, como resultado de la interacción compleja de sencillos elementos y emula con los procesos genéticos evolutivos en la búsqueda de mejores soluciones a problemas realmente complejos.


La Inteligencia Artificial 'convencional' con sus intentos de modelar matemáticamente los procesos de razonamiento, no ha podido alcanzar el sueño de sus creadores, mucho menos los seguidores de la denominada IA 'fuerte', quienes han pretendido convencernos de que seremos sustituidos por máquinas pensantes. Comienza una nueva era dentro de la Inteligencia Artificial. El hecho de mirar hacia la naturaleza posibilitará al hombre un avance en el camino de lograr simular verdaderamente, la inteligencia humana.

viernes, 2 de febrero de 2007

Crisis de la inteligencia artificial

Los primeros intentos de la inteligencia artificial (IA) se fundamentaron en las búsquedas heurísticas. Se creía que el hombre resolvía todos los problemas a través de métodos heurísticos y se pensaba que la mente estaba conformada por potentes mecanismos heurísticos capaces de partir de lo general a lo particular tal como sucedía con los algoritmos de computación. De ahí los esfuerzos por hallar un algoritmo general basado en los principios heurísticos que fuera capaz de resolver cualquier tipo de problema. Ejemplo de ello fue el GPS (solucionador general de problemas) con el cual se podía demostrar cualquier tipo de teorema matemático, pero era incapaz de resolver problemas de carácter elemental que requieran un mínimo de sentido común. Este fracaso llevó a los investigadores a la conclusión que la heurística no lo era todo y que si el hombre resolvía los problemas era porque poseía los conocimientos necesarios para darle solución.
.
Lo que dió lugar a la explosión de los sistemas basados en conocimientos más conocidos como sistemas expertos los cuales debido a la estrechez de su dominio de solución de los problemas, no cumplió con las expectativas de los usuarios. Ello trajo como consecuencia la crisis del paradigma simbolista dentro la IA lo que originó nuevos paradigmas siendo los más importantes los basados en el conexionismo y los basados en la cooperación. Siendo interés nuestro los últimos ya que son los que están relacionados con la cooperación entre agentes inteligentes ajustándose este modelo a la estructura de una organización inteligente.

Otro de los intentos de la inteligencia artificial fue tratar de comprender los estados mentales a través de "mundos de juguetes", producto del desconocimiento existente sobre la naturaleza de la inteligencia y, por otro lado, existía la creencia de que lo aprendido en esos dominios de juguete se podría extender sin dificultades a problemas más complicados pero debido a la complejidad de los problemas del mundo real estos no pueden capturarse en modelos reducidos y por tanto deben plantearse directamente.

Crisis de la IA:

La Inteligencia Artificial se ha visto siempre como una ciencia teórica, desligada de la realidad, mientras para otros son métodos que permiten investigar el cerebro. Pero, en realidad, ¿cuales han sido sus logros? ¿Cómo ha influído en la comprensión de la mente humana?



La IA parece irreconciliable si la analizamos a través de sus tres vertientes:
‑ Estudio de la mente humana.
‑ Sistemas informáticos inteligentes.
‑ Sistemas comerciales basados en las técnicas de la IA

Estudio de la mente: Descubrir los enigmas de la mente humana, donde la máquina es utilizada como laboratorio para verificar las teorías.

Sistemas informáticos: analizar las técnicas informáticas de simulación del comportamiento inteligente

Sistemas comerciales: la máquina es una herramienta que a través de programas inteligentes servirá al hombre en sus tareas diarias.

Cada uno de estos métodos niega los progresos del otro, y en algunos casos considera que no tiene nada que ver con la Inteligencia Artificial.

De acuerdo a estos enfoque surgen tres áreas de investigación y desarrollo de la Inteligencia Artificial.

Estudio de la mente àCiencia cognoscitiva.
Sistemas informáticos à Máquinas inteligentes.
Sistemas comerciales à Ingeniería del conocimiento

Estudio de la mente:
Se considera una ciencia natural que investiga sobre la mente que trata de comprender los mecanismos de la creatividad del ser humano apoyándose en las computadoras como soporte del pensamiento de este grupo se desprenden dos grandes ideas que han llenado de promesas las investigaciones de la IA: la IA fuerte y la IA débil.

La Inteligencia Artificial fuerte:
La idea de una IA fuerte ha sido el sueño de casi todos los investigadores de ese campo. Sostiene que todas las operaciones mentales son manifestaciones sofisticadas de complicados procesos computacionales, y que es irrelevante si tales procesos son llevados a cabo por un sujeto humano, un objeto físico o un dispositivo electrónico. Por lo que acepta que la mente humana puede ser reproducida o copiada para otro medio, el cerebro se considera un soporte más.


En cambio para la IA débil (menos radical que la anterior, y también más extendida desde el fracaso del enfoque idealista de los primeros años) computación no supone consciencia, y la simulación artificial de actividades mentales en ningún caso da origen a fenómenos mentales como dolor, reconocimiento, entendimiento o intencionalidad. No obstante se acepta la posibilidad de una simulación de la mente que suponga identidad funcional, aunque nunca identidad estructural.
Se acepta la creación de un algoritmo suficientemente complejo que podría ser codificado a través de un programa computacional y controlar un robot de la misma forma que lo haría un ser humano.


2. Sistemas informáticos:
A este grupo no les preocupa tanto las cuestiones filosóficas, aunque su afiliación esta dentro de una IA débil. Para ellos la meta es construir máquinas más perfectas, aprendiendo a representar y manipular el conocimiento sobre el mundo real mediante una computadora y no les preocupa en lo más mínimo si la forma de pensar de las máquinas está de algún modo relacionada con la forma humana de pensar.

Para estos investigadores la máquina es el tema de su investigación, la cual es vista como un todo (soft y hard) y se pretende que esta como tal alcance niveles de inteligencia, posiblemente no alcanzados por el hombre, cada vez más avanzados. Y se especula sobre la posibilidad de que la máquina sustituya al hombre, dada las posibilidades ilimitadas de la misma.

Las mayores aportaciones al campo de la IA se debe a este grupo en temas tan importantes como: la robótica, las tecnologías del conocimiento, la IA distribuída, máquinas para lisp, etc.

3. Sistemas comerciales:
Se elaboran aplicaciones para resolver problemas que antes eran competencia sólo de los humanos. Son los especialistas de computación que se dedican a abordar a través de algoritmos tareas poco estructuradas con fines prácticos, casi siempre utilizando estructuras de datos complejas.

Se puede ver como rama de la ingeniería dedicada a crear productos comerciales. sobre todo sistemas especializados. Por ejemplo los sistemas expertos (los cuales serán tratados en el tema 3).

Cada enfoque crea una filosofía de trabajo que hace incompatible la comunicación entre cada grupo de investigadores, desde sus "creencias" entre MENTE, MAQUINA Y USUARIO. Incluso hasta la forma de ver la máquina cambió para cada uno.

Ya pasó la época en que la IA se veía como una ciencia mística cargada de amenazas, algunos pensaban que los sistemas expertos sustituirían a los especialistas, y hoy con un enfoque más maduro sin falsas expectativas, recuerden el proyecto japonés de la 5ta. Generación, las técnicas de IA se irán abriendo paso de forma imperceptible, es más, todo indica que la inteligencia se irá ampliando y que de la cooperación entre humanos y sistemas informáticos inteligentes surgirán las bases de las sociedades basadas en el conocimiento.

De ahí que la IA abandone los sistemas autistas (encerrados en si mismo) para dar lugar a sistemas abiertos que comparten información de forma inteligente, a su vez que permite la combinación de diferentes paradigmas de representación del conocimiento como los basados en reglas, los marcos (frames), los guiones. Y surjan nuevos temas de investigación tales como:
- La formalización del sentido común.
‑ El aprendizaje.
‑ La integración de diferentes paradigmas de inteligencia.
‑ El desarrollo de arquitecturas cognoscitivas completas.

Mientras la Inteligencia Artificial se desangra en pugnas internas y en definir que es y que no es Inteligencia Artificial, en la computación convencional el hardware marcha a paso acelerado en la construcción de máquinas cada vez más rápidas, con más memoria y más posibilidades de cálculos simbólicos, que se pronostica alcanzará la creación de máquinas inteligentes a corto plazo sin necesidad de la Inteligencia Artificial.

lunes, 22 de enero de 2007

Inteligencia artificial: actividades y aplicaciones

En sus años de consolidación como ciencia la IA se dedicó a aquellos problemas que estaban relacionados con la inteligencia y abordo temas tales como la solución de problemas, la demostración de teoremas y los juegos. Conforme las investigaciones de IA progresaron, aparecieron nuevas áreas, tales como la percepción (visión y habla) comprensión del lenguaje natural y el aprendizaje automático.
La percepción del mundo que nos rodea es un elemento crucial para nuestra supervivencia. Dichas tareas son difíciles ya que incluyen señales analógicas (previas a las digitales); estas señales suelen contener bastante ruido, aunque normalmente se percibe a la vez una gran cantidad de objetos (algunos de los cuales pueden estar parcialmente tapados por otros).

La habilidad de utilizar el lenguaje para comunicar gran variedad de ideas es quizá el aspecto más importante que separa a los humanos del resto de los animales. La comprensión del lenguaje hablado es un problema de percepción difícil de resolver por las razones ya explicadas. Es posible, sin embargo, restringir el problema al lenguaje escrito. Este problema, normalmente denominado comprensión del lenguaje natural, es aún extremadamente difícil. Para poder comprender frases sobre un cierto tema, es necesario no sólo poseer un conocimiento amplio sobre el propio lenguaje (vocabulario y gramática), sino también manejar el suficiente conocimiento sobre dicho tema para reconocer las suposiciones no expresadas en un texto.

Además de estas tareas de la vida diaria, mucha gente puede también realizar tareas más especializadas en las cuales es necesaria una cuidadosa adquisición de experiencia. Son tareas como el diseño en ingeniería, los descubrimientos científicos, los diagnósticos médicos y la planificación financiera. Los programas que pueden resolver problemas sobre dominios también están bajo la tutela de la IA.

Otro campo importante donde la IA ha tenido éxito es en la simulación de las formas de trabajar, de abordar y de resolver los problemas en aquellos ramas de la actividad humana donde la experiencia y la experticidad juegan un papel predominante, dando lugar a los denominados Sistemas Expertos.







BREVE HISTORIA DE LA INTELIGENCIA ARTIFICIAL

La historia de la Inteligencia Artificial podemos enmarcarla en tres grandes etapas:

‑ Años 50‑70: Era Romántica
‑ Años 70‑90: Era Pragmática.
‑ Años 90‑actualidad: Era Realista.

Era Romántica.

Esta época estuvo dominada por los métodos heurísticos, se pensaba que el hombre resolvía todos los problemas por medio de ellos, a la vez que la tendencia, podemos decir filosófica, era la de una IA fuerte, mientras se iniciaba la revolución de la informática y daba paso a que los centros de investigación estuvieran dotados de potentes computadoras.

Con la heurística se pretendía resolver aquellos problemas poco estructurados en los que no existía una secuencia de pasos que nos llevara desde un estado inicial a uno final. Estos problemas (heurísticos) requerían criterios de selección que permitieran escoger uno de los posibles caminos que conducen a la solución. También se elaboraron programas para juegos que van desde los tan complejos como el ajedrez, pasando por el de damas, hasta los más sencillos como el tic tac toe. Este último, dada la velocidad actual de las computadoras es posible resolverlo a través de una exploración exhaustiva. Un caso interesante fue el programa de jugar damas que llegó a derrotar al campeón de esos tableros.
Fig.1. Para encontrar la solución (objetivo) de alguna tarea las acciones posibles del hombre se representan en forma de laberinto.

Múltiples progresos se desarrollaron durante esos años y fueron delineados los campos fundamentales que conformarían la nueva rama de la Informática (ver tabla 1).

El apoyo recibido se contó en el orden de millones de dólares con el objetivo de desarrollar y construir máquinas inteligentes. Por ejemplo, en 1963, el Gobierno de Estados Unidos destinó 2,2 millones al MIT para ser utilizados en el desarrollo de investigaciones en la Inteligencia Artificial.

El desarrollo de lenguajes de y para la IA entusiasmó a investigadores y empresas a la vez que se comenzó la construcción de estaciones de trabajo especializadas en IA. A mediados de los años 70 se desarrolló en el Laboratorio de IA del MIT una de estas máquinas dirigida a apoyar y facilitar las investigaciones. En ellas el lenguaje de máquina es el LISP. Varios sistemas comerciales fueron elaborados por otras empresas.

En esta época se magnificaron las potencialidades de las investigaciones y alcances de la Inteligencia Artificial, los innegables avances, el rápido crecimiento de las diferentes ramas que la integran y el avance tecnológico conllevaron a que los investigadores se erigieran en 'profetas', y al interpretar los indiscutibles logros de esta nueva ciencia pronosticaran el inminente desarrollo de sistemas INTELIGENTES, capaces de sustituir al hombre no sólo en tareas burdas y repetitivas, sino en el campo del pensamiento, el razonamiento y la creación. Varios de ellos predijeron desde mediados de siglo que a finales del mismo ya existirían máquinas 'inteligentes'.






Era Pragmática

Dadas las falsas expectativas del enfoque heurístico, que pretendía hallar un algoritmo capaz de resolver todos los problemas, y su agotamiento como paradigma de la IA, los investigadores comienzan a formularse una nueva metodología basada en los conocimientos, porque en realidad, el hombre resuelve los problemas debido a que aplica su saber. Este nuevo enfoque, en lugar de partir de lo general a lo particular, se debía tratar de resolver los problemas particulares, utilizando conocimientos.

Marcada por MYCIN y desarrollada en la Universidad de Stanford, comienza la década de los Sistemas Expertos orientados al diagnostico de enfermedades de la sangre, primer método que introduce el razonamiento con incertidumbre, permite comenzar la etapa de formalización de estos sistemas y conduce al desarrollo de herramientas de estructuras generalizadas o Shells ('concha') y por PROSPECTOR, dirigido a la evaluación de prospecciones geológicas e identificación de yacimientos minerales, el cual impactó por contradecir a los expertos y señalar una zona rica en molibdeno valorada en millones de dólares.

Si anteriormente la IA solo se difundía dentro de los laboratorios, con los SE, irrumpe en el mercado y da lugar a una explosión de aplicaciones en casi todos los campos del saber. Este hecho recibió el impacto directo de la segunda revolución de la informática: las computadoras personales (PC), que fue lo que en fin de cuentas permitió, que los SE se difundieran masivamente.

Debido a su matiz comercial, los SE no fueron muy bien acogidos por los investigadores puros, pues estos sistemas eran considerados como hijos bastardos de la Inteligencia Artificial. No obstante muchos científicos abandonaron sus laboratorios para ir a desarrollar SE, y dar así origen a lo que muchos llamaron la IA aplicada con objetivos muy definidos: elaborar sistemas que fueran capaces de solucionar problemas propios de un experto para un campo específico.

Todo ello trajo como consecuencia que los SE invadieran el espacio de la informática y numerosas empresas de alta tecnología, mientras los gobiernos de EE.UU. y Japón comenzaron a invertir millonarias sumas en las investigaciones de la IA y miles de aplicaciones se realizaron y actualmente se utilizan.
En la década de los 80, se pensaba que la humanidad se encontraba "...ante un reto de imprevisibles consecuencias", pues se avecinaban cambios que trastocarían muchos paradigmas que rigen el mundo. Los investigadores de la Inteligencia Artificial se hacían preguntas como:

· ¿Qué será de los matemáticos cuando los Sistemas Expertos sean capaces de deducir todos los teoremas que se deriven de una cierta axiomática?
· ¿Qué harán los abogados cuando haya una herramienta capaz de preguntar a sus clientes y de darles consejo sin posibilidad de error y utilizando toda la legislación y jurisprudencia?
· ¿Qué será de los médicos cuando existan bases del saber capaces de almacenar los conocimientos y la experiencia de cientos de especialistas en una materia?.

En octubre de 1981 se sentaron las bases para el desarrollo de las computadoras de 5ta generación en una conferencia Internacional en Tokio, Japón. En este proyecto se adoptó el lenguaje PROLOG como lenguaje fundamental que seria soportado por el hardware a construir.

Era Realista.

Los avances fueron lentos y en muchos casos insuficientes Los ‘exitosos’ resultados registrados en el desarrollo de los Sistemas Expertos en los años 70-80, que llenaron de ilusión a científicos e investigadores, y que condujeron a la proyección de sistemas de 5ta generación, pronto demostraron sus limitaciones.

Debido a la complejidad de los problemas del mundo real, estos no pueden capturarse en modelos reducidos y por tanto estos problemas deben plantearse directamente. Las características de este tipo de problemas suelen ser los siguientes:
‑ Interacción de conocimientos de diversos dominios.
‑ Robustez e imprecisión de las inferencias.
‑ Poca formalización del dominio.
‑ Necesidad de interactuar directamente en él.
‑ Necesidad de aprender en él

Ya a mediados de los años 80 el paradigma de los sistemas basados en conocimiento comienza a desmoronarse, y la gran esperanza que representaron en el orden industrial, resultó exagerada. El proyecto de quinta generación japonés, que soñó con revolucionar la industria informática, no pasó de ser sólo eso, un sueño.

viernes, 19 de enero de 2007

La Cibernética y el nacimiento de la inteligencia artificial

En nuestros dias la Cibernética no debe verse ni como una ciencia, ni como una disciplina; sino como un movimiento de ideas, que trató de romper con la estrechez de conocimientos propios de cada disciplina. El movimiento cibernético permitió que científicos de ramas muy diferentes se agruparan en colectivos de investigación y por primera vez, matemáticos, fisiólogos y especialistas en electrónica se integraran en equipos multidisciplinarios. Su creador Norbert Wiener después de estar años trabajando en las teorías matemáticas y de agregar alguna fórmulas más al gran aparato matemático, comenzó a trabajar en cuestiones técnicas como el control de los disparos de la artillería antiaérea y la transmisión más eficiente de mensajes codificados a través de sistemas de comunicaciones. Escribió un libro sobre cibernética y el control en los animales y las máquinas que se convirtió en un éxito. Las condiciones estaban dadas para una nueva revolución dentro de la ciencia.

La cibernética se basa en el estudio de las máquinas (objetos artificiales) y su aplicación, lo que promovió una nueva revolución científica sobre la base de la interrelación de los humanos con las máquinas a un ritmo tecnológico de crecimiento jamás visto y de carácter impredecible. Este ritmo ya se hace sentir y podemos afirmar, por ejemplo, que un hombre del siglo XVI pudiese muy bien, haber vivido sin mucho sobresalto en el siglo XVII en cambio uno del siglo XIX tendría grandes problemas para adaptarse al XX y todo indica que esta aceleración seguirá aumentando, lo cual hará que una persona en su vejez tenga que vivir en un mundo totalmente diferente al de su infancia.

Con la cibernética el concepto de máquina ha ido cambiando a lo largo de los años. Luego de aquellas primeras máquinas mecánicas donde se pretendía reemplazar completa o parcialmente el trabajo físico del hombre y de los animales, han seguido otras, cuyo fin, es la mecanización del trabajo intelectual. Hoy las máquinas realizan funciones que antes se consideraban propias del intelecto humano. Pero quizás el aporte más importante de la cibernética fue fundamentarse sobre las analogías, de ahí su característica de ciencia exógena, la cual está dada por la interrelación con otras ramas del conocimiento y su asimilación interna, pero sobre todo por la propuesta de teorías generales que expliquen fenómenos propios de las otras ciencias. Por ejemplo, la cibernética ha preferido basarse en la teoría de los modelos, que hace más hincapié en la representación funcional de los organismos que en su estructura ‑en el sentido vertical o jerárquico‑. Esto, unido a la búsqueda de analogías entre los fenómenos y no a la reducción de uno en otro la llevó a convertirse en una ideología científica para la comprensión del mundo.




Otro de los aportes de la cibernética, es la utilización del aparato matemático, que hasta ese momento era de uso casi exclusivo de la física y como la cibernética a su vez era una disciplina común a varios sectores de investigación, trajo como consecuencia que ramas como la psicología, la sociología y la biología, pudieran de alguna manera formalizar sus teorías, y aún fue más lejos, ya que les proporcionó métodos de experimentación mediante la creación de máquinas que permitieran estudiar conductas, reacciones, reflejos, aprendizaje, etc.

Cuando los cibernéticos intentaban modelar la estructura de un objeto, más que la estructura lo que tenían en cuenta era la reproducción de su funcionamiento sobre otra estructura y se aspiraba a que ese modelo u objeto artificial exhibiera una conducta similar a la del original. Digo similar porque en realidad la conducta mostrada por los modelos siempre ha estado supeditada a la interpretación del investigador. Estos intentos de modelación llevaron a los científicos a la construcción de máquinas con conducta como las tortugas de Grey Walter y los zorros de Albert Ducrocq, que no eran más que pequeñas máquinas dotadas de movimiento y que se orientaban por la luz, otras se orientaban por el sonido o poseían alguna forma de radar. Pero lo más interesante era la interpretación que se le daba al comportamiento de estos ciberanimalitos. Para Grey Walter las tortugas podían pasar de un comportamiento flemático a otro irascible. Para Ducrocq, sus zorros eran capaces de manifestar sentimientos de afecto entre si. Sé que esto a los racionalistas les puede parecer infantil, pero ¿no es interesante ‑por no decir válido‑ que el ser humano siga recurriendo a su fantasía para interpretar los fenómenos y que mantenga viva, en estos tiempos de determinismo científico, su capacidad de "sorprenderse"?.



Hoy nadie habla de las experiencias emocionales con tortugas, zorros, ratones... Las ideas eran demasiado simples: cualquier aparato podía mostrar alguna forma de conducta humana. Ese era el gran sueño de los cibernéticos: reproducir la vida en todas sus manifestaciones y no sólo la inteligencia, como pretende en estos tiempos la Inteligencia Artificial. Y es que la Cibernética no basó su investigación sobre la base de que la máquina sustituiría al hombre, ya que siempre vio a ambos como sistemas con analogías funcionales, que a la vez que tenían grandes diferencias ‑por ser organismos con estructura y organización propias‑ poseian a su vez, muchas similitudes; De ahi que los ciberneticos le dieran, siempre, mayor importancia a la influencia de la estructura sobre la mente, pero ambos vistos como un sistema capaz de funcionar como un todo.

Vivimos en un mundo de crisis tanto social como espiritual, y el hombre desesperado vuelve sus ojos a la ciencia y espera de ella la solución a los grandes problemas que lo agobian y ve en la ideologia cibernética un nuevo enfoque. Veamos algunos de los problemas que se están retomando: El sistema educativo, la salud (las prótesis), la muerte, la creatividad, la producción de bienes de consumo, el desarrollo, la comprensión de la mente humana, la felicidad, la evolución (convergencia hombres y máquinas), nuevas formas de organización social (posthumanidad), mejoramiento humano (conexión hombre‑máquinas)





Es por eso que la Cibernética al pasar de los años se ha ido transformando en una de las ideologías de la ciencias más influyentes, y al igual que la Física y la Biología, engendra grandes promesas y para muchos se convierte en la nueva salvadora del mundo, gracias a que ha aportado una de las metáforas más ricas y poderosas: la llamada metáfora computacional o cibernética, que ofrece una nueva óptica de la sociedad y abre las puertas hacia una nueva era post-industrial. Hoy en día son muchos los que piensan que la máquina sustituirá al hombre, o los que creen que la mente humana se puede simular a través de una computadora, o los que sueñan con crear una vida artificial.


Nacimiento de la Inteligencia Artificial:

La Inteligencia Artificial (IA) nace en un congreso celebrado en 1956, cuando un grupo de científicos reunidos en el Colegio de Dartmouth, convocados por el investigador John McCarthy del Instituto Tecnológico de Massachusetts (MIT), discutieron acerca del potencial de la computadora para simular la inteligencia humana y sentaron las bases de trabajo para las investigaciones en la IA. En ella participaron cuatro de los que mas tarde influirían grandemente en el desarrollo de la IA, McCarthy, Marvin Minsky, Allen Newell y Herbert Simon.

La IA surge como una reacción ante la Cibernética. Los pioneros del nuevo enfoque investigativo, se proponen la creación de una ciencia en si misma, sustentada sobre sus propias leyes, y se plantearon como objetivo principal el desarrollo de programas por computadoras capaces de exhibir una conducta inteligente. Muchos investigadores estaban convencidos de que los complicados procesos que componen la inteligencia serian desentrañados, que podrían elaborarse modelos matemáticos que los representaran y las computadoras podrían emular dichos procesos eficazmente.

La IA continuó con los intentos cibernéticos de formalizar sus teorías y con la creación de un aparato matemático propio. A nivel experimental se propuso la utilización de las computadoras como laboratorio donde poder comprobar la eficacia de sus hipótesis. Pero en su afán de convertirse en una ciencia endógena, no dependiente de leyes externas, abandonó la analogía como método de investigación y tuvo inexorablemente que recurrir al reduccionismo que en su versión fuerte fue el intento de reproducir la mente humana en una computadora.