• Nenhum resultado encontrado

Aula11-Arvores-DefinicoesTerminologiaPropriedades.pptx

N/A
N/A
Protected

Academic year: 2021

Share "Aula11-Arvores-DefinicoesTerminologiaPropriedades.pptx"

Copied!
10
0
0

Texto

(1)

Árvores    

Matemá'ca  Discreta  II   (Kenneth  Rosen,  Cap.  10)    

Slides  baseados  no  material  da  profa.  Anjolina  Grisi  de  Oliveira  (Cin-­‐UFPE)  

Árvores  

• Uma  árvore  é  um  grafo  conexo  não  orientado  e  sem   circuitos  simples  

Floresta  

• Uma  floresta  é  um  grafo  cujas  componentes  conexas   são  árvores    

Teorema  

• Um  grafo  não  orientado  é  uma  árvore  se  e  somente  se   existe  um  único  caminho  simples  entre  qualquer  par  de   vér'ces.  

• Prova  

• Assuma  que  G  é  uma  árvore.  Logo  G  é  um  grafo  conexo   e  sem  circuitos  simples.  Sejam  x  e  y  dois  nós  de  G.   Logo,  como  G  é  conexo,  existe  um  caminho  simples   entre  x  e  y.  Adicionalmente,  esse  caminho  é  único,  pois   se  exis'sse  um  outro  caminho,  o  caminho  formado   através  da  combinação  do  caminho  de  x  até  y  com  o   segundo  caminho  começando  por  y  e  chegando  a  x   formaria  um  circuito,  o  que  contraria  a  hipótese  de  que   G  é  uma  árvore.  

 

Árvore Enraizada

Uma árvore T = (V,E) é denominado enraizada quando algum vértice v é escolhido como especial. Esse vértice v é a raiz da árvore.

Árvore Enraizada

Usualmente representamos graficamente a raiz no topo. Podemos transformar uma árvore sem raiz numa árvore enraizada simplesmente escolhendo um vértice como raiz.

(2)

Árvore Enraizada

ancestrais de j={e,c} descendentes de j={i,k} pai de j=e filhos de j={i,k} nível de j=2 altura da árvore =3 folhas={b,a,i,k,f,h,d} Raiz = c

Árvore Enraizada

O nível de um vértice é o tamanho do único caminho da raiz até ele.

nível de j=2

A altura da árvore é o maior nível entre os nós. É o tamanho do maior caminho da raiz até uma das folhas.

altura da árvore =3 Raiz = c

Árvore  Enraizada  

• A  raiz  de  uma  árvore  não  possui  pai,  e  todo  vér'ce  v  diferente   de  r,  possui  um  único  pai.    

 

• Uma  folha  é  um  vér'ce  que  não  possui  filhos.    

• Vér'ces  que  possuem  filhos  são  chamados  de  vér'ces   internos.  

• Quando  a  raiz  é  o  único  nó  do  grafo  ela  é  uma  folha.  

• O  nível  da  raiz  é  zero,  de  seus  filhos  é  1.    

• O  nível  de  um  nó  é  igual  ao  nível  de  seu  pai  mais  um.  

• Para  dois  vér'ces  irmãos  v  e  w,  nível(v)=nível(w).  

• A  altura  de  uma  árvore  é  o  valor  máximo  de  nível(r)  para  todo   vér'ce  v  de  T.    

Subárvore

Seja T(V,E) uma árvore enraizada e v V.

Uma subárvore Tv de T é uma árvore enraizada cuja raiz é v, definida pelo subgrafo induzido pelos descendentes de v mais o próprio v.

A subárvore de raiz v é única para cada v V.

s v x w t u x v w

Árvore m-ária

 

• Uma  árvore  enraizada  é  chamada  de  m-­‐ária  se  todo   nó  interno  não  possui  mais  que  m  filhos.  A  árvore  é   chamada  árvore  m-­‐ária  cheia  se  todo  nó  interno   possui  exatamente  m  filhos.  Uma  árvore  m-­‐ária  com     m=2  é  chamada  de    árvore  binária.  

3-ária Binária

Árvore  m-­‐ária    

• A  árvore  é  chamada  árvore  m-­‐ária  cheia  se  todo  nó   interno  possui  exatamente  m  filhos.  Uma  árvore  m-­‐ ária  com    m=2  é  chamada  de    árvore  binária.  

Binária cheia s x w t u v z -

(3)

Árvore  m-­‐ária    

• Uma  árvore  enraizada  m-­‐ária  de  altura  h  é   balanceada  se  todas  as  folhas  estão  no  nível  h  ou  

h-­‐1.  

Árvore Balanceada?

