GitXplorerGitXplorer
j

InteligenciaArtificial_IA

public
0 stars
1 forks
0 issues

Commits

List of commits on branch master.
Verified
57c62c9132c9e49442fbb0611a4e1d96e856273b

Update README.md

jjlgallego99 committed 5 years ago
Verified
0bb354b46fc2647b489a7656980ed8ee21e5f599

Merge pull request #1 from Galactic-O/master

jjlgallego99 committed 5 years ago
Verified
47020a73b7750cc2848720e6d684562a6c72a381

Actualizado README.md

PPabluwu707 committed 5 years ago
Verified
a340ef77a03c9778f3576516d0a43ba44a821409

Create LICENSE

jjlgallego99 committed 5 years ago
Unverified
91d9588a18e78ed50cb2efd6c4e53735222b6e5f

Practica 3 terminada

jjlgallego99 committed 6 years ago
Unverified
136f82cd62bdde9a8da36046a68c624b36f23fb9

Retoques a la heuristica

jjlgallego99 committed 6 years ago

README

The README file for this repository.

Prácticas de la asignatura Inteligencia Artificial

Prácticas de la asignatura Inteligencia Artificial del grado en Ingeniería Informática (UGR). Consisten en 3 prácticas diferentes que están divididas por niveles, cada uno realizando una función específica dentro de cada práctica.

Práctica 1: Agente Conversacional

Bot conversacional usando el lenguaje AIML 2.0. He desarrollado 3 niveles de los 4 propuestos.

  • Nivel 0: Contesta un total de 18 preguntas frecuentes que puedan aparecer en una entrevista de trabajo.
  • Nivel 1: Introducción de contenidos en una plataforma de vídeo. Permite:
    • Incluir un nuevo capítulo en una temporada de una serie.
    • Incluir el primer capítulo de una nueva temporada en una serie.
    • Incluir una nueva serie en una de las plataformas.
  • Nivel 2: Consultas sobre el contenido en una plataforma de vídeo. Permite:
    • Indicar los idiomas y subtítulos en los que se puede visionar una serie. Esto incluye preguntar si la serie está en un idioma concreto.
    • Responder al número de idiomas, subtítulos o capítulos totales o de una temporada que tiene una serie en concreto.
    • Indicar el número de temporadas que tiene la serie.
    • Decir el nombre de un capítulo concreto de una temporada de una serie.
    • Indicar la duración en minutos de un capítulo concreto de una serie.

Para iniciar el bot hay que ejecutar el archivo run.sh.

Práctica 2: Agentes Reactivos/Deliberativos (Los extraños mundos de Belkan)

Los extraños mundos de Belkan es un simulador desarrollado por los profesores de la asignatura, a partir de la versión inicial del profesor Tsung-Che Chiang de la NTNU (Norwegian University of Science and Technology, Trondheim).

Se desarrolla sobre un un mapa cuadrado bidimensional discreto que contiene como máximo 100 filas y 100 columnas. El mapa representa los accidentes geográficos de la superficie de parte de un planeta semejante a la Tierra. Estos accidentes geográficos tendrán un coste mayor o menor de instantes de tiempo, lo que hará que el personaje tarde más tiempo en pasar por uno de estos lugares. Sus elementos son considerados inmutables, es decir, el mapa no cambia durante el desarrollo del juego.

El objetivo de esta práctica es dotar de un comportamiento inteligente al personaje usando un agente reactivo/deliberativo para definir las habilidades que le permitan alcanzar una meta concreta dentro del juego según el nivel seleccionado:

  • Nivel 1: Agente deliberativo básico que conoce por completo el mapa y no hay aldeanos en este (los aldeanos son el único elemento móvil del juego). El agente creará y llevará a cabo un plan que esquivará los muros y evitará caerse por los precipicios (límites del mapa) para así llegar al destino usando tres tipos de algoritmos de búsqueda:
    • Búsqueda en profundidad.
    • Búsqueda en anchura.
    • Búsqueda de costo uniforme.
  • Nivel 2: Agente reactivo/deliberativo complejo que no conoce nada del mapa ni sabe donde se encuentra. Además hay aldeanos, que se mueven por el mapa de forma aleatoria.
    El agente creará un plan para llegar al objetivo, sin embargo hasta que no llegue a un punto de referencia PK no sabe donde está, por lo que en un principio realizará un comportamiento reactivo hasta llegar a un punto de referencia, a partir del cual seguirá el plan generado y rellenando el mapa, recalculando este plan en caso de encontrar obstáculos. Para crear el plan usa el algoritmo de búsqueda de costo uniforme.

El programa se inicia mediante el ejecutable Belkan (siendo BelkanSG una versión que funciona solo por terminal sin interfaz gráfica). Entonces se debe elegir uno de los niveles descritos y el mapa en el que se resolverá el problema. Para elegir una meta dentro del mapa sólo hace falta hacer click sobre el lugar en el mapa, y presionar el botón de "ejecución" para que el personaje vaya hacia ese lugar.

Práctica 3: Métodos de Búsqueda con Adversario (Juegos [DesConecta-4 BOOM])

DesConecta-4 BOOM es un juego derivado del clásico juego Conecta-4. Usaremos un entorno simulado, basado en el ejemplo de la aspiradora inteligente anteriormente visto en clase (del libro "Inteligencia Artificial: Un enfoque Moderno", Stuart Russell, Peter Norvig, y adaptado de la versión usada en la práctica anterior del profesor Tsung-Che Chiang), para representar el tablero del juego y los agentes que competirán con el objetivo de ganar.

Es un juego bipersonal con información completa, jugado en un tablero de 7x7 casillas, en el que los jugadores colocan fichas de forma alternativa. Las fichas se pueden colocar en una de las 7 columnas del tablero, colocándose por arriba y cayendo por gravedad hasta que toquen la primera fila del tablero o una ficha previamente colocada.

La meta del juego es hacer que el adversario alinee 4 fichas en el tablero, ya sea de manera horizontal, vertical o diagonal. Para ello, cada jugador dispone de una ficha bomba, que sustituye a una ficha normal cada 5 movimientos. Si un jugador tiene una ficha bomba en el tablero, posee una acción más, BOOM, que consume el turno del jugador. Hacer BOOM elimina la ficha bomba y todas las fichas del mismo color en la misma fila. Los huecos generados por las fichas eliminadas son rellenados por las fichas que estaban en filas superiores, simulando una caída por gravedad.

El objetivo de la práctica será implementar un MINIMAX (con profundidad máxima de 4) o una Poda ALFA-BETA (profundidad máxima de 8) para que, dado un estado de una partida de DESCONECTA-4 BOOM, se pueda determinar la acción a realizar que permite conseguir la victoria en el juego. También se deberá crear una heurística apropiada en conjunto con el algoritmo implementado. En este caso se ha elegido implementar la Poda ALFA-BETA.