Sie sind auf Seite 1von 12

Teoria da Computação

Aula 3: Teoria dos Grafos – parte 2

Apresentação
Esta aula consiste em apresentar as de nições e propriedades de árvores e sistemas de estados nitos.

Objetivos
Descrever os tipos de árvores e sua de nição;

Analisar os sistemas de estados nitos;

Narrar os conteúdos a serem estudados, como: Autômatos Finitos e Expressões Regulares, Linguagens Livres de
Contexto, Gramática Livre de Contexto, Máquina de Turing e Complexidade.

Árvores e sistema de estados nitos


Árvores
Em nosso dia a dia nos deparamos com muitos exemplos de árvores:

Árvore genealógica.

Organograma de uma empresa.

Tabela de um torneio esportivo.

Na computação, as árvores podem ser usadas para representar:

Organização da estrutura de arquivos (diretório).

Armazenamento e busca e ciente de dados.

Ordenação.

Árvores de decisão.
De nições em árvores
Filho: Nome dado quando se tem um vértice x que é lho de um vértice y.

Pai: Ancestral próprio mais próximo. A raiz é o único nó sem pai.

Folha: Vértice sem lhos.

Nó interno: Vértice que não é folha.

Grau: O grau de um vértice y é o número de lhos de y.

Profundidade: É o comprimento a partir da raiz r até o vértice x

Altura:
A altura de um nó em uma árvore é o maior comprimento do nó até uma folha.

A altura de uma árvore é a altura de sua raiz.

A altura da árvore é a maior profundidade de qualquer nó da árvore.


Essa árvore tem profundidade 2 e altura 3, onde os seus vértices apresentam os seguintes graus:

G(x) = 2
G(y) = 1
G(z) = 0
G(k) = 0

Propriedades em árvores

diâmetro
excentricidade de um
O diâmetro de uma árvore é raio
vértice
calculado de maneira similar ao de O raio de uma árvore é a
A excentricidade de um vértice é a
um grafo que não é árvore. Ele excentricidade mínima de qualquer
maior distância entre ele e
corresponde a maior distância vértice do grafo.
qualquer vértice do grafo.
entre qualquer par de vértices.

Tipos de árvores
Árvore enraizada
Tipo especial de árvore que apresenta um vértice (raiz) que se distingue dos demais. Exemplo:
Árvore livre
É uma árvore não enraizada, ou seja, não apresenta um vértice (raiz) que se distingue dos demais.

Árvore binária
Estrutura de vértices que é de nida por meio de um conjunto de vértices, onde:

Não contém nenhum nó.

É formada por três conjuntos disjuntos: um vértice raiz, duas sub- árvores binárias (vértices à direita da raiz e vértices à
esquerda da raiz).

Conceitos em árvores binárias


Árvore vazia ou nula: Não contém nenhum vértice.

Filho da esquerda: raiz da subárvore da esquerda (quando houver).

Filho da direita: raiz da subárvore da direita (quando houver).

Filho ausente: quando a subárvore é árvore nula.

Exemplo de árvore binária:


Criando árvores binárias
Se a árvore tiver uma raiz em especí co, o próximo nó a ser inserido será comparado com a raiz da seguinte maneira:

Se o valor do vértice for maior que o valor da raiz, então é inserido à direita.

Se o valor do vértice for menor que o valor da raiz, então é inserido à esquerda.

Excluindo nós:
Caso 1: O nó não tem lhos, então apenas remova.
Caso 2: O nó temi apenas um único lho, então remova o pai e coloque o lho no lugar.
Caso 3 (pode usar duas maneiras diferentes):
Substituir pelo maior nó da subárvore da esquerda.

Substituir pelo menor nó da subárvore da direita. Em seguida, deletar o nó usado e, após a


exclusão, substituir usando o Caso 1 ou o Caso 2.

Percorrendo árvores binárias


É possível percorrer (ordenar certos vértices) árvores binárias seguindo determinadas ordens:

Ordem: Esquerda, centro e direita.

