A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP www.ime.usp.br/~vwsetzer.

Apresentações semelhantes


Apresentação em tema: "1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP www.ime.usp.br/~vwsetzer."— Transcrição da apresentação:

1 1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP www.ime.usp.br/~vwsetzer

2 2 Tópicos importantes no ensino  O que é um computador  Usar o Computador a papel e o HIPO  O que é um algoritmo, como se desenvolve, complexidade, problemas intratáveis, etc.  Para isso, usar minha técnica de atividade usando ordenação (ver detalhes em meu artigo em meu site)

3 3 Introdução aos algoritmos  Regras da atividade  É possível examinar o conteúdo de um cartão, isto é, o número nele inscrito.  Se o número de um cartão estiver tapado, ele é considerado desconhecido. O operador não pode memorizar os conteúdos dos cartões.  No máximo 2 cartões podem ser examinados ao mesmo tempo para se ver seu número.  Os números de 2 cartões abertos podem ser comparados, determinado-se qual possui o menor número.  Dois cartões podem ser trocados de lugar.

4 4 Método de seleção (Compara o 1o. com cada um dos outros, troca quando ele for maior; depois compara o 2o. com cada um dos outros, etc.) 5 10 3 7 15 2 1 91 10 5 7 15 3 2 9 5 10 3 7 15 2 1 91 5 10 7 15 3 2 9 3 10 5 7 15 2 1 91 3 10 7 15 5 2 9 2 10 5 7 15 3 1 91 2 10 7 15 5 3 9 1 10 5 7 15 3 2 91 2 10 7 15 5 3 9 1 2 9 7 15 5 3 10

5 5 Método da bolha (Compara o 1o. com o 2o, troca se o 1o. for maior; depois compara o 2o. com 3o. e troca se for maior, etc.) 5 10 3 7 15 2 1 91 5 7 10 3 2 15 9 5 10 3 7 15 2 1 91 5 7 10 3 2 9 15 3 5 10 7 15 2 1 91 5 7 10 3 2 9 15 2 5 7 10 15 3 1 91 5 7 10 3 2 9 15 1 5 7 10 15 3 2 91 5 7 10 3 2 9 15 1 5 7 10 3 15 2 9 1 5 7 3 10 2 9 15

6 6 Método de inserção (Compara cada par consecutivo; quando houver troca, compara para trás e troca se necessário) 5 10 3 7 15 2 1 93 5 7 10 15 2 1 9 5 10 3 7 15 2 1 93 5 7 10 2 15 1 9 5 3 10 7 15 2 1 93 5 7 2 10 15 1 9 3 5 10 7 15 2 1 93 5 2 7 10 15 1 9 3 5 7 10 15 2 1 93 2 5 7 10 15 1 9 3 5 7 10 15 2 1 9 3 2 5 7 10 1 15 9

7 7 Complexidade dos algoritmos Critério: vamos usar o número de comparações Seleção e bolha: (n-1) + (n-2) +... + 1 = n(n-1)/2 Inserção: Inicialmente ordenada: n-1 Pior caso: n(n-1)/2 Valor assintótico de todos (n  ): n 2 /2 NOTAÇÃO: O(n 2 )

8 8 Um método mais eficiente: ordenação por árvore binária Composta por nós e arestas Raiz Folhas Pai   Filho Nível 0 1 2 3 4

9 9 Uma árvore binária é uma estrutura de dados em que cada nó tem no máximo 2 filhos e um só pai. ou (definição indutiva) Uma estrutura de dados de um só nó é uma árvore binária; dado um nó de uma árvore binária, a ele são associadas no máximo duas árvores binárias.

10 10 1 2 3 5 7 9 10 15 3 1 5 2 7 9 10 15 5 3 2 1 10 7 15 9 5 10 3 7 15 2 1 9 Ordenação por árvore binária

11 11 Nível Nós Total de nós 0 1 1 1 2 3 2 4 7 3 8 15 4 16 31......... m 2 m 2 m+1 -1

