SISTEMAS DE INFORMAÇÃO     SISTEMAS INTELIGENTES    ADRIANO RÉGIS - 2006103696ERIVAN DE SENA RAMOS - 2006103675    IMPLEME...
2008    ADRIANO RÉGIS - 2006103696ERIVAN DE SENA RAMOS - 2006103675    IMPLEMENTAÇÃO GAME OF LIFE               Trabalho a...
2008                      SUMÁRIO1. INTRODUÇÃO                   42. OBJETIVO                     53. DESENVOLVIMENTO     ...
1. INTRODUÇÃO       Na década de 40, um dos problemas matemáticos mais famoso era o deachar uma máquina que fosse capaz de...
2. OBJETIVO        Este "jogo" é na realidade um jogo sem jogador, o que quer dizer que suaevolução é determinada pelo seu...
3. DESENVOLVIMENTO       O presente trabalho, foi desenvolvido em VBA - Visual Basic forApplications, linguagem derivada d...
3.1 REGRAS       As regras satisfazem a três critérios:       1.    Não deve haver nenhuma imagem inicial para a qual haja...
3.2 CÓDIGOS FONTEDim continua As IntegerFunction Sobrevivencia(Boundaries As Range) Esta funcão identifica se acélula atua...
Sub VerificaVida() Esta Macro que verifica todas as células para saberse ficarão vivas ou mortas, e copia o resultado para...
Sub PorGeracao() Macro que execulta o jogo por rodada    Application.ScreenUpdating = True          Sheets("Jogo").Range("...
4. CONCLUSÃO       O desenvolvimento do presente trabalho nos levou a concluir que a vidapode ser simulada em ambientes co...
5. BIBLIOGRAFIAGREEN,        David    G.    Cellular      Automata,      1993.       Disponível    emhttp://life.csu.edu.a...
Upcoming SlideShare
Loading in …5
×

Implementação Life (Jogo da Vida) - Sistemas Autômatos - Sistemas Inteligentes

1,846 views
1,494 views

Published on

O desenvolvimento do presente trabalho nos levou a concluir que a vida pode ser simulada em ambientes computacionais. Sistemas Autômatos são uma forma de implementar modelos onde se espera encontrar complexidade da simplicidade.
O Jogo da Vida de Conway cria um universo complicado a partir de poucas regras. Ele é interessante para biólogos, matemáticos, economistas, filósofos e outros a observar o modo como imagens complexas podem surgir de implementações de regras muito simples.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,846
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
32
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Implementação Life (Jogo da Vida) - Sistemas Autômatos - Sistemas Inteligentes

  1. 1. SISTEMAS DE INFORMAÇÃO SISTEMAS INTELIGENTES ADRIANO RÉGIS - 2006103696ERIVAN DE SENA RAMOS - 2006103675 IMPLEMENTAÇÃO PROJETO LIFE FORTALEZA
  2. 2. 2008 ADRIANO RÉGIS - 2006103696ERIVAN DE SENA RAMOS - 2006103675 IMPLEMENTAÇÃO GAME OF LIFE Trabalho acadêmico apresentado à disciplina de Sistemas Inteligentes, do curso de Sistemas de Informação da Faculdade Integrada do Ceará como requisito para a obtenção de parte da nota de AV2. Sob a orientação do Professor Cláudio Olany. FORTALEZA 2
  3. 3. 2008 SUMÁRIO1. INTRODUÇÃO 42. OBJETIVO 53. DESENVOLVIMENTO 63.1 REGRAS 73.2 CÓDIGOS FONTE 84. CONCLUSÃO 115. BIBLIOGRAFIA 12 3
  4. 4. 1. INTRODUÇÃO Na década de 40, um dos problemas matemáticos mais famoso era o deachar uma máquina que fosse capaz de construir cópias de si mesma, que teveuma solução baseada em um autômato celular extremamente engenhoso ecomplicado inventado pelo renomado matemático John von Neumann. JohnConway inventou o Jogo da Vida (ou Game of Life) ao utilizar suas descobertasanteriores relacionadas com o problema de encontrar um grupo simétrico deesferas em 24 dimensões proposto por John Leech para simplificar a solução deVon Neumann. O jogo fez sua primeira aparição na edição de Outubro de 1970 daScientific American, na coluna de jogos matemáticos de Martin Gardner. De umponto de vista teórico, ele é interessante pois tem o poder de uma máquina deTuring universal: tudo pode ser computado através de algoritmos no Jogo da Vidade John Conway. Também era dito desde 1970 que foi destinado mais tempo decomputação ao Jogo da Vida do que à qualquer outra atividade. O jogo fez John Conway famoso instantaneamente, mas ele também abriuum novo campo na pesquisa matemática, ao campo dos autômatos celulares. Porcausa das analogias de Life com o aumento, redução e alteração de umasociedade de organismos vivos, isto pertence a uma classe crescente que échamada "jogos de simulação" - jogos que recriam processos do mundo-real. Desde sua publicação, ele tem atraído muito interesse devido aoscaminhos surpreendentes que pode tomar. Life é um exemplo de auto-organização. 4
  5. 5. 2. OBJETIVO Este "jogo" é na realidade um jogo sem jogador, o que quer dizer que suaevolução é determinada pelo seu estado inicial, não necessitando de nenhumaentrada de jogadores humanos. Ele é jogado em um conjunto de célulasquadradas que seguem ao infinito em todas as direções. Cada célula tem oito"vizinhos", que são as células adjacentes, incluindo as diagonais. Cada célulapode estar em dois estados: "viva" ou "morta". (Também são usados os termos"ligado" e "desligado".) O estado do tabuleiro evolui e se modifica em pequenaspassagens de tempo. Os estados de todas as células em um instante são considerados paracalcular o estado de todas as células no instante seguinte. Todas as células sãoatualizadas simultaneamente. As transições dependem apenas do número devizinhos vivos A idéia básica do "jogo" é começar com uma configuração simples decélulas vivas (organismos) que são colocadas em um tabuleiro 2D de váriosmétodos. Isto constitui a primeira geração. As "leis genéticas" de Conway paranascimentos, mortes e sobrevivência são então aplicadas e a nova geração éentão colocada de acordo. Geração a geração os "jogador(es)" observam asvárias imagens que surgem. É importante entender que todos os nascimentos e mortes ocorremsimultaneamente. Juntos eles constituem uma geração ou, como podemoschamá-los, um "instante" na história da vida completa da configuração inicial. 5
  6. 6. 3. DESENVOLVIMENTO O presente trabalho, foi desenvolvido em VBA - Visual Basic forApplications, linguagem derivada do Visual Basic, implementado no aplicativoMicrosoft Office Excel 2003, através macros que são executadas em resposta aum determinado evento, utilizando as regras do jogo Life, definidas por JohnConway. Foram desenvolvidas as seguintes macros e funções que possibilitam ofuncionamento do jogo: Function Sobrevivencia(Boundaries As Range) Esta funcão identifica se a célula atual deve ficar viva ou não, contando quantas células vivas estão ao redor. Sub VerificaVida() Esta Macro que verifica todas as células para saber se ficarão vivas ou mortas. Sub JogodaVida() Essa macro copia o conteúdo da pasta Jogo para a Temporaria, roda a macro VerificaVida, e copia de volta o conteúdo da Temporaria para a pasta Jogo. Sub PorGeracao() Macro que execulta o jogo por rodada. Sub Limpar() Macro que limpa a tabela. 6
  7. 7. 3.1 REGRAS As regras satisfazem a três critérios: 1. Não deve haver nenhuma imagem inicial para a qual haja uma provaimediata ou trivial de que a população pode crescer sem limite. 2. Deve haver imagens iniciais que aparentemente crescam sem limite. 3. Deve haver imagens iniciais simples que cresçam e mudem por umperíodo de tempo considerável antes de chegar a um fim das possíveis formas: I- Sumindo completamente (por superpopulação ou por ficarem muito distantes). II- Estacionando em uma configuração estável que se mantem imutável para sempre, ou entrando em uma fase de oscilação na qual são repetidos ciclos infinitos de dois ou mais períodos. As regras as seguintes: I - Qualquer célula viva com menos de dois vizinhos vivos morre de solidão. II - Qualquer célula viva com mais de três vizinhos vivos morre de superpopulação. III - Qualquer célula com exatamente três vizinhos vivos se torna uma célula viva. IV - Qualquer célula com dois vizinhos vivos continua no mesmo estado para a próxima geração. 7
  8. 8. 3.2 CÓDIGOS FONTEDim continua As IntegerFunction Sobrevivencia(Boundaries As Range) Esta funcão identifica se acélula atual deve ficar viva ou nãoDim contador As Integer Conta quantas células vivas estão ao redorcontador = Boundaries(1, 1)contador = contador + Boundaries(2, 1)contador = contador + Boundaries(3, 1)contador = contador + Boundaries(1, 2)contador = contador + Boundaries(3, 2)contador = contador + Boundaries(1, 3)contador = contador + Boundaries(2, 3)contador = contador + Boundaries(3, 3)If Boundaries(2, 2) = 0 Then Célula atual: se for zero, está morta If contador = 3 Then Se caso existir 3 células vivas ao redor, acélula ressussita. Sobrevivencia = 1 continua = 1 Se continua for 0, identifica que o jogo acabou. End IfEnd IfIf Boundaries(2, 2) = 1 Then Aqui são as regras de sobrevivência para acélula viva If contador > 3 Then Se existirem mais que 3 células ao redor, mortepor superpopulação Sobrevivencia = 0 continua = 1 ElseIf contador < 2 Then Se existirem menos de 2 células ao redor,morte por solidão Sobrevivencia = 0 continua = 1 Else Sobrevivencia = 1 Significa que a célula pode continuar viva. End IfEnd IfEnd Function 8
  9. 9. Sub VerificaVida() Esta Macro que verifica todas as células para saberse ficarão vivas ou mortas, e copia o resultado para a planilha"Temporaria" . Em cada célula, é realizada essa função, e insere comoentrada o Range de células que a cercam.Dim contalinha As Integer Contador de linhasDim contacoluna As Integer Contador de colunascontalinha = 2Do While contalinha <= 41 contacoluna = 2 Do While contacoluna <= 41 Sheets("temporaria").Cells(contalinha, contacoluna) =Sobrevivencia(Range(Sheets("jogo").Cells(contalinha - 1, contacoluna -1), Sheets("jogo").Cells(contalinha + 1, contacoluna + 1))) contacoluna = contacoluna + 1 Loop contalinha = contalinha + 1LoopEnd SubSub JogodaVida() Essa macro copia o conteúdo da pasta Jogo para aTemporaria, roda a macro VerificaVida, e copia de volta o conteúdo.continua = 1Do While continua = 1 continua=1 é o indicador que o jogo ainda nãoacabou. continua = 0 Application.ScreenUpdating = FalseSheets("Jogo").Range("B2:Ao41").Copy Sheets("Temporaria").Range("B2:Ao41").PasteSpecialPaste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False,Transpose:=False Call VerificaVida Chama a macro VerificaVida. Sheets("Temporaria").Range("B2:Ao41").Copy Sheets("Jogo").Range("B2:Ao41").PasteSpecial Paste:=xlPasteValues,Operation:=xlNone, SkipBlanks:=False, Transpose:=False Cells(1, 1).Select Application.ScreenUpdating = TrueLoopEnd Sub 9
  10. 10. Sub PorGeracao() Macro que execulta o jogo por rodada Application.ScreenUpdating = True Sheets("Jogo").Range("B2:Ao41").Copy Sheets("Temporaria").Range("B2:Ao41").PasteSpecialPaste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False,Transpose:=False Call VerificaVida Sheets("Temporaria").Range("B2:Ao41").Copy Sheets("Jogo").Range("B2:Ao41").PasteSpecial Paste:=xlPasteValues,Operation:=xlNone, SkipBlanks:=False, Transpose:=False Cells(1, 1).Select Application.ScreenUpdating = TrueEnd SubSub Limpar() Macro que limpa a tabela. Range("B2:AO41").Select Selection.ClearContents Range("A1").SelectEnd SubPrivate Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel AsBoolean)Alterna o valores entre 0 e 1 no duplo clique.If Selection.Value = 1 Then Selection.Value = 0Else Selection.Value = 1End IfEnd Sub 1
  11. 11. 4. CONCLUSÃO O desenvolvimento do presente trabalho nos levou a concluir que a vidapode ser simulada em ambientes computacionais. Sistemas Autômatos são umaforma de implementar modelos onde se espera encontrar complexidade dasimplicidade. O Jogo da Vida de Conway cria um universo complicado a partir depoucas regras. Ele é interessante para biólogos, matemáticos, economistas,filósofos e outros a observar o modo como imagens complexas podem surgir deimplementações de regras muito simples. 1
  12. 12. 5. BIBLIOGRAFIAGREEN, David G. Cellular Automata, 1993. Disponível emhttp://life.csu.edu.au/complex/tutorials/tutorial1.html, acessado em 13/11/2008.REGIS, Ed. Whos Got Einsteins Office?, Addison-Wesley, 1987. Disponível emhttp://www.stephenwolfram.com/about-sw/interviews/87-einstein/text.html,acessado em 13/11/2008.Wilkipédia, a enciclopédia livre, Jogo da Vida, 2008. Disponível emhttp://pt.wikipedia.org/wiki/Jogo_da_vida, acessado em 14/11/2008. 1

×