Libro InteligenciaArtificail

94
ING. HERNAN PATRICIO VARGAS NOLIVOS UTM ENFOQUE PRACTICO DE LA INTELIGENCIA ARTIFICIAL Y ENFOQUE PRACTICO DE LA INTELIGENCIA ARTIFICIAL Y LOS SISTEMAS EXPERTOS LOS SISTEMAS EXPERTOS I. I. INTRODUCCIÓN INTRODUCCIÓN Los sistemas basados en conocimiento (SBC) son una expresión de la Inteligencia Artificial (IA). Su forma de analizar los problemas para dar soluciones a través de la computadora, difiere mucho de los sistemas informáticos convencionales, debido a un factor muy importante: “Inteligencia”. La IA es una rama de la Ciencia de la Computación que se encarga de estudiar las formas de modelar el comportamiento humano en una computadora. Se encarga de hacer de las computadoras; herramientas que simulen la inteligencia humana. La IA, en su dedicación a crear modelos de conocimientos que sean absorbidos por las computadoras; no solo ha ayudado a la inteligencia de las computadoras; sino también, ha hecho significativos aportes al estudio de la inteligencia humana. Una de las aplicaciones fundamentales de la IA está en los Sistemas Expertos, donde coinciden el conocimiento acumulado por los hombres y las técnicas de IA en un sistema capaz de enseñar y aprender. Consideraciones Generales Consideraciones Generales INTELIGENCIA.- Es la capacidad que tienen los seres humanos de adquirir el conocimiento y aplicarlo, es la capacidad de pensar y razonar. INTELIGENCIA ARTIFICIAL.- En 1956 en el Congreso de Dartmouth (E.U.) se plantea que: “La Inteligencia Artificial son los métodos, técnicas e intentos que pretenden simular en la computadora el intelecto humano”.

Transcript of Libro InteligenciaArtificail

Page 1: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM

ENFOQUE PRACTICO DE LA INTELIGENCIAENFOQUE PRACTICO DE LA INTELIGENCIA ARTIFICIAL Y LOS SISTEMAS EXPERTOSARTIFICIAL Y LOS SISTEMAS EXPERTOS

I.I. INTRODUCCIÓNINTRODUCCIÓN

Los sistemas basados en conocimiento (SBC) son una expresión de la Inteligencia Artificial (IA). Su forma de analizar los problemas para dar soluciones a través de la computadora, difiere mucho de los sistemas informáticos convencionales, debido a un factor muy importante: “Inteligencia”.

La IA es una rama de la Ciencia de la Computación que se encarga de estudiar las formas de modelar el comportamiento humano en una computadora. Se encarga de hacer de las computadoras; herramientas que simulen la inteligencia humana.

La IA, en su dedicación a crear modelos de conocimientos que sean absorbidos por las computadoras; no solo ha ayudado a la inteligencia de las computadoras; sino también, ha hecho significativos aportes al estudio de la inteligencia humana.

Una de las aplicaciones fundamentales de la IA está en los Sistemas Expertos, donde coinciden el conocimiento acumulado por los hombres y las técnicas de IA en un sistema capaz de enseñar y aprender.

Consideraciones GeneralesConsideraciones Generales

INTELIGENCIA.-

Es la capacidad que tienen los seres humanos de adquirir el conocimiento y aplicarlo, es la capacidad de pensar y razonar.

INTELIGENCIA ARTIFICIAL.-

En 1956 en el Congreso de Dartmouth (E.U.) se plantea que:

“La Inteligencia Artificial son los métodos, técnicas e intentos que pretenden simular en la computadora el intelecto humano”.

Elaine Rich: “... Es el estudio de como hacer que las computadoras hagan cosas para las que, hasta el momento las personas son mejores...”

Patrick Winston: “... Es el estudio de las computadoras que permiten percibir, razonar y actuar...”

Se puede resumir indicando que La Inteligencia Artificial es una rama de la ciencia de la computación que permite crear programas y equipamiento técnico para imitar el comportamiento humano

Page 2: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM

Objetivos de la IAObjetivos de la IA

INGENIERIL

Resolver problemas reales aportando los conceptos de cómo representar el conocimiento y utilizarlo. Hacer que las computadoras sean más inteligentes creando programas que simulan algunas funciones de la mente humana.

CIENTIFICO

Ayudar al estudio de la inteligencia aportando ideas acerca de las formas de representación del conocimiento y su uso (Ciencia del Conocimiento).

Breve reseña histórica de la Inteligencia ArtificialBreve reseña histórica de la Inteligencia Artificial

En 1956 se utiliza por primera vez el término de I.A para expresar las potencialidades de la computadora (Conferencia de Dartmouth).

De 1955 a 1960 se demuestra la posibilidad de programar aperturas de ajedrez.

En 1957 John McCarthy crea el lenguaje LISP que es un lenguaje propio de I.A.

En 1965 a 1969 se lleva a cabo el proyecto RENDRAL que es el primer Sistema Experto, el cual determinaba la estructura molecular a partir de la densidad espectral y ensayos magnéticos moleculares.

En 1966 se crea el sistema MACSYMA (segundo Sistema Experto) que ayudaba a resolver problemas matemáticos, algebraicos, de integrales vectoriales, de inecuaciones, de series.

De 1967 a 1969 se exponen las posibilidades de los sistemas expertos en los congresos de I.A. de los EEUU, en el cual se expone el proyecto MYCIN que determina el ente probable de una infección sanguínea y prescribe el tratamiento.

De 1970 a 1974 Alain Colmeraver, crea el lenguaje PROLOG (Programación Lógica).

En 1972 se crea el sistema SHRDLU (Sistema de Compresión de Lenguaje Natural Interactivo para mover bloques con un brazo mecánico).

En 1975 Se crea el sistema PARRY (Simulación de un Paranoico).

En 1975 a 1980 se crea el sistema ELISA (Simulación de un Psicoterapeuta).

A partir de los 90’ comienza a divulgarse el desarrollo de las técnicas de Realidad Virtual como nueva forma de comunicación hombre - máquina.

Page 3: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMCONOCIMIENTOCONOCIMIENTO

La parte fundamental de cualquier sistema que utiliza Inteligencia Artificial es el Conocimiento.

Los sistemas con Inteligencia Artificial adquieren el conocimiento a partir de la Educación o de la Experiencia. La computadora obtiene el conocimiento, de forma general, a partir de uno o varios expertos humanos en determinada rama del saber.

El conocimiento está formado por hechos, conceptos, teorías, relaciones y procedimientos. Es información que ha sido organizada y analizada para ser formalizada para su utilización en la solución de problemas y en la toma de decisiones.

El proceso de obtención del conocimiento para ser utilizado en sistemas inteligentes, es conocido como ciencia del conocimiento, es un proceso sumamente complicado y de gran repercusión en el resultado final del sistema.

El conocimiento obtenido, queda expresado formalmente en Modelos de Representación del Conocimiento. Cada modelo tiene un uso específico según el tipo de problema que se quiere representar.

PARTES DE UN SISTEMA DE INTELIGENCIA ARTIFICIALPARTES DE UN SISTEMA DE INTELIGENCIA ARTIFICIAL

La Base de Conocimiento está formada por Hechos y Relaciones.

La Máquina de Inferencias tiene los procedimientos y reglas para trabajar con la base del conocimiento.

A partir de la creación de la Base de Conocimiento, la computadora está en condiciones de utilizar las técnicas de Inteligencia Artificial para pensar y razonar.

LA INTELIGENCIA ARTIFICIAL LA INTELIGENCIA ARTIFICIAL vsvs. LA COMPUTACION TRADICIONAL. LA COMPUTACION TRADICIONAL

En un programa convencional se le dice a la computadora cómo resolver el problema.

En un programa de Inteligencia Artificial se le dice a la computadora qué problema resolver.

Page 4: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM Los programas convencionales están basados en algoritmos definidos paso a

paso.

Los programas de a Inteligencia Artificial están basados en la representación y manipulación de símbolos. Un símbolo es una letra, palabra o número utilizado para representar objetos, procesos y sus relaciones.

Métodos de razonamiento artificialMétodos de razonamiento artificial

El razonamiento en general se refiere a diferentes clases de actividades, entre ellas extraer conclusiones desde un conjunto de hechos, diagnosticar posibles causas para alguna situación, analizar y organizar datos, etc. En el desarrollo de un proceso de razonamiento particular intervienen al menos tres elementos relacionados:

el conocimiento sobre el dominio de aplicación,

un método para procesar este conocimiento, y

ciertas observaciones vinculadas con el objeto de razonamiento.

En los SBC se utilizan de forma general dos tipos de razonamientos

– Razonamiento funcional: Permite sintetizar los problemas a partir de la configuración , dado un conjunto de componentes cada uno con sus propias características funcionales; de un producto nuevo, que tiene determinadas características funcionales derivadas de los componentes que lo conforman.

– Razonamiento con incertidumbre: Este razonamiento denota un proceso de razonamiento en el que alguno de estos elementos no es totalmente preciso, o sea, el razonamiento se realiza sobre la base de una información parcial y por lo tanto los resultados de este son sugeridos pero no asegurados por las premisas del mismo.

Existen otras formas más avanzadas de razonamiento que serán abordadas en el segundo módulo de IA

Test de TurinTest de Turin

Identificar cuán inteligente es un programa de IA, es una meta muy complicada, de hecho; determinar cuán inteligente es una persona, resulta una tarea muy

Page 5: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMdifícil debido a que existen demasiados parámetros subjetivos y por si fuera poco, el cerebro humano sigue siendo una gran interrogación. A lo largo de los estudios relacionados con la IA, se han desarrollados algunos test o pruebas para determinar si un programa o una computadora es inteligente o no. Entre ellos se encuentra el test de Turin que se puede describir de la siguiente manera:

– Una computadora conecta a un operador y a una máquina con Inteligencia Artificial.

– En la computadora hay un operador emitiendo preguntas constantemente sin saber de qué maquina proviene la respuesta.

– Si al final del test el operador piensa que las respuestas que obtuvo venían de un ser humano, se dice entonces que la máquina con Inteligencia Artificial es inteligente.

Todos los test tienen una efectividad limitada ya que es muy difícil calificar o cualificar la inteligencia.

Campos de Aplicación de la Inteligencia ArtificialCampos de Aplicación de la Inteligencia Artificial

La aplicación de la IA se analiza desde dos puntos de vista:

TEORICO

– En la Sicología Cognitiva

– Lingüística (simulación del Ser Humano)

– Filosofía

PRACTICO

En el plano práctico, la IA se puede utilizar para la obtención de soluciones de problemas de cualquier tipo :

– Económico.

– Robótica.

– Enseñanza.

– Lenguaje Natural.

– Procesamiento de señales e imágenes.

– Sistemas Expertos.

Page 6: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMVentajas y desventajas de la IAVentajas y desventajas de la IA

Es necesario diferenciar de manera clara lo referente a Inteligencia Artificial y lo que podemos llamar

simulación del ser humano. En términos grosos se puede catalogar de inteligentes a músicos, científicos,

artistas, técnicos e incluso deportistas y artistas. Estas son algunas reflexiones particulares:

Del ser humano se afirma su inteligencia porque posee intuición, inspiración, capacidad de organizar cadenas lógicas de pensamiento, sentimientos, memoria, imaginación o creatividad, razón, conciencia y expresión lingüística.

Consenso de atributos comunes de actividad inteligente: Habilidad para resolver problemas nuevos, lucidez, planificación, facilidad para adquirir nuevos conocimientos, abstracción, adaptación, etc.

La alta inteligencia del ser humano, parece más bien una casualidad en la evolución; ya que hay especies que han sobrevivido 10000 veces más tiempo que el hombre sin apenas cerebro.

La pérdida de facultades, tratadas médicamente, como trastornos del lenguaje y memoria; son una pauta para esclarecer qué es la inteligencia.

“He comprendido que la inteligencia no se mide sólo por la suma de conocimientos, la característica fundamental de un hombre inteligente es su capacidad de comprender y ayudar a los demás …”[E. Evtushenko]

“El conocimiento es un recurso específicamente humano. No se encuentra en los libros, los libros contienen información. Conocimiento es la capacidad humana de aplicar la información a su trabajo o desempeño específicos; eso únicamente lo logra el ser humano con su inteligencia o la habilidad de sus manos”. [Peter Drucker].

Unos pocos heterodoxos opinan que … la imaginación, la intuición y demás facultades superiores relacionadas con la conciencia se explican con la física cuántica. Según Roger Penrose (Universidad de Oxford) la base física de los fenómenos conscientes como el razonamiento o la imaginación están en unas estructuras subcelulares llamadas microtúbulos, pequeños cilindros de 25 nanómetros formados por filamentos de la proteína tubulina y rellenas de agua. Se percató que los microtúbulos conducen muy bien las vibraciones físicas a lo largo de sí y que son capaces de transmitir la misma onda al de al lado y así sucesivamente, de modo que toda una red de microtúbulos puede vibrar en sincronía y portarse como una red informática. Hameroff piensa que la red de microtúbulos de cada neurona es en realidad un diminuto sistema computacional; lo que significa que el cerebro aloja en su interior unos 100.000 ordenadores, tantos como células, interconectados por 100 billones de conexiones, conocidas como sinapsis.

Page 7: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMLa Inteligencia Artificial tiene innegables ventajas que ayudarán al ser humano en el

desarrollo socioeconómico, cintífico - técnico, cultural, etc. Son sus desventajas, las que deben estudiarse con cuidado para preveer las consecuencias negativas que puede tener una irresponsable aplicación de la IA, sin asumirla como parte del desarrollo gradual del intelecto humano y el desarrollo científico- técnico de la sociedad.

En lo fundamental se puede analizar las desventajas a través de los factores:

Trabajo

Al igual que todo avance tecnológico, la IA promoverá que los elementos que no adquirieron habilidades para el nuevo esquema social, sucumban en la búsqueda laboral, los fenómenos cíclicos de desocupación, recesión, depresión serán más notorios que en épocas actuales. Más aún; la tendencia podría ser una creciente merma de la participación humana; los efectos socioeconómicos básicos son fáciles de predecir: desocupación, falta de recursos financieros, acumulación de bienes y servicio, etc.

VIDA

El perfeccionar sistemas, por ejemplo en medicina, que permitan restaurar, reponer órganos atrofiados puede dejar de ser una quimera, un continuo alargamiento de la supervivencia humana suele traer aparejados problemas de hiperpoblación, restricciones de natalidad… A más de las secuelas socio económico.

LIBERTAD

Como un concepto tradicional de poder realizar diversas actividades a criterio propio deberán ser revisadas, a fin de procurar que un esquema de equilibrio “matemático” monitoreado por ordenadores o sistemas inteligentes no se vea alterado. Si bien el humano es un ente moldeable que se asimila a diversos espectros de vivencia, siempre quedarán rezagos de inconformidad, que también tienden de manera cíclica a ser de carácter general.

CREATIVIDAD

¿Quedarán espacios suficientes para valorar la creatividad humana?.

CRITERIOS PARA EL EXITOCRITERIOS PARA EL EXITO

CRITERIOS PARA EL EXITO EN UNA APLICACION DE INTELIGENCIA ARTIFICIAL

.Debe existir una tarea bien definida.

.Debe existir un procedimiento ya instrumentado que ejecute la tarea.

.Debe existir un conjunto de regularidades y restricciones identificables a partir de las cuales el procedimiento instrumentado se pueda ejecutar.

PREGUNTAS ADICIONALES PARA EL EXITO

– .¿Resuelve la aplicación un problema real?.

Page 8: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM– .¿Crea la aplicación una nueva oportunidad?.

II.II. Lenguajes de programación de la I.A.Lenguajes de programación de la I.A.

El lenguaje LISP (LISt Processing) se considera el lenguaje declarativo más antiguo, fue diseñado por John McCarthy en el Massachusetts Institute of Technology (MIT) alrededor del año 1960. El lenguaje LISP en su forma pura es netamente un lenguaje aplicativo, la única estructura de control es la aplicación de funciones a argumentos; y un programa LISP no es más que una expresión construida a partir de la aplicación de funciones.

El LISP fue el primer lenguaje donde el programa se consideró un objeto, en él se trata el proceso de evaluar funciones como un modelo computacional, y la estructura de datos lista como un medio para representar programas expresados como funciones; no hace diferenciación entre dato e instruccion. Esto es especialmente significativo debido a que los programas pueden ser generados y modificados dinámicamente. Es oportuno señalar que este lenguaje ha sido frecuentemente mal calificado como lenguaje para el procesamiento de listas, cuando en realidad la lista es la forma utilizada en el lenguaje para representar y procesar las instrucciones y los datos.

Uso actual del lenguaje LISPUso actual del lenguaje LISP

El LISP es el segundo entre los lenguajes de programación más viejos y con un empleo extenso actualmente, el primero es el lenguaje FORTRAN.

Este lenguaje es usado en la mayoría de los casos como una herramienta de investigación. Es utilizado como una herramienta para la implementación de sistemas en Inteligencia Artificial (IA), para sistemas de manipulación de fórmulas, análisis y generación de programas, prueba de teoremas, etc. El lenguaje LISP ha constituido un medio para desarrollar e implementar nuevos lenguajes que son orientados a problemas particulares; esta posibilidad se basa en la flexibilidad lingüistica del mismo para tomar un concepto específico y representarlo en él, produciendo un nuevo lenguaje dirigido a una aplicación (como son los casos de los lenguajes Planner, Conniver y QA4).

Para algunos especialistas la IA surgió cuando McCarthy y el grupo de IA del MIT crearon el lenguaje LISP, siendo considerado el primer lenguaje para IA. Esencialmente hasta los años 80 el lenguaje LISP fue el usado como lenguaje de implementación para las tareas de IA en E.U., mientras que el Prolog lo fue en Europa. Existe el criterio de que el interes por la IA ha crecido simbióticamente con el crecimiento de la capacidad de memoria de las microcomputadoras y la disponibilidad de implementaciones de LISP que lo hacen suficientemente poderoso para resolver problemas reales. Al inicio el LISP prácticamente sólo atrajo la atención de los laboratorios de IA, actualmente es un gran negocio tanto la comercialización de sus traductores como las aplicaciones de IA basadas en él.

Page 9: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM Otro elemento interesante sobre el LISP y que habla de sus posibilidades de

empleo, fue la creación en 1979 en el MIT de una pastilla con las funciones básicas de este lenguaje por hardware, lo cual constituyó la base para la construcción de una línea específica de computadoras: las máquinas Lisp.

Lenguajes de Programación: PROLOGLenguajes de Programación: PROLOG

El lenguaje Prolog (acronismo de PROgramación LÓGica) se creó en la década del 70 por Alain Colmerouer y sus colaboradores de la Facultad de Ciencias en Marsella, Francia.

El objetivo original de los creadores fue integrar el principio de resolución de Robinson en un lenguaje de programación. Este principio brinda una regla de inferencia para la prueba mecánica de teoremas en lugar de las múltiples reglas que los lógicos proponían.

Esta idea en el diseño del lenguaje le da la capacidad de hacer que una computadora simule el proceso del pensamiento haciendo deducciones a partir de información dada en forma lógica.

La idea inicial del diseño se basó en una teoría del lenguaje y la Lógica Matemática, pero la estrecha relación con la lógica se convertía en algo pesado cuando se implementaba Prolog sobre una computadora, debido a esto se pusieron más restricciones prácticas y el resultado final fue un lenguaje sin trabas, independiente de detalles que sólo se necesitan en lógica.

Prolog utiliza árboles como su estructura básica. En un programa Prolog cada árbol es un hecho o un átomo de conocimiento y la naturaleza bidimensional de los árboles contribuye a la potencia de expresión del lenguaje.

Prolog es un lenguaje de Programación Lógica en el sentido que sus sentencias se interpretan como sentencias lógicas.

Definición sintáctica simple

Un programa Prolog es un conjunto de cláusulas que declaran, en forma lógica, el conocimiento sobre un determinado problema. Estas cláusulas se definen como hechos (elementos que se dan por verdaderos) y reglas que expresan las condiciones que se tienen que cumplir para probar un determinado objetivo. Las reglas son una generalización de los hechos y expresan las relaciones entre ellos.

El lenguaje es especialmente útil para resolver problemas donde se trabaja con objetos y relaciones entre ellos. Como ejemplo de lo que se esta discutiendo se presenta en la figura un árbol de relación entre algunas de las personas que trabajan en una facultad.

Page 10: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM

En este árbol se establecen relaciones de subordinación, el nivel 2 deja claro quienes son los jefes de departamentos.

Se pueden sacar varias relaciones del árbol presentado, por ejemplo el hecho, "Mateo está subordinado a Marilyn" se expresa como:

subordinado(mateo, marilyn).

Los nombres se escriben en minúsculas por un problema sintáctico.

En este caso subordinado es el nombre (o functor) de la relación (también se conoce como el predicado) y marilyn y mateo son sus argumentos.

Un programa Prolog está compuesto por un conjunto de cláusulas. Entonces para establecer las relaciones de subordinación descritas en el árbol, se escribirá el conjunto de cláusulas que siguen, las cuales expresan las relaciones establecidas en el árbol precedente.

subordinado(marilyn, bello).

subordinado(miriam ,bello).

subordinado(mateo, marilyn).

subordinado(daniel ,marilyn).

subordinado(mercedes, miriam).

subordinado(horta ,miriam).

Una vez escrito un programa como este pueden realizarse varias preguntas acerca de la relación subordinado.

Tomando el signo de interrogación (?-) como el prompt del interprete Prolog, se puede comenzar a interrogar al lenguaje.

.- ¿Es Mateo subordinado de Marilyn ?

?-subordinado(mateo ,marilyn).

yes

?-

Page 11: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM1. En este caso la pregunta con la relación subordinado se hace con sus argumentos

acotados (tienen valores). El lenguaje hace una búsqueda en su memoria de trabajo y encuentra la relación buscada, debe observarse que el orden en esta relación es totalmente aleatorio pero una vez establecido se tiene que respetar, o sea la cláusula subordinado establece en este caso que mateo es subordinado de marilyn y no lo contrario.

2. ¿ Miriam tiene algún subordinado que se llame Antonio?

?-subordinado(antonio, miriam).

no

?-

Debido a que no existe nada en el programa que establezca una relación entre miriam y antonio se recibe una respuesta negativa, en todos los casos se devuelve el prompt para avisar que Prolog esta listo para recibir una nueva pregunta.

3. ¿ Marilyn es subordinado de Daniel?

?-subordinado(marilyn ,daniel).

no

?

En este caso la respuesta vuelve a ser negativa ya que lo que se establece en el programa es lo contrario.

4. ¿Dígame alguien que sea subordinado de Marilyn?

?-subordinado(X, marilyn).

X <- mateo

?-

En este caso el primer argumento de subordinado va acotado por lo que la búsqueda se realiza sobre aquellas cláusulas que tengan su primer argumento acotado con el valor bello, el segundo argumento va sin acotar, entonces la variable X tomara valor de acuerdo a la cláusula en que se realice la búsqueda, cuando esta sea posible (se analizaran los casos mas adelante).

5. Si se deseara obtener todos los subordinados de Marilyn, se hará la misma pregunta anterior, pero para cada respuesta se pedirá una solución alternativa utilizando el operador or que se escribe con punto y coma(;).

?-subordinado(X, marilyn).

X <- mateo;

X <- daniel;

Page 12: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMno

En este caso el usuario después de cada respuesta tecleo ";" entonces Prolog interpreta esto como "..búscame otra solución..", para resolver ese problema a la variable acotada X se le quita el valor que tenía y se hace otra búsqueda pero ahora sin tomar en cuenta la cláusula utilizada antes.

6. Encontrar X y Y tal que Y es el jefe de X

?-subordinado(X,Y).

X <- bello

Y <- marilyn

7. Si se desean todos los X y Y que satisfacen la relación anterior se puede hacer uso del or.

?-subordinado(X,Y).

X <- bello

Y <- marilyn;

X <- bello

Y <- miriam;

X <- marilyn

Y <- mateo;

X <- marilyn

Y <- daniel;

X <- miriam

Y <- mercedes;

X <- miriam

Y <- horta;

no

?-

Reglas

Anteriormente se vio cómo se pueden expresar en PROLOG las afirmaciones a través de hechos. Un hecho es una afirmación de que algo es verdadero.

“Romeo amó a Julieta”

En PROLOG, como base de conocimientos se escribe:

Page 13: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMamo(romeo, julieta).

A este hecho, se le puede hacer varias preguntas en el modo de preguntas a la base de conocimiento:

¿Amó Romeo a Julieta?

?- amo(romeo,julieta).

Respuesta:

YES

¿Quién amó a Julieta?

?- amo(X,julieta).

Respuesta:

X = romeo

¿A quién amó Romeo?

?- amo(romeo,X).

Respuesta:

X = julieta

Para alternar entre el modo de diseño de la Base de Conocimientos y el modo de Preguntas, se utiliza el comando, Alt+S

El modo de preguntas permite que la máquina de inferencia de PROLOG responda a preguntas hechas a la base de conocimientos. En la base de conocimientos se escriben hechos y reglas.

Etimológicamente la palabra regla proviene del latín regola. Entre las diferentes definiciones de regla se encuentran:

Una regla señala o prescribe la manera de obrar

Es la razón que debe servir de medida y a la que se deben ajustar las acciones que resulten correctas

Norma constante e invariable de las cosas, nacida de la causa primera o de sus propias cualidades y condiciones.

Ley universal que comprende lo sustancial que debe observar algo

Establecimiento de las relaciones existentes entre las diversas variables que intervienen en un fenómeno

En PROLOG, las reglas constituyen una generalización de los hechos aumentando la capacidad de expresión y representación de ideas del lenguaje.

Page 14: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMEjemplo:

Se desea expresar en una base de conocimientos todas las personas a las que estima María. Esto podría representarse mediante hechos de la siguiente forma:

estima(maria,juan).

estima(maria,pedro).

estima(maria,luis).

estima(maria,mateo).

La base de conocimientos podría crecer mucho según la cantidad de personas a las que estima María. Sin embargo, si se sabe que María estima a aquellas personas que son de sexo masculino y le guste bailar, entonces se puede escribir la siguiente regla:

estima(maria,X) :- hombre(X), gusta(X,bailar).

Esta regla se interpreta:

“Estima María a una personal X si y solo si esa persona X es hombre y a esa persona X le gusta bailar”.

El símbolo (:-) se interpreta como si y solo si.

El operador (,) se interpreta como y(AND).

Ejercicio 1:

Escriba la siguiente BC en el modo de diseño de la BC:

hombre(pedro).

hombre(juan).

hombre(jose).

gusta(pedro,bailar).

gusta(juan,comer).

gusta(jose,bailar).

estima(maria,X) :- hombre(X), gusta(X,bailar).

Dé el comando Alt+S para pasar al modo de pregunta y realice las siguientes preguntas:

1. ¿Qué le gusta a Pedro?

?- gusta(pedro,X).

2. ¿A quién le gusta comer?

Page 15: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM?- gusta(X,comer).

3. ¿Estima María a Pedro?

?- estima(maria,pedro).

4. ¿A quién estima María?

?- estima(maria,X).

Para lograr resatisfacer la pregunta hecha, es decir; que la máquina de inferencia proporcione nuevas respuestas a la misma pregunta, se escribe (;) después de cada respuesta.

Ejecute el programa paso a paso con la opción Alt +D, T y observe cómo se accesa la BC.

Elabore nuevas preguntas a su BC.

Ejercicio 2 (Estudio Individual):

Escriba una BC que permita identificar a determinado animal. Utilice los predicados es y tiene.

