105
Algoritmos e Estruturas de Dados II Ordenação Topológica em Grafos Prof. Tiago Eugenio de Melo [email protected] www.tiagodemelo.info

Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

Algoritmos e Estruturas de Dados II

Ordenação Topológica em Grafos

Prof. Tiago Eugenio de [email protected]

www.tiagodemelo.info

Page 2: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

2/105

Observações

● As palavras com a fonte Courier indicam as palavras-reservadas da linguagem de programação.

Page 3: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

3/105

Referências

● Projetos de Algoritmos – com implementações em Pascal e C. Nivio Ziviani. 2a edição. Thomson, 2005.

● Material baseado nas notas de aula do professor Edirlei Soares de Lima. Acessado em 12/11/2019: http://edirlei.3dgb.com.br

● Material baseado nas notas de aula do professor Marco Antônio Moreira de Carvalho. Acessado em 01/11/2019: http://www.decom.ufop.br/marco/ensino/bcc204/material-das-aulas

Page 4: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

4/105

Ordenação Topológica

Page 5: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

5/105

Ordenação Topológica

Page 6: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

6/105

Ordenação Topológica

● Uma ordenação topológica de um grafo acíclico direcionado (GAD) é uma ordenação linear de seus vértices, na qual cada vértice aparece antes de seus descendentes.

Page 7: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

7/105

Ordenação Topológica

● Uma ordenação topológica de um grafo acíclico direcionado (GAD) é uma ordenação linear de seus vértices, na qual cada vértice aparece antes de seus descendentes.

● Exemplo:

Page 8: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

8/105

Ordenação Topológica

● Uma ordenação topológica de um grafo acíclico direcionado (GAD) é uma ordenação linear de seus vértices, na qual cada vértice aparece antes de seus descendentes.

● Exemplo:

Page 9: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

9/105

Ordenação Topológica

Page 10: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

10/105

Ordenação Topológica

● O grafo abaixo pode ter muitas ordenações topológicas.

Page 11: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

11/105

Ordenação Topológica

● O grafo abaixo pode ter muitas ordenações topológicas.

● Não necessariamente a única.

Page 12: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

12/105

Ordenação Topológica

● O grafo abaixo pode ter muitas ordenações topológicas.

● Não necessariamente a única.● Exemplo:

Page 13: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

13/105

Ordenação Topológica

● O grafo abaixo pode ter muitas ordenações topológicas.

● Não necessariamente a única.● Exemplo:

Page 14: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

14/105

Ordenação Topológica

● O grafo abaixo pode ter muitas ordenações topológicas.

● Não necessariamente a única.● Exemplo:

7, 5, 3, 11, 8, 2, 9, 10

Page 15: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

15/105

Ordenação Topológica

● O grafo abaixo pode ter muitas ordenações topológicas.

● Não necessariamente a única.● Exemplo:

7, 5, 3, 11, 8, 2, 9, 10

3, 5, 7, 8, 11, 2, 9, 10

Page 16: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

16/105

Ordenação Topológica

● O grafo abaixo pode ter muitas ordenações topológicas.

● Não necessariamente a única.● Exemplo:

7, 5, 3, 11, 8, 2, 9, 10

3, 5, 7, 8, 11, 2, 9, 10

5, 7, 3, 8, 11, 10, 2, 9

Page 17: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

17/105

Ordenação Topológica

Page 18: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

18/105

Ordenação Topológica

● Caso um grafo possua ciclos ou seja não direcionado, não é possível estabelecer uma relação de precedência entre os vértices e, portanto, é impossível estabelecer uma ordenação topológica.

Page 19: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

19/105

Ordenação Topológica

● Caso um grafo possua ciclos ou seja não direcionado, não é possível estabelecer uma relação de precedência entre os vértices e, portanto, é impossível estabelecer uma ordenação topológica.

● Exemplo:

Page 20: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

20/105

Ordenação Topológica

● Caso um grafo possua ciclos ou seja não direcionado, não é possível estabelecer uma relação de precedência entre os vértices e, portanto, é impossível estabelecer uma ordenação topológica.

● Exemplo:

Page 21: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

21/105

Aplicações

Page 22: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

22/105

Aplicações

● Roteiro de instalação de pacotes.

Page 23: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

23/105

Aplicações

● Roteiro de instalação de pacotes.● O make (makefile).

Page 24: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

24/105

Aplicações

