Está en la página 1de 10

Perspectivas conceptuales de la IA

La Inteligencia Artificial (IA) tiene dos perspectivas conceptuales claramente diferenciadas.


Cada una de ellas posee objetivos, métodos y enfoques diferentes.

Tenemos, por un lado, la Inteligencia Artificial como Ciencia, cuyo ámbito de conocimiento
engloba todo lo referente a la Neurología y Cognición (entiéndase procesos, tales como,
memoria, percepción, sentimientos o razonamiento). Esta perspectiva científica persigue el
ambicioso objetivo de encontrar una teoría computable del conocimiento humano, o, dicho de
otra forma, busca construir programas que emulen el comportamiento inteligente de los seres
humanos, es debido a esto que se le denomina hipótesis fuerte. Existe también, un enfoque
que persigue un objeto un poco más modesto, es decir, el desarrollo de máquinas inteligentes
sin la necesidad de emular el pensamiento humano, la cual se conoce como hipótesis débil.

Por otro lado, tenemos, la Inteligencia Artificial como Ingeniería o Ingeniería del
Conocimiento (IC), cuyo objeto formal es el propio conocimiento, lo cual tiene como dificultad
la ausencia de una teoría sólida del mismo, o sea, no se tienen los suficientes conocimientos
sobre procesos cognitivos y sobre neurofisiología como para apoyarse en ellos desde la
perspectiva de la IC. La mayoría de los desarrollos de la IC son los Sistemas Basados en
Conocimiento (anteriormente denominadas Sistemas Expertos), que constan de los siguientes
pasos. En primera instancia, se parte de una descripción del problema en lenguaje natural
(análisis), luego se modela la descripción con los paradigmas (simbólico, conexionista, situado
o híbrido) para lograr llegar al modelo conceptual (diseño), por último, partiendo de este
modelo y haciendo uso de algunos operadores formales, como, por ejemplo, las Redes
Neuronales Artificiales (RNAs), se logra llegar al modelo formal, el cual es computable
(implementación).

Técnicas de búsqueda

¿Qué son y para qué sirven?

En IA, la búsqueda y resolución de problemas, se refiere a un conjunto de técnicas y métodos


que se utilizan en diferentes dominios de aplicación, como, por ejemplo, en la deducción, en
razonamientos, o en la elaboración de planes de actuación.

¿Cómo se compone?

Un sistema de búsqueda tiene 3 componentes principales:

 Estados: el conjunto de estados representa todas las situaciones por las que el agente
puede pasar durante la búsqueda de la solución al problema.
 Operadores: los operadores modelan las acciones elementales que es capaz de
realizar el agente sobre el medio. Estos operadores deben tener un coste asociado,
que puede ser arbitrario o atribuido por la naturaleza del problema.
 Estrategia de control: es la responsable de decidir el orden de expansión de los
estados. Una estrategia de control inteligente, también denomina heurística e
informada, pretende llegar a una buena solución del problema, visitando el menor
número de estados posibles. Por otro lado, una estrategia de control no informada,
también denominada a ciegas, generalmente considera que todos los estados son
igual de prometedores.
El conjunto formado por los estados y los operadores, se denomina espacio de búsqueda, que,
generalmente se representa con un grafo dirigido simple, donde los estados se representan
con nodos y los operadores con arcos. El o los nodos que representan las soluciones se
denominan nodos objetivos o nodos meta.

Se dice que un algoritmo es completo, si y sólo si, siempre que exista una solución al
problema, la encuentra. Por otro lado, se dice que un algoritmo es admisible, si siempre
encuentra una solución óptima.

¿Qué estructura de datos utilizan los algoritmos de búsqueda no informada?

 ABIERTA: es una lista que contiene, al principio de cada iteración, los estados
candidatos a ser expandidos y se ordena con un criterio determinado en cada caso.
 TABLA_A: registra toda la información necesaria acerca de cada uno de los nodos
encontrados en el proceso de búsqueda.
 FUNCIÓN SUCESORES: lleva a cabo la expansión de un nodo, retornando todos los
sucesores de un nodo dado.

¿Cuáles son los algoritmos de búsqueda no informada para árboles?