Predicados para definir los miembros de una familia:

Concepto de hermano:

X es hermano de Y

Si

X es hombre y

Los padres de X son los padres de Y

En PROLOG:

hermano(X,Y):- hombre(X),

padres(Z,X),

padres(Z,Y).

Concepto de primo:

X es primo de Y

Si

Page 16: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMX es hombre y

X es hijo de un hermano del padre de Y

En PROLOG:

primo(X,Y):- hombre(X),

padres(Z,X),

hermano(Z,H),

padre(H,Y).

Observe que este predicado utiliza el predicado hermano, elaborado anteriormente.

Concepto de hijo:

X es hijo de Y

Si

X es hombre y

Y es la madre de X

O

Y es el padre de X

En PROLOG:

hijo(X,Y):- hombre(X),

(madre(Y,X) ; padre(Y,X)).

Observe que el operador (;) se interpreta como o (OR).

Concepto de abuelo:

X es abuelo de Y

Si

X es padre de Z y

Z es padre de Y

En PROLOG:

Page 17: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMabuelo(X,Y):- padre(X,Z),

padre(Z,Y).

Concepto de bisabuelo:

X es bisabuelo de Y

Si

X es padre de Z y

Z es abuelo de Y

En PROLOG:

bisabuelo(X,Y):- padre(X,Z),

abuelo(Z,Y).

Observe que el predicado bisabuelo utiliza el predicado abuelo.

Nota: Para poder utilizar todos los predicados anteriores, es necesario que en la BC estén los hechos necesarios. Por ejemplo:

padre(juan,pedro).

padre(pedro,maria).

abuelo(X,Y):- padre(X,Z),

padre(Z,Y).

A la pregunta: ¿Quién es abuelo de quién?:

?- abuelo(X,Y).

PROLOG responde:

X = juan

Y = maria

Trabajo extraclase:

Elabore una BC que permita representar su árbol genealógico a partir de sus bisabuelos.

Incluya los conceptos de :

Page 18: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM– Primo por parte de padre

– Primo por parte de madre

– Tío

– Concepto de que una pareja puede procrear. Tenga en cuenta todas las condiciones, tanto naturales como sociales.

La BC debe contener al menos diez reglas, la cantidad de hechos es de su elección.

Para probar el conocimiento de su BC, realice todas las preguntas posibles y compruebe que se cumplan los parentescos de su árbol genealógico.

Operadores y Estructuras

Los términos en PROLOG se clasifican en átomos, variables y estructuras. Los átomos son los nombres de predicados, operadores y argumentos de los predicados, y siempre se escriben en minúscula como se vio anteriormente. Las variables permiten diversificar el resultado de las preguntas y generalizar las reglas y se escriben siempre con letra inicial mayúscula.

Las estructuras son la tercera clase de términos en PROLOG. Una estructura es una colección de objetos llamados componentes.

Operadores Aritméticos

+ adición

- sustracción

* multiplicación

/ división

// división entera

mod módulo

A la pregunta:

?- X=1+6.

PROLOG responde:

X=1+6

El operador = realiza la operación de emparejamiento y no obliga a realizar la operación aritmética.

Operador IS

Page 19: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMPermite realizar la asignación.

?- X is 1+6.

PROLOG responde:

X=7

El formato general para las operaciones aritméticas es:

Objeto_simple is expresión_aritmética

Operadores de relación

Al igual que el operador is, los operadores de relación obligan a la evaluación.

Estos son:

>, >, >=,<=

=:= igualdad

=\= diferencia

Diferencia entre los operadores de emparejamiento:

X=Y produce ajuste de los objetos X y Y y no hay evaluación aritmética

X=:=Y produce evaluación aritmética y no instancia las variables

Ejemplo:

?- 5+A = B+1.

A=1

B=5

?- 5+1=:=5+1.

YES

?- 5+1=4+2.

NO

Estudio Individual: Buscar en la ayuda de PROLOG, los operadores lógicos y estudiar los operadores aritméticos y de relación.

Estructuras

Una estructura se escribe mediante la especificación de su functor y sus componentes.

Page 20: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM Los componentes se encierran entre paréntesis y se separan por comas.

El functor especifica el nombre de la estructura.

Ejemplo:

posee(maria,libro(demian)).

La estructura en este hecho es libro(demian).

Si se desea especificar el autor del libro que posee María:

posee(maria,libro(demian,herman_hesse)).

Dentro del hecho correspondiente al predicado posee, está la estructura libro, siendo libro el functor de la estructura. Esta a su vez, posee dos componentes: demian y herman_hesse.

La estructura libro actúa como un onjeto que forma parte de una relación.

Si se desea aclarar aún más:

posee(maria,libro(demian,autor(herman_hesse))).

En este caso, la estructura libro contiene a la estructura autor y se interpreta el hecho como:

“Posee María el libro Demian del autor Herman Hesse”

Las estructuras participan en el proceso pregunta/respuesta usando variables.

Ejemplo:

Si en la BC está el hecho:

posee(maria,libro(demian,autor(herman_hesse))).

Para realizar la pregunta:

¿Qué libro posee María del autor Herman Hesse?

?- posee(maria,libro(X, autor(herman_hesse))).

PROLOG responde:

X = Demian

Observe que cuando se utiliza estructuras en un hecho o regla, para hacer la pregunta se escribe el nombre de la estructura, según sea el sentido de la pregunta.

También podría preguntar:

¿Qué posee María?

Page 21: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM?- posee(maria, X).

PROLOG responde:

X = libro(X, autor(herman_hesse))

La variable X se instancia con la estructura, incluso con la estructura anidada.

Utilizando variables anónimas:

Se podría preguntar:

¿Alguien tiene un libro cuyo autor es Herman Hesse?

?- posee(_,libro(_,autor(herman_hesse))).

PROLOG responde:

YES

Las estructuras pueden formar parte de las reglas:

“Una persona tiene mi edad si nació en 1969”

