BC-0506: Comunicação e Redes Algoritmos em Grafos

Tamanho: px
Começar a partir da página:

Download "BC-0506: Comunicação e Redes Algoritmos em Grafos"

Transcrição

1 BC-0506: Comunicação e Redes Algoritmos em Grafos Santo André, 2Q2011 1

2 Parte 1: Algoritmos de Busca

3 Rediscutindo: Representações em Grafos Matriz de Adjacências Matriz de Incidências Lista de Adjacências 3

4 Matriz de Adjacências A matriz de adjacências de um grafo tem colunas e linhas indexadas pelos vértices. Se A for a matriz de adjacências de índices i e j, A(i,j) = 1 se os vértices i e j forem conectados por uma aresta e A(i,j) = 0 caso contrário. Em grafos não orientados a matriz de adjacências é sempre simétrica, ou seja, A(i,j) = A(j,i). 4

5 Exemplo: Grafo não-orientado e Matriz de Adjacência 5

6 Exemplo: Grafo orientado e Matriz de Adjacência 6

7 Matriz de Incidência A Matriz de Incidência representa computacionalmente um grafo em que as linhas e colunas são vértices e arestas. Assim, dado um grafo com n vértices e m arestas, podemos representá-lo por uma matriz B n x m, guardando informações sobre a incidência de vértices em cada aresta. Para representar um grafo sem pesos nas arestas e não-orientado, basta que as entradas da matriz B contenham +1 se a aresta chega no vértice, -1 se a aresta parte do vértice e 0 caso a aresta não chegue nem parta no/do vértice. 7

8 Exemplo: Matriz de Incidência 8

9 Lista de Adjacências O vetor de listas de adjacência de um grafo tem uma lista encadeada para cada um de seus vértices. A lista de cada vértice v contém todos os vértices vizinhos que se pode alcançar a partir de v. 9

10 Exemplo: Lista de Adjacências Adj[1] = {2} Adj[2] = {1,3,5} Adj[3] = {4} Adj[4] = {1,5} Adj[5] = {2} 10

11 Grafos Ponderados Um grafo pode ser ponderado ou não-ponderado. Se todas as arestas apresentarem um mesmo peso (ou custo), diz-se que o grafo é não ponderado e considera-se todas as arestas com custo igual a 1. O grafo será ponderado se diferentes arestas possuírem custos distintos. 11

12 Exemplo: Grafos Ponderados e Não-Ponderados Em grafos ponderados, representa-se entre parênteses o custo da aresta. Pode-se ainda representar um grafo não-ponderado ignorando os custos das arestas. Em um grafo nãoponderado, todas as arestas possuem custo igual a 1. 12

13 Caminhos em Grafos Um caminho num grafo é uma sequência de vértices dotada da propriedade de que cada novo vértice é adjacente ao anterior. A origem de um caminho é o primeiro vértice do caminho. O término é o último vértice. Diz-se que um caminho com origem s e término t vai de s a t. Dizemos que uma aresta v w pertence a um caminho se o vértice w é o sucessor de v no caminho. Todas as arestas de um caminho apontam no mesmo sentido, de um vértice para o seu sucessor. 13

14 Caminhos em Grafos Costuma-se diferenciar caminho de passeio em grafos. Assim, em um caminho de s a t, não pode haver nenhum vértice repetido, enquanto em um passeio isso pode acontecer. O comprimento de um caminho é o número de termos da sequência menos um. Em outras palavras, é o número de arestas do caminho. Em grafos não-orientados, a existência de caminhos é uma propriedade simétrica: para quaisquer dois vértices s e t, existe caminho de s a t, se e somente se, existe caminho de t a s. 14

15 Exemplo de Caminho Para o exemplo a seguir (não-orientado e nãoponderado), o caminho 1 a 3 deve ser passando pelo vértice 2. Caminho 1 a 3: Caminho 3 a 1:

16 Exemplo de Caminho Para grafos orientados (ponderados ou não) o caminho de s a t pode ser diferente do caminho de t a s. Exemplo: Caminho 1 a 3: Caminho 3 a 1:

17 Busca em Grafos Um algoritmo de busca (ou varredura) é um algoritmo que examina, sistematicamente, todos os vértices e todas as arestas de um grafo. Cada aresta é examinado uma só vez. Depois de visitar a ponta inicial de uma aresta, o algoritmo percorre aresta e visita sua ponta final. Para justificar a palavra "busca", devemos imaginar que o algoritmo percorre o grafo buscando todos os vértices que são acessíveis a partir de um determinado vértice em questão. 17

18 Busca em Grafos Há muitas maneiras de fazer uma tal busca. Cada estratégia de busca é caracterizada pela ordem em que os vértices são visitados. Assim, a ordem de visita torna-se essencial se desejamos determinar outras propriedades além da mera característica de um determinado vértice ser alcançado a partir de outro. 18

19 Busca em Grafos O algoritmo de busca em grafos pode então nos mostrar outras características de grafos. Os algoritmos mais comumente discutidos são os algoritmos de busca em largura e de busca em profundidade, que serão apresentados a seguir 19

20 Busca em Largura No algoritmo de busca em largura, a lista de vértices obedece a política FIFO (First-In-First-Out, ou o primeiro a entrar será o primeiro a sair Fila): o vértice que sai da lista é sempre o que está lá há mais tempo. O algoritmo pinta de preto todos os vértices que podem ser alcançados a partir de um vértice de origem até alcançar o vértice de destino. A principal característica desse algoritmo é que a busca segue um modelo de parametrização pela distância a partir da origem. No exemplo a seguir, vamos supor que estejamos buscando o caminho entre 1 e 5. 20

21 Exemplo: Busca em Largura No início todos os vértices são pintados de branco. Para o exemplo o vértice de origem é o 1, sendo marcado com largura igual a zero. O algoritmo pinta de cinza este vértice e o coloca em uma fila Q, mapeando também seus vizinhos. Neste caso, ele se conecta apenas com o vértice 2. Q = 1 21

22 Exemplo: Busca em Largura No próximo passo, o vértice 1 é retirado da fila Q e pintado de preto, enquanto o vértice 2 é mapeado com largura igual a 1 e inserido na fila Q. O vértice 2 é então pintado de cinza e seus vizinhos são mapeados. No caso, os vértices 1, 3 e 5. Q = 2 22

23 Exemplo: Busca em Largura O vértice 2 é retirado da fila Q e pintado de preto, enquanto os vértices 3 e 5 são colocados na fila Q e mapeados com largura igual a 2. O vértice 1 não é colocado na fila (apesar de haver uma conexão), pois já está pintado de preto. Q = 3, 5 23

24 Exemplo: Busca em Largura O vértice 3 é retirado da fila Q e pintado de preto, enquanto o vértice 4 é colocado na fila Q e mapeado com largura igual a 3. Q = 5, 4 24

