Jogo de Damas Embarcado Multinível

Tamanho: px
Começar a partir da página:

Download "Jogo de Damas Embarcado Multinível"

Transcrição

1 Centro Universitário Positivo - UnicenP Núcleo de Ciências Exatas e Tecnológicas NCET Engenharia da Computação Christiano Grillo Justus Jogo de Damas Embarcado Multinível Curitiba 2006

2 Centro Universitário Positivo - UnicenP Núcleo de Ciências Exatas e Tecnológicas NCET Engenharia da Computação Christiano Grillo Justus Jogo de Damas Embarcado Multinível Monografia apresentada à disciplina de Projeto Final, como requisito parcial à conclusão do Curso de Engenharia da Computação. Orientador: Profª. Adriana Thomé Curitiba 2006

3 Termo de Aprovação Christiano Grillo Justus Jogo de Damas Embarcado Multinível Monografia aprovada como requisito parcial à conclusão do curso de Engenharia da Computação do Centro Universitário Positivo, pela seguinte banca examinadora: Professora Adriana Cursino Thomé Orientadora Professor Nestor Cortez Saavedra Filho Membro Professor Alessandro Zimmer Membro Curitiba, 9 de fevereiro de 2007

4 Agradecimentos Agradeço aos meus pais, André Justus Neto e Licia Carolina B. Grillo Justus, pela oportunidade que me ofereceram de cursar uma faculdade, no auxilio na construção do projeto e pela paciência por agüentarem a constante bagunça. Meus amigos e colegas de classe, principalmente os mais próximos por me ajudarem, passando confiança e descontração nos momentos difíceis. A minha orientadora Adriana Cursino Thomé, por ter confiado este projeto a mim, sempre me guiando na direção certa, nos momentos em que me encontrava perdido. E a todos os professores, pelos ensinamentos transmitidos durante esses anos, que direta ou indiretamente foram fundamentais para a elaboração deste projeto.

5 Sumário Lista de Figuras...7 Lista de Tabelas...9 Lista de Siglas Resumo Abstract Introdução Introdução ao tema do projeto Motivação do desenvolvimento Metas a serem alcançadas Estudo Teórico Teoria dos jogos O Jogo de Damas Regras do jogo de damas Decisões ótimas em jogos Árvore do jogo Estratégias ótimas O algoritmo minimax Poda alfa-beta Decisões imperfeitas em tempo real Funções de avaliação Busca com corte Microcontrolador Display LCD Diodo emissor de luz Descrição Arquitetura AVR Especificação do hardware Funções do hardware Matriz de contatos Componentes utilizados Tabela de custos Requisitos de hardware Página 5

6 4.5. Configurando o chip Diagramas em blocos Especificação do software Ambiente e linguagem de desenvolvimento Interface com o usuário Diagrama de contexto Diagrama de fluxo de dados Diagrama de estados Fluxograma Especificação da validação do projeto Resultados Hardware Software Conclusão Referências Bibliográficas Anexo Cronograma...Erro! Indicador não definido. 11. Anexo Diagrama em blocos do chip Atmega64...Erro! Indicador não definido. 12. Anexo Esquemático do microcontrolador...erro! Indicador não definido. 13. Anexo Esquemático da matriz de contatos..erro! Indicador não definido. 14. Anexo Esquemático da matriz de leds...erro! Indicador não definido. 15. Anexo Esquemático do gravador...erro! Indicador não definido. 16. Anexo Esquemático da fonte...erro! Indicador não definido. Página 6

7 Lista de Figuras Figura Tabuleiro Figura Tabuleiro Figura Tabuleiro Figura Tabuleiro Figura Tabuleiro Figura Tabuleiro Figura Tabuleiro Figura Tabuleiro Figura Tabuleiro Figura Tabuleiro Figura Tabuleiro Figura 2.12 Árvore de busca (parcial) para o jogo da velha Figura 2.13 Árvore do jogo de duas jogadas Figura 2.14 Árvore do jogo de duas jogadas utilizando poda alfa -beta Figura 2.15 Poda alfa-beta Figura 2.16 Peso das casas na heurística posicional Figura 2.17 Display LCD Figura Diodo emissor de luz (LED) Figura 3.1 Módulos do hardware Figura 4.1 Sistema de encaixe das peças no tabuleiro Figura 4.2 Foto do contato de uma das casas Figura 4.3 Matriz de contatos Figura 4.4 Exemplo de funcionamento da matriz de contatos Figura 4.5 Pinagem do chip Atmega Figura 4.6 Circuito para transferência de dados pelo paralela Figura 4.7 Diagrama em blocos do sistema Figura 5.1 Diagrama de contexto Figura 5.2 Diagrama de fluxo de dados (DFD) Figura 5.3 Diagrama de estados Figura 5.4 Fluxograma Figura Criança realizando uma jogada Página 7

8 Figura Crianças interagindo com o tabuleiro Figura 7.1 Placa do circuito da matriz de leds Figura 7.2 Placa do circuito de leitura/escrita do microcontrolador Figura 7.3 Tabuleiro Figura Cronograma do projeto...erro! Indicador não definido. Figura Diagrama em blocos do chip Atmega64... Erro! Indicador não definido. Figura Esquemático do microcontrolador....erro! Indicador não definido. Figura 13.1 Esquemático da matriz de contatos..erro! Indicador não definido. Figura 14.1 Esquemático da matriz de leds....erro! Indicador não definido. Figura Esquemático do gravador....erro! Indicador não definido. Figura Esquemático da fonte...erro! Indicador não definido. Página 8

9 Lista de Tabelas TABELA 2.1 CARACTERÍSTICAS DOS LCD DISPONÍVEIS TABELA 4.1 COMPONENTES UTILIZADOS TABELA 4.2 CUSTOS DO PROJETO TABELA 4.3 ESPECIFICAÇÕES DO MICROCONTROLADOR ATMEGA TABELA 10.1 TAREFAS DO CRONOGRAMA...Erro! Indicador não definido. Página 9

10 Lista de Siglas AVR Advanced Virtual RISC. CISC Complex Instruction Set Computer. CMOS Complementary Metal Oxide Semicondutor. EEPROM Electrically Erasable Programmable Read Only Memory. IA Inteligência Artificial. JTAG - Joint Test Action Group. LCD Liquid Crystal Display. LED Light Emitter Diode. MLF Micro Lead Frame. PC Personal Computer. RAM Random Access Memory. RISC Reduced Instruction Set Computer. SPI - Serial Peripheral Interface. TQFP Thin Quad Flat Pack. Página 10

11 Resumo Este trabalho consiste na construção de um tabuleiro, de 64 casas com apenas 12 peças brancas, para prática do jogo de damas contra um computador, que não possui peças e indica seus movimentos através do acionamento de leds. Através do algoritmo de Minimax foram implementados níveis de dificuldade para o computador, que realiza todo o processamento no próprio tabuleiro, através do microcontrolador Atmega64 da Atmel. Página 11

12 Abstract The following research based project consists of constructing an electronic board with 64 spaces accompanied by 12 white game pieces. The objective of the project is to build a game environment where a user plays the game of checkers against the machine. The computer does not play with real game pieces; instead, the moves on the computer side are identified through leds that are activated and deactivated. The computer can play the game in different levels of difficulty that were implemented through the Minimax algorithm. All the processing takes place inside the board having the Atmel s Atmega64 as the microcontroller. Página 12

13 1. Introdução 1.1. Introdução ao tema do projeto?? Este projeto baseia-se no projeto de final de curso desenvolvido em Fonseca (2005). A idéia é incrementar seu projeto de forma que, tanto o hardware quanto o software, possam ser melhorados a fim de tornar o jogo mais operacional, tanto em termos de velocidade, quanto em termos de manipulação do tabuleiro e das peças pela criança. Dessa forma, o tema do projeto é a construção (hardware e software) de um sistema embarcado, baseado no sistema anteriormente desenvolvido, que possibilite a prática do jogo de damas Motivação do desenvolvimento O projeto desenvolvido em Fonseca (2005) apresentou algumas dificuldades no desenvolvimento do software, já que com o limite de tamanho para a geração do código hex, só foi possível programar o algoritmo do MINIMAX de forma limitada. Como a memória RAM do microcontrolador era inferior ao necessário, o jogo possuía apenas um nível de dificuldade, ou seja, o algoritmo só gerava um nível da árvore, fazendo com que o computador só enxergasse uma jogada a frente do tabuleiro atual, a qual nem sempre era a melhor jogada a ser feita. Outro problema enfrentado foram com os sensores utilizados (reed switches) para identificar as peças nas casas, eles apresentavam instabilidade, já que nem sempre acusavam as mesmas. O sistema é voltado para crianças, e apresenta os seguintes incrementos em relação ao sistema anterior:?? O processador utilizado é o Atmega64, já que o utilizado no projeto desenvolvido em 2005, P89C51RD2 da Philips, tinha uma memória RAM Página 13

14 limitada para a execução do algoritmo MINIMAX, impedindo a montagem da árvore com mais de um nível, fazendo assim, com que a jogada do computador nem sempre fosse a melhor a ser executada naquele momento.?? Implementação de 2 níveis de dificuldade no software, sendo que em cada nível implementado o computador deverá enxergar mais um nível de jogada, dificultando o jogo para a criança.?? Implementação de validações das jogadas realizadas, por exemplo, se a criança colocar uma peça em uma casa não permitida, o software deverá avisá-la.?? Alteração do sistema de jogadas do computador, de forma que não sejam necessárias peças, ou seja, de forma que a criança não necessite realizar a movimentação da peça na jogada do computador.?? Alterações na construção do tabuleiro de forma que fique mais adaptado à criança Metas a serem alcançadas O projeto consiste da elaboração de um tabuleiro para a prática do jogo de damas com um sistema embarcado que, com ajuda de sensores e algoritmos inteligentes, têm as seguintes características:?? Validação das jogadas realizadas, através de algoritmos que verificam as regras do jogo.?? Apresentação de no mínimo dois níveis de dificuldade, e para que isso seja possível, o algoritmo foi implementado de forma que a árvore tivesse dois níveis ou mais, ou seja, o computador pode enxergar duas ou mais jogadas à frente do tabuleiro atual.?? As peças do computador são indicadas através de luzes, ou seja, conforme o computador realiza sua jogada, a casa de onde a peça sai apaga e a casa de destino acende, dessa forma todas as casas válidas do tabuleiro poderão acender.?? As damas do computador são representadas com o acionamento de mais uma luz, deste modo, uma dama sempre será indicada com duas luzes acesas. Página 14