Pré-ordem: Centro, esquerda e direita.

Pós-ordem: Esquerda, direita e centro.

Exemplo: Para a árvore binária abaixo, aplique os três percursos de ordenação.


Clique nos botões para ver as informações.

Ordem 

Ordem: D, B, E, A, C, F:
No percurso ordenado ele irá até o nó mais profundo à esquerda (D) e, depois, faz comparações:

1. O nó mais à esquerda é uma raiz, logo é percorrido.

2. O nó mais à esquerda tem “ lhos”?


a. Se sim, o lho de D ( lho à direita) é percorrido logo após. Como D é o vértice mais à esquerda,
já é considerado que ele não tem lho à esquerda, ou seja, se D tivesse lho à esquerda, seu
lho seria marcado primeiro e, depois, D.

b. Se não, volte para o “pai”.

Como D não tem lhos, voltará para o pai de D (B) que é uma raiz, será marcado e também faz comparações:

1. O nó à esquerda de B foi percorrido (esquerda) e B também foi percorrido. Falta, apenas, o lho à direita de B
(E).

2. Se o nó à direita de B (E) tiver lho à esquerda, percorrer o lho à esquerda de E primeiro e, depois, percorrer E.
Se o nó à direita de B (E) não tiver lhos, ou tiver lho à direita, marque E. Se o nó à direita de B (E) tiver lho à
direita, marque E e, depois, percorra o lho de E.

Como E também não tem lhos volta para o pai, que é B, e também já foi percorrido. O ideal, então, é voltar para o pai
de B, que é A. Os nós à esquerda de A já foram percorridos, então marcar A e, depois, percorrer os lhos à direita de A
seguindo esses mesmos conceitos. Logo, a ordem será: D, B, E, A, C, F.
Pré-ordem 

No percurso pré-ordenado ele irá marcar sempre a raiz primeiro. Em seguida, irá até o nó à esquerda (B) e, após, para
os nós à direita. Ou seja, A será o primeiro vértice marcado, depois ele faz as seguintes comparações:
1. A tem lho à esquerda?
a. Se sim, marque o lho de A (B).

b. Se não, vá para o lho à direita de A e marque-o.

c. Se não tiver lhos, volte para o pai.

Como A tem lho à esquerda e esse lho é raiz, então ele é marcado (B). As comparações continuam:
1. B tem lho à esquerda?
a. Se sim, marque o lho de B (D).

b. Se não, vá para o lho à direita de B e marque-o.

c. Se não tiver lhos, volte para o pai.

Como B tem lho à esquerda e esse lho é raiz, então ele é marcado (D). E as comparações continuam:
1. D tem lho à esquerda?
a. Se sim, marque o lho de D.

b. Se não, vá para o lho à direita de D e marque-o.

c. Se não tiver lhos, volte para o pai (B).

Como D não tem lhos, voltará ao pai que é B. Como B e D já foram marcados, agora o lho à esquerda de B será
percorrido (E). Como E não tem lhos, voltará para B (se E tivesse lhos, o processo realizado acima seria feito).

Como B e seus lhos já foram marcados, voltará para o pai de B (A).

Como A e seus lhos à esquerda já foram percorridos, faltarão os vértices à direita. Logo, é aplicado novamente esse
passo a passo.
Pós-ordem 

Pós-ordem: D, E, B, F, C, A:
No percurso pós-ordenado ele irá marcar sempre o elemento mais profundo à esquerda (D). Em seguida, irá até o nó
à direita (E) e, após, para os nós raízes. Ou seja, D será o primeiro vértice marcado e, depois, ele faz as seguintes
comparações:
1. A tem lho à esquerda?
a. Se sim, marque o lho de D antes de D.

b. Se não, vá para o lho à direita de D e marque-o.

c. Se não tiver lho, vá para o pai de D, porém o pai (B) não deverá ser marcado, pois ele pode ter
lhos à direita. 

Como B tem lho à direita, então ele é marcado (E). E as comparações continuam:
1. A tem lho à esquerda?
a. Se sim, marque o lho de B antes (já foi marcado).