25 Exemplo: Busca em Largura Em seguida o vértice 5 também é visitado, pintado de preto e retirado da fila Q. Como sua única conexão é com o vértice 2 (já pintado de preto), nada é feito. Q = 4 25

26 Exemplo: Busca em Largura No término da execução deste exemplo o vértice 4 é pintado de preto e retirado da fila Q. Como suas conexões levam a vértices já pintados de preto (1 e 5), nada é feito e a fila torna-se vazia (fim do algoritmo). Q vazia 26

27 Exemplo: Busca em Largura Para o caminho entre origem e destino parte-se do vértice de destino, examinado seus predecessores até chegar à origem. Depois inverte-se o vetor conseguido. Para este exemplo, o caminho é A seguir é apresentado um pseudocódigo do algoritmo de busca em largura. Q vazia 27

28 Pseudocódigo: Busca em Largura Busca_largura(Adj,origem,destino) // Adj é a lista de adjacências do grafo t = tamanho de Adj; para u = 1 até t, cor(u) = branco; fim cor(origem) = cinza; fila(1) = origem; i = 1; f = 2; enquanto i < f, u = fila(i); i = i + 1; c = Adj{u}; se (c não é vazio), para v = 1 até tamanho de c, se cor(c(v)) == branco, cor(c(v)) = cinza; predecessor(c(v)) = u; fila(f) = c(v); f = f + 1; fim cor(u) = preto; fim fim fim caminho(1) = destino; prev = predecessor(destino); enquanto (prev ~= origem), caminho(tamanho do caminho + 1) = prev; destino = prev; prev = predecessor(destino); fim caminho(tamanho do caminho + 1) = prev; para i = 1 até tamanho de caminho caminho2(i) = caminho(tamanho do caminho-i+1); fim 28

29 Busca em Profundidade A estratégia seguida pela busca em profundidade é, como seu nome implica, procurar cada vez mais fundo no grafo. Nessa busca as arestas são exploradas a partir do vértice v mais recentemente descoberto que ainda possui arestas inexploradas saindo dele. Quando todas as arestas alcançadas a partir do vértice de origem são visitadas a busca regressa para explorar as arestas que deixam o vértice do qual v foi descoberto. Para o exemplo a seguir, tentaremos descobrir o caminho de 1 a 5. 29

30 Exemplo: Busca em Profundidade No início todos os vértices são brancos, mas partindo do vértice 1, este é pintado de cinza e sua aresta é examinada, levando ao vértice 2. O vértice 1 é marcado com distância 0. 30

31 Exemplo: Busca em Profundidade O vértice 1 é pintado de preto. O vértice 2 é pintado de cinza, enquanto suas arestas serão examinadas e é atribuído a ele uma distância 1. A primeira aresta de 2 leva ao vértice 1, já pintado de preto. Partindo para a segunda aresta, esta leva ao vértice 3. 31

32 Exemplo: Busca em Profundidade O vértice 3 é então pintado de cinza e a ele é atribuído uma distância 2. Sua única aresta é examinada, levando ao vértice 4. 32

33 Exemplo: Busca em Profundidade O vértice 3 é pintado de preto e o vértice 4 é pintado de cinza, sendo que a ele é atribuído uma distância 3. Suas arestas serão examinadas. A primeira leva a um nó já pintado de preto, logo não é analisada. A segunda, leva ao vértice 5. 33

34 Exemplo: Busca em Profundidade O vértice 4 é pintado de preto e o vértice 5 é pintado de cinza, sendo que a ele é atribuído uma distância 4. Sua aresta é examinada, constatando-se que leva a um vértice já pintado de cinza. 34

35 Exemplo: Busca em Profundidade O vértice 5 é pintado de preto e parte-se para o exame da última aresta pertencente ao vértice 2. 35

36 Exemplo: Busca em Profundidade Como neste momento esta aresta remete a um vértice já pintado de preto (vértice 5), o vértice 2 também é pintado de preto e o algoritmo é terminado. Diferente da busca em largura, este algoritmo produz um caminho para o caminho de 1 a 5. 36

37 Busca em Profundidade: Detalhes O algoritmo de busca em profundidade na sua forma mais robusta utiliza um recurso computacional chamado recursão, em que uma dada função chama a si mesma. Um pseudocódigo para o algoritmo de busca em largura que encontra o caminho entre dois vértices é mostrado a seguir. Claramente há uma grande diferença no modo de implementação e nos resultados dos dois algoritmos. Desta forma, quando há a necessidade de obtenção do caminho mínimo entre dois vértices, outros algoritmos podem ser utilizados. 37

38 Pseudocódigo: Busca em Profundidade Busca_profundidade(Adj,origem,destino) //Adj é a lista de adjacências do grafo t = tamanho de Adj; para u = 1 até t, cor(u) = branco; fim caminho(1) = origem; c = busca_em_prof(adj,origem,destino,caminho); função busca_em_prof(adj,u,d,caminho) cor(u) = cinza; v = Adj[u]; caminho2 = caminho; se (v não é vazio), para i = 1 até tamanho(v), se (caminho(tamanho(caminho)))!= d), se (v(i) igual a d), cor(v(i)) = preto; caminho = caminho2; caminmho(tamanho(caminho2)+1) = d; Salto; senão se (cor(v(i)) == branco), caminho = caminho2; caminho(tamanho(caminho2)+1) = v(i); c = busca_em_prof(adj,v(i),d,caminho); caminho = c; fim fim fim cor(u) = preto; fim 38

39 Distância Um caminho C num grafo é mínimo se não existe outro caminho com mesma origem e mesmo término que C mas comprimento menor que o de C. A distância de um vértice s a um vértice t num grafo é o comprimento de um caminho mínimo de s a t. Se não existe caminho algum de s a t, a distância de s a t é infinita. A distância de s a t é d se e somente se (1) existe um caminho de comprimento d de s a t e (2) nenhum caminho de s a t tem comprimento menor que d. Em geral, num grafo direcionado a distância de um vértice s a um vértice t é diferente da distância de t a s. Se o grafo é nãoorientado, entretanto, as duas distâncias são iguais. 39

40 Grafos Ponderados Muitas aplicações associam um número a cada aresta de um grafo. Diremos que esse número é o custo da aresta, que pode ser remetido a uma característica física da conexão. Por exemplo, se duas arestas de um grafo representam conexões de cabos óticos entre cidades A, B, e C (vértices do grafo), sendo que a distância entre A e B é o dobro da distância de A a C, então pode-se atribuir um custo maior à aresta que liga os vértices A e B. Dependendo da aplicação, pode ser mais apropriado dizer "peso" ou "comprimento" no lugar de "custo". 40

41 Exemplo: Caminho de Custo Mínimo Se o grafo ponderado e direcionado abaixo for tomado como exemplo, o caminho mínimo C de 1 a 5 tem custo d igual a 2, levando a um caminho Perceba que existe um outro caminho , mas este possui custo d igual a 5. 41

