Está en la página 1de 73

Norma Verónica Ramírez Pérez

1.1. Historia de la IA.


1.2. Conceptos y técnicas (Estado del arte) .
1.3. Desarrollos actuales.
1.3.1. Procesamiento de Lenguaje
Natural (PLN).
1.3.2. Reconocimiento de patrones.
1.3.3. Robótica.
1.3.4. Sistemas Expertos.
1.3.5. Lógica Difusa (Fuzzy logic).
1.4. Modelos de agente inteligente.
1.5. Heurística.
2.1. Solución de problemas con búsqueda.
2.2. Espacios de estados.
2.2.1. Determinísticos.
2.2.2. No determinísticos.
2.3. Métodos de búsqueda.
2.3.1. Primero en anchura (breadthfirst).
2.3.2. Primero en profundidad (depthfirst).
2.3.3. Grafos O.
2.3.4. Grafos A.
2.4. Satisfacción de restricciones.
2.5. Teoría de juegos.
3.1. Sistemas basados en conocimiento.
3.1.1. Concepto de conocimiento.
3.1.2. Lenguajes utilizados en la
representación de conocimiento.
3.2. Mapas conceptuales.
3.3. Redes semánticas.
3.4. Lógica de predicados.
3.4.1. Sintaxis.
3.4.2. Semántica.
3.4.3. Validez.
3.4.4. Inferencia.
3.5. Razonamiento con incertidumbre.
3.5.1. Aprendizaje.
3.5.2. Razonamiento probabilístico.
3.5.3. Lógicas multivaluadas.
3.5.4. Lógica difusa.
3.6. Demostración y métodos.
4.1. Reglas de producción.
4.1.1. Sintaxis de las reglas de
producción.
4.2. Semántica de las reglas de producción.
4.2.1. Conocimiento causal.
4.2.2. Conocimiento de diagnóstico.
4.3. Arquitectura de un sistema de
producción.
4.3.1. Hechos.
4.3.2. Base de conocimientos.
4.3.3. Mecanismos de control.
4.4. Ciclo de vida de un sistema de
producción.
5.1. Robótica.
5.1.1. Conceptos básicos.
5.1.2. Clasificación.
5.1.3. Desarrollos actuales y
aplicaciones.
5.2. Redes Neuronales (RN).
5.2.1. Conceptos básicos.
5.2.2. Clasificación.
5.2.3. Desarrollos actuales y
aplicaciones.
5.3. Visión artificial.
5.3.1. Conceptos básicos.
5.3.2. Desarrollos actuales y
aplicaciones.
5.4. Lógica difusa (Fuzzy Logic).
5.4.1. Conceptos básicos.
5.4.2. Desarrollos actuales y
aplicaciones.
5.5. Procesamiento de Lenguaje Natural
(PLN).
5.5.1. Conceptos básicos.
5.5.2. Desarrollos actuales y
aplicaciones.
5.6. Sistemas Expertos (SE).
5.6.1. Conceptos básicos.
5.6.2. Clasificación.
5.6.3. Desarrollos actuales y
aplicaciones.
Con esta asignatura se pretende dar una
Introducción a la Inteligencia Artificial (IA)
presentando a los estudiantes, algunos de los
métodos más utilizados en las diferentes áreas de
la Inteligencia Artificial. Para ello, se introducen
las técnicas más comunes de manipulación y
representación del conocimiento y se analizan las
características de las herramientas disponibles
para la construcción de aplicaciones reales, en las
diferentes áreas de la IA, con el fin de conformar
una actitud científica, crítica y responsable del
egresado.
¨ Matlab
¨ Java
¨ Prolog
¨ WEKA
PRÁCTICAS POR PARCIAL: 4 PRACTICAS.
PRÁCTICAS INDIVIDUALES(NO GRUPALES),
PRÁCTICA QUE SEA COPIAS SERAN
ANULADAS)
1ER. PARCIAL

80% EXAMEN, 20% PRÁCTICAS Y PARTICIPACIÓN


EN CLASE,
2DO. PARCIAL
80% EXAMEN, 20% PRÁCTICAS Y PARTICIPACIÓN
EN CLASE

