Está en la página 1de 12

UNIVERSIDAD TÉCNICA DE AMBATO

FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL


CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS
PERÍODO ACADÉMICO: SEPTIEMBRE 2019 / ENERO 2020

UNIVERSIDAD TÉCNICA DE AMBATO


Facultad de Ingeniería en Sistemas, Electrónica e Industrial
“Proyecto Académico”

Título: Aplicación en Java (GUI) con Búsqueda


Heurística utilizando el Algoritmo A * para
Determinar la Distancia más Optima entre
Ciudades.

Carrera: Ingeniería en Sistemas Computacionales e


Informáticos.

Área Académica: Software.

Línea de Investigación: Áreas Genéricas.

Nivel y Paralelo: Sexto “A”

Alumnos participantes:
Alex Villegas
Remigio Chagmana
Álvaro Yánez
Carlos Luis Morales

Módulo y Docente: Ing. Julio Balarezo Msc


Inteligencia Artificial I
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS
PERÍODO ACADÉMICO: SEPTIEMBRE 2019 / ENERO 2020

I. INFORME DEL PROYECTO


1. YY
1.1 Título
Aplicación en Java (GUI) con Búsqueda Heurística utilizando el Algoritmo A
* para Determinar la Distancia más Optima entre Ciudades.

1.2 Objetivos

General:

- Implementar el Algoritmo de A* para obtener el camino óptimo entre


Ciudades.

Específicos:
 Investigar acerca de que se trata la Búsqueda en Heurística en la
Inteligencia Artificial.
 Analizar el Algoritmo de A* para realizar Búsquedas.
 Desarrollar el Algoritmo de A* en java Netbeans.

1.3 Resumen

En el presente proyecto se implementó el Algoritmo A* para obtener el


camino optimo entre Ciudades. Dispone de una Interfaz gráfica en él se
cargarán automáticamente las ciudades por medio de un archivo de texto
además se podrá elegir La ciudad Origen la ciudad destino dentro de un
combobox, y elegimos el Método de Búsqueda A* y atreves de las rutas
se podrá obtener la distancia empleada por las ciudades

1.4 Palabras clave: Inteligencia Artificial, Búsqueda Heurística, Algoritmo


A*.

1.5 Introducción

El concepto de heurística es difícil de aprehender. Newell, Shaw y Simon en


1963 dieron la siguiente definición: "Un proceso que puede resolver un
problema dado, pero que no ofrece ninguna garantía de que lo hará, se llama
una heurística para ese problema".

El Algoritmo de Búsqueda A. Conocido también como A asterisco o A estrella


fue presentado por Peter E. Hart, Nils J. Nilsson y Bertram Raphael en el
año 1968,se clasifica dentro de los algoritmos de búsqueda en grafos. Su
función es encontrar siempre y cuando se cumplan determinadas
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS
PERÍODO ACADÉMICO: SEPTIEMBRE 2019 / ENERO 2020

condiciones, el camino de menor costo entre un nodo origen y uno objetivo,


es la forma más ampliamente conocida de la búsqueda primero el mejor,
siendo la búsqueda A* tanto completa como óptima.

1.6 Materiales y Metodología

- Laptop
- Internet

Inteligencia Artificial
La Inteligencia Artificial (IA) es la combinación de algoritmos planteados con
el propósito de crear máquinas que presenten las mismas capacidades que
el ser humano. Una tecnología que todavía nos resulta lejana y misteriosa,
pero que desde hace unos años está presente en nuestro día a día a todas
horas.

Tipos de Inteligencia Artificial

Los expertos en ciencias de la computación Stuart Russell y Peter


Norvig diferencian varios tipos de inteligencia artificial:

 Sistemas que piensan como humanos: automatizan actividades como la


toma de decisiones, la resolución de problemas y el aprendizaje. Un
ejemplo son las redes neuronales artificiales.

 Sistemas que actúan como humanos: se trata de computadoras


que realizan tareas de forma similar a como lo hacen las personas. Es el
caso de los robots.

 Sistemas que piensan racionalmente: intentan emular el pensamiento


lógico racional de los humanos, es decir, se investiga cómo lograr que
las máquinas puedan percibir, razonar y actuar en consecuencia.
Los sistemas expertos se engloban en este grupo.

 Sistemas que actúan racionalmente: idealmente, son aquellos que tratan


