Classes de Complexidade e NP-Completude

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

Download "Classes de Complexidade e NP-Completude"

Transcrição

1 Classes de Complexidade e NP-Completude E. C. Xavier e F. K. Miyazawa Instituto de Computação/Unicamp 8 de outubro de 2009 E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de / 19

2 Mais Sobre Complexidade Devemos estabelecer bem que problema estamos considerando durante provas de NP-Completude. Considere o problema 2CNF-SAT: Temos uma fórmula escrita na CNF onde cada cláusula possui até 2 literais. 2CNF-SAT = { f : f é uma fórmula na 2CNF e possui atribuição verdadeira } E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de / 19

3 Mais Sobre Complexidade Teorema Seja f uma fórmula na 2CNF. Existe um algoritmo polinomial que decide se f possui ou não atribuição verdadeira. Prova. Exercício. Com isso mostramos que 2CNF-SAT pertence a P. Mas considere o problema MAX-2CNF-SAT: MAX-2CNF-SAT = { f : f é uma fórmula na 2CNF e possui uma atribuição que deixa pelo menos k cláusulas verdadeiras } E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de / 19

4 Mais Sobre Complexidade Teorema MAX-2CNF-SAT é NP-Completo. Vamos fazer uma redução do problema Vertex-Cover (VC) para o MAX-2CNF-SAT. Seja G, k uma instância para o VC com n vértices. Para cada vértice x i de G criamos um literal x i. Também inserimos a cláusula x i na fórmula f. Para cada aresta (x i, x j ) de G acrescentamos n 3 cláusulas (x i x j ) na fórmula f. E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de / 19

5 Continuação da prova É claro que f pode ser construída em tempo polinomial. Consideramos a instância f, k para o MAX-2CNF-SAT onde k = n 3 E + n k. Ida: Seja V V uma cobertura de tamanho k. Para cada vértice x u V faça x u = 1 em f. Para os demais vértices, deixe os valores das variáveis em zero. Como V é uma cobertura então todas as cláusulas correspondentes as arestas serão satisfeitas. Além disso, das n cláusulas correspondentes aos vértices, k não serão satisfeitas. Portanto n 3 E + n k cláusulas são satisfeitas E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de / 19

6 Volta: Continuação da prova Suponha que pelo menos E n 3 + n k cláusulas sejam satisfeitas em f. Primeiramente note que é impossível satisfazer todas as cláusulas de arestas e vértices ao mesmo tempo. Note que se não satisfizermos alguma cláusula de aresta deixamos pelo menos n 3 cláusulas não satisfeitas. E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de / 19

7 Continuação da prova Logo para haver E n 3 + n k cláusulas satisfeitas, todas as cláusulas de aresta devem estar satisfeitas. Do total de n cláusulas de vértices, teremos n k satisfeitas, e portanto existem k literais x i com valores em 1. Os vértices correspondentes a estes literais devem formar um cobertura pois todas as cláusulas de arestas estão satisfeitas. E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de / 19

8 Complexidade de Espaço Da mesma forma como avaliamos algoritmos em termos de tempo, podemos avalia-los em termos de espaço utilizado. Definição O espaço (memória) utilizado por um algoritmo determinístico corresponde ao número de células (bits) que este acessa durante sua execução. Definição O espaço utilizado por um algoritmo não-determinístico é o número de células acessadas em um ramo mais curto de execução da árvore até o estado aceita. E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de / 19

9 Complexidade de Espaço Definição SPACE(f (n)) = {L : L é uma linguagem decidida deterministicamente em espaço O(f (n))} Definição NSPACE(f (n)) = {L : L é uma linguagem decidida não-deterministicamente em espaço O(f (n))} Podemos mostrar por exemplo que linguagens em NP gastam espaço polinomial. E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de / 19

10 Complexidade de Espaço Definição PSPACE são as linguagens que podem ser decididas por algoritmos determinísticos que usam espaço polinomial:. Definição PSPACE = k SPACE(n k ) para constante k NPSPACE são as linguagens que podem ser decididas por algoritmos não-determinísticos que usam espaço polinomial:. NPSPACE = k NSPACE(n k ) para constante k E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de / 19

11 Complexidade de Espaço Teorema Teorema de Savitch: Para qualquer função f : N R NSPACE(f (n)) SPACE(f 2 (n)) O teorema nos diz que as linguagens decididas por algoritmos não-determinísticos com f (n) de espaço podem ser decididas por algoritmos determinísticos com espaço f 2 (n). E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de / 19