15 O tabuleiro tem um encaixe para as peças do jogador, de forma que as mesmas fiquem bem colocadas. Cada encaixe tem, em forma de semicírculo, dois contatos que conforme uma peça, com um metal condutor, seja colocada no encaixe, feche o contato de um lado para o outro, informando ao processador que uma peça foi movida para o local, o mesmo acontecerá quando a peça for removida, mas ao invés de fechar contato, acontece o inverso, ou seja, a conexão entre os condutores é desfeita, impedindo a passagem de informação naquela casa. Alem disso, espera-se através desse sistema, prover com a prática do jogo um modo de auxiliar crianças no desenvolvimento das inteligências múltiplas, mais especificamente a espacial e a lógico-matemática. Além de ressaltar habilidades como a percepção, raciocínio, concentração e desenvolvimento de estratégias. 2. Estudo Teórico 2.1. Teoria dos jogos A teoria de jogos (matemática), um ramo da economia, visualiza qualquer ambiente multiagente como um jogo, desde que o impacto de cada agente sobre os outros seja significativo, não importando se os agentes são cooperativos ou competitivos. Em Inteligência Artificial (IA), os jogos normalmente são de um tipo bastante especializado que os teóricos de jogos dominam jogos determinísticos de revezamento de dois jogadores de soma zero com informações perfeitas. Em nossa terminologia, isso significa ambientes determinísticos completamente observáveis em que existem dois agentes cujas ações devem se alternar e em que os valores de utilidade no fim do jogo são sempre iguais e opostos (ou simétricos). Por exemplo, se um jogador ganha um jogo de xadrez (+1), o outro jogador necessariamente perde (-1). É essa oposição entre as funções de utilidade dos agentes que gera a situação de competição. Página 15

16 Os jogos ocuparam as faculdades intelectuais dos seres humanos chegando algumas vezes a um grau alarmante desde que surgiu a civilização. Para pesquisadores de IA, a natureza abstrata de jogos os torna um assunto atraente para estudo. É fácil representar o estado de um jogo e, em geral, os agentes se restringem a um pequeno número de ações cujos resultados são definidos por regras precisas, Jogos físicos, como críquete e hóquei sobre gelo, têm descrições muito mais complicadas, uma faixa muito maior de ações possíveis e regras bastante imprecisas definindo a legalidade das ações. Com exceção do futebol de robôs, esses jogos físicos não atraíram muito interesse na comunidade de IA. A participação de jogos foi uma das primeiras tarefas empreendidas em IA. Por volta de 1950, quase ao mesmo tempo em que os computadores se tornaram programáveis, o xadrez foi estudado por Konrad Zuse (o criador da teoria da informação), por Nobert Wiener (o criador da moderna teoria de controle) e por Alan Turing. Desde então, houve um progresso constante no padrão dos jogos, até o ponto em que as máquinas ultrapassaram os seres humanos nos jogos de damas e Othello, derrotaram campeões humanos (embora não todas as vezes) em xadrez e gamão, e são competitivos em muito outros jogos. Os jogos, diferentemente de outros problemas de IA, são interessantes porque são muito difíceis de resolver. Por exemplo, o xadrez tem um fator médio de ramificações de cerca de 35, e as partidas com freqüência chegam até a 50 movimentos por cada jogador; assim a árvore de busca tem aproximadamente ou nós (embora o grafo de busca tenha apenas cerca de nós distintos). Os jogos, como o mundo real, exigem portanto habilidade de tomar alguma decisão, até mesmo quando o cálculo da decisão ótima é inviável. Os jogos também penalizam a ineficiência de forma severa. Enquanto uma implementação de busca A * com metade da eficiência custará simplesmente o dobro do valor para funcionar até a conclusão, um programa de xadrez com metade da eficiência no uso de seu tempo disponível provavelmente será derrubado sem piedade, mantendo-se outros aspectos inalterados. Por essa Página 16

17 razão, a busca de jogos elaborou várias idéias interessantes sobre como fazer o melhor uso possível do tempo (Russel, 2004) O Jogo de Damas Conforme Jogo de Damas (2006), a origem do jogo de damas é desconhecida. Pinturas e tabuleiros encontrados em túmulos do antigo Egito, além de outros achados arqueológicos em diversos lugares do mundo, nos dão conta da existência de jogos bem semelhantes ao atual Jogo de Damas. Não existem, no entanto, indícios seguros que nos possam elucidar onde e quando ele surgiu. No século XVI foram editados na Espanha os primeiros livros de que se tem notícia, contendo elementos teóricos já bastante desenvolvidos. Embora não exista nenhum exemplar, conhecido apenas por citação de outros autores, o primeiro livro editado deve ter sido "El ingénio ó juego de marro, de punto ó damas", de Anton Torquemada, 1547, Espanha. Hoje, estimam-se em centenas de milhares os títulos publicados em todo o mundo. O primeiro campeão mundial, homologado pela Federação Mundial de Jogo de Damas, foi o austríaco Isidore Weiss, em A Federação Mundial foi fundada em 1948, em Paris, França. O jogo de damas popularizou-se no mundo em dois tabuleiros: 64 casas, que se joga com 12 pedras de cada lado e 100 casas, que se joga com 20 pedras de cada lado. Tem-se como certo, considerando sua já grande popularidade na Europa antes da época dos descobrimentos, que o jogo de damas tenha sido introduzido no Brasil pelos primeiros colonizadores. O jogo de damas, como esporte, teve seu início no Brasil nos idos de 1935 a 1940, pelas mãos de Geraldino Izidoro. Grandes partes das provas realizadas naquela época estão registradas no livro "Ciência e Técnica do Jogo de Damas", de autoria de G. Izidoro e J. Cardoso. Maiores detalhes a respeito deste surto damístico podem ser encontrados naquela publicação. O primeiro livro editado Página 17

18 no Brasil foi 40 Golpes Clássicos", de autor desconhecido, publicado no Rio de Janeiro, em A partir de 1940, a prática do jogo de damas de uma forma organizada, entrou em recesso. Não há registros de movimento damístico até 1954, quando, com o advento do mestre russo W. Bakumenko, um novo surto começou a surgir, no tabuleiro de 64 casas. Radicado em São Paulo, W. Bakumenko, egresso de uma escola damística evoluída, campeão da URSS em 1927, deu início à criação de um núcleo damístico. Por sua vez, G. Izidoro, que sempre manteve seu interesse pelo jogo de damas, ao saber da presença de Bakumenko, o procurou. Isto gerou um encontro famoso entre as equipes de São Paulo e Rio de Janeiro, que praticamente marcou o reinício das atividades damísticas no país. Esta prova foi realizada no Rio de Janeiro, no dia 02 de maio de Com Bakumenko em São Paulo e G. Izidoro no Rio, o jogo de damas tomou um impulso fabuloso. Bakumenko, alicerçado em sólidos conhecimentos técnicos, incentivou a prática do jogo, principalmente pela publicação semanal de uma coluna damística no jornal "A Gazeta Esportiva". Manteve também outras colunas e incentivou a criação de outras (L. Engels, famoso jogador de xadrez, incentivado pelo mestre, manteve uma seção no jornal "O Estado de São Paulo"). Criou grupos damístico e foi a centelha da criação de muitos outros. Editou dois livros: "Jóias do Jogo de Damas" e "Curso das Damas Brasileiras". Bakumenko faleceu em 13 de maio de Por sua vez, G. Izidoro, realizando torneios, criando grupos damísticos e incentivando com simultâneas e prêmios a criação de outros, escrevendo diversas colunas em jornais e revistas, fez crescer o interesse pelo esporte no Rio e em todo o país. Todo este movimento resultou na criação das Federações Estaduais: São Paulo, Rio de Janeiro, Rio Grande do Sul, Espírito Santo e Minas Gerais criaram suas Federações. Em 5 de abril de 1963, na sede do Clube Estrela de Oliveira, à Rua do Gasômetro, na cidade de São Paulo, foi fundada a Federação Paulista de Jogo de Damas, a primeira federação no Brasil. Página 18

19 A década de 60 foi uma época de grande desenvolvimento para o jogo de damas. Em Belo Horizonte, em 1967, foi organizado o maior campeonato de jogo de damas até hoje do Brasil, reunindo 1009 participantes. O grande obstáculo surgiu para o jogo de damas brasileiro em 1967, quando João Havelange, então presidente da Confederação Brasileira de Desportos, que na época englobava todos os esportes amadores, qualificou o jogo de damas como mera recreação, desfiliando-o da CBD. Foi um atraso irreparável para a modalidade, pois somente em 19 de novembro de 1988, 21 anos depois, é que o jogo de damas voltou à condição de esporte no Brasil. Foram 21 anos à margem do processo esportivo nacional. Porém, muito se evoluiu nesses 21 anos. Alguns meses após a desfiliação da CBD, os damistas se reuniram em Niterói e fundaram a Confederação Brasileira de Jogo de Damas, sendo seu primeiro presidente o Dr. Murilo Portugal. E em 1967, aconteceu o 1º Campeonato Brasileiro de Jogo de Damas, de 64 casas, em São Pedro D'Aldeia, ficando na primeira colocação o paulista Humberto Olivarbo e o espírito-santense José Carlos Rabelo. Houve uma partida para decidir o título e a vitória coube a José Carlos Rabelo, que se tornou o primeiro campeão brasileiro individual (Jogo de Damas, 2006). Maiores informações podem ser encontradas em Confederação Brasileira (2006), Wikipedia (2006) e Jogos Antigos (2006) Regras do jogo de damas Conforme Jogo de Damas (2006), o jogo é praticado em um tabuleiro de 64 casas, claras e escuras, conforme a Figura 2.1. A grande diagonal, escura, deve ficar sempre à esquerda de cada jogador. O objetivo do jogo é imobilizar ou capturar todas as peças do adversário. Página 19

20 Figura Tabuleiro 1. FONTE: Jogo de Damas (2006). Esse jogo é praticado entre dois parceiros, com 12 pedras brancas de um lado e com 12 pedras pretas de outro lado, como mostra a Figura 2.2. O lance inicial cabe sempre a quem estiver com as peças brancas. Também se pode jogar damas em um tabuleiro de 100 casas, com 20 pedras para cada lado (Damas Internacional). Figura Tabuleiro 2. FONTE: Jogo de Damas (2006). A pedra anda só para frente, uma casa de cada vez. Quando a pedra atinge a oitava linha do tabuleiro ela é promovida à dama, como mostra a Figura 2.3. Página 20

21 Figura Tabuleiro 3. FONTE: Jogo de Damas (2006). A dama é uma peça de movimentos mais amplos. Ela anda para frente e para trás, quantas casas quiser. A dama não pode saltar uma peça da mesma cor, como mostra a Figura 2.4. Figura Tabuleiro 4. FONTE: Jogo de Damas (2006). A captura é obrigatória. Duas ou mais peças juntas, na mesma diagonal, não podem ser capturadas, como mostra a Figura 2.5. Página 21

