• Nenhum resultado encontrado

diveconq

N/A
N/A
Protected

Academic year: 2021

Share "diveconq"

Copied!
64
0
0

Texto

(1)

Divis ˜ao e Conquista

Talles Brito Viana

*Apresentac¸˜ao baseada na discuss˜ao apresentada em “Algoritmos: Teoria e Pr´atica’ de Thomas H. Cormen

(2)

Bolsa de valores

O problema

Suponha que lhe tenha sido oferecida a oportunidade de investir nas ac¸˜oes de uma empresa X.

O prec¸o da ac¸˜ao empresa X ´e bastante vol´atil. Existem algumas restric¸˜oes importantes:

Vocˆe s´o pode comprar uma ´unica unidade de ac¸˜ao somente uma vez e ent˜ao vendˆe-la em data posterior.

As operac¸˜oes de compra e venda s´o podem ser executadas ap´os o fechamento do preg˜ao do dia.

(3)

Bolsa de valores

O problema

Suponha que lhe tenha sido oferecida a oportunidade de investir nas ac¸˜oes de uma empresa X.

O prec¸o da ac¸˜ao empresa X ´e bastante vol´atil. Existem algumas restric¸˜oes importantes:

Vocˆe s´o pode comprar uma ´unica unidade de ac¸˜ao somente uma vez e ent˜ao vendˆe-la em data posterior.

As operac¸˜oes de compra e venda s´o podem ser executadas ap´os o fechamento do preg˜ao do dia.

(4)

Bolsa de valores

O problema

A meta ´e: maximizar o lucro! Mas como maximizar o lucro?

(5)

Bolsa de valores

O problema

A meta ´e: maximizar o lucro! Mas como maximizar o lucro?

(6)

Bolsa de valores

Exemplo

Soluc¸˜ao: Comprar ap´os fechamento do preg˜ao do dia 7 e vender no fechamento do preg˜ao do dia 11.

(7)

Bolsa de valores

Uma soluc¸ ˜ao?

N˜ao faz sentido comprar no fechamento do preg˜ao do dia 1 e vender no fechamento do preg˜ao do dia 7.

(8)

Bolsa de valores

Uma soluc¸ ˜ao?

Bastaria obter o m´aximo e o m´ınimo? N˜ao faz sentido comprar no fechamento do preg˜ao do dia 1 e vender no fechamento do

(9)

Bolsa de valores

Uma segunda soluc¸ ˜ao?

Uma segunda soluc¸˜ao:

Determine a ac¸˜ao de valor m´aximo e valor m´ınimo.

Do prec¸o mais alto localize o prec¸o mais baixo anterior (esquerda).

Do prec¸o mais baixo localize o prec¸o mais alto posterior (direita).

(10)

Bolsa de valores

Uma segunda soluc¸ ˜ao?

Uma segunda soluc¸˜ao:

Determine a ac¸˜ao de valor m´aximo e valor m´ınimo. Do prec¸o mais alto localize o prec¸o mais baixo anterior (esquerda).

Do prec¸o mais baixo localize o prec¸o mais alto posterior (direita).

(11)

Bolsa de valores

Uma segunda soluc¸ ˜ao?

Uma segunda soluc¸˜ao:

Determine a ac¸˜ao de valor m´aximo e valor m´ınimo. Do prec¸o mais alto localize o prec¸o mais baixo anterior (esquerda).

Do prec¸o mais baixo localize o prec¸o mais alto posterior (direita).

(12)

Bolsa de valores

Uma segunda soluc¸ ˜ao?

Uma segunda soluc¸˜ao:

Determine a ac¸˜ao de valor m´aximo e valor m´ınimo. Do prec¸o mais alto localize o prec¸o mais baixo anterior (esquerda).

Do prec¸o mais baixo localize o prec¸o mais alto posterior (direita).

(13)

Bolsa de valores

Uma segunda soluc¸ ˜ao?

(14)

Bolsa de valores

Uma segunda soluc¸ ˜ao?

(15)

Bolsa de valores

