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:
- Especificar as características do contorno de tarefas.
- Identificar o tipo de axente para determinar a estrutura do axente.
- Implementar en Python os compoñentes da estrutura do axente para construir a función axente ou función mapa.
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.
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 tarefas.
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:
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.
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:
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.
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
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.
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.