Está en la página 1de 87

Profesor: Hugo Vega Huerta

Semana 1: Definición, Historia , Agentes Inteligentes.

Nuevas Tecnologías

¿Qué es la inteligencia Artificial? La I.A. en la vida cotidian


Historia de la I.A.
¿Qué es la inteligencia Artificial?
- La IA es un campo amplio de investigación científica
que trata de crear sistemas y máquinas que se
comporten de manera inteligente.

- Los científicos que se centran en esta área de


investigación, parten con la dificultad añadida de que
no existe una definición precisa del concepto de
inteligencia humana, y tampoco se conoce con
exactitud el funcionamiento del cerebro humano.
Historia de la I.A.

 La historia de la IA está marcada por los continuos vaivenes


entre el optimismo desmesurado y el profundo pesimismo. Se
le considera al matemático inglés Alan Mathison Turing padre
de la IA. En 1937, publicó un artículo en el que introdujo el
concepto de “Máquina de Turing”, una abstracción
matemática que resultó ser la precursora de los ordenadores
digitales.

 También formuló la conocida como “Prueba de Turing”, que


permitiría comprobar si un programa de ordenador puede ser
inteligente como un ser humano, y que hasta día de hoy
ninguna máquina ha conseguido superar.
Historia de La Inteligencia Artificial
 En los años 50 se logra hacer el Perceptrón de
Rossenblatt.

 En los años 60 Alan Newell y Herbert Simon crearon un


programa llamado GPS(General Problem Solver)

 En los años 70 nace los sistemas expertos.

 En los años 80 se desarrollaron lenguajes LISP o el


PROLOG
La I.A. en la vida cotidiana

 Sistemas de redes neuronales.


 Las agendas electrónicas.
 El avión Militar Eurofighter.
 La medicina.
 El lenguaje natural.
Enfoque de la Prueba de Turing
- (Alan Turing 1950) intenta
ofrecer una definición de
inteligencia Artificial que se
pueda evaluar. Para que un
ser o máquina se considere
inteligente debe lograr
engañar a un evaluador de
que este ser o máquina se
trata de un humano
evaluando todas las
actividades de tipo
cognoscitivo que puede
realizar el ser humano.
Fundamentos de la Inteligencia
Artificial
La inteligencia de cómputo ofreció el dispositivo que permite
hacer realidad las aplicaciones de la inteligencia artificial.
Los programas de inteligencia artificial por general son
extensos y no fusionarían si los grandes avances de
velocidad y memoria apartadas por la industria de cómputo.
Las ciencias que aportan a la Inteligencia Artificial:
- Filosofía
- Matemáticas
- Psicología
- Lingüística
- Ciencias de la Computación
La Función de un Sistema Experto

 La función de un Sistema Experto es la de


aportar soluciones a problemas, como si de
humanos se tratara, es decir capaz de mostrar
soluciones inteligentes.
Componentes de un Sistema
Experto

 La Base de Conocimientos
 El Mecanismo de Inferencia
 El Componente Explicativo
 La Interface de Usuario
 El Componente de Adquisición
Desarrollo de los Sistemas Expertos

El tema que engloba a los tres apartados es


el mismo, el desarrollo de un sistema experto.

 Equipo de desarrollo
 Métodos auxiliares en el desarrollo
 Construcción de prototipos
Agentes Inteligentes

Agente Racional Ambientes

Tipos de Agentes
Estructura de los Agentes Inteligentes
Agente Racional
 Es aquel que hace lo correcto, lo correcto se afirma que es que el agente tenga el mejor desempeño.

 Un agente omnisciente es aquel que sube el resultado real que producirán sus acciones, y su
conducta es congruente con ello.

 El estudio en el que nos encontramos se basa entonces en comprender la racionalidad de agentes


inteligentes. El carácter de racionalidad viene dado por 3 factores.
- Medida de evaluación
 Racionalidad - Secuencia de percepciones
- Acciones que se emprenden
Estructura de los Agentes
Inteligentes
 La base de la inteligencia artificial es el diseño de un programa de
agente:

 Una función qué permita implantar el mapeo del agente para pasar