tiene_mi_edad(X):- nacio(X,fecha(_,_,1969).

Esta regla utiliza la estructura fecha que incluye variables anónimas, ya que el día y el mes son irrelevantes para lo que se quiere expresar.

Ejercicio:

Escriba la siguiente BC:

nacio(juan, fecha(2,8,1978).

nacio(pedro, fecha(10,4,1969).

tiene_mi_edad(X):- nacio(X,fecha(_,_,1969).

Realice las siguientes preguntas:

¿Cuándo nació Juan?

¿Tiene Pedro mi edad?

¿Quién tiene mi edad?

Ejemplo de utilización de estructuras para representar circuitos eléctricos

Circuito serie:

Page 22: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMR1 R2

serie(r1,r2).

Circuito paralelo:

R1 R2

paralelo(r1,r2).

Serie-paralelo:

R1 R4 R2 R3

serie(r1,serie(r4,paralelo(r2,r3))).

Tarea extraclase:

Elabore una BC que represente a un circuito utilizando estructuras.

Elabore al menos tres reglas para determinar cálculos de valores tales como, impedancia de entrada, voltaje de salida, corriente por una resistencia, etc.

Traer el dibujo del circuito seleccionado, para el día de la evaluación.

Listas

Una lista es una estructura de datos muy utilizada en programación simbólica. El trabajo con listas en PROLOG permite aumentar la potencialidad del lenguaje. Frecuentemente, los predicados con listas son recursivos.

Una lista es una secuencia ordenada de elementos clasificados que puede tener cualquier longitud.

Las listas pueden utilizarse para representar conjuntos, pero existen diferencias importantes:

En un conjunto el orden de los elementos no es relevante.

En un conjunto no se repiten elementos.

A pesar de esto, la mayoría de las operaciones de conjunto, se pueden implementar utilizando listas.

Listas en PROLOG

Page 23: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMEn PROLOG una lista se representa entre corchetes, con sus elementos separados

por coma.

[ana, juan, pedro]

Los elementos de una lista, pueden ser:

– constantes

– variables

– estructuras

– listas

La lista vacía se representa:

[ ]

La lista es además un concepto recursivo. Consta de cabeza y cola. Donde la cola, es a su vez otra lista. El primer elemento de una lista es la cabaza de la lista.

Lista = [a,b,c]Lista puede escribirse también como:[a|b,c] [a,b|c] [a,b,c|[ ]]

Todas las listas se representan internamente como árboles binarios.

.a .

b .

c [ ]

Unificación de dos listas

Esta es la forma en que el intérprete de PROLOG asocia dos listas:

Lista1 Lista2 Unificación

[X,Y,Z] [juan,ana,maria] X=juanY=amaZ=maria

[a] [X|Y] X=aY=[ ]

[[tiene,el,leopardo]|Y] [X|[un,abrigo]] X=[tiene,el,leopardo]Y[un,abrigo]

Operaciones con listas

Page 24: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMLa operación de pertenencia se llamará miembro. Permite determinar si un elemento

pertenece o no a una lista. El predicado miembro se utiliza como:

¿Es el elemento X miembro de la lista L?

En PROLOG sería:

?- miembro(c,[a,b,c]).

YES

Diseño del predicado miembro

El predicado se diseña según el siguiente algoritmo:

1. Si el elemento X está en la cabeza de la lista L ÉXITO

2. Sino buscar elemento en la cola

3. Chequear nuevamente la cabeza de la cola

4. Si se llega a lista vacía FALLO

El predicado miembro se diseña para que el objetivo o pregunta miembro (X,L) sea cierto si X es un miembro de la lista L. De lo contrario es falso.

1. X es miembro de la lista L si está en la cabeza de la lista L.

2. X es miembro de la lista L si es miembro de la cola.

En PROLOG sería:

miembro(X,[ X|_ ]).

miembro(X,[ _ |Cola]):-miembro(X,Cola).

Estas dos cláusulas conforman el predicado miembro. Observe que la segunda cláusula contiene la recursividad al invocar al propio predicado miembro. La condición de parada de la recursividad está en la primera cláusula, porque la lista se va “descabezando” hasta encontrar al elemento buscado o hasta que la lista esté vacía.

Ejercicio 1

Elabore una BC utilizando listas que represente con hechos las asignaturas que cursan los estudiantes. Elabore una regla utilizando el predicado miembro para determinar que determinado estudiante es de Sistemas si estudia Prolog.

Respuesta

Escribir en el modo de diseño de la BC:

Page 25: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMcursa(juan,[fisica, matematica,electronica]).

cursa(maria,[fisica, matematica,prolog]).

cursa(pedro,[fisica, matematica,prolog]).

miembro(X,[ X|_ ]).

miembro(X,[ _ |Cola]):-miembro(X,Cola).

sistemas(X):-cussa(X,L), miembro(prolog,L).

Ahora se puede preguntar: ¿Quién estudia Sistemas?

?- sistemas(X).

PROLOG responde:

X = maria

Sise intenta resatisfacer la respuesta se presiona ;

PROLOG responde:

X = pedro;

NO

Ejercicio 2

Dado el siguiente esquema que representa la relación de progenitor:

Juan María

Pedro Ana José Elisa Mario

Iván Luisa

Luis

Elabore una BC donde se exprese utilizando listas, la relación de progenitor del esquema

Respuesta:

progenitor(juan, [pedro, ana]).

progenitor(maria, [ ana, jose, elisa, mario]).

progenitor(pedro, [ivan]).

progenitor(ivan, [luis]).

Page 26: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMprogenitor(jose, [luisa]).

progenitor(ana, []).

progenitor(elisa, []).

progenitor(mario, []).

progenitor(luis, []).

progenitor(luisa, []).

a) En el modo de pregunta a la BC, elabore las siguientes preguntas:

1. ¿Quién no tiene hijos?

?- progenitor(X,[]).

2. ¿Quién tiene un solo hijo?

?- progenitor(X,[_]).

3. ¿Quién tiene al menos un hijo?

?- progenitor(X,[_|_]).

4. ¿Quién tiene exactamente dos hijos?

?- progenitor(X,[_,_]).

5. ¿Cuál es el primer hijo de María?

?- progenitor(maria,[X|_]).

6. ¿Quién tiene al menos dos hijos?

?- progenitor(X,[_,_|_]).

Operaciones con listas

Concatenación

Adición

Eliminación

Sublista

Concatenación de elementos

Esta operación permite concatenar dos listas L1 y L2 dando como resultado la lista L3, que contiene L2 a continuación de L1.

El predicado se diseña según el algoritmo:

Page 27: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM1. Si la lista L1 está vacía, entonces L2 y L3 son iguales a la lista L.

2. Si la lista L1 no es vacía, entonces tiene cabeza y cola de la siguiente manera:

En PROLOG esta concatenación se expresa:

concatenar([],L,L).

concatenar([X|L1],L2,[X|L3]):-concatenar(L1,L2,L3).

Escriba el predicado en su BC y haga las siguientes preguntas:

?- concatenar([a,b,c],[d,e,f],L).

PROLOG responde:

L = [a,b,c,d,e,f]

El predicado concatenas, puede responder cuántas alternativas existen para formar una lista dada:

?- concatenar(L1, L2, [es, la, paz]).

Esta pregunta se interpreta como: ¿Cuáles son las combinaciones posibles de las listas L1 y L2 para que la lista resultante sea [es, la, paz]?

PROLOG responde:

L1 = []

L2 = [es, la, paz] ;

L1 = [es]

L2 = [la, paz];

L1 = [es, la]

L2 = [paz];

L1X L2

L3X

[X|L1]

L3

[X|L3]

Page 28: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTML1 = [es, la, paz]

L2 = [];

NO

Este predicado también puede utilizarse para conocer una de las listas de que dieron lugar a la lista resultante:

?- concatenar([el, respeto, al, derecho, ajeno] , L2 , [el, respeto, al, derecho, ajeno, es, la, paz]).

L2 = [es, la, paz]

Adición de un elemento

Este predicado es muy sencillo y permite adicionar un elemento en la cabeza de la lista:

adicionar(X,L,[X|L]).

Se interpreta como: Si se adiciona X en una lista L, se obtiene X en la cabeza y L en la cola de la lista.

Ejercicio 1

Escriba el predicado adicionar en su BC y haga la siguiente pregunta:

?- adicionar(keep, [the, faith], X).

X = [keep, the, faith]

Eliminar un elemento

Eliminar un elemento de una lista se define como:

“Eliminar el elemento X de la lista L y se obtiene la lista L1”

El predicado se define según el algoritmo:

1. Si el elemento X es la cabeza de la lista L, entonces la lista resultante es la cola

2. Si X pertenece a la cola de la lista, entonces eliminar X de la cola

En PROLOG sería:

eliminar(X, [X|Cola],Cola).

eliminar(X,[ Y |Cola],[ Y |Cola1]):-eliminar(X,Cola,Cola1).

Page 29: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMCada alternativa de ejecución del predicado elimina una sola ocurrencia de X en la

lista L.

Ejercicio 1

Escriba el predicado eliminar el su BC y realice las siguientes preguntas:

a) ?- eliminar(c,[a,b,c],L).

b) ?- eliminar(c,L,[1,2,3]).

Sublista

Este predicado permite determinar si una lista es sublista de otra lista.

S es sublista de L si:

1. L se puede descomponer en L1 y L2

2. L2 se pude descomponer en S y L3

L

L2

El predicado sería, utilizando el predicado concatenar:

Sublista(S,L):-concatenar(L1,L2,L),

concatenar(S,L3,L2).

Ejercicio 1

El predicado concatenar puede utilizarse para encontrar todas las sublistas de una lista dada.

?- sublista(S,[a,b,c]).

Ejercicios prácticos para el examen final a defenderse de forma individual

1. Elabore un predicado para determinar el último de una lista teniendo en cuanta que:

X es el último elemento de una lista que tiene a X como único elemento

L1 S L3

Page 30: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM X es el último elemento de una lista que tiene cabeza y cola si X es el último de

la cola

2. Elabore el predicado miembro utilizando el predicado eliminar

3. Elabore el predicado adicionar utilizando el predicado eliminar

4. Elabore un predicado que permita dividir una lista en dos alternando sus elementos

5. Elabore un predicado que permita clasificar números en positivos cero o negativo (no se utiliza listas).

6. Elabore un predicado que obtenga la suma de los elementos de una lista sabiendo que:

1. La suma S es cero si la lista está vacía

2. La suma de una lista con E1 en la cabeza y L en la cola es S si S1 es la suma de los elementos de la cola y S es S1 + E1

7. Elabore un predicado que obtenga el factorial de un número sabiendo que:

1. Factorial de cero es 1

2. F es factorial de N si N > 0, Na es N-1, factorial de Na es F1 y F es F1 * N

8. Elabore un predicado que obtenga la cantidad de elementos de una lista sabiendo que:

1. cantidad de elementos de una lista vacía es cero

2. Cantidad de elementos de una lista que tiene cabeza y cola es cantidad de elementos de la cola +1

9. Elabore un predicado que obtenga el promedio de valores almacenados en una lista.

10. Elabore un predicado que permita saber si una lista está ordenada ascendentemente sabiendo que:

1. una lista que tiene un solo elemento está ordenada

2. una lista con X,Y en la cabeza y C en la cola está ordenada si X<Y y está ordenada la lista con Y en la cabeza y C en la cola.

11. Elabore un predicado que permita hallar la intersección de dos conjuntos.

12. Elabore un predicado que permita hallar la diferencia entre dos conjuntos.

13. Elabore una Base de Conocimiento que permita calificarlo a usted como persona. Utilice al menos cinco reglas de listas y utilice estructuras en alguna regla. En dicha base puede calificarse como estudiante según sus notas y acumulado, como ser

Page 31: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMhumano según su comportamiento, quiénes son sus amigos, qué hacen sus familiares, en qué orden de prioridades están sus intereses personales, etc.

Page 32: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM

III.III. MODELOS DE REPRESENTACION DELMODELOS DE REPRESENTACION DEL CONOCIMIENTOCONOCIMIENTO

Lógica

Razonamiento deductivo

Razonamiento inductivo

Lógica proposicional

Lógica de predicados

Introducción a la resolución de problemas

Para introducir el conocimiento en la computadora se debe crear un modelo del conocimiento. Ese modelo, será convertido en los símbolos necesarios para que quede completamente representado.

La IA cuenta con un conjunto de modelos de representación del conocimiento, que han sido utilizado por los desarrolladores de software inteligente para crear sus aplicaciones.

LógicaLógica

Es la forma más vieja del conocimiento. Formaliza el pensamiento intuitivo de la persona y estudia los procesos de razonamiento y los sistemas de reglas y procedimientos que intervienen en él. La lógica se considera como una subdivisión de la filosofía y tiene sus orígenes en la Grecia antigua.

Cualquier razonamiento lógico (sistema lógico) se basa en el siguiente esquema:

Esquema del razonamiento

Hay dos formas básicas de razonamiento que son:

Page 33: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM Razonamiento Deductivo

Razonamiento Inductivo

Ambos son utilizados para llegar a inferencias a partir de premisas.

RAZONAMIENTO DEDUCTIVORAZONAMIENTO DEDUCTIVO

Va de lo general a lo particular, se utilizan premisas generales para obtener inferencias (conclusiones) específicas.

Tiene tres partes importantes que son:

Premisa Mayor: Ej. Cuando Hay fútbol no hay clases.

Premisa Menor: Ej. Mañana hay fútbol.

Conclusión: Ej. Mañana no hay clases.

En el razonamiento deductivo la conclusión es Verdadera, Si y solo Si las premisas son verdaderas.

RAZONAMIENTO INDUCTIVORAZONAMIENTO INDUCTIVO

Se utiliza un número determinado de hechos o premisas particulares para obtener una conclusión general, es decir, va de lo particular a lo general.

Premisa 1: Ej. La falla en los diodos causa fallas en los equipos electrónicos.

Premisa 2: Ej. La falla en transistores causa fallas en los equipos electrónicos.

Premisa 3: Ej. La falla en los circuitos integrados causa fallas en los equipos electrónicos.

Conclusión: Ej. La falla en los dispositivos semi-conductores es la causa fundamental en la falla de los equipos electrónicos.

En el razonamiento Inductivo la conclusión no es absoluta porque puede cambiar si se adicionan nuevas premisas es decir, existe un grado de incertidumbre que depende del número de premisas utilizadas.

Existen dos formas básicas de llevar la lógica a la computación que son:

1. Lógica Proposicional

2. Lógica de Predicados.

Page 34: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMLOGICA PROPOSICIONALLOGICA PROPOSICIONAL

La lógica proposicional se basa en el razonamiento a partir de proposiciones o sentencias que pueden ser verdaderas o falsas. A partir de la veracidad o falsedad de las proposiciones se pueden derivar nuevas proposiciones o inferencias y su veracidad o falsedad se determina a través de las reglas.

Para determinar si una proposición es verdadera o false se utilizan las reglas.

Premisa A: Hay clases de Lunes a Viernes.

Premisa B: Hoy es Martes.

Conclusión C: Hoy hay clases.

Estas son proposiciones simples, las proposiciones simples se combinan a través de los operadores lógicos para formar proposiciones compuestas ( And, Or, Not, implica, equivalente, etc. ).

Al igual que en el álgebra Booleana se utilizan las técnicas de Análisis, Diseño y Simplificación de los circuitos lógicos. Los operadores lógicos son utiliados para modificar las proposiciones y derivar otras nuevas.

Ejemplo:

A = Está lloviendo

NOT A = No está lloviendo

Operaciones lógicas:

NOT

AND

OR

(implicación) C es verdadera si A es falsa o B es verdadera

La lógica proposicional tiene un uso limitado en la Inteligencia Artificial, debido a que las proposiciones son V o F y esto causa una representación limitada del conocimiento.

LOGICA DE PREDICADOSLOGICA DE PREDICADOS

Se utiliza en los lenguajes de Inteligencia Artificial como por Ej. PROLOG.

En la lógica de predicados una proposición o premisa se divide en dos partes:

– El predicado. Es el acierto.

Page 35: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM– Argumento del predicado. Son objetos o sustantivos.

El predicado se identifica con el verbo de la proposición o premisa.

Ejemplo:

1. La computadora está en el laboratorio

está es el predicado.

Computadora, Laboratorio son los objetos

2. Juan ama a María

ama es el predicado.

Juan y María son los objetos.

Las proposiciones anteriores se convierten predicados de PROLOG de la siguiente forma:

esta(computadora, laboratorio)

ama(juan, maria)

VARIABLES EN LA LOGICA DE PREDICADOS

En la proposición ama (juan, maría) se puede utilizar ama (X, Y) y la proposición es verdadera para cualquier nombre sustituido en las variables.

Ejemplo:

X = Juan

Y = María

Z = Ramón

Ama (X, Y) and not ama (Z, Y) not ama (X, Z)

Si Juan ama a María y Ramón no ama a María entonces Juan no ama a Ramón.

CUANTIFICADORES UNIVERSALES

Son símbolos que permiten establecer el rango o alcance de las variables en una expresión lógica.

(x) [Es de Ambato (x) Es ecuatoriano (x)

Para todo x si, x es de Ambato, implica que es ecuatoriano.

Page 36: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM(x) [fruta (x) and roja (x)]

Existe un ente x tal que si x es una fruta, es roja.

Los cuantificadores permiten determinar cuándo una proposición es verdadera, bajo determinadas condiciones.

Las expresiones lógicas formadas por cuantificadores (,), variables (x, y), predicados y operadores se conoce como fórmulas bien formadas (wff: Well Formed Formula ).

INTRODUCCIÓN A RESOLUCIÓN DE PROBLEMAS A TRAVÉS DE UNINTRODUCCIÓN A RESOLUCIÓN DE PROBLEMAS A TRAVÉS DE UN EJEMPLOEJEMPLO

DILEMA:

En la orilla de un río se encuentran un campesino (c) con un ganso (g), un zorro (z), un saco de trigo (t) y se dispone de una barca para cruzar el río. Sin embargo no puede quedar sólo el ganso y zorro pues el segundo devora al primero, tampoco ganso y trigo por igual razón. La barca sólo permite viaje de 2 elementos.

SITUACIÓN INICIAL:

Orilla Izquierda Orilla derecha

[C+g+z+t] [ ]

Estudio Individual: Busque una forma de resolver el problema

Formas de representación del conocimientoFormas de representación del conocimiento

Redes Semánticas

Solución al problema del campesino, zorra, trigo, ganso

Page 37: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMExisten 24 arreglos posibles, de los cuales únicamente son 10 posibles válidos.

Como una explicación del problema del Campesino, zorra, trigo y ganso se representa el esquema de arriba. Es una buena representación debido a que las situaciones permitidas quedan claramente definidas y se eliminan los detalles irrelevantes. En este diagrama se puede representar por medio de nodos que contienen los elementos C, Z, G,T.

También se puede representar utilizando enlaces. Por cada par ordenado de nodos, existe un enlace para cada viaje permitido así:

A través de este ejemplo se manifiesta que la representación de Nodos y Enlaces es una buena solución al problema planteado.

CRITERIOS PARA EVALUAR UNA BUENA REPRESENTACION.

1. Los objetivos y restricciones importantes deben estar explícitamente.

2. Expresar la forma en que un objeto o relación influye sobre otro objeto o relación.

3. Agrupar los objetos y relaciones.

4. Eliminar los detalles irrelevantes.

5. Garantizar que se entienda lo que se quiere representar.

6. Todo cuanto se desee expresar debe formar parte de la representación.

7. La representación debe ser concisa.

8. El almacenamiento y recuperación de la información deben ser rápidos.

PARTES FUNDAMENTALES DE UNA REPRESENTACION.-

1. Léxico.- Son los símbolos permitidos en el vocabulario de la representación.

2. Parte Estructural.- Son las restricciones sobre la forma en que puedan ordenarse los símbolos.

3. Parte Operativa.- Son los procedimientos de acceso, para crear descripciones, modificarlas y responder a preguntas.

Page 38: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM4. Parte Semántica.- Es la forma de asociar el significado de las descripciones.

En el ejemplo anterior:

Léxico: A través del léxico se establece que hay nodos y enlaces

Parte estructural: Los enlaces conectan a pares de nodos

Parte semántica: Los nodos son los arreglos de Campesino, Zorra, Trigo y Ganso y los enlaces significan los cruces del río.

Parte operativa: No se especifica en la representación porque los procedimientos de acceso están en nuestro cerebro.

Ejemplo de red semántica donde el objeto central es Pedro. En esta red, se observan, además de los nodos y enlaces; las etiquetas de enlace, que establecen las relaciones entre los nodos.

CARACTERISTICAS GENERALES DE LAS REDES SEMANTICAS.-

1. Su léxico implica la existencia de nodos, enlaces y etiquetas de enlace.

2. Según su estructura cada enlace conecta un nodo codo con un nodo cabeza.

3. Según su Semántica los nodos y enlaces representan las entidades específicas.

4. Requieren constructores para construir un nodo y un enlace.

5. Requieren lectores para listar todos los enlaces que salen de un nodo.

6. Requieren lectores para listar todos los enlaces que llegan a un nodo.

Page 39: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM7. Dado un enlace debe producir un nodo cola.

8. Dado un enlace debe producir un nodo cabeza.

9. Dado un enlace debe producir una etiqueta de enlace.

Una vez construída la red se le puede hacer preguntas. A través de las redes semánticas se puede representar la herencia. Un nodo puede heredar las características de cualquier otro nodo.

Ej. ¿Pedro es de la raza humana?. Sí, porque ese nodo está conectado con el recorrido del nodo de la raza humana.

La propiedad de las redes semánticas, como la herencia, posibilita hacer deducciones a partir de la información que ellas contienen. La cantidad de detalles que involucra una red semántica depende de si el problema es general o específico (particular).

Estudio Individual: Elabore una estructura para los nodos de una red semántica y elabore un algoritmo para crear enlaces entre los nodos de la red semántica. Diseñe algunas preguntas a su red que donde además, se involucre la herencia.

MODELOS DE REPRESENTACION DEL CONOCIMIENTOMODELOS DE REPRESENTACION DEL CONOCIMIENTO

LISTAS

ARBOLES

MARCOS O FRAMES

GUIONES O SCRIPTS

LISTAS

Una lista es un conjunto de elementos relacionados. Las listas se usan generalmente en Inteligencia Artificial para representar conocimientos jerárquicos. Los objetos en la lista están agrupados o categorizados de acuerdo a una relación o rango. También pueden crearse jerarquías de listas si se combinan convenientemente. Ej.

Page 40: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMARBOLES.-

Un árbol es una estructura que expresa una jerarquía. Es una forma de ilustración de listas o cualquier otra forma de conocimiento jerárquico. Ej.

FRAMES o MARCOS.-

Un frame es un bloque de conocimientos sobre un objeto particular, evento o situación. El frame describe a los objetos con un alto nivel de detalle, conteniendo varios atributos o características del objeto o situación.

El frame se utiliza para representar el conocimiento basado en características y experiencias bien conocidas del objeto en cuestión.

El proceso de razonamiento en los frames se basa en la búsqueda de la confirmación de varias expectativas. En los frames es fácil hacer inferencias de nuevos objetos, eventos y situaciones, debido a que ellas proporcionan una base del conocimiento creada a partir de experiencias previas.

El conocimiento en un frame está organizado en Slots o ranuras que contienen características y atributos y pueden interpretarse como una representación de categorías o subcategorías.

Page 41: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMMuchos sistemas de Inteligencia Artificial se basan en una colección de frames

enlazados convenientemente, como por ejemplo:

Cuando se utiliza una estructura jerárquica de FRAMES, un FRAME puede heredar las características o propiedades de otro FRAME.

GUIONES o SCRIPT.-

Un SCRIPT es similar al FRAME pero en vez de describir un objeto o evento, describe una secuencia de eventos, el GUION es utilizado para un contexto particular.

Para describir una secuencia de eventos el script usa una serie de tracks o pistas que contienen información sobre objetos y acciones involucradas en el evento. Los script contienen condiciones de entrada, apoyos, papeles, escenas.

CONDICIONES DE ENTRADAS.-

Describe situaciones que deben ser satisfechas antes de que el evento ocurra.

LOS APOYOS.-

Son objetos utilizados en la secuencia de eventos.

PAPELES O ROLES.-

Se refiere a la función de determinado objeto en el guión.

ESCENAS.-

Describe la secuencia real de eventos que ocurren.

TRACK o PISTAS.-

Se refiere a variaciones que pueden ocurrir en un guión.

Ej.

Page 42: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM

PROBLEMAS QUE PUEDEN REPRESENTARSE CON LISTAS.

Básicamente todos aquellos problemas relacionados con registros de información que mantienen una secuencia u organización categórica.

Se ha demostrado que como método de predicción barato y eficiente, es dable emplear las listas.

PROBLEMAS QUE PUEDEN REPRESENTARSE CON ARBOLES.

Manejo de datos o estructuras lógicas con niveles de dependencia y/o subordinación. Por ejemplo para reescribir la estructura de una organización (empresarial, educativa, religiosa o militar). Es una extensión de las listas, se puede asumir que es un sistema de listas con jerarquías.

Entre los casos reales en los que se ha aplicado árboles e Inteligencia artificial se encuentran:

Diseño de equipo de plataforma petrolera, en el que es paso importante el separar el gas del petróleo.

Diseñar un controlador de vuelo

Page 43: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMPROBLEMAS QUE PUEDEN REPRESENTARSE CON FRAMES o MARCOS.

Estructura similar a la de una red semántica compleja. Típicamente un frame describe una clase de objeto, y a través de sus ranuras (slots) describe aspectos adicionales o de detalle del objeto.

Frames que tienen relación entre sí, pueden ser reunidos o agrupados y formar un Sistema de Frames.

En el reconocimiento de objetos, en su descripción, en necesario tener algunas vistas del mismo, a fin de poder determinar de manera racionalizada cual es la estructura real del objeto, cada vista se considerará un frame; se requiere en consecuencia un sistema de frames:

Cada vista representa un frame.

PROBLEMAS QUE PUEDEN REPRESENTARSE CON GUIONES o SCRIPTS.

Un guión es una estructura que describe una secuencia estereotipada de eventos en un contexto particular. Podemos asumir que un script es un conjunto de ranuras o slots.

Su utilidad básica está dada en las aplicaciones de predicción razonada, para determinar qué evento ocurrirá luego de darse determinadas condiciones de operación.

Por ejemplo, si Usted tiene dinero, tiene sed, está cerca a un bar, tiene tiempo disponible, dinero... se puede predecir que si entra al bar, luego de refrescarse saldrá con más ánimos y menos dinero.

En consecuencia si se puede representa un problema de predicción con guiones, es dable entender que también se puede describir con esta herramienta una estrategia; lo que se consideraría otro tipo de problemas a resolver.

De manera similar podemos emplear los scripts para representar situaciones relacionadas con la descripción de acciones a realizarse en una estructura organizacional, sea o no sea estructurada jerárquicamente.

Estudio Individual: Definir problemas que puedan representarse mediante listas, árboles, frames y guiones.

Page 44: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM

IV.IV. REGLAS DE PRODUCCIONREGLAS DE PRODUCCION

Introducción a las reglas de producción

Sistemas de deducción

Encadenamiento progresivo

Encadenamiento regresivo

INTRODUCCIÓNINTRODUCCIÓN

Una de las formas más populares que hay de representación del conocimiento son las reglas de producción. Los sistemas de resolución de problemas basados en reglas constan de las siguientes partes:

Antecedente ConsecuentePremisa Conclusión Sistemas de Deducción

Situación Acción Sistemas de Reacción

DESARROLLO

Las reglas utilizadas tanto en los sistemas de deducción como de reacción se interpretan como SI ENTONCES

Ejemplo:

IF <antecedente> THEN <consecuente>

Las reglas de producción son una de las formas más flexibles de representación del conocimiento debido a que son fáciles de crear y entender y su formato es compatible con la forma en que nuestro cerebro almacena y procesa el conocimiento.

La forma general de expresar los sistemas de producción basadas en reglas de producción es la siguiente:

Rn Si Si1

Si2

.

.

Sin

entonces entonces 1

entonces 2

Page 45: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM.

.

entonces m

Una declaración de que algo es verdadero se llama afirmación

Ejemplo:

Los estudiantes estudian Sistemas en la UTM

Los hechos y afirmaciones son sutilmente diferentes.

1. Un hecho es algo que se sabe verdadero o falso. Cuando se utiliza un hecho se sabe su veracidad.

2. Una afirmación es una declaración de que algo es un hecho.

El conjunto de afirmaciones se conoce como memoria de trabajo, y está formada por afirmaciones.

SISTEMA DE DEDUCCIÓNSISTEMA DE DEDUCCIÓN

Las reglas forman una base del conocimiento que se puede convertir en un sistema de deducción.

Un sistema de deducción consiste en una base del conocimiento, una memoria de trabajo (afirmaciones) y un mecanismo de inferencia, que contiene nuevas afirmaciones y nuevas conclusiones.

En los sistemas de deducción y reacción se utiliza el encadenamiento progresivo que es el proceso de moverse de los patrones SI a los patrones ENTONCES utilizando los patrones SI para identificar situaciones que permitan deducir una nueva conclusión o la realización de una acción.

ENCADENAMIENTO PROGRESIVO ENCADENAMIENTO PROGRESIVO

1. Si un patrón SI concuerda con una afirmación en la memoria de trabajo se dice que el antecedente SI se satisface.

2. Cuando se satisfacen todos los patrones SI de una regla se dice que la regla se ha accionado.

3. Cuando una regla accionada establece una nueva afirmación o realiza una acción, se dice que la regla está disparada.

En los sistemas de deducción generalmente todas las reglas accionadas se disparan.

Page 46: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMEn los sistemas de reacción, cuando se acciona más de una regla debe existir un

mecanismo de resolución de conflictos para definir cuál regla de dispara.

SISTEMA DE DEDUCCIÓN PARA IDENTIFICAR ANIMALES TALES COMO:

Tigre, onza, cebra, jirafa, pingüino, avestruz.

R1 Si x Tiene pelo

entonces x es mamífero

...

R8 Si x es mamífero

x rumia

entonces x es un ungulado

...

R11 Si x es un ungulado

x tiene patas largas

x tiene cuello largo

x es de color leonado

x tiene manchas oscuras

entonces x es una jirafa

Memoria de Trabajo

Se cuenta con la siguiente memoria de trabajo:

Animal Tiene pelo

Animal rumia

Animal tiene patas largas

Animal tiene cuello largo

Animal es de color leonado

Animal tiene manchas obscuras

Page 47: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM

Gráfico

ALGORITMO PARA ENCADENAMIENTO PROGRESIVO

1. Repetir

1.1 Para cada Regla

1.1.1. Comprobar cada antecedente mediante pariamiento con afirmaciones.

1.1.2. Si se corroboran todos los antecedentes, hacer valer el consecuente.

1.1.3. Repetir el procedimiento para todos los pariamientos y alternativas de substitución.

Hasta que ninguna regla produzca una nueva afirmación

ENCADENAMIENTO REGRESIVOENCADENAMIENTO REGRESIVO

En un sistema basado en reglas se puede formar una hipótesis y usar las reglas de antecedente consecuente para ir hacia atrás en dirección a las afirmaciones que hacen verdadera la hipótesis.

Ejemplo:

Hipótesis : Animal es una Onza.

R1 Si x tiene pelo

entonces x es un mamífero

...

Page 48: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMR5 si x es un mamífero

x come carne

entonces x es carnívoro

R6 si x es un mamífero

x tiene dientes agudos

x tiene garras

x tiene ojos que miran hacia adelante

entonces x es carnívoro

...

R9 si x es carnívoro

x es de color leonado

x tiene manchas obscuras

entonces x es una Onza.

Gráfico

ALGORITMO PARA ENCADENAMIENTO REGRESIVO

1. Repetir

1. 1 Repetir

Page 49: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM1.1.1. Para cada regla cuyo consecuente coincida con la hipótesis.

1.1.1.1. Comprobar cada antecedente mediante el pareamiento con afirmaciones mediante encadenamiento regresivo a través de otra regla creando nuevas hipótesis.

1.1.1.2. Verificar todas las alternativas de pareamiento o substitución.

1.1.1.3. Si todos los antecedentes de las reglas son comprobados, la regla es verdadera.

Hasta la última hipótesis

Hasta que se hayan intentado todas las hipótesis y ninguna se haya podido comprobar.

COMO DETERMINAR ENCADENAMIENTO PROGRESIVO O REGRESIVO

1. Si el número de formas de llegar a la conclusión es grande pero el número de conclusiones que tiene probabilidades de obtener es pequeño, se utiliza el encadenamiento progresivo.

2. Si desea conocer si una de las muchas conclusiones es verdadera se usa el encadenamiento regresivo.

3. Si se cuenta con todos los hechos que se pueden obtener y se desea todo lo que se concluye de tales hechos se utiliza el encadenamiento progresivo.

Estudio Individual: Diseñe una memoria de trabajo y un conjunto de reglas y utilice encadenamientos progresivo o regresivo para obtener conclusiones o confirmar una hipótesis. Elabore el programa correspondiente.

SISTEMAS DE REACCIONSISTEMAS DE REACCION

En los sistemas de reacción la parte SI especifica las condiciones que se debe satisfacer mientras que la parte ENTONCES significa una acción a realizar. La acción puede ser:

1. Agregar una nueva afirmación.

2. Eliminar una afirmación existente

3. Ejecutar algún procedimiento.

Sistema para empacar comestibles en una tienda.- Se utiliza un sistema de reacción basado en reglas que decide dónde debe ir cada producto.

Los pasos a seguir son los siguientes:

Page 50: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM1. Verificar la Orden: Analizar lo seleccionado por el cliente y verificar si se puede

sugerir algún producto.

2. Empacar productos Grandes: Se colocan primero las botellas.

3. Empacar productos Medianos: Ubicar los productos congelados en bolsas especiales.

4. Empacar productos Pequeños

En el sistema se necesita de una memoria de funcionamiento que contiene las afirmaciones sobre los productos que se van a empacar.

MEMORIA DE FUNCIONAMIENTO

Producto Tipo de Empaque Tamaño Congelados?

Pan Bolsa Plástica Medio No

Yogur Vaso Pequeño No

Cereal Caja de Cartón Grande No

Helado Envase de Cartón Medio Si

Papas Fritas Bolsa Plástica Medio No

Pepsi Botella Grande No

Para conocer el estado actual del sistema se cuenta con las siguientes afirmaciones:

1. Paso: Verificar la orden

2. Bolsa1: Bolsa en uso

3. Pan se va a empacar

4. Yogurt se va a empacar

5. Cereal se va a empacar

6. Helado se va a empacar

7. Papar fritas se va a empacar

El sistema cuenta con una base de reglas donde cada regla comprueba el nombre del paso.

R1 Si el Paso es verificar orden.

papas fritas se va ha empacar

No se va ha empacar pepsi

Page 51: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMEntonces

Preguntar a cliente si desea botella Pepsi

R2 si Paso es verificar orden.

Entonces

el paso no es verificar orden

el paso es empacar productos grandes.

La primera acción de la parte entonces, implica eliminar una afirmación de la memoria de funcionamiento, de esta forma R2 puede escribirse también como:

R2 si el paso es verificar la orden

eliminar el paso es verificar orden

añadir el paso es empacar productos grandes.

A este método de resolución de conflicto para determinar qué regla se dispara, se conoce como ordenamiento de reglas que consiste en:

1. Las reglas están ordenadas en una lista.

2. La primera regla que se acciona es la que se dispara.

R3 si el paso es empacar productos grandes

el producto es una botella

la bolsa tiene menos de 6 productos grandes.

eliminar se va ha empacar un producto grande

añadir el producto grande está en la bolsa de turno.

R4 si el paso es empacar productos grandes

la bolsa tiene menos de 6 productos grandes

eliminar se va ha empacar un producto grande

añadir el producto grande está en la bolsa de turno

En la regla R3 la tercera situación implica conteo, y esa es una puerta para el uso de los lenguajes de propósito general.

R3 está antes que R4 para garantizar que las botellas se empaquen primero por ser más pesadas

Page 52: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM Solo se añaden productos grandes cuando la bolsa tiene menos de 6

productos, de lo contrario se utiliza la regla 5 (R5)

R5 si el paso es empacar productos grandes

está disponible bolsa vacía

eliminar la Bolsa en turno, es la bolsa en turno

añadir la bolsa vacía, es la bolsa en turno

R6 si el paso es empacar productos grandes

eliminar el paso es empacar productos grandes

añadir el paso es empacar productos medianos.

SIMULACION DEL RESULTADO

1. Verificación de la Orden.-

Como contiene papas fritas y no contiene pepsi se dispara R1 sugiriendo llevar una botella de pepsi.

2. Si el cliente acepta, se dispara R2 que implica cambiar de paso para empacar productos grandes.

3. Se dispara R3 para poner el producto grande (pepsi) en la bolsa en turno.

4. Al empacar pepsi, el único producto grande que queda es la caja de cereal, disparándose R4

La memoria de funcionamiento quedaría de la siguiente manera:

1. El paso es empacar los productos medianos.

2. La bolsa 1 contiene pepsi y cereal.

3. El pan, yogur, helado, papas fritas se van ha empacar en la bolsa 2

Los sistemas de deducción con encadenamiento pregresivo, no necesitan estrategias de resolución de conflictos debido a que es lógico que se disparen todas las reglas accionadas, pero en los sistemas de reacción, cuando más de una regla está accionada, se requiere de una estrategia para la resolución de conflictos que decida qué regla se debe disparar.

ESTRATEGIAS DE RESOLUCION DE CONFLICTOS EN LOS SISTEMAS DE REACCION.

Page 53: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM1. Ordenamiento de reglas: Ordenar las reglas en una lista de prioridades y usar

la regla accionada de mayor prioridad.

2. Límite de Contexto: Separar las reglas en grupo de los cuales sólo algunos se encuentran activos en cualquier momento.

3. Ordenamiento por Especificidad: Siempre que las condiciones de una regla accionada sean un subconjunto de otra regla accionada usar la regla del subconjunto porque contiene situaciones más específicas.

4. Ordenamiento de los Datos: Ordenar las afirmaciones en una lista de prioridades. Usar la regla accionada cuya condición coincide con la afirmación de mayor prioridad.

5. Ordenamiento por Tamaño: Usar la regla accionada con la lista de condiciones más larga.

6. Ordenamiento por novedad: Utilice la regla menos recientemente usada.

Page 54: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM

V.V. REPRESENTACION DE LA INCERTIDUMBREREPRESENTACION DE LA INCERTIDUMBRE

Los sistemas de representación del conocimiento estudiados se basan en hechos o premisas que son verdaderos o falsos. En los problemas del mundo real, existe una buena dosis de incertidumbre, en muchos casos no es posible decidir si un hecho, premisa o conclusión es 100% verdadero o falso.

Para trabajar con ambigüedades o incertidumbres se usan diferentes técnicas como la Probabilidad y la Estadística. Un método de trabajo con incertidumbre es el uso de la probabilidad y la estadística convencional.

Ejemplo:

Dada una cantidad suficiente de datos, se halla el promedio, desviación estándar, media, desviación típica etc., estos indicadores derivados de los datos originales aportan conocimiento adicional para ayudar a la toma de decisiones.

La probabilidad estándar no es más que la razón del número de veces que una acción particular puede ocurrir para un número de intentos dado. En muchos casos de representación del conocimiento la probabilidad para cada condición o acción puede ser conocida o estimada.

Ejemplo:

Si el cielo está nublado

entonces va ha llover ( P = 60% )

FACTOR DE CERTIDUMBREFACTOR DE CERTIDUMBRE

Es un número que indica qué tan cierto o falso es algo.

En los sistemas expertos el factor de certidumbre se utiliza para tomar decisiones en situaciones de incertidumbre.

Un factor de certidumbre (FC) es un número que indica cómo decidir si un hecho particular es verdadero o falso. Basándose en experiencias o evidencias disponibles se escoge un factor de certidumbre que indica qué se entiende como un nivel de veracidad.

Un rango típico de F.C. es de -1 a 1, donde -1 indica la certidumbre (información), de que el hecho es falso, 1 indica la certidumbre (información) de que el hecho es verdadero y 0 indica que la certidumbre (información) es desconocida (incertidumbre).

Ejemplo:

FC

Page 55: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMSi el paciente tiene erupción en el abdomen

paciente tiene fiebre

entonces paciente tiene Sarampión (FC = 0,3 %)

Consulta Individual: Qué diferencia existe entre el uso de la probabilidad y el factor de certidumbre.

DIFERENCIAS ENTRE PROBABILIDAD Y FACTOR DE CERTIDUMBRE.DIFERENCIAS ENTRE PROBABILIDAD Y FACTOR DE CERTIDUMBRE.

PROBABILIDAD.-

Si todos los sucesos o resultados son posibles o equiprobables, se afirma que la probabilidad de un acontecimiento es la relación (razón) de número de casos favorables dividido para el número de casos posibles.

La probabilidad de un evento (que suceda o resulte) es la proporción de veces que el evento sucedería en una serie prolongada de experimentos repetidos.

Históricamente en situaciones de incertidumbre es necesario tener una guía de comportamiento, para este efecto se desarrollo las definiciones de posible o probable. Con singular aplicación en los juegos de azar.

Ejemplo:

En un paquete convencional de naipes o barajas, queremos saber que probabilidad tiene de obtener un AS

Número total de cartas 52

Número total de Ases 4

Probabilidad (AS) = 4 / 52 = 0.0769231

Que en términos porcentuales se lee: 7.69 %

Podemos esperar que en 100 extracciones de cartas, con reposición, obtendremos en 7 u 8 ocasiones el AS. Otra interpretación sería que de la extracción de una carta en 100 juegos de naipe, obtendremos 7 u 8 Ases.

Cuando los sucesos son independientes debe recordarse que el azar no tiene memoria.

Asimismo, en muchos sistemas la resolución de problemas tiene un objetivo que consiste en reunir evidencias sobre la evolución del sistema y modificar su comportamiento sobre esta base.

Page 56: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM La modelación estadística de este comportamiento constituye el teorema de Bayes,

con su concepto de probabilidad condicionada:

P(H/E)

Dado:

P(Hi/E): probabilidad de que la hipótesis Hi sea cierta dada la evidencia E

P(E/Hi): probabilidad de que se observe evidencia E dada la hipótesis Hi como verdadera

P(Hi): probabilidad a priori de que la hipótesis y sea cierta, independiente de cualquier evidencia, se conoce como probabilidades previas o a priori

k: número total de posibles hipótesis

P(Hi / E) = { P(E/Hi).P(Hi) } / { ( P(E/Hn).P(Hn))}

La probabilidad de la hipótesis (H) dado que se observa la evidencia (E). Las estadísticas Bayesianas se consideran una base importante para sistemas que razonan bajo incertidumbre.

Por ejemplo se tiene interés en examinar las evidencias geológicas de un sitio, para determinar la bondad o no de realizar una excavación y obtener un determinado mineral. Si se conocen las probabilidades previas de aparición de cada uno de los minerales y también se conocen las probabilidades de que si un mineral aparece, entonces se observen determinadas características físicas. Entonces, es dable emplear el teorema de Bayes para calcular a partir de las evidencias que se reúnan, las probabilidades de que aparescan los diversos minerales. Lo que se aplica en el programa PROSPECTOR, empleado en la localización de depósitos minerales que incluyen cobre y uranio.

Sin embargo, dado que la complejidad de las situaciones reales es amplia, el tamaño del conjunto de probabilidades combinadas que se necesitan para calcular la función de Bayes crece como una función de la forma 2n Lo que torna inaplicable el teorema de Bayes (tiempo grande de cálculo, espacio de probabilidades numerosa, problema de adquisición del conocimiento inabarcable)

CERTIDUMBRE.-

Definida también como certeza o conocimiento claro y seguro de alguna cosa. Convicción subjetiva de la verdad de una proposición basada en que la causa de la misma excluye toda otra probabilidad.

Cuando uno conoce precisamente lo que ha ocurrido y lo que ocurrirá.

Por lo general la certidumbre está signada por una “memoria”, por ejemplo si conocemos que un dado tiene sesgo hacia el lado del número 4, al realizar lanzamientos del mismo diremos con seguridad que el número a obtenerse será el 6.

Page 57: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMINCERTIDUMBRE

Duda, desconocimiento

FACTOR DE CERTEZA y SISTEMAS BASADOS EN REGLAS.-

La aplicación del teorema de Bayes en sentido estricto o “puro” no es práctica, por lo que se han desarrollado mecanismos que combinan los principios generales de Bayes pero agregándoles variantes que complementen la correspondencia entre varias causas conocidas y la posibilidad de determinar la afirmación de una hipótesis.

Este enfoque surgió con el desarrollo del sistema MYCIN, el cual trata de recomendar terapias adecuadas para infecciones bacterianas. El sistema interactúa con el médico en la adquisición de los datos clínicos necesarios. El sistema se basa en el uso de razonamiento probabilístico, en MYCIN la mayor parte del conocimiento sobre diagnóstico se da en forma de un conjunto de reglas; donde a cada regla se le asocia un FACTOR DE CERTEZA, que representa una medida sobre la evidencia que existe de que la conclusión sea el consecuente de la regla, en el caso de que se describa el antecedente de la misma. Una regla de MYCIN típica se parece a:

SI. (1) la cepa del microorganismo es gram positivo, y

(2) la morfología del organismo es coco, y

(3) los organismos crecen en forma arracimada,

entonces hay buena probabilidad (0.7) de que el organismo sea un

staphilococcus

El factor de certeza, CF/h,ese define con dos componentes:

MB(h, e). Una medida (entre 0 y 1) de la creencia de que la hipótesis h proporciona la evidencia e. MB da una medida sobre hasta que punto la evidencia soporta la hipótesis. Es cero (0) si la evidencia no soporta la hipótesis.

MD(h, e). Una medida (entre 0 y 1) de la incredulidad de que la hipótesis h proporciona la evidencia e. MD da una medida sobre hasta que punto la evidencia soporta la negación de la hipótesis. Es cero (0) si la evidencia soporta la hipótesis.

A partir de estas se define el factor de certeza como:

CF(h, e) = MB(h, e) - MD(h, e)

En cada regla basta un único número para definir tanto el valor de MB como el de MD, y por lo tanto de CF, ya que cada regla se corresponde con una parte de la evidencia, y cada parte de la evidencia o bien soporta o bien niega una hipótesis pero nunca ambas cosas.

Los factores de certeza de las reglas les proporcionan los expertos que las escriben.

Page 58: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMDIFERENCIAS.-

El factor de certidumbre tiende a eliminar la casuística, para llegar a definiciones creíbles

La probabilidad es factible de modelar y de sustentar para futuras situaciones.

Bajo determinadas circunstancias podemos acercarnos a niveles de certidumbre, basados en la experiencia acumulada en condiciones estandarizadas.

Al tener modelos probabilísticos, es factible extender las estimaciones de estos modelos a diversos problemas vinculados con el mundo real.

La determinación de los pesos o ponderaciones a asignar a cada regla cumplida en el Factor de Certidumbre tiende a ser erróneo bajo determinadas condiciones, una combinación adecuada de las reglas debe prever errores de secuencia.

Page 59: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM

VI.VI. RESOLUCION DE PROBLEMASRESOLUCION DE PROBLEMAS

Espacios de estados

GENERALIDADESGENERALIDADES

Para elaborar un sistema que resuelva un problema es necesario realizar las siguientes acciones.

1. Definir el Problema con presición incluyendo especificaciones sobre las condiciones iniciales y las situaciones finales que son aceptadas como soluciones del problema.

2. Analizar el problema tomando el cuenta las características que influyen sobre la conveniencia o no de utilizar las diversas técnicas de resolución de problemas.

3. Elegir y aplicar la técnica más conveniente para resolver el problema.

Ejemplo Nº 1:

Problema del juego del Ajedrez.

Para construir un programa para jugar ajedrez se debe:

1. Especificar la posición inicial en el tablero.

2. Especificar las reglas que definen los movimientos legales y las posiciones en el tablero que representan una victoria, tanto para negras como para blancas.

3. Hacer explícitos los objetivos de hacer movimientos legales y ganar la partida.

Page 60: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMDESCRIPCION DEL PROBLEMA

Para describir este problema se utiliza una matriz de 8 por 8, donde cada posición contiene un símbolo que representa una pieza, es la posición inicial en una partida de ajedrez.

OBJETIVO DEL PROBLEMA

Se define como cualquier posición en el tablero, en la que el contrario no puede realizar ningún movimiento legal y el Rey que se encuentra amenazado. Los movimientos legales se definen como un conjunto de reglas compuestas por 2 partes.

La parte izquierda se utiliza como patrón para contraponerlo a la situación actual.

La parte derecha describe el cambio que se debe producir para realizar el movimiento.

Al utilizar reglas de éste tipo es necesario escribir un número muy grande de ellas, debido a que existen 10120 posibles posiciones en el tablero.

Esto tiene 3 dificultades prácticas:

1. No existe una persona que pueda suministrar el conjunto completo de reglas.

2. Hay una alta probabilidad de aparición de errores.

3. Es muy difícil para un programador manipular todas estas reglas (datos).

Esto quiere decir que las reglas deben ser expresadas de una forma más general, entonces:

Peón blanco

Page 61: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMcasilla (e, 2) mover peón blanco

y

casilla (e, 3) de casilla ( e,2 ) a casilla ( e,4 )

vacía

y

casilla (e, 4)

vacía

Este problema ha sido definido como un problema de movimientos ha través de un espacio de estados

ESPACIOS DE ESTADOS

Es el conjunto de estados posibles en un programa. La representación como espacios de estados es la base de la mayoría de los problemas de Inteligencia Artificial.

CARACTERISTICAS

1. Permite la definición formal del problema debido a que crea la necesidad de obtener alguna situación deseada buscando un conjunto de operaciones permitidas.

2. Permite definir la resolución de un problema como una combinación de reglas que definen el movimiento en el espacio.

3. Intenta encontrar una ruta desde el estado actual hasta el estado objetivo.

EJEMPLO Nº 2

JARRAS DE AGUA

Se tienen 2 Jarras de Agua, una con capacidad de 4 litros y la otra con capacidad de 3 litros, ninguna tiene marca de medición, se tiene una bomba que permite llenar las jarras de agua y se puede verter al piso el contenido de las jarras.

OBJETIVO.-

Lograr tener exactamente 2 litros de agua en la jarra de 4 litros. Para este problema el espacio de estado se puede representar como un par ordenado (x, y), donde x es el número de litros en la jarra de 4 y en el número de litros en la jarra de 3.

x = 0,1,2,3,4 y = 0,1,2,3

El estado inicial E.I (0, 0)

Page 62: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMEl estado final (Objetivo) E.O (2, n)

REGLAS.-

1. Si x < 4 entonces(4, y) Llenar la jarra de 4 litros.

2. Si y < 3 entonces(x, 3) Llenar la jarra de 3 litros.

3. Si x > 0 entonces(x - d, y) Vaciar un poco la jarra de 4 litros.

4. Si y > 0 entonces(x, y - d) Vaciar un poco la jarra de 3 litros.

5. Si x > 0 entonces(0, y) Vacíe la jarra de 4 litros al piso.

6. Si y > 0 entonces(x, 0) Vacíe la jarra de 3 litros al piso.

7. Si x + y > 4 y>0 entonces (4,( y + x - 4 )) Verter el agua de la jarra de 3 litros a la de 4 litros, hasta que la jarra de 4 litros se llene.

8. Si x + y > 3 x > 0 entonces ((x + y -3), 3) Verter el agua de la jarra de 4 litros a la de 3 litros, hasta que la jarra de 3 litros se llene.

9. Si x + y < 4 y > 0 entonces (x + y, 0) Vierta toda el agua de la jarra de 3 litros a la jarra de 4 litros.

10. Si x + y < 3 x > 0 entonces (o, x + y) Vierta toda el agua de la jarra de 4 litros a la jarra de 3 litros.

11. Si (0, 2) entonces(2, 0) Vierta 2 litros de la jarra de 3 litros a la jarra de 4 litros

12. Si (x, 2) entonces (0, 2) Vierta al piso el contenido de la jarra de 4 litros.

Una secuencia de operaciones para resolver este problema podría ser:

Jarra de 4 Litros Jarra de 3 Litros Regla Aplicada

0 0

0 3 2

3 0 8

3 3 2

4 2 7

0 2 5 ò 12

2 0 9 ò 11

ESTRETEGIAS DE CONTROLESTRETEGIAS DE CONTROL

REQUISITOS DE UNA BUENA ESTRATEGIA DE CONTROL

1. Debe causar algún cambio o de lo contrario nunca se alcanza la solución.

Page 63: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM2. Debe ser sistemático o de lo contrario se corre el riesgo de aplicar secuencias

de operación no apropiadas varias veces.

Una estrategia de control sistemático para el problema anterior podría ser:

Construir un árbol, cuyas raíces se generan al aplicar, cada una de las reglas aplicables al estado inicial.

Para cada nodo generar todas las posibles soluciones resultantes, de la aplicación de todas las reglas adecuadas

Este proceso se continúa hasta que una reglas produce un estado objetivo, esto es lo que se conoce como Búsqueda Primero en Anchura.

BUSQUEDA PRIMERO EN ANCHURA

Se examinan todos los nodos comenzando por el nodo raíz, los nodos en cada nivel son examinados completamente antes de moverse al nivel más próximo, de ésta forma se asegura que siempre se encuentre la ruta más corta entre el Estado Inicial y el Estado Objetivo.

ALGORITMO

1. Crear una variable lista y asignarle el Estado Inicial.2. Hasta que encuentre el Estado Objetivo, o Lista esté vacía hacer:

2.1. Eliminar el primer elemento E de la lista.2.2. Si lista vacía, Terminar.

Page 64: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM2.3. Para cada regla que empareje con el estado E hacer:

2.3.1. Aplicar la regla para generar un nuevo estado.2.3.2. Si el nuevo estado, es un Estado Objetivo, devolver el estado y terminar, si no, añadir el nuevo estado

al final de la lista.

BUSQUEDA PRIMERO EN PROFUNDIDAD

Consiste en continuar por una sola rama del árbol hasta que se encuentre una solución o hasta que se decida terminar la búsqueda en esa dirección. Terminar la búsqueda en una sola dirección tiene sentido cuando:

1. Se llega a un callejón sin salida.

2. Se produce un estado ya alcanzado.

3. La ruta se alarga más de lo especificado por algún límite.

Si se cumple una de estas tres condiciones, se produce una vuelta atrás o BACK TRACKING. Se vuelve a considerar el estado más recientemente creado desde el cual sea posible algún movimiento alternativo más y se crea un nuevo estado.

ALGORITMO

1. Si el Estado Inicial es el Estado Objetivo devolver éxito y terminar, sino:2. Hasta que se marque éxito o fracaso hacer:

2.1. Generar un sucesor E del estado inicial, sino hay más sucesores generar fracaso.2.2. Llamar a búsqueda primero en profundidad con E, como estado inicial.2.3. Si devuelve éxito marcar.

Si aplicamos este algoritmo al ejemplo de las jarras

COMPARACION ENTRE BUSQUEDA PRIMERO EN ANCHURA Y BUSQUEDA PRIMERO EN PROFUNDIDAD

VENTAJAS DE LA BUSQUEDA PRIMERO EN PROFUNDIDAD.-

1. Necesita menos memoria ya que solo almacena los nodos del camino que se está procesando.

2. Tiene posibilidades de encontrar la solución sin tener que examinar gran parte del espacio de estado.

Page 65: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMVENTAJAS DE LA BUSQUEDA PRIMERO EN ANCHURA.-

1. Nunca queda atrapado en un callejón sin salida.

2. Garantiza que se logre encontrar una solución, si existe.

BUSQUEDA HEURISTICA.-

En el ejemplo de las jarras de agua las estrategias de control que causan movimiento y sean sistemáticas, son una buena solución para lograr el objetivo final, sin embargo, existen problemas donde esto no ocurre y es precisamente el problema del agente viajero.

Un vendedor tiene una lista de N ciudades, cada una de las cuales debe ser visitada exactamente 1 vez, existen para esto carreteras directas entre cada pareja de ciudades de la lista.

OBJETIVO.-

Encontrar la ruta más corta que debe seguir el vendedor, donde debe empezar y terminar en alguna de estas ciudades.

Se podía pensar en resolver el problema con una sencilla estructura de control que causa movimientos y sea sistemático explorando todas las rutas posibles en un árbol y devolver la de menor longitud.

Esta estrategia podría funcionar para una pequeña lista de ciudades, pero se debilitará dramáticamente con el aumento del número de ciudades.

El tiempo total empleado para completar la búsqueda es proporcional a N factorial.

A este fenómeno se le llama Explosión Combinatoria y se necesitan otras estrategias de Control.

Para resolver con eficiencia algunos problemas complicados, a veces es necesario construir estructuras de control que no garanticen una respuesta óptima pero que casi siempre encuentran una buena solución.

Así surge la Heurística que proviene del griego Eureka que significa Descubrir. La Heurística es una técnica que aumenta la eficiencia de un proceso de búsqueda sacrificando demandas de completitud debido a que puede ocurrir que una buena

Page 66: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMsolución puede ser obviada. Existen Heurísticas de propósito general que son aplicables a una amplia variedad de dominios y existen Heurísticas de propósito especial que aprovechan el conocimiento específico para resolver algún problema particular.

EURISTICA DE PROPOSITO GENERAL.-

Es la conocida como el vecino más cercano, y consiste en seleccionar en cada paso, la alternativa localmente superior.

Al aplicar esta Heurística el problema del agente viajero se deriva al siguiente algoritmo:

1. Seleccionar arbitrariamente una ciudad de comienzo.2. Repetir hasta que todas las ciudades hayan sido visitadas.

2.1. Seleccionar como siguiente ciudad entre las que no han sido visitadas, la que sea más cercana.

2.2. Visitar la ciudad seleccionada.

El tiempo empleado para lograr la solución es proporcional a N al cuadrado (T N2)

EURISTICA DE PROPOSITO ESPECIAL.-

Permiten descubrir ideas interesantes en alguna área en particular Ej:

Sea la función f (x, y), que ocurre si los argumentos son idénticos x = y.

En el campo de las matemáticas ésta heurística lleva el descubrimiento de elevar al cuadrado en caso de que la función f sea multiplicación.

En un dominio no formal, lleva a la noción del suicidio en caso de que la función sea matar.

El propósito de una función heurística es guiar el proceso de búsqueda en la dirección más provechosa sugiriendo que camino debe seguir cuando hay más de uno disponible.

RAZONES PARA EL USO DE LA EURISTICA EN LAS ESTRATEGIAS DE CONTROL PARA LA RESOLUCION DE PROBLEMAS.

1. Para evitar la explosión combinatoria.

2. Porque frecuentemente no se necesita una solución óptima.

3. Porque entender comprendes porque funciona o no una heurística sirve para profundizar en la comprensión del problema.

FORMAS DE INCORPORAR EL CONOCIMIENTO HEURISTICO EN UN PROCESO DE BUSQUEDA BASADO EN REGLAS

Page 67: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM1. En la propia regla Ej. En el juego del ajedrez no solo describir el conjunto de

movimientos legales sino también un conjunto de movimientos sensatos determinados por el programador de las reglas.

2. Como función heurística, que evalúe los estados individuales del problema y determina su grado de deseabilidad.

FUNCION HEURISTICA.-

Es una correspondencia entre las descripciones del estado del problema y alguna medida de deseabilidad.

Está representada por número. Los aspectos del problema que se consideran como se evalúan estos aspectos y los pesos qué se les otorga individualmente se eligen de forma que el valor que la función Heurística da a un nodo en el proceso de búsqueda sea una estimación tan buena como sea posible para determinar si el nodo pertenece o no a la ruta que conduce a la solución.

Problema Función Heurística

Ajedrez Ventaja de piezas sobre el oponente.

Agente Viajero Suma de las distancias recorridas.

Un valor alto en el problema del ajedrez indica una buena posición relativa y un bajo valor en el problema del agente viajero indica una situación ventajosa.

El problema que se utiliza en la función Heurística debe minimizar o maximizar según sea el caso.

Page 68: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM

VII.VII. INTRODUCCION A LOS SISTEMAS EXPERTOSINTRODUCCION A LOS SISTEMAS EXPERTOS

Un sistema experto (S.E.) es un programa inteligente que contiene una base de conocimiento (B.C.) y una máquina de inferencia (M.I.), tiene como objetivo duplicar a un experto humano en determinado campo o materia, además contiene el conocimiento de uno o más expertos, garantizando que este conocimiento esté disponible aún cuando el humano no lo esté.

Los sistemas expertos contienen conocimientos heurísticos.

DESARROLLO HISTORICO DE LOS SISTEMAS EXPERTOS.-DESARROLLO HISTORICO DE LOS SISTEMAS EXPERTOS.-

En 1965 – 1970 se desarrolla el sistema DENDRAL para determinar la estructura molecular y densidad....

En 1966 – 1971 se desarrolla el proyecto MACSYMA, un sistema matemático, para realizar cálculos integrales, diferenciales, etc.

En 1967 – 1969 se realiza el Congreso Internacional de divulgación de las posibilidades y aplicaciones con Bases de Datos.

En 1976 - 1978 se desarrolla el proyecto PROSPECTOR para determinar la existencia de yacimientos minerales a partir de la descripción geológica y geométrica, con este proyecto se descubrió un yacimiento de Molibdeno de más de $ 100’000.000

En 1977 se realiza el Congreso Mundial de Inteligencia Artificial, en donde se expone el concepto de Sistemas Expertos, concepto de Feigenbaum, el mismo que dice que es un sistema de base de conocimiento que pretende imitar el comportamiento de los expertos humanos en un dominio restringido.

En 1977 – 1981 se desarrollan los proyectos de EMYCIN/MYCIN, HYDRA/PROSPECTOR.

En 1981 se crean herramientas tales como:

EXSYS (basado en reglas)

GURU (basado en reglas)

LOOPS (basado en reglas y programación orientada a objetos (POO)

KEE (basado en reglas y frames).

ESTRUCTURA FUNCIONAL DE LOS SISTEMAS EXPERTOSESTRUCTURA FUNCIONAL DE LOS SISTEMAS EXPERTOS

Page 69: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM

CARACTERISTICAS DE LOS SISTEMAS EXPERTOS.-CARACTERISTICAS DE LOS SISTEMAS EXPERTOS.-

1. Están compuestas por una Base De Conocimiento Simbólico:

contienen conocimientos (simbólicos) de conceptos y definiciones,

conocimiento accesible relativamente fácil,

el conocimiento es de dominio limitado,

se sintetiza el conocimiento de libros, revistas, personas, etc.

2. Reflejan un Conocimiento Experto:

contiene conocimiento que incluye experiencia,

contiene soluciones precisas eficientes y efectivas,

las soluciones son consistentes y no contradictorias,

el conocimiento es predictivo ante nuevas situaciones.

3. Permite el autoconocimiento Examinando El Razonamiento:

durante el proceso de inferencias se analiza el ¿porqué?,

después del proceso de inferencias se muestra el ¿cómo?.

APLICACIONES DE LOS SISTEMAS EXPERTOS.-APLICACIONES DE LOS SISTEMAS EXPERTOS.-

1) Análisis o Selección ejemplos: Tutoriales y Sistemas de diagnóstico.

2) Síntesis o Construcción ejemplos: Sistemas de Diseño y Sistemas de Planificación.

3) Herramientas de Diseño