h=3 Nível(a) =1 Não está balanceada

Árvore  Enraizada  Ordenada  

• Na  definição  de  árvore  enraizada,  é  irrelevante  a  

ordem  em  que  os  filhos  de  cada  vér'ce  v  são   considerados.    

 

• Caso  a  ordenação  seja  relevante  a  árvore  é   denominada  enraizada  ordenada.      

• Assim,  para  cada  vér'ce  v  pode-­‐se  iden'ficar  o   primeiro  filho  de  v  (o  mais  a  esquerda),  o  segundo   filho  (o  segundo  mais  a  esquerda),  etc.    

Árvore  enraizada  ordenada  

• No  caso  de  árvores  binárias,  se  um  nó  interno  possui  

dois  filhos,  temos  o  filho  da  esquerda  e  o  filho  da  

direita  

• A  árvore  cuja  raiz  é  o  filho  da  esquerda  de  um  vér'ce   é  chamada  de  subárvore  da  esquerda  desse  vér'ce.    

a d c b e b d e Subárvore da esquerda de a

Teorema

 

 

• Uma  árvore  com  n  nós  possui  n-­‐1  arestas.  

Prova

Definimos uma bijeção entre as arestas e os vértices diferentes da raiz, de forma que associamos cada vértice terminal de uma aresta com ela própria. Como existem n-1 nós além da raiz, logo existem n-1 arestas na árvore.

Teorema    

 

• Uma  árvore  m-­‐ária  cheia  com  i  nós  internos  contem  

n  =  mi  +  1  nós.  

Prova

Cada vértice com exceção da raiz é filho de um nó interno. Como cada um dos i nós internos possui m filhos, existem mi nós na árvore além da raiz. Consequentemente, a árvore contem n = mi + 1 nós.

(4)

Teorema    

• Uma  árvore  m-­‐ária  cheia  com  

I.   n  nós  possui  i=(n-­‐1)/m  nós  internos  e      f  =  ((m-­‐1)n  +1)/m  folhas  

I.   i  nós  internos  possui  n  =  mi  +  1  nós  e  f=  (m-­‐1)i  +  1  

folhas  

II.   f  folhas  possui  n  =  (mf  –  1)/(m-­‐1)  nós  e  

 i=  (f-­‐1)/(m-­‐1)  nós  internos  

Teorema  -­‐  Prova    

 

• Uma  árvore  m-­‐ária  cheia  com  n  nós  possui  i=(n-­‐1)/m   nós  internos  e  f  =  ((m-­‐1)n  +1)/m  folhas  

• Vimos  que    n=  mi  +  1,  logo  i  =  (n-­‐1)/m.  

• Temos  também  que  n  =  i  +  f,  onde  f  é  o  número  de   folhas.    

• Logo,  f  =  n  –  i;  

• f  =  n  –  (n-­‐1)/m  =  (mn  –  (n-­‐1))/m  =  (mn  –  n  +  1)/m        =  ((m-­‐1)n  +  1)/m  

Exemplo  

• Suponha  que  alguém  iniciou  uma  corrente  de  cartas.  

Cada  pessoa  que  recebe  a  carta  é  convidada  a  enviá-­‐ la  para  outras  quatro  pessoas.  Quantas  pessoas   receberam  a  carta,  incluindo  a  pessoa  que  iniciou  a   corrente,  se  nenhuma  pessoa  recebeu  mais  que  uma   carta  e  se  a  corrente  acabou  depois  que  100  pessoas   leram  a  carta  e  não  mais  a  enviaram?  Quantas   pessoas  enviaram  a  carta?  

Solução

 

A corrente pode ser representada usando uma

árvore 4-ária. Os nós internos correspondem às

pessoas que enviaram a carta, e as folhas às pessoas que não a enviaram.

Temos que 100 pessoas não enviaram a carta. Assim o número de folhas f é igual a 100.

Temos n = i + f e n = mi + 1.

Logo: 100 + i = 4.i + 1 => 3.i = 99 => i = 33

Resposta: 33 pessoas enviaram a carta

e (33*4+1)=133 pessoas a receberam

Teorema

Existem no máximo m

h

folhas em uma árvore

m-ária de altura h.

Prova: por indução sobre a altura

≤ h-1 ≤ h-1 ≤ h-1

Cada uma dessas

subárvores possui altura no máximo h-1. Portanto, pela H.I. existem no máximo mh-1

folhas em cada uma delas. Como existem no máximo m dessas subárvores, cada uma com no máximo mh-1

folhas, então existem no máximo m.mh-1 = mh folhas.

Aplicações:  Árvore  binária  de  busca    