Sea b el factor de ramificación (número medio de sucesores) y d la profundidad de la solución


(número de arcos desde el nodo inicial a la solución).

Búsqueda primero en anchura (izq a der):

- Funcionamiento: consiste en hacer la exploración por niveles de profundidad, en otras


palabras, este algoritmo visita todos los nodos que hay a profundidad i, antes de visitar
aquellos que están en profundidad i+1. Explicado en términos no técnicos, este
algoritmo tras visitar un nodo, pasa a visitar a sus “hermanos” antes que a sus “hijos”.
- Ordenación de ABIERTA: cola (FIFO).
- Ventajas: completo y admisible (sólo si todos los operadores del mismo nivel de
profundidad tienen el mismo coste).
- Desventajas: complejidad temporal y espacial exponenciales con la profundidad de la
solución => O(b^d)

Búsqueda primero en profundidad (der a izq):

- Funcionamiento: consiste en ir expandiendo todos y cada uno de los nodos que va


localizando, de forma recurrente, en un camino concreto. Cuando ya no hay nodos
para visitar en ese camino, regresa (lo que se denomina backtracking), de modo que
repite el proceso con los “hermanos” del nodo ya visitado. Posee una operación
llamada LimpiarTABLA_A, que permite limpiar de TABLA_A los estados que ya no son
necesarios, mientras dicho estado no tenga sucesores en ABIERTA.
- Ordenación de ABIERTA: pila (LIFO).
- Ventaja: la complejidad espacial es lineal (y no exponencial como el primero en
anchura) => O(bxd).
- Desventajas: son que, no es completo, y, por ende, tampoco es admisible. Esto se
debe a que la búsqueda puede quedar atrapada en una rama infinita, y aunque se
establezca un límite de profundidad, esto tampoco garantiza que la búsqueda sea
completa, ya que, la solución podría encontrarse más allá de la profundidad límite
establecida. Otra desventaja es que posee una complejidad temporal exponencial
(igual que el primero en anchura) => O(b^d).
Búsqueda por coste uniforme:

- Funcionamiento: En este algoritmo la búsqueda comienza por el nodo raíz (nodo


inicial) y continúa visitando el siguiente nodo que tiene menor costo total desde la raíz.
Los nodos son visitados de esta forma hasta alcanzar un nodo destino u objetivo. Los
empates, en caso de haberlos, serían deshechos de forma arbitraria. Si el coste de los
operadores es igual, esta estrategia de control es idéntica a la de anchura.
- Ordenación de ABIERTA: tiene en cuenta el coste del camino hacia el nodo raíz.
- Ventaja: siempre es admisible, y, por ende, también completo.
- Desventajas: complejidad temporal y espacial exponenciales, si todas las reglas tienen
igual coste => O(b^d).

Búsqueda en anchura iterativa (der a izq):

- Funcionamiento: Este algoritmo ejecuta de forma iterativa N búsquedas “primero en


anchura”, de tal forma que, en cada iteración se incrementa en una unidad el número
máximo de hijos generados en cada expansión de un nodo padre.
- Ordenación de ABIERTA: cola (FIFO).
- Ventaja: completo
- Desventajas: no es admisible, además, de la complejidad temporal y espacial
exponenciales => O(b^d).

Búsqueda en profundidad iterativa (izq a der):

- Funcionamiento: En este algoritmo se realizan iteraciones de búsquedas “primero en


profundidad”, cada vez más profundas, esto se hace aumentando gradualmente el
límite realizando la búsqueda en sucesivos niveles.
- Ordenación de ABIERTA: pila (LIFO).
- Ventajas: admisible, y, por ende, completo, si todos los operadores tienen el mismo
coste. Además, la complejidad temporal es lineal (al igual que el algoritmo primero en
profundidad). Complejidad temporal líneal=> O(b x d).
- Desventajas: en cada nueva iteración, volver a visitar los nodos visitados en anteriores
iteraciones. Complejidad espacial exponencial => O(b^d).

Búsqueda bidireccional:

- Funcionamiento: Consiste en explorar simultáneamente en dos direcciones, o sea,