3ER. PARCIAL
80% EXAMEN, 20% PRÁCTICAS Y PARTICIPACIÓN
EN CLASE
4 T O . PA R C I A L - P R O Y E C T O I N D I V I D U A L
RELACIONADO CON LOGICA BORROSA, REDES
NEURONALES y SISTEMAS EXPERTOS (SE DEFINE
EN LA TERCERA CLASE, Y DEBERAN ENTREGAR
PROTOCOLO DEL PROYECTO QUE DEBE INCLUIR
(TÍTULO DEL PROYECTO , RESUMEN,
INTRODUCCIÓN, DESCRIPCION DEL PROBLEMA,
JUSTIFICACION DEL PROYECTO, OBJETIVO
GENERAL Y ESPECÍFICOS, METODOLOGÍA Y
CRONOGRAMA DE ACTIVIDADES)
50% PRESENTACION ORAL
50% PRESENTACION ESCRITA
EVALUACIÓN:
PRESENTACIÓN ORAL Y ESCRITA(ENTREGAR
REPORTE DE RESULTADOS( EL CUAL DEBE SER
CLARO Y ACORDE AL CRONOGRAMA DE
ACTIVIDADES DEL PROTOCOLO, DEBERÁ
INCLUIR ADEMAS(TITULO DEL PROYECTO,
RESUMEN, INTRODUCCION, METODOLOGIA,
RESULTADOS, CONCLUSIONES Y BIBLIOGRAFIA)
VALOR CADA UNO 50% DE ACUERDO A CIERTOS
CRITERIOS
• N O S E T O M A R A E N C U E N TA L A
ASISTENCIA, SIN EMBARGO, HABRÁ
PRÁCTICAS EN CLASE QUE TE PUEDEN
SERVIR PARA PASAR EL PARCIAL.
• LA ENTRADA SE HARÁ SOLO DESPUES DE
15 MINUTOS, UNA VEZ INICIADA LA
HORA DE CLASE.
¿Que necesitamos para introducirnos al mundo de la
inteligencia artificial?

Introducción a la ingeniería del conocimiento

La Ingeniería del Conocimiento, se define como el


subcampo de la Inteligencia Artificial concerniente
a la adquisición, conceptualización, representación
y aplicación de conocimientos, o como la disciplina
de ingeniería por la cual los conocimientos se
integran dentro de un sistema computacional para
resolver problemas complejos que normalmente
requieren un alto nivel de experiencia humana.
En la ingeniería del conocimiento se debe tener la
capacidad de:
* Facultad de comprender o entender las cosas
* Enfrentarse a cualquier situación, en especial a
las nuevas , por ajustes de la propia conducta.
* Tener la capacidad de aprender las
interpretaciones de los hechos actuales de
modo que nos sirvan de guía de acción hacia
una meta deseada.
Aprender: Adquirir el conocimiento de una cosa
por medio del estudio o de la experiencia.

Razonar: Hacer uso de la razón y la inteligencia


para estructurar y exponer las ideas

Razonamiento: exposición de una serie de


actividades por lo que la persona pasa de un
juicio final a uno terminal
El estudio de cómo lograr que las computadoras
realicen tareas que, por el momento, los hombres
hacen mejor…..

La Inteligencia Artificial es la ciencia de hacer


máquinas que hagan cosas que realizadas por el
hombre requieran uso de inteligencia.
Inteligencia es la forma de resolver problemas que
aún no se entienden, porque una vez que uno sabe
como resolver un problema, no se ve como algo
que necesite inteligencia
¨ [La automatización de] de actividades que
vinculamos con procesos de pensamiento humano;
actividades como la toma de decisiones, resolución
de problemas, aprendizaje, … R.E. Bellman.

q El campo de la Inteligencia Artificial tiene su


principal contenido en aquellos procesos comunes
que reúnen percepción y conocimiento, amén que
el proceso pueda ser comprendido y estudiado
científicamente N. Nilson
Que una máquina actué como un humano.

Una prueba para demostrar esto es:

Prueba de Turing: Un humano interroga a un


ordenador por medio de un teletipo. La prueba
se considera superada si el evaluador no es
capaz de determinar si las respuestas
provienen de un humano o de un ordenador
PROCESAR UN
LENGUAJE
NATURAL:
Establecer una
apropiada
comunicación

APRENDIZAJE: REPRESENTAR EL
Adaptarse a
nuevas
PRUEBA CONOCIMIENTO:
Guardar la
circunstancias DE información
suministrada
para detectar y
extrapolar TURING durante el
esquemas interrogatorio

RAZONAR
AUTOMÁTICA
MENTE
Utilizar la
información
almacenada para
obtener nuevas
conclusiones
q ¿Cómo piensan los humanos?
q Una vez que se disponga de una teoría precisa
de la mente, puede expresarse tal teoría en un
programa de ordenador
q GPS (General Problem Solver), 1957. Diseñado
usando los protocolos que los psicólogos tenían
de cómo resolvían problemas los humanos.
Newel y Simon
q Aristóteles fue de los primeros en intentar
codificar la “manera correcta de
pensar” (silogismos)
q Lógica
q Dos problemas:
1.) Imposibilidad, en muchos casos, de
expresar un conocimiento informal en
términos formales
2.) Ineficiencia
Es una disciplina de la Inteligencia Artificial que
se ocupa de la formulación e investigación de
mecanismos computacionales para la
comunicación entre las personas y maquinas
mediante el uso de lenguajes naturales, estos
lenguajes son utilizados en la comunicación
humana , ya sean escritos , hablados y signados.
v Es un subcampo de la ciencia computacional y
el lenguaje humano.

v Es considerado como un problema IA-


completo es decir, que requiere un extenso
conocimiento y habilidad para manipularlo.

v También es considerado como un subcampo


de la inteligencia artificial.
Estructuras del lenguaje Procesos de análisis

Fonética y morfología: estudio de los Morfológico-léxico: elabora una


sonidos para formar palabras a partir cadena de caracteres a partir de los
de las unidades más pequeñas. sonidos y la transforma en unidades
significativas(unidades léxicas)
utilizando el diccionario y las reglas
morfológicas.
Sintaxis: estudia las combinaciones Sintáctico: a partir de las unidades
de las palabras para formar frases léxicas se genera una estructura
correctas. representativa (árbol, red, etc.)

Semántica: estudia el significado de Semántico: a partir del proceso


las palabras y su forma de sintáctico se obtiene una nueva
combinación para llegar al significado estructura o forma lógica que
de una oración representa el sentido de la oración.
Gramática de contexto: estudia como Contextual: utiliza la estructura
el contexto afecta a la interpretación semántica para obtener la
de las oraciones interpretación final de la oración
según el contexto.
Aprendizaje Automático Estadístico.
¿Pero que necesitamos saber para implementarlos?
Para aprender a manejar este tipo de algoritmos se
requieren los siguientes conocimientos:

Ø Lingüística
Ø Ciencia de la computación
Ø Estadística
Ø Estadística bayesiana
Ø Algebra Lineal
Ø Teoría de la optimización
El reconocimiento de patrones es la ciencia que se ocupa de
los procesos sobre ingeniería, computación y matemáticas
relacionados con objetos físicos o abstractos, con el propósito
de extraer información que permita establecer propiedades
de entre conjuntos de dichos objetos.

Aplicaciones:
Reconocimiento de caras, detección de fallos en máquinas a
partir de las medidas de sensores, etc.).
Definición de robot
Manipulación multifuncional reprogramable diseñado para mover
materiales, partes, herramientas o dispositivos específicos
mediante trayectorias variables programado
• Conexión inteligente de precepción a acción.
• Una máquina programable capaz de percibir y actuar en el mundo
con cierta autonomía.
Un sistema experto es un sistema de computo
que emula la habilidad de tomar decisiones
de un especialista humano. El termino emular
significa que un sistema experto tiene el
objetivo de actuar en todos los aspectos como
un especialista humano.
Una emulación es mucho mas fuerte que una
simulación, ya que en algunos aspectos solo se
requiere que se actúe como en la realidad.
robótica

