Aula 10: Tratabilidade

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "Aula 10: Tratabilidade"

Transcrição

1 Teoria da Computação DAINF-UTFPR Aula 10: Tratabilidade Prof. Ricardo Dutra da Silva Na aula anterior discutimos problemas que podem e que não podem ser computados. Nesta aula vamos considerar apenas problemas que podem ser computados e nosso interesse é saber quão rápido a computação é realizada. Trataremos, portanto, de problemas decidíveis que podem ser computados de forma eficiente e problemas decidíveis que não podem ser computados de forma eficiente. Nossa definição de tempo para execução de um algoritmo será considerada em termos de passo realizados por uma Máquina de Turing. Definição O tempo de processamento de uma Máquina de Turing M sobre uma string w é o número de passos realizados pela máquina antes de parar. Se a máquina não parar, o tempo de processamento é infinito. Definição A complexidade de tempo de uma Máquina de Turing M é a função t(n) cujo valor é o tempo de processamento máximo sobre todas as entradas de tamanho n. Exemplo 10.1 Considere a Máquina de Turing para a linguagem L = {0 i 1 i i 1}. Para decidir L a máquina pode fazer as seguintes operações: 1. Percorre a fita e se um 0 é encontrado à direita de um 1 a máquina pára em um estado não final. 2. Iterativamente corta um único 0 e um único 1. Se sobrar algum 0 ou 1 não cortado, a máquina pára em um estado não final. Caso contrário, a máquina pára em um estado final. Dada uma string w de entrada com tamanho w = n, no passo 1, a máquina percorre no máximo todos os elementos de w. São realizadas n operações no máximo. O passo dois realiza no máximo n operações para cada iteração. Cada iteração corta dois elementos, um 0 e um 1. Portanto, são realizadas n n2 iterações que contabilizam 2 2 operações. A complexidade da máquina é então no máximo t(n) = n + n2 2, ou seja, O(n2 ). A linha divisória de eficiência é basicamente estabelecida entre algoritmos que podem ser computados em tempo polinomial e algoritmos que exigem tempo exponencial. Problemas 1

2 2 Aula 10: Tratabilidade que não possuem um algoritmo polinomial são chamados intratáveis enquanto aqueles que possuem são chamados tratáveis. Porque a divisão entre tempos polinomial e exponencial? Como um exemplo prático, considere funções como n 3 e 2 n, que surgem com frequência para descrever a complexidade de tempo para algoritmos. Para uma entrada de tamanho razoável, como n = 1000, temos n 3 igual a um bilhão. Ou seja, uma máquina com complexidade n 3 realizaria um bilhão de passos antes de parar. Uma máquina com complexidade exponencial realizaria operações. Para ter uma ideia do que esse número significa, o número máximo de átomos no universo é estimado em algo próximo a Algoritmos exponenciais são raramente úteis, uma vez que para entradas comuns esses algoritmos podem levar um tempo computacional que possivelmente o universo não gostaria de esperar. Definição Seja T : N R +. A classe de complexidade de tempo T IME(t(n)) é definida como o conjunto de todas as linguagens que são decidíveis por uma Máquina de Turing com tempo de processamento O(t(n)). A linguagem do Exemplo 10.1 pertence à classe de complexidade T IME(n 2 ). No entanto, é possível obter algoritmos assintoticamente melhores que O(n 2 ) para a linguagem. Em uma Máquina de Turing com uma fita é possível obter uma algoritmo O(n log n) e numa máquina com duas fitas é possível obter um algoritmo O(n). Esses resultados dependem do modelo usado. No entanto, o modelo não afeta tanto assim a complexidade. A diferença é polinomial e estamos interessados em classificar problemas em polinomiais e exponenciais, tratáveis ou intratáveis. Vamos definir a primeira classe de problemas que nos interessa. Definição P é o conjunto de linguagens que são decidíveis em tempo polinomial em uma Máquina de Turing determinística com uma fita. P = k T IME(n k ). Exemplo 10.2 Uma árvore geradora é um subconjunto de arestas sem ciclos que conectam todos os nodos de um grafo. Uma árvore geradora mínima é uma árvore geradora com o menor total de peso de arestas entre todas as árvores geradoras. O algoritmo de Kruskal computa uma árvore geradora mínima da seguinte forma: 1. Cada nodo do grafo é mantido em uma estrutura de componente conexa. Inicialmente nenhuma aresta é selecionada e cada nodo forma uma componente conexa.

3 Aula 10: Tratabilidade 3 2. A cada iteração, a aresta de menor custo é recuperada. Se a aresta une nodos em componentes conexas diferentes, seleciona a aresta para a árvore geradora e une as componentes conexas dos dois nodos Considere o grafo abaixo Inicialmente é escolhida a aresta (1,3). Depois a aresta (2,3). A aresta (1,2) é testada na sequência, mas não é escolhida pois formaria um ciclo. A aresta (3,4) é então escolhida. A última aresta testada é a (2,4), mas esta também forma ciclo. Neste momento temos a árvore geradora mínima mostrada abaixo. Com uma estrutura union-find o algoritmo pode ser implementado em tempo O( V + E log E ) Vamos desenvolver um algoritmo mais simples que pode ser implementado em uma Máquina de Turing. Manteremos uma estrutura do tipo vetor com tamanho V em que cada posição, relacionada com um vértice específico, vai armazenar a componente conexa de um vértice. O algoritmo computa os passos a seguir. 1. A aresta de menor custo é encontrada em tempo O( E ) percorrendo todas as arestas. 2. As componentes conexas dos vértices da aresta de menor custo são descobertas percorrendo o vetor auxiliar em tempo O( V ). 3. Se as componentes são diferentes, todos os vértices que estão na mesma componente são marcados para a componente de um dos vértices. Isso pode é feito em O( V ).