12 Complexidade de Espaço Teorema PSPACE = NPSPACE. Prova. É claro que PSPACE NPSPACE. Se L NPSPACE então ela é decidida não deterministicamente em espaço O(n k ) para uma constante k. Pelo teo. de Savitch L pode ser decidida por alg. determinístico com espaço O(n 2k ) que é polinomial. E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de / 19

13 Complexidade de Espaço Sabemos que existe a seguinte relação entre as classes: P NP PSPACE = NPSPACE E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de / 19

14 Indecibilidade Até então temos nos preocupado com o esforço necessário que um algoritmo tem para resolver um problema. Mas existem problemas insolúveis por algoritmos como temos usado!!! Tais problemas são ditos indecidíveis pois não há algoritmo que decide o problema. Mesmo que o algoritmo não seja polinomial! E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de / 19

15 Indecibilidade Definição Problema da Parada: Dado uma string s e um algoritmo A, deve-se decidir se A aceita ou não s. Vamos mostrar que este problema é indecidível. Uma idéia que poderíamos ter é a de criar um algoritmo A que simule A sobre a entrada s. Mas não sabemos se A para ou não!! Quando decidir que A não aceita s? E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de / 19

16 Indecibilidade Teorema O problema da Parada é indecidível. Prova. Vamos fazer uma prova por contradição. Suponha que haja um algoritmo H que decida o problema. H( A, s ) = { aceita rejeita se A aceita s se A não aceita s E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de / 19

17 Continuação da Prova Vamos montar um outro algoritmo H 2 que usa H como subrotina. Este algoritmo recebe como parâmetro apenas um algoritmo e testa se o algoritmo aceita ou não o próprio algoritmo. { aceita se A aceita A (se H( A, A ) = 1) H 2 ( A ) = rejeita se A não aceita A (se H( A, A ) = 0) E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de / 19

18 Continuação da Prova Vamos considerar agora um novo algoritmo H 3 que faz o contrário de H 2. { aceita se A não aceita A (se H( A, A ) = 0) H 3 A ) = rejeita se A aceita A (se H( A, A ) = 1) O que acontece se passarmos o algoritmo H 3 como entrada para ele mesmo?? E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de / 19

19 Continuação da Prova Se passarmos H 3 como parâmetro para H 3 teremos: { aceita se H 3 não aceita H 3 H 3 ( H 3 ) = rejeita se H 3 aceita H 3 O que é uma contradição pois H 3 aceita ele próprio quando ele rejeita ele próprio! E. C. Xavier e F. K. Miyazawa (IC/Unicamp) Classes de Complexidade e NP-Completude 8 de outubro de / 19

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos Classes de Complexidades de Problemas Prof. Osvaldo Luiz de Oliveira Estas anotações devem ser complementadas por apontamentos em aula. Tempo polinomial Um algoritmo A, com entrada

Leia mais

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Seção 5.1 Problemas indecidíveis. Slides originais gentilmente cedidos pela Profa. Ariane Machado Lima

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Seção 5.1 Problemas indecidíveis. Slides originais gentilmente cedidos pela Profa. Ariane Machado Lima ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO Seção 5.1 Problemas indecidíveis Slides originais gentilmente cedidos pela Profa. Ariane Machado Lima 1 Na aula passada... A MT é indecidível (usando diagonalização)

Leia mais

Eduardo C. Xavier. 24 de fevereiro de 2011

Eduardo C. Xavier. 24 de fevereiro de 2011 Reduções Eduardo C. Xavier Instituto de Computação/Unicamp 24 de fevereiro de 2011 Eduardo C. Xavier (IC/Unicamp) Reduções 24 de fevereiro de 2011 1 / 23 Programação Linear (PL) Vimos que na tentativa

Leia mais

Análise e Complexidade de Algoritmos

Análise e Complexidade de Algoritmos Análise e Complexidade de Algoritmos Uma visão de Intratabilidade, Classes P e NP - redução polinomial - NP-completos e NP-difíceis Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com

Leia mais

Faculdade de Computação

Faculdade de Computação UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Teoria da Computação Professora : Sandra de Amo Solução da Lista de Exercícios n o 6 - Problemas Indecidiveis Exercicio 7-5.5 do

Leia mais

Complexidade de Algoritmos. Edson Prestes

Complexidade de Algoritmos. Edson Prestes Edson Prestes Um problema pode ser resolvido através de diversos algoritmos; O fato de um algoritmo resolver um dado problema não significa que seja aceitável na prática. Na maioria das vezes, a escolha

Leia mais

Faculdade de Computação

Faculdade de Computação UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Teoria da Computação Professora : Sandra Aparecida de Amo Lista de Exercícios n o 2 Exercícios sobre Modelos de Máquinas de Turing

Leia mais

Criptografia e Teoria da Complexidade

Criptografia e Teoria da Complexidade Denise Goya (dhgoya@ime.usp.br) Joel Uchoa (joelsu@ime.usp.br) DCC - IME - USP MAC 5722 - Complexidade Computacional Prof. José Augusto Ramos Soares Seminário - novembro/2008 Sumário Introdução 1 Introdução

Leia mais

Online Survivable Network Design

Online Survivable Network Design Fonte: Artigo de Gupta, Krishnaswamy e Ravi. 06 de abril de 2011, IC-Unicamp. Problema de Survivable Network Design Problema de construir uma rede com tolerância a falhas. Podemos considerar falhas nos

Leia mais

CI165 Introdução. André Vignatti. 31 de julho de 2014

CI165 Introdução. André Vignatti. 31 de julho de 2014 Introdução 31 de julho de 2014 Antes de mais nada... Os slides de 6 aulas (introdução, insertion sort, mergesort, quicksort, recorrências e limitantes de ordenação) foram originalmente feitos pelos Profs.

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

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Análise de Algoritmos Tempo polinomial Verificação de tempo polinomial Diane Castonguay diane@inf.ufg.br Instituto de Informática Universidade Federal de Goiás Tempo polinomial Um algoritmo é

Leia mais

Lógica Computacional

Lógica Computacional Lógica Computacional A Resolução como Regra de Inferência O Sistema de Dedução R P Coerência e Completude do Sistema R P 13 Novembro 2013 Lógica Computacional 1 Resolução - O algoritmo Horn-SAT é coerente

Leia mais

Algoritmos e Programação de Computadores

Algoritmos e Programação de Computadores Algoritmos e Programação de Computadores Algoritmos Estrutura Sequencial Parte 1 Professor: Victor Hugo L. Lopes Agenda Etapas de ação do computador; TDP Tipos de Dados Primitivos; Variáveis; Constantes;

Leia mais

Que tipo de problemas são insolúveis por computador? Todos eles são teóricos?? A resposta é não!

Que tipo de problemas são insolúveis por computador? Todos eles são teóricos?? A resposta é não! Que tipo de problemas são insolúveis por computador? Todos eles são teóricos?? A resposta é não! Por exemplo, se dermos como entrada para um processo de verificação da corretude de programas um programa

Leia mais

Computabilidade 2012/2013. Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto

Computabilidade 2012/2013. Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto Computabilidade 2012/2013 Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto Capítulo 1 Computabilidade 1.1 A noção de computabilidade Um processo de computação

Leia mais

Ementas das disciplinas:

Ementas das disciplinas: SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DO MATO GROSSO DO SUL UNIVERSIDADE FEDERAL DE GOIÁS DOUTORADO EM CIÊNCIA DA COMPUTAÇÃO Ementas das disciplinas: Álgebra para Computação: Ementa: Números inteiros:

Leia mais

Reduções de Problemas Difíceis

Reduções de Problemas Difíceis Reduções de Problemas Difíceis André Vignatti DINF- UFPR Reduções de Problemas Difíceis Na figura abaixo, esquema das reduções que vamos (tentar) ver. Todos problemas NP CIRCUIT SAT SAT 3SAT INDEPENDENT

Leia mais

Universidade Federal de Alfenas

Universidade Federal de Alfenas Universidade Federal de Alfenas Projeto e Análise de Algoritmos Aula 02 Um pouco da história da computação humberto@bcc.unifal-mg.edu.br Última aula... Fundamentos de Matemática; Medida do Tempo de Execução

Leia mais

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

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

Leia mais

Algoritmos de Aproximação Segundo Semestre de 2012

Algoritmos de Aproximação Segundo Semestre de 2012 Algoritmos de Aproximação Segundo Semestre de 2012 Aproximação p. 1 Bin Packing Dados: n itens ([n] = {1,...,n}) Dados: comprimento a[i] do item i (i = 1,...,n) Aproximação p. 2 Bin Packing Dados: n itens

Leia mais

Análise e Projeto de Algoritmos

Análise e Projeto de Algoritmos Análise e Projeto de Algoritmos Prof. Eduardo Barrére www.ufjf.br/pgcc www.dcc.ufjf.br eduardo.barrere@ice.ufjf.br www.barrere.ufjf.br Complexidade de Algoritmos Computabilidade: Um problema é computável

Leia mais

2. Execução do algoritmo de Huffman para construção de uma árvore binária (árvore de Huffman).

2. Execução do algoritmo de Huffman para construção de uma árvore binária (árvore de Huffman). MC202 - Estruturas de Dados IC UNICAMP Prof.: Neucimar J. Leite Monitor: Lucas Bueno Laboratório Nō 6 1 Códigos de Huffman Uma das aplicações interessantes de árvores binárias é a compactação de arquivos

Leia mais

Teoria da Complexidade

Teoria da Complexidade handout.pdf June 5, 0 Teoria da Complexidade Cid C. de Souza / IC UNICAMP Universidade Estadual de Campinas Instituto de Computação o semestre de 0 Revisado por Zanoni Dias Autor Prof. Cid Carvalho de

Leia mais

UM TEOREMA QUE PODE SER USADO NA

UM TEOREMA QUE PODE SER USADO NA UM TEOREMA QUE PODE SER USADO NA PERCOLAÇÃO Hemílio Fernandes Campos Coêlho Andrei Toom PIBIC-UFPE-CNPq A percolação é uma parte importante da teoria da probabilidade moderna que tem atraído muita atenção

Leia mais

Complexidade de Algoritmos. Edson Prestes

Complexidade de Algoritmos. Edson Prestes Edson Prestes O limite superior de complexidade de um problema refere-se ao melhor algoritmo que o resolve. nlog 2 n é um limite superior para o problema de classificação. O limite inferior de um problema

Leia mais

Introdução à classe de problemas NP- Completos

Introdução à classe de problemas NP- Completos Introdução à classe de problemas NP- Completos R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes FEUP, MIEIC, CAL, 2010/2011 1 Introdução Considerações Práticas Em alguns casos práticos, alguns

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

Aula 2 Variáveis. Precisamos armazenar os tipos de dados da aula anterior (inteiros, reais, literais e lógicos) em memória. Como fazer?

Aula 2 Variáveis. Precisamos armazenar os tipos de dados da aula anterior (inteiros, reais, literais e lógicos) em memória. Como fazer? Aula 2 Variáveis 1. Introdução Computadores precisam manipular informações. Por conseguinte, precisam armazená-las em sua memória. Para isso, usamos a abstração de variáveis. 2. Sistemas de numeração Explicar

Leia mais

9 Comandos condicionais

9 Comandos condicionais 9 Comandos condicionais Um comando condicional é uma instrução empregada quando se deseja criar um desvio, isto é, a opção de executar-se ou não um determinado trecho de código, segundo uma condição. Em

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

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Complemento de Grafos Mostre que para qualquer Grafo G com 6 pontos, G ou possui um triângulo Considere um vértice v de V(G). Sem perda de generalidade, podemos assumir v é adjacente a outros

Leia mais

Os limites da computação algorítmica

Os limites da computação algorítmica Capítulo 12 Os limites da computação algorítmica 12.1. Problemas que não podem ser resolvidos pelas MT. 12.2. Problemas indecidíveis para LRE 12.3. Problema da correspondência de Post 12.4. Problemas indecidíveis

Leia mais

Medindo a eficiência de algoritmos. - Relacionando os algoritmos e os problemas que estes resolvem

Medindo a eficiência de algoritmos. - Relacionando os algoritmos e os problemas que estes resolvem Medindo a eficiência de algoritmos - Escolha do modelo computacional - Recursos: Tempo, Memória - Relacionando os algoritmos e os problemas que estes resolvem - Computação de Funções - Problemas de otimização

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

5COP096 TeoriadaComputação

5COP096 TeoriadaComputação Sylvio 1 Barbon Jr barbon@uel.br 5COP096 TeoriadaComputação Aula 14 Prof. Dr. Sylvio Barbon Junior Sumário - Problemas Exponenciais - Algoritmos Exponenciais usando Tentativa e Erro - Heurísticas para

Leia mais

5COP096 TeoriadaComputação

5COP096 TeoriadaComputação Sylvio 1 Barbon Jr barbon@uel.br 5COP096 TeoriadaComputação Aula 13 Prof. Dr. Sylvio Barbon Junior Sumário - Problemas NP-Completo Algoritmos Não-deterministas; Classes NP-Completo e NP-Dificil; Teorema

Leia mais

Algoritmo e Programação

Algoritmo e Programação Algoritmo e Programação Professor: José Valentim dos Santos Filho Colegiado: Engenharia da Computação Prof.: José Valentim dos Santos Filho 1 Ementa Noções básicas de algoritmo; Construções básicas: operadores,

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

Problemas insolúveis. Um exemplo simples e concreto

Problemas insolúveis. Um exemplo simples e concreto Surge agora uma outra questão. Viemos buscando algoritmos para resolver problemas. No entanto, será que sempre seria possível achar esses algoritmos? Colocando de outra forma: será que, para todo problema,

Leia mais

Sistemas de Numerações.

Sistemas de Numerações. Matemática Profº: Carlos Roberto da Silva; Lourival Pereira Martins. Sistema de numeração: Binário, Octal, Decimal, Hexadecimal; Sistema de numeração: Conversões; Sistemas de Numerações. Nosso sistema

Leia mais

Lógica para a Programação - 1º semestre AULA 01 Prof. André Moraes

Lógica para a Programação - 1º semestre AULA 01 Prof. André Moraes Pág 4 Lógica para a Programação - 1º semestre AULA 01 Prof. André Moraes 1 APRESENTAÇÃO DA UNIDADE CURRICULAR A unidade curricular de Lógica para a programação tem como objetivo promover o estudo dos principais

Leia mais

Algoritmos e Programação _ Departamento de Informática

Algoritmos e Programação _ Departamento de Informática 5 TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. De um modo geral estas informações podem ser classificadas em dois tipos:

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

Resolução de problemas e desenvolvimento de algoritmos

Resolução de problemas e desenvolvimento de algoritmos SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Resolução de problemas e desenvolvimento de algoritmos Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo Sumário Análise e solução de

Leia mais

Máquinas de Turing. Juliana Kaizer Vizzotto. Disciplina de Teoria da Computação. Universidade Federal de Santa Maria

Máquinas de Turing. Juliana Kaizer Vizzotto. Disciplina de Teoria da Computação. Universidade Federal de Santa Maria Universidade Federal de Santa Maria Disciplina de Teoria da Computação Roteiro Definição Formal de Máquina de Turing Mais exemplos Definição Formal de Máquina de Turing Uma máquina de Turing é uma 7-upla,

Leia mais

Curso: Desenvolvendo Jogos 2d Com C# E Microsoft XNA. Mostrar como funciona a programação orientada a objetos

Curso: Desenvolvendo Jogos 2d Com C# E Microsoft XNA. Mostrar como funciona a programação orientada a objetos META Curso: Desenvolvendo Jogos 2d Com C# E Microsoft XNA Conteudista: André Luiz Brazil Aula 3: CRIANDO A CLASSE ESPAÇONAVE Mostrar como funciona a programação orientada a objetos OBJETIVOS Ao final da

Leia mais

Bem, produto interno serve para determinar ângulos e distâncias entre vetores e é representado por produto interno de v com w).

Bem, produto interno serve para determinar ângulos e distâncias entre vetores e é representado por produto interno de v com w). Produto Interno INTRODUÇÃO Galera, vamos aprender agora as definições e as aplicações de Produto Interno. Essa matéria não é difícil, mas para ter segurança nela é necessário que o aluno tenha certa bagagem

Leia mais

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis 1. TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos: As instruções, que

Leia mais

Processos de Desenvolvimento de Software

Processos de Desenvolvimento de Software Processos de Desenvolvimento de Software Gerenciamento de Projetos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e

Leia mais

Conceitos básicos da linguagem C

Conceitos básicos da linguagem C Conceitos básicos da linguagem C 2 Em 1969 Ken Thompson cria o Unix. O C nasceu logo depois, na década de 70. Dennis Ritchie, implementou-o pela primeira vez usando o sistema operacional UNIX criado por

Leia mais

O Problema da 3- Coloração de Grafos

O Problema da 3- Coloração de Grafos Otimização Combinatória O Problema da - Coloração de Grafos Guilherme Zanardo Borduchi Hugo Armando Gualdron Colmenares Tiago Moreira Trocoli da Cunha Prof.ª Marina Andretta Introdução ao Problema Problema

Leia mais

Projeto e Análise de Algoritmos. Profa. Juliana Kaizer Vizzotto. Projeto e Análise de Algoritmos - Aula 1

Projeto e Análise de Algoritmos. Profa. Juliana Kaizer Vizzotto. Projeto e Análise de Algoritmos - Aula 1 Projeto e Análise de Algoritmos Profa. Juliana Kaizer Vizzotto Projeto e Análise de Algoritmos - Aula 1 Roteiro Introdução Exemplo: ordenação Introdução Análise de Algoritmos Estudo teórico da performance

Leia mais

CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Objetivos Compreender os conceitos de lógica de programação e de algoritmos. Conhecer

Leia mais

Problema do Carteiro Chinês

Problema do Carteiro Chinês CENTRO DE CIÊNCIAS EXATAS DEPARTAMENTO DE COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Problema do Carteiro Chinês Alunos: André Ricardo Gonçalves Luiz Gustavo Andrade dos Santos Paulo Roberto Silla Profa. Linnyer

Leia mais

28 de agosto de 2015. MAT140 - Cálculo I - Derivação Impĺıcita e Derivadas de Ordem Superior

28 de agosto de 2015. MAT140 - Cálculo I - Derivação Impĺıcita e Derivadas de Ordem Superior MAT140 - Cálculo I - Derivação Impĺıcita e Derivadas de Ordem Superior 28 de agosto de 2015 Derivação Impĺıcita Considere o seguinte conjunto R = {(x, y); y = 2x + 1} O conjunto R representa a reta definida

Leia mais

Abaixo do Objeto WorkSheet temos a coleção Cells, que representa todas as células de uma planilha.

Abaixo do Objeto WorkSheet temos a coleção Cells, que representa todas as células de uma planilha. Aula 1 O modelo de objetos do Excel APPLICATION É o próprio Excel. Temos diversas propriedades e métodos importantes nesse objeto. Destacamos dois exemplos: Application.DisplayAlerts Se for true, o Excel

Leia mais

Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados)

Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados) Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados) Os algoritmos são descritos em uma linguagem chamada pseudocódigo. Este nome é uma alusão à posterior implementação

