Sie sind auf Seite 1von 7

O problema do Dilema do Prisioneiro no Contexto de Teoria dos Jogos sob a forma de Java Applets

Rosane Caldeira
Depto. de Engenharia Eltrica, FEIS, UNESP 15385-000, Ilha Solteira, SP E-mail: rosanecal@aluno.feis.unesp.br

Srgio Azevedo de Oliveira


Depto. de Engenharia Eltrica, FEIS, UNESP 15385-000, Ilha Solteira, SP E-mail: grilo@dee.feis.unesp.br

RESUMO O objetivo do trabalho dar uma idia geral a respeito do estudo da Teoria dos Jogos, bem como sua aplicao ao Problema do Dilema do Prisioneiro no contexto dos jogos no-cooperativos, apresentando-a na forma de um programa computacional. Como definio formal, tem-se que a Teoria dos Jogos a anlise matemtica de qualquer situao que envolva um conflito de interesses com o intuito de indicar as melhores opes que, sob determinadas restries, conduziro aos objetivos desejados [2]. Desenvolvida como ferramenta para compreender comportamento econmico e depois estratgias nucleares, a Teoria dos Jogos , atualmente, usada em diversos campos acadmicos, como: Biologia, Cincia Poltica, tica, Filosofia, Jornalismo, Psicologia e reas de Cincia da Computao, Lgica, Matemtica e Engenharia. Os jogos estudados pela Teoria dos Jogos so objetos matemticos bem definidos. Para caracterizar um jogo necessrio descrever cinco elementos bsicos, que so: os jogadores, o conjunto de regras do jogo, a estratgia do jogo, o resultado do jogo e a funo de utilidade dos jogadores. Dependendo da forma como os jogadores se comportam os jogos subdividem-se em no-cooperativos e cooperativos. Em jogos no-cooperativos, cada jogador defende seus prprios interesses, montando estratgias para alcanar o maior benefcio, enquanto que nos jogos cooperativos, o conjunto de aes possveis est associado a grupos de jogadores (ou coalizes). H duas formas de representao dos jogos que so a Forma Normal e a Forma Extensiva. A forma normal uma matriz que mostra os jogadores, estratgias e pagamentos. Os pagamentos so registrados no seu interior. O primeiro nmero o pagamento recebido pelo jogador da linha e o segundo o pagamento para o jogador da coluna. Quando um jogo apresentado, presume-se que cada jogador atue simultaneamente ou, pelo menos, sem conhecer a ao dos outros. Se os jogadores passam a ter alguma informao acerca das escolhas dos outros jogadores, o jogo habitualmente apresentado na forma extensiva, que normalmente especificada atravs de uma estrutura chamada rvore do jogo, como um grafo direto com nmero finito de ns N, conectados atravs de arcos que definem as aes dos jogadores. Cada vrtice representa um ponto de deciso para um jogador. O jogador especificado no vrtice. Os pagamentos podem ser especificados na parte inferior da rvore. O dilema do prisioneiro um exemplo clssico sobre Teoria dos Jogos no-cooperativos que ser mostrado sob a forma normal de representao, assim como a simulao do jogo sob a forma de java applets (pequenos programas em Java) programado na linguagem de programao Java.

Exposio do Problema Considere a seguinte situao: Dois suspeitos acusados de uma violao da lei so mantidos em celas separadas. A cada um dito que se ele confessar e o outro no, ele ser libertado, enquanto que o outro ir para a priso. Se ambos confessarem, ambos iro para a priso. Se nenhum confessar, a polcia pode sentenciar ambos por acusaes menos graves. Esta a exposio do jogo do Dilema do Prisioneiro. Formulao do Problema Jogo Estratgico (Strategic Game)

Um jogo estratgico consiste de um conjunto finito de jogadores, onde para cada jogador existe um conjunto no vazio e uma relao de preferncia sobre o conjunto [1].

Definio:
onde,
J um conjunto finito de jogadores; para cada jogador i J, existe um conjunto no-vazio Ai de aes disponveis para o jogador i; para cada jogador i J existe uma relao de preferncias sobre o conjunto

A = Ai que define uma funo utilidade ui: A que associa o ganho do jogador a cada perfil
i J

de estratgias.