42 Parte 2: Algoritmos de Caminhos Mínimos

43 Busca de Caminhos Mínimos Para a busca de caminhos mínimos em grafos há algoritmos específicos que executam a tarefa. Entretanto há formas específicas para tratar o problema, sendo diferentes quando busca-se caminhos mínimos a partir de um dado vértice ou quando se buscam os caminhos mínimos entre todos os pares de vértices. 43

44 Caminho Mínimo com Origem Fixa Problema dos Caminhos Mínimos com Origem Fixa: dado um vértice s de um grafo com custos 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. Todos os algoritmos para esses problemas exploram a seguinte propriedade básica: Propriedade Triangular: Para quaisquer vértices x, y e z de um grafo com custos não-negativos nos arcos, temse d(x,z) d(x,y) + d(y,z), sendo d(i,j) a distância de i a j. 44

45 Algoritmo de Dijkstra Um algoritmo eficiente para a obtenção do caminho mínimo em grafos com custos nãonegativos é o chamado algoritmo de Dijkstra. O algoritmo pode ser usado, em particular, para encontrar um caminho de custo mínimo de um dado vértice a outro, ou a todos os outros vértices. O algoritmo de Dijkstra funciona de forma iterativa, passo a passo, como mostrado a seguir. A entrada é a matriz de adjacências do grafo. 45

46 Algoritmo de Dijkstra 1. Como primeiro passo é atribuída uma distância para todos os pares de vértices. De início é atribuída uma distância infinita para todos, menos para o vértice de origem. 2. Marque todos os vértices como não visitados e defina o vértice inicial como vértice corrente. 3. Para este vértice corrente, considere todos os seus vértices vizinhos não visitados e calcule a distância a partir do vértice. Se a distância for menor do que a definida anteriormente, substitua a distância. 4. Quando todos os visinhos do vértice corrente forem visitados, marque-o como visitado, o que fará com que ele não seja mais analisado (sua distância é mínima e final). 5. Eleja o vértice não visitado com a menor distância (a partir do vértice inicial) como o vértice corrente e continue a partir do passo 3. 46

47 Exemplo: Algoritmo de Dijkstra Para o exemplo a seguir, o vértice 1 é o vértice origem e o vértice corrente do início do algoritmo. A distância dele para todos os outros vértices é mostrada em vermelho. A distância para seu vizinho (vértice 2) é igual a 1. D = 1 D = D = D = D = 0 47

48 Exemplo: Algoritmo de Dijkstra O vértice 2 passa a ser o vértice corrente. A partir dele, atinge-se os vértices 3 e 5, sendo as respectivas distâncias calculadas para 2 (ao invés de infinito) e 2. D = 1 D = 2 D = 1 D = 2 D = D = 0 48

49 Exemplo: Algoritmo de Dijkstra O vértice 3 é o vértice corrente. A partir dele alcança-se o vértice 4, com distância 4. Neste ponto todos os vértices foram visitados e o vetor de distâncias mínimas a partir do vértice 1 é D = [ ]. D = 2 D = 1 D = 2 D = 4 D = 0 D = 2 49

50 Pseudocódigo: Algoritmo de Dijkstra Dijkstra(grafo,origem) para cada vértice v em grafo distancia[v] = Infinito; predecessor[v] = -1; fim distancia[origem] = 0; Q = todos os vértices de grafo; enquanto (Q não é vazio) faça, u = vértice é grafo com menor distância; se (distancia[u] == Infinito) Salta o laço; fim remova u de Q; para cada vizinho v de u d = distancia[u] + distancia entre u e v; se (d < distancia[v]), distancia[v] = d; predecessor[v] = u; fim fim fim fim 50

51 Caminhos mínimos entre todos os pares de vértices O Algoritmo de Floyd-Warshall é um algoritmo muito eficiente para encontrar todos as distâncias mínimas dos pares de caminhos em um grafo. Em aplicações onde é necessária a criação de uma matriz de caminhos mínimos ao invés de um vetor, este algoritmo é mais aconselhável. 51

52 Algoritmo de Floid-Warshall O algoritmo de Floyd-Warshall deve primeiramente modificar a matriz de adjacência do grafo, de modo que todas as posições dos pares de vértices em que não houver conexões sejam setadas como Infinito. Um pseudocódigo da implementação é mostrado a seguir, sendo a entrada do programa a própria matriz de adjacências. O programa retorna uma matriz com todos os pares de caminhos mínimos. 52

53 Pseudocódigo: Algoritmo de Floyd-Warshall FloidWarshall(Madj) para cada linha i em Madj para cada coluna j em Madj se (Madf[i][j] == 0) Madj[i][j] == Infinito; fim fim fim t = numero de linhas de Madj; Cmin = Madj; para k igual a 1 até t, para i igual a 1 até t, para j igual a 1 até t, Cmin[i][j] = min(cmin[i][j],cmin[i][k]+cmin[k][j]); fim fim fim retorna Cmin; fim 53

54 Referências Bibliográficas T. H. Cormen, C. H. Leiserson, R. L. Rivest, C. Stein, Algoritmos: Teoria e Prática, Editora Campus, R. Sedgewick, Algorithms in C, Addison Wisley,

55 Exercícios Propostos 1. Um grafo não-ponderado é representado pela lista de adjacências Adj = {[2]; [3]; [4,5,8]; []; [6,7]; [1]; [9]; [10]; [10]; []}. Represente graficamente este grafo e aplique o algoritmo de busca em largura e busca em profundidade para encontrar o caminho entre os vértices 1 e Considere um grafo orientado e ponderado que seja representado pela matriz de adjacência abaixo. Simule o algoritmo de Dijkstra e determine o vetor de distâncias a partir do vértice 1. Faça gráficos para mostrar a evolução do algoritmo. 3. Usando a mesma matriz de adjacências do exercício anterior, implemente o algoritmo de Floid-Warshall em qualquer linguagem para calcular a matriz de caminhos mínimos. 55

56 Atividade extra Uma rede de informação possui uma topologia representada por um grafo cuja matriz de adjacências é dada a seguir. Após um certo tempo de operação t o roteador representado pelo vértice 2 cai, deixando de existir as conexões que chegam e saem deste vértice. Passado um tempo t após a queda do vértice 2 o vértice 6 também cai e após 2t é a vez do vértice 12 sair de operação. Utilizando recursos computacionais, faça uma análise dos custos representados para o escoamento de informação devido à inoperabilidade destes roteadores e justifique suas afirmações por meio de gráficos e tabelas. Qual destas falhas representa a principal falha individual? 56

Trabalho Computacional

Trabalho Computacional Universidade Federal do Espírito Santo Departamento de Informática Profª Claudia Boeres Teoria dos Grafos - 2014/2 Trabalho Computacional 1. Objetivo Estudo e implementação de algoritmos para resolução