Leia mais

Nome: Calcule a probabilidade de que os dois alunos sorteados falem Inglês e. Análise Quantitativa e Lógica Discursiva - Prova B

Nome: Calcule a probabilidade de que os dois alunos sorteados falem Inglês e. Análise Quantitativa e Lógica Discursiva - Prova B 1. Uma escola irá sortear duas pessoas dentre os seus 20 melhores alunos para representá-la em um encontro de estudantes no Canadá, país que possui dois idiomas oficiais, Inglês e Francês. Sabe-se que,

Leia mais

MC-102 Aula 01. Instituto de Computação Unicamp

MC-102 Aula 01. Instituto de Computação Unicamp MC-102 Aula 01 Introdução à Programação de Computadores Instituto de Computação Unicamp 2015 Roteiro 1 Por que aprender a programar? 2 Hardware e Software 3 Organização de um ambiente computacional 4 Algoritmos

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

O Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48

O Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48 Conteúdo 1 Princípios de Contagem e Enumeração Computacional Permutações com Repetições Combinações com Repetições O Problema do Troco Principio da Casa dos Pombos > Princípios de Contagem e Enumeração

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis. 3. Tabelas de Hash As tabelas de hash são um tipo de estruturação para o armazenamento de informação, de uma forma extremamente simples, fácil de se implementar e intuitiva de se organizar grandes quantidades

