You are on page 1of 11

INTELIGENCIA ARITIFICIAL

Fase 2: Búsqueda en espacios de estado en IA

Tutor (a):
Fernando Rojas

Grupo:
90169_27

Estudiantes:
José Fernando Sánchez Gómez Código: 5829891

Universidad Nacional Abierta y a Distancia (UNAD)


Octubre 2019

INTRODUCCION
En el presente trabajo se analizara como realizar procesos de búsqueda en espacio
de estado y el desarrollo de algoritmos en inteligencia artificial para el desarrollo de un
proyecto específico de sistemas inteligentes, aparte se expondrán temas como
búsqueda en espacio de estado, algoritmos y razonamiento con incertidumbre en
Inteligencia Artificial.

Búsqueda de Espacios de Estados


Un espacio de estado es una forma simbólica de representar un problema,
reduciéndolo a un conjunto de estados, donde un estado representa un problema en un
determinado instante, dichos estados pueden ser estado inicial, intermedio, de fracaso
o estado objetivo o final, en los espacios de estado se espera abarcar todas las
posibles situaciones para la solución del problema, los espacios de estado se
representan por medio de una gráfica, donde se tienen los nodos o estados y sus
conexiones representan operaciones las cuales se aplican a cada nodo para pasar de
un estado a otro, cuando se tienen un estado inicial y estados finales, la búsqueda de
estados consiste en explorar el espacio de estados evaluando paso a paso cada
estado para encontrar un camino que vaya desde el estado inicial y culmine en un
estado final.

Razonamiento Con Incertidumbre


Empecemos por decir que la incertidumbre es un aspecto clave del razonamiento y la
inteligencia humana, el concepto de la incertidumbre puede ayudar a permitir a los
deferentes sistemas a que manejen la probabilidad y le puede dar a los programas la
capacidad de medir su certeza sobre una predicción o decisión, es decir, saber cuándo
deberían dudar de sí mismos. Al implementar los principios de probabilidad en los
programas de IA, estos podrían ser más inteligentes y menos propensos a equivocarse.
Cuando hablamos de incertidumbre nos referimos a la falta de información adecuada
para tomar una decisión o realizar un razonamiento. Sucede cuando dicha falta de
información nos puede conllevar a una conclusión incorrecta.
En el tema de la incertidumbre se manejan ciertos conceptos importantes para poder
entender mejor el concepto y el contexto que nos da la incertidumbre en la IA:
 Tenemos la proposición incierta donde su valor de verdad o falsedad no se
conoce o no se puede determinar.
 La proposición imprecisa se refiere a una variable cuyo valor no puede
determinarse con exactitud.
 El grado de creencia en la incertidumbre nos dice que una proposición es
verdadera o es falsa, sólo que realmente no se sabe.
 El grado de verdad, se sabe que una variable tiene un valor, pero no lo
conocemos.
 El grado de creencia también es otra forma de expresar el conocimiento. Por
ejemplo creemos basándonos en nuestras percepciones.
Después de conocer algunos conceptos podemos decir que la probabilidad expresa de
cierta manera el grado de creencia, no el grado de verdad. Por tanto, podemos decir
que la probabilidad puede cambiar a medida que se conocen nuevas evidencias. La
teoría de la probabilidad servirá como medio de representación del conocimiento
incierto.
Por otro lado debemos conocer algunas de las fuentes de incertidumbre:
 Determinado campo de conocimiento incompleto.
 Toma de decisiones con información incompleta.
 Ignorancia irreducible.
 Conceptos vagos e imprecisos.
 Reglas inexactas, imprecisas, incompletas, inconsistentes.
Ahora bien podemos decir que el RAZONAMIENTO CON INCERTIDUMBRE, es la
capacidad de razonar sin tener todo el conocimiento en un determinado sistema, pero
lograr aplicar correctamente dicho conocimiento. El propósito de un sistema inteligente
es actuar de forma óptima utilizando el conocimiento del sistema y un conjunto de
percepciones. Para poder actuar se necesita decidir qué hacer, cuando existen
distintas opciones un sistema debe inclinarse por aquella que le proporcione el mejor
resultado. Por ello cuando hay incertidumbre para poder decidir se requiere saber la
importancia de los distintos resultados de una acción y tener la certidumbre de alcanzar
los resultados requeridos cuando se realiza la acción.
En el manejo de la incertidumbre en sistemas inteligentes se han planteado diversas
técnicas, las podemos dividir en dos grandes grupos, las simbólicas y las numéricas.
Dentro de las simbólicas podemos definir algunas como:
 Lógicas no monotónicas, el conocimiento incompleto nos lleva a modelos no
monótonos, donde nuevos hechos puede hacer que nos retractemos de algunas
de nuestras creencias.
 Lógicas por defecto, se propuso para desarrollar el problema del conocimiento
incompleto, donde se agregan ciertas reglas de manera intuitiva, y dichas reglas
son ciertas a menos que se demuestre lo contrario.
 Lógicas basadas en modelos mínimos, donde se maneja el conocimiento