desde el nodo inicial a los nodos objetivos y viceversa. Este algoritmo termina cuando
algún nodo coincide en las dos listas ABIERTA de las búsquedas (directa e inversa).
- Ordenación de ABIERTA: tiene una lista ABIERTA por cada búsqueda y la ordenación
depende del tipo de búsqueda.
- Ventajas: es completa, si una de las dos búsquedas es en anchura (ya que garantiza
que las dos búsquedas se encontrarán en algún momento) y también es admisible, si y
sólo si, la búsqueda se realiza desde todos los nodos objetivos. Además, posee otra
ventaja, que es la reducir a la mitad del exponente en la complejidad temporal y
espacial con respecto al algoritmo primero en anchura. Complejidad temporal y
espacial=> O(b^d/2) (si ambas búsquedas son en anchura).
- Desventajas: las condiciones que se deben dar para poder llevarse a cabo, es decir, los
estados objetivos deben ser conocidos, los operadores deben ser reversibles y, al
menos, una de las búsquedas debe ser en anchura.
¿Cuáles son los algoritmos de búsqueda no informada para grafos?

Algoritmo general de búsqueda de grafos:

- Funcionamiento: Se parte de un grafo dirigido, con un nodo inicial y un conjunto de


operadores. El grafo debe ser localmente finito, aunque no necesariamente finito.
El objetivo es encontrar el camino con menor coste desde el nodo inicial hasta los
nodos objetivos. Durante el proceso de búsqueda se pueden encontrar caminos que
mejoran los que se habían encontrado hasta ese momento, y para ello se utiliza la
función Rectificar.
Por tanto, se pueden dar lo siguientes casos cuando se expande un nodo en ABIERTA:
1. El nodo no había sido generado ni expandido previamente.
2. El nodo había sido generado previamente pero no expandido.
3. El nodo había sido generado y expandido previamente.
- Ordenación de ABIERTA: se puede ordenar de acuerdo a 3 formas 1. cola (FIFO) 2. pila
(LIFO) 3. Coste uniforme.
- Ventajas: algoritmo más sencillo para la exploración de grafos.
- Desventajas: complejidad temporal y espacial exponenciales con la profundidad de la
solución => O(b^d).

¿Cuáles son los algoritmos de búsqueda informados?

Búsqueda Primero el Mejor:

- Funcionamiento: Es una especialización del AGBG, aunque, la principal diferencia


radica en que utiliza una función heurística para ordenar la lista ABIERTA, dando
preferencia a aquellos nodos cuyo valor de la f(n) sea menor, en otras palabras, elige
expandir aquellos nodos que estima que están más cerca del objetivo.
- Ordenación de ABIERTA: por medio de una función heurística, de menor a mayor.
- Ventajas: completo para un grafo finito.
- Desventajas: no es admisible y generalmente tampoco es completo, ya que, una mala
heurística podría causar que se tomara un camino infinito. La complejidad temporal y
espacial son exponenciales O(b^d), aunque, en la práctica, dependerá del problema
concreto y de la calidad de la heurística.

Algoritmo A*:

- Definiciones previas:
Sea f*(n) = g*(n) + h*(n) => g*(n) es el camino con menor coste desde el nodo inicial al
nodo “n” y h*(n) es el camino con menor coste desde el nodo “n” al nodo meta más
cercano, por lo que, f*(n) es el camino con menor coste, desde el nodo inicial al nodo
meta, condicionado a pasar por “n”.
Sea C* = f*(inicial) = h*(inicial) => coste de la solución óptima. Para cada nodo que se
encuentre en el camino óptimo, se cumple que f*(n) = C*, mientras que para aquellos
nodos que no estén en el camino óptimo, se cumple que f*(n) > C*.
Debido a que, en problemas complejos, los valores de estas funciones no se pueden
calcular en un tiempo razonable, se usan aproximaciones de g* y h*.
Sea f(n) = g(n) + h(n) => g(n) es el camino con menor coste, encontrado hasta el
momento, desde el nodo inicial al nodo “n”; mientras que h(n) es una aproximación
positiva del valor de h*(n).
- Funcionamiento: es una especialización del algoritmo Primero el Mejor, donde la lista
ABIERTA se ordena según f y las reorientaciones en TABLA_A están producidas por
cambios en g(n). En este algoritmo h(n) permanece constante.
- Ordenación de ABIERTA: se utiliza la función f.
- Ventajas: es completo en grafos localmente finitos, ya que, en el peor de los casos se
expandirían todos los nodos y ningún nodo se expande más de una vez. Otra ventaja
de este algoritmo es que es admisible si h es admisible. La función h es admisible si h
es monótona, o si, se cumple que h(n) <= h*(n)
- Desventajas: a mayor admisibilidad menor eficiencia y viceversa. Si h es admisible, A*
pasa mucho tiempo discriminando entre caminos cuyos costes no varían
significativamente. Además, el principal problema es el requerimiento de memoria, ya
que este crece exponencialmente con la profundidad.