Uma segunda soluc¸ ˜ao?

Funciona neste caso?

O lucro m´aximo nem sempre comec¸a no prec¸o mais baixo ou termina no prec¸o mais alto.

Comprar ap´os o fechamento do preg˜ao do dia 2 e vender ap´os o fechamento do preg˜ao do dia 3 ´e a soluc¸˜ao.

(16)

Bolsa de valores

Uma segunda soluc¸ ˜ao?

Funciona neste caso? O lucro m´aximo nem sempre comec¸a no prec¸o mais baixo ou termina no prec¸o mais alto.

Comprar ap´os o fechamento do preg˜ao do dia 2 e vender ap´os o fechamento do preg˜ao do dia 3 ´e a soluc¸˜ao.

(17)

Bolsa de valores

Uma transformac¸ ˜ao

Uma transformac¸˜ao para o problema:

Queremos determinar uma sequˆencia de dias a qual a mudanc¸a l´ıquida desde o primeiro dia at´e o ´ultimo ´e m´axima.

Vamos considerar a alterac¸˜ao (mudanc¸a) di´aria nos prec¸os.

A mudanc¸a no dia i ´e a diferenc¸a entre os prec¸os ap´os o

fechamento do preg˜ao no dia i − 1 e ap´os o fechamento do preg˜ao do dia i.

Devemos determinar a sequˆencia de dias tal que a soma das diferenc¸as ´e m´axima.

(18)

O problema do subarranjo m ´aximo

Definic¸ ˜ao

O problema do subarranjo m ´aximo

Tomando um arranjo A, determine o subarranjo A0n˜ao vazio cont´ıguo

de A cujos valores tenham a maior soma. Este subarranjo A0 ´e

(19)

O problema do subarranjo m ´aximo

Exemplo

A0[8..11] ´e um subarranjo m´aximo de A com soma 43.

A ac¸˜ao deve ser comprada ap´os o fechamento do preg˜ao do dia 7 e vendida no fechamento do preg˜ao do dia 11.

(20)

O problema do subarranjo m ´aximo

Uma primeira soluc¸ ˜ao

Podemos testar a soma dos seguintes subconjuntos:

1 -4 3 -4 soma= 1 1 -4 3 -4 soma= −3 1 -4 3 -4 soma= 0 1 -4 3 -4 soma= −4 1 -4 3 -4 soma= −4 1 -4 3 -4 soma= −1 1 -4 3 -4 soma= −5 1 -4 3 -4 soma= 3 1 -4 3 -4 soma= −1 1 -4 3 -4 soma= −4

(21)

O problema do subarranjo m ´aximo

Uma primeira soluc¸ ˜ao

Podemos testar a soma dos seguintes subconjuntos:

1 -4 3 -4 soma= 1 1 -4 3 -4 soma= −3 1 -4 3 -4 soma= 0 1 -4 3 -4 soma= −4 1 -4 3 -4 soma= −4 1 -4 3 -4 soma= −1 1 -4 3 -4 soma= −5 1 -4 3 -4 soma= 3 1 -4 3 -4 soma= −1 1 -4 3 -4 soma= −4

(22)

O problema do subarranjo m ´aximo

Uma primeira soluc¸ ˜ao

Podemos testar a soma dos seguintes subconjuntos:

1 -4 3 -4 soma= 1 1 -4 3 -4 soma= −3 1 -4 3 -4 soma= 0 1 -4 3 -4 soma= −4 1 -4 3 -4 soma= −4 1 -4 3 -4 soma= −1 1 -4 3 -4 soma= −5 1 -4 3 -4 soma= 3 1 -4 3 -4 soma= −1 1 -4 3 -4 soma= −4

(23)

O problema do subarranjo m ´aximo

Uma primeira soluc¸ ˜ao

Podemos testar a soma dos seguintes subconjuntos:

1 -4 3 -4 soma= 1 1 -4 3 -4 soma= −3 1 -4 3 -4 soma= 0 1 -4 3 -4 soma= −4 1 -4 3 -4 soma= −4 1 -4 3 -4 soma= −1 1 -4 3 -4 soma= −5 1 -4 3 -4 soma= 3 1 -4 3 -4 soma= −1 1 -4 3 -4 soma= −4

(24)

O problema do subarranjo m ´aximo

Uma primeira soluc¸ ˜ao

Podemos testar a soma dos seguintes subconjuntos:

1 -4 3 -4 soma= 1 1 -4 3 -4 soma= −3 1 -4 3 -4 soma= 0 1 -4 3 -4 soma= −4 1 -4 3 -4 soma= −4 1 -4 3 -4 soma= −1 1 -4 3 -4 soma= −5 1 -4 3 -4 soma= 3 1 -4 3 -4 soma= −1 1 -4 3 -4 soma= −4

(25)

O problema do subarranjo m ´aximo

Uma primeira soluc¸ ˜ao

Podemos testar a soma dos seguintes subconjuntos:

1 -4 3 -4 soma= 1 1 -4 3 -4 soma= −3 1 -4 3 -4 soma= 0 1 -4 3 -4 soma= −4 1 -4 3 -4 soma= −4 1 -4 3 -4 soma= −1 1 -4 3 -4 soma= −5 1 -4 3 -4 soma= 3 1 -4 3 -4 soma= −1 1 -4 3 -4 soma= −4

(26)

O problema do subarranjo m ´aximo

Uma primeira soluc¸ ˜ao

Podemos testar a soma dos seguintes subconjuntos:

1 -4 3 -4 soma= 1 1 -4 3 -4 soma= −3 1 -4 3 -4 soma= 0 1 -4 3 -4 soma= −4 1 -4 3 -4 soma= −4 1 -4 3 -4 soma= −1 1 -4 3 -4 soma= −5 1 -4 3 -4 soma= 3 1 -4 3 -4 soma= −1 1 -4 3 -4 soma= −4

(27)

O problema do subarranjo m ´aximo

Uma primeira soluc¸ ˜ao

Podemos testar a soma dos seguintes subconjuntos:

1 -4 3 -4 soma= 1 1 -4 3 -4 soma= −3 1 -4 3 -4 soma= 0 1 -4 3 -4 soma= −4 1 -4 3 -4 soma= −4 1 -4 3 -4 soma= −1 1 -4 3 -4 soma= −5 1 -4 3 -4 soma= 3 1 -4 3 -4 soma= −1 1 -4 3 -4 soma= −4

(28)

O problema do subarranjo m ´aximo

Uma primeira soluc¸ ˜ao

Podemos testar a soma dos seguintes subconjuntos:

1 -4 3 -4 soma= 1 1 -4 3 -4 soma= −3 1 -4 3 -4 soma= 0 1 -4 3 -4 soma= −4 1 -4 3 -4 soma= −4 1 -4 3 -4 soma= −1 1 -4 3 -4 soma= −5 1 -4 3 -4 soma= 3 1 -4 3 -4 soma= −1 1 -4 3 -4 soma= −4

(29)

O problema do subarranjo m ´aximo

Uma primeira soluc¸ ˜ao

Podemos testar a soma dos seguintes subconjuntos:

1 -4 3 -4 soma= 1 1 -4 3 -4 soma= −3 1 -4 3 -4 soma= 0 1 -4 3 -4 soma= −4 1 -4 3 -4 soma= −4 1 -4 3 -4 soma= −1 1 -4 3 -4 soma= −5 1 -4 3 -4 soma= 3 1 -4 3 -4 soma= −1 1 -4 3 -4 soma= −4

(30)

O problema do subarranjo m ´aximo

Uma primeira soluc¸ ˜ao

Algoritmo: SUBARRANJO-M ´AXIMO (A, n)

Dados: Um arranjo A de tamanho n

Resultado: O subarranjo m´aximo de A: (esq, dir, soma) de valor

soma, inicia em esq e termina em dir

1 soma–max ←− −∞;

2 para i ←− 1 at ´e n fac¸a

3 soma←− 0;