12 12 Nível Nós No.compar. 0 1 n-1 1 2 n-2 2 4 n-4 3 8 n-8 4 16 n-16......... m-1 2 m-1 n-n/2 m 2 m = n n-n=0 No. total de comparações: C = (n-1)+(n-2)+(n-4)+(n-8)+...+(n-n/2) Como há m termos (0 a m-1) a serem somados, C = mn - (1 + 2 + 4 + 8 +... + n/2) = mn - (2(n/2) - 1)

13 13 Isto é, C = mn - n + 1 Mas 2 m = n portanto log 2 2 m = log 2 n  m log 2 2 = log 2 n m = log 2 n O número total de comparações será então C = (log 2 n)n - n + 1 = n log 2 n - n + 1 isto é, assintoticamente, O(n log 2 n)

14 14 Comparação com os métodos quadráticos

15 15 Espaço requerido Em cada nível, temos n elementos; como são m = log 2 n níveis, o total de espaço requerido é de n log 2 n posições (cada uma contendo um número). Variação: usar apenas 2 linhas (ao fazer a intercalação, passa-se o resultado para a outra linha). Cada uma terá n elementos, de modo que o espaço requerido será 2n

16 16 Espaço requerido (cont.) Variação: 2 linhas com total de 2n posições (ao fazer a intercalação, passa-se o resultado para a outra linha) 1) 5 10 3 7 15 2 1 9 2) 5 10 3 7 2 15 1 9 1) 3 5 7 10 1 2 9 15 2) 1 2 3 5 7 9 10 15 Existem métodos com somente n posições (in-line merge). O método que se usa é dessa categoria, o Quicksort, que não usa intercalação.

17 17 Outras aplicações de árvores de dados Jogos Problema: como ir podando a árvore, pois ela cresce exponencialmente  estratégias (cálculo de parâmetros de vantagem conforme a posição) Situação atual do jogo Possíveis lances Possíveis situações seguintes

18 18 Outras aplicações de árvores de dados (cont.) Árvores de busca Usadas em gerenciadores de bancos de dados, como o Access (“Árvores-B”)

19 19 Tópicos importantes no ensino (cont.)  O que é um algoritmo?  Uma seqüência finita de passos, executados individualmente, cada um matematicamente bem definido  Normalmente, depois de executado um passo, o passo seguinte da seqüência será o próximo a ser executado  Um passo pode indicar uma mudança na ordem de execução, determinando qual passo da seqüência deve ser executado em seguida (desvio)  A execução deve terminar

20 20 Tópicos importantes no ensino (cont.)  Problemas causados pelo computador  Triviais: perda da privacidade, diminuição de empregos, etc.  Profundos: influência na capacidade e na maneira de pensar  pois força um pensamento lógico-simbólico, algorítmico e uma linguagem formal, em qualquer uso e exige enorme auto-controle  IMPRÓPRIO ANTES DOS 17 ANOS!!!  Mais profundos: influência na mentalidade  Nunca houve uma metáfora tão grande para a visão de mundo de que o ser humano é uma máquina

21 21 Tópicos importantes no ensino (cont.)  Problemas causados pelo computador (cont.)  Conseqüências da visão de mundo de que o ser humano é uma máquina: não fazem sentido  Liberdade  Responsabilidade  Dignidade  Individualidade (que transcende o corpo)  Compaixão (animais não têm!)  Amor altruísta

22 22 Tópicos importantes no ensino (cont.)  Conseqüências da visão de mundo de que o ser humano é uma máquina (cont.)  Causa de grande parte da miséria social e individual que está continuamente aumentando  Pensamentos de máquina (isto é, que podem ser introduzidos em uma máquina)  Abafamento dos sentimentos (especialmente compaixão)  Ações bestiais (inconscientes)

23 23 Tópicos importantes no ensino (cont.)  Solução: educar para a visão de mundo de que O SER HUMANO NÃO É UMA MÁQUINA! Ver meu artigo “I.A. - Inteligância Artificial ou Imbecilidade Automática? As máquinas podem pensar e ter sentimentos?” em meu site.


Carregar ppt "1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP www.ime.usp.br/~vwsetzer."

Apresentações semelhantes


Anúncios Google