Melhores momentos AULA 15
|
|
- Jónatas Balsemão Terra
- 5 Há anos
- Visualizações:
Transcrição
1 Melhores momentos AULA 5
2 Arborescência de caminhos mínimos Uma arborescência com raiz s é de caminhos mínimos (= shortest-paths tree = SPT) se para todo vértice t que pode ser alcançado a partir de s, o único caminho de s a t na arborescência é um caminho simples mínimo
3 Problema O algoritmo de Dijkstra resolve o problema da SPT: Dado um vértice s de um digrafo com custos não-negativos nos arcos, encontrar uma SPT com raiz s
4 dijkstra Recebe digrafo G com custos não-negativos nos arcos e um vértice s Calcula uma arborescência de caminhos mínimos com raiz s. A arborescência é armazenada no vetor parnt As distâncias em relação a s são armazenadas no vetor cst void dijkstra(digraph G, Vertex s, Vertex parnt[], double cst[]);
5 Conclusão O consumo de tempo da função dijkstra é O(V + A) mais o consumo de tempo de execução de PQinit e PQfree, O(V) execuções de PQinsert, O(V) execuções de PQempty, O(V) execuções de PQdelmin, e O(A) execuções de PQdec.
6 AULA 6
7 Dijkstra para grafos esparços S. e.
8 Min-heap 8 nível
9 Rotina básica de manipulação de min-heap 5 8 nível
10 Rotina básica de manipulação de min-heap 8 5 nível
11 Rotina básica de manipulação de min-heap 8 8 nível
12 Rotina básica de manipulação de min-heap 8 8 nível
13 Rotina básica de manipulação de min-heap 8 8 nível
14 Implementação clássica Min-Heap O vetor qp é o "inverso"de pq: para cada vértice v, qp[v] é o único índice tal que pq[qp[v]] == v. É claro que qp[pq[i]] == i para todo i. static Vertex pq[maxv+]; static int N; static int qp[maxv];
15 PQinit, PQempty, PQinsert void PQinit(void) { N = ; } int PQempty(void) { return N == ; } void PQinsert(Vertex v) { } qp[v] = ++N; pq[n] = v; fixup(n);
16 PQdelmin e PQdec Vertex PQdelmin(void) { exch(, N); --N; fixdown(); return pq[n+]; } void PQdec(Vertex w) { } fixup(qp[w]);
17 exch e fixup static void exch(int i, int j) { Vertex t; t = pq[i]; pq[i] = pq[j]; pq[j] = t; qp[pq[i]] = i; qp[pq[j]] = j; } static void fixup(int i) { while (i> && cst[pq[i/]]>cst[pq[i]]){ } } exch(i/, i); i = i/;
18 fixdown static void fixdown(int i) { int j; while (*i <= N) { } } j = *i; if (j< N && cst[pq[j]] > cst[pq[j+]]) j++; if (cst[pq[i]] <= cst[pq[j]]) break; exch(i, j); i = j;
19 Conclusão O consumo de tempo da função dijkstra implementada com um min-heap é O(A lg V). Este consumo de tempo é ótimo para digrafos esparsos.
20 Outra implementação para digrafos esparsos void DIGRAPHsptD (Digraph G, Vertex s, Vertex parnt[ ], double cst[ ]) { Vertex v, w; link p; PQinit(); for (v = ; v < G->V; v++) { parnt[v] = -; 5 cst[v] = INFINITO; 6 PQinsert(v); } 7 parnt[s] = s; 8 cst[s] = ; 9 PQdec(s);
21 Outra implementação para digrafos esparsos while (!PQempty()) { v = PQdelmin(); if (cst[v] == INFINITO) break; for (p=g->adj[v];p!=null;p=p->next){ w = p->w; 5 if (cst[w] > cst[v] + p->cst){ 6 cst[w] = cst[v] + p->cst; 7 PQdec(w); 8 parnt[w] = v; } } } }
22 Caminhos mínimos em DAGs S 9.6
23 DAGs Um digrafo é acíclico se não tem ciclos Digrafos acíclicos também são conhecidos como DAGs (= directed acyclic graphs) Exemplo: um digrafo acíclico 5
24 DAGs Um digrafo é acíclico se não tem ciclos Digrafos acíclicos também são conhecidos como DAGs (= directed acyclic graphs) Exemplo: um digrafo que não é acíclico 5
25 DAGs Um digrafo é acíclico se não tem ciclos Digrafos acíclicos também são conhecidos como DAGs (= directed acyclic graphs) Exemplo: um digrafo que não é acíclico 5
26 Ordenaçao topológica Uma permutação dos vértices de um digrafo é uma seqüência em que cada vértice aparece uma e uma só vez Uma ordenação topológica (= topological sorting) de um digrafo é uma permutação ts[], ts[],..., ts[v-] dos seus vértices tal que todo arco tem a forma ts[i]-ts[j] com i < j ts[] é necessariamente uma fonte ts[v-] é necessariamente um sorvedouro
27 Exemplo i 5 ts[i] 5 5
28 Fato Para todo digrafo G, vale uma e apenas umas das seguintes armações: G possui um ciclo G é um DAG e, portanto, admite uma ordenação topológica
29 Problema Problema: Dado um vértice s de um DAG com custos possivelmente negativos nos arcos, encontrar, para cada vértice t que pode ser alcançado a partir de s, um caminho mínimo simples de s a t Problema: Dado um vértice s de um DAG com custos possivelmente negativos nos arcos, encontrar uma SPT com raiz s
30 Simulação i 5 ts[i]
31 Simulação i 5 ts[i]
32 Simulação i 5 ts[i]
33 Simulação i 5 ts[i]
34 Simulação i 5 ts[i]
35 Simulação i 5 ts[i]
36 Simulação i 5 ts[i]
37 Simulação i 5 ts[i]
38 Simulação i 5 ts[i]
39 Simulação i 5 ts[i]
40 Simulação i 5 ts[i]
41 Simulação i 5 ts[i]
42 Simulação i 5 ts[i]
43 Simulação i 5 ts[i] 5 5 5
44 Simulação i 5 ts[i] 5 5 5
45 Simulação i 5 ts[i] 5 5 5
46 Simulação i 5 ts[i] 5 5 5
47 Simulação i 5 ts[i] 5 5 5
48 Simulação i 5 ts[i] 5 5
49 Simulação i 5 ts[i] 5 5
50 Simulação i 5 ts[i] 5 5
51 Simulação i 5 ts[i] 5 5
52 DAGmin A função DAGmin recebe um DAG G com custos possivelmente negativos e uma ordenação topológica ts de G. Recebe também um vértice s. Para cada vértice t, a função calcula o custo de um caminho de custo mínimo de sa t. Esse número é depositado em cst[t]. void DAGmin (Digraph G, Vertex ts[ ], Vertex s, double cst[ ])
53 void DAGmin DAGmin (Digraph G, Vertex ts[ ], Vertex s, double cst[ ]) { int i; Vertex v; link p; for (v= ; v < G->V; v++) cst[v] = INFINITO; cst[s] = ; 5 for (v = ts[i = ]; i < G->V; v = ts[i++]) 6 for (p=g->adj[v];p!=null;p=p->next) 7 if (cst[p->w] > cst[v] + p->cst) 8 cst[p->w] = cst[v] + p->cst; }
54 Consumo de tempo O consumo de tempo da função DAGmin é O(V + A).
55 Caminhos máximos em DAGs Do ponto de vista computacional, o problema de encontrar um caminho simples de custo máximo num digrafos com custos nos arcos é difícil. Mais precisamente, problema é NP-difícil como vocês verão no nal de Análise de Algoritmos. O problema torna-se fácil, entretanto, quando restrito a DAGs.
56 void DAGmax DAGmax (Digraph G, Vertex ts[ ], Vertex s, double cst[ ]) { int i; Vertex v; link p; for (v= ; v < G->V; v++) cst[v] = -INFINITO; cst[s] = ; 5 for (v= ts[i = ]; i < G->V; v = ts[i++]) 6 for (p=g->adj[v];p!=null;p=p->next) 7 if (cst[p->w] < cst[v] + p->cst) 8 cst[p->w] = cst[v] + p->cst; }
57 Consumo de tempo O consumo de tempo da função DAGmax é O(V + A).
58 Programação dinâmica
59 Programação dinâmica Propriedade (da subestrutura ótima) Se G é um digrafo com custo não-negativos nos arcos e v -v -v v k é um caminho mínimo então v i -v i v j é um caminho mínimo para i j k custo[v][w] = menor custo de uma caminho de v a w Propriedade O valor de custo[s][t] é min{custo[s][v] + custo[v][t] : v é vértice}
60 Programação dinâmica Propriedade (da subestrutura ótima) Se G é um digrafo com custo não-negativos nos arcos e v -v -v v k é um caminho mínimo então v i -v i v j é um caminho mínimo para i j k custo[v][w] = menor custo de uma caminho de v a w Propriedade O valor de custo[s][t] é min{custo[s][v] + custo[v][t] : v-t é arco}
61 Dijkstra em digrafos com custos negativos
62 Problema da SPT Problema: Dado um vértice s de um digrafo com custos possivelmente negativos nos arcos, encontrar uma SPT com raiz s Entra:
63 Problema da SPT Problema: Dado um vértice s de um digrafo com custos possivelmente negativos nos arcos, encontrar uma SPT com raiz s Sai:
64 Apelemos para Dijkstra
65 Apelemos para Dijkstra
66 Apelemos para Dijkstra
67 Apelemos para Dijkstra
68 Apelemos para Dijkstra
69 Apelemos para Dijkstra
70 Apelemos para Dijkstra
71 Apelemos para Dijkstra
72 Apelemos para Dijkstra
73 Apelemos para Dijkstra 6 7 6
74 Apelemos para Dijkstra 6 7 6
75 Apelemos para Dijkstra 6 7 6
76 Apelemos para Dijkstra 6 7 6
77 Apelemos para Dijkstra 6 7 6
78 Apelemos para Dijkstra 6 7 6
79 Apelemos para Dijkstra 6 7 6
80 Apelemos para Dijkstra 6 7 6
81 Apelemos para Dijkstra 6 7 6
82 Opsss O caminho mínimo de a tem custo e não...
Melhores momentos AULA 14
Melhores momentos AULA Problema O algoritmo de Dijkstra resolve o problema da SPT: Dado um vértice s de um digrafo com custos não-negativos nos arcos, encontrar uma SPT com raiz s 5 5 5 Simulação 5 Simulação
Leia maisDemonstração. Relação invariante chave. Implementações do algoritmo de Prim. Implementação grosseira
Algoritmo de Prim Simulação S. Algoritmos em Grafos º sem / Franja A franja (= fringe) de uma subárvore T é o conjunto de todas as arestas que têm uma ponta em T e outra ponta fora Exemplo: As arestas
Leia maisAULA 14. Problema. Melhores momentos. Simulação. Simulação. Simulação. Simulação
Melhore momento ALA Problema O algoritmo de Dijktra reolve o problema da PT: Dado um vértice de um digrafo com cuto não-negativo no arco, encontrar uma PT com raiz dijktra Recebe digrafo G com cuto
Leia maisCalculando distâncias
Calculando distâncias Problema: dados um digrafo G e um vértice s, determinar a distância de s aos demais vértices do digrafo Exemplo: para s = v 3 5 dist[v] 3 3 5 Algoritmos em Grafos º sem / Busca em
Leia maisAlgoritmo Floyd-Warshall. Problema dos caminhos mínimos entre todos os pares. Programação dinâmica
Algoritmo Floyd-Warshall S. Problema dos caminhos mínimos entre todos os pares Problema: Dado um digrafo com custo nos arcos, determinar, para cada par de vértices s, t o custo de um caminho mínimo de
Leia maisMelhores momentos AULA 12
Melhores momentos AULA Calculando distâncias Problema: dados um digrafo G e um vértice s, determinar a distância de s aos demais vértices do digrafo Exemplo: para s = v 3 5 dist[v] 3 3 5 Busca em largura
Leia maisMelhores momentos AULAS 1-8
Melhores momentos AULAS 1-8 Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Exemplo: para s = e t = 1 a resposta é SIM 2 1 4 3 5 Procurando
Leia maisMelhores momentos AULA 4
Melhores momentos AULA Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Exemplo: para s = 0 e t = 1 a resposta é SIM 1 0 3 5 Procurando um
Leia maisMelhores momentos AULA 4
Melhores momentos AULA 4 Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Exemplo: para s = 0 e t = 1 a resposta é SIM 2 1 0 4 3 5 Procurando
Leia maisNa última aula... Procurando um caminho. Certicados. Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t
Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Exemplo: para s = e t = a resposta é SIM Na última aula... Algoritmos em Grafos º sem / Procurando
Leia maisNa última aula... Algoritmos em Grafos 1º sem / 1
Na última aula... Algoritmos em Grafos 1º sem 01 1 / 1 Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Exemplo: para s = 0 e t = 1 a resposta
Leia maisMelhores momentos AULA 5
Melhores momentos AULA 5 Vetor de listas de adjacência de digrafos Na representação de um digrafo através de listas de adjacência tem-se, para cada vértice v, uma lista dos vértices que são vizinhos v.
Leia maisAULA 4. Procurando um caminho. Melhores momentos. Certicados. Certicado de inexistência
Melhores momentos Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Exemplo: para s = e t = a resposta é SIM AULA 3 Procurando um caminho Certicados
Leia maisNa última aula... Procurando um caminho. Certificados. Procurando um caminho
Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Na última aula... Exemplo: para s = e t = a resposta é SIM Algoritmos em Grafos º sem / Procurando
Leia maisNa última aula... Algoritmos em Grafos 1º sem / 80
Na última aula... Algoritmos em Grafos 1º sem 01 1 / 80 Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Exemplo: para s = 0 e t = 1 a resposta
Leia maisMAC328 Algoritmos em grafos (4/6/2004) Caminhos mínimos
1 Caminhos mínimos 1. Grafos com pesos nas arestas: G = (V, E), c: E R (usualmente, c(e) 0 para toda e E, mas em alguns casos consideraremos comprimentos negativos). 1 Caminhos mínimos 1. Grafos com pesos
Leia maisFilas de prioridade e heapsort
1 Filas de prioridade e heapsort Além do Sedgewick (sempre leiam o Sedgewick), veja http://www.ime.usp.br/~pf/algoritmos/aulas/hpsrt.html 2 Filas de prioridade e heapsort Fila de prioridade: fila na qual
Leia maisGrafos Caminhos mais curtos
rafos Caminhos mais curtos Cada caminho num digrafo ponderado possui um peso -a soma dos pesos das arestas que o constituem. Esta característica origina directamente problemas como: determinar o caminho
Leia maisAnálise e Síntese de Algoritmos. Algoritmos em Grafos CLRS, Cap. 22
Análise e Síntese de Algoritmos Algoritmos em Grafos CLRS, Cap. 22 Mudança no Horário Aulas Teóricas de 4ª feira 10:30 12:00 Sala: FA1 12:00 13:30 Sala: FA1 Deixa de haver aula teórica às 9:00 por troca
Leia maisAlgoritmo de Kruskal. Algoritmo de Kruskal. Floresta geradora 26. Subfloresta S 20.3
Algoritmo de Kruskal Algoritmo de Kruskal S. Algoritmos em Grafos º sem / Subfloresta Uma subfloresta de G é qualquer floresta F que seja subgrafo de G. Exemplo: As arestas vermelhas que ligam os vértices
Leia maisFluxos em redes: o Problema do Fluxo máximo
1 Fluxos em redes: o Problema do Fluxo máximo Instância: uma rede (G, c) e vértices s e t G = (V, E) um grafo dirigido s e t V são dois vértices distinguidos c: E R 0 é uma função capacidade nas arestas
Leia maisCaminhos mínimos de única origem
Caminhos mínimos de única origem Algoritmos em Grafos Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. Conteúdo Introdução
Leia maisGrafos. Notas. Notas. Notas. Notas. Caminhos mais curtos de única origem. Subestrutura ótima. Propriedades de caminhos mais curtos
Grafos Caminhos mais curtos de única origem Conteúdo Subestrutura ótima Inicialização Propriedades de caminhos mais curtos Algoritmos Algoritmo de Bellman-Ford Caminhos mais curtos de única origem em gaos
Leia maisO grau de saída d + (v) de um vértice v é o número de arcos que tem
Grafos Direcionados Definição (Grau de Entrada) O grau de entrada d (v) de um vértice v é o número de arcos que tem v como cabeça. Definição (Grau de Saída) O grau de saída d + (v) de um vértice v é o
Leia maisO estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste
O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste material e a resolução (por parte do aluno) de todos os
Leia mais05 Grafos: ordenação topológica SCC0503 Algoritmos e Estruturas de Dados II
05 Grafos: ordenação topológica SCC0503 Algoritmos e Estruturas de Dados II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2011/1 Moacir Ponti Jr.
Leia maisMelhores momentos AULA 1
Melhores momentos AULA Digrafos digrafo = de vértices e conjunto de arcos arco = par ordenado de vértices Exemplo: v e w são vértices e v-w é um arco b d a f c e Especicação Digrafos podem ser especicados
Leia maisGrafos - O que é um grafo? Algoritmos e Estruturas de Dados LEE 2014/15. Algoritmos e Estruturas de Dados - C. Teoria de Grafos e Algoritmos em Grafos
Algoritmos e Estruturas de Dados LEE / Teoria de Grafos e Algoritmos em Grafos Grafos - O que é um grafo? Objecto abstracto Dois tipos de entidades Nós ou Vértices Ramos ou Arestas Vértices representam
Leia maisFilas com prioridade - Introdução (1)
AED Algoritmos e Estruturas de Dados LEEC - 2004/2005 Filas com Prioridade Filas com prioridade - Introdução (1) Filas com prioridade (Priority Queues) usadas em diversas aplicações: Despacho (scheduler)
Leia maisMAC328 Algoritmos em grafos (14/5/2004) Componentes fortemente conexos
1 Componentes fortemente conexos 1 Componentes fortemente conexos 1. Subgrafos induzidos pela relação de equivalência x y (acessibilidade mútua) 1 Componentes fortemente conexos 1. Subgrafos induzidos
Leia maisGrafos COM11087-Tópicos Especiais em Programação II
Grafos COM11087-Tópicos Especiais em Programação II edmar.kampke@ufes.br Introdução Grafos são estruturas muito estudadas na Ciência da Computação para modelagem de problemas Euler (1736) em Königsberg
Leia maisQUESTÕES DE PROVAS ANTIGAS
CT-24 QUESTÕES DE PROVAS ANTIGAS ) Preencha a tabela abaixo com Î ou Ï: ω(log n) Θ(n) O(n log n) Ω(n 2 ) o(n ) 6n + 2n 2 + 2.log n + 4n + n.log n + log n 2) Dada a árvore binária abaixo, escreva os seus
Leia maisMelhores momentos AULA 2. Otimização Combinatória p. 71
Melhores momentos AULA 2 Otimização Combinatória p. 71 Propriedade de 0-Potenciais Se y é um 0-potencial e existe um passeio de s a t então y(t) y(s) 0. 0 v 1 t 0 s 1 w u 0 z 1 Otimização Combinatória
Leia maisAnálise e Síntese de Algoritmos
Análise e Síntese de Algoritmos Caminhos Mais Curtos com Fonte Única [CLRS, Cap. 24] 2014/2015 Contexto Revisão [CLRS, Cap.1-13] Fundamentos; notação; exemplos Algoritmos em Grafos [CLRS, Cap.21-26] Algoritmos
Leia maisEstruturas de dados elementares
AED 2002/2003 p.1/31 Estruturas de dados elementares Tipos básicos Estruturas Tabelas Listas Amontoados AED 2002/2003 p.2/31 Tipos básicos Inteiros Reais Caracteres Ponteiros short a1; int a2; long a3;
Leia maisCES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra
ES- Algoritmos e Estruturas de Dados arlos Alberto Alonso Sanches Juliana de Melo ezerra ES- rafos onceitos gerais e representações Algoritmos em grafos Exploração sistemática em largura aminhos mais curtos
Leia maisAlgoritmo de Dijkstra Estudo e Implementação
Teoria dos Grafos 0/0 Algoritmo de Dijkstra Estudo e Implementação Professora: Claudia Boeres Alunos: José Alexandre Macedo Maycon Maia Vitali Problema do Caminho Mínimo Qual o caminho mínimo entre um
Leia maisAcessibilidade e Fecho Transitivo de Grafos Dirigidos
1 Acessibilidade e Fecho Transitivo de Grafos Dirigidos 1. Fecho transitivo 2. Multiplicação de matrizes booleanas 3. Algoritmo de Warshall 4. Equivalência em termos de complexidade computacional com o
Leia maisINF 1010 Estruturas de Dados Avançadas
INF Estruturas de Dados Avançadas Grafos //8 DI, PUC-Rio Estruturas de Dados Avançadas. Primeiro uso conhecido 7 Euler: pontes de Königsberg //8 DI, PUC-Rio Estruturas de Dados Avançadas. Primeiro uso
Leia maisRepresentações de Grafos
Representações de Grafos Teoria dos Grafos 1 É possível diversas representações dos grafos. Vamos estudar as três utilizadas mais comumente: as matrizes de adjacência, as listas de adjacência e as multilistas
Leia maisEduardo Camponogara. DAS-9003: Introdução a Algoritmos
Caminhos Mínimos Com Uma Fonte 1/74 Caminhos Mínimos Com Uma Fonte Eduardo Camponogara Departamento de Automação e Sistemas Universidade Federal de Santa Catarina DAS-9003: a Algoritmos Caminhos Mínimos
Leia mais03 Grafos: percurso, ponderação e caminhos SCC0503 Algoritmos e Estruturas de Dados II
03 Grafos: percurso, ponderação e caminhos SCC0503 Algoritmos e Estruturas de Dados II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2011/1 Moacir
Leia maisPAA-DCC-UFAM. Grafos. Universidade Federal do Amazonas Departamento de Eletrônica e Computação
Grafos Universidade Federal do Amazonas Departamento de Eletrônica e Computação Grafos () Um grafo é composto por um conjunto de vértices e um conjunto de arestas Cada aresta liga dois vértices do grafo
Leia maisCAL ( ) MIEIC/FEUP Grafos: Introdução (Março, 2011)
1 Algoritmos em Grafos: Introdução R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes CAL, MIEIC, FEUP Março de 2011 Índice 2 Revisão de conceitos e definições Exemplificar aplicações Representação
Leia maisGrafos. Exemplo de árvore geradora mínima. Notas. Notas. Notas. Notas. Árvores espalhadas mínimas. Como construir uma árvore geradora miníma
Grafos Árvores espalhadas mínimas Conteúdo Introdução Como construir uma árvore geradora miníma Algoritmos Referências Introdução Dado um grafo conectado não orientado G = (V, E) e uma função peso w :
Leia maisOrdenação: Heapsort. Algoritmos e Estruturas de Dados II
Ordenação: Heapsort Algoritmos e Estruturas de Dados II Introdução Possui o mesmo princípio de funcionamento da ordenação por seleção Selecione o menor item do vetor Troque-o pelo item da primeira posição
Leia maisÁrvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira
Árvores SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Listas e árvores Listas lineares Um nó após o outro, adjacentes Nó sucessor e antecessor Diversas aplicações necessitam de estruturas
Leia maisAlgoritmo de Dijkstra (um para todos ; arestas de peso não negativo ; guloso)
Algoritmo de Dijkstra (um para todos ; arestas de peso não negativo ; guloso) 1º passo: iniciam-se os valores: para todo v V[G] d[v] π[v] -1 d[s] 0 V[G] é o conjunto de vértices(v) que formam o Grafo G.
Leia maisINF1007: Programação 2 6 Ordenação de Vetores. 01/10/2015 (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 6 Ordenação de Vetores 01/10/2015 (c) Dept. Informática - PUC-Rio 1 Tópicos Introdução Ordenação bolha (bubble sort) Ordenação por seleção (selection sort) 01/10/2015 (c) Dept. Informática
Leia maisINF 1010 Estruturas de Dados Avançadas
INF Estruturas de Dados Avançadas Grafos // DI, PUC-Rio Estruturas de Dados Avançadas. Algoritmo de Dijkstra 8 8 Algoritmo de Dijkstra 8 8 8 Algoritmo de Dijkstra 8 8 8 Algoritmo de Dijkstra 8 8 8 8 8
Leia maisFilas de prioridade. Marcelo K. Albertini. 27 de Novembro de 2014
Filas de prioridade Marcelo K. Albertini de Novembro de / Filas de prioridade O que é uma fila de prioridade? Estrutura de dados que generaliza a ideia de ordenação. Coleções de elementos: inserir e remover
Leia maisDesafios de Programação TCC Turma A-1
Desafios de Programação TCC-00.254 Turma A-1 Conteúdo Grafos Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2015.1/tcc-00.254
Leia maisGrafos parte 2. Percorrendo um grafo. Correção. Eficiência. Percorrendo um Grafo. Percorrendo um Grafo. Percorrendo um Grafo
Percorrendo um grafo Grafos parte 2 SCC-203 Algoritmos e Estruturas de Dados 2 Rosane 2010 Baseado em material de professores dos anos anteriores Percorrendo um Grafo Percorrer um grafo é um problema fundamental
Leia maisAlgoritmos de Caminho Mínimo Parte 1
Algoritmos de Caminho Mínimo Parte 1 A journey of a thousand miles starts with a single step and if that step is the right step, it becomes the last step. Index 1. Introduction 2. Applications 3. Tree
Leia maisAlgoritmo de Dijkstra Wikipédia, a enciclopédia livre
1 de 8 26/08/2013 23:10 Algoritmo de Dijkstra Origem: Wikipédia, a enciclopédia livre. O algoritmo de Dijkstra, concebido pelo cientista da computação holandês Edsger Dijkstra em 1956 e publicado em 19591
Leia maisCIC 111 Análise e Projeto de Algoritmos II
CIC 111 Análise e Projeto de Algoritmos II Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 16 Directed graphs Topological sorting Dynamic programming Successor paths Cycle detection
Leia maisAnálise e Síntese de Algoritmos
Análise e Síntese de Algoritmos Caminhos Mais Curtos para Todos os Pares CLRS, Cap. 25 Contexto Algoritmos Elementares em Grafos (CLR, Cap. 22) BFS & DFS Ordenação Topológica & SCCs Árvores Abrangentes
Leia maisCaminho mais curto a partir de um nó Algoritmos de Dijkstra e Bellman-Ford. O problema tem subestrutura óptima
Caminho mais curto a partir de um nó Caminho mais curto a partir de um nó Algoritmos de Dijkstra e Bellman-Ford Fernando Lobo Algoritmos e Estrutura de Dados II Input: Um grafo com pesos nos arcos G =
Leia maisCaminho mais curto a partir de um nó Algoritmos de Dijkstra e Bellman-Ford
Caminho mais curto a partir de um nó Algoritmos de Dijkstra e Bellman-Ford Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 28 Caminho mais curto a partir de um nó Input: Um grafo com pesos nos arcos
Leia maisCaminhos mínimos de todos os pares
Caminhos mínimos de todos os pares Algoritmos em Grafos Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. Conteúdo Introdução
Leia maisUniversidade Federal de Alfenas
Universidade Federal de Alfenas Algoritmos em Grafos Aula 2 Caminho Mínimo: Algoritmo de Bellman-Ford Prof. Humberto César Brandão de Oliveira humberto@bcc.unifal-mg.edu.br Caminho Mínimo Suponha que você
Leia maisAED Algoritmos e Estruturas de Dados LEEC /2007. Teoria de Grafos e Algoritmos em Grafos
AED Algoritmos e Estruturas de Dados LEEC - 2006/2007 Teoria de Grafos e Algoritmos em Grafos Grafos - O que éum grafo? Objecto abstracto Dois tipos de entidades Nós ou Vértices Ramos ou Arestas Vértices
Leia maisOalgoritmo de Dijkstra
Dijkstra Oalgoritmo de Dijkstra O algoritmo de Dijkstra, concebido pelo cientista da computação holandês Edsger Dijkstra em 1956 e publicado em 1959, soluciona o problema do caminho mais curto num grafo
Leia maisTeoria dos Grafos Aula 8
Teoria dos Grafos Aula 8 Aula passada Classe de funções e notação Propriedades da notação Funções usuais Aula de hoje Grafos direcionados Busca em grafos direcionados Ordenação topológica Tempo de execução
Leia maisGrafos - Representação
Grafos - Representação É importante salientar outra diferença relevante entre a representação de matriz de adjacência e a representação ligada de grafos. Na representação de matriz está implícita a possibilidade
Leia maisMarcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia
Introdução à Análise de Algoritmos Marcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia Aula de hoje Nesta aula veremos: Sobre a disciplina Exemplo: ordenação Sobre a disciplina
Leia maisINF 1010 Estruturas de Dados Avançadas
INF 1010 Estruturas de Dados Avançadas Listas de Prioridades e Heaps 12/09/16 2012 DI, PUC-Rio Estruturas de Dados Avançadas 2012.1 1 uma outra aplicação de árvores binárias lista de prioridades: lista
Leia maisUNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação
UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação SCC-203 ALGORITMOS E ESTRUTURAS DE DADOS II Prova - Gabarito Nome: Nro. USP ) O matemático
Leia maisGrafos tipo abstrato de dados
Algoritmos e Estruturas de Dados II Grafos tipo abstrato de dados Thiago A. S. Pardo Profa. M. Cristina Material de aula da Profa. Josiane M. Bueno 1 Tipo Abstrato de Dados Última aula: TAD grafo? 2 Tipo
Leia maisSSC 0721 Teste e Inspeção de Software
SSC 0721 Teste e Inspeção de Software Teste Estrutural GFC Prof. Marcio E. Delamaro delamaro@icmc.usp.br SSC 0721 Teste e Inspeção de Software ICMC/USP p. 1 O que é o teste estrutural Supõe a existência
Leia maisHeap Sort. Algoritmos e Estruturas de Dados Verão Cátia Vaz 1
Heap Sort Algoritmos e Estruturas de Dados Verão 2012 1 Árvores As árvores são estruturas de dados usadas em diversas aplicações: Bases de dados de grande dimensão. Reconhecimento de frases geradas por
Leia maisProjeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 06 Busca em Profundidade e Busca em Largura Edirlei Soares de Lima Grafos (Revisão) G = (V, A) G: grafo; V: conjunto de vértices; A: conjunto
Leia mais5COP096 TeoriadaComputação
Sylvio 1 Barbon Jr barbon@uel.br 5COP096 TeoriadaComputação Aula 12 Prof. Dr. Sylvio Barbon Junior Sumário - Árvore Geradora Mínima - Teorema pare reconhecer arestas seguras; - Algoritmo de Prim; - Algoritmo
Leia maisAED2 - Aula 11 Problema da separação e quicksort
AED2 - Aula 11 Problema da separação e quicksort Projeto de algoritmos por divisão e conquista Dividir: o problema é dividido em subproblemas menores do mesmo tipo. Conquistar: os subproblemas são resolvidos
Leia maisFilas de prioridade. Marcelo K. Albertini. 3 de Dezembro de 2013
Filas de prioridade Marcelo K. Albertini de Dezembro de / Filas de prioridade O que é uma fila de prioridade? Estrutura de dados que generaliza a ideia de ordenação. Coleções de elementos: inserir e remover
Leia maisGrafos Direcionados. > Grafos Direcionados Representações Computacionais 1/36
Grafos Direcionados > Grafos Direcionados Representações Computacionais 1/36 Grafos Direcionados Em muitas aplicações, é importante ter direção nas arestas: Ruas de mão única Grafos modelando páginas da
Leia maisINF 1010 Estruturas de Dados Avançadas
INF 1010 Estruturas de Dados Avançadas Listas de Prioridades e Heaps 1 Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada a um
Leia maisTeoria dos Grafos Aula 5
Teoria dos Grafos Aula Aula passada Explorando grafos Mecanismos genéricos Ideias sobre BFS, DFS Aula de hoje Busca em grafos Busca em largura (BFS Breadth First Search) Propriedades Busca em Grafos Problema
Leia maisUNIVERSIDADE FEDERAL DO PIAUÍ COLÉGIO TÉCNICO DE TERESINA-TÉCNICO EM INFORMÁTICA DISCIPLINA: ESTRUTURA DE DADOS PROFESSOR: Valdemir Junior
UNIVERSIDADE FEDERAL DO PIAUÍ COLÉGIO TÉCNICO DE TERESINA-TÉCNICO EM INFORMÁTICA DISCIPLINA: ESTRUTURA DE DADOS PROFESSOR: Valdemir Junior ALGORITMO DE ORDENAÇÃO HEAPSORT Alyson Pereira Barbosa Erisvaldo
Leia maisLista de Exercícios de CES-11 CTA - ITA - IEC
Lista de Exercícios de CES11 CTA ITA IEC Importante: Não vale nota, ou seja, não é preciso entregar! A. Passagem de parâmetros, escopo de variáveis, recursão 1. Analise o código abaixo. Qual é a sua saída?
Leia maisProgramação Dinâmica. Prof. Anderson Almeida Ferreira
Programação Dinâmica Prof. Anderson Almeida Ferreira Programação Dinâmica 1950, Bellman Evitar recálculos dos subproblemas em comum Menor para maior (bottom-up) Tabelas ou memorização É uma técnica de
Leia mais06 Grafos: Caminhos Mínimos SCC0503 Algoritmos e Estruturas de Dados II
06 Grafos: Caminhos Mínimos SCC050 Algoritmos e Estruturas de Dados II Paulo H. R. Gabriel Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 011/1 Paulo H.
Leia maisGRAFOS E DIGRAFOS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
GRAFOS E DIGRAFOS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos GRAFOS Definições Representação Algoritmos Busca Inserção (arestas e vértices) Exclusão (arestas e vértices) 1 4 5 6 GRAFOS Grafos
Leia maisGrafos parte 2* Algoritmos e Estruturas de Dados II SCC-203 Rosane 2010/2011. *Baseado em material de professores dos anos anteriores
Grafos parte 2* Algoritmos e Estruturas de Dados II SCC-203 Rosane 2010/2011 *Baseado em material de professores dos anos anteriores Divisão do Arquivo 1ª parte Percorrendo um grafo Eficiência, Correção
Leia maisCES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches
CES-11 Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra Ideia de Tarjan (1972) Durante a exploração em profundidade de um digrafo, podemos numerar seus vértices de
Leia maisESTRUTURA DE DADOS E ALGORITMOS HEAPS E LISTAS DE PRIORIDADES
ESTRUTURA DE DADOS E ALGORITMOS HEAPS E LISTAS DE PRIORIDADES Listas de Prioridades! Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade! A prioridade associada a um dado pode
Leia maisPCC173 - Otimização em Redes
PCC173 - Otimização em Redes Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 31 de maio de 2017 Marco Antonio M. Carvalho
Leia maisEstruturas de Dados Grafos
Estruturas de Dados Grafos Prof. Eduardo Alchieri (introdução) Grafo é um conjunto de pontos e linhas que conectam vários pontos Formalmente, um grafo G(V,A) é definido pelo par de conjuntos V e A, onde:
Leia maisO estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste
O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste material e a resolução (por parte do aluno) de todos os
Leia maisFilas com prioridade - Introdução (1)
lgoritmos e struturas de Dados 2013/14 Filas com rioridade - cervos Filas com prioridade - ntrodução (1) Filas com prioridade (riority Queues) usadas em diversas aplicações: Despacho (scheduler) de tarefas.
Leia maisProva 2 PMR2300 1o. semestre 2015 Prof. Thiago Martins
Prova PMR00 o. semestre 0 Prof. Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço.. ( pontos) Um heap binário é uma árvore binária completa (todos os níveis exceto o último
Leia mais01 Grafos: parte 1 SCC0503 Algoritmos e Estruturas de Dados II
01 Grafos: parte 1 SCC0503 Algoritmos e Estruturas de Dados II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2011/1 Moacir Ponti Jr. (ICMCUSP) 01
Leia maisGrafos. Notas. Notas. Notas. Notas. Caminhos mais curtos de todos os pares
Grafos Caminhos mais curtos de todos os pares Conteúdo Algoritmos Baseado em multiplicação de matrizes Algoritmo de Floyd-Warshall Agoritmo de Johnson para grafos esparsos Referências Dado um grafo orientado
Leia maisAlgoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira Anilton Joaquim da Silva
Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira ronaldo.co@ufu.br Anilton Joaquim da Silva anilton@ufu.br Introdução Uma das aplicações mais estudadas e realizadas sobre arranjos
Leia maisGrafos - Representação
466 A representação ligada poderia ser alterada de modo a incluir duas listas emanando de cada nó de cabeçalho: uma para os arcos emanando do nó de grafo e outra para os arcos terminando no nó de grafo.
Leia maisProgramação Dinâmica. Prof. Anderson Almeida Ferreira. Adaptado do material elaborado por Andrea Iabrudi Tavares
Programação Dinâmica Prof. Anderson Almeida Ferreira Adaptado do material elaborado por Andrea Iabrudi Tavares Programação Dinâmica 1950, Bellman Evitar recálculos dos subproblemas em comum Menor para
Leia maisTeoria dos Grafos Aula 22
Teoria dos Grafos Aula 22 Aula passada Caminho mais curto entre todos os pares Algoritmo de Floyd Warshall Programação dinâmica Aula de hoje Caminho mais curto Algoritmo de Bellman Ford Melhorias Caminho
Leia maisINF111 Programação II Aulas 11, 12, 13 Ordenação
INF Programação II Aulas,, Ordenação Departamento de Informática UFV Ordenação A ordenação é o processo de organizar um conunto (vetor) de n obetos ou registros segundo uma determinada ordem crescente
Leia maisLimite assintótico para a ordenação, Ordenação em tempo linear
Algoritmos e Estruturas de Dados I Limite assintótico para a ordenação, Ordenação em tempo linear Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q-2017 1 Ordenação Ordenar corresponde ao processo
Leia mais