Lenguajes de Inteligencia Artificial ejemplo: PROLOG, LISP

Lenguajes de propósitos generales ejemplo: PASCAL, VISUAL C++.

Page 70: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMAMBIENTES DE DESARROLLO DE SISTEMAS EXPERTOS.-AMBIENTES DE DESARROLLO DE SISTEMAS EXPERTOS.-

KEE

LOOPS

STDC

ARITY EXPERT

SHELLS permite tener cualquier Base de Conocimiento y cualquier Máquina de Inferencia.

HUMBLE

ARIES

COMO TRABAJA UN SISTEMA EXPERTO.-COMO TRABAJA UN SISTEMA EXPERTO.-

BASE DEL CONOCIMIENTO.-BASE DEL CONOCIMIENTO.-

Es el corazón del Sistema experto y contiene el conocimiento representado a través de las reglas, frames, scripts, redes semánticas.

La forma de representación del conocimiento más utilizadas son las Reglas de Producción, debido a que el conocimiento que puede estar representado de esta forma es muy extenso.

Page 71: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMBASE DE DATOS.-BASE DE DATOS.-

Se denomina Base de Datos Generales, contiene un amplio rango de información sobre el estado actual del problema que se está resolviendo, es una parte de la memoria de trabajo, que contiene los estados del sistema.