● Roteiro de instalação de pacotes.● O make (makefile).● Confecção de dicionários.

Page 25: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

25/105

Aplicações

● Roteiro de instalação de pacotes.● O make (makefile).● Confecção de dicionários.● Organização de banco de dados.

Page 26: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

26/105

Aplicações

● Roteiro de instalação de pacotes.● O make (makefile).● Confecção de dicionários.● Organização de banco de dados.● Sistemas geográficos.

Page 27: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

27/105

Aplicações

● Roteiro de instalação de pacotes.● O make (makefile).● Confecção de dicionários.● Organização de banco de dados.● Sistemas geográficos.● Alocação de projetos.

Page 28: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

28/105

Histórico

Page 29: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

29/105

Histórico

● Algoritmos de ordenação topológica começaram a ser estudados na década de 60, no contexto da técnica PERT/CPM.

Page 30: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

30/105

Histórico

● Algoritmos de ordenação topológica começaram a ser estudados na década de 60, no contexto da técnica PERT/CPM.

● O PERT prevê o cálculo da duração de atividades complexas a partir da duração possível dessas atividades.

Page 31: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

31/105

Histórico

● Algoritmos de ordenação topológica começaram a ser estudados na década de 60, no contexto da técnica PERT/CPM.

● O PERT prevê o cálculo da duração de atividades complexas a partir da duração possível dessas atividades.

● Exemplo:

Page 32: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

32/105

Histórico

● Algoritmos de ordenação topológica começaram a ser estudados na década de 60, no contexto da técnica PERT/CPM.

● O PERT prevê o cálculo da duração de atividades complexas a partir da duração possível dessas atividades.

● Exemplo:

Page 33: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

33/105

Histórico

● O CPM é um método de identificação do caminho crítico dada uma sequência de atividades, isto é, quais atividades de uma sequência não podem sofrer alteração de duração sem que isso reflita na duração final de um projeto.

Page 34: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

34/105

Exemplo

Page 35: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

35/105

Exemplo

● Um exemplo simples do encadeamento de atividades é relacionado na tabela abaixo para a fabricação de uma estante.

Page 36: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

36/105

Exemplo

● Um exemplo simples do encadeamento de atividades é relacionado na tabela abaixo para a fabricação de uma estante.

Page 37: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

37/105

Exemplo (cont.)

Page 38: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

38/105

Exemplo (cont.)

● Considerando que a coluna duração tenha sido calculada pelo método PERT, é possível, com base na tabela, organizar um grafo do sequenciamento lógico das atividades de fabricação da estante:

Page 39: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

39/105

Exemplo (cont.)

● Considerando que a coluna duração tenha sido calculada pelo método PERT, é possível, com base na tabela, organizar um grafo do sequenciamento lógico das atividades de fabricação da estante:– Os vértices representam eventos instantâneos que

caracterizam o início e o término das atividades específicas nos arcos.

Page 40: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

40/105

Exemplo (cont.)

● Considerando que a coluna duração tenha sido calculada pelo método PERT, é possível, com base na tabela, organizar um grafo do sequenciamento lógico das atividades de fabricação da estante:– Os vértices representam eventos instantâneos que

caracterizam o início e o término das atividades específicas nos arcos.

– A sequência das atividades é o principal ponto destacado.

Page 41: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

41/105

Exemplo (cont.)

● Considerando que a coluna duração tenha sido calculada pelo método PERT, é possível, com base na tabela, organizar um grafo do sequenciamento lógico das atividades de fabricação da estante:– Os vértices representam eventos instantâneos que

caracterizam o início e o término das atividades específicas nos arcos.

– A sequência das atividades é o principal ponto destacado.– O arco pontilhado representa a dependência lógica da

atividade de montagem das tábuas em relação à atividade de compra dos parafusos.

Page 42: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

42/105

Exemplo (cont.)

● Considerando que a coluna duração tenha sido calculada pelo método PERT, é possível, com base na tabela, organizar um grafo do sequenciamento lógico das atividades de fabricação da estante:– Os vértices representam eventos instantâneos que

caracterizam o início e o término das atividades específicas nos arcos.

– A sequência das atividades é o principal ponto destacado.– O arco pontilhado representa a dependência lógica da atividade

de montagem das tábuas em relação à atividade de compra dos parafusos.

– Essa atividade é denominada de atividade fantasma e sua duração é igual a zero (instantânea).

