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

Slides:



Advertisements
Apresentações semelhantes
AULA 02 PROGRAMAÇÃO LINEAR INTEIRA
Advertisements

Lógica de Predicados e Representação de Conhecimento
Aula T-09 – BCC202 Listas (Parte 1) Túlio Toffolo www. decom. ufop
Geometria Computacional Fecho Convexo II
Software Básico Silvio Fernandes
Inteligência Artificial
Inteligência Artificial
Amintas engenharia.
INTRODUÇÃO À LÓGICA DIGITAL
Linguagem de Programação IX Métodos de Ordenação
Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS
UNIVERSIDADE LUTERANA DO BRASIL COMUNIDADE EVANGÉLICA LUTERANA SÃO PAULO Reconhecida pela Portaria Ministerial nº 681 de 07/12/89 – DOU de 11/12/89 Campus.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Máquina de.
TEORIA DA COMPUTAÇÃO Parte III  Máquina de Turing
2 de Junho de 2005Conclusão1 Pedro Barahona DI/FCT/UNL Junho 2005.
Determinantes Determinante é um número real associado a uma matriz quadrada. Notação: det A ou |A|. Determinante de uma Matriz Quadrada de 1ª Ordem. Seja.
SISTEMAS DE EQUAÇÕES.
Série de Exercícios.
Inteligência Artificial
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
Árvores.
1 MergeSort Seja uma lista A de n elementos. O algoritmo consiste das seguintes fases Dividir A em 2 sub-listas de tamanho n/2 Conquistar: ordenar cada.
Arquivos Seqüenciais Inhaúma Neves Ferraz
HeapSort Filas de Prioridade – Heap
Linguagens Livres de Contexto
BCC101 – Matemática Discreta
Árvores Introdução e Aplicações Árvores de Busca Binária Fundamentos
Classificação e Pesquisa de Dados
Classificação (Ordenação) de dados
Organização da Memória Principal
Inteligência Artificial
Listas Encadeadas.
A Lógica das Sentenças Abertas Profa. Ana Florencia Aula 9
Indexação de Arquivos Página de rosto.
PIBID – SUBPROJETO DE MATEMÁTICA CERES CAICÓ EXPRESSÕES ARITMÉTICAS
Processamento da Informação BC-05045
Lógica do Sequenciamento das Operações
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Compressão de Textos Juliano Palmieri Lage.
Algoritmos e Estruturas de Dados II
SISTEMAS LINEARES.
Resolução de problemas por meio de busca
Salas de Matemática.
Estrutura de dados, pseudocódigo
Complexidade de algoritmos e Classificação (Ordenação) de dados
Arquitetura de computadores
Introdução a Programação
Busca com informação e exploração
AS PROFISSÕES DA ÁREA DA COMPUTAÇÃO
Introdução e Busca Cega
Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada a um dado pode ser qualquer.
Campus de Caraguatatuba Aula 8: Noções Básicas sobre Erros (2)
Campus de Caraguatatuba Aula 12: Sistemas de Equações Lineares (2)
Fundamentos de Programação
Controle Distribuído da Concorrência
Linguagem e Ambiente Scratch
Ceça Moraes – Introdução à Programação SI1
Campus de Caraguatatuba Aula 2: Somatório e Produtório
Campus de Caraguatatuba Licenciatura em Matemática Semestre de 2013
ALGORITMOS Intensivo Janeiro e Fevereiro de 2011
Tópicos em Sistemas Inteligentes
Fontes de Erros Aula 1 Introdução; Erros em processos numéricos;
Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br.
Introdução à complexidade de algoritmos Luiz Gonzaga da Silveira Junior.
1 Introdução aos Agentes Inteligentes Inventando Funções Heurísticas Flávia Barros.
Analise de Algoritmos e Notação Assintótica
Busca Competitiva Disciplina: Inteligência Artificial
Classificação (Ordenação) de dados. Roteiro Contextualização e definições sobre Classificação Métodos de Classificação de Dados.
Transcrição da apresentação:

1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP

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 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 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 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.)

6 Método de inserção (Compara cada par consecutivo; quando houver troca, compara para trás e troca se necessário)

7 Complexidade dos algoritmos Critério: vamos usar o número de comparações Seleção e bolha: (n-1) + (n-2) = 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 Um método mais eficiente: ordenação por árvore binária Composta por nós e arestas Raiz Folhas Pai   Filho Nível

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.

Ordenação por árvore binária

11 Nível Nós Total de nós m 2 m 2 m+1 -1

12 Nível Nós No.compar. 0 1 n n n n n 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 - ( n/2) = mn - (2(n/2) - 1)

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 Comparação com os métodos quadráticos

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 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) ) ) ) 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 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 Outras aplicações de árvores de dados (cont.) Árvores de busca Usadas em gerenciadores de bancos de dados, como o Access (“Árvores-B”)

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 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 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 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 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.