Primeramente el Sistema experto hace algunas preguntas iniciales al usuario para tener un punto de partida en el proceso de búsqueda, luego la Máquina de Inferencia comienza el proceso de búsqueda mediante el apareamiento de reglas en la Base del Conocimiento (B.C.) con la información en la Base de Datos (B.D.), la Base de Datos se va actualizando, según se examinan las reglas en la Base del Conocimiento, actualizándose así el estado actual del problema e incorporando nuevos hechos que quedan disponibles para ser utilizados en el proceso de toma de decisión, la Base de Datos almacena además una lista de las reglas que han sido examinadas, disparadas y en que orden, para proporcionarle al usuario una explicación del proceso de razonamiento.

MAQUINA DE INFERENCIA.-MAQUINA DE INFERENCIA.-

Es el software que implementa la búsqueda y el reconocimiento de patrones, el intérprete de reglas examina las reglas tratando de parear con las condiciones iniciales y actuales que se encuentran en la Base de Datos, cuando una regla es disparada puede referenciar otra regla creándose una cadena de inferencia cada vez que se examina una regla se chequea contra el estado actual de la solución del problema almacenado en la Base de Datos, cuando una regla se dispara puede incorporar nuevos hechos a la Base de Datos, el proceso continua hasta encontrar la solución.