de percepciones a acciones. Este programa se ejecutará en algún
tipo de dispositivo de cómputo al que se denominará arquitectura.
La arquitectura puede ser una computadora sencilla o un hardware
especial.

Estructura de un agente - Programa de agente.


Inteligente - Arquitectura.

Agente = Arquitectura + Programa.


AGENTE INTELIGENTE
PROCESO PERCEPCIONES
(SENSORES)
INTELIGENTE
•RAZONAMIENTO LOGICO ?
•APRENDIZAJE
AGENTE AMBIENTE
(MUNDO REAL)

ACCIONES
(EFECTORES)
Tipos de Agentes

- Agentes de reflejo simple

- Agentes bien informados de todo lo que pasa

- Agentes basados en metas

- Agentes basados en utilidad


Ambientes
 Accesibles y no accesibles

 Deterministas y no deterministas

 Episódicos y no episódicos

 Estáticos y dinámicos

 Discretos y continuos
Antecedentes de la Neurona en la I.A.

Aprendizaje y
Neuronas Formales
Clasificación
Aprendizaje y Clasificación
La clasificación es la atribución de una clase específica a un objeto. Esta
atribución necesita un cierto grado de abstracción para poder extraer
generalidades a partir de los ejemplos de los cuales se dispone. Para
una máquina, la clasificación de rostros, de datos médicos o de formas
son tareas bastante difíciles, en tanto que para un humano son
cuestiones cotidianas. Por ejemplo, en el caso de reconocimiento de
caracteres manuscritos, es difícil enunciar una descripción general que
tenga en cuenta todas las variaciones particulares de cada carácter.
Neuronas Formales
 El origen de las Redes de Neuronas (RN) se
encuentra en la representación de la neurona
biológica por McCulloch y Pitts en 1943.

 La Inteligencia Artificial clásica ha generado una


cierta decepción al tratar de explicar los procesos
cognoscitivos debido a que la representación
usando reglas se aleja mucho de cualquier
inspiración biológica por una parte y por otra
conduce a la creación de sistemas que son
demasiado rígidos y al mismo tiempo
extremadamente frágiles.
Redes Neuronales

¿Qué es una Neurona Artificial?OVFD (Modelos de Redes Neuronales)


¿Qué es una Neurona Artificial?

 Una Red Neuronal Artificial es un modelo de


procesamiento, tal como el cerebro procesa
información. El elemento clave de este
paradigma es la estructura original de el
sistema de procesamiento de información.
Este se compone de un gran número de
elementos interconectados procesando
(neuronas) trabajando en armonía para
resolver problemas específicos.
Modelo de RNA

Neuronas intermedias

Neuronas de Solución de Problemas mediante búsquedasNeuronas de


Entrada Estrategias de búsqueda : Búsqueda por amplitud salída

Conexiones
Semana 2: Estrategias de búsqueda : Búsqueda por amplitud
ESTRATEGIAS DE
BÚSQUEDA
Estrategias de Búsqueda
Búsqueda Informada
Búsqueda No Informada (Heurística)
(Ciega)
1. Búsqueda preferente por 1. Búsqueda avara
amplitud 2. Búsqueda A*
2. Búsqueda de costo 3. Búsqueda A*PI
uniforme 4. Búsqueda A*SRM
3. Búsqueda preferente por
profundidad
4. Búsqueda limitada por
profundidad
5. Búsqueda por
profundización iterativa
6. Búsqueda bidireccional
Búsqueda en el Espacio de
Estados
 La resolución de un problema con esta representación
pasa por explorar el espacio de estados
 Partimos del estado inicial evaluando cada paso hasta
encontrar un estado final
 En el caso peor exploraremos todos los posibles
caminos entre el estado inicial del problema hasta
llegar al estado final
 Definiremos una representación del espacio de
estados para poder implementar algoritmos que
busquen soluciones
Estructura del espacio de
estados
 Estructuras de datos: Árboles y Grafos
 Estados = Nodos
 Operadores = Arcos entre nodos (dirigidos)
 Árboles: Solo un camino lleva a un nodo
 Grafos: Varios caminos pueden llevar a un
