Análise de Algoritmos Indução Matemática - parte II Profa. Sheila Morais de Almeida DAINF-UTFPR-PG setembro - 2015
Indução Matemática - Exemplo 1 Provar que se S é um conjunto finito com n elementos, n Z 1, então S tem 2 n subconjuntos. Base: Quando n = 0, S = {}. Subconjuntos de S: {}. Pelo enunciado, S tem 2 0 = 1 subconjunto. A fórmula é condizente com o que verificamos. Portanto, o enunciado está correto quando n = 0. 1 Z denota o conjunto dos números inteiros não-negativos
Indução Matemática - Exemplo 1 Provar que se S é um conjunto finito com n elementos, n Z, então S tem 2 n subconjuntos. Hipótese de Indução: Suponha que S é um conjunto com k elementos, k Z, então S tem 2 k subconjuntos. Passo: Considere um conjunto S com k + 1 elementos. S'
Indução Matemática - Exemplo 1 Provar que se S é um conjunto finito com n elementos, n Z, então S tem 2 n subconjuntos. Seja a um dos elementos em S. Sabemos que a existe, pois S tem k + 1 elementos e k Z. S' a
Indução Matemática - Exemplo 1 Provar que se S é um conjunto finito com n elementos, n Z, então S tem 2 n subconjuntos. O conjunto S a tem k elementos. Pela hipótese de indução, S a tem 2 k subconjuntos. S'-a a
Indução Matemática - Exemplo 1 Provar que se S é um conjunto finito com n elementos, n Z, então S tem 2 n subconjuntos. Cada subconjunto X S a é um subconjunto de S, assim como o subconjunto X {a}. S' X a
Indução Matemática - Exemplo 1 Provar que se S é um conjunto finito com n elementos, n Z, então S tem 2 n subconjuntos. Cada subconjunto X S a é um subconjunto de S, assim como o subconjunto X {a}. S' X X a X U a
Indução Matemática - Exemplo 1 Provar que se S é um conjunto finito com n elementos, n Z, então S tem 2 n subconjuntos. Cada subconjunto X S a é um subconjunto de S, assim como o subconjunto X {a}. Então, S tem o dobro do número de subconjuntos de S a. Portanto, S tem 2(2 k ) subconjuntos, isto é, 2 k+1 subcojuntos. Como essa quantidade de subconjuntos corresponde ao valor que se obtém ao aplicar a fórmula do enunciado para n = k + 1, então a fórmula está correta.
Indução Matemática - Exemplo 2 Provar que n j=1 A j = n j=1 A j, sempre que A 1, A 2,..., A n forem subconjuntos de um universo U, com n 2. Base: n = 2 A1 A2 A1 A2 U U A 1 A 2 U A1 A 2 U
Indução Matemática - Exemplo 2 Provar que n j=1 A j = n j=1 A j, sempre que A 1, A 2,..., A n forem subconjuntos de um universo U, com n 2. Base: n = 2 A1 A2 A1 A2 U U A 1 A2 A1 A2 U A 1 U A 2
Indução Matemática - Exemplo 2 Provar que n j=1 A j = n j=1 A j, sempre que A 1, A 2,..., A n forem subconjuntos de um universo U, com n 2. Hipótese de indução: k j=1 A j = k j=1 A j, onde A 1, A 2,..., A k são subconjuntos de um universo U, com k 2. Passo: k+1 j=1 A j = k j=1 A j Ak+1
Indução Matemática - Exemplo 2 Provar que n j=1 A j = n j=1 A j, sempre que A 1, A 2,..., A n forem subconjuntos de um universo U, com n 2. Passo: k+1 j=1 A j = k j=1 A j Ak+1 Observe que k j=1 A j é um conjunto e A k+1 é um conjunto. Como está provado na base que 2 j=1 A j = 2 j=1 A j, tem-se: k+1 j=1 A j = k j=1 A j Ak+1 = k j=1 A j Ak+1 Pela hipótese de indução, k j=1 A j = k j=1 A j, portanto: k j=1 A j Ak+1 = k j=1 A j Ak+1 = k+1 j=1 A j.
Indução Matemática - Exemplo 3 Problema de Escalonamento Suponha que exista um grupo de palestras com horários pré-agendados. Gostaríamos de realizar o maior número de palestras possíveis no salão de conferências principal. Como escolher quais as palestras que serão apresentadas nesse salão?
Indução Matemática - Exemplo 3 Problema de Escalonamento - Algoritmo Guloso Entrada: inteiro n e conjunto de palestras t 1, t 2,..., t n, onde cada tarefa t i começa no tempo b i e termina no tempo e i. Passo 1: Ordene as tarefas em ordem não-decrescente de término: S = (e 1, e 2,..., e n ), de forma que e 1 e 2... e n. Passo 2: Inicie o conjunto C de palestras agendadas: C = {t 1 }. Passo 3: Remova e 1 de S: S = (e 2, e 3,..., e n ). Passo 4: Para i de 2 a n faça: Se b i é maior que o término da última tarefa incluída em C, então C = C {t i }. Remova e i de S. Passo 5: Apresente o conjunto de tarefas C.
Indução Matemática - Exemplo 3 Problema de Escalonamento - Algoritmo Guloso Prove que o algoritmo guloso do Problema do Escalonamento é ótimo, ou seja, sempre seleciona o maior número de palestras possíveis para a sala de conferências principal. Vamos provar P(m): se o algoritmo escolhe m palestras para a sala principal de um conjunto qualquer, então m é o número máximo de palestras que poderiam ocorrer na sala principal.
Indução Matemática - Exemplo 3 Vamos provar P(m): se o algoritmo escolhe m palestras para a sala principal de um conjunto qualquer, então m é o número máximo de palestras que poderiam ocorrer na sala principal. Base: Se m = 1. O algoritmo escolhe a palestra t 1 para a sala principal (Passo 2). Como as palestras estavam ordenadas em ordem não-decrescente de tempo de término (Passo 1), t 1 é a palestra que termina mais cedo. Observe que todas as outras palestras, que foram descartadas sem serem incluídas em C, obrigatoriamente terminam junto com ou após t 1, ou seja, no tempo e 1 ou depois.
Indução Matemática - Exemplo 3 Lembre: todas as outras palestras, que foram descartadas sem serem incluídas em C, obrigatoriamente terminam no tempo e 1 ou depois. Como as palestras foram descartadas, pelo Passo 4 toda palestra t i, para 2 i n, tem tempo de início menor ou igual a e 1. Então todas as palestras t i, 2 i n, estariam ocorrendo no tempo e 1 e não podem usar a sala principal ao mesmo tempo. Portanto, o algoritmo está correto ao escolher apenas uma palestra.
Indução Matemática - Exemplo 3 Vamos provar P(m): se o algoritmo escolhe m palestras para a sala principal de um conjunto qualquer, então m é o número máximo de palestras que poderiam ocorrer na sala principal. Hipótese de indução: Se o algoritmo escolhe k palestras para a sala principal de um conjunto qualquer, então k é o número máximo de palestras que poderiam ocorrer na sala principal. Passo: Suponha que o algoritmo escolhe k + 1 palestras para a sala principal de um conjunto qualquer. Pela prova da base, sabemos que nenhuma palestra que comece antes de e 1 pode ser escolhida. Portanto, considere o conjunto Q das palestras que se iniciam após e 1.
Indução Matemática - Exemplo 3 Portanto, considere o conjunto Q das palestras que se iniciam após e 1. Observe que excetuando-se t 1, as demais k palestras escolhidas pelo algoritmo pertencem à Q (pelo Passo 4). Pela hipótese de indução, se o algoritmo escolhe k palestras para a sala principal pertencentes ao conjunto Q, então k é o máximo de palestras que podem ocorrer na sala principal dentre as pertencentes a Q. Como Q contém todas as palestras que poderiam ser escolhidas após e 1, o número máximo de palestras que podem ocorrer na sala principal é k + 1.
Indução Matemática - Exemplo 4 Prove que uma postagem que custa pelo menos $12, 00 sempre pode ser feita utilizando-se selos postais que custam $4, 00 e $5, 00. Base: Se o custo da postagem é $12, basta usar 3 selos que custam $4, 00. Hipótese de indução: Uma postagem que custa $k, k inteiro e k 12, pode ser feita utilizando-se selos postais que custam $4, 00 e $5, 00. Passo: Considere uma postagem que custa $k + 1. Pela hipótese de indução, a postagem que custa $k pode ser feita com selos que custam $4 e $5.
Indução Matemática - Exemplo 4 Pela hipótese de indução, a postagem que custa $k pode ser feita com selos que custam $4 e $5. Se a postagem que custa $k utiliza algum selo que custa $4, substitua-o por um selo que custa $5. Se a postagem que custa $k usa somente selos que custam $5, então essa postagem usa pelo menos 3 selos que custam $5, já que k 12. Então troque 3 selos que custam $5 por quatro selos que custam $4..
Indução Matemática - Exemplo 5 Prove que em uma cerca com n estacas existem n 1 seções, para n inteiro, n 1.
Indução Matemática - Exemplo 5 Prove que em uma cerca com n estacas existem n 1 seções, para n inteiro, n 1. Base: Suponha que a cerca tem 1 estaca (n = 1). Não há seções. Coincide com o enunciado que diz que há n 1 = 1 1 = 0 seções.
Indução Matemática - Exemplo 5 Prove que em uma cerca com n estacas existem n 1 seções, para n inteiro, n 1. Hipótese de indução: Se a cerca tem k estacas, k inteiro positivo, então a cerca tem k 1 seções. Passo: Considere uma cerca com k + 1 estacas.... 1 2 3 4 k k+1
Indução Matemática - Exemplo 5 Prove que em uma cerca com n estacas existem n 1 seções, para n inteiro, n 1. Remova a última estaca da cerca.... 1 2 3 4 k Observe que a cerca que restou tem k estacas e uma seção a menos. Pela hipótese de indução, a cerca com k estacas tem k 1 seções.
Indução Matemática - Exemplo 5 Prove que em uma cerca com n estacas existem n 1 seções, para n inteiro, n 1. Remova a última estaca da cerca.... 1 2 3 4 k Pela hipótese de indução, a cerca com k estacas tem k 1 seções. Então a cerca antes de removermos a estaca tinha k seções.
Referências Kenneth ROSEN. Discrete Mathematics and Its Applications. McGraw-Hill Education, 6th edition (July 26, 2006).