Ponderación dinámica:

- Definiciones previas: Este algoritmo pertenece a la familia de los E-admisibles, los


cuales se caracterizan por priorizar un poco más el rendimiento en el proceso a cambio
de sacrificar un poco de admisibilidad, no obstante, controlan el deterioro de la
solución a través del factor E, que representa la distancia máxima al coste óptimo. Se
dice que un algoritmo de esta familia es E-admisible, si y sólo si, el coste de la solución
encontrada no excede el valor (1 + E).C* y a la solución se le denomina solución E-
óptima.
- Funcionamiento: este algoritmo va variando los pesos de manera dinámica a lo largo
del proceso de búsqueda, de tal manera que, al principio proporciona un peso mayor y
a medida que se acerca a la solución, reduce los pesos para asegurar una búsqueda en
anchura. f(n) = g(n) + h(n) + E. (1 – d(n)/N). h(n) donde d(n) es la profundidad del nodo
n, N es la “cota superior” de la profundidad de la solución óptima y E indica la
desviación que estamos dispuestos a admitir.
- Ordenación de ABIERTA:
- Ventajas: simplicidad (estados y una función heurística)
- Desventajas: se debe conocer la profundidad de la solución óptima, o, al menos, una
buena cota superior.

AE*:

- Definiciones previas: Este algoritmo pertenece a la familia de los E-admisibles, los


cuales se caracterizan por priorizar un poco más el rendimiento en el proceso a cambio
de sacrificar un poco de admisibilidad, no obstante, controlan el deterioro de la
solución a través del favor E, que representa la distancia máxima al coste óptimo. Se
dice que un algoritmo de esta familia es E-admisible, si y sólo si, el coste de la solución
encontrada no excede el valor (1 + E).C* y a la solución se le denomina solución E-
óptima. AE* considera una sublista (FOCAL) dentro de ABIERTA que están los nodos
cuyo valor de f no se separa más de un factor (1 + E) del valor mínimo de f en ABIERTA.
- Funcionamiento: la estrategia de este algoritmo es igual que la de A*, sólo que la
diferencia radica en que este algoritmo se expanden primero los nodos que están en la
sublista FOCAL, según los valores de una segunda función heurística denominada h’
donde h’(n) indica el coste computacional estimado que se necesitaría para llegar
desde n al nodo meta más cercano.
- Ordenación de ABIERTA:
- Ventajas: al hacer uso de dos funciones heurísticas, ofrece un mecanismo más flexible
de lo que son capaces de ofrecer las funciones g y h para hacer estimaciones de coste
computacional.
- Desventajas: no es necesariamente admisible.

IDA*:

- Definiciones previas: Pertenece a la familia de algoritmos de búsqueda con memoria