nodo
Algoritmo Básico
 Basado en búsqueda y recorrido en árboles y grafos
 La estructura la construimos a medida que hacemos la búsqueda
 Algoritmo para una solución:
– Seleccionar el primer estado como el estado actual
– mientras el estado actual no es el estado final hacer
Generar y guardar sucesores del estado actual (expansión)
Escoger el siguiente estado entre los pendientes (selección)
– fin-mientras
 La selección del siguiente nodo determinará el tipo de búsqueda (orden
de selección o expansión)
 Es necesario definir un orden entre los sucesores de un nodo (orden de
generación)
Algoritmo Básico
 Nodos abiertos: Estados generados pero aún no visitados
 Nodos cerrados: Estados visitados y que ya se han expandido
 Tendremos una estructura para almacenar los nodos abiertos
 Las diferentes políticas de inserción en la estructura
determinarán el tipo de búsqueda
 Si exploramos un grafo puede ser necesario tener en cuenta los
estados repetidos (esto significa tener una estructura para los
nodos cerrados). Merece la pena si el número de nodos
diferentes es pequeño respecto al número de caminos
Evaluación de las Estrategias
Las estrategias se evalúan de acuerdo a su:
 Completez. ¿La estrategia garantiza encontrar una
solución, si ésta existe?
 Complejidad temporal. ¿Cuánto tiempo se necesitará para
encontrar una solución?
 Complejidad espacial. ¿Cuánta memoria se necesita para
efectuar la búsqueda?
 Optimalidad. ¿Con esta estrategia se encontrará una
solución de la más alta calidad, si hay varias soluciones?

Las complejidades temporal y espacial se miden en términos de:


b  máximo factor de ramificación del árbol de búsqueda (branching factor)
d  profundidad de la solución de menor coste
m profundidad máxima del espacio de estados (puede ser ∞)
Estrategias de búsqueda no
informada
 No existe información sobre la cantidad de
estados intermedios o el costo de ruta para
pasar del estado actual a la meta.
 Sólo se sabe distinguir si estamos en el
estado meta o no
 A esta búsqueda se le conoce también
como búsqueda ciega
BUSQUEDA POR AMPLITUD

L O

M F P Q

N F F

F
1. Búsqueda preferente por amplitud
 En este caso, primero se expande el nodo raíz
y luego todos los nodos generados por éste,
luego sus sucesores y así sucesivamente.
 Todos los nodos que están a profundidad d se
expanden antes que los nodos con
profundidad d+1.
Búsqueda preferente por amplitud

1. Si Abiertos = ( ), fin devolviendo fallo


2. Abiertos←(n0); Cerrados←( )
3. n←primer elemento de Abiertos; eliminar n de Abiertos y
llevarlo a Cerrados; Suc←( )
4. Si n es meta, fin con éxito, devolviendo el camino
5. expandir n, colocando sus hijos en Suc, como hijos de n
6. eliminar de Suc cualquier nodo cuyo estado ya esté
asociado a algún nodo de Abiertos o Cerrados
7. colocar los nodos de Suc al final de Abiertos
8. Ir a 2
0

0
0

1 2 3 321
0

10

1 2 3 cba32

a b c
0

210

1 2 3 f edcba3

a b c d e f
0

3210

1 2 3 i hg f edcba

a b c d e f g h i
0

a3210

1 2 3 γβα i hg f edcb

a b c d e f g h i

α β γ
0

b a 32 1 0

1 2 3 ζ ε δ γβα i hg f edc

a b c d e f g h i

α β γ δ ε ζ
Búsqueda preferente por amplitud
 Si hay solución, es seguro que se encontrará
mediante la búsqueda preferente por amplitud.
 Si son varias soluciones, siempre encontrará
primero el estado de meta más próximo (menos
profundidad, más a la izquierda).
 La búsqueda preferente por amplitud es
completa y óptima siempre y cuando el costo de
ruta sea una función que no disminuya al
aumentar la profundidad del nodo.

Completez, Complejidad Temporal, Complejidad Espacial, Optimalidad.