Habla visión

Sistemas
lenguaje
artificiales
natural
neuronales

sistemas
expertos
También el sistema experto se conoce como:
Sistema basado en conocimiento, sistema experto
basado en conocimiento.

La mayoría de los investigadores utilizan el


nombre de sistema experto, solo por que su
nombre es más corto.
La lógica Borrosa es una extensión de la lógica
tradicional(booleana) que utiliza conceptos de
pertenencia de conjuntos mas parecidos a la
manera de pensar del ser humano.
El concepto de subconjunto borroso fue
introducido por L.A. Zadeh en 1965 como una
generalización de un subconjunto exacto
tradicional.
Los subconjuntos exactos usan la lógica Booleana con valores
exactos como por ejemplo la lógica binaria que usa valores
de 1 o 0 para sus operaciones.

La lógica borrosa no usa valores exactos como 1 o 0 pero usa


valores entre 1 y 0 (inclusive) que pueden indicar valores
intermedio (Ej. 0,0.1,0.2,….0.9,1.0, etc)

La lógica Borrosa también incluye los valores 0 y 1 entonces se


puede considerar como un superconjunto o extensión de la
lógica exacta.
Un agente inteligente, es una entidad capaz de
percibir su entorno, procesar tales percepciones
y responder o actuar en su entorno de manera
racional , es decir, de manera correcta y
tendiendo a maximizar un resultado esperado.
La heurística trata de la resolución de
problemas aplicando soluciones parciales, a
menudo intuidas. Se evalúan los resultados
intermedios obtenidos para aproximarse poco a
poco al resultado o solución final. También se
aplican atajos que funcionan aunque no se sepa
exactamente por qué. Es el arte del
descubrimiento. Existen estrategias, reglas y
silogismos que ayudan a encontrar soluciones
heurísticas.
Ejemplo de razonamiento heurístico:
Mi computadora está fallando.
1.- ¿Enciende? Sí: Pase a 2.
No: Pase a 3.
2.- ¿Despliega la información en la pantalla? Sí:
Pase a 4. No:
Pase a 5.
3.- Revise el cable de corriente. ¿Enciende? Sí:
Pase a 2. No:
Pase a 6.
4.- ¿Despliega información de los discos duros? Sí:
Pase a 7. No:
Pase a 8.
5: Revise los módulos de Memoria Ram. ¿Despliega la información en
pantalla? Sí:
Pase a 4. No:
Pase a 9. 6.- Revise la fuente de poder. A: Mueva el botón de
encendido. ¿Encendió? Sí:
Pase a 2 No:
Pase a 10 B: ¿Huele a quemado? Sí:
Pase a 10 No:
Pase a 10 7.- La computadora arranca correctamente. 8.- Cambie los
discos duros. 9.- Cambie la Memoria Ram. 10.- Cambie la fuente
de poder.
• Diseño de sistemas de búsqueda de soluciones.
• Espacio de estados.
• Representación mediante espacio de estados.
• Algoritmos de búsqueda.
• Estrategias de búsqueda.
• Búsqueda foward.
• Búsqueda backward.
• Algoritmo Backtracking.
• Búsqueda en profundidad y anchura.
Definir el problema de forma precisa:
• Nodo(s) inicial(es).

• Nodo(s) objetivo o solución.

Analizar el problema:
*Identificar las reglas,
Aislar y representar el conocimiento
Seleccionar la mejor técnica de búsqueda.
Es la representación de un problema que abarca
todas las posibles situaciones que se pueden
presentar en la solución del mismo.
Nodos: Describen situaciones particulares del
problema.
Arcos: Representan los movimientos legales o
reglas que rigen el espacio de estados;
determinan si es posible pasar de un nodo a
otro.
• Interpretación del problema
• Descripción de los estados.
• Definición de los operadores.
• Definición del objetivo.
Implícitos
(Reglas que
describen Juegos
el problema

Estado de
espacios
Explícitos Deterministicos Sistemas Expertos
(Descripción
Completa del
Problema;
Situación por
No
situación
Deterministicos Sistema de Lógica
Borrosa
Los espacios de estados implícitos normalmente
utilizan un sistema de producción para generar
sobre la marcha los posibles estados siguientes de
un estado dado. Los juegos suelen crear un espacio
de estados implícito ya que en un juego pueden
variar dependiendo de las reglas que lo describen.

Los espacios de estados explícitos son aquellos en


lo que se define , previo al inicio de la búsqueda ,
todos los estados posibles y las conexiones entre
ellos.
Estado Inicial
Estado inicial
Acciones, Operadores , Nivel 0 Estado inicial del problema
reglas de transición

Conjunto de acciones,
operadores, reglas de transición:
Nivel 1
*Descripción del estado o estados
que se alcanza , desde un estado
concreto, al ejecutar la acción.
•Cada acción tiene un coste >0.
•Estado Meta, o prueba objetivo:
Nivel 2
•Descripción de estado para saber
si es un estado o meta objetivo

Estados: Estado Inicial + Conjunto de operadores


Conjunto de todos los estados que pueden alcanzarse desde el
estado inicial mediante cualquier secuencia valida de acciones.
Camino: secuencia de acciones que permite n para de un estado a
otro,
Coste del camino(g): ∑ coste de cada acción del camino.
La función de un algoritmo de búsqueda es
encontrar una trayectoria de solución por
medio del espacio de estados.
• Implementar un espacio de estados con árboles
o grafos
• Utilizar un algoritmo que detecte ciclos para
eliminarlas como posibles trayectorias.
• Solucionar el problema.
Gato Rompecabezas

Árbol Grafo
ü Dirección de búsqueda.
• Guiada por datos(forward).
• Guiada por objetivos(backward).
ü Orden de análisis de estados
• Busqueda ciega o fuerza bruta
• Primero en profundidad.
• Primero en anchura
• Todos o la mayoría de los datos son
proporcionados inicialmente.

• E x i s t e u n g r a n n u m e ro d e o b j e t i v o s
potenciales, pero las formas de combinar los
hechos y la información es restringida.

• Es difícil establecer el objetivo desde el


principio.
• El objetivo es proporcionado al formular el
problema
• Existe un gran número de reglas que cumplen
con los hechos disponibles
• Cuando los datos del problema no son
proporcionados , pero deben ser determinados
por mecanismo de solución.
El algoritmo Backtracking
• Es una técnica general de resolución de
problemas, que suele aplicarse sobre todo a
juegos y problemas de optimización.
• Realiza una busqueda exhaustiva y sistemática
en el espacio de soluciones del problema.
• La solución de un problema de backtraking se
puede expresar como una tupla(x1,x2,… xn),
que satisface unas restricciones r(x1,x2,…xn) y
a veces optimizando una función objetivo.
¨ En cada momento el algoritmo se encontrará en un cierto
nivel k, con una solución parcial (x1,x2,…,xk) (con k<=n).
¡ Si puede añadirse un elemento xk+1 a la solución parcial se
avanza
al nivel k+1.
¡ Si no se prueban otros valores válidos para xk.
¡ Si no existe ningún valor que sea válido por probar, se retrocede
al nivel anterior k-1.
¡ Se continua con este proceso hasta que la solución parcial sea
una solución del problema o hasta que no queden más
posibilidades por probar (en el caso de que no se encuentre
ninguna solución o se busquen todas las soluciones del
problema).
¨ En definitiva, el algoritmo realiza una búsqueda en
profundidad en el árbol de soluciones del problema.

x1

x2

x3
¨ En definitiva, el algoritmo realiza una búsqueda en
profundidad en el árbol de soluciones del problema.

x1 2 10 14

x2 3 6 7 11 12 15 16

x3 4 5 8 9 13 17 18
¨ Por realizar una búsqueda exhaustiva en el espacio de
soluciones del problema, los algoritmos de backtracking son
bastante ineficientes.
¨ En general, se tienen tiempos con órdenes de complejidad
factoriales o exponenciales.
¨ Por esto, los algoritmos de backtracking se utilizan en
problemas para los que no existen un algoritmo eficiente
que los resuelva.
Los algoritmos de búsqueda no informada
(también conocidos como algoritmos de búsqueda
ciega)
no dependen de información propia del problema
a la hora de resolverlo. Esto quiere decir que son
algoritmos generales y por lo tanto se pueden
aplicar en cualquier circunstancia.
Estos algoritmos se basan en la estructura del
espacio de estados y determinan estrategias
sistemáticas para su exploración. Es decir, siguen
una estrategia fija a la hora de visitar los nodos
que representan los estados del problema. Se trata
también de algoritmos exhaustivos, de manera
que pueden acabar recorriendo todos los nodos
del problema para hallar la solución.
Existen básicamente dos políticas de recorrido de
un espacio de búsqueda, en anchura y en
profundidad.
Al ser algoritmos exhaustivos y sistemáticos su
coste puede ser prohibitivo para la mayoría de
los problemas reales, por lo tanto solo será
aplicables en problemas pequeños. Su ventaja es
que no nos hace falta obtener ningún
conocimiento adicional sobre el problema, por lo
que siempre son aplicables.
Este algoritmo define la forma de moverse a lo
largo de la estructura arbórea examinando los
valores de los nodos de manera sistemática y
controlada de forma que se pueda encontrar el
nodo solución.
La idea de este algoritmo es generar varias
trayectorias de una determinada longitud antes
de crear una trayectoria mas larga.
La búsqueda es recorrida de izquierda a derecha ,
todos los subjetivos generados por el objetivo
nivel inmediatamente superior antes de
considerar el siguiente nivel de profundidad del
árbol.

Es considerado como un procedimiento


completo: es decir garantiza encontrar una
solución si esta existe . Pero en general no es
optimo( no encontrará la mejor solución ,
simplemente la primera que satisfaga el objetivo).
1. Crea una lista de nodos e inicializarla con el
nodo raíz(estado inicial). Esta lista se maneja
como una cola FIFO(first-in-first-out).
2. Lazo:

- Si la lista esta vacía terminar.


- Quitar el primer nodo de la lista
- Si la lista contiene el nodo meta, salir
La solución es el primer nodo de la lista
- Expandir el nodo actual y añadir todos sus hijos
como nuevos nodos al final de la cola
H

A C
B

D E J
G
F

K L
Estado de la cola iteración
H
A B C Extraer H+hijos de H
B C D E Extraer A + hijos de A
C D E F Extraer B + hijos de B
D E F G J Extraer C + hijos de C
E F G J K L Extraer D + hijos de D
F G J K L Extraer E
G J K L Extraer F
Como podemos ver en el ultimo paso se
comprobaría que el primer nodo de la lista es uno
de los nodos solución. Es decir , los nodos
recorridos serian representados en la diagonal

HABCDEFGJKL

Por lo tanto al llegar al nodo G terminaría el


algoritmo dando esa solución , el nodo L , la otra
meta seria el ultimo en alcanzarse.
La búsqueda en profundidad es otra forma de
recorrer sistemáticamente una estructura de un
árbol para encontrar el nodo solución. Su
búsqueda consiste en seguir las ramas del árbol
hacia abajo hasta el nivel mas inferior que
pueda, hasta que encuentra una solución o un
nodo sin hijos, se trata de expandir un único
camino desde la raíz. En caso de llegar a un
callejón sin salida se retrocede hasta el nodo mas
cercano desde donde se pueda tomar una rama
alternativa para seguir avanzando.
La complejidad temporal de esta estrategia, es
igual que la de búsqueda por anchura

El procedimiento sigue los siguientes pasos:


1. Crear una lista de nodos e inicializarla con el
nodo raíz(estado inicial). Esta lista se manera
como una pila LIFO (last-in, fist-out)
2. lazo:
- Si la lista esta vacía, salir

- Extraer el primer nodo de la lista

- Si la lista contienr el nodo meta, salir

La solución es el primer nodo de la lista


- Para cada hijo del nodo actual, expandirlo y
añadir todos sus hijos como nuevos nodos.
Estado de la cola iteración
H
A B C Extraer H+hijos de H
D E B C Extraer A + hijos de A
K L E B C Extraer D + hijos de D
L E B C Extraer K
E B C Extraer L
B C Extraer E
F C Extraer B+hijos de B
C Extraer F
G J Extraer C + Hijos de C

También podría gustarte