Você está na página 1de 22

ARA0175-ALGORITMOS EM GRAFOS

MATRIZ DE ADJACÊNCIA E LISTA DE ADJACÊNCIA


Tema

MATRIZ DE ADJACÊNCIA E LISTA DE ADJACÊNCIA

ARA0175-ALGORITMOS EM GRAFOS 2
Agenda

• Objetivos da aula
• Contexto
• Introdução
• Tipos de Matriz
- Simples
- Direcionada
• Matriz de Adjacência
• Lista de Adjacência
• Kahoot

ARA0175-ALGORITMOS
AULA 1: APRESENTAÇÃO
EM DA
GRAFOS
DISCIPLINA
Objetivos

-Compreender matriz de adjacência ;

-Compreender lista de adjacência;

-Construir uma matriz/lista de adjacência;

ARA0175-ALGORITMOS
AULA 1: APRESENTAÇÃO
EM DA
GRAFOS
DISCIPLINA
Contexto

A teoria dos grafos apresenta diversas formas de representa-los e a


matriz de adjacência é uma delas, outra forma é a lista de Adjacência,
que também podem ser implementadas a partir de uma Grafo simples
ou direcionado (orientado).

ARA0175-ALGORITMOS
AULA 1: APRESENTAÇÃO
EM DA
GRAFOS
DISCIPLINA
Conceitos e formalização de grafos

O que é uma matriz de adjacência?


é uma matriz de representação de grafos, onde os elementos podem ser booleanos
e acessados de maneira direta.

Grafo simples não direcionado

ARA0175-ALGORITMOS
AULA 1: APRESENTAÇÃO
EM DA
GRAFOS
DISCIPLINA
Conceitos e formalização de grafos

O que é uma matriz de adjacência?


é uma matriz de representação de grafos, onde os elementos podem ser booleanos
e acessados de maneira direta.
Para representar um grafo não direcionado, simples e
Onde, sem pesos nas arestas, basta que as entradas aij da
matriz A contenham 1 se vi e vj são adjacentes e 0 caso
contrário.
Observação: um grafo simples retorna uma matriz booleana, ou seja, composta
por 0 e 1

ARA0175-ALGORITMOS
AULA 1: APRESENTAÇÃO
EM DA
GRAFOS
DISCIPLINA
Matriz de Adjacência

O primeiro passo é identificar no grafo quem são os vértices e suas respectivas arestas,

caso os tenham G = (V, A),onde V é o conjunto de vértices e A é o conjunto de arestas.


V = (A ,B ,C ,D ,E)
A

E B
Possíveis arestas:
A = { (A,B) ;(B,A);(A,E);(E,A);(B,C);(C,B);(C,D);(D,C);(D,E);(E,D)}
D C

ARA0175-ALGORITMOS
AULA 1: APRESENTAÇÃO
EM DA
GRAFOS
DISCIPLINA
Posicionamento dos elementos da matriz de Adjacência
linha i=1 primeira linha
coluna j=1 primeira coluna
Matriz n x n linha i=1 primeira linha
coluna j=2 segunda coluna
linha i=1 primeira linha
coluna j=3 terceira coluna
“i” = linha A B C D E linha i=1 primeira linha
coluna j=4 quarta coluna
A
Onde,
B linha i=1 primeira linha
coluna j=5 quinta coluna
C
“j” = coluna
D
E
Diagonal principal da matriz
ARA0175-ALGORITMOS
AULA 1: APRESENTAÇÃO
EM DA
GRAFOS
DISCIPLINA (a11,a22, a33, a44 e a55)
Posicionamento dos elementos da matriz de Adjacência
linha i=A primeira linha
coluna j=A primeira coluna
Matriz n x n linha i=A primeira linha
coluna j=B segunda coluna
linha i=A primeira linha
coluna j=C terceira coluna
“i” = linha A B C D E linha i=A primeira linha
coluna j=D quarta coluna
A AA AB A C AD A E
Onde,
B BA BB B C B D B E linha i=A primeira linha
CA coluna j=E quinta coluna
C CB C C C D C E
“j” = coluna
D DA DB D C DD D E
E E A EB E C E D E E Diagonal principal da matriz
(AA, BB, CC, DD, EE)
ARA0175-ALGORITMOS
AULA 1: APRESENTAÇÃO
EM DA
GRAFOS
DISCIPLINA
Definição da matriz de Adjacência

Matriz n x n
“i” = linha A B C D E
A 0 1 0 0 1
Onde,
B 1 0 1 0 0
C 0 1 0 1 0
“j” = coluna
D 0 0 1 0 1
E 1 0 0 1 0

Diagonal principal da matriz


(0, 0, 0, 0, 0)
ARA0175-ALGORITMOS EM GRAFOS
Definição da matriz de Adjacência

Matriz n x n
“i” = linha A B C D E
Observe que a
A 0
parte da diagonal
1 0 0 1 superior da matriz
Onde,
B 1 0 1 é igual a parte
0 0
diagonal inferior.
C 0 1 0 1 0
“j” = coluna
D 0 0 1 0 1
E 1 0 0 1 0