4 para j ←− i at ´e n fac¸a

5 soma←− soma + A[j];

6 se soma > soma–max ent ˜ao

7 soma–max ←− soma;

8 esq←− i;

9 dir←− j;

(31)

O problema do subarranjo m ´aximo

An ´alise da primeira soluc¸ ˜ao

Algoritmo: SUBARRANJO-M ´AXIMO (A, n)

Dados: Um arranjo A de tamanho n

Resultado: O subarranjo m´aximo de A: (esq, dir, soma)

1 soma–max ←− −∞;

2 para i ←− 1 at ´e n fac¸a

3 soma←− 0;

4 para j ←− i at ´e n fac¸a

5 soma←− soma + A[j];

6 sesoma> soma–maxent ˜ao

7 soma–max ←− soma;

8 esq←− i;

(32)

O problema do subarranjo m ´aximo

An ´alise da primeira soluc¸ ˜ao

Para n = 4, o total de comparac¸˜oes ´e:

1 -4 3 -4 1 -4 3 -4 1 -4 3 -4 1 -4 3 -4 4 comparac¸˜oes. 1 -4 3 -4 1 -4 3 -4 1 -4 3 -4 3 comparac¸˜oes. 1 -4 3 -4 1 -4 3 -4 2 comparac¸˜oes. 1 -4 3 -4 1 comparac¸˜ao. Logo, f (4) = 4 + 3 + 2 + 1 = 10.

(33)

O problema do subarranjo m ´aximo

An ´alise da primeira soluc¸ ˜ao

Para n = 4, o total de comparac¸˜oes ´e:

1 -4 3 -4 1 -4 3 -4 1 -4 3 -4 1 -4 3 -4 4 comparac¸˜oes. 1 -4 3 -4 1 -4 3 -4 1 -4 3 -4 3 comparac¸˜oes. 1 -4 3 -4 1 -4 3 -4 2 comparac¸˜oes. 1 -4 3 -4 1 comparac¸˜ao. Logo, f (4) = 4 + 3 + 2 + 1 = 10.

(34)

O problema do subarranjo m ´aximo

An ´alise da primeira soluc¸ ˜ao

Para n = 4, o total de comparac¸˜oes ´e:

1 -4 3 -4 1 -4 3 -4 1 -4 3 -4 1 -4 3 -4 4 comparac¸˜oes. 1 -4 3 -4 1 -4 3 -4 1 -4 3 -4 3 comparac¸˜oes. 1 -4 3 -4 1 -4 3 -4 2 comparac¸˜oes. 1 -4 3 -4 1 comparac¸˜ao. Logo, f (4) = 4 + 3 + 2 + 1 = 10.

(35)

O problema do subarranjo m ´aximo

An ´alise da primeira soluc¸ ˜ao

Para n = 4, o total de comparac¸˜oes ´e:

1 -4 3 -4 1 -4 3 -4 1 -4 3 -4 1 -4 3 -4 4 comparac¸˜oes. 1 -4 3 -4 1 -4 3 -4 1 -4 3 -4 3 comparac¸˜oes. 1 -4 3 -4 1 -4 3 -4 2 comparac¸˜oes. 1 -4 3 -4 1 comparac¸˜ao. Logo, f (4) = 4 + 3 + 2 + 1 = 10.

(36)

O problema do subarranjo m ´aximo

An ´alise da primeira soluc¸ ˜ao

Para n = 4, o total de comparac¸˜oes ´e:

1 -4 3 -4 1 -4 3 -4 1 -4 3 -4 1 -4 3 -4 4 comparac¸˜oes. 1 -4 3 -4 1 -4 3 -4 1 -4 3 -4 3 comparac¸˜oes. 1 -4 3 -4 1 -4 3 -4 2 comparac¸˜oes. 1 -4 3 -4 1 comparac¸˜ao. Logo, f (4) = 4 + 3 + 2 + 1 = 10.

(37)

O problema do subarranjo m ´aximo

An ´alise da primeira soluc¸ ˜ao