limitada. Es una especialización del algoritmo de búsqueda en profundidad iterativa, el
cual, realiza iteraciones de búsquedas “primero en profundidad”, cada vez más
profundas, esto se hace aumentando gradualmente el límite realizando la búsqueda
en sucesivos niveles.
- Funcionamiento: Este algoritmo amplía el algoritmo de búsqueda en profundidad
iterativa, específicamente lo hace asociando valor de la función heurística h (propio de
A*) para cada nodo n. En la primera iteración sólo se expanden los nodos n que
cumple que f(n) < f(inicial), dicho de otra forma, todo nodo n que no cumpla la
condición descrita es descartado. El menor valor de f de los nodos descartados, será el
valor que se utilizará como límite en la siguiente iteración y así sucesivamente para
llegar a un nodo objetivo.
- Ordenación de ABIERTA: actúa como pila, los hijos de cada nodo expandido se
introducen en esta lista, ordenados por su valor de f. Dicho de otra forma, se
consideran primero los nodos más comprometedores.
- Ventajas: complejidad espacial lineal O(b x d), lo que supone un importante ahorro de
memoria.
- Desventajas: el principal problema es la cantidad de nodos que debe volver a
expandir, ya que, lo único que recuerda entre una iteración y otra es el mínimo valor
de f de los nodos descartados en la iteración anterior.

SMA*:

- Definiciones previas: Pertenece a la familia de algoritmos de búsqueda con memoria


limitada. SMA* resuelve el problema del algoritmo IDA* a la vez de ser capaz de
operar una cantidad de memoria limitada.
- Funcionamiento: Este algoritmo limita el tamaño de TABLA_A, es decir, limita la
cantidad de nodos que se pueden almacenar en TABLA_A y cuando necesita expandir
un nodo y se queda sin espacio, lo que hace es eliminar un nodo de TABLA_A y de
ABIERTA. A dicho nodo eliminado se le denomina “nodo olvidado” por ser menos
prometedor, en otras palabras, se elimina el nodo con mayor valor de f en ABIERTA.
Este algoritmo recuerda el mejor valor de f de los hijos de un nodo (los nodos
olvidados), de tal forma que sólo va a volver a explorar un subárbol descartado si el
resto de estimaciones son aún peores.
- Ordenación de ABIERTA: actúa como lista ordenada según f.
- Ventajas: complejidad espacial lineal O(b x d), es completo si la memoria disponible es
suficiente para almacenar el camino a la solución menos profunda y admisible si la
memoria disponible es suficiente para almacenar el camino a la solución óptima
menos profunda. Es eficiente si la memoria disponible es suficiente para almacenar el
espacio de búsqueda completo. Además, evita estados repetidos, aunque, al igual que
todos los otros puntos comentarios, también dependerá de la memoria disponible.
- Desventajas: las propiedades que se han considerado ventajas, entiéndase
completitud, admisibilidad, eficiencia, etc, también pueden considerarse desventajas si
la memoria disponible no es suficiente.

Similitudes y Diferencias entre IDA* y SMA*:

- Similitudes:
o Ambos son variantes del algoritmo A*
o Ambos intentan dar solución a la complejidad espacial exponencial de A*
(incorporan mecanismos para limitar la cantidad de memoria necesaria
durante la ejecución).
- Diferencias:
o La forma en la que trabajan: mientras IDA* se basa en iteraciones cada vez
más profundas (extiende al Algoritmo de Búsqueda en Profundidad Iterativa),
SMA* se basa en limitar el tamaño de TABLA_A.
o Como usan ABIERTA: mientras IDA* la usa como una pila, SMA* la usa como
una lista la cual se ordena en base al valor de f.
o Por la propiedad de completitud: mientras IDA* siempre es completo, SMA*
depende de que la memoria disponible sea suficiente para almacenar el
camino a la solución menos profunda.
o Por la propiedad de admisibilidad : mientras IDA* es admisible si h es
admisible, SMA* dependerá, además de la admisibilidad de h, de que la
memoria disponible sea suficiente para almacenar el camino a la solución
óptima menos profunda.

Ramificación y poda:

- Definiciones previas: Pertenece a la familia de algoritmos voraces, que son aquellos