Los Sistemas Expertos deben tener:

1) Facilidad de explicación

2) Fácil modificación

3) Portabilidad (Funcionar en cualquier plataforma)

4) Aprendizaje adaptativo (el Sistema Experto debe ser capaz de aprender con su propio uso)

CREACION DE UN SISTEMA EXPERTOCREACION DE UN SISTEMA EXPERTO

1. Identificación del problema y necesidad de solución.

2. Determinar si el problema puede solucionarse mediante un Sistema Experto.

Page 72: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM3. Estudiar todas las alternativas.

4. Determinar si es económicamente factible (ROI retorno de su inversión).

5. Seleccionar la herramienta de desarrollo.

6. Realizar la Ingeniería del Conocimiento (proceso largo de adquisición del conocimiento).

7. Diseño del Sistema.

8. Pruebas, chequeo, depuración.

9. Implantación y mantenimiento.

TRATAMIENTO DE LA INCERTIDUMBRE EN UN SISTEMA EXPERTO.-

Los Sistemas Expertos tienen la habilidad de trabajar con información incompleta o con cierto grado de incertidumbre, aumentando la probabilidad de ofrecer siempre una respuesta al problema dado.

FACTOR DE CERTIDUMBRE EN LOS SISTEMAS EXPERTOS.-

Es una medida de cuan verdadero o falso puede ser una afirmación, se usa generalmente un valor entre –1 y +1.