22 Figura Tabuleiro 5. FONTE: Jogo de Damas (2006). A pedra captura a dama e a dama captura a pedra. Pedra e dama têm o mesmo valor para capturarem ou serem capturadas, como mostra a Figura 2.6. Figura Tabuleiro 6. FONTE: Jogo de Damas (2006). A pedra e a dama podem capturar tanto para frente como para trás, uma ou mais peças, como mostra a Figura 2.7. Figura Tabuleiro 7. FONTE: Jogo de Damas (2006). Página 22

23 Se no mesmo lance se apresentar mais de um modo de capturar, é obrigatório executar o lance que capture o maior número de peças (Lei da Maioria), como mostra a Figura 2.8. Figura Tabuleiro 8. FONTE: Jogo de Damas (2006). A pedra que durante o lance de captura de várias peças, apenas passe por qualquer casa de coroação, sem aí parar, não será promovida à dama, como mostra a Figura 2.9. Figura Tabuleiro 9. FONTE: Jogo de Damas (2006). Na execução do lance de captura, é permitido passar mais de uma vez pela mesma casa vazia, não é permitido capturar duas vezes a mesma peça, como mostra a Figura Página 23

24 Figura Tabuleiro 10. FONTE: Jogo de Damas (2006). Na execução do lance de captura, não é permitido capturar a mesma peça mais de uma vez e as peças capturadas não podem ser retiradas do tabuleiro antes de completar o lance de captura, como mostra a Figura Figura Tabuleiro 11. FONTE: Jogo de Damas (2006). O empate é declarado nos seguintes casos:?? Após 20 lances sucessivos de damas, sem captura ou deslocamento de pedra, a partida é declarada empatada; Em casos especiais, o empate é declarado após 5 lances. Isso ocorre quando as peças que sobram no tabuleiro são as seguintes:?? duas damas contra duas damas;?? duas damas contra uma; Página 24

25 ?? duas damas contra uma dama e uma pedra;?? uma dama contra uma dama e;?? uma dama contra uma dama e uma pedra Decisões ótimas em jogos Considera-se um jogo com dois jogadores, os quais chamarão MAX e MIN. MAX faz o primeiro movimento, e depois eles se revezam até o jogo terminar. No fim do jogo, os pontos são dados ao jogador vencedor e são impostas penalidades ao perdedor. Um jogo pode ser definido formalmente como uma espécie de problema de busca com os seguintes componentes:?? O estado inicial, que inclui a posição do tabuleiro e identifica o jogador que fará o movimento.?? Uma função sucessor, que retorna uma lista de pares (movimento, estado), cada qual indicando um movimento válido e o estado resultante.?? Um teste de término, que determina quando o jogo termina. Os estados em que o jogo é encerrado são chamados estados terminais. Uma função utilidade (também chamada função objetivo ou função compensação), que dá um valor numérico aos estados terminais. Em damas, o resultado é uma vitória, uma derrota ou um empate, com valores +1, -1 ou 0. Alguns jogos têm uma variedade mais ampla de resultados possíveis; a compensação no gamão varia de 192 até -192 (Russel, 2006) Árvore do jogo O estado inicial e os movimentos válidos para cada lado definem a árvore do jogo correspondente ao jogo. A Figura 2.12 mostra parte da árvore do jogo para o jogo-da-velha. A partir do estado inicial, MAX tem nove movimentos possíveis. O jogo se alterna entre a colocação de um X por MAX e a colocação de um O por MIN até alcançarmos nas de folhas correspondentes a estados terminais, tais que um jogador tem três símbolos em uma linha ou todos os quadrados são preenchidos. O número em cada nó de folha indica o valor de utilidade do estado terminal, do ponto de vista de MAX; valores altos são considerados bons para Página 25

26 MAX e ruins para MIN (o que explica os nomes dados aos jogadores). Cabe a MAX usar a árvore de busca (em particular a utilidade de estados terminais) para determinar o melhor movimento (Russel, 2004). Figura 2.12 Árvore de busca (parcial) para o jogo da velha. FONTE: Russel (2006), pág Estratégias ótimas Em um problema de busca normal, a solução ótima seria uma seqüência de movimentos que levasse a um estado objetivo um estado terminal que representa uma vitória. Por outro lado, em um jogo, MIN tem alguma relação com esse estado. Portanto, MAX deve encontrar uma estratégia de contingência que especifique o movimento de MAX no estado inicial, e depois os movimentos de MAX nos estados resultantes de cada resposta possível de MIN a esses movimentos e assim por diante. Em termos gerais, uma estratégia ótima leva a resultados no mínimo tão bons quanto qualquer outra estratégia quando se está enfrentando um oponente infalível. Começaremos mostrando como encontrar essa estratégia ótima, embora deva ser inviável para MAX calculá-la no caso de jogos mais complexos que o jogo-da-velha. Página 26

27 Até mesmo um jogo simples como jogo-da-velha é muito complexo para se traçar a árvore de jogo inteira, e assim nos limitaremos ao jogo trivial da Figura Os movimentos possíveis para MAX no nó raiz são identificados por a 1, a 2 e a 3. As respostas possíveis para a1 correspondentes a MIN são b1, b2 e b3 e assim sucessivamente. Esse jogo específico termina depois de um movimento realizado por MAX e por MIN. (No linguajar dos jogos, dizemos que essa árvore tem profundidade de um único movimento, que consiste em dois meiosmovimentos, cada um dos quais é chamado jogada.) As utilidade dos estados terminais nesse jogo variam de 2 até 14. Dada uma árvore de jogo, a estratégia ótima pode ser determinada examinando-se o valor minimax de cada nó, que representamos como VALOR- MINIMAX(n). O valor minimax de um nó é a utilidade (para MAX) de se encontrar no estado correspondente, supondo-se que ambos os jogadores têm um desempenho ótimo desde esse estado até o fim do jogo. É óbvio que o valor minimax de um estado terminal é simplesmente sua utilidade. Além disso, dada uma escolha, MAX preferirá se mover para um estado de valor máximo, enquanto MIN preferirá em estado de valor mínimo. Assim, tem-se: VALOR-MINIMAX(n) = UTILIDADE(n) Max s?sucessores(n) VALOR-MINIMAX(s) Min s?sucessores(n) VALOR-MINIMAX(s) Se n é um estado terminal Se n é um nó de MAX Se n é um nó de MIN Aplicam-se essas definições à árvore de jogo da Figura Os nós terminais no nível inferior já estão identificados com seus valores de utilidade. O primeiro nó de MIN, identificado por B, tem três sucessores com valores 3, 12 e 8; portanto, seu valor minimax é 3. De modo semelhante, os outros nós de MIN têm valor minimax 2. O nó raiz é um nó de MAX. Seus sucessores têm valores minimax 3, 2 e 2; logo, ele tem uma valor minimax igual a 3. Também podemos identificar a decisão minimax na raiz: a ação a1 é a escolha ótima para MAX, porque leva ao sucessor com o mais alto valor minimax. Página 27

28 Figura 2.13 Árvore do jogo de duas jogadas. FONTE: Russel (2006), pág Essa definição de jogo ótimo para MAX supõe que MIN também joga de forma ótima, ela maximiza o resultado para MAX no pior caso. E se MIN não jogar de forma ótima? Nesse caso, é fácil mostra que MAX terá um desempenho ainda melhor que a estratégia de minimax; porém, essas estratégias necessariamente têm um desempenho pior contra oponentes ótimos (Russel, 2004) O algoritmo minimax O algoritmo minimax calcula a decisão minimax a partir do estado corrente. Ela utiliza uma computação recursiva simples dos valores minimax de cada estado sucessor, implementando diretamente as equações da definição. A recursão percorre todo o caminho descendente até as folhas da árvore, e depois os valores minimax são propagados de volta pela árvore, à medida que a recursão retorna. Por exemplo, na Figura 2.13, primeiro o algoritmo efetua uma recursão descendo a árvore até os três nós de folhas inferiores e emprega a função UTILIDADE sobre eles para descobrir que seus valores são 3, 12 e 8, respectivamente. Em seguida ele toma o mínimo desses valores, 3, e o devolve como valor propagado de volta para o nó B. Um processo semelhante fornece os valores propagados de volta de 2 para C e 2 para D. Por fim, tomamos o valor máximo entre 3, 2 e 2 para obter o valor propagado de volta igual a 3 para o nó raiz. O algoritmo minimax executa uma exploração completa em profundidade da árvore do jogo. Se a profundidade máxima da árvore é m e existem b Página 28

29 movimentos válidos em cada ponto, a complexidade de tempo do algoritmo minimax é O(b m ). A complexidade de espaço é O(bm) para um algoritmo que gera todos os sucessores de uma vez ou O(m) para uma algoritmo que gera um sucessor de cada vez. É claro que em jogos reais, o custo de tempo é totalmente impraticável, mas esse algoritmo serve como base para a análise matemática de jogos e para algoritmos mais práticos (Russel, 2004). função DECISÃO-MINIMAX(estado) retorna uma ação entradas: estado, estado corrente no jogo v? VALOR-MAX(estado) retornar a ação em SUCESSORES(estado) com valor v função VALOR-MAX(estado) retorna um valor de utilidade se TESTE-TERMINAL(estado) então retornar UTILIDADE(estado) v? -8 para a, s em SUCESSORES(estado) faça v? MAX(v, VALOR-MIN(s)) retornar v função VALOR-MIN(estado) retorna um valor de utilidade se TESTE-TERMINAL(estado) então retornar UTILIDADE(estado) v? 8 para a, s em SUCESSORES(estado) faça v? MIN(v, VALOR-MAX(s)) retornar v Conforme os algoritmos acima, pode-se calcular a decisão minimax. Ele retorna a ação correspondente ao melhor movimento possível, isto é, o movimento que leva ao resultado com a melhor utilidade, sob a suposição de que o oponente joga para minimizar a utilidade. As funções VALOR-MAX e Página 29