Observação I: o grafo simples retornou uma matriz booleana composta por 0 e 1 ObservaçãoII: se a Diagonal principal
da matriz for igual a zero é porque o
grafo não possui laço.
ARA0175-ALGORITMOS EM GRAFOS
(0, 0, 0, 0, 0)
Matriz de Adjacência com grafo direcionado ou orientado

O primeiro passo é identificar no grafo quem são os vértices e suas respectivas arestas,

caso os tenham G = (V, A),onde V é o conjunto de vértices e A é o conjunto de arestas.


V = (A ,B ,C ,D)
A
A = { (A,B);(A,E);(B,D) ;(D,A);(D,C)}
C B

ARA0175-ALGORITMOS
AULA 1: APRESENTAÇÃO
EM DA
GRAFOS
DISCIPLINA
Matriz de Adjacência com grafo direcionado

V = (A ,B ,C ,D)
A = { (A➔B);(A➔C);(B➔D);(D➔A);(D➔C)}
A B C D
A 0 1 1 0

B 0 0 0 1
A
C 0 0 0 0
C B

D D 1 0 1 0

Observação I: Num grafo orientado a matriz de retorno é sempre assimétrica

ARA0175-ALGORITMOS
AULA 1: APRESENTAÇÃO
EM DA
GRAFOS
DISCIPLINA
Conceitos e formalização de grafos

O que é uma lista de adjacência?


É um grafo onde para cada vértice do grafo, fazemos uma lista de todos os outros vértices
com os quais ele tem uma aresta.

Grafo simples não direcionado

ARA0175-ALGORITMOS
AULA 1: APRESENTAÇÃO
EM DA
GRAFOS
DISCIPLINA
Conceitos e formalização de grafos
O que é uma lista de adjacência?
É um grafo onde para cada vértice do grafo, fazemos uma lista de todos os outros vértices
com os quais ele tem uma aresta.

Espaço para colocar o peso das arestas.


a b c e .
b a c d .
c a b d e .
d b c .
e a c .
Observação I: Neste caso a representação é somente das arestas que envolve o vértice. Ex. O vértice “a” são todas
as arestas que ele esta envolvido.
ARA0175-ALGORITMOS
AULA 1: APRESENTAÇÃO
EM DA
GRAFOS
DISCIPLINA
Conceitos e formalização de grafos
O que é uma lista de adjacência?
É um grafo onde para cada vértice do grafo, fazemos uma lista de todos os outros vértices
com os quais ele tem uma aresta.

Grafo com laço:

ARA0175-ALGORITMOS
AULA 1: APRESENTAÇÃO
EM DA
GRAFOS
DISCIPLINA
Conceitos e formalização de grafos
Lista com grafos orientados

Grafo não orientado:

Grafo orientado:

ARA0175-ALGORITMOS
AULA 1: APRESENTAÇÃO
EM DA
GRAFOS
DISCIPLINA
Conceitos e formalização de grafos
O que é uma lista de adjacência?

Conclui-se que para um Grafo orientado em geral é melhor a lista de adjacência,


em relação a um Grafo não orientado é melhor a matriz de adjacência, do ponto de
vista de consumo de memória.

ARA0175-ALGORITMOS
AULA 1: APRESENTAÇÃO
EM DA
GRAFOS
DISCIPLINA
Créditos

Professor Maioli (UNICAMP)

ARA0175-ALGORITMOS
AULA 1: APRESENTAÇÃO
EM DA
GRAFOS
DISCIPLINA
Sistemas Embarcados
Bibliografia Básica

NETTO, Paulo O. B.; JURKIEWICZ, Samuel. Grafos:


Introdução e Prática. 2 ed.. São Paulo:
Blucher, 2017. Disponível em:
https://plataforma.bvirtual.com.br/Acervo/Publicacao/173348
SCHEINERMAN, Edward R. Matemática Discreta: uma
introdução. São Paulo: Cengage
Learning., 2016. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788522125388
/cfi/0!/4/2@100:0.00
SIMÕES PEREIRA, J.M.S. Grafos e Redes: Teoria e
Algoritmos Básicos. RJ: Ed. Rio de Janeiro,
2013. Disponível em:
https://plataforma.bvirtual.com.br/Leitor/Publicacao/42049/pdf

ARA0175-ALGORITMOS EM GRAFOS
Sistemas Embarcados
Bibliografia Complementar
AIGNER, Martin. Paul. Erdós: As mais belas demonstrações matemáticas. São Paulo:
Blucher,2017. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788521210047/cfi/0!/4/2@100:0.00
DASGUPTA, Sanjoy. Algoritmos. Porto Alegre: AMGH, 2010.
Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788563308535/cfi/0!/4/2@100:0.00
DROZDEK, Adam. Estrutura de Dados e Algoritmos em C++. São Paulo: Cengage
Learning Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788522126651/cfi/0!/4/2@100:0.00
LOESCH, CLa?udio; HEIN, Nelson. Pesquisa Operacional: Fundamentos e modelos. São
Paulo:Saraiva, 2009. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788502088924/cfi/0!/4/2@100:0.00
STEIN, Clifford; DRYSDALE, Robert L.; BOGART, Kenneth. Matemática Discreta para
Ciência da Computação. São Paulo: Pearson, 2013.
Disponível em: https://plataforma.bvirtual.com.br/Acervo/Publicacao/3824

ARA0175-ALGORITMOS EM GRAFOS

Você também pode gostar