Leia mais

CAPÍTULO 2. Grafos e Redes

CAPÍTULO 2. Grafos e Redes CAPÍTULO 2 1. Introdução Um grafo é uma representação visual de um determinado conjunto de dados e da ligação existente entre alguns dos elementos desse conjunto. Desta forma, em muitos dos problemas que

Leia mais

Inteligência Artificial Prof. Marcos Quinet Pólo Universitário de Rio das Ostras PURO Universidade Federal Fluminense UFF

Inteligência Artificial Prof. Marcos Quinet Pólo Universitário de Rio das Ostras PURO Universidade Federal Fluminense UFF Inteligência Artificial Prof. Marcos Quinet Pólo Universitário de Rio das Ostras PURO Universidade Federal Fluminense UFF No capítulo anterior... Estratégias de busca auxiliadas por heurísticas (A*, BRPM)

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos Complexidade de Algoritmos Envolvendo Estruturas de Dados Elementares Prof. Osvaldo Luiz de Oliveira Estas anotações devem ser complementadas por apontamentos em aula. Vetor

Leia mais

Algoritmos e Estrutura de Dados III. Árvores

Algoritmos e Estrutura de Dados III. Árvores Algoritmos e Estrutura de Dados III Árvores Uma das mais importantes classes de estruturas de dados em computação são as árvores. Aproveitando-se de sua organização hierárquica, muitas aplicações são realizadas

Leia mais

Grafo: Algoritmos e Aplicações

Grafo: Algoritmos e Aplicações Grafo: Algoritmos e Aplicações Leandro Colombi Resendo leandro@ifes.edu.br Grafos: Algortimos e Aplicações Referências Basicas: Boaventura Netto, P. O., Grafos: Teoria, Modelos, Algoritmos, 2ª, SP, Edgar

Leia mais

Busca em Largura. Adaptado de Humberto C. B. Oliveira

Busca em Largura. Adaptado de Humberto C. B. Oliveira Busca em Largura Adaptado de Humberto C. B. Oliveira Últimas aulas Introdução: História Aplicações Conceitos Básicos: Grafo simples Grafo completo/vazio Grafo não orientado: Arestas laço Arestas paralelas

Leia mais

Pesquisa Operacional Programação em Redes

Pesquisa Operacional Programação em Redes Pesquisa Operacional Programação em Redes Profa. Alessandra Martins Coelho outubro/2013 Modelagem em redes: Facilitar a visualização e a compreensão das características do sistema Problema de programação

Leia mais

Complexidade de Algoritmos. Edson Prestes

Complexidade de Algoritmos. Edson Prestes Edson Prestes Idéias básicas Um algoritmo guloso seleciona, a cada passo, o melhor elemento pertencente a entrada. Verifica se ele é viável - vindo a fazer parte da solução ou não. Após uma seqüência de

Leia mais

Estrutura de Dados Básica

Estrutura de Dados Básica Estrutura de Dados Básica Professor: Osvaldo Kotaro Takai. Aula 7: Recursividade O objetivo desta aula é apresentar o conceito de recursão para solução de problemas. A recursão é uma técnica de programação

Leia mais

Estruturas de Dados Pilhas, Filas e Deques

Estruturas de Dados Pilhas, Filas e Deques Estruturas de Dados Pilhas, Filas e Deques Prof. Eduardo Alchieri Estruturas de Dados Pilhas Pilhas Lista LIFO (Last In, First Out) Os elementos são colocados na estrutura (pilha) e retirados em ordem

Leia mais

7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura 7.1 - Exemplo de um grafo linear.

7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura 7.1 - Exemplo de um grafo linear. CAPÍTULO 7 7 ANÁLISE DE REDES 7.1 Conceitos Básicos em Teoria dos Grafos Diversos problemas de programação linear, inclusive os problemas de transporte, podem ser modelados como problemas de fluxo de redes.

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro Parte 2. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro Parte 2. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu. Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro Parte 2 Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br versão da aula: 0.3 Última aula teórica Algoritmo de Tentativa e Erro:

Leia mais

ESTRUTURAS DE DADOS I. Notas de Aula. Prof. Dr. Gilberto Nakamiti

ESTRUTURAS DE DADOS I. Notas de Aula. Prof. Dr. Gilberto Nakamiti ESTRUTURAS DE DADOS I Notas de Aula 1 SUMÁRIO 1. INTRODUÇÃO... 2 1.1 Array (vetores)... 2 2. BUSCA DE ELEMENTOS... 3 2.1 Busca Seqüencial... 3 2.2 Busca Binária... 3 2.3 Busca Indexada... 3 2.4 Busca Hash...

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Grafos Cliques Maximais Para determinar os cliques maximais de um grafo G podemos usar o método de Maghout em Dado o grafo abaixo, calcule Determine os conjuntos independentes maximais em

Leia mais

BCC204 - Teoria dos Grafos

BCC204 - Teoria dos Grafos BCC204 - Teoria dos Grafos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Haroldo Gambini Santos) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal

Leia mais

QUESTÃO 1 ALTERNATIVA B

QUESTÃO 1 ALTERNATIVA B 1 QUESTÃO 1 Marcos tem 10 0,25 = 2,50 reais em moedas de 25 centavos. Logo ele tem 4,30 2,50 = 1,80 reais em moedas de 10 centavos, ou seja, ele tem 1,80 0,10 = 18 moedas de 10 centavos. Outra maneira

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Complemento de Grafos Mostre que para qualquer Grafo G com 6 pontos, G ou possui um triângulo Considere um vértice v de V(G). Sem perda de generalidade, podemos assumir v é adjacente a outros

Leia mais

a soma dois números anteriores da primeira coluna está na segunda coluna: (3m +1) + (3n +1) = 3(m + n) + 2.

a soma dois números anteriores da primeira coluna está na segunda coluna: (3m +1) + (3n +1) = 3(m + n) + 2. OBMEP 01 Nível 3 1 QUESTÃO 1 ALTERNATIVA A Basta verificar que após oito giros sucessivos o quadrado menor retorna à sua posição inicial. Como 01 = 8 1+ 4, após o 01º giro o quadrado cinza terá dado 1

Leia mais

Experimentos com a memória cache do CPU

Experimentos com a memória cache do CPU Experimentos com a memória cache do CPU Alberto Bueno Júnior & Andre Henrique Serafim Casimiro Setembro de 2010 1 Contents 1 Introdução 3 2 Desvendando o cache 3 2.1 Para que serve o cache?.....................

Leia mais

Solução de problemas por meio de busca (com Python) Luis Martí DEE/PUC-Rio http://lmarti.com

Solução de problemas por meio de busca (com Python) Luis Martí DEE/PUC-Rio http://lmarti.com Solução de problemas por meio de busca (com Python) Luis Martí DEE/PUC-Rio http://lmarti.com Python e AI (Re)-introdução ao Python. Problemas de busca e principais abordagens. Exemplos em Python Por que