En una regla cada clausula puede tener su propio factor de certidumbre (F.C.) y esto implica que cada regla tenga su factor de certidumbre compuesto.

Si las clausulas están conectadas por AND se escoge el factor de certidumbre mínimo y si están conectados por OR se escoge el máximo por ejemplo:

R1 si x (0,4)and y (0.75)

entonces z, FCc = 0.4

R2 si A (0,5)or B (0.85)

entonces C, FCc = 0.85

Si se establece una cadena de razonamiento entre un conjunto de reglas el FCc (factor de certidumbre compuesto) de una regla afecta al de la otra regla, se establece la siguiente fórmula:

FCc = FC(x) + FC(y) – FC(x) * FC(y)

Ejemplo:

R3 IF PAND Q

Page 73: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMTHEN R (0.65)

R4 IF RTHEN S (0.2)

FCc = FC(R3) + FC(R4) – FC(R3) * FC(R4)FCc = 0.72

Si la cadena de razonamiento tiene más de dos reglas se combina el FCc de las dos primeras reglas con el de la tercera utilizando la misma fórmula hasta obtener el último FCc.

LOGICA DIFUZA (FUZZY LOGIC).-

Es un sistema elaborado por el informático y matemático LOFTY ZADEN para tratar información inexacta, se le asignan rangos numéricos con un valor de posibilidad entre 0 y 1 a conceptos como peso, talla, belleza, caliente, frío. Esto permite trabajar con cantidades ambiguas o datos que son objeto de interpretación.

Los valores entre 0 y 1 significan un grado de posibilidad de que el dato está en un rango dado. Cuando un Sistema Experto utiliza conocimiento impreciso, el proceso de razonamiento es más real, sin embargo es mucho más complicado la implementación.

EJERCICIO Nº 1

Elabore el árbol de búsqueda del siguiente Sistema Experto para el diagnóstico de falla en una lampara. (EXAMEN)

R1 Si lampara no trabajaEntonces chequear si está encendida

R2 Si lampara no está encendidaEntonces chequear fusible

R3 Si lampara no está encendida y fusible está buenoEntonces chequear falla de potencia

R4 Si lampara no está encendida no hay fusibleEntonces chequear breaker

R5 Si lampara no está encendiday breaker está encendido

Entonces chequear falla de potencia

R6 Si hay falla de potenciaEntonces esperar por el retorno de potencia

R7 Si lampara está encendidaEntonces chequear la bombilla

R8 Si foco esta quemado

Page 74: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTMEntonces reemplazar el foco

R9 Si el foco está bien Entonces chequear el conmutador

R10 Si el conmutador está maloEntonces cambiar conmutador

R11 Si el foco y conmutador está buenoEntonces chequear el enchufe

R12 Si el enchufe está maloEntonces reemplazar el enchufe

R13 Si el foco, conmutador y enchufe están buenosEntonces chequear el cable

R14 Si el cable está malEntonces reemplazar el cable

R15 Si el foco, conmutador, enchufe y cable están buenos

Entonces chequear el tomacorriente

R16 Si tomacorriente está malEntonces reemplazar el tomacorriente

RESOLUCION

Page 75: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM

INDICE INDICE

I. INTRODUCCIÓN.......................................................................................................................................................1

1.1. Consideraciones Generales.....................................................................................................................................1

1.2. Objetivos de la IA.....................................................................................................................................................2

1.2.1. INGENIERIL..................................................................................................................................................2

1.2.2. CIENTIFICO..................................................................................................................................................2

1.3. Breve reseña histórica de la Inteligencia Artificial................................................................................................2

1.4. CONOCIMIENTO...................................................................................................................................................3

1.5. PARTES DE UN SISTEMA DE INTELIGENCIA ARTIFICIAL.......................................................................3

1.6. LA INTELIGENCIA ARTIFICIAL vs. LA COMPUTACION TRADICIONAL..................................................3

1.7. Métodos de razonamiento artificial........................................................................................................................4

1.8. Test de Turin............................................................................................................................................................4

1.9. Campos de Aplicación de la Inteligencia Artificial................................................................................................5

1.10. Ventajas y desventajas de la IA...........................................................................................................................6

1.11. CRITERIOS PARA EL EXITO..........................................................................................................................7

1.11.11. CRITERIOS PARA EL EXITO EN UNA APLICACION DE INTELIGENCIA ARTIFICIAL......7

1.11.12. PREGUNTAS ADICIONALES PARA EL EXITO................................................................................7

II. Lenguajes de programación de la I.A.....................................................................................................................8

2.1. Uso actual del lenguaje LISP..................................................................................................................................8

2.2. Lenguajes de Programación: PROLOG.................................................................................................................9

2.2.1. Definición sintáctica simple...........................................................................................................................9

2.2.2. Reglas.............................................................................................................................................................12

2.2.3. Operadores y Estructuras............................................................................................................................18

2.2.4. Listas..............................................................................................................................................................22

2.2.5. Operaciones con listas..................................................................................................................................26

III. MODELOS DE REPRESENTACION DEL CONOCIMIENTO.......................................................................31

3.1. Lógica.....................................................................................................................................................................31

3.2. RAZONAMIENTO DEDUCTIVO.......................................................................................................................32

3.3. RAZONAMIENTO INDUCTIVO........................................................................................................................32

3.4. LOGICA PROPOSICIONAL................................................................................................................................33

3.5. LOGICA DE PREDICADOS................................................................................................................................33

3.5.1. VARIABLES EN LA LOGICA DE PREDICADOS................................................................................34

3.5.2. CUANTIFICADORES UNIVERSALES...................................................................................................34

3.6. INTRODUCCIÓN A RESOLUCIÓN DE PROBLEMAS A TRAVÉS DE UN EJEMPLO..............................35

3.7. Formas de representación del conocimiento........................................................................................................35

3.7.1. Redes Semánticas..........................................................................................................................................35

3.7.2. CRITERIOS PARA EVALUAR UNA BUENA REPRESENTACION..................................................36

3.7.3. PARTES FUNDAMENTALES DE UNA REPRESENTACION.-..........................................................36

3.7.4. CARACTERISTICAS GENERALES DE LAS REDES SEMANTICAS.-............................................37

Page 76: Libro InteligenciaArtificail

ING. HERNAN PATRICIO VARGAS NOLIVOS

UTM3.8. MODELOS DE REPRESENTACION DEL CONOCIMIENTO.......................................................................38

3.8.1. LISTAS..........................................................................................................................................................38

3.8.2. ARBOLES.-...................................................................................................................................................38

3.8.3. FRAMES o MARCOS.-...............................................................................................................................39

3.8.4. GUIONES o SCRIPT.-.................................................................................................................................40

IV. REGLAS DE PRODUCCION...............................................................................................................................43

4.1. INTRODUCCIÓN.................................................................................................................................................43

4.2. SISTEMA DE DEDUCCIÓN...............................................................................................................................44

4.3. ENCADENAMIENTO PROGRESIVO................................................................................................................44

4.3.1. SISTEMA DE DEDUCCIÓN PARA IDENTIFICAR ANIMALES TALES COMO:..........................45

4.4. ENCADENAMIENTO REGRESIVO..................................................................................................................46

4.5. SISTEMAS DE REACCION................................................................................................................................48

V. REPRESENTACION DE LA INCERTIDUMBRE.............................................................................................53

5.1. FACTOR DE CERTIDUMBRE...........................................................................................................................53

5.2. DIFERENCIAS ENTRE PROBABILIDAD Y FACTOR DE CERTIDUMBRE..............................................54

5.2.1. PROBABILIDAD.-.......................................................................................................................................54

5.2.2. CERTIDUMBRE.-.......................................................................................................................................55

5.2.3. INCERTIDUMBRE.....................................................................................................................................55

5.2.4. FACTOR DE CERTEZA y SISTEMAS BASADOS EN REGLAS.-......................................................56

5.2.5. DIFERENCIAS.-..........................................................................................................................................56

VI. RESOLUCION DE PROBLEMAS.......................................................................................................................58

6.1. GENERALIDADES..............................................................................................................................................58

6.2. ESTRETEGIAS DE CONTROL...........................................................................................................................61

6.2.1. REQUISITOS DE UNA BUENA ESTRATEGIA DE CONTROL.........................................................61

VII. INTRODUCCION A LOS SISTEMAS EXPERTOS...........................................................................................67

7.1. DESARROLLO HISTORICO DE LOS SISTEMAS EXPERTOS.-...................................................................67

7.2. ESTRUCTURA FUNCIONAL DE LOS SISTEMAS EXPERTOS....................................................................67

7.3. CARACTERISTICAS DE LOS SISTEMAS EXPERTOS.-................................................................................68

7.4. APLICACIONES DE LOS SISTEMAS EXPERTOS.-.......................................................................................68

7.5. AMBIENTES DE DESARROLLO DE SISTEMAS EXPERTOS.-....................................................................69

7.6. COMO TRABAJA UN SISTEMA EXPERTO.-..................................................................................................69

7.7. BASE DEL CONOCIMIENTO.-..........................................................................................................................69

7.8. BASE DE DATOS.-...............................................................................................................................................70

7.9. MAQUINA DE INFERENCIA.-..........................................................................................................................70

7.10. CREACION DE UN SISTEMA EXPERTO....................................................................................................70