de imitar de manera racional el comportamiento humano, como
los agentes inteligentes.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS
PERÍODO ACADÉMICO: SEPTIEMBRE 2019 / ENERO 2020

Aplicaciones Prácticas de la Inteligencia Artificial

La IA está presente en la detección facial de los móviles, en los asistentes


virtuales de voz como Siri de Apple, Alexa de Amazon o Cortana de Microsoft
y está integrada en nuestros dispositivos cotidianos a través
de bots (abreviatura de robots) o aplicaciones para móvil [1]

Búsqueda Heurística
La búsqueda es una técnica para resolver problemas cuya solución consiste en
una serie de pasos que frecuentemente deben determinarse mediante la prueba
sistemática de las alternativas. Desde los inicios de la Inteligencia
Artificial, la búsqueda se ha aplicado en diversas clases de problemas como jue
gos de dos jugadores, problemas de satisfacción de restricciones y problemas
de un único agente. Por lo tanto se puede decir que los algoritmos de búsqueda
heurística son método computacional para resolver problemas de
pathfinding “búsqueda de la mejor ruta del punto A al punto B”

Posteriormente se supone la existencia de una función de evaluación que debe


medir la distancia estimada al objetivo. Esta función de evaluación se utiliza para
guiar el proceso haciendo que en cada momento se seleccione el estado o las
operaciones más prometedores. No siempre se garantiza encontrar una solución
(de existir ésta). No siempre se garantiza encontrar la solución más próxima (la
que se encuentra a una distancia, número de operaciones menores)

Los métodos de búsqueda heurística disponen de alguna información sobre la


proximidad de cada estado a un estado objetivo, lo que permite explorar en
primer lugar los caminos más prometedores. [2]

La búsqueda heurística consiste en añadir información, basándose en el espacio


estudiado hasta ese momento, de forma que se restringe drásticamente esa
búsqueda. Las heurísticas son formalizadas como reglas para elegir (buscar) las
ramas en el espacio de estados que son más probables de llegar a una solución
aceptable del problema

Un problema puede Un problema puede no contar con contar con solución


exacta n exacta debido a ambigüedades inherentes en el problema o edades
inherentes en el problema o datos disponibles.

 Diagnóstico médico
Un problema puede tener solución Un problema puede tener solución exacta, n
exacta, pero el costo pero el costo computacional por encontrarla puede ser
prohibitivo computacional por encontrarla puede ser prohibitivo.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS
PERÍODO ACADÉMICO: SEPTIEMBRE 2019 / ENERO 2020

 Juego de ajedrez.

Función.

Estimación del coste necesario para alcanzar una solución desde el estado
actual.

• Complejidad en tiempo O(r m), donde:

• r: factor de ramificación.

• m: profundidad máxima del árbol de búsqueda.

• Complejidad en espacio: O(r m).

• En la práctica, el tiempo y espacio necesario depende del problema concreto y


de la calidad de la heurística usada

• No es completa, en general.

• Por ejemplo, una mala heurística podría hacer que se tomara un camino infinito.

• No es minimal (no garantiza soluciones con el menor número de operadores).

• La heurística podría guiar hacia una solución no minimal

Algoritmo de búsqueda A* (A estrella)


El algoritmo de búsqueda A*, se encuentra entre los algoritmos del conjunto de
búsquedas con heurística, por ende es importante tener claro el concepto de lo
que significa heurística ya que sin ello no se podría utilizar este algoritmo de
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS
PERÍODO ACADÉMICO: SEPTIEMBRE 2019 / ENERO 2020

manera correcta, este algoritmo, se caracteriza porque busca el camino más