Leia mais

Programação para Computação

Programação para Computação Universidade Federal do Vale do São Francisco Programação para Computação Professor: Marcelo Santos Linder E-mail: marcelo.linder@univasf.edu.br Ementa Conceito de algoritmo. Lógica de programação e programação

Leia mais

Análise de Redes de Transportes. Útil também para várias outras áreas além de Transportes!

Análise de Redes de Transportes. Útil também para várias outras áreas além de Transportes! Análise de Redes de Transportes Útil também para várias outras áreas além de Transportes! Roteiro da apresentação! Conceitos e definições! Caminho mínimo! Árvore de caminhos mínimos! Introdução ao problema

Leia mais

Busca em Árvores ou Grafos

Busca em Árvores ou Grafos Giga Mundo Computação RSS Sobre a Equipe Mais computacao no seu Email! Nosso forum Politica de Privacidade Busca em Árvores ou Grafos Posted by on March 10th, 2009 in Inteligência Artificial StatSoft Data

Leia mais

EAD Árvore árvore binária

EAD Árvore árvore binária EAD Árvore árvore binária - Uma árvore binária é um conjunto finito de elementos (nodos) que pode ser vazio ou particionado em três subconjuntos: - raiz da árvore (elemento inicial, que é único); - subárvore

Leia mais

Computabilidade 2012/2013. Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto

Computabilidade 2012/2013. Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto Computabilidade 2012/2013 Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto Capítulo 1 Computabilidade 1.1 A noção de computabilidade Um processo de computação

Leia mais

Algoritmos e Estruturas de Dados II. Trabalho Prático 2

Algoritmos e Estruturas de Dados II. Trabalho Prático 2 Algoritmos e Estruturas de Dados II Entrega: 24/09/08 Devolução: 15/10/08 Trabalho individual Prof. Jussara Marques de Almeida Trabalho Prático 2 Você foi contratado pela XOL X Online para desenvolver

Leia mais

CAMADA DE REDES. Fabrício de Sousa Pinto

CAMADA DE REDES. Fabrício de Sousa Pinto CAMADA DE REDES Fabrício de Sousa Pinto Introdução 2 Está relacionada a transferência de pacotes da origem para o destino. Pode passar por vários roteadores ao longo do percurso Transmissão fim a fim Para

Leia mais

Na resolução de um problema por meio de um programa, a primeira providência é conceber um algoritmo adequado.

Na resolução de um problema por meio de um programa, a primeira providência é conceber um algoritmo adequado. Estrutura de Dados Introdução Extraído de : Estruturas de Dados Homero L. Pícollo Na resolução de um problema por meio de um programa, a primeira providência é conceber um algoritmo adequado. A eficiência

Leia mais

Aula 20. Roteamento em Redes de Dados. Eytan Modiano MIT

Aula 20. Roteamento em Redes de Dados. Eytan Modiano MIT Aula 20 Roteamento em Redes de Dados Eytan Modiano MIT 1 Roteamento Deve escolher rotas para vários pares origem, destino (pares O/D) ou para várias sessões. Roteamento datagrama: a rota é escolhida para

Leia mais

Filas: conceitos e implementações

Filas: conceitos e implementações Estrutura de Dados I Filas: conceitos e implementações Cesar Rocha cesar@pontoweb.com.br 1 Objetivos Explorar os conceitos fundamentais acerca do uso de filas utilizando a linguagem C Organização e implementação,

Leia mais

Inteligência Artificial. Metodologias de Busca

Inteligência Artificial. Metodologias de Busca Inteligência Artificial Metodologias de Busca 1 Solução de problemas como Busca Um problema pode ser considerado como um objetivo Um conjunto de ações podem ser praticadas para alcançar esse objetivo Ao

Leia mais

Capítulo 4 Gerenciamento de Memória

Capítulo 4 Gerenciamento de Memória Capítulo 4 Gerenciamento de Memória 4.1 Gerenciamento básico de memória 4.2 Troca de processos 4.3 Memória virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelagem de algoritmos de substituição

Leia mais

Teoria dos Grafos Aula 27

Teoria dos Grafos Aula 27 Teoria dos Grafos Aula 27 Aula passada Aula de hoje Algoritmo de Ford Aplicações do fluxo Fulkerson máximo Análise do algoritmo Emparelhamento perfeito Melhorando algoritmo inicial Caminhos distintos Corte

Leia mais

Ata da resolução de exercício

Ata da resolução de exercício Ata da resolução de exercício Exercício : 6.-3 Aluno: Paulo Gurgel Pinheiro pinheiro@ic.unicamp.br Disciplina: Complexidade de Algoritmos - MO47 Data: 0 de Maio de 009 Enuciado exercício 6.-3 Vamos supor

Leia mais

MÉTODOS DE RESOLUÇÃO DE PROBLEMAS EM IA. Busca em espaço de estados. Estados e Operadores. Jogo dos 8. Sumário. Exemplo: jogo dos 8

MÉTODOS DE RESOLUÇÃO DE PROBLEMAS EM IA. Busca em espaço de estados. Estados e Operadores. Jogo dos 8. Sumário. Exemplo: jogo dos 8 MÉTODOS DE RESOLUÇÃO DE PROBLEMAS EM IA Sumário busca em espaço de estados redução de problemas Busca em espaço de estados Exemplo: jogo dos 8 2 8 3 1 6 4 7 5 Jogo dos 8 Estados e Operadores Estado: uma

Leia mais

Protocolo OSPF. O p e n S h o r t e s t P at h F i r s t. E s pec i a li s ta

Protocolo OSPF. O p e n S h o r t e s t P at h F i r s t. E s pec i a li s ta Ebook Exclusivo Protocolo OSPF O p e n S h o r t e s t P at h F i r s t E s pec i a li s ta em S e rv i ços G e r e n c i a do s Segurança de de Perímetro Sumário Introdução P.3 Ententendendo o Protocolo

Leia mais

A-Graph: Uma ferramenta computacional de suporte para o ensino-aprendizado da disciplina Teoria dos Grafos e seus Algoritmos

A-Graph: Uma ferramenta computacional de suporte para o ensino-aprendizado da disciplina Teoria dos Grafos e seus Algoritmos A-Graph: Uma ferramenta computacional de suporte para o ensino-aprendizado da disciplina Teoria dos Grafos e seus Algoritmos Luis Arturo Pérez Lozada 1 1 Centro de Matemática, Computação e Cognição Universidade

Leia mais

Teoria dos Grafos. Aulas 3 e 4. Profa. Alessandra Martins Coelho

Teoria dos Grafos. Aulas 3 e 4. Profa. Alessandra Martins Coelho Teoria dos Grafos Aulas 3 e 4 Profa. Alessandra Martins Coelho fev/2014 Passeio ou percurso Um passeio ou percurso é uma sequência finita de vértices e arestas Exemplo Em (1) o passeio inicia pelo vértice