Page 43: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

43/105

Exemplo (cont.)

Page 44: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

44/105

Exemplo (cont.)

Page 45: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

45/105

Exemplo (cont.)

Page 46: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

46/105

Exemplo (cont.)

Page 47: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

47/105

Exemplo (cont.)

● É possível ainda representar a duração de cada atividade representada no grafo e calcular o tempo mais curto (Tc) e o tempo mais longo de conclusão das tarefas (Tl).

Page 48: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

48/105

Exemplo (cont.)

● É possível ainda representar a duração de cada atividade representada no grafo e calcular o tempo mais curto (Tc) e o tempo mais longo de conclusão das tarefas (Tl).

Page 49: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

49/105

Exemplo (cont.)

Page 50: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

50/105

Exemplo (cont.)

● Alternativamente, o grafo resultante pode ser modelado de outra maneira:

Page 51: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

51/105

Exemplo (cont.)

● Alternativamente, o grafo resultante pode ser modelado de outra maneira:– Tarefas a serem desempenhadas em um projeto

são representadas por vértices.

Page 52: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

52/105

Exemplo (cont.)

● Alternativamente, o grafo resultante pode ser modelado de outra maneira:– Tarefas a serem desempenhadas em um projeto

são representadas por vértices.– Existe um arco entre as tarefas v e w, caso a tarefa v obrigatoriamente deva ser terminada antes que a tarefa w comece.

Page 53: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

53/105

Exemplo (cont.)

● Alternativamente, o grafo resultante pode ser modelado de outra maneira:– Tarefas a serem desempenhadas em um projeto são

representadas por vértices.– Existe um arco entre as tarefas v e w, caso a tarefa v

obrigatoriamente deva ser terminada antes que a tarefa w comece.

– Uma ordenação topológica dos vértices fornece uma maneira de realizar todas as tarefas sem violar as precedências entre tarefas.

Page 54: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

54/105

Algoritmos

Page 55: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

55/105

Algoritmos

● Existem diferentes algoritmos para ordenações topológicas em grafos.

Page 56: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

56/105

Algoritmos

● Existem diferentes algoritmos para ordenações topológicas em grafos.

● Os algoritmos de melhor desempenho possuem complexidade linear.

Page 57: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

57/105

Algoritmos

● Existem diferentes algoritmos para ordenações topológicas em grafos.

● Os algoritmos de melhor desempenho possuem complexidade linear.

● Algoritmos mais utilizados:

Page 58: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

58/105

Algoritmos

● Existem diferentes algoritmos para ordenações topológicas em grafos.

● Os algoritmos de melhor desempenho possuem complexidade linear.

● Algoritmos mais utilizados:– Algoritmo de Kahn.

Page 59: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

59/105

Algoritmos

● Existem diferentes algoritmos para ordenações topológicas em grafos.

● Os algoritmos de melhor desempenho possuem complexidade linear.

● Algoritmos mais utilizados:– Algoritmo de Kahn.– Busca em profundidade (DFS).

Page 60: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

60/105

Algoritmo de Kahn

Page 61: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

61/105

Algoritmo de Kahn

● O algoritmo de Kahn data de 1962.

Page 62: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

62/105

Algoritmo de Kahn

● O algoritmo de Kahn data de 1962.● Possui como princípio determinar a cada

instante os vértices que não possuam arcos de entrada e inserir na solução.

Page 63: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

63/105

Algoritmo de Kahn

● O algoritmo de Kahn data de 1962.● Possui como princípio determinar a cada

instante os vértices que não possuam arcos de entrada e inserir na solução.

● A cada vértice inserido na solução, todos seus arcos correspondentes são removidos do grafo.

Page 64: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

64/105

Algoritmo de Kahn

● O algoritmo de Kahn data de 1962.● Possui como princípio determinar a cada

instante os vértices que não possuam arcos de entrada e inserir na solução.

● A cada vértice inserido na solução, todos seus arcos correspondentes são removidos do grafo.

● Também detecta a existência de ciclos no grafo.

Page 65: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

65/105

Algoritmo de Kahn

Page 66: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

66/105

Algoritmo de Kahn

● Terminologia:

Page 67: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

67/105

Algoritmo de Kahn

● Terminologia:– L: lista que conterá os elementos da ordenação

topológica.

Page 68: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

68/105

Algoritmo de Kahn

