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

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

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

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

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior MRP II Introdução A lógica de cálculo das necessidades é conhecida há muito tempo Porém só pode ser utilizada na prática em situações mais complexas a partir dos anos 60 A partir de meados da década de

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

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

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

Soluções Nível 1 5 a e 6 a séries (6º e 7º anos) do Ensino Fundamental

Soluções Nível 1 5 a e 6 a séries (6º e 7º anos) do Ensino Fundamental a e 6 a séries (6º e 7º anos) do Ensino Fundamental 1. (alternativa C) Os números 0,01 e 0,119 são menores que 0,12. Por outro lado, 0,1 e 0,7 são maiores que 0,. Finalmente, 0,29 é maior que 0,12 e menor

Leia mais

MUDANÇAS NA ISO 9001: A VERSÃO 2015

MUDANÇAS NA ISO 9001: A VERSÃO 2015 MUDANÇAS NA ISO 9001: A VERSÃO 2015 Está em andamento o processo de revisão da Norma ISO 9001: 2015, que ao ser concluído resultará na mudança mais significativa já efetuada. A chamada família ISO 9000

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

Resolução da lista de exercícios de casos de uso

Resolução da lista de exercícios de casos de uso Resolução da lista de exercícios de casos de uso 1. Explique quando são criados e utilizados os diagramas de casos de uso no processo de desenvolvimento incremental e iterativo. Na fase de concepção se

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Laboratório de Pesquisa e Desenvolvimento Universidade Federal de Alfenas versão

Leia mais

BARRAMENTO DO SISTEMA

BARRAMENTO DO SISTEMA BARRAMENTO DO SISTEMA Memória Principal Processador Barramento local Memória cachê/ ponte Barramento de sistema SCSI FireWire Dispositivo gráfico Controlador de vídeo Rede Local Barramento de alta velocidade

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

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

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE MÓDULO 6 INTRODUÇÃO À PROBBILIDDE Quando estudamos algum fenômeno através do método estatístico, na maior parte das vezes é preciso estabelecer uma distinção entre o modelo matemático que construímos para

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

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

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

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

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2 3.2 O Espaço Nulo de A: Resolvendo Ax = 0 11 O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2 Esta seção trata do espaço de soluções para Ax = 0. A matriz A pode ser quadrada ou retangular. Uma solução imediata

Leia mais

Estabilizada de. PdP. Autor: Luís Fernando Patsko Nível: Intermediário Criação: 22/02/2006 Última versão: 18/12/2006

Estabilizada de. PdP. Autor: Luís Fernando Patsko Nível: Intermediário Criação: 22/02/2006 Última versão: 18/12/2006 TUTORIAL Fonte Estabilizada de 5 Volts Autor: Luís Fernando Patsko Nível: Intermediário Criação: 22/02/2006 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br

Leia mais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.

Leia mais

Exercícios Teóricos Resolvidos

Exercícios Teóricos Resolvidos Universidade Federal de Minas Gerais Instituto de Ciências Exatas Departamento de Matemática Exercícios Teóricos Resolvidos O propósito deste texto é tentar mostrar aos alunos várias maneiras de raciocinar

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

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

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá. INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,

Leia mais

Disciplina: Introdução à Informática Profª Érica Barcelos

Disciplina: Introdução à Informática Profª Érica Barcelos Disciplina: Introdução à Informática Profª Érica Barcelos CAPÍTULO 4 1. ARQUITETURA DO COMPUTADOR- HARDWARE Todos os componentes físicos constituídos de circuitos eletrônicos interligados são chamados

Leia mais

Sistemas Computacionais II Professor Frederico Sauer

Sistemas Computacionais II Professor Frederico Sauer Sistemas Computacionais II Professor Frederico Sauer Livro-texto: Introdução à Organização de Computadores 4ª edição Mário A. Monteiro Livros Técnicos e Científicos Editora. Atenção: Este material não

Leia mais

1.1. Organização de um Sistema Computacional

1.1. Organização de um Sistema Computacional 1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes

Leia mais

1. Introdução. Avaliação de Usabilidade Página 1

1. Introdução. Avaliação de Usabilidade Página 1 1. Introdução Avaliação de Usabilidade Página 1 Os procedimentos da Avaliação Heurística correspondem às quatro fases abaixo e no final é apresentado como resultado, uma lista de problemas de usabilidade,

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

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas?

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas? Recorrências Muitas vezes não é possível resolver problemas de contagem diretamente combinando os princípios aditivo e multiplicativo. Para resolver esses problemas recorremos a outros recursos: as recursões

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

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

4 Segmentação. 4.1. Algoritmo proposto