Leia mais

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário

Leia mais

Manutenção de Arquivos

Manutenção de Arquivos Manutenção de Arquivos Manutenção de Arquivos Algoritmos e Estruturas de Dados II Prof. Ricardo J. G. B. Campello Projetista deve considerar modificações no arquivo Adição, atualização e eliminação de

Leia mais

DAS5102 Fundamentos da Estrutura da Informação

DAS5102 Fundamentos da Estrutura da Informação Pilhas A estrutura de dados Pilha emula a forma de organização de objetos intuitiva que é utilizada diariamente nos mais diversos contextos da vida humana. Containeres são empilhados e desempilhados diariamente

Leia mais

Trabalho 7 Fila de prioridade usando heap para simulação de atendimento

Trabalho 7 Fila de prioridade usando heap para simulação de atendimento Trabalho 7 Fila de prioridade usando heap para simulação de atendimento Data: 21/10/2013 até meia-noite Dúvidas até: 09/10/2013 Faq disponível em: http://www2.icmc.usp.br/~mello/trabalho07.html A estrutura

Leia mais

Algoritmos e Estrutura de Dados. Prof. Tiago A. E. Ferreira

Algoritmos e Estrutura de Dados. Prof. Tiago A. E. Ferreira Algoritmos e Estrutura de Dados Aula 7 Estrutura de Dados: Listas Prof. Tiago A. E. Ferreira Introdução Um das formas mais usadas para se manter dados agrupados é a lista Lista de compras, itens de estoque,

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

Grafos: algoritmos de busca

Grafos: algoritmos de busca busca em grafos como caminhar no grafo de modo a percorrer todos os seus vértices evitando repetições desnecessárias do mesmo vértice? e por onde começar? solução: necessidade de recursos adicionais que

Leia mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 3-1. A CAMADA DE REDE (Parte 1) A camada de Rede está relacionada à transferência de pacotes da origem para o destino. No entanto, chegar ao destino pode envolver vários saltos em roteadores intermediários.

Leia mais

Redes de Computadores. Camada de Aplicação Teoria de Redes Complexas: Conceitos Básicos em Grafos

Redes de Computadores. Camada de Aplicação Teoria de Redes Complexas: Conceitos Básicos em Grafos Redes de Computadores Camada de Aplicação Teoria de Redes Complexas: Conceitos Básicos em Grafos Introdução Como as coisas estão conectadas? Redes! A network is a set of vertices or nodes provided with

Leia mais

Capítulo 7. Topologia Digital. 7.1 Conexidade

Capítulo 7. Topologia Digital. 7.1 Conexidade Capítulo 7 Topologia Digital A Topologia Digital estuda a aplicação das noções definidas em Topologia sobre imagens binárias. Neste capítulo vamos introduzir algumas noções básicas de Topologia Digital,

Leia mais

Soluções Nível 1 5 a e 6 a séries (6º e 7º anos) do Ensino Fundamental

Soluções Nível 1 5 a e 6 a séries (6º e 7º anos) do Ensino Fundamental a e 6 a séries (6º e 7º anos) do Ensino Fundamental 1. (alternativa C) Os números 0,01 e 0,119 são menores que 0,12. Por outro lado, 0,1 e 0,7 são maiores que 0,. Finalmente, 0,29 é maior que 0,12 e menor

Leia mais

Resolução de Problemas Com Procura. Capítulo 3

Resolução de Problemas Com Procura. Capítulo 3 Resolução de Problemas Com Procura Capítulo 3 Sumário Agentes que resolvem problemas Tipos de problemas Formulação de problemas Exemplos de problemas Algoritmos de procura básicos Eliminação de estados

Leia mais

Respostas dos Exercícios Cap. 2 Russell & Norvig

Respostas dos Exercícios Cap. 2 Russell & Norvig Respostas dos Exercícios Cap. 2 Russell & Norvig 1. (2.2) Uma medida de desempenho e utilizada por um observador externo para avaliar o sucesso de um agente. Uma função de utilidade e utilizada por um

Leia mais

Programação Dinâmica: Algoritmo de Bellman-Ford

Programação Dinâmica: Algoritmo de Bellman-Ford Programação Dinâmica: Algoritmo de Bellman-Ford César Garcia Daudt Caio Licks Pires de Miranda Instituto de Informática Universidade Federal do Rio Grande do Sul 22/11/2010 Resumo Este artigo se propõe

Leia mais

Árvores de Suporte de Custo Mínimo

Árvores de Suporte de Custo Mínimo Árvores de Suporte de Custo Mínimo Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Árvores de Suporte de Custo Mínimo 2014/2015 1 / 28 Árvore de Suporte Uma árvore de suporte ou árvore de extensão

Leia mais

Comunicação de Dados IV. Gabarito da Lista de Exercícios 2

Comunicação de Dados IV. Gabarito da Lista de Exercícios 2 omunicação de Dados IV Gabarito da Lista de Exercícios ) Na topologia abaixo, considerando que as redes estão interligadas através de pontes transparentes, indique as informações armazenadas em cache nas

Leia mais

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2 FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO Projeto e Análise de Algoritmos II Lista de Exercícios 2 Prof. Osvaldo. 1. Desenvolva algoritmos para as operações abaixo e calcule a complexidade

Leia mais

Projeto e Análise de Algoritmos

Projeto 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 mais

Prefixo a ser comparado Interface 1 0 10 1 111 2 Senão 3

Prefixo a ser comparado Interface 1 0 10 1 111 2 Senão 3 PEL/FEN Redes de Computadores 015/1 Segunda Lista de Exercícios Prof. Marcelo Gonçalves Rubinstein 1) Descreva os principais serviços providos pela camada rede. ) Cite as diferenças entre datagrama e circuito

Leia mais

Fluxo Máximo a Custo Mínimo

Fluxo Máximo a Custo Mínimo Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Programa de Educação Tutorial (PET) Demontiê Junior (demontie@dsc.ufcg.edu.br) Fluxo

Leia mais

BC-0506: Comunicação e Redes Aula 04: Roteamento

BC-0506: Comunicação e Redes Aula 04: Roteamento BC-0506: Comunicação e Redes Aula 04: Roteamento Santo André, Q011 1 Roteamento Princípios de Roteamento O que é... Sistemas Autônomos Roteamento Interno e Externo Principais Tipos de Algoritmos Distance-Vector

Leia mais

Grafos - Representação

Grafos - 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 mais

The Stable Matching Problem

The Stable Matching Problem The Stable Matching Problem Aluno: José Eliton Albuquerque Filho Orientador: Thomas Lewiner Introdução O problema do emparelhamento estável ( Stable Matching Problem ), apresentado por David Gale e L.S.Shapley