Para n qualquer, a quantidade de comparac¸˜oes f (n) ´e dada por: f(n) = 1 + 2 + 3 + 4 + 5 + ... + (n − 2) + (n − 1) + n

S ´erie aritm ´etica

O somat´orioPn

k=1k ´e uma s´erie aritm´etica e tem o valor:

n X k=1 k= 1 2n(n + 1) Logo, f (n) = 12n2+12n.

(38)

O problema do subarranjo m ´aximo

An ´alise da primeira soluc¸ ˜ao

Para n qualquer, a quantidade de comparac¸˜oes f (n) ´e dada por: f(n) = 1 + 2 + 3 + 4 + 5 + ... + (n − 2) + (n − 1) + n

S ´erie aritm ´etica

O somat´orioPn

k=1k ´e uma s´erie aritm´etica e tem o valor:

n X k=1 k= 1 2n(n + 1) Logo, f (n) = 12n2+12n.

(39)

Crescimento de polin ˆomios

Como determinar o crescimento

Crescimento de polin ˆomios

Dado um inteiro n˜ao negativo d, um polinˆomio em n de grau d ´e uma

func¸˜ao p(n) da forma p(n) =Pd

i=0ainionde as constantes

a0, a1, ..., ads˜ao os coeficientes do polinˆomio e ad 6= 0. Um

polinˆomio ´e assintoticamente positivo se e somente se ad > 0. No

caso de um polinˆomio assintoticamente positivo p(n) de grau d, temos

que p(n) = θ(nd).

(40)

Divis ˜ao e conquista

Definic¸ ˜ao

De acordo com o paradigma de Divis˜ao e Conquista resolvemos um problema recursivamente aplicando as seguintes trˆes etapas:

Dividir o problema em certo n´umero de subproblemas que s˜ao instˆancias menores do mesmo problema.

Conquistar os subproblemas resolvendo-os recursivamente. Caso os problemas sejam suficiente pequenos basta resolvˆe-los diretamente.

Combinar as soluc¸˜oes dos subproblemas na soluc¸˜ao do problema original.

(41)

O problema do subarranjo m ´aximo

Uma soluc¸ ˜ao de divis ˜ao e conquista

Suponha que queremos determinar um subarranjo m´aximo do subarranjo A[baixo..alto].

Por Divis˜ao e Conquista dividimos o subarranjo em dois subarranjos (com tamanhos mais iguais dentro do poss´ıvel). Suponha que meio ´e o ponto m´edio do subarranjo A[baixo..alto]. Qualquer subarranjo A[i..j] de A[baixo..alto] encontra-se em:

Inteiramente em A[baixo..meio], tal que baixo ≤ i ≤ j ≤ meio. Inteiramente em A[meio + 1..alto], tal que meio < i ≤ j ≤ alto. Cruzando o ponto m´edio, tal que baixo ≤ i ≤ meio < j ≤ alto.

(42)

O problema do subarranjo m ´aximo

Uma soluc¸ ˜ao de divis ˜ao e conquista

Poss´ıveis localizac¸˜oes de subarranjos A[i..j] dentro de A[baixo..alto].

(43)

O problema do subarranjo m ´aximo

Uma soluc¸ ˜ao de divis ˜ao e conquista

Qualquer subarranjo A[i..j] dentro de A[baixo..alto] que cruze o ponto m´edio compreende dois subarranjos A[i..meio] e

(44)

O problema do subarranjo m ´aximo

Uma soluc¸ ˜ao de divis ˜ao e conquista

Um subarranjo m´aximo deve ter a maior soma dentre todos os subarranjos inteiramente em A[baixo..meio], ou inteiramente em A[meio + 1..alto], ou cruzando o ponto m´edio.

Os subarranjos m´aximos de A[baixo..meio] e A[meio + 1..alto] podem ser determinados de maneira recursiva: s˜ao subproblemas (instˆancias menores) de um problemas original.

Apesar disso, resta ainda encontrar um subarranjo m´aximo que cruze o ponto m´edio (este problema n˜ao ´e uma instˆancia menor).