Leia mais

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO Capítulo 1 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO 1.1 Histórico de Linguagens de Programação Para um computador executar uma dada tarefa é necessário que se informe a ele, de uma maneira clara, como ele

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

ALP Algoritmos e Programação. . Linguagens para Computadores

ALP Algoritmos e Programação. . Linguagens para Computadores ALP Algoritmos e Programação Iniciação aos computadores. Linguagens para Computadores. Compiladores, Interpretadores. Ambientes de Programação 1 Linguagens para Computadores. Linguagem binária: Dispositivos

Leia mais

6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto

6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto Capítulo 6. Autômatos com Pilha 6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto Nos exemplos da seção anterior, vimos que os autômatos com pilha existem para

Leia mais

Introdução às Linguagens de Programação

Introdução às Linguagens de Programação Introdução às Linguagens de Programação Histórico de Linguagens de Programação O computador não faz nada sozinho Precisamos informar, de forma clara, como ele deve executar as tarefas Ou seja, o computador

Leia mais

Estruturas Discretas INF 1631

Estruturas Discretas INF 1631 Estruturas Discretas INF 1631 Thibaut Vidal Departamento de Informática, Pontifícia Universidade Católica do Rio de Janeiro Rua Marquês de São Vicente, 225 - Gávea, Rio de Janeiro - RJ, 22451-900, Brazil