Leia mais

Capítulo 4 Gerenciamento de Memória

Capítulo 4 Gerenciamento de Memória Capítulo 4 Gerenciamento de Memória 4.1 Gerenciamento básico de memória 4.2 Troca de processos 4.3 Memória virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelagem de algoritmos de substituição

Leia mais

Busca em Profundidade e em Largura

Busca em Profundidade e em Largura Busca em Profundidade e em Largura Grafos e Algoritmos Computacionais Prof. Flávio Humberto Cabral Nunes fhcnunes@yahoo.com.br 1 Mais sobre Caminhos TEOREMA: Se um grafo possui exatamente 2 vértices de

Leia mais

Bacharelado em Ciência e Tecnologia BC0505 Processamento da Informação - Prof. Edson Pinheiro Pimentel

Bacharelado em Ciência e Tecnologia BC0505 Processamento da Informação - Prof. Edson Pinheiro Pimentel [1]. Sendo o vetor V igual a: Bacharelado em Ciência e Tecnologia BC0505 Processamento da Informação - Prof. Edson Pinheiro Pimentel EXERCÍCIOS Lista de Exercícios Vetor e Matriz PARTE 1 Vetor 5 10 7 6

Leia mais

TIPOS ABSTRATOS DE DADOS DEFINIÇÃO E EXEMPLOS. Bruno Maffeo Departamento de Informática PUC-Rio

TIPOS ABSTRATOS DE DADOS DEFINIÇÃO E EXEMPLOS. Bruno Maffeo Departamento de Informática PUC-Rio TIPOS ABSTRATOS DE DADOS DEFINIÇÃO E EXEMPLOS Bruno Maffeo Departamento de Informática PUC-Rio TERMINOLOGIA BÁSICA ALGORITMO Um algoritmo pode ser visto como uma seqüência de ações expressas em termos

Leia mais

IA: Problemas de Satisfação de Restrições. Prof. Msc. Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br

IA: Problemas de Satisfação de Restrições. Prof. Msc. Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br IA: Problemas de Satisfação de Restrições Prof. Msc. Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br Introdução Um PSR é definido por um conjunto de variáveis X 1, X 2,..., X n, e por um conjunto de restrições,

Leia mais

IPv6. Problema do espaço de endereços do IPv4 Outros problemas abordados

IPv6. Problema do espaço de endereços do IPv4 Outros problemas abordados IPv6 Problema do espaço de endereços do IPv4 Outros problemas abordados IPv6 - formato do datagrama Mudanças mais importantes Capacidade de endereçamento expandida Cabeçalho fixo de 40 octetos Aumentar

Leia mais

PESQUISA OPERACIONAL TEORIA DOS GRAFOS

PESQUISA OPERACIONAL TEORIA DOS GRAFOS PESQUISA OPERACIONAL TEORIA DOS GRAFOS Um grafo G(V,A) pode ser conceituado como um par de conjuntos V e A, onde: V - conjunto não vazio cujos elementos são de denominados vértices ou nodos do grafo; A

Leia mais

1. Método Simplex. Faculdade de Engenharia Eng. Celso Daniel Engenharia de Produção. Pesquisa Operacional II Profa. Dra. Lílian Kátia de Oliveira

1. Método Simplex. Faculdade de Engenharia Eng. Celso Daniel Engenharia de Produção. Pesquisa Operacional II Profa. Dra. Lílian Kátia de Oliveira Faculdade de Engenharia Eng. Celso Daniel Engenharia de Produção. Método Simple.. Solução eata para os modelos de Programação Linear O modelo de Programação Linear (PL) reduz um sistema real a um conjunto

Leia mais

Algumas Aplicações da Teoria dos Grafos

Algumas Aplicações da Teoria dos Grafos UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE MATEMÁTICA Giselle Moraes Resende Pereira (PET Matemática SESu-MEC) giselle_mrp@yahoo.com.br Marcos Antônio da Câmara (Tutor do PET Matemática) camara@ufu.br

Leia mais

Tecnologia de Redes de Computadores - aula 5

Tecnologia de Redes de Computadores - aula 5 Tecnologia de Redes de Computadores - aula 5 Prof. Celso Rabelo Centro Universitário da Cidade 1 Objetivo 2 3 4 IGPxEGP Vetor de Distância Estado de Enlace Objetivo Objetivo Apresentar o conceito de. Conceito

Leia mais

Técnicas de Teste de Software

Técnicas de Teste de Software Técnicas de Teste de Software Fabrício Sousa fabricio@uesb.br Projeto de Caso de Teste Conjunto de técnicas para criação de casos de testes Série de casos de testes que tem grande probabilidade de encontrar

Leia mais

Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010

Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010 Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010 Prof. Silvana Rossetto (DCC/IM/UFRJ) 1 13 de julho de 2010 Questões 1. Qual é a diferença fundamental entre um roteador

Leia mais

Algoritmos e Estrutura de Dados II

Algoritmos e Estrutura de Dados II Universidade Federal do Vale do São Francisco Algoritmos e Estrutura de Dados II Professor: Marcelo Santos Linder E-mail: marcelo.linder@univasf.edu.br Ementa Árvores B, grafos e tabelas de hash: alocação

Leia mais

01/05/2016. Danillo Tourinho Sancho da Silva, MSc ROTEIRIZAÇÃO TEORIA DOS GRAFOS MOTIVAÇÃO

01/05/2016. Danillo Tourinho Sancho da Silva, MSc ROTEIRIZAÇÃO TEORIA DOS GRAFOS MOTIVAÇÃO ROTEIRIZAÇÃO Danillo Tourinho Sancho da Silva, MSc TEORIA DOS GRAFOS MOTIVAÇÃO 1 MOTIVAÇÃO Por que estudar grafos? Importante ferramenta matemática com aplicação em diversas áreas do conhecimento Utilizados

Leia mais

Aula 7 Protocolos de roteamento:

Aula 7 Protocolos de roteamento: Aula 7 Protocolos de roteamento: Roteamento Estático; Roteamento dinâmico. Camada de rede A camada de rede está relacionada à transferência de pacotes da origem para o destino. Para que se chegue ao destino,

Leia mais

BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES

BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES ALGORITMOS DE BUSCA EM LISTAS COM ALOCAÇÃO SEQÜENCIAL Busca em Listas Lineares A operação de busca é

Leia mais

Tabela de roteamento

Tabela de roteamento Existem duas atividades que são básicas a um roteador. São elas: A determinação das melhores rotas Determinar a melhor rota é definir por qual enlace uma determinada mensagem deve ser enviada para chegar

Leia mais

Árvores Binárias de Busca

Árvores Binárias de Busca Árvores Binárias de Busca Uma Árvore Binária de Busca T (ABB) ou Árvore Binária de Pesquisa é tal que ou T = 0 e a árvore é dita vazia ou seu nó contém uma chave e: 1. Todas as chaves da sub-árvore esquerda