b. Se não, vá para o lho à direita de B e marque-o.

c. Se não tiver lhos, volte para a raiz (B) e marque-a.

Como B tem lho à direita, ele é marcado. Logo após é voltado para a raiz B que também é marcada ( lhos à esquerda de
B e à direita já foram marcados). Volta-se, então, para o pai de B que é A, no entanto, ele não é marcado, pois tem lhos à
direita. É feito novamente o passo a passo descrito acima.

Sistema de estados nitos


Um sistema de estados nitos é um seguimento matemático de sistema de nido por entradas e saídas onde conta com
número nito e prede nido de estados. Um estado são informações usadas para determinar as ações próximas a elas.

Exemplo

Elevador
Estado: "Andar corrente" e "direção de movimento".
Entrada: Requisições pendentes.

Processador de texto
Estado: Memoriza o modelo estrutural do pre xo da palavra em observação.
Entrada: Texto.

A arquitetura de von Neumann em computadores (arquitetura de computadores com certas propriedades) pode ser abordada
com o uso de processadores e memórias em um sistema de estados nitos, porém a computabilidade (resolução efetiva de
problemas) exige uma memória sem limite prede nido. Quando se fala em computabilidade, a Máquina de Turing (computador
onde seu funcionamento depende apenas de conceitos lógicos) é mais adequada para esse estudo.
Atividade
1. Desenhar a árvore representada pela tabela a seguir, com lhos direito e esquerdo (a raiz é o nó 1).

Nó Filho esquerdo Filho direito

1 2 0

2 3 4

3 0 0

4 5 6

5 0 0

6 0 0
Atividade
2. Dada a árvore abaixo, indicar:

a. Os nós folhas e o grau de cada nó da árvore. 

b. Os descendentes dos nós casa, azul e mas.

Atividade
3. Considerando um espaço de estados onde o estado inicial (raiz) é o número 1 e a função sucessor para o estado n retorna dois
estados, com os números 2n e 2n + 1. (0,3). Desenhar a porção do espaço de estados correspondente aos estados 1 a 15.
Atividade
4. Considerando a árvore binária abaixo, fazer os percursos de ordenação.

Atividade
5.Considerando a árvore binária acima, descrever o seu sistema de estados nitos.

Notas

Título modal 1

Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográ ca e de impressos. Lorem Ipsum é simplesmente
uma simulação de texto da indústria tipográ ca e de impressos. Lorem Ipsum é simplesmente uma simulação de texto da
indústria tipográ ca e de impressos.

Título modal 1
Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográ ca e de impressos. Lorem Ipsum é simplesmente
uma simulação de texto da indústria tipográ ca e de impressos. Lorem Ipsum é simplesmente uma simulação de texto da
indústria tipográ ca e de impressos.

Referências

HOPCROFT, Ullman and Motwani. Introdução à teoria dos autômatos, linguagens e computação. Tradução da 2.ed. original de
Vandenberg D. de Souza. Rio de Janeiro: Elsevier, 2002 (tradução de: Introduction to automata theory, languages, and
computation – ISBN 85-352-1072-5).

SIPSER, Michael. Introdução à teoria da computação. Tradução técnica de Rui José Guerra Barretto de Queiroz. Revisão
técnica de Newton José Vieira. São Paulo: Thomson Learning, 2007 (título original: Introduction to the theory of computation.
“Tradução da segunda edição norte-america” – ISBN 978-85-221-0499-4).

Próxima aula

Autômatos nitos e expressões regulares;

Autômatos nitos;

Autômatos nitos determinísticos;

Autômatos nitos indeterminísticos;

Equivalência entre autômatos nitos determinísticos e indeterminísticos.

Explore mais

Leia os seguintes livros:

Linguagens Formais e Autômatos, de Paulo Blauth Menezes (Editora Sagra Luzzatto).

Automata Theory with Modern Applications, de James A. Anderson (Cambridge University Press).

Das könnte Ihnen auch gefallen