Complejidad Temporal
 Si b es el factor de ramificación de los
estados, y la solución está a una profundidad
d, entonces la cantidad máxima de nodos
expandidos antes de encontrar la solución
es:

1+ b + b2 + b3 + ... + bd + (bd+1 – b)

 La complejidad de este algoritmo es O(bd+1 ).


Resumen (BFS)
 Los nodos se visitan y generan por niveles
 La estructura para los nodos abiertos es una cola (FIFO)
 Un nodo es visitado cuando todos los nodos de los niveles superiores
y sus hermanos precedentes han sido visitados
 Características:
– Completidud: El algoritmo siempre encuentra una solución
– Complejidad temporal: Exponencial respecto al factor de
ramificación y la profundidad de la solución O(bd+1).
– Complejidad espacial: Exponencial respecto al factor de
ramificación y la profundidad de la solución O(bd+1).
– Optimalidad: La solución que se encuentra es óptima en número
de niveles desde la raíz
Ejercicio 1
A
Determine el orden en que un agente
basado en metas busca el objetivo B C
(orden en que se visitan y orden en que
se aperturan): D E F G

H I J
– VISITA (nodos cerrados)
K

– APERTURA (nodos abiertos)


Ejercicio 2 A

Diga para el siguiente árbol el


orden en que se aperturan (nodos B C D E F
abiertos) y orden en que se
visitan los nodos (nodos
G H I J K L M N
cerrados).

O
Semana 3: Búsqueda por Profundidad
Búsqueda preferente por
profundidad (DFS)
S

L O

M F P Q

N F F

F
Búsqueda preferente por profundidad
 En esta búsqueda siempre se expande uno de los nodos
que se encuentre en lo más profundo del árbol.
 Sólo si la búsqueda conduce a un callejón sin salida (un
nodo que no es meta y que no tiene expansión), se
revierte la búsqueda y se expanden los nodos de niveles
menos profundos.
 Lo anterior se logra mediante el algoritmo de Búsqueda-
General, con una función de lista de espera que ponga
los estados recién generados al principio de la lista.
Búsqueda preferente por
profundidad
NOTA:
Se supone
que el factor
de
ramificación
es b = 2 y
que los nodos
de nivel m =
3 no tienen
sucesores.
Búsqueda preferente por profundidad

 Sólo es necesario guardar la ruta que va del


nodo raíz al nodo hoja, junto con los nodos
restantes no expandidos, por cada nodo de la
ruta.
 Si un espacio de estados tiene factor de
ramificación b y profundidad máxima m, se
requieren almacenar bm nodos.
 La complejidad temporal es de O(bm).
Búsqueda preferente por profundidad

 Si la cantidad de soluciones en un problema es


grande, se recomienda esta búsqueda (BFS)
sobre la búsqueda preferente por amplitud
(DFS).

 La desventaja de esta búsqueda es que se


puede quedar estancada al avanzar por una
ruta equivocada, ya que muchos árboles de
búsqueda pueden ser muy profundos o infinitos.
Por lo tanto, la BPPP no es ni la mas completa
ni la más óptima.
Resumen (DFS)
 Los nodos se visitan y generan buscando los nodos a mayor
profundidad y retrocediendo cuando no se encuentran nodos
sucesores
 La estructura para los nodos abiertos es una pila (LIFO)
 Para garantizar que el algoritmo acaba debe imponerse un límite en
la profundidad de exploración
 Características
– Completidud: El algoritmo encuentra una solución si se impone un
límite de profundidad y existe una solución dentro de ese límite
– Complejidad temporal: Exponencial respecto al factor de
ramificación y la profundidad del límite de exploración O(bm).
– Complejidad espacial: Si no se controlan los nodos repetidos el
coste es lineal respecto al factor de ramificación y el límite de
profundidad O(bm). Si tratamos repetidos el coste es igual que en
anchura. Si la implementación es recursiva el coste es O(m).
– Optimalidad: No se garantiza que la solución sea óptima
Semana 4: Búsqueda por Profundidad

BUSQUEDA PREFERENTE
POR LO MEJOR
Búsqueda preferente
por lo mejor
 El conocimiento en base al cual se apoya la