4 4 Aula 10: Tratabilidade Fazendo o processo para todas as arestas obtemos um tempo total de O( E ( E + V )) que é polinomial. Quando usamos MT s é mais fácil tratar problemas como linguagens, como problemas de decisão. O problema de decisão para árvores geradoras mínimas pode ser pensado como: Dado um grafo G e um peso W, existe uma árvore geradora mínima de peso W em G?. Este problema parece mais fácil que o problema de achar uma resposta. Mas estamos interessados em saber o quão difícil é um problema. Neste caso, se o problema da linguagem for difícil, o problema de encontrar a resposta será tão ou mais difícil. A linguagem do problema das árvores geradoras mínimas é P agm = {(G, W ) G é um grafo com uma árvore geradora mínima de custo máximo W }. Se W 40, o grafo do exemplo anterior pertence à linguagem. Outra consideração importante é quanto ao tamanho da entrada (da string) na MT. Pensamos em tamanhos de grafos como o número de vértices mais o número de arestas. Em uma MT o grafo de entrada dever ser codificado como uma string. Essa representação não pode ser bem maior do que um fator polinomial. Se a codificação transformasse um grafo numa string com tamanho exponencialmente maior do que o número de vértices e arestas, o tempo de computação polinomial já seria violado. Felizmente, em geral, é possível obter uma codificação cujo tamanho não é maior do que um fator polinomial. Quando usamos uma codificação binária, seu tamanho até aproxima-se mais do que seria a codificação real em bits usada por um computador. Exemplo 10.3 Poderíamos representar o grafo para o problema da árvore mínima geradora da seguinte forma. 1. Os vértices são numerados de 1 a V. 2. O código inicia com o valor binário de V separado por vírgula do peso W em binário. 3. Para cada aresta existente (i, j), codificamos como (enc(i), enc(j), enc(w)), onde a função enc(.) codifica o valor binário respectivo para os vértices e peso. Para o grafo de exemplo, com limite W = 40, teríamos a codificação: 100, (1, 10, 1111)(1, 11, 1010)(10, 11, 1100)(10, 100, 10100)(11, 100, 10010).

5 Aula 10: Tratabilidade 5 Vimos que a classe P é formada por linguagens para as quais existe um algoritmo de tempo polinomial que as aceite. No entanto, existem linguagens para as quais não são conhecidos algoritmos de tempo polinomial. Vamos analisar o problema do Caixeiro Viajante. A entrada para este problema é um grafo, com pesos nas arestas, e um valor limite de custo W. A pergunta do problema é: Existe um Ciclo Hamiltoniano de peso máximo W em G?. Um Ciclo Hamiltoniano é uma sequência de arestas que conectam todos os vértices sem repetir vértices. Em geral, pensamos no problema como um vendedor que precisa visitar um conjunto de cidades percorrendo estradas que as conectam sem repetir cidades, a não ser a primeira que deve ser também a última. A linguagem do problema é então P cv = {(G, W ) G é um grafo com um ciclo hamiltoniano de custo máximo W }. Exemplo 10.4 O grafo da figura abaixo possui um ciclo hamiltoniano, dado pela sequência de vértices 1, 2, 4, 3, 1. O peso total deste ciclo é 63. Se W 63, a resposta para a pergunta do problema é sim Por força bruta é possível descrever um algoritmo muito simples para o problema. Basta testa todas as permutações dos vértices de um grafo. Para cada permutação testamos se existem vértices repetidos que não sejam os finais. Isso leva tempo O( V ). Como existem O( V!) permutações, o algoritmo computa aproximadamente V! vezes V operações, ou seja, tem complexidade O( V!). Isso é ainda pior do que tempo exponencial. É possível escrever algoritmos mais espertos, que evitem certas operações. No entanto, parece que não importa o que fizermos, um número exponencial de ciclos ainda precisa ser verificado antes de concluir se existe ou não um Ciclo Hamiltoniano. Ninguém conseguiu produzir um algoritmo com tempo menor do que exponencial (no pior caso). Mesmo que não seja conhecido um algoritmo polinomial para o problema do Caixeiro

6 6 Aula 10: Tratabilidade Viajante, o problema apresenta uma propriedade importante para entender sua complexidade: é possível verificar que existe um Ciclo Hamiltoniano se ele for descoberto, ou seja, de alguma forma o ciclo é dado. Definição Um verificador para uma linguagem L é um algoritmo V tal que L = {w V aceita (w, c) para alguma string c}. O tempo de V é medido em termos do tamanho de w. Portanto, um verificador de tempo polinomial executa em tempo polinomial no tamanho de w. Uma linguagem é polinomialmente verificável se ela tem um verificador de tempo polinomial. A string c do verificador é uma informação adicional para verificar que uma string w pertence a L. Essa informação é chamada de certificado de que w pertence a L. Para verificadores polinomiais, o certificado necessariamente tem que ter tamanha polinomial em relação ao tamanho de w. Caso tivesse tamanho exponencial o verificador não seria mais polinomial porque o verificador neste caso seria limitado pelo tempo de acesso (leitura, processamento) ao certificado. Exemplo 10.5 Para o problema do Caixeiro Viajante, o certificado para uma string (G, W ) seria um ciclo hamiltoniano em G. Para verificar o certificado basta percorrê-lo e realizar as seguintes operações: 1. Para todo vértice do certificado marca o vértice correspondente do grafo. 2. Verifica se existem as arestas entre dois vértices subsequentes do certificado. 3. Verifica se o custo total das arestas é no máximo W. 4. Se todos os vértices foram marcados no passo 1 e existem as arestas verificadas no passo 2, então o certificado é um Ciclo Hamiltoniano. Todos os passo podem ser feitos em O( V ). Logo o verificador tem tempo polinomial. Definição tempo polinomial. A classe N P é formada por linguagens que possuem um verificador de O nome N P vem de uma definição alternativa para essa classe de problemas. Definição Uma linguagem L pertence à classe N P (polinomial não-determinística), se existe uma Máquina de Turing Não-Determinística M e uma complexidade de tempo

7 Aula 10: Tratabilidade 7 polinomial t(n) tal que L = L(M) e com uma entrada de tamanho n não existem caminhos com mais de t(n) operações em M. Exemplo 10.6 Uma NTM que decide o problema do caixeiro viajante em tempo polinomial: 1. Escolhe uma lista de números p 1, p 2,.., p m, p 1 onde cada uma dos números é um nodo de G. 2. Checa por repetições nos nodos p 2,..., p m. Se achar rejeita. 3. Checa se o custo é menor que W. Se não for rejeita. 4. Checa se cada par de nodos subsequentes formam uma aresta em G. Se não formar rejeita. 5. Se passou em tudo responde sim. A máquina não-determinística consegue escolher todas as possíveis listas de vértices no passo 1 e executá-las em paralelo. Cada um dos ramos executados leva tempo polinomial pois todas as etapas do algoritmo fazem no máximo um número polinomial de operações. Definição Seja T : N R +. A classe de complexidade de tempo NT IME(t(n)) é definida como o conjunto de todas as linguagens que são decidíveis por uma NTM com tempo de processamento O(t(n)). Definição N P é o conjunto de linguagens que são decidíveis em tempo polinomial em uma máquina de Turing Não-Determinística, N P = k NT IME(n k ). Exemplo 10.7 Uma clique de um grafo é um subgrafo que tem todos os vértices conectados por uma aresta. Uma k-clique é uma clique que contém k vértices. O grafo do exemplo abaixo possui uma 5-clique.

8 8 Aula 10: Tratabilidade O problema da clique consiste em encontrar, em um grafo G, uma clique de tamanho k P C = {(G, k) G contém uma k-clique } O problema da clique pertence a N P e podemos verificar isso usando uma clique c como certificado e construindo o verificador V com entrada ((G, k), c): 1. Testa se c é um conjunto de k nós em G; 2. Testa se G contém todas as arestas conectando nós em c. 3. Se ambos os testes são verdadeiros responde sim, senão responde não. Ou podemos provar por uma MT não-determinística M: 1. Seleciona não-deterministicamente um subconjunto de k nodos em G como c. 2. Testa se G contém todas as arestas conectando nós em c. 3. Se aceita responde sim, se não aceita responde não. Agora sabemos que P contém os problemas que podem ser testados em tempo polinomial enquanto N P contém os problemas que podem ser verificados em tempo polinomial. Uma MT determinística é um MT não-determinística que não tem escolha de movimentos, portanto a classe P N P. No entanto, não sabemos se tudo o que pode ser feito em tempo polinomial por um MT não-determinística pode também ser feito por uma MT determinística em tempo polinomial. Essa é a grande questão da Teoria da Computação: P = N P?.

Aula 9: Máquinas de Turing

Aula 9: Máquinas de Turing Teoria da Computação Aula 9: Máquinas de Turing DAINF-UTFPR Prof. Ricardo Dutra da Silva Uma máquina de Turing é uma máquina de estados finitos que pode mover o cabeçote em qualquer direção, ler e manipular

Leia mais

Aula 10: Decidibilidade

Aula 10: Decidibilidade Teoria da Computação Segundo Semestre, 2014 Aula 10: Decidibilidade DAINF-UTFPR Prof. Ricardo Dutra da Silva Definição 10.1. Um problema de decisão P é um conjunto de questões para as quais as respostas

Leia mais

Teoria dos Grafos Aula 2

Teoria dos Grafos Aula 2 Teoria dos Grafos Aula 2 Aula passada Logística, regras Objetivos Grafos, o que são? Formando pares Encontrando caminhos Aula de hoje Outro problema real Definições importantes Algumas propriedades Grafo

Leia mais

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações?

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações? 8/0/06 GRAFOS Prof. André Backes Definição Como representar um conjunto de objetos e as suas relações? Diversos tipos de aplicações necessitam disso Um grafo é um modelo matemático que representa as relações

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Grafos Enumeração de Passeios/Caminhos O processo associado à enumeração de caminhos de um grafo/dígrafo é semelhante ao processo de contagem com a diferença de que usaremos uma matriz de

Leia mais

5COP096 TeoriadaComputação

5COP096 TeoriadaComputação Sylvio 1 Barbon Jr barbon@uel.br 5COP096 TeoriadaComputação Aula 12 Prof. Dr. Sylvio Barbon Junior Sumário - Árvore Geradora Mínima - Teorema pare reconhecer arestas seguras; - Algoritmo de Prim; - Algoritmo

Leia mais

Teoria dos Grafos Aula 6

Teoria dos Grafos Aula 6 Teoria dos Grafos Aula 6 Aula passada Busca em grafos Busca em largura (BFS Breadth First Search) Propriedades Aula de hoje BFS implementação Complexidade Busca em profundidade (DFS) Conectividade, componentes

Leia mais

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano CÁLCULO NUMÉRICO Profa. Dra. Yara de Souza Tadano yaratadano@utfpr.edu.br Aulas 5 e 6 03/2014 Erros Aritmética no Computador A aritmética executada por uma calculadora ou computador é diferente daquela

Leia mais

Grafos Hamiltonianos e o Problema do Caixeiro Viajante. Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá

Grafos Hamiltonianos e o Problema do Caixeiro Viajante. Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá Grafos Hamiltonianos e o Problema do Caixeiro Viajante Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá Grafo Hamiltoniano Definição: Um circuito hamiltoniano em um

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

Teoria dos Grafos Aula 2

Teoria dos Grafos Aula 2 Teoria dos Grafos Aula 2 Aula passada Logística Objetivos Grafos, o que são? Formando pares Aula de hoje Mais problemas reais Definições importantes Algumas propriedades Objetivos da Disciplina Grafos

Leia mais

Teoria da computabilidade Indecidíveis Decidíveis

Teoria da computabilidade Indecidíveis Decidíveis Bacharelado em Ciência da Computação Disciplina: Algoritmos e Estruturas de Dados I Professor: Mário Luiz Rodrigues Oliveira Teoria da computabilidade Indecidíveis Decidíveis Teoria da complexidade Intratáveis:

Leia mais

2. A figura a seguir ilustra várias relações binárias em Quais são funções? Dentre as que são funções, quais as sobrejetivas? E quais as injetivas?

2. A figura a seguir ilustra várias relações binárias em Quais são funções? Dentre as que são funções, quais as sobrejetivas? E quais as injetivas? Seção 4.3 Funções 199 Exercícios 4.3 1. A figura a seguir representa uma função. a. Qual seu domínio? Qual seu contradomínio? Qual o conjunto imagem? b. Qual a imagem de 5? E de 8? c. Quais as pré-imagens

Leia mais

ANÁLISE DE ALGORITMOS: PARTE 3

ANÁLISE DE ALGORITMOS: PARTE 3 ANÁLISE DE ALGORITMOS: PARTE 3 Prof. André Backes 2 A notação grande-o é a forma mais conhecida e utilizada de análise Complexidade do nosso algoritmo no pior caso Seja de tempo ou de espaço É o caso mais

Leia mais

A Cidade Enlameada Árvores Geradoras Mínimas

A Cidade Enlameada Árvores Geradoras Mínimas Atividade 9 A Cidade Enlameada Árvores Geradoras Mínimas Sumário Nossa sociedade é conectada por muitas redes: redes telefônicas, redes de abastecimento, redes de computadores e redes rodoviárias. Para

Leia mais

LIMITES COMPUTACIONAIS E O FUTURO. Prof. André Vignatti DINF - UFPR

LIMITES COMPUTACIONAIS E O FUTURO. Prof. André Vignatti DINF - UFPR LIMITES COMPUTACIONAIS E O FUTURO Prof. André Vignatti DINF - UFPR CONTEXTUALIZANDO Ciências Exatas base de tudo, gera conhecimento Engenharias usa conhecimento, gera tecnologias Tecnologias usa tecnologias,

Leia mais

Anatomia do motor de um programa de xadrez. Hugo Vinicius M. D. Santana Orientador: José Coelho de Pina

Anatomia do motor de um programa de xadrez. Hugo Vinicius M. D. Santana Orientador: José Coelho de Pina Anatomia do motor de um programa de xadrez Hugo Vinicius M. D. Santana Orientador: José Coelho de Pina Conteúdo Objetivo O que é um motor de xadrez? Arquitetura Entrada e saída Representação do tabuleiro

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 8 - Indecidibilidade Exercicio 1-5.5 do Livro

Leia mais

Definição e Conceitos Básicos

Definição e Conceitos Básicos Definição e Conceitos Básicos Grafos e Algoritmos Computacionais Prof. Flávio Humberto Cabral Nunes fhcnunes@yahoo.com.br 1 Conceitos Básicos Em grafos ocorrem dois tipos de elementos: Vértices ou nós;

Leia mais

Matemática Aplicada às Ciências Sociais- 11º ano (Versão: para o manual a partir de 2016/17)

Matemática Aplicada às Ciências Sociais- 11º ano (Versão: para o manual a partir de 2016/17) Matemática Aplicada às Ciências Sociais- 11º ano (Versão: para o manual a partir de 2016/17) Professor: Pedro Nóia Livro adotado: Matemática Aplicada às Ciências Sociais- 11º ano Elisabete Longo e Isabel

Leia mais

SISTEMA DECIMAL. No sistema decimal o símbolo 0 (zero) posicionado à direita implica em multiplicar a grandeza pela base, ou seja, por 10 (dez).

SISTEMA DECIMAL. No sistema decimal o símbolo 0 (zero) posicionado à direita implica em multiplicar a grandeza pela base, ou seja, por 10 (dez). SISTEMA DECIMAL 1. Classificação dos números decimais O sistema decimal é um sistema de numeração de posição que utiliza a base dez. Os dez algarismos indo-arábicos - 0 1 2 3 4 5 6 7 8 9 - servem para

Leia mais

Introdução à Teoria dos Grafos (MAC-5770) IME-USP Depto CC Profa. Yoshiko. Capítulo 3

Introdução à Teoria dos Grafos (MAC-5770) IME-USP Depto CC Profa. Yoshiko. Capítulo 3 Introdução à Teoria dos Grafos (MAC-5770) IME-USP Depto CC Profa. Yoshiko Capítulo 3 Árvores Problema: Suponha que numa cidade haja n postos telefônicos. Para que seja sempre possível haver comunicação

Leia mais

ESTRUTURAS DE REPETIÇÃO - PARTE 1

ESTRUTURAS DE REPETIÇÃO - PARTE 1 AULA 15 ESTRUTURAS DE REPETIÇÃO - PARTE 1 15.1 O comando enquanto-faca- Considere o problema de escrever um algoritmo para ler um número inteiro positivo, n, e escrever todos os números inteiros de 1 a

Leia mais

Algoritmo Genético. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

Algoritmo Genético. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto Algoritmo Genético Inteligência Artificial Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Introdução 2. Conceitos Básicos 3. Aplicações 4. Algoritmo 5. Exemplo Introdução São técnicas de busca

Leia mais

INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DO 2 o TESTE

INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DO 2 o TESTE INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos Ano Lectivo de 2006/2007 2 o Semestre RESOLUÇÃO DO 2 o TESTE I. (2,0+2,0+2,0 = 6,0 val.) 1) Calcule o valor óptimo da função objectivo e o respectivo

Leia mais

Grafos: algoritmos de busca

Grafos: algoritmos de busca busca em grafos como caminhar no grafo de modo a percorrer todos os seus vértices evitando repetições desnecessárias do mesmo vértice? e por onde começar? solução: necessidade de recursos adicionais que

Leia mais

Instituto de Matemática e Estatística, UFF Março de 2011

Instituto de Matemática e Estatística, UFF Março de 2011 ,,,,, Instituto de Matemática e Estatística, UFF Março de 2011 ,, Sumário,,. finitos,. conjunto: por lista, por propriedade.. Igualdade,. Propriedades básicas.. ,, Christos Papadimitriou, Autor dos livros

Leia mais

Universidade Federal de Alfenas

Universidade Federal de Alfenas Universidade Federal de Alfenas Linguagens Formais e Autômatos Aula 16 Decidibilidade humberto@bcc.unifal-mg.edu.br Últimas Aulas Uma Máquina de Turing (MT) possui: uma fita infinita para representar a

Leia mais

5. Expressões aritméticas

5. Expressões aritméticas 5. Expressões aritméticas 5.1. Conceito de Expressão O conceito de expressão em termos computacionais está intimamente ligado ao conceito de expressão (ou fórmula) matemática, onde um conjunto de variáveis

Leia mais

Como construir um compilador utilizando ferramentas Java

Como construir um compilador utilizando ferramentas Java Como construir um compilador utilizando ferramentas Java p. 1/2 Como construir um compilador utilizando ferramentas Java Aula 1 - Introdução Prof. Márcio Delamaro delamaro@icmc.usp.br Como construir um

Leia mais

Draft-v0.1. Máquinas de Turing Máquinas de Turing

Draft-v0.1. Máquinas de Turing Máquinas de Turing 13 Máquinas de Turing A necessidade de formalizar os processos algorítmicos levou, nas décadas 20 e 30 do século XX, a diversos estudos, entre os quais os de Post, Church e Turing, com vista a estudo formal

Leia mais

Teoria dos Grafos Aula 18

Teoria dos Grafos Aula 18 Teoria dos Grafos Aula 18 Aula passada Coloração Algoritmo guloso Número cromático Teorema das 4 cores Aula de hoje Clusterização (ou agrupamento) Algoritmo Variação Clusterização Coleção de objetos Agrupar

Leia mais

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/20 4 - INTROD. À ANÁLISE COMBINATÓRIA 4.1) Arranjos

Leia mais

Computação I: Representações de Algoritmos

Computação I: Representações de Algoritmos Computação I: Representações de Algoritmos reginaldo.re@utfpr.edu.br * Parte da apresentação foi gentilmente cedida pelo prof. Igor Steinmacher Agenda Objetivos Relembrando... Algoritmos para desenvolver

Leia mais

Aula 2: Linguagem Proposicional

Aula 2: Linguagem Proposicional Lógica para Computação Primeiro Semestre, 2015 Aula 2: Linguagem Proposicional DAINF-UTFPR Prof. Ricardo Dutra da Silva Linguagens naturais, como o nosso Português, podem expressar ideias ambíguas ou imprecisas.

Leia mais

Quantidade de memória necessária

Quantidade de memória necessária Tempo de processamento Um algoritmo que realiza uma tarefa em 10 horas é melhor que outro que realiza em 10 dias Quantidade de memória necessária Um algoritmo que usa 1MB de memória RAM é melhor que outro

Leia mais

Algoritmos 2 - Introdução

Algoritmos 2 - Introdução DAINF - Departamento de Informática Algoritmos 2 - Introdução Prof. Alex Kutzke (http://alex.kutzke.com.br/courses) 19 de Agosto de 2015 Slides adaptados do material produzido pelo Prof. Rodrigo Minetto

Leia mais

ANÁLISE COMBINATÓRIA

ANÁLISE COMBINATÓRIA Nome Nota ANÁLISE COMBINATÓRIA 1) De quantas maneiras diferentes 11 homens e 8 mulheres podem se sentar em uma fila se os homens sentam juntos e as mulheres também? 2!*11!*8! 2) O controle de qualidade

Leia mais

Computação na Biologia Molecular e Bionanotecnologia: Computação Biológica

Computação na Biologia Molecular e Bionanotecnologia: Computação Biológica Computação na Biologia Molecular e Bionanotecnologia: Computação Biológica Leila Ribeiro Instituto de Informática -UFRGS Roteiro Minhas áreas de interesse... Evolução da Ciência da Computação Biologia

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

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano CÁLCULO NUMÉRICO Profa. Dra. Yara de Souza Tadano yaratadano@utfpr.edu.br Aula 7 04/2014 Zeros reais de funções Parte 1 Objetivo Determinar valores aproximados para as soluções (raízes) de equações da

Leia mais

Problema do Caminho Mais Curto. Problema do Caminho Mais Curto

Problema do Caminho Mais Curto. Problema do Caminho Mais Curto Problema do Caminho Mais Curto " Podemos afectar pesos" aos arcos de um grafo, por exemplo, para representar uma distância entre cidades numa rede ferroviária: ria: Chicago 650 600 700 Toronto 200 New

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Program João Manuel R. S. Tavares Sumário 1. Ciclo de desenvolvimento de um programa; 2. Descrição de algoritmos; 3. Desenvolvimento modular de programas; 4. Estruturas de controlo de um programa.

Leia mais

Matemática Discreta 10

Matemática Discreta 10 Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta 10 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br - www.univasf.edu.br/~jorge.cavalcanti 1 Muitas

Leia mais

Teoria da Computação. Exercícios. 1 Máquinas de Registos Ilimitados 2013/2014

Teoria da Computação. Exercícios. 1 Máquinas de Registos Ilimitados 2013/2014 Teoria da Computação 2013/2014 Exercícios 1 Máquinas de Registos Ilimitados 1. Construa programas URM sem módulos que calculem as seguintes funções (a) quatro(x) = 4 (b) sg(x) retorna 0 se x > 0, 1 no

Leia mais

Percursos em um grafo

Percursos em um grafo Percursos em um grafo Definição Um percurso ou cadeia é uma seqüência de arestas sucessivamente adjacentes, cada uma tendo uma extremidade adjacente à anterior e a outra a subsequente (à exceção da primeira

Leia mais

O que é um Algoritmo?

O que é um Algoritmo? Introdução a Ciências da Computação Capítulo 2 O que é um Algoritmo? Página Tópicos Histórico Estruturas de Controle Comandos em seqüência Estruturas Condicionais Álgebra Booleana Estruturas de Repetição

Leia mais

Exercícios resolvidos sobre Teoremas de Probabilidade

Exercícios resolvidos sobre Teoremas de Probabilidade Exercícios resolvidos sobre Teoremas de Probabilidade Aqui você tem mais uma oportunidade de estudar os teoremas da probabilidade, por meio de um conjunto de exercícios resolvidos. Observe como as propriedades

Leia mais

a n Sistemas de Estados Finitos AF Determinísticos

a n Sistemas de Estados Finitos AF Determinísticos a n Sistemas de Estados Finitos AF Determinísticos 1 Relembrando Uma representação finita de uma linguagem L qualquer pode ser: 1. Um conjunto finito de cadeias (se L for finita); 2. Uma expressão de um

Leia mais

Aula 12: Lógica de Predicados

Aula 12: Lógica de Predicados Lógica para Computação Primeiro Semestre, 2015 Aula 12: Lógica de Predicados DAINF-UTFPR Prof. Ricardo Dutra da Silva Vamos estender a lógica proposicional para torná-la mais expressiva. Na lógica proposicional,

Leia mais

Noções de Algoritmos

Noções de Algoritmos Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Noções de Algoritmos DCA0800 - Algoritmos e Lógica de Programação Heitor Medeiros 1 Tópicos da aula Algoritmos

Leia mais

CURSO DO ZERO. Indicamos um conjunto, em geral, com uma letra maiúscula A, B, C... e um elemento com uma letra minúscula a, b, c, d, x, y,...

CURSO DO ZERO. Indicamos um conjunto, em geral, com uma letra maiúscula A, B, C... e um elemento com uma letra minúscula a, b, c, d, x, y,... ssunto: Conjunto e Conjuntos Numéricos ssunto: Teoria dos Conjuntos Conceitos primitivos. Representação e tipos de conjunto. Operação com conjuntos. Conceitos Primitivos: CURSO DO ZERO Para dar início

Leia mais

Eduardo Camponogara. DAS-9003: Introdução a Algoritmos

Eduardo Camponogara. DAS-9003: Introdução a Algoritmos Caminhos Mínimos entre Todos os Vértices 1/ 48 Caminhos Mínimos entre Todos os Vértices Eduardo Camponogara Departamento de Automação e Sistemas Universidade Federal de Santa Catarina DAS-9003: Introdução

Leia mais

CONCEITOS BÁSICOS EM GRAFOS

CONCEITOS BÁSICOS EM GRAFOS Um grafo (simples) G é formado por um conjunto de vértices, denotado por V(G), e um conjunto de arestas, denotado por E(G). Cada aresta é um par (não ordenado) de vértices distintos. Se xy é uma aresta,

Leia mais

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente ESIN/UCPel 058814 Linguagens Formais e Autômatos TEXTO 5 Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente Prof. Luiz A M Palazzo Maio de 2007 0. Introdução A Ciência da Computação

Leia mais

Técnicas de Programação III Análise de Algoritmos (Continuação)

Técnicas de Programação III Análise de Algoritmos (Continuação) Técnicas de Programação III Análise de Algoritmos (Continuação) Aula ministrada em: 23/08/2007 Prof. Mauro L. C. Silva 1/10 Objetivos da Aula Entender a Análise e a Complexidade de Algoritmos 2/10 Avaliação

Leia mais

Compiladores - Análise Ascendente

Compiladores - Análise Ascendente Compiladores - Análise Ascendente Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Análise Descendente vs. Ascendente As técnicas de análise que vimos até agora (recursiva com retrocesso,

Leia mais

Introdução à Computação

Introdução à Computação Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Introdução à Computação A Informação

Leia mais

BC1424 Algoritmos e Estruturas de Dados I Aula 05 Custos de um algoritmo e funções de complexidade

BC1424 Algoritmos e Estruturas de Dados I Aula 05 Custos de um algoritmo e funções de complexidade BC1424 Algoritmos e Estruturas de Dados I Aula 05 Custos de um algoritmo e funções de complexidade Prof. Jesús P. Mena-Chalco 1Q-2016 1 1995 2015 2 Custo de um algoritmo e funções de complexidade Introdução

Leia mais

Matemática Discreta - 07

Matemática Discreta - 07 Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta - 07 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav

Leia mais

Introdução à Teoria dos Grafos

Introdução à Teoria dos Grafos Capítulo 1 Introdução à Teoria dos Grafos 1.1 História O primeiro problema cuja solução envolveu conceitos do que viria a ser teoria dos grafos, denominado "problema das pontes de Königsberg", foi resolvido

Leia mais

CAP4. ELEMENTOS DA TEORIA DE GRAFOS. Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E) , sendo:

CAP4. ELEMENTOS DA TEORIA DE GRAFOS. Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E) , sendo: Matemática Discreta ESTiG\IPB Cap4. Elementos da Teoria de Grafos pg 1 CAP4. ELEMENTOS DA TEORIA DE GRAFOS Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E), sendo: Exemplos

Leia mais

Introdução a Algoritmos Genéticos

Introdução a Algoritmos Genéticos Introdução a Algoritmos Genéticos Tiago da Conceição Mota Laboratório de Inteligência Computacional Núcleo de Computação Eletrônica Universidade Federal do Rio de Janeiro Outubro de 2007 O Que São? Busca

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Árvores Algoritmo de Kruskal O algoritmo de Kruskal permite determinar a spanning tree de custo mínimo. Este custo corresponde à soma dos pesos (distância, tempo, qualidade,...) associados

Leia mais

7. Introdução à Complexidade de Algoritmos

7. Introdução à Complexidade de Algoritmos 7. Introdução à Complexidade de Algoritmos Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 7. Introdução à Complexidade de Algoritmos Estruturas de Dados 1 / 1 Análise de Algoritmos

Leia mais

Recursividade e relações de recorrência

Recursividade e relações de recorrência Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta - 06 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav

Leia mais

Filtros de Média Movente

Filtros de Média Movente Processamento Digital de Sinais Filtros de Média Movente Prof. Dr. Carlos Alberto Ynoguti Características É o filtro ótimo para a tarefa de remover ruído aleatório de um sinal, e manter uma resposta a

Leia mais

DOIS PROBLEMAS SOBRE GRAFOS Paulo Cezar Pinto Carvalho IMPA

DOIS PROBLEMAS SOBRE GRAFOS Paulo Cezar Pinto Carvalho IMPA Nível Intermediario. DOIS PROBLEMAS SOBRE GRAFOS Paulo Cezar Pinto Carvalho IMPA INTRODUÇÃO A figura abaixo mostra um mapa rodoviário de um país fictício. Neste artigo vamos examinar dois problemas relativos

Leia mais

3 Estimação e Compensação de movimento na codificação de vídeo

3 Estimação e Compensação de movimento na codificação de vídeo Estimação e Compensação de movimento na codificação de vídeo 36 3 Estimação e Compensação de movimento na codificação de vídeo O objetivo do modelo temporal (que engloba as fases de estimação e compensação

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Introdução Um passeio entre os nós i e j é uma seqüência alternada de nós e arestas que começa no nó i e termina no nó j. G 1 G 2 Um exemplo de passeio entre os nós 1 e 4 do grafo G 1 é (1,(1,3),3,(2,3),2,(1,2),1,(1,4),4).

Leia mais

MATEMÁTICA PARA VENCER. Apostilas complementares APOSTILA 03 PROVA CM SIMULADA.

MATEMÁTICA PARA VENCER. Apostilas complementares APOSTILA 03 PROVA CM SIMULADA. MATEMÁTICA PARA VENCER Apostilas complementares APOSTILA 03 PROVA CM SIMULADA www.laercio.com.br APOSTILA 03 Colégio Militar 6º ano PROVA CM SIMULADA Apostila de complemento do livro MATEMÁTICA PARA VENCER

Leia mais

Problema da Árvore Geradora Mínima

Problema da Árvore Geradora Mínima Instituto Federal do Espírito Santo Campus Serra Problema da Árvore Geradora Mínima Diego Pasti Jefferson Rios Sumário Apresentação do Problema da AGM...3 Raízes do Problema Definindo o Problema O Problema

Leia mais

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/27 4 - INTROD. À ANÁLISE COMBINATÓRIA 4.1) Arranjos

Leia mais

FACULDADE PITÁGORAS PRONATEC

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

Leia mais

Lógica para Computação Primeiro Semestre, Aula 10: Resolução. Prof. Ricardo Dutra da Silva

Lógica para Computação Primeiro Semestre, Aula 10: Resolução. Prof. Ricardo Dutra da Silva Lógica para Computação Primeiro Semestre, 2015 DAINF-UTFPR Aula 10: Resolução Prof. Ricardo Dutra da Silva A resolução é um método de inferência em que: as fórmulas devem estar na Forma Clausal; deduções

Leia mais

IME, UFF 7 de novembro de 2013

IME, UFF 7 de novembro de 2013 em Lógica IME, UFF 7 de novembro de 2013 em Sumário Intermezzo sobre problemas. Intermezzo sobre algoritmos.. em : Val, Sat, Conseq, Equiv, Consist. Redução de problemas. em Um problema computacional é

Leia mais

Transformada de Discreta de Co senos DCT

Transformada de Discreta de Co senos DCT Transformada de Discreta de Co senos DCT O primeiro passo, na maioria dos sistemas de compressão de imagens e vídeo, é identificar a presença de redundância espacial (semelhança entre um pixel e os pixels

Leia mais

Cálculo Combinatório

Cálculo Combinatório Cálculo Combinatório Introdução Foi a necessidade de calcular o número de possibilidades existentes nos chamados jogos de azar que levou ao desenvolvimento da Análise Combinatória, parte da Matemática

Leia mais

Grafos: caminhos mínimos

Grafos: caminhos mínimos quando o grafo é sem pesos, a determinação de um caminho mais curto pode ser feita através de uma busca em largura caminho mais curto é aquele que apresenta o menor número de arestas quando o grafo tem

Leia mais

Sistemas de numeração e conversão de bases Decimal e binário

Sistemas de numeração e conversão de bases Decimal e binário Sistemas de numeração e conversão de bases Decimal e binário Cálculo de conversão de bases para responder às questões pertinentes à execução das especificações nas configurações de sistemas, comunicação

Leia mais

Geometria Computacional

Geometria Computacional Geometria Computacional Professor: Anselmo Montenegro www.ic.uff.br/~anselmo Conteúdo: - Polígonos 1 Roteiro Introdução Polígonos Teorema da Curva de Jordan Decomposição de polígonos Triangulações Estrutura

Leia mais

Grafos Planares. Grafos e Algoritmos Computacionais. Prof. Flávio Humberto Cabral Nunes

Grafos Planares. Grafos e Algoritmos Computacionais. Prof. Flávio Humberto Cabral Nunes Grafos Planares Grafos e Algoritmos Computacionais Prof. Flávio Humberto Cabral Nunes fhcnunes@yahoo.com.br 1 Introdução Os exemplos mais naturais de grafos são os que se referem à representação de mapas

Leia mais

Aula 2: Funções. Margarete Oliveira Domingues PGMET/INPE. Aula 2 p.1/57

Aula 2: Funções. Margarete Oliveira Domingues PGMET/INPE. Aula 2 p.1/57 Aula 2 p.1/57 Aula 2: Funções. Margarete Oliveira Domingues PGMET/INPE Definição e representação Aula 2 p.2/57 Aula 2 p.3/57 Função Definição: Uma função de um conjunto em um conjunto, é uma correspondência

Leia mais

Algoritmos Genéticos. Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008

Algoritmos Genéticos. Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008 Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008 Introdução São técnicas de busca e otimização. É a metáfora da teoria da evolução das espécies iniciada pelo Fisiologista e Naturalista inglês Charles Darwin.

Leia mais

Disciplina: Arquitetura de Computadores

Disciplina: Arquitetura de Computadores Disciplina: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof a. Carla Katarina de Monteiro Marques UERN Introdução Responsável por: Processamento e execução de programas armazenados na

Leia mais

Barramento. Prof. Leonardo Barreto Campos 1

Barramento. Prof. Leonardo Barreto Campos 1 Barramento Prof. Leonardo Barreto Campos 1 Sumário Introdução; Componentes do Computador; Funções dos Computadores; Estrutura de Interconexão; Interconexão de Barramentos Elementos de projeto de barramento;

Leia mais

Resolução de sistemas de equações lineares: Fatorações de matrizes

Resolução de sistemas de equações lineares: Fatorações de matrizes Resolução de sistemas de equações lineares: Fatorações de matrizes Marina Andretta/Franklina Toledo ICMC-USP 27 de fevereiro de 2015 Baseado no livro Análise Numérica, de R. L. Burden e J. D. Faires. Marina

Leia mais

MC102 - Algoritmos e programação de computadores. Aula 16: Busca e Ordenação em vetores

MC102 - Algoritmos e programação de computadores. Aula 16: Busca e Ordenação em vetores MC102 - Algoritmos e programação de computadores Aula 16: Busca e Ordenação em vetores Busca Dada uma coleção de n elementos, pretende-se saber se um determinado elemento valor está presente nessa coleção.

Leia mais

Linguagens Livres de Contexto

Linguagens Livres de Contexto Universidade Católica de Pelotas Centro Politécnico Bacharelado em Ciência da Computação 364018 Linguagens Formais e Autômatos TEXTO 4 Linguagens Livres de Contexto Prof. Luiz A M Palazzo Maio de 2011

Leia mais

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

TEMA 2 PROPRIEDADES DE ORDEM NO CONJUNTO DOS NÚMEROS REAIS

TEMA 2 PROPRIEDADES DE ORDEM NO CONJUNTO DOS NÚMEROS REAIS TEMA 2 PROPRIEDADES DE ORDEM NO CONJUNTO DOS NÚMEROS REAIS O conjunto dos números reais,, que possui as seguintes propriedades:, possui uma relação menor ou igual, denotada por O1: Propriedade Reflexiva:

Leia mais

Estrutura e Funcionamento dos Computadores (Conceitos Básicos)

Estrutura e Funcionamento dos Computadores (Conceitos Básicos) Estrutura e Funcionamento dos Computadores (Conceitos Básicos) Sistema Computacional Peopleware (usuário) Software (programas) Hardware (máquina) Hardware Corresponde à parte material, aos componentes

Leia mais

BCC201 Introdução à Programação. Prof. Saul Delabrida 2013/2

BCC201 Introdução à Programação. Prof. Saul Delabrida 2013/2 BCC201 Introdução à Programação Prof. Saul Delabrida 2013/2 Como um programa é criado? Compilação por linha de comando Introdução à linguagem C 2 Como um programa é criado? 3 Quando queremos digitar um

Leia mais

Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO

Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO Dados em Algoritmos Quando escrevemos nossos programas, trabalhamos com: Dados que nós fornecemos ao programa Dados

Leia mais

Códigos de bloco. Instituto Federal de Santa Catarina Curso superior de tecnologia em sistemas de telecomunicação Comunicações móveis 2

Códigos de bloco. Instituto Federal de Santa Catarina Curso superior de tecnologia em sistemas de telecomunicação Comunicações móveis 2 Instituto Federal de Santa Catarina Curso superior de tecnologia em sistemas de telecomunicação Comunicações móveis 2 Códigos de bloco Prof. Diego da Silva de Medeiros São José, maio de 2012 Codificação

Leia mais

Árvore Binária de Busca Ótima

Árvore Binária de Busca Ótima MAC 5710 - Estruturas de Dados - 2008 Referência bibliográfica Os slides sobre este assunto são parcialmente baseados nas seções sobre árvore binária de busca ótima do capítulo 4 do livro N. Wirth. Algorithms

Leia mais

Estruturas de Repetição

Estruturas de Repetição Estruturas de Repetição Lista de Exercícios - 04 Programação de Computadores I Professor: Edwar Saliba Júnior Estruturas de Repetição O que são e para que servem? São comandos que são utilizados na programação

Leia mais

Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

Lista de Exercícios Programação Inteira. x 2 0 e inteiros. Lista de Exercícios Programação Inteira ) Resolva os problemas a seguir usando o método B&B a) Max z = 5 x + 2 y s.a x + y 2 x + y 5 x, y 0, x e y inteiros b) Max z = 2 x + y s.a x + 2y 0 x + y 25 x, y

Leia mais

Sequencias e Series. Exemplo 1: Seja tal que. Veja que os dez primeiros termos estão dados por: ,,,,...,, ou seja que temos a

Sequencias e Series. Exemplo 1: Seja tal que. Veja que os dez primeiros termos estão dados por: ,,,,...,, ou seja que temos a Sequencias e Series Autor: Dr. Cristian Novoa MAF- PUC- Go cristiancalculoii@gmail.com Este texto tem como objetivo principal, introduzir alguns conceitos de Sequencias e Series,para os cursos de Engenharia,

Leia mais

BCC204 - Teoria dos Grafos

BCC204 - Teoria dos Grafos BCC204 - Teoria dos Grafos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Haroldo Gambini Santos) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal

Leia mais