• Busca  de  itens  numa  lista.  

• Cada  vér'ce  é  rotulado  por  uma  chave  de  forma  que  

a  chave  de  um  vér'ce  é  maior  do  que  as  chaves  de   todos  os  nós  da  subárvore  da  esquerda  e  menor  do   que  as  chaves  dos  nós  da  subárvore  da  direita.  

55 30 80 45 90 32 35 20

(5)

Construindo  uma  árvore  binária  de  

busca  

• Procedimento  recursivo  que  recebe  uma  lista  de  itens.  

• O  primeiro  item  da  lista  é  a  raiz  da  árvore.  

• Para  adicionar  um  novo  item:  

• Compare-­‐o  com  os  nós  que  já  estão  na  árvore:  comece   pela  raiz  e  siga  para  a  esquerda  se  o  item  é  menor  que   o  item  que  rotula  o  nó  que  está  sendo  comparado  ou   siga  para  a  direita,  caso  contrário.  

• Quando  o  novo  item  é  menor  que  um  item  cujo  nó  não   tem  filho  da  esquerda,  adicione-­‐o  como  filho  da   esquerda  desse  nó.  Analogamente,  quando  o  item  é   maior  que  o  item  cujo  nó  não  tem  filho  da  direita,   adicione-­‐o  como  filho  da  direita  desse  nó,  

Construindo  uma  árvore  binária  de  

busca  

• Construa  uma  árvore  binária  de  busca  a  par'r  da   seguinte  lista:     • 55,30,80,90,35,32,20,45   55 30 80 45 90 32 35 20

Exemplo:  árvore  binária  de  busca  

• Use  a  ordem  alfabé'ca  para  construir  uma  árvore  

binária  de  busca  com  as  palavras:  mathema4cs,  

physics,  geography,  zoology,  meteorology,  geology,   psychology,  e  chemistry  

Caminhado  em  árvores  enraizadas  e  

ordenadas  

• Procedimento  universal  para  ordenar  os  seus  nós:  

1. Rotule  a  raiz  com  o  inteiro  0.  Em  seguida  rotule   seus  k  filhos  da  esquerda  para  direita  com   1,2,3,....,k.  

2. Para  cada  vér'ce  v  no  nível  n  com  rótulo  A,  rotule  

seus    k  filhos  da  esquerda  para  a  direita  com  A.1,   A.2,  ...A.k.    

Exemplo

0 3.1 3.2 3 2 1.1.1 1.1 1 1.2 1.1.2 1.1.2.3 1.1.2.1 3.1.2 3.3 3.1.1

Procedimento  universal  para  ordenar  

os  nós  

 

• Podemos  ordenar  os  nós  usando  a  ordem   lexicográfica  de  seus  rótulos.  

• Os  vér'ces  x1.x2...xn    <  y1.y2...ym    se  

• existe  um  i,  0  ≤    i  ≤    n,  com  x1=  y1,  x2=y2,  ...xi-­‐1  =  yi-­‐1  e  xi<  yi;          

(6)

Ordem  lexicográDica  

• Exemplo   n < m e xi=yi, para i =1,2,...,n. 1.2.2 < 1.2.2.1 ? n=3 < m=4 e 1=1, 2=2, 2=2 x1.x2....xn < y1.y2....ym se existe um i, 0 ≤ i ≤ n,

com x1= y1, x2=y2, ...xi-1 = yi-1 e xi< yi

1.2.1 < 1.2.2 ?

i=3: 1=1, 2=2 e 1<2

Algoritmos  de  caminhamento  em  

árvores  

• Procedimentos  para  visitar  sistema'camente  todos   os  vér'ces  de  uma  árvore  

• Pré-­‐ordem  

• Ordem  

• Pós-­‐ordem  

Caminhamento  em  pré-­‐ordem  

• Seja  T  uma  árvore  enraizada  e  ordenada  com  raiz  r.    

• Se  T  possui  apenas  r,  então  o  caminhamento  em   pré-­‐ordem  de  T  é  r.    

• Caso  contrário,  sejam  T1,  T2,...  Tn  as  subárvores  de  r  

da  esquerda  para  a  direita.  O  caminhamento  em   pré-­‐ordem  começa  visitando  r  e  con'nua  fazendo   um  caminhamento  em  pré-­‐ordem  em  T1,  em  

seguida  em  T2,  e  assim  sucessivamente  até  que  Tn  

seja  percorrida  em  pré-­‐ordem.  

Exemplo

a g h d c j e b f k p o n m i l

Paralelamente  

Caminhamento  em  ordem  

Seja T uma árvore enraizada e

ordenada com raiz r.

•  Se T possui apenas r, então o