● Terminologia:– L: lista que conterá os elementos da ordenação

topológica.– S: conjunto de vértices que não possuem arcos de

entrada.

Page 69: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

69/105

Algoritmo de Kahn

● Terminologia:– L: lista que conterá os elementos da ordenação

topológica.– S: conjunto de vértices que não possuem arcos de

entrada.– I: lista que conterá os elementos (vértices) com o

grau de incidência.

Page 70: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

70/105

Algoritmo de Kahn

Page 71: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

71/105

Algoritmo de Kahn

Page 72: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

72/105

Algoritmo de Kahn

Page 73: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

73/105

Algoritmo de Kahn

Page 74: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

74/105

Algoritmo de Kahn

Page 75: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

75/105

Algoritmo de Kahn

Page 76: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

76/105

Algoritmo de Kahn

Page 77: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

77/105

Algoritmo de Kahn

Page 78: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

78/105

Algoritmo de Kahn

Page 79: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

79/105

Algoritmo de Kahn

Page 80: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

80/105

Algoritmo de Kahn

Page 81: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

81/105

Algoritmo de Kahn

Page 82: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

82/105

Algoritmo de Kahn

Page 83: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

83/105

Algoritmo de Kahn

Page 84: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

84/105

Algoritmo de Kahn

Page 85: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

85/105

Algoritmo de Kahn

Page 86: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

86/105

Algoritmo de Kahn

Page 87: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

87/105

Algoritmo de Kahn

Page 88: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

88/105

Algoritmo de Kahn

Page 89: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

89/105

Algoritmo de Kahn

Page 90: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

90/105

Algoritmo de Kahn

Page 91: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

91/105

Algoritmo de Kahn

Page 92: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

92/105

Algoritmo de Kahn

Page 93: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

93/105

Algoritmo de Kahn

Page 94: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

94/105

Algoritmo de Kahn

Page 95: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

95/105

Algoritmo de Kahn

Page 96: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

96/105

Algoritmo de Kahn

Page 97: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

97/105

Busca em Profundidade (DFS)

Page 98: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

98/105

Busca em Profundidade (DFS)

● Terminologia:

Page 99: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

99/105

Busca em Profundidade (DFS)

● Terminologia:– L: lista que conterá os elementos da ordenação

topológica.

Page 100: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

100/105

Busca em Profundidade (DFS)

● Terminologia:– L: lista que conterá os elementos da ordenação

topológica.– Um vértice pode ser não marcado,

temporariamente marcado ou definitivamente marcado.

Page 101: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

101/105

Busca em Profundidade (DFS)

● Terminologia:– L: lista que conterá os elementos da ordenação

topológica.– Um vértice pode ser não marcado,

temporariamente marcado ou definitivamente marcado.

– Inicialmente, todos os vértices são não marcados.

Page 102: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

102/105

Busca em Profundidade (DFS)

● Terminologia:– L: lista que conterá os elementos da ordenação

topológica.– Um vértice pode ser não marcado,

temporariamente marcado ou definitivamente marcado.

– Inicialmente, todos os vértices são não marcados.– Ao serem atingidos pela primeira vez, os vértices

são temporariamente marcados.

Page 103: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

103/105

Busca em Profundidade (DFS)

● Terminologia:– L: lista que conterá os elementos da ordenação

topológica.– Um vértice pode ser não marcado,

temporariamente marcado ou definitivamente marcado.

– Inicialmente, todos os vértices são não marcados.– Ao serem atingidos pela primeira vez, os vértices

são temporariamente marcados.– Após terem suas dependências examinadas, os

vértices são definitivamente marcados.

Page 104: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

104/105

Busca em Profundidade (DFS)

● Terminologia:– L: lista que conterá os elementos da ordenação topológica.– Um vértice pode ser não marcado, temporariamente

marcado ou definitivamente marcado.– Inicialmente, todos os vértices são não marcados.– Ao serem atingidos pela primeira vez, os vértices são

temporariamente marcados.– Após terem suas dependências examinadas, os vértices

são definitivamente marcados.– Caso um vértice temporariamente marcado seja

examinado novamente, o grafo possui pelo menos um ciclo.

Page 105: Tiago de Melo - Ordenação Topológica em Grafostiagodemelo.info/wp-content/uploads/2019/11/grafos...Organização de banco de dados. Sistemas geográficos. Alocação de projetos

111/105

Busca em Profundidade (DFS)