Exemplo Prtico: Na situao em que dois ladres, Al e Bob, so capturados e acusados de um mesmo crime. Presos em celas separadas e sem poderem se comunicar entre si, o delegado de planto faz a seguinte proposta: cada um pode escolher entre confessar ou negar o crime. Se nenhum deles confessar, ambos sero submetidos a uma pena de 1 ano. Se os dois confessarem, ento ambos tero pena de 5 anos. Mas se um confessar e o outro negar, ento o que confessou ser libertado e o outro ser condenado a 10 anos de priso (Figura 1).

Figura 1: Ilustrao do Problema do Dilema do Prisioneiro.

Definio do Problema:
J = {Al, Bob}

AAl = {confessar, negar} ABob = {confessar, negar} A = {(confessar, confessar), (confessar, negar), (negar, confessar), (negar, negar)} Funo de Utilidade de Al uAl = A uAl (confessar, confessar) = 5; uAl (confessar, negar) = 0; uAl (negar, confessar) = 10; uAl (negar, negar) = 1; Funo de Utilidade de Bob uBob = A uBob (confessar, confessar) = 5; uBob (confessar, negar) = 10; uBob (negar, confessar) = 0; uBob (negar, negar) = 1; Na Tabela 1, a seguir, mostrado o problema do dilema do prisioneiro na forma de repesentao normal. Tabela 1: Representao normal do Dilema do Prisioneiro.

Bob confessar Al confessar negar


Soluo Computacional O ambiente de desenvolvimento Eclipse [4] foi adotado como IDE (Integrated Development Environment) por ser uma proposta de um consrcio de empresas renomadas como a IBM, Borland, entre outras que apiam o uso de uma arquitetura aberta para construo de aplicaes web e em aplicaes integradas. Numa viso geral do ambiente de desenvolvimento utilizado na elaborao do programa computacional para o problema do dilema do prisioneiro, a Figura 2 mostra os seguintes frames: 1. O package explorer, como um visualizador simples e elegante dos projetos. 2. O editor de texto que denota as palavras-chave de Java TM. 3. O console, como terminal para entrada e sada de dados. 4. Outline que funciona como visualizador da estrutura interna dos arquivos.

Negar ( 0 , 10 ) (1,1)

(5,5) ( 10 , 0 )

Figura 2: Viso Geral do Ambiente Eclipse. Java foi criada pela Sun Microsystems e introduzida como uma linguagem de programao orientada a objetos cujo princpio fundamental resume-se na palavra: portabilidade, ou seja, a capacidade de gerar produtos independente da plataforma de execuo [3]. Java simples, orientada a objetos, robusta, segura, distribuda e independente de plataforma devido a um componente chamado Java Virtual Machine ou JVM. O compilador traduz as instrues para um cdigo neutro padronizado pela Sun, chamado bytecode. UML a abreviao de Linguagem de Modelagem Unificada, uma notao para modelagem de sistemas, usando conceitos de orientao a objetos. UML padroniza artefatos e notao, mas ela no define um processo-padro de desenvolvimento [6]. O presente trabalho foi feito sob um processo de desenvolvimento iterativo e incremental desde as fases de anlise e projeto at as fases de construo e instalao assim como testes de validao e correes. Para criar o software de uma aplicao, necessria uma descrio do problema e dos requisitos o que o problema e o que o sistema deve fazer. A anlise enfatiza uma investigao do problema, de como uma soluo definida. Faz-se necessrio tambm ter descries de alto nvel e descries detalhadas da soluo lgica e de como ela atende os requisitos e as restries. A essncia da anlise e do projeto orientados a objetos enfatizar a considerao de um domnio de problema e uma soluo lgica, segundo a perspectiva de objetos. H uma nfase na descoberta e na descrio dos objetos ou conceitos do domnio do problema. Um sistema (do mundo real ou de software) , de modo geral, excessivamente complexo, portanto necessrio decomp-lo em pedaos que podem ser representados como modelos que descrevem e abstraem aspectos essenciais do sistema [6]. No domnio do problema do Dilema do Prisioneiro, alguns dos conceitos incluem usurio, prisioneiro e estratgia. O programa computacional simula a execuo do jogo Dilema do Prisioneiro, exemplo bastante disseminado no contexto da Teoria dos Jogos no-cooperativos.

A interface grfica do programa chama-se ENGTJ e possui a seguinte tela principal de simulao do jogo mostrada na Figura 3.