caminhamento em ordem de T é r. •  Caso contrário, sejam T1, T2,... Tn as

subárvores de r da esquerda para a direita. O caminhamento em ordem começa fazendo um percurso em ordem em T1, em seguida visita r, e continua fazendo um caminhamento em ordem em T2, em T3 , e finalmente em Tn .

(7)

Exemplo

Caminhamento em pós-ordem  

Seja T uma árvore enraizada e

ordenada com raiz r.

Se T possui apenas r, então o

caminhamento em pós-ordem de T é r.

Caso contrário, sejam T

1

, T

2

,... T

n

as

subárvores de r da esquerda para a

direita. O caminhamento em pós-ordem

começa percorrendo T

1

em pós-ordem,

em seguida T

2

, T

3

, ... T

n

, e finaliza

visitando r.

Exemplo  

Resumo:  caminhamento  em  árvores  

• Pré-­‐ordem  

• Primeira  vez  que  a  seta   passa  pelo  vér'ce  

• a,  b,  d,  h,  e,  i,  j,  c,  f,  g,  k   • Ordem  

• Folhas  na  primeira  vez  e   vér'ces  internos  na   segunda  vez  

• h,  d,  b,  i,  e,  j,  a,  f,  c,  k,  g  

• Pós-­‐ordem  

• Segunda  vez  que  passa   pelo  vér'ce  (subida)  

• h,  d,  i,  j,  e,  b,  f,  k,  g,  c,  a  

Notação  inDixa,  pré-­‐Dixa  e  pós-­‐Dixa  

• Podemos  representar  expressões  complicadas,  tais  

como  proposições  compostas,  combinações  de   conjuntos,  e  expressões  aritmé'cas  usando  árvores   enraizadas  ordenadas.  

•   O  nós  internos  representam  operações  

•   As  folhas  representam  as  variáveis  ou  valores  

•   As  operações  são  executadas  na  subárvore  da   esquerda  e  depois  na  direita  

Notação infixa: exemplo

Árvore que representa a expressão ((x+y)^2) + ((x-4)/3):

•  A árvore binária é construída de baixo para cima.

•  Construímos a subárvore (x+y), depois a incorporamos como parte de uma subárvore maior que representa (x+y)^2.

+

x y

+ 2

(8)

Notação infixa:

((x+y)^2) + ((x-4)/3)

•  Do mesmo modo a subárvore (x-4) é construída e incorporada à subárvore maior de (x-4)/3

+ x y + x y 2 ^ - x 4 - x 4 3 /

Notação infixa:

((x+y)^2) + ((x-4)/3)

Por último as subárvore de ((x+y)^2) e de

((x-4)/3) são combinadas para formar a expressão

toda + x y 2 ^ - x 4 3 / +

Caminhamento em ordem:

((x+y)^2) + ((x-4)/3) + x y 2 ^ - x 4 3 / +

Notação  polonesa  

• O  operador  precede  seus  dois  operandos  

• Ex:  +  x  y  à  x+y  

• Expressão  pode  ser  avaliada  da  direita  para  a   esquerda  

• Quando  encontrar  um  operador,  realizar  a  

operação  com  os  dois  operandos  imediatamente  a   direita  

• Não  necessita  de  parênteses  

Qual é a forma pré-fixa (notação polonesa) da expressão

((x+y)^2) + ((x-4)/3) ?

Fazemos um caminhamento em pré-ordem

+ ^ + x y 2 / - x 4 3 + x y 2 ^ - x 4 3 / +

Qual o valor da expressão

+ - * 2 3 5 / ^2 3 4 ?

+ - * 2 3 5 / ^2 3 4

+ - * 2 3 5 / 8 4

+ - * 2 3 5 / 8 4

+ - * 2 3 5 2

3

2

* 2 3 5 2

+ -

6 5 2

+ -

6 5 2

+ -

1

- 6 5

+

+

2

1

+

2

(9)

Qual é a forma pós-fixa da expressão

((x+y)^2) + ((x-4)/3) ?

Fazemos um caminhamento em pós-ordem

x y + 2 ^ x 4 – 3 / + + x y 2 ^ - x 4 3 / +

- Notação polonesa reversa - Interpretada da esquerda para direita

Qual o valor da expressão em notação

pós-fixa?

7 2 3 * - 4 ^9 3 / +

Encontre a árvore enraizada ordenada que representa a seguinte proposição composta (¬(pΛq))↔(¬p v ¬q) Λ p q p v ¬ q ¬ Λ p q ¬ p ¬ q ¬ p v ¬ q ¬ Λ p q ¬

