IIC2613-Inteligencia-Artificial-2023-1 / Syllabus

Repositorio base del curso, donde se publicarán enunciados, ayudantías y se resolverán dudas.
39 stars 1 forks source link

Tarea 4 - Actividad 1.1: Métodos para crear el set de datos #89

Open ElTioAndresCabezas opened 1 year ago

ElTioAndresCabezas commented 1 year ago

Hola!

En la actividad 1.1 de la tarea 4, se entrega el siguiente codigo base para generar el set de datos de entrenamiento para cada uno de los agentes (este ejemplo es para entrenar al Gato)

# Instanciamos al jugador oponente
rival = BaseMouse((0, 0))

# Trabajaremos a X e y como listas, en la siguiente celda las transformaremos a un array de numpy
# (los componentes que colocas en ellas si deben ser numpy arrays)
X = []
y = []

# Para cada combinación de posiciones de gato y ratón
for cat_pos in free_positions:
    for mouse_pos in free_positions:
        X.append(np.array([cat_pos[0], cat_pos[1], mouse_pos[0], mouse_pos[1]]))

        # ===== COMPLETAR =====
        # Se debe calcular un vector de accion, correspondiente a la decisión a tomar para añadirlo a la lista y
        label = np.zeros((5))   # Actualmente se trata de un vector de solo ceros, se debe reemplazar la posición del movimiento elegido por un 1
        # =====================

        y.append(label)

Se entrega una instancia del enemigo para entrenar, pero no una del agente en si (en este caso, una instancia de BaseCat). Tanto BaseCat como BaseMouse incluyen el metodo get_action(), el cual, dado un mapa y posiciones de ambos agentes, toma la decisión que se considera más correcta.

¿Nosotros tenemos permitido usar ese método para obtener la respuesta de movimiento del agente para armar el set de datos? ¿O se espera que nosotros reimplementemos desde 0 eso (considerando que las decisiones del movimiento quedan a nuestro criterio)?

De antemano, muchas gracias :)

dfloreaa commented 1 year ago

Hola, se espera que ustedes desarrollen su propia política de comportamiento a aprender por cada uno de sus agentes. Si bien esta puede estar basada en la respuesta enemiga, no puede utilizar el comportamiento base que les entregamos para el agente.

Es parte de los objetivos de la tarea que intenten programar el problema "a mano"