toman decisiones irrevocables en la exploración. Se caracterizan por no ser admisibles
y, en general, tampoco suelen ser completos, aunque, son muy eficientes por lo que se
suelen usar en aplicaciones en tiempo real, además de tener un diseño simple.
- Funcionamiento: Estos algoritmos interpretan cada nodo como un subconjunto de
soluciones de todo el conjunto de soluciones del problema, de tal manera que el nodo
raíz representa todas las soluciones posibles al problema, mientras que los nodos
hojas serían los que contendrían una solución, y, por ende, no pueden ser expandidos.
Básicamente se realizan 3 pasos. El primero es el proceso de selección, que se encarga
de extraer un nodo n dentro del conjunto de nodos (la forma de escogerlo dependerá
de la estrategia de búsqueda, aunque, por motivos de ahorro de memoria se suele
elegir la búsqueda en profundidad). El segundo es el proceso de ramificación que
consiste en expandir el nodo n seleccionado en el paso anterior, es decir, de generar
sus hijos. El tercero es el proceso de poda que consiste en eliminar algunos de los
nodos creados en el paso anterior. Esto contribuye a disminuir el espacio de búsqueda,
y, por ende, atenuar o disminuir la complejidad. El algoritmo finaliza si se encuentra
una solución, o si se agota el conjunto de nodos.
- Ordenación de ABIERTA: depende de la estrategia de búsqueda escogida, por
ejemplo, si es búsqueda en profundidad ABIERTA actúa como una pila.
- Ventajas: si se usa la búsqueda en profundidad, entonces complejidad espacial es
lineal O(b x d). Es admisible si recorre todo el espacio de búsqueda, excepto las partes
podadas, hasta que ABIERTA se agote.
- Desventajas: se pierde la propiedad de admisibilidad si se usa, como condición de
terminación, un límite máximo de nodos que se pueden expandir, o sea, en este caso
devolvería la mejor solución encontrada hasta el momento.

Mejora iterativa o Búsqueda local:

- Definiciones previas: Esta familia de algoritmos se suele usar en aquellos problemas


en los que el nodo meta u objetivo tiene toda la información de cómo solucionar el
problema, o sea, que no es necesario considerar la información del camino que
conduce a la meta.
- Funcionamiento: consiste en ir haciendo cambios en el nodo actual para que nos lleve
a un nodo vecino de cara a llegar al nodo meta. Se suele partir del nodo inicial; luego
se calculan sus vecinos en base a una regla de vecindad, después se selecciona
normalmente el mejor de ellos que cumpla unos criterios de aceptación por lo que
dicho vecino pasa a ser nodo actual, este proceso se repite hasta que se cumpla cierto
criterio de finalización. Este criterio de finalización podría ser, por ejemplo, que se
hayan realizado cierto número de iteraciones o que no se hayan producido mejoras en
las últimas N iteraciones.

Máximo gradiente o escalada:

- Definiciones previas: Pertenece a la familia de algoritmos de Mejora Iterativa o


Búsqueda Local.
- Funcionamiento: el criterio de aceptación de una solución vecina es que sea mejor o
igual a la solución actual.
- Ordenación de ABIERTA:
- Ventajas: simplicidad de la búsqueda.
- Desventajas: se estanca en óptimos locales (o sea, no encuentra el óptimo global), una
solución a esto podría ser reiniciar la búsqueda en otro punto de inicio (búsqueda
multiarranque), lo que causaría que se encuentre otro óptimo local, por lo que
después de varios arranques, se podría encontrar el óptimo global. También presenta
inconvenientes en las regiones planas (todos los vecinos tienen valores iguales a la
solución actual), por lo que la búsqueda se vuelve aleatoria.

Temple simulado:

- Definiciones previas: Pertenece a la familia de algoritmos de Mejora Iterativa o


Búsqueda Local.
- Funcionamiento: el criterio de aceptación permite admitir, con cierta probabilidad,
algunas transiciones que empeoren el valor de la función objetivo. Dicha probabilidad
se calcula en base a dos parámetros. El primero es la temperatura T y el segundo es
incremento de la energía AE. Esto evita caer en óptimos locales durante la búsqueda,
no obstante, si el coste del vecino mejora la solución, se seleccionaría este como en el
caso de la Búsqueda del Máximo Gradiente o Escalada. Al principio de la búsqueda T
es elevada de modo que la probabilidad de aceptar un estado peor que el actual es
grande, luego, el valor de T va disminuyendo a lo largo de la búsqueda, según un
determinado plan de enfriamiento. En otras palabras, a medida que la búsqueda
avanza, es más probable que sólo se admitan soluciones que mejoren o igualen la
actual.
- Ordenación de ABIERTA:
- Ventajas: no se estanca en óptimos locales.
- Desventajas: necesita de un ajuste apropiado de sus parámetros en base al problema,
principalmente en el plan de enfriamiento. Esto con el objetivo de que se obtenga un
proceso eficaz y una buena solución.