4 Segmentação. 4.1. Algoritmo proposto 4 Segmentação Este capítulo apresenta primeiramente o algoritmo proposto para a segmentação do áudio em detalhes. Em seguida, são analisadas as inovações apresentadas. É importante mencionar que as mudanças

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

Hoje estou elétrico!

Hoje estou elétrico! A U A UL LA Hoje estou elétrico! Ernesto, observado por Roberto, tinha acabado de construir um vetor com um pedaço de papel, um fio de meia, um canudo e um pedacinho de folha de alumínio. Enquanto testava

Leia mais

Testador de cabos de rede

Testador de cabos de rede Testador de cabos de rede Elias Bernabé Turchiello Técnico responsável Este manual se destina unicamente a orientar o montador interessado neste projeto, portanto não se encontram neste manual: detalhes

Leia mais

CISC RISC Introdução A CISC (em inglês: Complex Instruction Set Computing, Computador com um Conjunto Complexo de Instruções), usada em processadores Intel e AMD; suporta mais instruções no entanto, com

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

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

Computadores XXI: Busca e execução Final

Computadores XXI: Busca e execução Final Computadores XXI: Busca e execução Final A6 Texto 6 http://www.bpiropo.com.br/fpc20060123.htm Sítio Fórum PCs /Colunas Coluna: B. Piropo Publicada em 23/01/2006 Autor: B.Piropo Na coluna anterior, < http://www.forumpcs.com.br/viewtopic.php?t=146019

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

Módulo 4. Construindo uma solução OLAP

Módulo 4. Construindo uma solução OLAP Módulo 4. Construindo uma solução OLAP Objetivos Diferenciar as diversas formas de armazenamento Compreender o que é e como definir a porcentagem de agregação Conhecer a possibilidade da utilização de

Leia mais

Algoritmos. Objetivo principal: explicar que a mesma ação pode ser realizada de várias maneiras, e que às vezes umas são melhores que outras.

Algoritmos. Objetivo principal: explicar que a mesma ação pode ser realizada de várias maneiras, e que às vezes umas são melhores que outras. 6 6 NOME DA AULA: 6 Algoritmos Duração da aula: 45 60 minutos Tempo de preparação: 10-25 minutos (dependendo da disponibilidade de tangrans prontos ou da necessidade de cortá-los à mão) Objetivo principal:

Leia mais

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho 20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam

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

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA CCET CURSO DE ENGENHARIA DE COMPUTAÇÃO Henrique Soares Hinke José Eduardo da Silva Rodrigues Matheus Augusto de Queiroz

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 13 Gerência de Memória Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Sumário

Leia mais

3. Arquitetura Básica do Computador

3. Arquitetura Básica do Computador 3. Arquitetura Básica do Computador 3.1. Modelo de Von Neumann Dar-me-eis um grão de trigo pela primeira casa do tabuleiro; dois pela segunda, quatro pela terceira, oito pela quarta, e assim dobrando sucessivamente,

Leia mais

Universidade Federal da Paraíba Centro de Ciências Exatas e da Natureza Departamento de Informática

Universidade Federal da Paraíba Centro de Ciências Exatas e da Natureza Departamento de Informática Universidade Federal da Paraíba Centro de Ciências Exatas e da Natureza Departamento de Informática Francisco Erberto de Sousa 11111971 Saulo Bezerra Alves - 11111958 Relatório: Capacitor, Resistor, Diodo

Leia mais

Conheça o 4017 (ART062)

Conheça o 4017 (ART062) 1 de 11 20/02/2013 18:14 Conheça o 4017 (ART062) Este artigo não é novo, mas sua atualidade se manterá por muito tempo, o que jusitifica o fato dele ser um dos mais acessados desse site. De fato, o circuito

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

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

1) MANUAL DO INTEGRADOR Este documento, destinado aos instaladores do sistema, com informações de configuração.

1) MANUAL DO INTEGRADOR Este documento, destinado aos instaladores do sistema, com informações de configuração. O software de tarifação é uma solução destinada a rateio de custos de insumos em sistemas prediais, tais como shopping centers. O manual do sistema é dividido em dois volumes: 1) MANUAL DO INTEGRADOR Este

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

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

Algoritmos e Estrutura de Dados III. Árvores

Algoritmos e Estrutura de Dados III. Árvores Algoritmos e Estrutura de Dados III Árvores Uma das mais importantes classes de estruturas de dados em computação são as árvores. Aproveitando-se de sua organização hierárquica, muitas aplicações são realizadas

Leia mais

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA 8 CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA A porta paralela, também conhecida por printer port ou Centronics e a porta serial (RS-232) são interfaces bastante comuns que, apesar de estarem praticamente

Leia mais

Processadores. Guilherme Pontes