Leia mais

3 Classes e instanciação de objectos (em Java)

3 Classes e instanciação de objectos (em Java) 3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem

Leia mais

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.1. Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.1. Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005. Agenda Análise e Técnicas de Algoritmos Jorge Figueiredo Conceitos básicos Classes de de Complexidade P NP Redução Problemas NPC NP-Completude Introdução Existem alguns problemas computacionais que são

Leia mais

2 Problema das p-medianas

2 Problema das p-medianas 2 Problema das p-medianas 2.1 Definição O PMNC é definido da seguinte forma: determinar quais p facilidades (p m, onde m é o número de pontos onde podem ser abertas facilidades) devem obrigatoriamente

Leia mais

Agenda. Complexidade Não Determinista A classe NP. A classe Co-NP Reduções de tempo polinomial. Definida por. Exemplos em:

Agenda. Complexidade Não Determinista A classe NP. A classe Co-NP Reduções de tempo polinomial. Definida por. Exemplos em: A Classe NP Agenda Complexidade Não Determinista A classe NP Definida por aceitação em tempo polinomial por NTM s instâncias positivas com provas de tamanho polinomial aceitação por verificadores em tempo

Leia mais

Princípio da Casa dos Pombos I

Princípio da Casa dos Pombos I Programa Olímpico de Treinamento Curso de Combinatória - Nível 2 Prof. Bruno Holanda Aula 7 Princípio da Casa dos Pombos I O princípio da casa dos pombos também é conhecido em alguns países (na Rússia,

Leia mais

UNIVERSIDADE FEDERAL DE CAMPINA GRANDE - UFCG CENTRO DE ENGENHARIA ELÉTRICA E INFORMÁTICA - CEEI COPIN. Monografia

UNIVERSIDADE FEDERAL DE CAMPINA GRANDE - UFCG CENTRO DE ENGENHARIA ELÉTRICA E INFORMÁTICA - CEEI COPIN. Monografia UNIVERSIDADE FEDERAL DE CAMPINA GRANDE - UFCG CENTRO DE ENGENHARIA ELÉTRICA E INFORMÁTICA - CEEI COORDENAÇÃO DE PÓS-GRADUAÇÃO EM INFORMÁTICA - COPIN Monografia COMPUTAÇÃO PROBABILÍSTICA: MÁQUINA DE TURING

Leia mais

CÁLCULO DE ZEROS DE FUNÇÕES REAIS

CÁLCULO DE ZEROS DE FUNÇÕES REAIS 15 CÁLCULO DE ZEROS DE FUNÇÕES REAIS Um dos problemas que ocorrem mais frequentemente em trabalhos científicos é calcular as raízes de equações da forma: f() = 0. A função f() pode ser um polinômio em

Leia mais

Capítulo V: Derivação 137

Capítulo V: Derivação 137 Capítulo V: Derivação 37 Esboço de gráicos: Para esboçar o gráico de uma unção deve-se sempre que possível seguir as seguintes etapas: Indicar o domínio; Determinar os zeros (caso eistam); Estudar a paridade;

Leia mais

Simulação Estocástica

Simulação Estocástica Simulação Estocástica O que é Simulação Estocástica? Simulação: ato ou efeito de simular Disfarce, fingimento,... Experiência ou ensaio realizado com o auxílio de modelos. Aleatório: dependente de circunstâncias

Leia mais

Computação Eletrônica

Computação Eletrônica Computação Eletrônica Introdução ovsj@cin.ufpe.br Observação: Material da Disciplina Computação Eletrônica CIN/UFPE. Computador O que diferencia o computador de outras máquinas? Comportamento variável;

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

3/19/2014. Compilador DEV C++ ENGENHARIAS LÓGICA DE PROGRAMAÇÃO Henry Lubanco/ Joelio Piraciaba

3/19/2014. Compilador DEV C++ ENGENHARIAS LÓGICA DE PROGRAMAÇÃO Henry Lubanco/ Joelio Piraciaba Compilador DEV C++ 101 Compilador DEV C++ 102 1 Compilador DEV C++ Compilar (Ctrl+F9) Executar (Ctrl+F10) Compilar e executar (F9) 103 Compilador DEV C++ Escolher a pasta Escolher o nome e o tipo de arquivo

Leia mais

Introdução Processamento Paralelo

Introdução Processamento Paralelo Introdução Processamento Paralelo Esbel Tomás Valero Orellana Bacharelado em Ciência da Computação Departamento de Ciências Exatas e Tecnológicas Universidade Estadual de Santa Cruz evalero@uesc.br 23

Leia mais

Teoria dos Grafos. Cobertura, Coloração de Arestas, Emparelhamento

Teoria dos Grafos. Cobertura, Coloração de Arestas, Emparelhamento Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Silvio A. de Araujo Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br, saraujo@ibilce.unesp.br Cobertura, Coloração

Leia mais

Programação: Tipos, Variáveis e Expressões

Programação: Tipos, Variáveis e Expressões Programação de Computadores I Aula 05 Programação: Tipos, Variáveis e Expressões José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/56 Valores Valor é uma entidade

Leia mais

Algoritmos Computacionais ( Programas )

Algoritmos Computacionais ( Programas ) Algoritmos Computacionais ( Programas ) A partir deste tópico, consideramos a utilização do universo Computacional na solução de problemas. Para tanto devemos lembrar que a transposição de problemas do

Leia mais

Demonstração de uma idéia, assunto, produto, serviço e etc; Podendo ser uma palestra, reunião, workshop entre outros eventos.

Demonstração de uma idéia, assunto, produto, serviço e etc; Podendo ser uma palestra, reunião, workshop entre outros eventos. Demonstração de uma idéia, assunto, produto, serviço e etc; Para duas ou mais pessoas; Podendo ser uma palestra, reunião, workshop entre outros eventos. Planejar Sempre! Para transmitir segurança você

Leia mais

1 Módulo ou norma de um vetor

1 Módulo ou norma de um vetor Álgebra Linear I - Aula 3-2005.2 Roteiro 1 Módulo ou norma de um vetor A norma ou módulo do vetor ū = (u 1, u 2, u 3 ) de R 3 é ū = u 2 1 + u2 2 + u2 3. Geometricamente a fórmula significa que o módulo

Leia mais

Casamento de Cadeias. Introdução. Introdução. Estrutura de Dados. Cadeia de caracteres: sequência de elementos denominados caracteres.

Casamento de Cadeias. Introdução. Introdução. Estrutura de Dados. Cadeia de caracteres: sequência de elementos denominados caracteres. Introdução de Cadeias Estrutura de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM 1 Cadeia

Leia mais

Arquitetura e Organização de Computadores Aula 5 Consolidando Conhecimentos de Desempenho e Resumindo Prof. Julio Saraçol

Arquitetura e Organização de Computadores Aula 5 Consolidando Conhecimentos de Desempenho e Resumindo Prof. Julio Saraçol Universidade Federal do Pampa Campus-Bagé Arquitetura e Organização de Computadores Aula 5 Consolidando Conhecimentos de Desempenho e Resumindo Prof. Julio Saraçol juliosaracol@gmail.com Slide1 AULA 5:

Leia mais

PC Fundamentos Revisão 4

PC Fundamentos Revisão 4 exatasfepi.com.br PC Fundamentos Revisão 4 André Luís Duarte...mas os que esperam no Senhor renovarão as suas forças; subirão com asas como águias; correrão, e não se cansarão; andarão, e não se fatigarão.is

Leia mais

Avaliação de Desempenho

Avaliação de Desempenho Avaliação de Desempenho Todos nós estamos habituados a avaliar nosso desempenho. Isso se inicia principalmente na vida escolar, com as provas e os testes. Uma avaliação considera quanto da prova se respondeu

Leia mais

Linguagem Lógica Prolog

Linguagem Lógica Prolog Linguagem Lógica Prolog Linguagens de Programação Departamento de Computação Universidade Federal de Sergipe Conteúdo O que é diferente na Programação Lógica Cláusulas, Fatos, Regras e Predicado Objetos

Leia mais

TEORIA DE COMPLEXIDADE

TEORIA DE COMPLEXIDADE TEORIA DE COMPLEXIDADE Fundamentos: classes P e N P Mauricio Ayala-Rincón Grupo de Teoria da Computaç~ao http://ayala.mat.unb.br/tcgroup Instituto de Ciências Exatas Universidade de Brasília, Brasília

Leia mais

Karine Nayara F. Valle. Métodos Numéricos de Euler e Runge-Kutta

Karine Nayara F. Valle. Métodos Numéricos de Euler e Runge-Kutta Karine Nayara F. Valle Métodos Numéricos de Euler e Runge-Kutta Professor Orientador: Alberto Berly Sarmiento Vera Belo Horizonte 2012 Karine Nayara F. Valle Métodos Numéricos de Euler e Runge-Kutta Monografia

Leia mais

MRP - Material Requirement Planning

MRP - Material Requirement Planning MS715 - Planejamento e Controle da Produção Prof. Moretti MRP - Material Requirement Planning Planejamento das Necessidades de Materiais( do inglês, MRP = Material Requirement Planning) é uma técnica a

Leia mais

Algoritmos e Complexidade para Dois Jogos de Blocos

Algoritmos e Complexidade para Dois Jogos de Blocos Algoritmos e Complexidade para Dois Jogos de Blocos André Castro Ramos 1, Rudini Sampaio 1 Departamento de Computação, Universidade Federal do Ceará {andrecr,rudini}@lia.ufc.br Resumo É de conhecimento

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

Paulo Guilherme Inça. 7 de dezembro de 2016

Paulo Guilherme Inça. 7 de dezembro de 2016 Coloração de grafos é NP-Difícil Paulo Guilherme Inça 7 de dezembro de 2016 Sumário 1 Introdução 1 2 O Problema da Coloração de Grafos 2 3 3-Coloração é NP-Completo 3 4 Generalizações e Restrições 6 5

Leia mais

Algoritmos e Estruturas de Dados 2

Algoritmos e Estruturas de Dados 2 Algoritmos e Estruturas de Dados 2 Unidade 1: Árvores binárias Rafael Beserra Gomes Universidade Federal do Rio Grande do Norte Material compilado em 21 de fevereiro de 201. Licença desta apresentação:

Leia mais