30 VALOR-MIN passam por toda a árvore de jogo, até chegar às folhas, a fim de determinar o valor propagação de volta de um estado (RICH, 1994) Poda alfa-beta O problema da busca minimax é que o número de estados de jogo que ela tem de examinar é exponencial em relação ao número de movimentos. Infelizmente, não podemos eliminar o expoente, mas podemos efetivamente reduzi-lo pela metade. O artifício é a possibilidade de calcular a decisão minimax correta sem examinar todos os nós na árvore de jogo. Ou seja, podemos tomar emprestada a idéia de poda, a fim de poder de deixar de considerar grandes partes da árvore. A técnica específica que examinaremos é chamada poda alfabeta. Quando é aplicada a uma árvore minimax padrão, ela retorna o mesmo movimento que minimax retornaria, mas poda as ramificações que não terão influência possível sobre a decisão final. Considerando-se novamente a árvore de jogo de duas jogadas da Figura Vamos acompanhar mais uma vez o cálculo da decisão ótima, agora prestando bastante atenção ao que conhecemos em cada ponto do processo. Observando-se a Figura 2.14 (a), percebemos que a primeira folha sob B tem valor 3, consequentemente, B, que é um nó de MIN, tem valor máximo 3. (b) a segunda folha sob B tem valor 12; MIN evitaria esse movimento, de forma que o valor de B ainda é no máximo 3. (c) A terceira folha sob B tem valor 8, e como B não tem nenhum sucessor menor que 3, e MIN sempre procura o menor valor, o valor de B é exatamente 3. Pode-se deduzir que o valor raiz é pelo menos 3, já que MAX tem uma escolha de valor 3 na raiz. (d) A primeira folha abaixo de C tem o valor 2, assim, C, que é um nó de MIN, tem no máximo 2. Porém, sabemos que B vale 3, portanto, MAX, que sempre escolhe o maior valor, nunca escolheria C. Desse modo, não há razão para se examinar os outros sucessores de C. A seguir é mostrado um exemplo de poda alfa-beta. (e) A primeira folha abaixo de D tem o valor 14, e então D vale no máximo 14. Esse valor ainda é Página 30

31 mais alto que a melhor alternativa de MAX (isto é, 3), e portanto precisamos continuar a explorar sucessores de D. Note também que agora temos limites para todos os sucessores da RAIZ, e conseqüentemente o valor da RAIZ também é no máximo 14. (f) O segundo sucessor de D vale 5, e assim novamente precisamos continuar a exploração. O terceiro sucessor vale 2, agora, D vale exatamente 2. A decisão de MAX na raiz é efetuar o movimento para B, o que nos dá o valor 3. Figura 2.14 Árvore do jogo de duas jogadas utilizando poda alfa-beta. FONTE: Russel (2004), pág Isso também pode ser visto como uma simplificação da fórmula de VALOR- MINIMAX. Sejam x e y valores dos dois sucessores não-avaliados do nó C da figura acima e seja z o mínimo entre x e y. O valor do nó raiz é dado por: VALOR-MINIMAX(raiz) = max(min(3, 12, 8), min(2, x, y), min(14, 5, 2)) = max(3, min(2, x, y), 2) = max(3, z, 2) onde z = 2 = 3 Página 31

32 Em outras palavras, o valor da raiz é conseqüentemente a decisão minimax são independentes dos valores das folhas podadas x e y. A poda alfa-beta pode ser aplicada a árvores de qualquer profundidade, e freqüentemente, é possível podar subárvores inteiras em lugar de podar apenas folhas. O princípio geral é este: considere um nó n em algum lugar da árvore (veja a Figura 2.15), tal que o Jogador tenha a escolha de movimento até esse nó. Se o Jogador tiver uma escolha melhor m no nó pai de n ou em qualquer ponto de escolha de movimento até esse nó. Se o Jogador tiver uma escolha melhor m no nó pai de n ou em qualquer ponto de escolha adicional acima dele, então n nunca será alcançado em um jogo real. Assim, uma vez que descobrimos o suficiente sobre n (examinando alguns de seus descendentes) para chegar a essa conclusão, poderemos podá-la. A busca minimax é do tipo em profundidade; então, em qualquer instante considera-se os nós ao longo de um único caminho na árvore. A poda alfa-beta obtém seu nome a partir dos dois parâmetros a seguir, que descrevem limites sobre os valores propagados de volta que aparecem em qualquer lugar ao longo do caminho:?? a? o valor da melhor escolha (isto é, a de valor mais alto) que encontramos até o momento em qualquer ponto de escolha ao longo do caminho para MAX.?? ß? o valor da melhor escolha (isto é, a de valor mais baixo) que encontramos até agora em qualquer ponto de escolha ao longo do caminho para MIN. Página 32

33 Figura 2.15 Poda alfa-beta. FONTE: adaptada de Russel (2004), pág A busca alfa-beta atualiza os valores de a e ß à medida que prossegue e poda as ramificações restantes em um nó (isto é, encerra a chamada recursiva) tão logo se sabe que o valor do nó corrente é pior que o valor corrente de a ou ß para MAX ou MIN, respectivamente. A efetividade da poda alfa-beta é altamente dependente da ordem em que os sucessores são examinados. Por exemplo, na Figura 2.14 (e) e (f), não poderíamos podar quaisquer sucessores de D, porque os piores sucessores (do ponto de vista de MIN) foram gerados primeiro. Se o terceiro sucessor tivesse sido gerado primeiro, seríamos capazes de podar os outros dois. Isso sugere que poderia valer a pena tentar examinar primeiro os sucessores que têm probabilidade de serem melhores. Supõe-se que pode ser feito, então o resultado será que alfa-beta precisará examinar apenas O (b 3d/4 ) para o valor moderado de b. Acrescentar esquemas dinâmicos de ordenação de movimentos, como tentar primeiro os movimentos considerados os melhores da última vez, nos levará até bem perto do limite teórico (Russel, 2004). Página 33

34 Decisões imperfeitas em tempo real Conforme Russel (2004), o algoritmo minimax gera o espaço de busca do jogo inteiro, enquanto o algoritmo alfa-beta nos permite podar grandes partes desse espaço. Porém, alfa-beta ainda tem que fazer a busca em toda a distância até os estados terminais, pelo menos para uma parte do espaço de busca. Em geral, essa profundidade não é prática, porque os movimentos devem ser realizados em um período de tempo razoável normalmente por alguns minutos, no máximo. O artigo de 1950 de Shannon, Programing a computer for playing chess, propunha em vez disso que os programas cortassem a busca mais cedo e aplicassem uma função de avaliação heurística aos estados de busca, transformando efetivamente nós não terminais em folhas terminais. Em outras palavras, a sugestão é alterar minimax ou alfa-beta de duas maneiras: a função de utilidade é substituída por uma função de avaliação de heurística AVAL, que fornece uma estimativa da utilidade da posição, e o teste de término é substituído por um teste de corte que decide quando aplicar AVAL Funções de avaliação Uma função de avaliação retorna, segundo RICH (1994), uma estimativa de utilidade esperada do jogo, a partir de uma dada posição de mesma forma que as funções de heurística retornam uma estimativa de distância até a meta. A idéia de um avaliador não era nova quando Shannon a propôs. Durante séculos, os jogadores de xadrez (e os aficionados por outros jogos) desenvolveram meios de julgar o valor de uma posição, porque os seres humanos são ainda mais limitados que os programas de computador no volume de busca que podem realizar. Deve ficar claro que o desempenho de um programa de jogos depende da qualidade de sua função de avaliação. Uma função de avaliação inexata guiará um agente em direção e posições que acabarão por serem perdidas. A função de avaliação pode ser projetada da seguinte forma: primeiro, a função de avaliação deve ordenar os estados terminais do mesmo modo que a verdadeira função de utilidade; caso contrário, um agente que a utilizasse poderia selecionar movimentos não ótimos, mesmo que pudesse antecipar todos os movimentos até o fim do jogo. Em segundo lugar, a computação não deve Página 34

35 demorar tempo demais (A função de avaliação poderia chamar DECISÃO- MINIMAX como uma sub-rotina e calcular o valor exato da posição, mas isso iria anular a principal finalidade: poupar tempo.) Em terceiro lugar, no caso de estados não-terminais, a função de avaliação deve estar fortemente relacionada com as chances reais de vitória. Se a busca tiver de ser cortada em estados não-terminais, o algoritmo será necessariamente incerto sobre os resultados finais desses estados. Esse tipo de incerteza é induzido por limitações computacionais, e não informativas. Dado o volume limitado de computação que a função de avaliação pode realizar para um determinado estado, o melhor que ela pode fazer é arriscar um palpite sobre o resultado final. Para tornar essa idéia mais concreta, deve-se analisar que a maioria das funções de avaliação atua calculando diversas características do estado por exemplo, o número de peças tomadas por cada lado de um jogo de damas. Consideradas em conjunto, as características definem diversas categorias ou classes de equivalência de estados: os estados de cada categoria têm os mesmos valores para todas as características. Qualquer categoria específica, em termos gerais, conterá alguns estados que levam a vitórias, alguns que levam a empates e alguns que levam a derrotas. A função de avaliação não tem como saber os estados de cada grupo, mas pode retornar um único valor capaz de refletir a proporção de estados que conduzem a cada resultado. Por exemplo, vamos supor que nossa experiência sugira que 72% dos estados encontrados na categoria levam a vitória (com utilidade +1); 20% levam a uma derrota (-1) e 8% a um empate (0). Então, uma avaliação razoável dos estados na categoria é a média ponderada ou valor esperado: (0,72 x +1) + (0,20 x -1) + (0,08 x 0) = 0,52. Em princípio, o valor esperado pode ser determinado para cada categoria, o que resulta em uma função de avaliação que funciona para qualquer estado. Como ocorre com estados terminais, a função de avaliação não precisa retornar valores esperados reais, desde que a ordenação dos estados seja a mesma (Russel, 2004). Página 35

36 Segundo Figueiredo (2006), na prática, essa espécie de análise exige muitas categorias e, conseqüentemente, muita experiência para estimar todas as probabilidades de vitória. Em vez disso, a maioria das funções de avaliação calcula contribuições numéricas separadas de cada característica e depois as combina para encontrar o valor total. Por exemplo, a heurística posicional que calcula a força de cada tabuleiro conforme a disposição e a promoção das peças da seguinte maneira, é atribuído um valor material aproximado para as peças sendo, o peão vale 5, caso esteja prestes a virar dama vale 7 e a dama vale 10. São atribuídos os seguintes pesos para as casas do tabuleiro, conforme a Figura Figura 2.16 Peso das casas na heurística posicional. FONTE: Figueiredo (2006). Então calcula-se a força de cada jogador através do somatório do peso de cada peça (w) vezes o peso da respectiva casa do tabuleiro (f) e depois se calcula a força do tabuleiro subtraindo a força das peças brancas (jogador) pela força das peças pretas (computador). AVAL(s) = FORÇA-BRANCA() FORÇA-PRETA() FORCA-BRANCA =? w i f i,sendo w i as peças brancas FORCA-PRETA =? w i f i,sendo w i as peças pretas Outra análise eficaz é a heurística do triângulo defensivo, que é calculada através da fórmula (p - b)/(p + b) sendo p a pontuação das pretas e b a pontuação das brancas. Cada pontuação é calculada através de caracteres Página 36