Processadores. Guilherme Pontes Processadores Guilherme Pontes Já sabemos o básico! Como já sabemos, o processador exerce uma das mais importantes funções do computador. Vamos agora nos aprofundar em especificações mais técnicas sobre

Leia mais

Guia de utilização do software. universal GPRS M-300.

Guia de utilização do software. universal GPRS M-300. Guia de utilização do software Programador do módulo universal GPRS M-300. JFL Equipamentos Eletrônicos Ind. e Com. Ltda. Rua: João Mota, 471 - Bairro: Jardim das Palmeiras Santa Rita do Sapucaí - MG CEP:

Leia mais

XXXVI OLIMPÍADA PAULISTA DE MATEMÁTICA Prova da Primeira Fase (11 de agosto de 2012) Nível (6 o e 7 o anos do Ensino Fundamental)

XXXVI OLIMPÍADA PAULISTA DE MATEMÁTICA Prova da Primeira Fase (11 de agosto de 2012) Nível (6 o e 7 o anos do Ensino Fundamental) Instruções: XXXVI OLIMPÍADA PAULISTA DE MATEMÁTICA Prova da Primeira Fase (11 de agosto de 2012) Nível (6 o e 7 o anos do Ensino Fundamental) Folha de Perguntas A duração da prova é de 3h30min. O tempo

Leia mais

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

Leia mais

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas PIM PROGRAMA DE INTEGRAÇÃO COM O MERCADO GUIA DE CURSO Tecnologia em Sistemas de Informação Tecnologia em Desenvolvimento Web Tecnologia em Análise e Desenvolvimento de Sistemas Tecnologia em Sistemas

Leia mais

Computadores de Programação (MAB353)

Computadores de Programação (MAB353) Computadores de Programação (MAB353) Aula 19: Visão geral sobre otimização de programas 06 de julho de 2010 1 2 3 Características esperadas dos programas O primeiro objetivo ao escrever programas de computador

Leia mais

Correlação e Regressão Linear

Correlação e Regressão Linear Correlação e Regressão Linear A medida de correlação é o tipo de medida que se usa quando se quer saber se duas variáveis possuem algum tipo de relação, de maneira que quando uma varia a outra varia também.

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário

Leia mais

Pesquisas e Contagens

Pesquisas e Contagens Reforço escolar M ate mática Pesquisas e Contagens Dinâmica 1 1ª Série 1º Bimestre DISCIPLINA SÉRIE CAMPO CONCEITO Matemática Ensino Médio 1ª Numérico Aritmético Conjuntos Aluno Primeira Etapa Compartilhar

Leia mais

Memória Cache. Prof. Leonardo Barreto Campos 1

Memória Cache. Prof. Leonardo Barreto Campos 1 Memória Cache Prof. Leonardo Barreto Campos 1 Sumário Introdução; Projeto de Memórias Cache; Tamanho; Função de Mapeamento; Política de Escrita; Tamanho da Linha; Número de Memórias Cache; Bibliografia.

Leia mais

IW10. Rev.: 02. Especificações Técnicas

IW10. Rev.: 02. Especificações Técnicas IW10 Rev.: 02 Especificações Técnicas Sumário 1. INTRODUÇÃO... 1 2. COMPOSIÇÃO DO IW10... 2 2.1 Placa Principal... 2 2.2 Módulos de Sensores... 5 3. APLICAÇÕES... 6 3.1 Monitoramento Local... 7 3.2 Monitoramento

Leia mais

APOO Análise e Projeto Orientado a Objetos. Requisitos

APOO Análise e Projeto Orientado a Objetos. Requisitos + APOO Análise e Projeto Orientado a Objetos Requisitos Requisitos 2 n Segundo Larman: n São capacidades e condições às quais o sistema e em termos mais amplos, o projeto deve atender n Não são apenas

Leia mais

ARQUITETURA DE COMPUTADORES - CONCEITUAL

ARQUITETURA DE COMPUTADORES - CONCEITUAL Aula 01 04/08/2008 Universidade do Contestado UnC Sistemas de Informação Arquitetura de Computadores 2ª Fase Prof. Carlos Guerber ARQUITETURA DE COMPUTADORES - CONCEITUAL O QUE É O COMPUTADOR? Um computador

Leia mais

Fração como porcentagem. Sexto Ano do Ensino Fundamental. Autor: Prof. Francisco Bruno Holanda Revisor: Prof. Antonio Caminha M.

Fração como porcentagem. Sexto Ano do Ensino Fundamental. Autor: Prof. Francisco Bruno Holanda Revisor: Prof. Antonio Caminha M. Material Teórico - Módulo de FRAÇÕES COMO PORCENTAGEM E PROBABILIDADE Fração como porcentagem Sexto Ano do Ensino Fundamental Autor: Prof. Francisco Bruno Holanda Revisor: Prof. Antonio Caminha M. Neto