(45)

O problema do subarranjo m ´aximo

Subarranjo m ´aximo que cruza o ponto m ´edio

Algoritmo: CRUZAMENTO-M ´AXIMO (A, baixo, meio, alto)

Dados: Um subarranjo A que inicia em baixo, termina em alto e tem

ponto m´edio em meio

Resultado: O subarranjo m´aximo que cruza o ponto m´edio de A:

(esq, dir, soma) de valor soma, inicia na posic¸˜ao esq e termina na posic¸˜ao dir

1 soma–esq ←− −∞;

2 soma←− 0;

3 para i ←− meio at ´e baixo fac¸a //decremento

4 soma←− soma + A[i];

5 se soma > soma–esq ent ˜ao

(46)

O problema do subarranjo m ´aximo

Subarranjo m ´aximo que cruza o ponto m ´edio

Algoritmo: CRUZAMENTO-M ´AXIMO (A, baixo, meio, alto)

Dados: Um subarranjo A que inicia em baixo, termina em alto e tem

ponto m´edio em meio

Resultado: O subarranjo m´aximo que cruza o ponto m´edio de A:

(esq, dir, soma) de valor soma, inicia na posic¸˜ao esq e termina na posic¸˜ao dir

8 soma–dir ←− −∞;

9 soma←− 0;

10 para j ←− meio + 1 at ´e alto fac¸a

11 soma←− soma + A[j];

12 se soma > soma–dir ent ˜ao

13 soma–dir ←− soma;

14 max–dir ←− j;

(47)

O problema do subarranjo m ´aximo

Exemplo: Subarranjo m ´aximo que cruza o ponto m ´edio

Um exemplo: 1 -4 3 -4 soma–esq = −∞ 1 -4 3 -4 soma–esq = −4 1 -4 3 -4 soma–esq = −3 1 -4 3 -4 soma–dir = −∞ 1 -4 3 -4 soma–dir = 3 1 -4 3 -4 soma–dir = 3

Neste caso, o subarranjo m´aximo que cruza o ponto m´edio ´e A[1..3] com soma 0.

(48)

O problema do subarranjo m ´aximo

Exemplo: Subarranjo m ´aximo que cruza o ponto m ´edio

Um exemplo: 1 -4 3 -4 soma–esq = −∞ 1 -4 3 -4 soma–esq = −4 1 -4 3 -4 soma–esq = −3 1 -4 3 -4 soma–dir = −∞ 1 -4 3 -4 soma–dir = 3 1 -4 3 -4 soma–dir = 3

Neste caso, o subarranjo m´aximo que cruza o ponto m´edio ´e A[1..3] com soma 0.

(49)

O problema do subarranjo m ´aximo

Exemplo: Subarranjo m ´aximo que cruza o ponto m ´edio

Um exemplo: 1 -4 3 -4 soma–esq = −∞ 1 -4 3 -4 soma–esq = −4 1 -4 3 -4 soma–esq = −3 1 -4 3 -4 soma–dir = −∞ 1 -4 3 -4 soma–dir = 3 1 -4 3 -4 soma–dir = 3

Neste caso, o subarranjo m´aximo que cruza o ponto m´edio ´e A[1..3] com soma 0.

(50)

O problema do subarranjo m ´aximo

Exemplo: Subarranjo m ´aximo que cruza o ponto m ´edio

Um exemplo: 1 -4 3 -4 soma–esq = −∞ 1 -4 3 -4 soma–esq = −4 1 -4 3 -4 soma–esq = −3 1 -4 3 -4 soma–dir = −∞ 1 -4 3 -4 soma–dir = 3 1 -4 3 -4 soma–dir = 3

Neste caso, o subarranjo m´aximo que cruza o ponto m´edio ´e A[1..3] com soma 0.

(51)

O problema do subarranjo m ´aximo

Exemplo: Subarranjo m ´aximo que cruza o ponto m ´edio