Forneça a notação pré-fixa e pós-fixa dessa expressão (¬(pΛq))↔(¬p v ¬q) p v ¬ q ¬ Λ p q ¬ Pré-fixa: ↔¬Λpqv¬p¬q Pós-fixa: pqΛ¬p¬q¬v↔

A expressões em notação pré-fixa e pós-fixa não são ambíguas. Por esse motivo, são utilizadas em computação. Especialmente na construção de compiladores

Desenhe a árvore enraizada ordenada da seguinte expressão aritmética escrita usando a notação pré-fixa.

+ * + - 5 3 2 1 4

Em seguida, escreva a mesma expressão em notação infixa. - 2 + 1 * 4 + ((((5-3)+2)*1)+4)

Mais  aplicações  de  árvores  

• Árvores  de  decisão  

• Importantes  para  extração  de  regras  /  aprendizagem  de   máquina  

• Código  de  prefixo  

• Pode  ser  usado  em  compactação  de  arquivos  ou   criptografia  

• Sequências  de  bits  menores  para  caracteres  mais  frequentes  

• Considere  o  problema  em  que  letras  são  codificadas  por   sequências  de  bits  

• Uma  maneira  de  garan'r  que  nenhuma  sequência  de  bits   corresponde  a  mais  de  uma  sequência  de  letras,  é  escolher   códigos  de  forma  que  a  cadeia  de  bits  para  uma  letra  nunca  

(10)

Código  de  preDixo  

Exemplo  

• Decodificação  

• Percorrer  a  sequência   de  bits  até  encontrar   uma  folha  

• Decodificar  a  sequência:  

• 11111011100  

Huffman  Codes  

• U'liza  a  frequência  dos  símbolos  em  uma  sequência   (probabilidade  de  ocorrência)  e  a  codifica  u'lizando   a  menor  quan'dade  possível  de  bits,  dentre  todos  os   códigos  de  prefixo  possíveis  

• U'lizado  em  compressão  de  textos,  imagens  e   áudio  

Huffman  Codes  

• Algoritmo:  

• Inicia  com  uma  floresta  de  árvores  com  apenas  um   vér'ce,  cada  qual  representando  um  símbolo  

• Cada  vér'ce  tem  a  ele  associado  um  peso   (frequência)  

• A  cada  passo,  combinar  duas  árvores  contendo  o  

menor  peso  total,  introduzindo  uma  nova  raiz  

• Colocar  a  árvore  com  maior  peso  a  esquerda  e  a  de   menor  peso  a  direita  

• Atribuir  à  árvore  gerada  a  soma  dos  pesos  das   árvores  compostas  

Huffman  Codes  

Exemplo  

• Codificar  os  seguintes  símbolos  de  acordo  com  suas   frequências:  

• A:  0.08,  B:  0.10,  C:  0.12,  D:  0.15,  E:  0.20,  F:  0.35.   • Qual  o  número  médio  de  bits  usado  para  codificar  

um  caractere?  

• A  grosso  modo,  precisaríamos  de:  

• 6  valores  è  3  bits  (23=8)  

• U'lizando  o  algoritmo   de  huffman,  temos:  

• A:111   • B:110   • C:011   • D:010   • E:10   • F:00  

• O  tamanho  médio  de   bits  é:  

3*0.08  +  3  .0.10  +  3  .0.12  +  3  .0.15   +  2  .  0.20  +  2  .  0.35  =  2.45.  

Referências

Documentos relacionados

CAMPO VILAFRANQUENSE NR.2 Campo Campo Campo Campo Campo Campo Campo Campo.. ALVERCA

b) Execução dos serviços em período a ser combinado com equipe técnica. c) Orientação para alocação do equipamento no local de instalação. d) Serviço de ligação das

bastando igualar-se ao último lance ofertado, o que não interfere na continuidade da disputa, nesse caso, o interessado deverá avisar ao Leiloeiro no início do leilão sobre

Vou expor, na medida do possível, parte da conversa na qualificação que considero interessante para 

Para obter detalhes sobre como montar a unidade principal na parede, consulte as instruções incluídas com o suporte para parede1. Entre em contato com seu revendedor local para

Neste capítulo foi abordada uma visão microscópica da estimação precisa da frequência de componentes sinusoidais individuais. De modo a analisar o desempenho de cada um dos

Em muitas ocasiões o desejo de amar ao outro e de sentir-se amado, faz que se queira viver em intensidade e de forma imediata o amor, adiantando-se muitos gestos de amor que não

Tópicos em Direito Penal B: Direito Internacional dos Direitos Humanos nas Américas- Dos movimentos sociais à Comissão e à Corte Interamericana de Direitos Humanos ( Aula com a