Leia mais

4 Avaliação Econômica

4 Avaliação Econômica 4 Avaliação Econômica Este capítulo tem o objetivo de descrever a segunda etapa da metodologia, correspondente a avaliação econômica das entidades de reservas. A avaliação econômica é realizada a partir

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 INTEGRADO DE GESTÃO ACADÊMICA

SISTEMA INTEGRADO DE GESTÃO ACADÊMICA MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO TRIÂNGULO MINEIRO SISTEMA INTEGRADO DE GESTÃO ACADÊMICA MÓDULO PROTOCOLO MANUAL DO USUÁRIO VERSÃO: SETEMBRO/2010 SUMÁRIO Introdução...

Leia mais

Funções de Posicionamento para Controle de Eixos

Funções de Posicionamento para Controle de Eixos Funções de Posicionamento para Controle de Eixos Resumo Atualmente muitos Controladores Programáveis (CPs) classificados como de pequeno porte possuem, integrados em um único invólucro, uma densidade significativa

Leia mais

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual Algoritmos: Lógica para desenvolvimento de programação de computadores Autor: José Augusto Manzano Capítulo 1 Abordagem Contextual 1.1. Definições Básicas Raciocínio lógico depende de vários fatores para

Leia mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 5-1. A CAMADA DE TRANSPORTE Parte 1 Responsável pela movimentação de dados, de forma eficiente e confiável, entre processos em execução nos equipamentos conectados a uma rede de computadores, independentemente

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

Documento Explicativo

Documento Explicativo Decisão de Preço do Suco de Laranja 13 de junho de 2013 Visão Geral O Comitê de Critérios tomou uma decisão em relação ao projeto de Revisão de Preços do Suco de Laranja. O resultado disso é que novos

Leia mais

Programação Básica em STEP 7 Operações Binárias. SITRAIN Training for Automation and Drives. Página 6-1

Programação Básica em STEP 7 Operações Binárias. SITRAIN Training for Automation and Drives. Página 6-1 Conteúdo Página Operações Lógicas Binárias: AND, OR...2 Operações Lógicas Binárias: OR Exclusivo (XOR)...3 Contatos Normalmente Abertos e Normalmente Fechados. Sensores e Símbolos... 4 Exercício...5 Resultado

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

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

ACENDENDO AS LUZES. Capitulo 2 - Aula 1 Livro: Arduino básico Tutor: Wivissom Fayvre

ACENDENDO AS LUZES. Capitulo 2 - Aula 1 Livro: Arduino básico Tutor: Wivissom Fayvre ACENDENDO AS LUZES Capitulo 2 - Aula 1 Livro: Arduino básico Tutor: Wivissom Fayvre Projeto 1 LED piscante Neste capitulo, todos os projetos utilizam luzes LED s de diversas formas. Em relação ao hardware,

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

Alarme Automotivo com mensagem para móvel utilizando Arduino

Alarme Automotivo com mensagem para móvel utilizando Arduino Alarme Automotivo com mensagem para móvel utilizando Arduino Maycon Cirilo dos Santos¹, Wyllian Fressatti¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil mayconsi2012@gmail.com, wyllian@unipar.br

Leia mais

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

28/9/2010. Paralelismo no nível de instruções Processadores superescalares Arquitetura de Computadores Paralelismo no nível de instruções Processadores superescalares Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Processadores superescalares A partir dos resultados

Leia mais

Poliminós e o Tabuleiro de Xadrez Prof. Onofre Campos (onofrecampos@secrel.com.br) Prof. Carlos Shine (cyshine@yahoo.com)

Poliminós e o Tabuleiro de Xadrez Prof. Onofre Campos (onofrecampos@secrel.com.br) Prof. Carlos Shine (cyshine@yahoo.com) Poliminós e o Tabuleiro de Xadrez Prof. Onofre Campos (onofrecampos@secrel.com.br) Prof. Carlos Shine (cyshine@yahoo.com) 1. O dominó Você já deve conhecer o dominó. Não vamos pensar no jogo de dominós

Leia mais

SISTEMAS INTEGRADOS DE GESTÃO PAS 99:2006. Especificação de requisitos comuns de sistemas de gestão como estrutura para a integração

SISTEMAS INTEGRADOS DE GESTÃO PAS 99:2006. Especificação de requisitos comuns de sistemas de gestão como estrutura para a integração Coleção Risk Tecnologia SISTEMAS INTEGRADOS DE GESTÃO PAS 99:2006 Especificação de requisitos comuns de sistemas de gestão como estrutura para a integração RESUMO/VISÃO GERAL (visando à fusão ISO 31000

Leia mais