Um exemplo: 1 -4 3 -4 soma–esq = −∞ 1 -4 3 -4 soma–esq = −4 1 -4 3 -4 soma–esq = −3 1 -4 3 -4 soma–dir = −∞ 1 -4 3 -4 soma–dir = 3 1 -4 3 -4 soma–dir = 3

Neste caso, o subarranjo m´aximo que cruza o ponto m´edio ´e A[1..3] com soma 0.

(52)

O problema do subarranjo m ´aximo

Exemplo: Subarranjo m ´aximo que cruza o ponto m ´edio

Um exemplo: 1 -4 3 -4 soma–esq = −∞ 1 -4 3 -4 soma–esq = −4 1 -4 3 -4 soma–esq = −3 1 -4 3 -4 soma–dir = −∞ 1 -4 3 -4 soma–dir = 3 1 -4 3 -4 soma–dir = 3

Neste caso, o subarranjo m´aximo que cruza o ponto m´edio ´e A[1..3] com soma 0.

(53)

O problema do subarranjo m ´aximo

Exemplo: Subarranjo m ´aximo que cruza o ponto m ´edio

Um exemplo: 1 -4 3 -4 soma–esq = −∞ 1 -4 3 -4 soma–esq = −4 1 -4 3 -4 soma–esq = −3 1 -4 3 -4 soma–dir = −∞ 1 -4 3 -4 soma–dir = 3 1 -4 3 -4 soma–dir = 3

Neste caso, o subarranjo m´aximo que cruza o ponto m´edio ´e A[1..3] com soma 0.

(54)

Subarranjo m ´aximo que cruza o ponto m ´edio

An ´alise

Qual o custo de CRUZAMENTO-M ´AXIMO?

Cada elemento do subarranjo A ´e somado, ap´os isso, o valor de soma m´axima ´e comparado com a soma atual.

Para n elementos de A s˜ao executadas n comparac¸˜oes de soma m´axima.

(55)

Subarranjo m ´aximo que cruza o ponto m ´edio

An ´alise

Qual o custo de CRUZAMENTO-M ´AXIMO?

Cada elemento do subarranjo A ´e somado, ap´os isso, o valor de soma m´axima ´e comparado com a soma atual.

Para n elementos de A s˜ao executadas n comparac¸˜oes de soma m´axima.

(56)

Subarranjo m ´aximo que cruza o ponto m ´edio

An ´alise

Qual o custo de CRUZAMENTO-M ´AXIMO?

Cada elemento do subarranjo A ´e somado, ap´os isso, o valor de soma m´axima ´e comparado com a soma atual.

Para n elementos de A s˜ao executadas n comparac¸˜oes de soma m´axima.

(57)

O problema do subarranjo m ´aximo

Uma soluc¸ ˜ao eficiente

Algoritmo: SUBARRANJO-M ´AXIMO (A, baixo, alto)

Dados: Um subarranjo A que inicia em baixo e termina em alto

Resultado: O subarranjo m´aximo de A: (esq, dir, soma) de valor soma, inicia em esq e

termina em dir

1 se alto == baixo ent ˜ao

2 retorna (baixo, alto, A[baixo]); 3 sen ˜ao

4 meio←− b(baixo + alto)/2c;

5 (baixo–esq, alto–esq, soma–esq) ←− SUBARRANJO-M ´AXIMO (A, baixo, meio);

6 (baixo–dir, alto–dir, soma–dir) ←− SUBARRANJO-M ´AXIMO (A, meio + 1, alto);

7 (baixo–crz, alto–crz, soma–crz) ←− CRUZAMENTO-M ´AXIMO (A, baixo, meio, alto);

8 se soma–esq ≥ soma–dir e soma–esq ≥ soma–crz ent ˜ao

9 retorna (baixo–esq, alto–esq, soma–esq);

10 sen ˜ao se soma–dir ≥ soma–esq e soma–dir ≥ soma–crz ent ˜ao 11 retorna (baixo–dir, alto–dir, soma–dir);

(58)

O problema do subarranjo m ´aximo