decisión del nodo que toca expandirse es
obtenido desde una función de
evaluación.
 La función de evaluación produce un
número que sirve para representar lo
deseable (o indeseable) que sería la
expansión de un nodo.
Búsqueda preferente
por lo mejor
 Si los nodos se ordenan de tal manera que
se expande primero aquél con mejor
evaluación, entonces la estrategia es
llamada búsqueda preferente por lo
mejor.
Búsqueda preferente
por lo mejor
función BUSQUEDA-PREFERENTE-POR-LO-MEJOR
(problema, FUNCION-EVALUACION) responde con una
secuencia de solución
entradas: problema, un problema
Función-Eval, una función de evaluación
Función-lista-de-espera  una función que ordena los
nodos mediante FUNCIÓN-EVAL
responde con BUSQUEDA-GENERAL (Problema,
Función-lista-de-espera)
Búsqueda preferente
por lo mejor
 Así como es existe una familia de
algoritmos BUSQUEDA-GENERAL, con
distintas funciones de ordenamiento,
también existe una familia de algoritmos
BUSQUEDA-PREFERENTE-POR-LO-
MEJOR, que varían la función de
evaluación.
Búsqueda preferente por lo mejor
 En el método de costo uniforme, se empleaba el
costo de ruta (g) para decidir qué ruta ampliar.
 g(n) es, entonces, el costo acumulado desde el
nodo inicio hasta el nodo en que nos
encontramos, n.
 Esta medida no es una búsqueda directa dirigida
a la meta
 Si se quiere enfocar la búsqueda hacia la meta,
en esa medida debe figurar algún tipo de cálculo
del costo de ruta del estado actual (n) a la meta.
BUSQUEDA AVARA
Greedy Search
Búsqueda preferente por lo mejor
 Búsqueda Avara (Greedy Search)
– Es una de las más sencillas estrategias en la
BPPLM, que consiste en reducir al mínimo el
costo estimado para lograr una meta.
– En otras palabras, el nodo cuyo estado se
considere más cercano a la meta en términos
de costo de ruta se expande primero.
Búsqueda preferente
por lo mejor
 Búsqueda Avara (Greedy Search)
– Aunque casi siempre es posible calcular el
costo aproximado hasta la meta, es difícil
hacerlo con precisión.
– La función utilizada para dicho estimado del
costo se llama función heurística,
simbolizada por h.
– h(n) = costo estimado de la ruta más barata que
une el estado del nodo n con un estado meta
Búsqueda preferente
por lo mejor
 Búsqueda Avara (Greedy Search)
– h puede ser cualquier función. El único requisito
es que h(n) = 0 cuando n es una meta.
– Cuando los problemas son de determinación de
rutas en el mundo real (ejemplo, Rumania), una
buena función heurística es la distancia en
línea recta a la meta:
 hDLR (n) = distancia en línea recta entre n y la meta
Búsqueda preferente por lo mejor
 Búsqueda Avara (Greedy Search)
– Para calcular los valores de hDLR se requieren las
coordenadas de las ciudades de Rumania.
– Esta función heurística es útil porque la
carretera que va de A a B tiende a dirigirse más
o menos en la dirección correcta.
Ejercicio
 Utilizar el método de búsqueda avara para
solucionar el problema de Rumania.
Mostrar el desarrollo con árboles de
búsqueda.
Búsqueda preferente por lo mejor
 Búsqueda Avara
Arad
h=366
Búsqueda preferente por lo mejor
 Búsqueda Avara
Arad
h=366

Sibiu Zerind
h=253 h=374
Timisoara
h=329
Búsqueda preferente por lo mejor
 Búsqueda Avara
Arad
h=366

Sibiu Zerind
h=253 h=374
Timisoara
h=329
Arad
Fagaras Rimnicu
h=366
h=178 Oradea h=193
h=380
Búsqueda preferente por lo mejor
 Búsqueda Avara
Arad
h=366

