Skip to content

Práctica do curso de especialización en Intelixencia Artificial e Big Data de Formación Profesional - IES de Teis

Notifications You must be signed in to change notification settings

dfleta/pedra-papel-tesoira

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Práctica Axentes Intelixentes

Proponse programar un axente intelixente solución ao entorno de tarefas do xogo pedra, papel, tesoiras, seguindo as directrices de modelado propostas no capítulo 2 Intelligent Agents do libro IA: A modern approach, Russell & Norvig.

Para iso é necesario:

  1. Especificar as características do contorno de tarefas.
  2. Identificar o tipo de axente para determinar a estrutura do axente.
  3. Implementar en Python os compoñentes da estrutura do axente para construir a función axente ou función mapa.

O problema

Estudia a solución básica ao xogo pedra, papel, tesoiras (desde agora RPS, siglas en inglés correspondentes a Rock, Paper, Scissors).

Intenta comprender os constructos Python que se empregan.

Contorno de tarefas

Especifica as características do contorno de tarefas do RPS e xustifica a túa resposta, segundo o epígrafe "2.3.2 Properties of task environments" do capítulo 2 Intelligent Agents do libro IA: A modern approach, Russell & Norvig.

Resume as características do contorno nunha táboa co formato:

Contorno de tarefas Observable Axentes Determinista Episódico Estático Discreto Coñecido
RPS -  - - - - -   -

No libro atoparás unha táboa semellante:

Exemplos contornas de tarefasExemplos contornas de tarefas.

Estrutura do axente

O noso propósito é deseñar o programa axente que implementa a función axente ou a función que mapea as percepcións a accións.

A partires do modelo xeral de axente intelixente da figura:

Modelo xeral axente intelixente

debuxa un modelo adecuado ao contorno de tarefas e a un dos catro tipos de programas axente:

  • Axentes reactivos simples
  • Axentes reactivos baseados en modelos.
  • Axentes baseados en obxectivos.
  • Axentes baseados en utilidade.

Cada clase de axente combina compoñentes particulares dun modo particular para xerar as accións.

Implementación - Simulando IA

Implementa en Python os compoñentes da estrutura do axente para construir a función axente ou función mapa.

Lee o código contigo en src e os comentarios ao código.

Modifica a función get_computer_action() coa estratexia que consideres máis proveitosa para maximizar o rendemento do axente. Recorda que a medida do rendemento vese afectada por diversas consideracións.

Engade os compoñentes software que precises para implementar os compoñentes do tipo de programa axente que deseñaches no epígrafe anterior que, de xeito xeral, se incluen na figura seguinte:

Table Driven Agent Program

Consegue que o código satisfaga os principios SOLID, en particular, SRP e OCP para extender a súa lóxica a diferentes versións do xogo.

Extensión

Unha vez programado o axente para a versión clásica do RPS, extende o súa lóxica para xogar á versión pedra, papel, tesoiras, lagarto, Spock

Entrega

Nun proxecto no teu github /gitlab co teu código e a documentación, esta última recollida no README do proxecto e escrita en formato Markdown.

Bibliografía

Lutz, Mark. Learning Python. Sebastopol, Ca, O’reilly, 2018.

Martin, Robert C. Clean Code a Handbook of Agile Software Craftmanship. Upper Saddle River [Etc.] Prentice Hall, 2010.

Martin, Robert C. Clean Architecture: A Craftsman’s Guide to Software Structure and Design. Prentice Hall, 2018.

S. McConnel. Code Complete: A Practical Handbook of Software Construction, 2dn Edition. Microsoft Press, 2004.

Russell, Peter. ARTIFICIAL INTELLIGENCE : A Modern Approach, Global Edition. S.L., Pearson Education Limited, 2021.

About

Práctica do curso de especialización en Intelixencia Artificial e Big Data de Formación Profesional - IES de Teis

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages