Programação Dinâmica. Programa do PA. Técnicas Avançadas de Projeto. Aulas Anteriores. Introdução. Plano de Aula. Técnicas de Projeto de Algoritmos

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

Download "Programação Dinâmica. Programa do PA. Técnicas Avançadas de Projeto. Aulas Anteriores. Introdução. Plano de Aula. Técnicas de Projeto de Algoritmos"

Transcrição

1 Programação Dinâmica Técnicas de Projeto de Algoritmos Aula 13 Alessandro L. Koerich Pontifícia Universidade Católica do Paraná (PUCPR) Ciência da Computação 7 o Período Engenharia de Computação 5 o Período 1. Resolução de Problemas e Tipos de Problemas 6. Força Bruta Introdução 7. Dividir & Conquistar 8. Decrementar & Conquistar 9. Transformar & Conquistar 10. Compromisso Tempo-Espaço 11. Programação Dinâmica 12. Estratégia Gulosa 13. Backtracking & Branch and Bound 14. Algoritmos Aproximados Técnicas de Projeto de Algoritmos Programa do PA 2. Fundamentos 3. Notação Assintótica e Classe de Eficiência 4. Análise Matemática de Algoritmos 5. Análise Empírica de Algoritmos Fundamentos da Análise da Eficiência de Algoritmos 15. Teorema do Limite Inferior 16. Árvores de Decisão 17. Problemas P, NP e NPC Limitações Ciência/Eng. de Computação Proj. Anal. Algoritmos Aulas Anteriores Técnicas Avançadas de Projeto Estratégia Força Bruta Programação Dinâmica Estratégia Dividir & Conquistar Algoritmos Gulosos (Greedy) Estratégia Reduzir & Conquistar Algoritmos Aproximados Estratégia Transformar & Conquistar Estratégia Compromisso Tempo Espaço Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Plano de Aula Introdução Introdução Exemplo: Multiplicação de Cadeias de Matrizes A programação dinâmica se aplica tipicamente a problemas de otimização onde uma série de escolhas deve ser feita, a fim de se alcançar um solução ótima Subseqüência Comum Mais Longa Elementos da Programação Dinâmica Resumo Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos

2 Introdução Introdução Resolve problemas combinando as soluções de subproblemas Aplicado quando os subproblemas não são independentes, isto é, quando os subproblemas compartilham subsubproblemas. Resolve cada subsubproblema somente uma vez e grava a resposta em uma tabela, evitando assim o trabalho de recalcular a resposta toda a vez que o subsubproblema é encontrado Em geral, a programação dinâmica é aplicada em problemas de otimização. Problemas de otimização Muitas soluções possíveis; Cada solução tem um valor; Desejamos encontrar uma solução com um valor ótimo (min ou máx). Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Introdução Introdução O desenvolvimento de um algoritmo de programação dinâmica pode ser desmembrado em: Caracterizar a estrutura de uma solução ótima Definir recursivamente o valor de uma solução ótima Calcular o valor de uma solução ótima em um processo bottom up Construir uma solução ótima a partir de informações calculadas Usaremos a programação dinâmica para resolver alguns problemas de otimização. Primeiro exemplo: programação de duas linhas de montagem Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Uma fábrica de automóveis com duas linhas de montagem Um chassis entra em cada linha de montagem Peças são adicionadas a ele em uma série de estações O automóvel sai pronto no final da linha Cada linha tem n estações numeradas com j=1,2,3,...,n Indicamos a j ésima estação na linha i por S i,j. A j ésima estação da linha 1 (S 1,j ) executa a mesma função que a j ésima estação da linha 2 (S 1,j ) Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos

3 Porém, as estações foram construídas em épocas diferentes e com tecnologias diferentes, assim, o tempo exigido em cada estação varia. Indicamos o tempo de montagem exigido na estação S i,j por a i,j. Normalmente, um chassis entra e sai de uma mesma linha de montagem. Porém, no caso de um pedido urgente, um automóvel parcialmente concluído pode ser passado de uma linha de montagem a outra. Temos também e i e x i como os tempos para um chassis entrar na linha de montagem i e sair concluído da linha de montagem i respectivamente. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Problema O tempo para transferir um chassi da linha de montagem i depois da passagem pela estação S i,j é t i,j, onde i =1,2 e j=1,2,...,n 1 Determinar que estações escolher na linha 1 e quais escolher na linha 2 de modo a minimizar o tempo total de passagem de um único automóvel pela fábrica. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Como resolver o problema? Força Bruta: enumerar todos os modos possíveis e calcular quanto tempo cada um deles demora. O tempo total mais rápido resulta da escolha das estações 1, 3 e 6 da linha 1 e das estações 2, 4 e 5 da linha 2. Existem 2 n maneiras possíveis de escolher estações Ω (2 n ) impraticável para n grande Solução possível programação dinâmica Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos

4 Etapa 1: A estrutura do caminho mais rápido pela fábrica Caracterizar a estrutura de uma solução ótima Considerar o modo mais rápido possível para um chassis seguir desde o ponto de partida passando pela estação S 1,j. Se j = 1, fácil: determinar somente quanto tempo demora para passar pela estação S 1,j Se j 2, há duas opções para obter S 1,j : Através de S 1,j-1, e depois diretamente para S 1,j Através de S 2,j-1, e depois transferido para S 1,j Supondo que o caminho mais rápido é através de S 1,j-1 Observação chave: devemos ter pego um caminho mais rápido a partir da entrada através de S 1,j-1 nesta solução. Se houvesse um caminho mais rápido através de S 1,j-1, nós o usaríamos para obter um caminho mais rápido através de S 1,j Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Supondo agora que o caminho mais rápido é através de S 2,j-1 Observação chave: Novamente, devemos ter pego um caminho mais rápido a partir da entrada através de S 2,j-1 nesta solução. Se houvesse um caminho mais rápido através de S 2,j-1, nós o usaríamos para obter um caminho mais rápido através de S 1,j Geralmente: Uma solução ótima para um problema (o caminho mais rápido através S 1,j ) contém dentro dele um solução ótima para subproblemas (o caminho mais rápido através S 1,j-1 ou S 2,j-1 ) Isto é uma subestrutura ótima. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Usar subestruturas ótimas para construir soluções ótimas para o problema a partir de soluções ótimas para subproblemas O caminho mais rápido através de S 1,j é tanto: Caminho mais rápido através de S 1,j-1, e depois diretamente através de S 1,j ou Caminho mais rápido através de S 2,j-1, transferência da linha 2 para linha 1, e depois através S 1,j Simetricamente... O caminho mais rápido através de S 2,j é tanto: Caminho mais rápido através de S 2,j-1, e depois diretamente através de S 2,j ou Caminho mais rápido através de S 1,j-1, transferência da linha 1 para linha 2, e depois através S 2,j Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos

5 Portanto, para resolver problemas de encontrar um caminho mais rápido através de S 1,j e S 2,j, resolver os subproblemas de encontrar um caminho mais rápido através de S 1,j-1 e S 2,j-1. Etapa 2: Solução Recursiva Definir recursivamente o valor de uma solução ótima em termos das soluções ótimas dos subproblemas Subproblemas: encontrar o caminho mais rápido pela estação j em ambas as linhas, para j = 1, 2,..., n. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Seja f i [j] = o tempo mais rápido possível para levar um chassi desde o ponto de partida até a estação S i,j, onde i = 1, 2 e j = 1, 2,..., n. Meta: f* = tempo mais rápido para levar um chassi por todo o percurso na fábrica. Para j = 2,..., n: f 1 [1] = min( f 1 [ j 1] + a 1,j, f 2 [ j 1] + t 2,j-1 + a 1,j ) f 2 [1] = min( f 2 [ j 1] + a 2,j, f 1 [ j 1] + t 1,j-1 + a 2,j ) f* = min ( f 1 [n]+x 1, f 2 [n]+x 2 ) onde f 1 [1]=e 1 + a 1,1 e f 2 [1]=e 2 + a 2,1 Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Combinando as equações anteriores, obtemos as equações recursivas: f i [j] fornece o valor de uma solução ótima. E se quisermos construir uma solução ótima? e1 + a1,1 f1[ j] = min( f1[ j 1] + a e2 + a2,1 f2[ j] = min( f2[ j 1] + a 1,j 2,j, f [ j 1] + t 2, f [ j 1] + t 1 2,j-1 1,j-1 + a + a 1,j 2,j ) ) se j = 1 se j 2 se j = 1 se j 2 Definimos l i [j] = # linha (1 ou 2) cuja estação j 1 é usada em um caminho mais rápido pela estação S i,j. Onde i = 1, 2 e j = 2, 3,..., n l* = # linha cuja estação n é usada em um caminho mais rápido pela fábrica inteira. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos

6 Vamos através do caminho ótimo dado pelos valores de l (linhas sombreadas na figura anterior). Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Etapa 3: Cálculo dos Tempos mais Rápidos (Computar uma solução ótima) Seja r i (j) o número de referências feitas a f i [j] em um algoritmo recursivo Poderíamos somente escrever um algoritmo recursivo baseado nas recorrências anteriores. A partir da primeira equação temos: r 1 (n) = r 2 (n) = 1 Porém, seu tempo de execução é exponencial em n. Pelas recorrências temos: r 1 (j) = r 2 (j) = r 1 (j+1)+r 2 (j+1) para j = 1, 2,..., n 1 Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Assim, r i (j) = 2 n-j Portanto, f 1 [1] sozinho é referenciado 2 n-1 vezes Prova: Indução sobre j, decrescente a partir de n Base: j = n, 2 n j = 2 0 = 1 = r i (n) Passo de indução: Assumir r i (j+1) = 2 n (j+1) Então, r i (j) = r i (j+1) + r 2 (j+1) = 2 n (j+1) + 2 n (j+1) = 2 n (j+1)+1 =2 n j Θ(2 n ) Portanto, top down não é uma boa maneira de computar f i [j]. Observação: Podemos fazer melhor. f i [j] depende somente de f 1 [j 1] e f 2 [j 1] para j 2. Portanto, a computação deve ser feita em ordem crescente de j Θ(n) Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos

7 O procedimento Fast Way toma como entrada os valores (a i,j, t i,j, e i e x i ), bem como n, o número de estações em cada linha de montagem. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Etapa 4: Construção do Caminho mais Rápido pela Fábrica (Construindo uma solução ótima) Após calculados f i [j], f*, l i [j] e l*, podemos construir a seqüência de estações usadas no caminho mais rápido pela fábrica. Procedimento Print Stations Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Resumo Procedimento Print Stations Características da Programação Dinâmica: No exemplo da figura, teríamos: Linha 1: estação 6 Linha 2: estação 5 Linha 2: estação 4 Linha 1: estação 3 Linha 2: estação 2 Linha 1: estação 1 O problema precisa ter a propriedade da subestrutura ótima Então começamos com uma solução recursiva, mas ela será inviável Com isso, a transformamos em uma solução iterativa, que irá ter tempo polinomial, com a característica de calcular primeiro o valor de uma solução ótima e só depois construir a solução. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos

8 Problema: Recebemos uma seqüência (cadeia) < A 1, A 2,..., A n > de n matrizes a serem multiplicadas e desejamos calcular o produto. A 1 A 2...A n Solução: Utilizar um algoritmo padrão para multiplicação de pares de matrizes. Quais pares multiplicar? Em que ordem? A multiplicação de matrizes é associativa, e assim, todas as colocações de parênteses resultam no mesmo produto. Exemplo: Para a cadeia de matrizes < A 1, A 2, A 3, A 4 >, o produto A 1 A 2 A 3 A 4 pode ser completamente colocado entre parênteses de cinco modos distintos: ( A 1 ( A 2 ( A 3 A 4 ) ) ) ( A 1 ( ( A 2 A 3 ) A 4 ) ) ( ( A 1 A 2 )(A 3 A 4 ) ) ( ( A 1 ( A 2 A 3 ))A 4 ) ( ( ( A 1 A 2 ) A 3 ) A 4 ) Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Atenção!!! O modo como uma cadeia de matrizes é colocada entre parênteses pode ter um impacto dramático sobre o custo de avaliação do produto. Considere primeiro o custo de multiplicar duas matrizes. O pseudo código do algoritmo padrão é fornecido a seguir Se A é uma matriz p x q e B é uma matriz q x r, a matriz resultante C é uma matriz p x r. O tempo para calcular C é dominado pelo número de multiplicações escalares na linha 7, que é pqr. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Exemplo: Considere o problema de uma cadeia < A 1 A 2 A 3 > de três matrizes onde as dimensões são: 10 x 100, 100 x 5 e 5 x 50 respectivamente. Se fizermos ((A 1 A 2 )A 3 )... Se fizermos (A 1 (A 2 A 3 ) )... O problema de multiplicação de cadeia de matrizes pode ser enunciado da forma a seguir: Dada uma cadeia < A 1,A 2,..., A n > de n matrizes na qual, para i = 1, 2,..., n, a matriz A i tem dimensão p i 1 p i, coloque completamente entre parênteses o produto A 1 A 2...A n de um modo que minimize o número de multiplicações escalares Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos

9 Contagem do número de colocações entre parênteses. Sendo P(n) o número de alternativas para a colocação dos parênteses em uma seqüência de n matrizes. 1 P( n) = n 1 P( k) P( n k) k= 1 se n = 1 se n 2 A solução para a recorrência é Ω(2 n ) força bruta é uma estratégia não adequada. Etapa 1: A estrutura de uma parentização ótima Seja A i...j para a matriz que resulta da avaliação do produto A i A i+1...a j. Para obter a solução do problema proposto, devemos obter A 1...n que pode ser obtido pelo produto de A 1...k A k+1...n cujo custo ótimo é obtido pela soma do custo de A 1...k com A k+1...n mais o custo do produto delas. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Etapa 1: A estrutura de uma parentização ótima A sub cadeia A 1..k deve ter parentização ótima Do contrário poderíamos substituí la por outra com custo menor que o ótimo, o que é uma contradição. Logo, uma solução ótima para uma instância do problema contém soluções ótimas para as subinstâncias do mesmo problema, o que permite o emprego da programação dinâmica. Etapa 2: Uma solução ótima recursiva Definir um expressão recursiva em função das subinstâncias. Usaremos uma tabela m[i,j] 1 i j n, onde m éo número mínimo de multiplicações escalares necessárias para calcular a matriz A i...j m[i,i]=0 pois A i...i = A i, não havendo necessidade de qualquer cálculo. Para i<j, podemos usar a estrutura ótima delineada no passo 1 Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Etapa 2 (cont.): Uma solução ótima recursiva Assim A i..j pode ser dividido em duas partes: A i...k A k+1...j, i k < j, e m[i,j] é igual ao menor custo para calcular A i...k e A k+1...j, mais o custo para multiplicar essas duas matrizes. Etapa 2 (cont.): Uma solução ótima recursiva A equação recursiva pressupõe que conhecemos o valor de k. Porém existem j 1 valores possíveis para k. A definição recursiva para o custo mínimo de colocar entre parênteses o produto A i A i+1... A j se torna: O custo para multiplicar A i...k A k+1...j vale p i-1 p k p j multiplicações escalares. Desse modo obtemos: m[i,j] = m[i,k] + m[k+1,j] + p i-1 p k p j 0 m[ i, j] = { }. min m[i,k] + m[k + 1, j] + pi-1pkp j se i = j se i < j Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos

10 Etapa 2 (cont.): Uma solução ótima recursiva Como indicar uma parentização ótima? O valor m[i,j] dá o custo ótimo, mas não informações para a construção de uma solução ótima Basta armazenar na matriz s[i,j] o valor de k usado para o valor ótimo de m[i,j], ou seja m[i,j] = m[i,k] + m[k+1,j] + p i-1 p k p j Etapa 3: Determinando a solução ótima Em vez de calcular recursivamente a solução para a recorrência anterior, calculamos o custo ótimo usando uma abordagem tabular de baixo para cima. Neste ponto deve-se elaborar um algoritmo para resolução do problema, Fazendo os cálculos de tal forma que nenhuma solução seja requisitada antes que a mesma já tenha sido calculada Usando a programação dinâmica passamos a ter Θ(n 2 ) subproblemas Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Etapa 3 (cont.): Determinando a solução ótima O problema (preencher a tabela m) deve ser resolvido em ordem crescente de comprimento da cadeia de matrizes O que equivale a percorrer as diagonais superiores da matriz de custo, a partir da diagonal maior. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos L2 e L3: O algoritmo calcula primeiro m[i,i]=0 para i=1,2,...,n (custos mínimos para cadeias de comprimento 1) L4 a L12: Usa a recorrência para calcular m[i,i+1] para i=1,2,...,n 1 (custos mínimos para cadeias de comprimento 2) Na segunda passagem através do loop, ele calcula m[i,i+2] para i=1,2,...,n 2 (custos mínimos para cadeias de comprimento 3) e assim por diante. Em cada etapa, o custo m[i,j] calculado em L9 e L12, depende apenas de m[i,k] e m[k+1,j] já calculadas. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos

11 O tempo de execução de Matrix Chain Order é O(n 3 ). Os loops estão aninhados com profundidade três e cada índice de loop (l,i,k) toma no máximo n valores. Assim, Matrix Chain Order é muito mais eficiente que o método de força bruta (tempo exponencial) Etapa 4: Construção da solução ótima Matrix-Chain-Order determina somente o número ótimo de multiplicações escalares necessárias para calcular um produto de cadeias de matrizes. Ele não mostra diretamente como multiplicar as matrizes. A solução ótima é calculada a partir das informações armazenadas na tabela s[1...n,1...n] Cada entrada s[i,j] registra o valor de k tal que a colocação ótima dos parenteses de A i A i+1...a j divide o produto entre A k e A k+1. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Elementos da Programação Dinâmica Quando aplicar um método de programação dinâmica? Ingredientes fundamentais que um problema de otimização deve ter para que a programação dinâmica seja aplicável: Para o exemplo anterior Print Optimal Parens produz ((A 1 (A 2 A 3 )) ((A 4 A 5 )A 6 )) Subestrutura ótima Subproblemas sobrepostos Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Mostrar que a solução para um problema consiste em fazer um escolha, a qual deixa um ou mais subproblemas para resolver. Suponha que seja dada uma última escolha que leve a uma solução ótima Dada esta escolha, determinar quais subproblemas surgem e como caracterizar o espaço resultante de subproblemas Mostrar que as soluções para subproblemas usadas dentro de uma solução ótima devem ser também ótimas. Usar geralmente cut and paste Usar geralmente cut and paste: Suponha que uma das soluções dos subproblemas não seja ótima Corte a fora Cole no lugar uma solução ótima Obtenha uma melhor solução para o problema original. Contradiz a otimalidade da solução do problema. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos

12 Como caracterizar o espaço dos subproblemas? Manter o espaço o mais simples possível? Expandi lo quando necessário Exemplos: Programação de uma linha de montagem Espaço de subproblemas era a maneira mais rápida a partir da entrada e através das estações S 1,j e S 2,j Não há necessidade de tentar um espaço mais geral de subproblemas Subestrutura ótima varia através dos domínios dos problemas. 1. Quantos subproblemas são usados em um solução ótima? 2. Quantas escolhas para determinar qual subproblema utilizar? Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Programação da linha de montagem 1 subproblema 2 escolhas (para S i,j, usar S 1,j-1 ou S 2,j-1 ) Subseqüência Comum mais Longa (LCS) 1 subproblema e: 1 escolha ( se x i =y i, LCS de X i-1 e Y j-1 ), ou 2 escolhas ( se x i y i, LCS de X i-1 e Y, e LCS de X e Y j-1 ) Informalmente, o tempo de execução depende (número de subproblemas) vezes (número de escolhas) Programação da linha de montagem: Θ (n) subproblemas, 2 escolhas para cada tempo de execução Θ (n) Subseqüência comum mais longa: Θ (mn) subproblemas, 2 escolhas para cada tempo de execução Θ (mn) Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Programação Dinâmica usa subestrutura ótima bottom up. Primeiro, encontrar soluções ótimas para subproblemas Então, escolher a qual utilizar em uma solução ótima para o problema. Quando estudarmos algoritmos gulosos, veremos que eles funcionam top down, primeiro fazendo uma escolha que pareça melhor e então resolvendo os subproblemas resultantes. Não se engane pensando que subestruturas ótimas se aplicam a todos os problemas de otimização. Ex: Dois problemas que parecem similares. Em ambos, são dados grafos diretos não ponderados G = (V,E), onde: V é um conjunto de vértices E é um conjunto de arestas Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos

13 Encontre um caminho (seqüência de arestas conectadas) do vértice u ao vértice v. O caminho mais curto tem subestrutura ótima Caminho mais curto: encontrar o caminho u v com menos arestas. Deve ser simples (sem ciclos) pois removendo um ciclo de um caminho temos um caminho com menos arestas; Caminho simples mais longo: encontrar um caminho simples u v com mais arestas. Suponha que p é o caminho mais curto u v. Seja w qualquer vértice sobre p. Seja p 1 uma porção de p, u w. Então, p 1 é um caminho mais curto u w. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Prova: Suponha que exista um caminho mais curto p 1 u v. Cortar p 1, substituí lo por p 1 e p obter o caminho u 1 p w 2 v com menos arestas que p. O caminho mais longo tem uma subestrutura ótima? Parece que sim Mas ele não tem!! Portanto, podemos encontrar o caminho mais curto u v considerando todos os vértices intermediários w e então encontrando os caminhos mais curtos u w e w v. O mesmo argumento se aplica a p 2 Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Considere q r t = caminho mais longo entre q e t. Os seus subcaminhos são os subcaminhos mais longos? Não!!! Subcaminho entre q e r é q r. Caminho simples mais longo entre q e r é q s t r Subcaminho entre r e t é r t. Caminho simples mais longo entre r e t é r q s t Além de não existir uma subestrutura ótima, não podemos montar uma solução legal a partir da solução para subproblemas. Combinar caminho mais longos simples: q s t r q s t Não é simples!!! De fato, este problema é NP completo Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos

14 Qual é a grande diferença entre o caminho mais longo e o caminho mais curto? O caminho mais curto tem subproblemas independentes A solução para um subproblema não afeta a solução de outro subproblema do mesmo problema Caminho simples mais longo: subproblemas não são independentes Considere subproblemas do caminho simples mais longo: q r e r t. O caminho simples mais longo q r utiliza s e t. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Qual é a grande diferença entre o caminho mais longo e o caminho mais curto (cont.)? Não podemos utilizar s e t para resolver o caminho simples mais longo r t, pois se o fizermos, o caminho não será simples. Subproblemas independentes: Linha de montagem e Subseqüência comum mais longa: 1 subproblema automáticamente independente Mas temos que utilizar t para encontrar o caminho simples mais longo r t. Utilizando recursos (vértices) para resolver um subproblema torná os indisponíveis para resolver outros subproblemas. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Subproblemas Sobrepostos Subproblemas sobrepostos O segundo ingrediente que um problema de otimização deve ter para a programação dinâmica ser aplicável. O espaço de subproblemas deve ser pequeno. Subproblemas Sobrepostos Subproblemas sobrepostos ocorrem quando um algoritmo recursivo revisita o mesmo problema repetidamente Bons algoritmos dividir e conquistar geralmente geram um novo problema em cada estágio da recursão. Exemplo: Merge Sort Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos

15 Subproblemas Sobrepostos Subproblemas Sobrepostos Exemplo:. Matrix Chain Order procura repetidamente a solução para subproblemas em linhas inferiores quando resolve problemas em linhas superiores. Ex: a entrada m[3,4] é referenciada 4 vezes: durante o cálculo de m[2,4], m[1,4], m[3,5] e m[3,6]. Comparar com o procedimento recursivo. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Subproblemas Sobrepostos Memoização Método Alternativo: Memoization Armazene, não recompute Faça uma tabela indexada por subproblemas Quando resolver um subproblema: Buscar na tabela Se a resposta for sim, use a Senão, compute a resposta e armazene a Recursivo: Ω(2 n ) Programação Dinâmica: O(n 2 ) Em programação dinâmica, vamos um passo adiante. Determinamos em que ordem queremos acessar a tabela e preenchemos desta maneira. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Memoização Problema: Dadas duas sequências, X=<x 1, x 2,..., x m > e Y=<y 1,y 2,...y n >, encontrar a subsequência comum a ambas cujo comprimento seja o mais longo. Uma subsequência não precisa ser consecutiva (contínua), mas ela deve estar em ordem. O problema da LCS pode se resolvido por força bruta ou programação dinâmica. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos

16 Algoritmo Força Bruta Para cada subseqüência de X, verificar se é uma subseqüência de Y. Tempo: Θ ( n 2 m ) 2 m subseqüências de X para verificar Cada subseqüência leva Θ (n) para verificar. Varrer Y para a primeira letra, a partir dela, varrer pela segunda letra, e assim por diante. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Etapa 1: Caracterização de uma Subseqüência Comum mais Longa Algoritmo Força Bruta : Para cada subseqüência de X, verificar se é uma subseqüência de Y. Cada subseqüência de X corresponde a um subconjunto dos índices {1,2,..., m} de X. Existem 2 m subseqüências de X. Tempo: Θ ( n 2 m ) 2 m subseqüências de X para verificar Cada subseqüência leva Θ (n) para verificar. Varrer Y para a primeira letra, a partir dela, varrer pela segunda letra, e assim por diante. Etapa 1 (cont.) Porém o problema da LCS tem uma propriedade de subestrutura ótima. Dada uma seqüência X = < x 1,x 2,...,x m >, definimos o i ésimo prefixo de X, para i=0,1,...,m como X i =< x 1,x 2,...,x i >. Ex: Se X = < A, B, C, B, D, A, B>, então X 4 = < A, B, C, B > e X 0 é a seqüência vazia. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Etapa 1 (cont.) Sejam as seqüências X = < x 1,x 2,...,x m > e Y = < y 1,y 2,...,y m > e seja Z = < z 1,z 2,...,z m > qualquer LCS de X e Y. Notação: X i = prefixo <x 1,...,x i > Y i = prefixo <y 1,...,y i > Teorema: Seja Z = <z 1,...,z k > qualquer LCS de X e Y. 1. Se x m =y n, então z k =x m e Z k 1 é uma LCS de X m 1 e Y n Se x m y n, então z k x m Z é uma LCS de X m 1 e Y. 3. Se x m y n, então z k y n Z é uma LCS de X e Y n 1. Etapa 1 (cont.) Prova: 1. Primeira mostrar que z k =x m =y n. Suponha que não. Então, faça uma subseqüência Z = <z 1,...,z k, x m >. É uma subseqüência comum de X e Y e tem comprimento k + 1 Z é uma subseqüência comum mais longa que Z contradiz Z sendo uma LCS. Agora mostrar que Z k+1 é uma LCS de X m 1 e Y n 1. Claramente, é uma subseqüência comum. Agora suponha que existe uma subseqüência comum W de X m 1 e Y n 1 que é mais longa que Z k+1 comprimento de W k. Faça a subseqüência W anexando x m a W. W é uma subseqüência comum de X e Y, tem comprimento k+1 contradiz Z sendo uma LCS. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos

17 Etapa 1 (cont.) Prova (cont.): 2. Se z k x m, então Z é uma subseqüência comum de X m 1 e Y. Suponha que exista uma subseqüência W de X m 1 e Y com comprimento > k. Então W é uma subseqüência comum de X e Y contradiz Z sendo uma LCS. 3. Simétrica a 2. Portanto, uma LCS de duas seqüências contém como um prefixo uma LCS de prefixos das seqüências. Etapa 2 : Formulação Recursiva Do teorema anterior, temos que existem 1 ou 2 subproblemas a examinar quando se encontra uma LCS de X = < x 1,x 2,...,x m > e Y = < y 1,y 2,...,y m > Se x m =y n, devemos encontrar uma LCS de X m 1 e Y n 1. Se x m y n, devemos resolver 2 subproblemas: Encontrar uma LCS de X m 1 e Y. Encontrar uma LCS de X e Y n 1. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Etapa 2 (cont.): Formulação Recursiva A solução recursiva para o problema da LCS envolve estabelecer uma recorrência para o valor de uma solução ótima. Definindo c [ i,j ] = comprimento da LCS de X i e Y j. Se i=0 ou j=0, uma das seqüencias tem comprimento 0, logo LCS = 0. A subestrutura ótima do problema da LCS fornece a fórmula recursiva: Etapa 3: Calculando o Comprimento da LCS O procedimento LCS LENGTH toma duas seqüencias X e Y como entradas. Armazena os valores de c[i,j] em uma tabela c[0...m,0...n].. 0 c[ i, j] = c[ i 1, j 1] + 1 max( c[ i 1, j],c[ i, j 1]) se i = 0 ou j = 0 se i, j > 0 e x se i, j > 0 e x i i = y j y j Mantém uma tabela b[1...m,1...n] para construir a solução ótima. b[i,j] aponta para a entrada da tabela correspondente à solução ótima do subproblema escolhida ao se calcular c[i,j]. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Etapa 3(cont.): Cálculo do comprimento da solução ótima Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos

18 Etapa 4: Cálculo do comprimento da solução ótima Construção de uma LCS A chamada inicial é PRINT LCS (b,x,m,n) b[i,j] aponta para a entrada da tabela cujo subproblema usamos para resolver LCS de X i e Y j. Quando b[i,j] =, estendemos LCS em um caractere. Então a subseqüência comum mais longa = entradas contendo. Ciência/Eng. de Computação Proj. Anal. Algoritmos Ciência/Eng. de Computação Proj. Anal. Algoritmos Resumo Características da Programação Dinâmica: O problema precisa ter a propriedade da subestrutura ótima Então começamos com uma solução recursiva, mas ela será inviável Com isso, a transformamos em uma solução interativa, que irá ter tempo polinomial, com a característica de calcular primeiro o valor de uma solução ótima e só depois construir a solução. Ciência/Eng. de Computação Proj. Anal. Algoritmos

Exercícios Teóricos Resolvidos

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

Leia mais

Aula 4 Estatística Conceitos básicos

Aula 4 Estatística Conceitos básicos Aula 4 Estatística Conceitos básicos Plano de Aula Amostra e universo Média Variância / desvio-padrão / erro-padrão Intervalo de confiança Teste de hipótese Amostra e Universo A estatística nos ajuda a

Leia mais

Resolução de sistemas lineares

Resolução de sistemas lineares Resolução de sistemas lineares J M Martínez A Friedlander 1 Alguns exemplos Comecemos mostrando alguns exemplos de sistemas lineares: 3x + 2y = 5 x 2y = 1 (1) 045x 1 2x 2 + 6x 3 x 4 = 10 x 2 x 5 = 0 (2)

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

6. Programação Inteira

6. Programação Inteira Pesquisa Operacional II 6. Programação Inteira Faculdade de Engenharia Eng. Celso Daniel Engenharia de Produção Programação Inteira São problemas de programação matemática em que a função objetivo, bem

Leia mais

Solução de problemas por meio de busca (com Python) Luis Martí DEE/PUC-Rio http://lmarti.com

Solução de problemas por meio de busca (com Python) Luis Martí DEE/PUC-Rio http://lmarti.com Solução de problemas por meio de busca (com Python) Luis Martí DEE/PUC-Rio http://lmarti.com Python e AI (Re)-introdução ao Python. Problemas de busca e principais abordagens. Exemplos em Python Por que

Leia mais

Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU

Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU Prof. Dr. Sergio Pilling (IPD/ Física e Astronomia) III Resolução de sistemas lineares por métodos numéricos. Objetivos: Veremos

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 Problemas de de otimização Conceitos ásicos O Problema da da Mochila Fracionária Template Genérico xemplos: Código de de Huffman Algoritmos Gulosos

Leia mais

Capítulo 5: Aplicações da Derivada

Capítulo 5: Aplicações da Derivada Instituto de Ciências Exatas - Departamento de Matemática Cálculo I Profª Maria Julieta Ventura Carvalho de Araujo Capítulo 5: Aplicações da Derivada 5- Acréscimos e Diferenciais - Acréscimos Seja y f

Leia mais

AV1 - MA 12-2012. (b) Se o comprador preferir efetuar o pagamento à vista, qual deverá ser o valor desse pagamento único? 1 1, 02 1 1 0, 788 1 0, 980

AV1 - MA 12-2012. (b) Se o comprador preferir efetuar o pagamento à vista, qual deverá ser o valor desse pagamento único? 1 1, 02 1 1 0, 788 1 0, 980 Questão 1. Uma venda imobiliária envolve o pagamento de 12 prestações mensais iguais a R$ 10.000,00, a primeira no ato da venda, acrescidas de uma parcela final de R$ 100.000,00, 12 meses após a venda.

Leia mais

Pedro Ribeiro 2014/2015

Pedro Ribeiro 2014/2015 Programação Dinâmica Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Programação Dinâmica 2014/2015 1 / 56 Números de Fibonacci Sequência de números muito famosa definida por Leonardo Fibonacci

Leia mais

N1Q1 Solução. a) Há várias formas de se cobrir o tabuleiro usando somente peças do tipo A; a figura mostra duas delas.

N1Q1 Solução. a) Há várias formas de se cobrir o tabuleiro usando somente peças do tipo A; a figura mostra duas delas. 1 N1Q1 Solução a) Há várias formas de se cobrir o tabuleiro usando somente peças do tipo A; a figura mostra duas delas. b) Há várias formas de se cobrir o tabuleiro com peças dos tipos A e B, com pelo

Leia mais

A Torre de Hanói e o Princípio da Indução Matemática

A Torre de Hanói e o Princípio da Indução Matemática A Torre de Hanói e o Princípio da Indução Matemática I. O jogo A Torre de Hanói consiste de uma base com três pinos e um certo número n de discos de diâmetros diferentes, colocados um sobre o outro em

Leia mais

Estudaremos métodos numéricos para resolução de sistemas lineares com n equações e n incógnitas. Estes podem ser:

Estudaremos métodos numéricos para resolução de sistemas lineares com n equações e n incógnitas. Estes podem ser: 1 UNIVERSIDADE FEDERAL DE VIÇOSA Departamento de Matemática - CCE Cálculo Numérico - MAT 271 Prof.: Valéria Mattos da Rosa As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia

Leia mais

Material Teórico - Aplicações das Técnicas Desenvolvidas. Exercícios e Tópicos Relacionados a Combinatória. Segundo Ano do Ensino Médio

Material Teórico - Aplicações das Técnicas Desenvolvidas. Exercícios e Tópicos Relacionados a Combinatória. Segundo Ano do Ensino Médio Material Teórico - Aplicações das Técnicas Desenvolvidas Exercícios e Tópicos Relacionados a Combinatória Segundo Ano do Ensino Médio Prof Cícero Thiago Bernardino Magalhães Prof Antonio Caminha Muniz

Leia mais

MD Sequências e Indução Matemática 1

MD Sequências e Indução Matemática 1 Sequências Indução Matemática Renato Martins Assunção assuncao@dcc.ufmg.br Antonio Alfredo Ferreira Loureiro loureiro@dcc.ufmg.br MD Sequências e Indução Matemática 1 Introdução Uma das tarefas mais importantes

Leia mais

Inteligência Artificial. Metodologias de Busca

Inteligência Artificial. Metodologias de Busca Inteligência Artificial Metodologias de Busca 1 Solução de problemas como Busca Um problema pode ser considerado como um objetivo Um conjunto de ações podem ser praticadas para alcançar esse objetivo Ao

Leia mais

Um jogo de preencher casas

Um jogo de preencher casas Um jogo de preencher casas 12 de Janeiro de 2015 Resumo Objetivos principais da aula de hoje: resolver um jogo com a ajuda de problemas de divisibilidade. Descrevemos nestas notas um jogo que estudamos

Leia mais

Programação em papel quadriculado

Programação em papel quadriculado 4 NOME DA AULA: Programação em papel quadriculado Tempo de aula: 45 60 minutos Tempo de preparação: 10 minutos Objetivo principal: ajudar os alunos a entender como a codificação funciona. RESUMO Ao "programar"

Leia mais

Testedegeradoresde. Parte X. 38 Testes de Ajuste à Distribuição. 38.1 Teste Chi-Quadrado

Testedegeradoresde. Parte X. 38 Testes de Ajuste à Distribuição. 38.1 Teste Chi-Quadrado Parte X Testedegeradoresde números aleatórios Os usuários de uma simulação devem se certificar de que os números fornecidos pelo gerador de números aleatórios são suficientemente aleatórios. O primeiro

Leia mais

Notas de Cálculo Numérico

Notas de Cálculo Numérico Notas de Cálculo Numérico Túlio Carvalho 6 de novembro de 2002 2 Cálculo Numérico Capítulo 1 Elementos sobre erros numéricos Neste primeiro capítulo, vamos falar de uma limitação importante do cálculo

Leia mais

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2 FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO Projeto e Análise de Algoritmos II Lista de Exercícios 2 Prof. Osvaldo. 1. Desenvolva algoritmos para as operações abaixo e calcule a complexidade

Leia mais

Prof. Daniela Barreiro Claro

Prof. Daniela Barreiro Claro Prof. Daniela Barreiro Claro SQL, SQL3 e OQL são linguagens declarativas O SGBD deve processar e otimizar estas consultas antes delas serem efetivamente executadas Uma consulta possui muitas estratégias

Leia mais

Nível 1 IV FAPMAT 28/10/2007

Nível 1 IV FAPMAT 28/10/2007 1 Nível 1 IV FAPMAT 28/10/2007 1. Sabendo que o triângulo ABC é isósceles, calcule o perímetro do triângulo DEF. a ) 17,5 cm b ) 25 cm c ) 27,5 cm d ) 16,5 cm e ) 75 cm 2. Em viagem à Argentina, em julho

Leia mais

Exercícios Adicionais

Exercícios Adicionais Exercícios Adicionais Observação: Estes exercícios são um complemento àqueles apresentados no livro. Eles foram elaborados com o objetivo de oferecer aos alunos exercícios de cunho mais teórico. Nós recomendamos

Leia mais

7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura 7.1 - Exemplo de um grafo linear.

7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura 7.1 - Exemplo de um grafo linear. CAPÍTULO 7 7 ANÁLISE DE REDES 7.1 Conceitos Básicos em Teoria dos Grafos Diversos problemas de programação linear, inclusive os problemas de transporte, podem ser modelados como problemas de fluxo de redes.

Leia mais

Unidade 5: Sistemas de Representação

Unidade 5: Sistemas de Representação Arquitetura e Organização de Computadores Atualização: 9/8/ Unidade 5: Sistemas de Representação Números de Ponto Flutuante IEEE 754/8 e Caracteres ASCII Prof. Daniel Caetano Objetivo: Compreender a representação

Leia mais

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

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

Leia mais

Exercícios 1. Determinar x de modo que a matriz

Exercícios 1. Determinar x de modo que a matriz setor 08 080509 080509-SP Aula 35 MATRIZ INVERSA Uma matriz quadrada A de ordem n diz-se invertível, ou não singular, se, e somente se, existir uma matriz que indicamos por A, tal que: A A = A A = I n

Leia mais

Relatório Trabalho Prático 2 : Colônia de Formigas para Otimização e Agrupamento

Relatório Trabalho Prático 2 : Colônia de Formigas para Otimização e Agrupamento Relatório Trabalho Prático 2 : Colônia de Formigas para Otimização e Agrupamento Ramon Pereira Lopes Rangel Silva Oliveira 31 de outubro de 2011 1 Introdução O presente documento refere-se ao relatório

Leia mais

Álgebra. SeM MiSTéRio

Álgebra. SeM MiSTéRio Álgebra SeM MiSTéRio Série SeM MiSTéRio Alemão Sem Mistério Álgebra Sem Mistério Cálculo Sem Mistério Conversação em Alemão Sem Mistério Conversação em Espanhol Sem Mistério Conversação em Francês Sem

Leia mais

Unidade 3 Função Logarítmica. Definição de logaritmos de um número Propriedades operatórias Mudança de base Logaritmos decimais Função Logarítmica

Unidade 3 Função Logarítmica. Definição de logaritmos de um número Propriedades operatórias Mudança de base Logaritmos decimais Função Logarítmica Unidade 3 Função Logarítmica Definição de aritmos de um número Propriedades operatórias Mudança de base Logaritmos decimais Função Logarítmica Definição de Logaritmo de um número Suponha que certo medicamento,

Leia mais

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

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

Leia mais

UNIDADE 6 - PROGRAMAÇÃO MODULAR

UNIDADE 6 - PROGRAMAÇÃO MODULAR UNIDADE 6 - PROGRAMAÇÃO MODULAR Até o momento as estruturas de controle (seqüência, seleção e repetição) de um algoritmo definia-o como um bloco lógico (início e fim). À medida que os problemas a serem

Leia mais

Retas e Planos. Equação Paramétrica da Reta no Espaço

Retas e Planos. Equação Paramétrica da Reta no Espaço Retas e lanos Equações de Retas Equação aramétrica da Reta no Espaço Considere o espaço ambiente como o espaço tridimensional Um vetor v = (a, b, c) determina uma direção no espaço Dado um ponto 0 = (x

Leia mais

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo Algoritmos e Estruturas de Dados I 01/2013 Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo Problema 1 Suponha que soma (+) e subtração (-) são as únicas operações disponíveis em

Leia mais

Dois eventos são disjuntos ou mutuamente exclusivos quando não tem elementos em comum. Isto é, A B = Φ

Dois eventos são disjuntos ou mutuamente exclusivos quando não tem elementos em comum. Isto é, A B = Φ Probabilidade Vimos anteriormente como caracterizar uma massa de dados, como o objetivo de organizar e resumir informações. Agora, apresentamos a teoria matemática que dá base teórica para o desenvolvimento

Leia mais

Programação Funcional. Aula 5. Funções Recursivas. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2011.

Programação Funcional. Aula 5. Funções Recursivas. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2011. Programação Funcional Aula 5 Funções Recursivas José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011.2 1/39 1 Funções recursivas 2 Recursividade mútua 3 Recursividade

Leia mais

Objetivo principal: aprender como definir e chamar funções.

Objetivo principal: aprender como definir e chamar funções. 12 NOME DA AULA: Escrevendo músicas Duração da aula: 45 60 minutos de músicas durante vários dias) Preparação: 5 minutos (se possível com introduções Objetivo principal: aprender como definir e chamar

Leia mais

Inteligência Artificial Prof. Marcos Quinet Pólo Universitário de Rio das Ostras PURO Universidade Federal Fluminense UFF

Inteligência Artificial Prof. Marcos Quinet Pólo Universitário de Rio das Ostras PURO Universidade Federal Fluminense UFF Inteligência Artificial Prof. Marcos Quinet Pólo Universitário de Rio das Ostras PURO Universidade Federal Fluminense UFF No capítulo anterior... Estratégias de busca auxiliadas por heurísticas (A*, BRPM)

Leia mais

Programação Dinâmica

Programação Dinâmica fib(5) fib(4) fib(3) fib(3) fib(2) fib(2) fib(1) fib(2) fib(1) fib(1) fib(0) fib(1) fib(0) fib(1) fib(0) Uma metodologia de resolução de problemas Center for Research in Advanced Computing Systems (CRACS

Leia mais

Lista 1 para a P2. Operações com subespaços

Lista 1 para a P2. Operações com subespaços Lista 1 para a P2 Observação 1: Estes exercícios são um complemento àqueles apresentados no livro. Eles foram elaborados com o objetivo de oferecer aos alunos exercícios de cunho mais teórico. Nós sugerimos

Leia mais

Banco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli

Banco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli Banco de Dados I 2007 Módulo V: Indexação em Banco de Dados (Aulas 4) Clodis Boscarioli Agenda: Indexação em SQL; Vantagens e Custo dos Índices; Indexação no PostgreSQL; Dicas Práticas. Índice em SQL Sintaxe:

Leia mais

P r o g r a m a ç ã o d e C o m p u t a d o r e s 1 o S e m - 2 0 1 3 P r o f. A n d r é A m a r a n t e L u i z L A B 5 tag %2d while printf PE1:

P r o g r a m a ç ã o d e C o m p u t a d o r e s 1 o S e m - 2 0 1 3 P r o f. A n d r é A m a r a n t e L u i z L A B 5 tag %2d while printf PE1: Inteligência É a faculdade de criar objetos artificiais, especialmente ferramentas para fazer ferramentas. Henri Bergson. WHILE Além dos comandos if-else e switch, o controle de fluxo de um programa pode

Leia mais

Aula 4 Conceitos Básicos de Estatística. Aula 4 Conceitos básicos de estatística

Aula 4 Conceitos Básicos de Estatística. Aula 4 Conceitos básicos de estatística Aula 4 Conceitos Básicos de Estatística Aula 4 Conceitos básicos de estatística A Estatística é a ciência de aprendizagem a partir de dados. Trata-se de uma disciplina estratégica, que coleta, analisa

Leia mais

Sistemas de Apoio à Decisão

Sistemas de Apoio à Decisão Sistemas de Apoio à Decisão Processo de tomada de decisões baseia-se em informação toma em consideração objectivos toma em consideração conhecimento sobre o domínio. Modelar o processo de tomada de decisões

Leia mais

36 a Olimpíada Brasileira de Matemática Nível Universitário Primeira Fase

36 a Olimpíada Brasileira de Matemática Nível Universitário Primeira Fase 36 a Olimpíada Brasileira de Matemática Nível Universitário Primeira Fase Problema 1 Turbo, o caracol, está participando de uma corrida Nos últimos 1000 mm, Turbo, que está a 1 mm por hora, se motiva e

Leia mais

Tecnologia da Informação Prof. Mário Henrique de Souza Pardo Resumo Aula 4

Tecnologia da Informação Prof. Mário Henrique de Souza Pardo Resumo Aula 4 Tecnologia da Informação Prof. Mário Henrique de Souza Pardo Resumo Aula 4 1 MS-Excel Aplicando funções às suas fórmulas de Excel (continuação) Serão vistas, nesta aula as funções de busca e referência

Leia mais

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

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 3-1. A CAMADA DE REDE (Parte 1) A camada de Rede está relacionada à transferência de pacotes da origem para o destino. No entanto, chegar ao destino pode envolver vários saltos em roteadores intermediários.

Leia mais

ALGORITMOS E FLUXOGRAMAS

ALGORITMOS E FLUXOGRAMAS ALGORITMOS E FLUXOGRAMAS Prof. André Backes INTRODUÇÃO Computadores = cérebros eletrônicos? Computadores são máquinas e, por si sós, não podem ser inteligentes. Alguém as projetou e deu a ela todas as

Leia mais

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 06: Ponteiros Declarando e utilizando ponteiros Ponteiros e vetores Inicializando ponteiros Ponteiros para Ponteiros Cuidados a serem

Leia mais

1. A corrida de vetores numa folha de papel.

1. A corrida de vetores numa folha de papel. 1. A corrida de vetores numa folha de papel. desenhando a pista. o movimento dos carros. o início da corrida. as regras do jogo. 2. A corrida no computador. o número de jogadores. o teclado numérico. escolhendo

Leia mais

Material Teórico - Módulo de Métodos sofisticados de contagem. Princípio das Casas dos Pombos. Segundo Ano do Ensino Médio

Material Teórico - Módulo de Métodos sofisticados de contagem. Princípio das Casas dos Pombos. Segundo Ano do Ensino Médio Material Teórico - Módulo de Métodos sofisticados de contagem Princípio das Casas dos Pombos Segundo Ano do Ensino Médio Prof. Cícero Thiago Bernardino Magalhães Prof. Antonio Caminha Muniz Neto Em Combinatória,

Leia mais

4Distribuição de. freqüência

4Distribuição de. freqüência 4Distribuição de freqüência O objetivo desta Unidade é partir dos dados brutos, isto é, desorganizados, para uma apresentação formal. Nesse percurso, seção 1, destacaremos a diferença entre tabela primitiva

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

Problema de Otimização Combinatória

Problema de Otimização Combinatória Problema de Otimização Combinatória Otimização é o processo de encontrar e comparar soluções factíveis até que nenhuma solução melhor possa ser encontrada. Essas soluções são ditas boas ou ruins em termos

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

Probabilidade e Estatística I Antonio Roque Aula 11 Probabilidade Elementar: Novos Conceitos

Probabilidade e Estatística I Antonio Roque Aula 11 Probabilidade Elementar: Novos Conceitos Probabilidade Elementar: Novos Conceitos Vamos começar com algumas definições: Experimento: Qualquer processo ou ação bem definida que tenha um conjunto de resultados possíveis 1) Lançamento de um dado;

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/59 2 - FUNDAMENTOS 2.1) Teoria dos Conjuntos 2.2) Números

Leia mais

por séries de potências

por séries de potências Seção 23: Resolução de equações diferenciais por séries de potências Até este ponto, quando resolvemos equações diferenciais ordinárias, nosso objetivo foi sempre encontrar as soluções expressas por meio

Leia mais

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

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

Leia mais

TÉCNICAS DE PROGRAMAÇÃO

TÉCNICAS DE PROGRAMAÇÃO TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente

Leia mais

Trabalho Computacional

Trabalho Computacional Universidade Federal do Espírito Santo Departamento de Informática Profª Claudia Boeres Teoria dos Grafos - 2014/2 Trabalho Computacional 1. Objetivo Estudo e implementação de algoritmos para resolução

Leia mais

Disciplina de Projetos e Análise de Algoritmos

Disciplina de Projetos e Análise de Algoritmos Aula 6 - A Maior Subsequência Comum Possível (Programação Dinâmica Parte IV) Aplicações na Biologia Um problema bastante em voga na Biologia é a análise do DNA de dois ou mais organismos distintos. Um

Leia mais

Solução da prova da 1 a fase OBMEP 2008 Nível 1

Solução da prova da 1 a fase OBMEP 2008 Nível 1 OBMEP 00 Nível 1 1 QUESTÃO 1 Como Leonardo da Vinci nasceu 91 anos antes de Pedro Américo, ele nasceu no ano 14 91 = 145. Por outro lado, Portinari nasceu 451 anos depois de Leonardo da Vinci, ou seja,

Leia mais

Processos Estocásticos

Processos Estocásticos Processos Estocásticos Terceira Lista de Exercícios 22 de julho de 20 Seja X uma VA contínua com função densidade de probabilidade f dada por Calcule P ( < X < 2. f(x = 2 e x x R. A fdp dada tem o seguinte

Leia mais

Aulas 17 & 18. Comutação Rápida a Pacote. Eytan Modiano MIT

Aulas 17 & 18. Comutação Rápida a Pacote. Eytan Modiano MIT Aulas 17 & 18 Comutação Rápida a Pacote Eytan Modiano MIT 1 Comutador a Pacote Etiqueta Um comutador a pacote consiste de uma máquina de roteamento (table lookup), um escalonador e uma máquina de comutação.

Leia mais

SOCIEDADE BRASILEIRA DE MATEMÁTICA MESTRADO PROFISSIONAL EM REDE NACIONAL PROFMAT

SOCIEDADE BRASILEIRA DE MATEMÁTICA MESTRADO PROFISSIONAL EM REDE NACIONAL PROFMAT SOCIEDADE BRASILEIRA DE MATEMÁTICA MESTRADO PROFISSIONAL EM REDE NACIONAL PROFMAT GABARITO da 3 a Avaliação Nacional de Aritmética - MA14-21/12/2013 Questão 1. (pontuação: 2) (1,0) a) Enuncie e demonstre

Leia mais

A Matemática do ENEM em Bizus

A Matemática do ENEM em Bizus A Matemática do ENEM em Bizus Neste primeiro artigo sobre a Matemática do ENEM, eu quero abordar a estratégia do conteúdo, tendo por base as provas anteriores e as tendências de abordagem. Quando confrontamos

Leia mais

Complexidade de Algoritmos. Edson Prestes

Complexidade de Algoritmos. Edson Prestes Edson Prestes Caminhos de custo mínimo em grafo orientado Este problema consiste em determinar um caminho de custo mínimo a partir de um vértice fonte a cada vértice do grafo. Considere um grafo orientado

Leia mais

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

Uma expressão básica em SQL consiste em três cláusulas: select, from e where. Introdução a Banco de Dados O.K. Takai; I.C.Italiano; J.E. Ferreira. 67 8 A Linguagem SQL A linguagem SQL é um padrão de linguagem de consulta comercial que usa uma combinação de construtores em Álgebra

Leia mais

PROPOSTAS DE TRABALHO PARA OS ALUNOS A PARTIR DE JOGOS 2º ANO. Adriana da Silva Santi Coordenação Pedagógica de Matemática

PROPOSTAS DE TRABALHO PARA OS ALUNOS A PARTIR DE JOGOS 2º ANO. Adriana da Silva Santi Coordenação Pedagógica de Matemática PROPOSTAS DE TRABALHO PARA OS ALUNOS A PARTIR DE JOGOS 2º ANO Adriana da Silva Santi Coordenação Pedagógica de Matemática Piraquara Abril/214 1 JOGOS E PROPOSTAS DE TRABALHO PARA OS ALUNOS JOGO DOS 6 PALITOS

Leia mais

Metodologia para seleção de amostras de contratos de obras públicas (jurisdicionados) utilizando a programação linear aplicativo Solver

Metodologia para seleção de amostras de contratos de obras públicas (jurisdicionados) utilizando a programação linear aplicativo Solver REVISTA Metodologia para seleção de amostras de contratos de obras públicas (jurisdicionados) utilizando a programação linear aplicativo Solver André Mainardes Berezowski 1 Resumo Trata da apresentação

Leia mais

Capítulo 3 - Sistemas de Equações Lineares

Capítulo 3 - Sistemas de Equações Lineares Capítulo 3 - Sistemas de Equações Lineares Carlos Balsa balsa@ipb.pt Departamento de Matemática Escola Superior de Tecnologia e Gestão de Bragança Matemática I - 1 o Semestre 2011/2012 Matemática I 1/

Leia mais

Fundamentos de Teste de Software

Fundamentos de Teste de Software Núcleo de Excelência em Testes de Sistemas Fundamentos de Teste de Software Módulo 2- Teste Estático e Teste Dinâmico Aula 6 Teste Dinâmico: Técnicas de Especificação SUMÁRIO INTRODUÇÃO... 3 TÉCNICAS BASEADAS

Leia mais

Capítulo 3 - Sistemas de Equações Lineares

Capítulo 3 - Sistemas de Equações Lineares Capítulo 3 - Sistemas de Equações Lineares Carlos Balsa balsa@ipb.pt Departamento de Matemática Escola Superior de Tecnologia e Gestão de Bragança Matemática I - 1 o Semestre 2011/2012 Matemática I 1/

Leia mais

O mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados.

O mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados. O mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados. A multiprogramação tem como objetivo permitir que, a todo instante, haja algum processo

Leia mais

Programa Olímpico de Treinamento. Aula 9. Curso de Combinatória - Nível 2. Tabuleiros. Prof. Bruno Holanda

Programa Olímpico de Treinamento. Aula 9. Curso de Combinatória - Nível 2. Tabuleiros. Prof. Bruno Holanda Programa Olímpico de Treinamento Curso de Combinatória - Nível Prof. Bruno Holanda Aula 9 Tabuleiros Quem nunca brincou de quebra-cabeça? Temos várias pecinhas e temos que encontrar uma maneira de unir

Leia mais

Primeiros passos das Planilhas de Obra v2.6

Primeiros passos das Planilhas de Obra v2.6 Primeiros passos das Planilhas de Obra v2.6 Instalação, configuração e primeiros passos para uso das planilhas de obra Elaborado pela Equipe Planilhas de Obra.com Conteúdo 1. Preparar inicialização das

Leia mais

Lista de Exercícios Resolvida. Associação de resistores. Prof. Paulo Roberto Ω Ω

Lista de Exercícios Resolvida. Associação de resistores. Prof. Paulo Roberto Ω Ω Lista de Exercícios Resolvida Associação de resistores Prof. Paulo Roberto 1. (Espcex (Aman) 01) Um circuito elétrico é constituído por um resistor de 4 e outro resistor de. Esse circuito é submetido a

Leia mais

Cálculo em Computadores - 2007 - trajectórias 1. Trajectórias Planas. 1 Trajectórias. 4.3 exercícios... 6. 4 Coordenadas polares 5

Cálculo em Computadores - 2007 - trajectórias 1. Trajectórias Planas. 1 Trajectórias. 4.3 exercícios... 6. 4 Coordenadas polares 5 Cálculo em Computadores - 2007 - trajectórias Trajectórias Planas Índice Trajectórias. exercícios............................................... 2 2 Velocidade, pontos regulares e singulares 2 2. exercícios...............................................

Leia mais

Usando o do-file editor Automatizando o Stata

Usando o do-file editor Automatizando o Stata Usando o do-file editor Automatizando o Stata 1 O QUE É O EDITOR DE DO-FILE O Stata vem com um editor de texto integrado, o do-file editor (editor de do-files, em português), que pode ser usado para executar

Leia mais

ESTUDO DE VIABILIDADE. Santander, Victor - Unioeste Aula de Luiz Eduardo Guarino de Vasconcelos

ESTUDO DE VIABILIDADE. Santander, Victor - Unioeste Aula de Luiz Eduardo Guarino de Vasconcelos ESTUDO DE VIABILIDADE Santander, Victor - Unioeste Aula de Luiz Eduardo Guarino de Vasconcelos Objetivos O que é um estudo de viabilidade? O que estudar e concluir? Benefícios e custos Análise de Custo/Benefício

Leia mais

Análise de Arredondamento em Ponto Flutuante

Análise de Arredondamento em Ponto Flutuante Capítulo 2 Análise de Arredondamento em Ponto Flutuante 2.1 Introdução Neste capítulo, chamamos atenção para o fato de que o conjunto dos números representáveis em qualquer máquina é finito, e portanto

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES 1 ARQUITETURA DE COMPUTADORES U C P Prof. Leandro Coelho Plano de Aula 2 Aula Passada Definição Evolução dos Computadores Histórico Modelo de Von-Neumann Básico CPU Mémoria E/S Barramentos Plano de Aula

Leia mais

1) Eficiência e Equilíbrio Walrasiano: Uma Empresa