37 defensivos (casas privilegiadas da defesa) e caracteres materiais (1 ponto para o peão e 3 pontos para a dama), ou seja, além de levar em conta a quantidade e o tipo da peça (peão ou dama) de cada jogador, a heurística do triângulo defensivo também privilegia o fato da peça estar em sua base ou pertencer ao triângulo defensivo Busca com corte A próxima etapa é modificar BUSCA-ALFA-BETA, de modo que ela chame a função heurística AVAL quando for apropriado cortar a busca. Em termos de implementação, substituímos as duas linhas das funções VALOR-MAX e VALOR-MIN que mencionam TESTE-TERMINAL pela linha a seguir: se TESTE-DE-CORTE (estado, profundidade) então retornar AVAL(estado) Também deve-se providenciar alguma anotação para que a profundidade corrente seja incrementada em cada chamada recursiva. A abordagem mais direta para controlar a quantidade de busca é definir um limite de profundidade fixo, a fim de que TESTE-DE-CORTE (estado, profundidade) retorne verdadeiro para toda profundidade maior que alguma profundidade fixa d. (Ela também deve retornar verdadeiro para todos os estados terminais, como fazia TESTE- TERMINAL.) A profundidade d é escolhida de modo que o período de tempo utilizado não exceda o período permitido pelas regras do jogo. Uma abordagem mais resistente é aplicar o aprofundamento iterativo (ou busca em profundidade por aprofundamento iterativo), ou seja, é uma estratégia geral, usada com freqüência em combinação com a busca em profundidade, que encontra o melhor limite da profundidade. Ela faz isso aumentando gradualmente o limite primeiro 0, depois 1, depois 2 e assim por diante até encontrar um objetivo. Isso ocorrerá quando o limite de profundidade alcançar p, a profundidade do nó objetivo mais raso. Página 37

38 Quando o tempo se esgota, o programa retorna ao movimento selecionado pela busca mais profunda concluída. No entanto, essas abordagens podem levar a erros, devido a natureza aproximada da função de avaliação. Considera mais uma vez a função de avaliação simples para damas, ou seja, suponha que o programa pesquise até a profundidade limite alcançando uma posição onde as peças pretas têm vantagem sobre as brancas. Isso seria reportado como o valor heurístico do estado, declarando-se assim que o estado provavelmente levará a uma vitória das peças pretas. Porém, o próximo movimento das brancas teria uma vantagem muito maior sobre as pretas. Portanto, a posição resulta na realidade em uma vitória das brancas, mas isso só pode ser visto observando-se mais uma jogada à frente. É óbvio que é necessário um teste de corte mais sofisticado. A função de avaliação deve ser aplicada apenas a posições quiescentes isto é, posições em que é improvável haver grandes mudanças de valores no futuro próximo Russel (2004) Microcontrolador Um microcontrolador é um computador programável, em um chip otimizado para controlar dispositivos eletrônicos. É uma espécie de microprocessador, com memória e interfaces de E/S (Entrada e Saída) integrados, enfatizando a autosuficiência, em constante com um microprocessador de propósito geral, o mesmo tipo usado nos PCs, que requer chips adicionais para prover as funções necessárias (Schunk, 2001) Display LCD Os módulos LCD são interfaces de saída muito útil em sistemas microprocessados. Estes módulos utilizam um controlador próprio, permitindo sua interligação com outras placas através de seus pinos, onde deve ser alimentado o módulo e interligado o barramento de dados e controle com a placa do usuário. Naturalmente que além de alimentar e conectar os pinos do módulo com a placa do usuário, deverá haver um protocolo de comunicação entre as Página 38

39 partes, que envolve o envio de bytes de instruções e bytes de dados pelo sistema do usuário. Os LCD gráficos são encontrados com resuluções de 122x32, 128x64, 240x64 e 240x128 dots pixel, e geralmente estão disponíveis com 20 pinos para conexão. Os LCD comuns (tipo caracter) são especificados em número de linhas por colunas e são encontrados nas configurações previstas na TABELA 2.1. TABELA 2.1 CARACTERÍSTICAS DOS LCD DISPONÍVEIS. Número de Colunas Numero de Linhas Quantidade de pinos / / / / / / / / / FONTE: CICHACZEWSKI (2002). Os módulos podem ser encontrados com LED backlight (com uma iluminação de fundo) para facilitar as leituras durante a noite. Neste caso, a alimentação deste led faz-se normalmente pelos pinos 15 e 16 para os módulos comuns e 19 e 20 para os módulos gráficos, sendo os pinos 15 e 19 para ligação ao anodo e os pinos 16 e 20 para o catodo. A corrente de alimentação deste led varia de 100 a 200mA, dependendo do modelo. Página 39

40 Estes módulos utilizam um controlador próprio, permitindo sua interligação com outras placas através de seus pinos, onde deve ser alimentado o módulo e interligado o barramento de dados e controle do módulo com a placa do usuário. Naturalmente que além de alimentar e conectar os pinos do módulo com a placa do usuário, deverá haver um protocolo de comunicação entre as partes, que envolve o envio de bytes de instruções e bytes de dados pelo sistema do usuário. A Figura 2.17 ilustra um display LCD (Display LCD, 2006) 2.7. Diodo emissor de luz Figura 2.17 Display LCD. FONTE: Cichaczewski (2002). O LED (Light Emitter Diode - Diodo Emissor de Luz), como o próprio nome já diz, é um diodo (junção P-N) que quando energizado emite luz visível. A luz é monocromática e é produzida pelas interações energéticas do elétron. O processo de emissão de luz pela aplicação de uma fonte elétrica de energia é chamado eletroluminescência. Em qualquer junção P-N polarizada diretamente, dentro da estrutura, próximo à junção, ocorrem recombinações de lacunas e elétrons. Essa recombinação exige que a energia possuída por esse elétron, que até então era livre, seja liberada, o que ocorre na forma de calor ou fótons de luz, como mostrado na Figura Página 40

41 Figura Diodo emissor de luz (LED). FONTE: Adaptada de Complex (2006). 3. Descrição O sistema é composto por um tabuleiro com 64 casas, 12 peças brancas e alguns componentes eletrônicos, sendo que as peças do computador são mostradas por meio de leds. Todas as casas têm contatos, que são responsáveis por identificar se há ou não uma peça na casa. Todo o processamento é realizado pelo microcontrolador. O hardware é composto por três módulos, como mostra a Figura 3.1: Módulos do hardware Jogada do jogador Estado do jogo Módulo de Entrada (Jogador) Módulo de Processamento Módulo de Saída (Computador) Estado do jogo Jogada do computador Figura 3.1 Módulos do hardware. Conforme a Figura 3.1, segue uma descrição das características da cada módulo do hardware: Página 41

42 ?? Módulo de Entrada: onde o jogador movimenta as peças. A movimentação de uma peça faz com que o contato da casa em que a peça foi removida passe para aberto, e o da casa em que a peça foi movida passe para fechado, permitindo assim saber em o destino e a origem da peça.?? Módulo de Processamento: com os dados do módulo de entrada, o microcontrolador realiza o processamento, e através do algoritmo de MINIMAX e do nível escolhido pelo jogador verifica a melhor jogada a ser efetuada pelo computador, assim gera os dados de saída para o próximo módulo.?? Módulo de Saída: representa a jogada do computador. Os leds da casa a qual o computador deseja mover a peça se apagam e os da casa onde a peça será movida se iluminam Arquitetura AVR A família AVR de microcontroladores da ATMEL é integrada com tecnologia CMOS High-Speed e possuem arquitetura RISC de 8 bits com conceito Harvard, tendo portanto barramentos de programa e memória separados, oferecendo alto desempenho, aliado a um baixo consumo de potência. Possuem 130 instruções poderosas, sendo a maioria delas executadas em um único período de clock, podendo chegar a 16MIPS com o clock máximo de 16 MHz, sendo que os chips da linha ATmega podem ser encontrados com clock de até 20Mhz. Possuem ainda 32 registros de uso geral, todos conectados diretamente à Unidade Aritmética e Lógica, permitindo que dois registros quaisquer sejam acessados em um único ciclo de clock, por uma única instrução. Estas características especiais proporcionam códigos mais eficientes tendo como resultado velocidades de processamento até dez vezes mais rápido que os microcontroladores convencionais de arquitetura CISC. Página 42

43 Uma grande vantagem de se usar a arquitetura AVR é que além dela ser projetada buscando eficiência com a linguagem de programação C, possui também uma grande quantidade de softwares de desenvolvimento no mercado e muitos deles gratuitos (Lanari, 2006). 4. Especificação do hardware 4.1. Funções do hardware O tabuleiro contém em cada uma de suas casas pretas um encaixe exato para uma peça, no qual se encontra dois contatos, um de cada lado extremo da casa, esses contatos são responsáveis pela identificação se há ou não uma peça na casa como mostra a Figura 4.1. Sistema de Encaixe MATERIAL CONDUTOR CONTATOS Figura 4.1 Sistema de encaixe das peças no tabuleiro. Cada peça do jogo contém na sua base um material condutor, sendo assim, conforme a peça é colocada no encaixe, esses contatos são fechados, mandando instantaneamente um sinal para o microcontrolador, o qual interpreta a ação (peça removida ou colocada) e realiza o devido processamento. Figura 4.2 Foto do contato de uma das casas. Página 43

IA: Busca Competitiva. Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br

IA: Busca Competitiva. Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br IA: Busca Competitiva Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br Sumário Introdução Árvores de Jogos Minimax Antecipação Limitada Poda Alfa-beta Introdução Jogos têm sido continuamente uma importante

Leia mais

Jogos - aula 2. Xadrez chinês. Exemplo de função de avaliação:

Jogos - aula 2. Xadrez chinês. Exemplo de função de avaliação: Exemplo de jogo: Xadrez chinês Jogos - aula 2 Função de avaliação? Prof. Luis Otavio Alvares 1 2 Xadrez chinês Ligue 4 Exemplo de função de avaliação: o valor das peças é de acordo com a sua posição: 12

Leia mais

TEORIA DOS JOGOS E APRENDIZADO

TEORIA DOS JOGOS E APRENDIZADO TEORIA DOS JOGOS E APRENDIZADO DE MÁQUINA Estudos Iniciais André Filipe de Moraes Batista Disciplina de Aprendizagem de Máquina UFABC 2010 TEORIA DOS JOGOS Ramo da matemática aplicada estuda situações

Leia mais

Estrutura interna de um microcontrolador

Estrutura interna de um microcontrolador Estrutura interna de um microcontrolador Um microcontrolador é composto por um conjunto de periféricos interligados a uma unidade de processamento e todo este conjunto confere a este componente uma versatilidade