Leia mais

UFSM Prof. Ghendy Cardoso Junior 2012 1

UFSM Prof. Ghendy Cardoso Junior 2012 1 UFSM Prof. Ghendy Cardoso Junior 2012 1 2 Faltas Balanceadas 2.1 Introdução O problema consiste em determinar as tensões de barra e as correntes nas linhas de transmissão para diferentes tipos de faltas.

Leia mais

Prof. Yandre Maldonado - 1 PONTEIROS. Prof. Yandre Maldonado e Gomes da Costa

Prof. Yandre Maldonado - 1 PONTEIROS. Prof. Yandre Maldonado e Gomes da Costa Prof. Yandre Maldonado - 1 PONTEIROS Prof. Yandre Maldonado e Gomes da Costa PONTEIROS Prof. Yandre Maldonado - 2 Ponteiro é uma variável que possui o endereço de outra variável; É um poderoso recurso

Leia mais

CURSO ONLINE RACIOCÍNIO LÓGICO

CURSO ONLINE RACIOCÍNIO LÓGICO AULA QUINZE: Matrizes & Determinantes (Parte II) Olá, amigos! Pedimos desculpas por não ter sido possível apresentarmos esta aula na semana passada. Motivos de força maior nos impediram de fazê-lo, mas

Leia mais

Existe, mas não sei exibir!

Existe, mas não sei exibir! Existe, mas não sei exibir! Você já teve aquela sensação do tipo ei, isso deve existir, mas não sei exibir um exemplo quando resolvia algum problema? O fato é que alguns problemas existenciais são resolvidos

Leia mais

Sistemas Operacionais e Introdução à Programação. Vetores e matrizes

Sistemas Operacionais e Introdução à Programação. Vetores e matrizes Sistemas Operacionais e Introdução à Programação Vetores e matrizes 1 Matrizes Cada elemento de uma matriz é referenciado indicando-se sua posição dentro da matriz. Na Matemática, matrizes são arranjos

Leia mais

Questão 1. Questão 3. Questão 2. alternativa E. alternativa B. alternativa E. A figura exibe um mapa representando 13 países.

Questão 1. Questão 3. Questão 2. alternativa E. alternativa B. alternativa E. A figura exibe um mapa representando 13 países. Questão A figura eibe um mapa representando países. alternativa E Inicialmente, no recipiente encontram-se 40% ( 000) = 400 m de diesel e 60% ( 000) = = 600 m de álcool. Sendo, em mililitros, a quantidade

Leia mais

Capítulo 4 - Roteamento e Roteadores

Capítulo 4 - Roteamento e Roteadores Capítulo 4 - Roteamento e Roteadores 4.1 - Roteamento Roteamento é a escolha do módulo do nó de origem ao nó de destino por onde as mensagens devem transitar. Na comutação de circuito, nas mensagens ou

Leia mais

PERT Charts, para gestão de projectos

PERT Charts, para gestão de projectos PERT Charts, para gestão de projectos Projectos complexos são compostos por uma serie de tarefas, algumas das quais têm que ser executadas sequêncialmente, enquanto outras podem ser excutadas em paralelo

Leia mais

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento Professor Rene - UNIP 1 Roteamento Dinâmico Perspectiva e histórico Os protocolos de roteamento dinâmico são usados

Leia mais

Sistemas Inteligentes Lista de Exercícios sobre Busca

Sistemas Inteligentes Lista de Exercícios sobre Busca Sistemas Inteligentes Lista de Exercícios sobre Busca 1) A* - Problema do metrô de Paris Suponha que queremos construir um sistema para auxiliar um usuário do metrô de Paris a saber o trajeto mais rápido

Leia mais

CT-234. Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

CT-234. Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches CT-234 Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural Carlos Alberto Alonso Sanches CT-234 4) Árvores balanceadas AVL, Rubro-Negras, B-Trees Operações em árvores binárias de busca

Leia mais

2 A Derivada. 2.1 Velocidade Média e Velocidade Instantânea

2 A Derivada. 2.1 Velocidade Média e Velocidade Instantânea 2 O objetivo geral desse curso de Cálculo será o de estudar dois conceitos básicos: a Derivada e a Integral. No decorrer do curso esses dois conceitos, embora motivados de formas distintas, serão por mais

Leia mais

Morfologia Matemática Binária

Morfologia Matemática Binária Morfologia Matemática Binária Conceitos fundamentais: (Você precisa entender bem esses Pontos básicos para dominar a área! Esse será nosso game do dia!!! E nossa nota 2!!) Morfologia Matemática Binária

Leia mais

Resolução de problemas por meio de busca. Capítulo 3 Russell & Norvig Seções 3.1, 3.2 e 3.3

Resolução de problemas por meio de busca. Capítulo 3 Russell & Norvig Seções 3.1, 3.2 e 3.3 Resolução de problemas por meio de busca Capítulo 3 Russell & Norvig Seções 3.1, 3.2 e 3.3 Agentes de resolução de problemas Agentes reagvos não funcionam em ambientes para quais o número de regras condição-

Leia mais

Passeios de Euler e as pontes de Königsberg

Passeios de Euler e as pontes de Königsberg Passeios de Euler e as pontes de Königsberg João arlos V. Sampaio UFSar sampaio@dm.ufscar.br Königsberg era uma cidade da antiga Prússia, hoje chamada Kaliningrado, na atual Rússia. Na parte central de

Leia mais

XXXVI OLIMPÍADA PAULISTA DE MATEMÁTICA Prova da Primeira Fase (11 de agosto de 2012) Nível (6 o e 7 o anos do Ensino Fundamental)

XXXVI OLIMPÍADA PAULISTA DE MATEMÁTICA Prova da Primeira Fase (11 de agosto de 2012) Nível (6 o e 7 o anos do Ensino Fundamental) Instruções: XXXVI OLIMPÍADA PAULISTA DE MATEMÁTICA Prova da Primeira Fase (11 de agosto de 2012) Nível (6 o e 7 o anos do Ensino Fundamental) Folha de Perguntas A duração da prova é de 3h30min. O tempo

Leia mais

Exercícios Teóricos Resolvidos

Exercícios Teóricos Resolvidos Universidade Federal de Minas Gerais Instituto de Ciências Exatas Departamento de Matemática Exercícios Teóricos Resolvidos O propósito deste texto é tentar mostrar aos alunos várias maneiras de raciocinar

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Laboratório de Pesquisa e Desenvolvimento Universidade Federal de Alfenas versão

Leia mais

Dinâmica de um Sistema de Partículas Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU

Dinâmica de um Sistema de Partículas Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU Dinâmica de um Sistema de Partículas Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU Profa. Dra. Diana Andrade & Prof. Dr. Sergio Pilling Parte 1 - Movimento Retilíneo Coordenada de posição, trajetória,

Leia mais