Búsqueda Tabú:

- Definiciones previas: Pertenece a la familia de algoritmos de Mejora Iterativa o


Búsqueda Local.
- Funcionamiento: se caracteriza por disponer de una memoria, denominada lista tabú.
En base a dicha lista, se pueden evitar la expansión de vecinos que pueden conducir a
soluciones no óptimas o ya revisadas con anterioridad, ahorrando tiempo y mejorando
la eficiencia. En algunos casos se pueden aplicar excepciones a dicha lista, lo que se
conoce como criterio de aspiración. Esto consiste básicamente en aceptar nodos
tabúes que pueden mejorar la solución actual.
- Ordenación de ABIERTA:
- Ventajas:
- Desventajas: necesita de un ajuste apropiado de sus parámetros en base al problema,
principalmente el de la lista tabú (por ejemplo, el tamaño de dicha lista, el criterio de
construcción de dicha lista o de la definición de un criterio de aspiración). Esto con el
objetivo de que se obtenga una buena y eficaz solución.

Lógica y Representación del Conocimiento

Conceptos previos:

Lenguajes naturales: también denominados lenguajes ordinarios (en el sentido de cotidiano),


son, por ejemplo, el español, chino e inglés.

Lenguajes formales: son, para las matemáticas, lenguajes.

 Lógica proposicional: también denominada lógica de orden 0 y lógica de enunciados:


esta lógica asume que el mundo contiene hechos. Contiene un conjunto de variables
proposicionales (p, q, r, s, ..), conectivas proposiciones y un conjunto de símbolos
auxiliares.
 Lógica de predicados: también denominada lógica de primer orden: esta lógica
asume, como lo hacen los lenguajes naturales, que el mundo contiene objetos,
relaciones y funciones. Todo lo que se hace en la lógica proposicional se puede hacer
en esta lógica, aunque, esta es más expresiva. Contiene un conjunto de constantes,
variables, predicados, funciones, conectivas, igualdad y cuantificadores.
Sistemas Basados en Reglas (SBR)

Pretenden capturar la experiencia humana en la resolución de problemas con el fin de alcanzar


decisiones consistentes y repetibles. Se basa en la lógica de predicados, limitada a cláusulas de
Horn. Separa el conocimiento (hechos y reglas) de los mecanismos de inferencia
(encadenamiento).

RETE

Evita que se tengan que examinar todas las reglas de BC con todos los datos de la BH. RETE usa
un compilador que busca patrones en los antecedentes para evitar evaluarlos repetidamente.
RETE es muy usado en SBR (ejemplo CLIPS), por su gran eficiencia en tiempo, no obstante, el
consumo de memoria es elevado, lo que representa un problema en sistemas expertos muy
grandes.

RED RETE: árbol con la clasificación estructurada de los antecedentes.

Se guarda el resultado de la equiparación en cada ciclo para continuar con el siguiente, en vez
de comenzar de nuevo.

Redes semánticas (conceptuales)

Es un grafo dirigido que sirve para representar relaciones entre conceptos e instancias. Está
formado por nodos etiquetados y arcos unidireccionales etiquetados. Los nodos representan
conceptos e instancias, mientras que los arcos representan relaciones. Existen dos tipos de
arcos:

 Arcos descriptivos: Describen entidades y conceptos (viven_en). Su semántica es


dependiendo del dominio.
 Arcos estructurales: Enlazan entidades y conceptos formando la estructura de la red.
Su semántica es independiente del dominio.
o Generalización: relaciona una clase con una más general (subclase_de)
o Instancia: Liga un objeto a su tipo genérico (instancia)
o Agregación: Liga un objeto a sus componentes (parte_de).

Todo este conocimiento se puede representar en Lógica de Predicados, no obstante, las redes
semánticas permiten estructurar mejor el conocimiento.

Respuesta al ejercicio 3

También podría gustarte