1) Eficiência e Equilíbrio Walrasiano: Uma Empresa 1) Eficiência e Equilíbrio Walrasiano: Uma Empresa Suponha que há dois consumidores, Roberto e Tomás, dois bens abóbora (bem 1) e bananas (bem ), e uma empresa. Suponha que a empresa 1 transforme 1 abóbora

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

Planejamento de Aula - Ferramenta Mar aberto

Planejamento de Aula - Ferramenta Mar aberto Planejamento de Aula - Ferramenta Mar aberto Planejar uma aula é uma arte não uma tarefa. O planejamento de aula através da ferramenta Mar Aberto ajuda e contribui para infinitas possibilidades para seu

Leia mais

RESOLUÇÃO DAS QUESTÕES DE RACIOCÍNIO LÓGICO-MATEMÁTICO

RESOLUÇÃO DAS QUESTÕES DE RACIOCÍNIO LÓGICO-MATEMÁTICO RESOLUÇÃO DAS QUESTÕES DE RACIOCÍNIO LÓGICO-MATEMÁTICO Caro aluno, Disponibilizo abaixo a resolução resumida das questões de Raciocínio Lógico-Matemático da prova de Técnico de Atividade Judiciária do

Leia mais

Potenciação no Conjunto dos Números Inteiros - Z

Potenciação no Conjunto dos Números Inteiros - Z Rua Oto de Alencar nº 5-9, Maracanã/RJ - tel. 04-98/4-98 Potenciação no Conjunto dos Números Inteiros - Z Podemos epressar o produto de quatro fatores iguais a.... por meio de uma potência de base e epoente

Leia mais

4 Estudo de caso: Problema de seqüenciamento de carros

4 Estudo de caso: Problema de seqüenciamento de carros 4 Estudo de caso: Problema de seqüenciamento de carros O problema de seqüenciamento de carros em linhas de produção das indústrias automobilísticas é um tipo particular de problema de escalonamento que

Leia mais

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos Lógica Aula 2 Técnicas de Programação Criando algoritmos Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos Criando

Leia mais

Cotagem de dimensões básicas

Cotagem de dimensões básicas Cotagem de dimensões básicas Introdução Observe as vistas ortográficas a seguir. Com toda certeza, você já sabe interpretar as formas da peça representada neste desenho. E, você já deve ser capaz de imaginar

Leia mais

Curvas em coordenadas polares

Curvas em coordenadas polares 1 Curvas em coordenadas polares As coordenadas polares nos dão uma maneira alternativa de localizar pontos no plano e são especialmente adequadas para expressar certas situações, como veremos a seguir.

Leia mais

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES CAPÍTULO 5 5 VETORES E MATRIZES 5.1 Vetores Um vetor armazena uma determinada quantidade de dados de mesmo tipo. Vamos supor o problema de encontrar a média de idade de 4 pessoas. O programa poderia ser:

Leia mais

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE I. Prof. Dr. Daniel Caetano 2012-1

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE I. Prof. Dr. Daniel Caetano 2012-1 LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE I Prof. Dr. Daniel Caetano 2012-1 Objetivos Compreender do que é composto um programa Compreender o que é lógica Compreender

Leia mais

INSTITUTO TECNOLÓGICO

INSTITUTO TECNOLÓGICO PAC - PROGRAMA DE APRIMORAMENTO DE CONTEÚDOS. ATIVIDADES DE NIVELAMENTO BÁSICO. DISCIPLINAS: MATEMÁTICA & ESTATÍSTICA. PROFº.: PROF. DR. AUSTER RUZANTE 1ª SEMANA DE ATIVIDADES DOS CURSOS DE TECNOLOGIA

Leia mais

Universidade Federal de São João Del Rei - UFSJ

Universidade Federal de São João Del Rei - UFSJ Universidade Federal de São João Del Rei - UFSJ Instituída pela Lei 0.45, de 9/04/00 - D.O.U. de /04/00 Pró-Reitoria de Ensino de Graduação - PROEN Disciplina: Cálculo Numérico Ano: 03 Prof: Natã Goulart

Leia mais

Estatística II Antonio Roque Aula 9. Testes de Hipóteses

Estatística II Antonio Roque Aula 9. Testes de Hipóteses Testes de Hipóteses Os problemas de inferência estatística tratados nas aulas anteriores podem ser enfocados de um ponto de vista um pouco diferente: ao invés de se construir intervalos de confiança para

Leia mais