incompleto a partir de la premisa de que “Lo que no se puede probar a partir de
mi Base de Conocimiento es falso”
En las técnicas Numéricas tenemos:
 Modelos estadísticos-probabilísticos, estos modelos probabilistas se basan en la
teoría de la probabilidad. La probabilidad de cierta manera “resume” en un
número la incertidumbre respecto a algún hecho. Es un modelo sólido y muy
conocido para manejar incertidumbre. También nos ofrece un lenguaje formal
para representar conocimiento incierto y maneras de razonar con él.
 Una técnica para manejar la incertidumbre es la Regla de Bayes, está basada en
la teoría clásica de la probabilidad, Las hipótesis son más o menos probables
dependiendo de las posibilidades de los hechos o evidencias que las sostiene.
Las probabilidades se calculan en base a la fórmula general de la probabilidad
condicionada de Bayes o algunas transformaciones de la misma.
Algoritmos de búsqueda
Cuando hablamos de algoritmos de búsqueda nos referimos a una herramienta que
nos permite resolver problemas y alcanzar un determinado objetivo, para lograr este
objetivo o la solución de los problemas se va a determinar una secuencia de acciones o
soluciones a ejecutar, dicha secuencia de acciones las va a realizar o ejecutar un
agente, esto con el fin de alcanzar el objetivo planteado a partir de una situación inicial
dada. En la descripción de los sistemas de búsqueda, es de suponer que el agente se
mueve en un entorno accesible y que es capaz de percibir el entorno con precisión, de
este modo, la secuencia de acciones se puede obtener antes de su ejecución.
Un problema de búsqueda en I.A. consta de un espacio de estados, de un conjunto de
operadores o acciones, un estado inicial que es el punto de partida de la búsqueda y
una función objetivo la cual comprueba si el estado actual corresponde a una solución
del problema.
Unas definiciones importantes para entender mejor el tema de la búsqueda en IA son:
 Los espacios de búsqueda que es un grafo dirigido donde cada nodo representa
un posible estado del sistema. Además dependiendo del problema, cada nodo
puede incluir una descripción completa del sistema, o bien sólo las
modificaciones necesarias para pasar de un nodo padre a su hijo
 Los espacios de estados, los cuales representan el problema a través de las
posibles acciones del agente.
 La búsqueda en el espacio de estados que se refiere a la resolución del
problema mediante la proyección de las distintas acciones del agente.
 El Grafo del espacio de estados, que es una representación matemática de un
problema de búsqueda, el cual consta de nodos que son los estados y sus
respectivos arcos que son los operadores.
 El árbol de búsqueda tiene nodo raíz que es el estado inicial, los hijos de un
nodo que son los posibles sucesores, ósea los nodos resultantes de un operador
al nodo padre, cabe resaltar que los nodos representan estados.
 Las Condiciones de parada pueden ser que se ha encontrado la solución, se ha
acabado el tiempo disponible o se ha llegado a un nivel de profundidad
determinado.

Podemos encontrar diferentes tipos de búsqueda entre ellas:


 Búsqueda a ciegas, cuando no exista información específica sobre el problema
que nos ayude a determinar cuál es el mejor operador que se debería aplicar en
cada momento o el mejor nodo por el cual seguir la búsqueda.
 Búsqueda por amplitud, con esta búsqueda si son varias las soluciones,
permitirá siempre encontrar primero el estado meta más próximo a la raíz, el
tiempo y la cantidad de memoria necesaria crece exponencialmente con
respecto a la profundidad y este tipo de búsqueda es más óptimo y completo.
 Búsquedas de costo uniforme, en esta búsqueda se modifica la estrategia por
amplitud en el sentido de expandir siempre el nodo de menor costo en el en vez
del nodo de menor profundidad, permitiendo así encontrar la solución más
barata siempre y cuando el costo de ruta nunca disminuya conforme avanzamos
por la ruta.
 Búsqueda por profundidad, en esta búsqueda siempre se expande uno de los
nodos que se encuentren en lo más profundo del árbol, cuando la búsqueda
conduce a un callejón sin salida, esta se revierte y se expanden los nodos de
niveles menos profundos.
 Búsqueda limitada por profundidad, donde se impone un límite a la profundidad
máxima de la ruta y se utilizan operadores que informan constantemente de la
profundad del nodo
 Búsqueda Bidireccional, este tipo de búsqueda avanza a partir del estado inicial
y retrocede a partir de la meta y se detiene cuando ambas búsquedas se
encuentran en algún punto intermedio.
 Búsqueda Heurística, esta búsqueda se basa en criterios, métodos o principios
para decidir cuál de entre varias acciones promete ser la mejor para alcanzar
una determinada meta. en la generación del árbol de búsqueda, nos podemos
guiar con heurísticas que nos den una indicación acerca de cómo de bueno o
prometedor es un determinado estado u operador.

Aplicación de la teoría a Prototipo