corto y de menos coste para hallar la solución del problema, por ende tiene en
cuenta las dos cosas, lo que lo diferencia de costo uniforme y heurística pura.
Según lo anterior se llega a una fórmula que es considerada lo más importante
en este algoritmo de búsqueda heurística que es la siguiente: [3]
F(n) = g(n) + h(n)
En donde:
F(n) = Se entiende como el costo total
G(n) = se entiende como el valor del camino de un nodo a otro
H(n) = se entiende como el valor de la heurística de un nodo a otro
Otra cosa que hace importante este algoritmo es la estructura de abiertos y
cerrados que maneja, ya que esto permite que no se irrumpa el correcto
funcionamiento de este cuando se encuentren grafos cíclicos, esta estructura
funciona haciendo que en la lista de abiertos se guarden los nodos que se van
a evaluar, en la de cerrados se guardan los que ya se evaluaron, de esta
manera, si en la estructura abierta existe un nodo que ya esté en cerrados esta
se cerrara de forma inmediata.

¿Cómo funciona el Algoritmo A*?


Lo primero que se hace es expandir el primer nodo que se encuentre en la lista
de abiertos, en caso de que este no sea un nodo objetivo, se calcula f(n) de todos
los descendientes de este nodo, estos se insertan en la lista de abiertos, y el
primer nodo o nodo raíz pasa de una vez a la lista de cerrados. Asi continua
sucesivamente hasta que encuentre la solución, como se mencionó
anteriormente si un nodo que este en abiertos es igual a uno que este en
cerrados este pasa a cerrados de una vez.

¿Cuál es el algoritmo que utiliza A*?


1. Crear una lista con el nodo raíz (L)
2. Hasta que esta lista este vacía o se encuentre la solución:
Si, El primer elemento es la solución, ir al paso 3.
Sino, eliminar el primer elemento de la lista y adicionar sus sucesores
aplicando F(n)
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS
PERÍODO ACADÉMICO: SEPTIEMBRE 2019 / ENERO 2020

Luego, ordenar los elementos de acuerdo al costo y eliminar los repetidos de


costo mayor
3. Expandir todos los nodos con costo menor que el nodo solución

Desarrollo de la Aplicación en Netbeans

La aplicación fue desarrollada en Java Netbeans con Interfaz Gráfica


implementando el algoritmo de A* utilizamos un árbol general, grafos,
métodos estáticos, matrices, los cuales fueron necesarias para llegar a
resolver el problema de búsqueda

1.7 Resultados y Discusión

Como Resultado Final de Proyecto se logro obtener de forma optima la


distancia entre Ciudades desde un punto Origen establecido hasta un punto
destino, además dicho proyecto puede ser utilizado como una aplicación para
determinar por cuales rutas son las mas adecuadas ya sea para ir de viaje a
una determinada ciudad en el menos tiempo posible.

1.8 Conclusiones

 Se logró recopilar información acerca de la Búsqueda Heurística el


cual fue analizado para determinar sus principios y que función cumple
dentro de la Inteligencia Artificial.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS
PERÍODO ACADÉMICO: SEPTIEMBRE 2019 / ENERO 2020

 Se analizo el Algoritmo A* adecuadamente para ser empleado en el


desarrollo de la aplicación.

 Se desarrollo adecuadamente la implementación del Algoritmo


utilizando el Lenguaje de Programación Java Netbeans .

1.9 Referencias bibliográficas

Bibliografía

[1] [En línea]. Available: https://www.iberdrola.com/innovacion/que-es-inteligencia-


artificial.

[2] [En línea]. Available:


http://busquedaheuristcauniguajiraeze.blogspot.com/2014/09/busqueda-
heuristica.html.

[3] [En línea]. Available: http://20151578079ia.blogspot.es/1508616746/algoritmo-de-


busqueda-a-a-estrella-/.

2.10. Fotografías y gráficos

- Primero Cargamos el archivo de texto ciudades.txt


UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS
PERÍODO ACADÉMICO: SEPTIEMBRE 2019 / ENERO 2020

- Elegimos la Ciudad Origen y la Ciudad Destino, seleccionamos el metodo de


busqueda de A*
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS
PERÍODO ACADÉMICO: SEPTIEMBRE 2019 / ENERO 2020

Le damos click en el botón Buscar Rutas y nos desplegara las


distancias
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS
PERÍODO ACADÉMICO: SEPTIEMBRE 2019 / ENERO 2020

Vértices

Arcos
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES E INFORMÁTICOS
PERÍODO ACADÉMICO: SEPTIEMBRE 2019 / ENERO 2020

-Elegimos otra ciudad Origen y otra Ciudad Destino

También podría gustarte