Universidad Autónoma de Nuevo León
Facultad de Ingeniería Mecánica y Eléctrica
Materia: Laboratorio de Sistemas Adaptativos
Práctica 3: Sistemas Inteligentes.
Nombre Matrícula Carrera Semestre
Gael Alejandro Lozano Rodríguez 2022792 ITS 5to
Pablo Jair Tenorio Escalón 1968383 ITS 8vo
José Omar Veloquio Armendáriz 2003478 ITS 6to
Fernando Yahir García Dávila 1995329 ITS 5to
Gustavo Alonso Maass Alvarado 2002179 ITS 6to
Grupo: 206
Docente: Ing. Laura Patricia del Bosque Vega
Pedro de Alba s/n, Ciudad Universitaria, San Nicolás de los Garza, Nuevo León, CP.66451
1
Índice
Introducción............................................................................................................................................................... 3
Objetivo ..................................................................................................................................................................... 3
Desarrollo .................................................................................................................................................................. 5
Resultados Video en YouTube ................................................................................................................................... 7
Conclusiones .............................................................................................................................................................. 7
Bibliografía ................................................................................................................................................................. 8
2
Introducción
En la presente actividad correspondiente a la práctica #3 del laboratorio se realizó lo siguiente,
el tema escogido para desarrollarlo dentro de la misma fue la resolución de problemas
mediante búsqueda, dicho tema elegido será representa mediante la codificación de breve
programa que plasmaría un laberinto, de tal forma que mediante dicho concepto de sistemas
inteligentes resolver la problemática mencionada.
Objetivo
Se busca comprender la manera en la funcionan esta clase de sistemas inteligentes, dado a
que en su mayoría el objetivo de programas de este estilo es básicamente la resolución de
problemas a partir del conocimiento del que se dispone, es entonces que de esta manera son
clasificados como sistemas inteligentes dado a que el programa en si le permite buscar
soluciones con toda la información con la que este mismo dispone, modelando así una
solución óptima y satisfactoria.
Justificación
El por qué decidí desarrollar este tema en específico es básicamente porque de entre las
diferentes opciones de las cuales disponíamos para desarrollar la practica esta fue la más
capto mi interés ya que durante la investigación necesaria que se realizó previamente a la
elección del tema pude observar el alcance y la estrecha relación que guarda y asemeja a un
sistema o programa de inteligencia artificial, concepto el cual se encuentra actualmente en
tendencia, además de otra de las razones por las que opte por este tema es por la misma
relación que guarda con los sistemas de inteligencia artificial ya que así de esta manera podría
darme un breve idea sobre la manera en la que estos operan.
3
Marco Teórico
Los principales fundamentos que sustenta el funcionamiento de dicha programación de
sistemas que desempeñen una resolución de problemas mediante búsqueda, es la búsqueda
en anchura y la búsqueda en profundidad, las búsqueda en anchura es en cuestión aquel tipo
de búsqueda que corresponde al recorrido sistemático que se realiza dentro de un grafo yendo
nivel por nivel analizando todas las posibilidades en cada uno de estos, además dentro de
estos existen los operadores, los cuales incrementan sucesivamente en relación con la
cantidad de operaciones o niveles encontrados dentro del grafo correspondiente, por otro
lado, está la búsqueda en profundidad la cual básicamente se trata sobre otro tipo de forma de
recorrer el grafo, sin embargo este destaca por expandir o agrandar los nodos según su
profundidad, además de que cuando su recorrido llega a un nodo sin “salida” (operador) este
buscara otro nodo para seguir un camino distinto, logrando así la clase de aprendizaje o
búsqueda de soluciones mediante la implementación de sistemas inteligentes un TAD (Tipo
abstracto de Datos) que representa una colección de elementos llamados nodos, dentro de
los cuales hay un nodo especial apodado como raíz del árbol, a raíz de esto podemos decir
que entre podríamos
visualizar un grafo como un
árbol siendo que cada nodo
(rama) guarda una relación
directa la cual impuesta sobre
una estructura jerárquica
4
Desarrollo
Para lograr que este código funcionara se realizó lo siguiente:
En primera instancia se declararon las funciones respectivas para la clase def Maze función
dentro de la cual se encuentran los objetos fundamentales para simular lo que vendría siendo
un laberinto virtual, es por ello que dentro de la función Maze se tienen otros objetos
declarados como chr() o X, los cuales son objetos que fungen una función de marcas dentro
del despliegue en terminal del laberinto creado en cuestión, un ejemplo de ello es el elemento
chr(5852) el cual coloca un rombo en aquella parte donde sea especificada como el final del
laberinto, por otra parte se tiene el def valid o true como es normalmente conocido, este
parámetro lo que hace dentro del sistema es el de actuar como una palabra clave o reservada
dentro de la sintaxis del programa haciendo que determine si un valor o resultado de tipo
Booleano sea verdadero a través de una comparación de una o más funciones que se tengan
dentro del programa, en el contexto del mismo tenemos que esta función es aplicada de tal
manera que actúa en el momento de verificar si un movimiento se considera valido respecto a
los parámetros encontrados dentro del laberinto siendo que se encuentre de frente con un
obstáculo o camino sin salida, optando así a la búsqueda de una solución alterna esto con el
fin de salir de ese camino y encontrar otro, después tenemos la función def printMaze (aquí
colocamos el laberinto que se desee imprimir en caso de que se realicen variaciones del
mismo, esto con el fin de comprobar el funcionamiento de la búsqueda para resolución de
problemas mediante la misma) esta básicamente ejecuta la instrucción dentro del programa de
imprimir por completo el laberinto y cada uno de sus elementos que conforman dentro de la
terminal del programa, por último, una de las funciones iniciales de las cuales depende
ligeramente el programa para su funcionamiento es la de defFindEnd esta instrucción lo que
ejecuta dentro del programa es marcar un fin al laberinto para así cuando el elemento que se
encuentre dentro del mismo llegue hasta ese punto sea capaz de detenerse finalizando así el
laberinto.
5
Código
6
Resultados Video en YouTube
Una vez terminada la codificación del laberinto pasamos a ejecutarlo dentro de la terminal
obteniendo así los siguientes resultados, en primera instancia se imprime el laberinto y en la
parte se imprime los valores generados para llegar a su solución, siendo en este caso llegar a
la meta de fin de este marcando así la finalización del laberinto elaborado.
Video en YouTube:
[Link]
Conclusiones
Para concluir, solo me queda mencionar que lo aprendido dentro de esta práctica me pareció
bastante debido a que tuve la oportunidad de abordar un par de concepto que están
estrechamente ligados a la creación y comprensión de los sistemas inteligentes, más
específicamente en los sistemas de resolución de problemas mediante búsqueda, por otro
lado, me sorprendió lo mucho que esta clase de temas se encuentran relacionados a la
elaboración y desarrollo de tecnologías de inteligencia artificial ya que más allá que esta clase
de tecnologías hagan uso de esta clase de conceptos y algoritmos pues es paso más para
comprender de qué manera desarrollar esta clase de algoritmos y poder quizás en un futuro
cercano llevar a cabo un proyecto de esa índole, y no necesariamente crear una inteligencia
artificial sino que más desarrollar una el comprender su funcionamiento y cada uno de sus
componentes de tal manera que estas herramientas puedan sernos de utilidad para el
desarrollo de diversos proyectos, esto vendría siendo lo que yo me llevo a manera de
aprendizaje tras haber realizado la presente practica del laboratorio.
7
Bibliografía
I Reventos, V. T. (2019, September). Y Búsqueda - [Link]. Resolucion de Problemas y
Busquedas.
[Link]
Tema 3: Tipos Abstractos de Datos: árboles, Grafos. (n.d.).
[Link]