Leia mais

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 03 Conceitos de Hardware e Software parte 02. Cursos de Computação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 03 Conceitos de Hardware e Software parte 02. Cursos de Computação Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 03 Conceitos de Hardware e Software parte 02 Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed.

Leia mais

Jogos vs. Problemas de Procura

Jogos vs. Problemas de Procura Jogos Capítulo 6 Jogos vs. Problemas de Procura Adversário imprevisível" necessidade de tomar em consideração todas os movimentos que podem ser tomados pelo adversário Pontuação com sinais opostos O que

Leia mais

1. CAPÍTULO COMPUTADORES

1. CAPÍTULO COMPUTADORES 1. CAPÍTULO COMPUTADORES 1.1. Computadores Denomina-se computador uma máquina capaz de executar variados tipos de tratamento automático de informações ou processamento de dados. Os primeiros eram capazes

Leia mais

Conceitos básicos do

Conceitos básicos do Conceitos básicos Conceitos básicos do Este artigo descreve os conceitos de memória eletrônica. Apresentar os conceitos básicos dos flip-flops tipo RS, JK, D e T, D Apresentar o conceito da análise de

Leia mais

ELETRÔNICA. Changed with the DEMO VERSION of CAD-KAS PDF-Editor (http://www.cadkas.com). INTRODUÇÃO

ELETRÔNICA. Changed with the DEMO VERSION of CAD-KAS PDF-Editor (http://www.cadkas.com). INTRODUÇÃO 0010100111010101001010010101 CURSO DE 0101010100111010100101011101 1010011001111010100111010010 ELETRÔNICA 1010000111101010011101010010 DIGITAL INTRODUÇÃO Os circuitos equipados com processadores, cada

Leia mais

1 - Processamento de dados

1 - Processamento de dados Conceitos básicos sobre organização de computadores 2 1 - Processamento de dados O que é processamento? O que é dado? Dado é informação? Processamento é a manipulação das informações coletadas (dados).

Leia mais

Jogos - aula 2. Prof. Luis Otavio Alvares II / UFRGS

Jogos - aula 2. Prof. Luis Otavio Alvares II / UFRGS Jogos - aula 2 Prof. Luis Otavio Alvares II / UFRGS 1 Função de avaliação: Xadrez chines 2 Xadrez chinês Exemplo de função de avaliação: o valor das peças é de acordo com a sua posição: 12 para a última

Leia mais

DECODIFICADOR DE DISPLAY DE 7 SEGMENTOS COM LATCH

DECODIFICADOR DE DISPLAY DE 7 SEGMENTOS COM LATCH UNIVERSIDADE FEDERAL DO PARANÁ DEPARTAMENTO DE ENGENHARIA ELÉTRICA DECODIFICADOR DE DISPLAY DE 7 SEGMENTOS COM LATCH Projeto para a matéria TE130 Projeto de Circuitos Integrados Digitais, ministrada pelo

Leia mais

Jogo de Tabuleiro - Mancala Relatório Final

Jogo de Tabuleiro - Mancala Relatório Final Jogo de Tabuleiro - Mancala Relatório Final Inteligência Artificial 3º ano do Mestrado Integrado em Engenharia Informática e Computação Elementos do Grupo: Bruno Lima 080509068 bruno.lima@fe.up.pt Pedro

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

Leia mais

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Revisão dos conceitos básicos O processador é o componente vital do sistema de

Leia mais

Aula 26: Arquiteturas RISC vs. CISC

Aula 26: Arquiteturas RISC vs. CISC Aula 26: Arquiteturas RISC vs CISC Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Arquiteturas RISC vs CISC FAC 1 / 33 Revisão Diego Passos

Leia mais

A idéia hardware sugerida é colocar a placa entre o PC e o microcontrolador, conforme mostrado no esquema abaixo.

A idéia hardware sugerida é colocar a placa entre o PC e o microcontrolador, conforme mostrado no esquema abaixo. Circuito de gravação (AVR programmer) Introdução Nossa proposta, nesta parte do trabalho, é apresentar um circuito para gravação ISP (In-System- Programming) para microcontroladores AVR. Este circuito,

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO Santa Maria, 10 de Outubro de 2013. Revisão aula anterior Documento de Requisitos Estrutura Padrões Template Descoberta

Leia mais

2. NÍVEL DE SISTEMA OPERACIONAL

2. NÍVEL DE SISTEMA OPERACIONAL 2. NÍVEL DE SISTEMA OPERACIONAL Nos períodos anteriores foram mostrados os níveis iniciais da organização de um computador, quando vimos em Circuitos Digitais os detalhes do Nível 0 (zero) de Lógica Digital.

Leia mais

Capítulo III Circuitos Digitais Combinacionais

Capítulo III Circuitos Digitais Combinacionais Capítulo III Circuitos Digitais Combinacionais 1 Introdução Vimos no Capítulo II que uma desejada função lógica pode ser implementada mediante a combinação de portas lógicas. Esta combinação de portas

Leia mais

Trabalho de Implementação Jogo Reversi

Trabalho de Implementação Jogo Reversi Trabalho de Implementação Jogo Reversi Paulo Afonso Parreira Júnior {paulojr@comp.ufla.br} Rilson Machado de Olivera {rilson@comp.ufla.br} Universidade Federal de Lavras UFLA Departamento de Ciência da

Leia mais

Engenharia de Software

Engenharia de Software CENTRO UNIVERSITÁRIO NOVE DE JULHO Profº. Edson T. França edson.franca@uninove.br Software Sistemas Conjunto de elementos, entre os quais haja alguma relação Disposição das partes ou dos elementos de um

Leia mais

AULA4: PROCESSADORES. Figura 1 Processadores Intel e AMD.

AULA4: PROCESSADORES. Figura 1 Processadores Intel e AMD. AULA4: PROCESSADORES 1. OBJETIVO Figura 1 Processadores Intel e AMD. Conhecer as funcionalidades dos processadores nos computadores trabalhando suas principais características e aplicações. 2. INTRODUÇÃO

Leia mais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais Sistema Operacional Processo e Threads Introdução a Processos Todos os computadores modernos são capazes de fazer várias coisas ao mesmo tempo. Enquanto executa um programa do usuário, um computador pode

Leia mais

Ciclo de um produto. Você já percebeu, ao andar pelos corredores. Um problema. Ciclo do produto

Ciclo de um produto. Você já percebeu, ao andar pelos corredores. Um problema. Ciclo do produto A U A UL LA Ciclo de um produto Um problema Você já percebeu, ao andar pelos corredores de um supermercado, a infinidade de produtos industrializados? Desde alimentos a produtos de limpeza e eletrodomésticos,

Leia mais

Introdução à Programação de Computadores

Introdução à Programação de Computadores 1. Objetivos Introdução à Programação de Computadores Nesta seção, vamos discutir os componentes básicos de um computador, tanto em relação a hardware como a software. Também veremos uma pequena introdução

Leia mais

Memórias. O que são Memórias de Semicondutores? São componentes capazes de armazenar informações Binárias (0s e 1s)

Memórias. O que são Memórias de Semicondutores? São componentes capazes de armazenar informações Binárias (0s e 1s) Memórias O que são Memórias de Semicondutores? São componentes capazes de armazenar informações Binárias (0s e 1s) Essas informações são guardadas eletricamente em células individuais. Chamamos cada elemento

Leia mais

Programação em BASIC para o PIC Mostrando Mensagens no Display LCD Vitor Amadeu Souza

Programação em BASIC para o PIC Mostrando Mensagens no Display LCD Vitor Amadeu Souza Programação em BASIC para o PIC Mostrando Mensagens no Display LCD Vitor Amadeu Souza Introdução Nesta terceira série de artigos que aborda a programação na linguagem BASIC para o microcontrolador PIC,

Leia mais

Modelo de dados do Data Warehouse

Modelo de dados do Data Warehouse Modelo de dados do Data Warehouse Ricardo Andreatto O modelo de dados tem um papel fundamental para o desenvolvimento interativo do data warehouse. Quando os esforços de desenvolvimentos são baseados em

Leia mais

Sistemas Inteligentes Lista de Exercícios sobre Busca

Sistemas Inteligentes Lista de Exercícios sobre Busca Sistemas Inteligentes Lista de Exercícios sobre Busca 1) A* - Problema do metrô de Paris Suponha que queremos construir um sistema para auxiliar um usuário do metrô de Paris a saber o trajeto mais rápido

Leia mais

R S Q 0 0 1 0 1 0 1 0 0 1 1 0 Tabela 17 - Tabela verdade NOR

R S Q 0 0 1 0 1 0 1 0 0 1 1 0 Tabela 17 - Tabela verdade NOR 19 Aula 4 Flip-Flop Flip-flops são circuitos que possuem a característica de manter os bits de saída independente de energia, podem ser considerados os princípios das memórias. Um dos circuitos sequenciais

Leia mais

AULA1 Introdução a Microprocessadores gerais

AULA1 Introdução a Microprocessadores gerais AULA1 Introdução a Microprocessadores gerais Disciplina: Aplicações Avançadas de Microprocessadores (AAM) Prof. Eduardo Henrique Couto ehcouto@hotmail.com 2014/1 Apresentação do Professor: Cronograma:

Leia mais

Entrada e Saída. Prof. Leonardo Barreto Campos 1

Entrada e Saída. Prof. Leonardo Barreto Campos 1 Entrada e Saída Prof. Leonardo Barreto Campos 1 Sumário Introdução; Dispositivos Externos; E/S Programada; E/S Dirigida por Interrupção; Acesso Direto à Memória; Bibliografia. Prof. Leonardo Barreto Campos

Leia mais

ULA Sinais de Controle enviados pela UC

ULA Sinais de Controle enviados pela UC Solução - Exercícios Processadores 1- Qual as funções da Unidade Aritmética e Lógica (ULA)? A ULA é o dispositivo da CPU que executa operações tais como: Adição Subtração Multiplicação Divisão Incremento

Leia mais

Arquitetura de Computadores Circuitos Combinacionais, Circuitos Sequênciais e Organização de Memória

Arquitetura de Computadores Circuitos Combinacionais, Circuitos Sequênciais e Organização de Memória Introdução Arquitetura de Computadores Circuitos Combinacionais, Circuitos Sequênciais e O Nível de lógica digital é o nível mais baixo da Arquitetura. Responsável pela interpretação de instruções do nível

Leia mais

Arquitetura Genérica

Arquitetura Genérica Arquitetura Genérica Antes de tudo, vamos revisar o Modelo Simplificado do Funcionamento de um Computador. Modelo Simplificado do Funcionamento de um Computador O funcionamento de um computador pode ser

Leia mais

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 2 - O NÍVEL DA MICROARQUITETURA 1. INTRODUÇÃO Este é o nível cuja função é implementar a camada ISA (Instruction Set Architeture). O seu projeto depende da arquitetura do conjunto das instruções

Leia mais

Disciplina: Processamento Digital de Sinais (ENG577) Aula 05 Parte 2: Dispositivos de Hardware Programável Prof.: Eduardo Simas eduardo.simas@ufba.

Disciplina: Processamento Digital de Sinais (ENG577) Aula 05 Parte 2: Dispositivos de Hardware Programável Prof.: Eduardo Simas eduardo.simas@ufba. Universidade Federal da Bahia Escola Politécnica Programa de Pós Graduação em Engenharia Elétrica Disciplina: Processamento Digital de Sinais (ENG577) Aula 05 Parte 2: Dispositivos de Hardware Programável

Leia mais

Universidade Tuiuti do Paraná UTP Faculdade de Ciências Exatas - FACET

Universidade Tuiuti do Paraná UTP Faculdade de Ciências Exatas - FACET Universidade Tuiuti do Paraná UTP Faculdade de Ciências Exatas - FACET Hardware de Computadores Questionário II 1. A principal diferença entre dois processadores, um deles equipado com memória cache o

Leia mais

INTRODUÇÃO AO DESENVOLVIMENTO DE SISTEMAS COM MICROCONTROLADORES

INTRODUÇÃO AO DESENVOLVIMENTO DE SISTEMAS COM MICROCONTROLADORES INTRODUÇÃO AO DESENVOLVIMENTO DE SISTEMAS COM MICROCONTROLADORES Matheus Montanini Breve (PIBIC-Jr), Miguel Angel Chincaro Bernuy (Orientador), e-mail: migueltrabalho@gmail.com Universidade Tecnológica

Leia mais

4 Arquitetura básica de um analisador de elementos de redes

4 Arquitetura básica de um analisador de elementos de redes 4 Arquitetura básica de um analisador de elementos de redes Neste capítulo é apresentado o desenvolvimento de um dispositivo analisador de redes e de elementos de redes, utilizando tecnologia FPGA. Conforme

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES ARQUITETURA DE COMPUTADORES Aula 08: UCP Características dos elementos internos da UCP: registradores, unidade de controle, decodificador de instruções, relógio do sistema. Funções do processador: controle

Leia mais

Sistemas Operacionais

Sistemas Operacionais 7 Sistemas Operacionais 7.1 Fundamentos da ciência da computação Cengage Learning Objetivos 7.2 Compreender o papel do sistema operacional. Compreender o processo de inicialização para carregar o sistema

Leia mais

UMA BREVE INTRODUÇÃO AO ESTUDO E IMPLEMENTAÇÃO DE COMPILADORES

UMA BREVE INTRODUÇÃO AO ESTUDO E IMPLEMENTAÇÃO DE COMPILADORES UMA BREVE INTRODUÇÃO AO ESTUDO E IMPLEMENTAÇÃO DE COMPILADORES 1 BRANCO; Guido Aparecido Junior, 2 TAMAE, Rodrigo Yoshio 1-Discente do Curso Sistemas de Informação FAEG/Garça 2-Docente do Curso Sistemas

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais SISTEMAS DE ARQUIVOS MACHADO/MAIA: CAPÍTULO 11 Prof. Pedro Luís Antonelli Anhanguera Educacional SISTEMAS DE ARQUIVOS - INTRODUÇÃO O armazenamento e a recuperação de informações é

Leia mais

AULA2 Introdução a Microcontrolador

AULA2 Introdução a Microcontrolador AULA2 Introdução a Microcontrolador Disciplina: Aplicações Avançadas de Microprocessadores (AAM) Profa. Eduardo Henrique Couto ehcouto@hotmail.com Tópicos: Microcontroladores - Evolução Principais características

Leia mais

Estrutura de um Computador. Linguagem de Programação Rone Ilídio UFSJ - CAP

Estrutura de um Computador. Linguagem de Programação Rone Ilídio UFSJ - CAP Estrutura de um Computador Linguagem de Programação Rone Ilídio UFSJ - CAP Hardware e Software HARDWARE: Objetos Físicos que compões o computador Circuitos Integrados, placas, cabos, memórias, dispositivos

Leia mais

O que é Arquitetura de Computadores?

O que é Arquitetura de Computadores? O que é Arquitetura de Computadores? Forças Coordenação de um conjunto de níveis de abstração de um computador sobre um grande conjunto de forças de mudança Arquitetura de Computadores = Arquitetura de

Leia mais

EXPERIÊNCIA 17 USO DO TEMPORIZADOR INTERNO

EXPERIÊNCIA 17 USO DO TEMPORIZADOR INTERNO EXPERIÊNCIA 17 USO DO TEMPORIZADOR INTERNO Parte I Fundamentos Teóricos O que diferencia um microcontrolador (como o 8051) de um microprocessador é o fato de que o primeiro pode apresentar, integrados

Leia mais

Prof. Daniel Gondim danielgondimm@gmail.com. Informática

Prof. Daniel Gondim danielgondimm@gmail.com. Informática Prof. Daniel Gondim danielgondimm@gmail.com Informática Componentes de um SC Hardware X Software Memória do Computador Hardware X Software Toda interação dos usuários de computadores modernos é realizada

Leia mais

Em um sistema de numeração de base b qualquer, um número positivo é representado pelo polinômio:

Em um sistema de numeração de base b qualquer, um número positivo é representado pelo polinômio: ELETRÔNICA DIGITAl I 1 SISTEMAS DE NUMERAÇÃO INTRODUÇÃO A base dos sistemas digitais são os circuitos de chaveamento (switching) nos quais o componente principal é o transistor que, sob o ponto de vista

Leia mais

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados Organização de um Computador Típico Memória: Armazena dados e programas. Processador (CPU - Central Processing

Leia mais

Capítulo 8 Arquitetura de Computadores Paralelos

Capítulo 8 Arquitetura de Computadores Paralelos Capítulo 8 Arquitetura de Computadores Paralelos Necessidade de máquinas com alta capacidade de computação Aumento do clock => alta dissipação de calor Velocidade limitada dos circuitos => velocidade da

Leia mais

4.1. Introdução. 4.2. Layout do DNS

4.1. Introdução. 4.2. Layout do DNS MIT 18.996 Tópico da Teoria da Ciência da Computação: Problemas de Pesquisa na Internet Segundo Trimestre 2002 Aula 4 27de fevereiro de 2002 Palestrantes: T. Leighton, D. Shaw, R. Sudaran Redatores: K.

Leia mais

HARDWARE COMPONENTES BÁSICOS E FUNCIONAMENTO. Wagner de Oliveira

HARDWARE COMPONENTES BÁSICOS E FUNCIONAMENTO. Wagner de Oliveira HARDWARE COMPONENTES BÁSICOS E FUNCIONAMENTO Wagner de Oliveira SUMÁRIO Hardware Definição de Computador Computador Digital Componentes Básicos CPU Processador Memória Barramento Unidades de Entrada e

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

Fundamentos de Automação. Controladores

Fundamentos de Automação. Controladores Ministério da educação - MEC Secretaria de Educação Profissional e Técnica SETEC Instituto Federal de Educação Ciência e Tecnologia do Rio Grande do Sul Campus Rio Grande Fundamentos de Automação Controladores

Leia mais

FACULDADE PITÁGORAS PRONATEC

FACULDADE PITÁGORAS PRONATEC FACULDADE PITÁGORAS PRONATEC DISCIPLINA: ARQUITETURA DE COMPUTADORES Prof. Ms. Carlos José Giudice dos Santos carlos@oficinadapesquisa.com.br www.oficinadapesquisa.com.br Objetivos Ao final desta apostila,

Leia mais

ARQUITETURA DE COMPUTADORES Prof. João Inácio

ARQUITETURA DE COMPUTADORES Prof. João Inácio ARQUITETURA DE COMPUTADORES Prof. João Inácio Memórias Memória: é o componente de um sistema de computação cuja função é armazenar informações que são, foram ou serão manipuladas pelo sistema. Em outras

Leia mais

Arquitetura de Computadores. Professor: Vilson Heck Junior

Arquitetura de Computadores. Professor: Vilson Heck Junior Arquitetura de Computadores Professor: Vilson Heck Junior Agenda Conceitos Estrutura Funcionamento Arquitetura Tipos Atividades Barramentos Conceitos Como já discutimos, os principais componentes de um

Leia mais

CONSTRUÇÃO DE UMA UCP HIPOTÉTICA M++ INTRODUÇÃO

CONSTRUÇÃO DE UMA UCP HIPOTÉTICA M++ INTRODUÇÃO CONSTRUÇÃO DE UMA UCP HIPOTÉTICA M++ INTRODUÇÃO O seguinte artigo apresenta uma UCP hipotética construída no software simulador DEMOWARE Digital Works 3.04.39. A UCP (Unidade Central de Processamento)

Leia mais

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: ICO Aula N : 09 Tema: Unidade Central de

Leia mais

Arquiteturas RISC. (Reduced Instructions Set Computers)

Arquiteturas RISC. (Reduced Instructions Set Computers) Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina

Leia mais

Sistema de Computação

Sistema de Computação Sistema de Computação Máquinas multinível Nível 0 verdadeiro hardware da máquina, executando os programas em linguagem de máquina de nível 1 (portas lógicas); Nível 1 Composto por registrados e pela ALU

Leia mais

FAT32 ou NTFS, qual o melhor?

FAT32 ou NTFS, qual o melhor? FAT32 ou NTFS, qual o melhor? Entenda quais as principais diferenças entre eles e qual a melhor escolha O que é um sistema de arquivos? O conceito mais importante sobre este assunto, sem sombra de dúvidas,

Leia mais

Componentes de um computador típico

Componentes de um computador típico Componentes de um computador típico Assim como em um videocassete, no qual é necessário ter o aparelho de vídeo e uma fita contendo o filme que será reproduzido, o computador possui a parte física, chamada

Leia mais

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware 1 2 Revisão de Hardware 2.1 Hardware O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware 2.1.1 Processador O Processador

Leia mais

Memórias Prof. Galvez Gonçalves

Memórias Prof. Galvez Gonçalves Arquitetura e Organização de Computadores 1 s Prof. Galvez Gonçalves Objetivo: Compreender os tipos de memória e como elas são acionadas nos sistemas computacionais modernos. INTRODUÇÃO Nas aulas anteriores

Leia mais

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui. 3 Tecnologia FPGA Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui. 3.1. FPGA: Histórico, linguagens e blocos Muitos dos

Leia mais

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara Carga Horária: 60h Sumário Unidade Lógica Aritmetrica Registradores Unidade Lógica Operações da ULA Unidade de Ponto Flutuante Representação

Leia mais

Identificação rápida de gargalos Uma forma mais eficiente de realizar testes de carga. Um artigo técnico da Oracle Junho de 2009

Identificação rápida de gargalos Uma forma mais eficiente de realizar testes de carga. Um artigo técnico da Oracle Junho de 2009 Identificação rápida de gargalos Uma forma mais eficiente de realizar testes de carga Um artigo técnico da Oracle Junho de 2009 Identificação rápida de gargalos Uma forma mais eficiente de realizar testes

Leia mais

Componentes de um Sistema de Computador

Componentes de um Sistema de Computador Componentes de um Sistema de Computador HARDWARE: unidade responsável pelo processamento dos dados, ou seja, o equipamento (parte física) SOFTWARE: Instruções que dizem o que o computador deve fazer (parte

Leia mais

CIRCUITOS E SISTEMAS ELECTRÓNICOS

CIRCUITOS E SISTEMAS ELECTRÓNICOS INSTITUTO SUPERIOR DE CIÊNCIAS DO TRABALHO E DA EMPRESA Apontamentos sobre Famílias Lógicas CIRCUITOS E SISTEMAS ELECTRÓNICOS APONTAMENTOS SOBRE FAMÍLIAS LÓGICAS Índice Introdução... 1 Tempos de atraso

Leia mais

Arquitetura de Von Neumann e os Computadores Modernos

Arquitetura de Von Neumann e os Computadores Modernos Arquitetura de Von Neumann e os Computadores Modernos Arquitetura de Computadores e Software Básico Aula 5 Flávia Maristela (flaviamsn@ifba.edu.br) Arquitetura de Von Neumann e as máquinas modernas Onde

Leia mais

CTC-17 Inteligência Artificial Problemas de Busca. Prof. Paulo André Castro pauloac@ita.br

CTC-17 Inteligência Artificial Problemas de Busca. Prof. Paulo André Castro pauloac@ita.br CTC-17 Inteligência Artificial Problemas de Busca Prof. Paulo André Castro pauloac@ita.br www.comp.ita.br/~pauloac Sala 110, IEC-ITA Sumário Agentes que buscam soluções para problemas: Exemplo Tipos de

Leia mais

Escola. Europeia de. Ensino. Profissional ARQUITETURA DE COMPUTADORES

Escola. Europeia de. Ensino. Profissional ARQUITETURA DE COMPUTADORES Escola Europeia de t Ensino Profissional ARQUITETURA DE COMPUTADORES TRABALHO REALIZADO: ANDRÉ RIOS DA CRUZ ANO LETIVO: 2012/ 2013 TÉCNICO DE GESTÃO DE EQUIPAMENTOS INFORMÁTICOS 2012 / 2013 3902 Escola

Leia mais

Microprocessadores. Prof. Leonardo Barreto Campos 1

Microprocessadores. Prof. Leonardo Barreto Campos 1 Microprocessadores Prof. Leonardo Barreto Campos 1 Sumário Introdução; Arquitetura de Microprocessadores; Unidade de Controle UC; Unidade Lógica Aritméticas ULA; Arquitetura de von Neumann; Execução de

Leia mais

2. Representação Numérica

2. Representação Numérica 2. Representação Numérica 2.1 Introdução A fim se realizarmos de maneira prática qualquer operação com números, nós precisamos representa-los em uma determinada base numérica. O que isso significa? Vamos

Leia mais

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software Análise e Projeto de Sistemas Análise e Projeto de Sistemas Contextualização ENGENHARIA DE SOFTWARE ANÁLISE E PROJETO DE SISTEMAS ENGENHARIA DA INFORMAÇÃO Perspectiva Histórica Engenharia de Software 1940:

Leia mais

A IMPORTÂNCIA DA MATEMÁTICA NAS ÁREAS DO CONHECIMENTO

A IMPORTÂNCIA DA MATEMÁTICA NAS ÁREAS DO CONHECIMENTO A IMPORTÂNCIA DA MATEMÁTICA NAS ÁREAS DO CONHECIMENTO 1. Introdução: Por que a Matemática? Eu, Alessandro Ferreira Alves professor de Matemática já alguns anos, já vivenciei em vários momentos a experiência

Leia mais

PARANÁ GOVERNO DO ESTADO

PARANÁ GOVERNO DO ESTADO PARANÁ GOVERNO DO ESTADO COLÉGIO ESTADUAL DE PARANAVAÍ ENSINO FUNDAMENTAL, MÉDIO, NORMAL E PROFISSIONAL CURSO TÉCNICO EM INFORMÁTICA DISCIPLINA: INTERNET E PROGRAMAÇÃO WEB 1º MÓDULO SUBSEQUENTE MECANISMOS

Leia mais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

William Stallings Arquitetura e Organização de Computadores 8 a Edição William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 7 Entrada/saída Os textos nestas caixas foram adicionados pelo Prof. Joubert slide 1 Problemas de entrada/saída Grande variedade

Leia mais

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br Introdução INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br introdução Tópicos conceitos básicos o que é um programa um programa na memória decifrando um código referência Capítulo

Leia mais

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1 Introdução à Organização e Arquitetura de Computadores Prof. Leonardo Barreto Campos 1 Sumário Introdução; Evolução dos Computadores; Considerações da Arquitetura de von Neumann; Execução de uma instrução

Leia mais

Infraestrutura de Hardware. Memória Virtual

Infraestrutura de Hardware. Memória Virtual Infraestrutura de Hardware Memória Virtual Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é entendido e executado pelo HW? Qual é a interface

Leia mais

fig. 1 - símbolo básico do diodo

fig. 1 - símbolo básico do diodo DIODOS São componentes que permitem a passagem da corrente elétrica em apenas um sentido. Produzidos à partir de semicondutores, materiais criados em laboratórios uma vez que não existem na natureza, que

Leia mais

Inteligência Artificial. Minimax. Xadrez chinês. Xadrez chinês. Exemplos de Jogos. Exemplo de função de avaliação: Prof. Paulo Martins Engel

Inteligência Artificial. Minimax. Xadrez chinês. Xadrez chinês. Exemplos de Jogos. Exemplo de função de avaliação: Prof. Paulo Martins Engel Xadrez chinês Inteligência Artificial Exemplos de Jogos O objetivo de cada jogador é passar todas as suas peças para o quadrado oposto. Movimenta-se uma peça a cada jogada. O movimento é sempre para uma

Leia mais

for Information Interchange.

for Information Interchange. 6 Memória: 6.1 Representação de Memória: Toda a informação com a qual um sistema computacional trabalha está, em algum nível, armazenada em um sistema de memória, guardando os dados em caráter temporário

Leia mais

PR 2 PROCEDIMENTO. Auditoria Interna. Revisão - 2 Página: 1 de 9

PR 2 PROCEDIMENTO. Auditoria Interna. Revisão - 2 Página: 1 de 9 Página: 1 de 9 1. OBJETIVO Estabelecer sistemática de funcionamento e aplicação das Auditorias Internas da Qualidade, fornecendo diretrizes para instruir, planejar, executar e documentar as mesmas. Este

Leia mais

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br Conceito de Computador Um computador digital é

Leia mais

Aula 09. Memórias e Circuitos Digitais Seqüenciais

Aula 09. Memórias e Circuitos Digitais Seqüenciais Aula 09 Memórias e Circuitos Digitais Seqüenciais Introdução Os circuitos lógicos estudados até aqui são chamados de combinacionais (ou combinatórios). São assim chamados porque a sua saída depende apenas

Leia mais

Microinformática Introdução ao hardware. Jeronimo Costa Penha SENAI - CFP/JIP

Microinformática Introdução ao hardware. Jeronimo Costa Penha SENAI - CFP/JIP Microinformática Introdução ao hardware Jeronimo Costa Penha SENAI - CFP/JIP Informática Informática é o termo usado para se descrever o conjunto das ciências da informação, estando incluídas neste grupo:

Leia mais

Aqui você também vai encontrar o botão ""Autocompletar"", que ajuda na criação do alinhamento, caso você não consiga se decidir.

Aqui você também vai encontrar o botão Autocompletar, que ajuda na criação do alinhamento, caso você não consiga se decidir. 1. ATIVAR CARTA Nesta seção, localizada dentro do ""shopping center"", você precisa inserir o código que aparece no verso da sua carta real para adicioná-la à sua coleção virtual. Às vezes, você pode se

Leia mais

Computadores I: Dados e informações

Computadores I: Dados e informações Computadores I: Dados e informações A1 Texto 1 Sítio Fórum PCs /Colunas Coluna: B. Piropo Publicada em 20/06/2005 Autor: B.Piropo Dado e informação Um computador é uma máquina que tem por fim processar

Leia mais

Aula 11 27/10/2008 Universidade do Contestado UnC/Mafra Sistemas de Informação Arquitetura de Computadores Prof. Carlos Guerber PROCESSADOR INTRODUÇÃO

Aula 11 27/10/2008 Universidade do Contestado UnC/Mafra Sistemas de Informação Arquitetura de Computadores Prof. Carlos Guerber PROCESSADOR INTRODUÇÃO Aula 11 27/10/2008 Universidade do Contestado UnC/Mafra Sistemas de Informação Arquitetura de Computadores Prof. Carlos Guerber PROCESSADOR INTRODUÇÃO O processador é um dos componentes que mais determina

Leia mais

Comunicação Serial com o AVR ATMEGA8

Comunicação Serial com o AVR ATMEGA8 Comunicação Serial com o AVR ATMEGA8 Vitor Amadeu Souza vitor@cerne-tec.com.br Introdução Os microcontroladores AVR vem a cada dia tomando cada vez mais espaço nos novos projetos eletrônicos microcontrolados.

Leia mais

MÉTODOS DE RESOLUÇÃO DE PROBLEMAS EM IA. Busca em espaço de estados. Estados e Operadores. Jogo dos 8. Sumário. Exemplo: jogo dos 8

MÉTODOS DE RESOLUÇÃO DE PROBLEMAS EM IA. Busca em espaço de estados. Estados e Operadores. Jogo dos 8. Sumário. Exemplo: jogo dos 8 MÉTODOS DE RESOLUÇÃO DE PROBLEMAS EM IA Sumário busca em espaço de estados redução de problemas Busca em espaço de estados Exemplo: jogo dos 8 2 8 3 1 6 4 7 5 Jogo dos 8 Estados e Operadores Estado: uma

Leia mais

Engenharia de Software II: Criando o cronograma do projeto. Prof. Msc Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br

Engenharia de Software II: Criando o cronograma do projeto. Prof. Msc Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br Engenharia de Software II: Criando o cronograma do projeto Prof. Msc Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br Sumário Definição das atividades. Sequenciamento das atividades. Estimativa de recursos

Leia mais