TEMA DE SOFTWARE A DESARROLLAR
Elegimos la salud, para diagnosticar la tuberculosis, para ser esta enfermedad
diagnosticada se inicia por una encuesta o serie de preguntas acerca de los síntomas
que ha temido y la duración de dichos síntomas, y si el nivel de coincidencia es alto, se
inicia la toma de examen confirmatorios, se realizaría una encuesta y verificar si se
tiene la enfermedad.”
Búsqueda de espacio de estados, para aplicarlo al prototipo, vamos a tener un estado
inicial con tres variables y debemos llegar dos posibles destinos finales, pasando por
unos estados intermedios, las variables para nuestro estado inicial son tos, dolor de
pecho y sangrado, esto porque son los tres principales síntomas de la enfermedad a
diagnosticar, en el estado intermedio evaluamos las tres variables y si son positivas
todas, diagnosticamos como positiva la enfermedad, si en los estados intermedios
alguna o varias de estas variables son negativas, llegamos al estado final de
enfermedad negativa.

Figure 1 Espacios de Estados

Con respecto al razonamiento con incertidumbre se da porque en la variables


iniciales, no van a ser datos exactos donde el sistema tenga la seguridad al 100% de
que es positivo la enfermedad con el solo hecho de tener ciertos valores, el
conocimiento del sistema va a ser incompleto y se va a predecir de cierta manera un
diagnostico comparando y tomando la decisión y diagnóstico más acertado, a partir de
un entrenamiento del sistema, donde se le van a ingresar ciertos valores de
comparación y sus diagnósticos para que el sistema automáticamente evalué y razone
cual es la mejor opción y nos entregue el resultado más acertado.
Por ultimo en los Algoritmos de búsqueda, vamos a utilizar una búsqueda heurística,
donde el entrenamiento que vamos a utilizar en el desarrollo del algoritmo nos permite
un conocimiento previo que nos va a guiar por cual es mejor camino y decisión para
llegar a un resultado o diagnóstico.

Algoritmo Prototipo
Ahora bien se decisión por desarrollar un algoritmo basado en una árbol de decisión del
tipo clasificación, donde a partir de unos datos de entrenamiento y con sus etiquetas de
referentes, se intentara predecir según los datos ingresados al sistema si la persona
tiene la enfermedad de la tuberculosis o esta para seguimiento médico, es un sistema
muy sencillo donde se importó la clase sklearn junto con tree, para trabajar la
clasificación y posterior predicción de los datos.
from sklearn import tree
#Se importa la clase del árbol de decisión.
clf = tree.DecisionTreeClassifier()
# Dias con [tos, dolor pecho, sangrado]
X = [[21, 10, 8], [20, 8, 0], [22, 11, 4], [19, 7, 0], [23, 12, 5],
[18, 6, 1], [24, 13, 4],
[17, 5, 2], [25, 55, 6], [16, 75, 0], [26, 85, 7]]
#Vamos a guardar para saber si enfermo o para seguimiento
Y = ['Enfermo de tuberculosis', 'Realizar Seguimiento', 'Enfermo de
tuberculosis',
'Realizar Seguimiento', 'Enfermo de tuberculosis', 'Realizar
Seguimiento',
'Enfermo de tuberculosis', 'Realizar Seguimiento',
'Enfermo de tuberculosis', 'Realizar Seguimiento', 'Enfermo de
tuberculosis']
#Pasamos los datos X y Y
clf = clf.fit(X, Y)
print ("Ingrese cuantos dias lleva con tos:", end="")
a = input()
print ("Ingrese cuantas dias lleva con dolor en el pecho:", end="")
b = input()
print ("Ingrese cuantas dias lleva con sangrado al tocer:", end="")
c = input()

#Se definen los datos


dato = [a, b, c]

prediction = clf.predict([dato])
#Mostramos los resultados en pantalla
print(prediction)

Figure 2 Codigo Prototipo


Figure 3 Resultados Codigo Prototipo
CONCLUSIONES

Se logró comprender como funcionan los algoritmos de búsqueda, como un


sistema de inteligencia Artificial logra llegar a resultados usando un razonamiento con
incertidumbre, y el paso a paso de los espacios de estado y fue muy interesante
analizar cómo es que trabajan los diferentes tipos de búsquedas.
Se dio una introducción a la programación en Phyton, se aprendió diversas líneas de
código y se logró plasmar conocimientos básicos de Inteligencia Artificial en un
programa que con unas variables de entrada las analiza y nos arroja un determinado
resultado.
REFERENCIAS BIBLIOGRAFICAS
Palma Méndez, J. T., & Marín Morales, R. (2008). Inteligencia artificial: Métodos,
técnicas y aplicaciones. España: McGraw-Hill. Pag.392-412. Recuperado de
https://bibliotecavirtual.unad.edu.co:2538/lib/unadsp/reader.action?docID=3194970&qu
ery=sistemas+basados+en+el+conocimiento
Cazorla Quevedo, M. A. (1999). Fundamentos de inteligencia artificial. Alicante:
Digitalia. Recuperado de
http://bibliotecavirtual.unad.edu.co/login?url=https://bibliotecavirtual.unad.edu.co:2969/l
ogin.aspx?direct=true&db=nlebk&AN=317993&lang=es&site=ehost-live
Sucar, E. (s.f). Métodos de Inteligencia Artificial. Recuperado de,
https://ccc.inaoep.mx/~esucar/Clases-MetIA/MetIA-03.pdf

You might also like