Figura 3: Tela inicial do ENGTJ. No lado superior esquerdo da tela est o jogador Al, que pode escolher entre duas estratgias que so: confessar ou no-confessar o crime. E no lado direito esto as opes para o jogador Bob. Tanto para o jogador Al como o jogador Bob existe uma rea de texto que mostra cada uma das estratgias do jogo. Antes de executar o jogo, preciso realizar uma pr-configurao que consiste na escolha da estratgia desejada, do nmero de rodadas (interrogatrios) pelos quais os prisioneiros iro passar. Aps a configurao dos parmetros do jogo, ento hora de jogar. Ao selecionar o boto Jogar o jogo processado e ento sero exibidos os seguintes resultados: o clculo de soma das penas, a mdia das penas e as penas em anos, meses e dias de cada prisioneiro, como mostra a Figura 4. O usurio poder reiniciar o jogo at no mximo trs vezes, pressionando o boto Reiniciar, assim o mesmo ter limitado as tentativas de enganar o programa para levar vantagem (conseguir menores penas) na escolha das opes. Depois de cumprido o total de trs tentativas o jogo ser encerrado e o usurio no poder mais interagir com o programa. Contudo, o usurio poder ler a moral do jogo na caixa de dilogo exibida na tela, conforme mostrado na Figura 5, onde so apresentadas as penas obtidas de acordo com a estratgia escolhida.

Figura 4: Tela de processamento do ENGTJ.

Figura 5: Tela de explicao do ENGTJ. Assim o usurio pode inferir sobre os conceitos da Teoria dos Jogos apresentados pela simulao e ao pressionar o boto OK aparecer a tela da Figura 6 finalizando aquele jogo.

Figura 6: Tela de finalizao do jogo.

No desenvolvimento da interface grfica ENGTJ, est previsto outros jogos cooperativos e nocooperativos que, em conjunto, dotaro o programa de outros conceitos da Teoria dos Jogos para a inferncia do usurio, bem como de um Tutorial com as definies formais destes conceitos que podero ser acessados a qualquer momento.

Concluses Situaes de conflito, tomadas de deciso e desenvolvimento de estratgias reunem-se nesse fascinante campo de estudo chamado Teoria dos Jogos. Ao propor utilizar jogos de estratgia para analisar o mundo social, John von Neumann e Oskar Morgenstern [5] retornaram a uma prtica milenar para entender e estudar o mundo. Ambos contriburam para a criao de uma cincia com grande capacidade de generalizao e preciso matemtica. Na resoluo de problemas de engenharia em geral existem diversas metodologias que podem ser aplicadas, e normalmente estas metodologias envolvem novos conceitos, s vezes, inditos em termos de aplicao. A Teoria dos Jogos promete tornar-se um prisma poderoso sob o qual as relaes humanas podem ser analisadas. Praticantes e acadmicos, rodeados rotineiramente pelos conflitos e complexidade da sociedade somente tm a ganhar com essa viso. Ou, como disse certa vez o fundador da Atari, Alan Bushnell: A rea de negcios um bom jogo muita competio e um mnimo de regras. Assim, neste trabalho, com o desenvolvimento da interface grfica ENGTJ, o usurio pode inferir os conceitos relacionados a jogos no-cooperativos simulando diversas jogadas no exemplo do Problema do Dilema do Prisioneiro. Em sua forma final, com a incluso de outros jogos no-cooperativos e cooperativos e de um tutorial sobre a Teoria dos Jogos, pretende-se que a interface grfica permita ao usurio a inferncia de novos conceitos desta teoria. Referncias [1] H. J. Bortolossi; G. Garbagio; B. Sartini. Uma introduo teoria econmica dos jogos. COLQUIO BRASILEIRO DE MATEMTICA, 26, 2007, Rio de Janeiro. Colquio Brasileiro de Matemtica. Rio de Janeiro: Editora IMPA, p. 185, 2007. [2] D. R. De Vasconcelos. Anlise de estratgias utilizando verificao formal de modelos. Tese de mestrado. Pontifcia Universidade Catlica do Rio de Janeiro, 2003. [3] H. M. Deitel; P. J. Deitel. Java: como programar. Porto Alegre: Bookman Companhia, p. 1102, 2001 [4] E. Gonalves. Dominando Eclipse. Rio de Janeiro: Editora Cincia Moderna, 2006. [5] J. Neumann; O. Morgenstern. Theory of games and economics behaviour. Cambridge: Harvard University Press, 1972. [6] B. J. Rumbaugh. Visual modeling with rational rose and UML. New York: Addison Wesley Longman, Inc., 1998.