Giter Club home page Giter Club logo

corruption-simulate's Introduction

Simulação da corrupção

Esse trabalho é baseado nesse TCC.

Funcionamento do algoritmo de Hammond

Cada agente possui a predisposição de agir de forma corrupta ou não, caso um agente corrupto tiver um vizinho não corrupto, o agente corrupto é denunciado. Após certo número de denuncia o agente será preso. Os agentes entretanto não sabem quantas vezes foram denunciados ou quantas vezes podem praticar corrupção sem serem presos. Isso faz com que não saibam a probabilidade real de serem capturados, aumentando gradualmente sua taxa de corrupção.

Para formular sua decisão, primeiramente, o agente verifica a probabilidade de se deparar com um agente corrupto a partir de suas experiências passadas. Dada uma memória de tamanho N, A = n / N. Onde A é sua expectativa de encontrar um agente corrupto e n o número de vezes que encontrou um agente corrupto no passado. A percepção de sua probabilidade de ser capturado é dada por B=m/M, onde m é a quantidade de agentes de sua vizinhança que foram presos e M é a quantidade de agentes que atuaram de forma corrupta. (COSTA, 2014)

Implementação

Na implementação temos que cada HumanAgent tem que se comunicar com seus vizinhos para obtenção de alguns parâmetros de tomada de decisão. Ao final todo os agentes tem de se comunicar com o agente Space, a medida que a comunicação com seus vizinhos for finalizada.

Work

  • Vermelhos: Corruptos
  • Brancos: Honestos
  • Amarelos: Presos

A imagem acima mostra um exemplo de simulação, com parâmetros de justiça elevados. Os parâmetros da simulação estão em HumanAgent.

Como executar

Basta executar em dois terminais diferentes os seguintes comandos:

mvn -Pjade-main exec:java
mvn -Pjade-agent exec:java

No primeiro temos a instanciação do container do jade, no segundo a execução do agente Space.

Como contribuir?

Abra uma issue, crie uma branch e envie seu pull request. Dúvidas podem ser tiradas via issues também!

Referências

http://www.cs.sjsu.edu/~pearce/modules/lectures/eco2/ca/corruption.htm

corruption-simulate's People

Contributors

pwener avatar vinypinheiro avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

corruption-simulate's Issues

Contar o número de agentes corruptos ao redor

Sempre que um agente honesto, ver um agente corrupto, ele deve denuncia-lo. Quando um agente tiver um tal número de denúncias, será preso. Crie esse comportamento, considerando a matriz agents em Space.

Decisão do agente

Em cada rodada um agente pode escolher ou não ser honesto, a partir de sua escolha, ele será delatado ou não. Considere as formulas do capitulo 6 do TCC e monte um mecanismo para escolha do agente ser ou não corrupto em tal rodada.

Agir do agente.

Para um agente corrupto, pode ser considerado o incentivo C, que seria o valor de propina, esse incentivo C pode influenciar inclusive a decisão do agente (#2).

Já o agente honesto, denuncia os agentes corruptos que encontrar. Modele esses comportamentos em CorruptionAct e HonestAct

Space grid

O Space precisa de um grid de tamanho spaceLenghtxspaceLenght, atualizável, com quadrados que aceitam cor preta, vermelha, branca e amarela.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.