Sibiu Zerind
h=253 h=374
Timisoara
h=329
Arad
Fagaras Rimnicu
h=366
h=178 Oradea h=193
h=380
Sibiu
h=253 Bucharest Es una solución, pero no es la óptima
h=0
Búsqueda preferente por lo mejor
 Búsqueda Avara
– Esta búsqueda usualmente produce resultados
buenos
– Tienden a producir soluciones rápidamente,
aunque no siempre la solución encontrada es la
óptima.
– Ejemplo, tratar de llegar de Lasi a Fagaras.
Búsqueda preferente por lo mejor
 Búsqueda Avara
Iasi
h=160
Búsqueda preferente por lo mejor
 Búsqueda Avara
Iasi
h=160

Neamt Vaslui
h=150 h=170
Búsqueda preferente por lo mejor
 Búsqueda Avara
Iasi
h=160

Neamt Vaslui
h=150 h=170

Iasi
h=160
Búsqueda preferente por lo mejor
 Búsqueda Avara
Iasi
h=160

Neamt Vaslui
h=150 h=170

Iasi
h=160

Neamt
h=150
Búsqueda preferente por lo mejor
 Búsqueda Avara
– Se asemeja a la búsqueda preferente por profundidad,
ya que se “atora” al toparse con un callejón sin salida.
– Tiene sus mismas deficiencias: no es óptima, es
incompleta, puede recorrer una ruta infinita.
– Su complejidad es espacial es tan grande como su
temporal: O(bm), donde m es la profundidad máxima del
espacio de búsqueda. Una buena función heurística
permite disminuir notablemente la complejidad tanto de
espacio como de tiempo.
BUSQUEDA A*
Búsqueda preferente por lo mejor
 Búsqueda A*
– La búsqueda avara reduce h(n), el costo hacia
la meta, pero no es óptima ni completa.
– La búsqueda de costo uniforme reduce g(n), el
costo de ruta, es óptima y completa, pero
puede ser ineficiente.
– Las dos funciones se podrían combinar
mediante una suma:
 f(n) = g(n) + h(n)
Búsqueda preferente por lo mejor
 Búsqueda A*
– f(n) puede llamarse el costo estimado de la
solución más barata, pasando por n.
– Es posible demostrar que esta estrategia es
completa y óptima, dada una restricción de h.
– La restricción es escoger una función h que
nunca sobreestime el costo que implica
alcanzar la meta.
Búsqueda preferente por lo mejor
 Búsqueda A*
– A dicha función h se le llama heurística
admisible.
– A la búsqueda preferente por lo mejor que usa f
como función de evaluación y una función h
aceptable se le conoce como búsqueda A*.
Búsqueda preferente por lo mejor
 Búsqueda A*
– En el ejemplo de Rumania, la distancia en línea
recta es una heurística aceptable, ya que la ruta
más corta entre dos puntos es la línea recta
(por lo tanto, siempre será menor que la
distancia real, nunca la sobreestimará).
Búsqueda preferente por lo mejor
 Búsqueda A*
Arad
f=0+366
f=366
Búsqueda preferente por lo mejor

Búsqueda A*
Arad

Sibiu Zerind
f=140+253 f=75+374
Timisoara
f=393 f=449
f=118+329
f= 447
Búsqueda preferente por lo mejor

Búsqueda A*
Arad

Sibiu
Zerind
f=140+253
f=75+374
f=393 Timisoara
f=449
f=118+329
f= 447
Arad
Fagaras Oradea Rimnicu
f=280+366
f=239+178 f=146+380 f=220+193
f=646
f=417 f=526 f=413
Búsqueda preferente por lo mejor
 Búsqueda A*. (Comportamiento)
– Se puede observar que a lo largo de las
rutas originadas en la raíz, el costo f
nunca disminuye.
– En toda heurística donde esto ocurre, se
dice que muestra monotonicidad.
Búsqueda preferente por lo mejor
 Búsqueda A*
– Si la heurística fuera no monotónica, debe usarse la fórmula

f(n’) = max f(n),g(n’) + h(n’)

Donde n’ es el nodo actual y n es el padre de n’


– A esta fórmula se le llama ecuación de ruta máxima.

También podría gustarte