Exemplo: soluc¸ ˜ao de divis ˜ao e conquista

Um exemplo: A[1..1] : soma–esq = 1 A[2..2] : soma–dir = −4 A[1..2] : soma–crz = −3 1 -4 3 -4 1 -4 3 -4 1 -4 3 -4 A[1..1] : soma–esq = 1 A[3..3] : soma–dir = 3 A[1..3] : soma–crz = 0 A[3..3] : soma–esq = 3 A[4..4] : soma–dir = −4 A[3..4] : soma–crz = −1

(59)

Soluc¸ ˜ao de divis ˜ao e conquista

An ´alise

Qual o custo de SUBARRANJO-M ´AXIMO?

Denotamos T(n) como o tempo de execuc¸˜ao de

SUBARRANJO-M ´AXIMO para um subarranjo de n elementos.

Para simplificac¸˜ao de an´alise: o tamanho original do problema ´e uma potˆencia de 2.

(60)

Soluc¸ ˜ao de divis ˜ao e conquista

An ´alise

Qual o custo de SUBARRANJO-M ´AXIMO?

Denotamos T(n) como o tempo de execuc¸˜ao de

SUBARRANJO-M ´AXIMO para um subarranjo de n elementos.

Para simplificac¸˜ao de an´alise: o tamanho original do problema ´e uma potˆencia de 2.

(61)

Soluc¸ ˜ao de divis ˜ao e conquista

An ´alise

Caso recursivo: quando n > 1 temos o tempo de:

Teste do caso: θ(1).

Custo da resoluc¸˜ao de cada subproblema: T(n/2). Custo de CRUZAMENTO-M ´AXIMO: θ(n).

Custo das comparac¸˜oes finais (para combinac¸˜ao): θ(1).

No caso recursivo:

(62)

Soluc¸ ˜ao de divis ˜ao e conquista

An ´alise

Tempo de execuc¸ ˜ao T(n) para SUBARRANJO-M ´AXIMO

T(n) = (

θ(1), se n = 1

2T(n/2) + θ(n), se n > 1

Podemos reescrever a equac¸˜ao da seguinte forma (c ´e uma constante):

Equac¸ ˜ao de recorr ˆencia T(n) para SUBARRANJO-M ´AXIMO

T(n) = (

c, se n = 1

(63)

O problema do subarranjo m ´aximo

´

Arvore de recurs ˜ao

´

Arvore de recurs˜ao: lg n + 1 n´ıveis, cada um com custo cn. Soluc¸˜ao: T(n) = (lg n + 1)(cn) = cn lg n + cn = θ(n lg n).

(64)

´

Referências

Documentos relacionados

Para se candidatar ao apoio o cidadão nacional tem de ter emigrado até dia 31 de dezembro de 2015, inclusive. No caso de ser familiar de emigrante para se candidatar não precisa de

Se os personagens não intervierem com DuBois, provavelmente irão direto ver Karin, que se encontra em companhia de Alfred: ela acaba de se levantar, e Lucille está preparando seus

Quem pretender arrematar dito(s) bem(ns), deverá ofertar lanços pela Internet através do site www.leiloesjudiciais.com.br/sp, devendo, para tanto, os interessados,

Entre as estratégias de enfrentamento analisadas, os dados indicam maior frequência das Práticas Religiosas e Pensamentos Fantasiosos entre os participantes, seguida de

A seleção portuguesa feminina de andebol de sub-20 perdeu hoje 21-20 com a Hungria, na terceira jornada do Grupo C do Mundial da categoria, a decorrer em Koprivnica, na

Está prevista a redução do Conselho de Administração para 5 membros, dos quais 3 executivos e os restantes dois não executivos.. Os administradores executivos e não

Como visto no capítulo III, a opção pelo regime jurídico tributário especial SIMPLES Nacional pode representar uma redução da carga tributária em alguns setores, como o setor

Você pode usar consultas para gerar relatórios financeiros ( Como Trabalhar com Relatórios Financeiros do Oracle Profitability and Cost Management Cloud ).. Você também pode