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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FATEC Zona Leste. Teoria dos Gráfos. Métodos Quantitativos de Gestão MQG

FATEC Zona Leste. Teoria dos Gráfos. Métodos Quantitativos de Gestão MQG Teoria dos Gráfos Métodos Quantitativos de Gestão MQG Conceitualmente, um grafo consiste em um conjunto de vértices (pontos ou nós) e um conjunto de arestas (pontes ou arcos), ou seja, é uma noção simples,

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

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

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

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

Roteamentos AULA ... META. Introduzir alguns problemas de roteamento. OBJETIVOS. Ao final da aula o aluno deverá ser capaz de:

Roteamentos AULA ... META. Introduzir alguns problemas de roteamento. OBJETIVOS. Ao final da aula o aluno deverá ser capaz de: Roteamentos AULA META Introduzir alguns problemas de roteamento. OBJETIVOS Ao final da aula o aluno deverá ser capaz de: Distinguir circuito euleriano e ciclo hamiltoniano; Obter um circuito euleriano

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

Árvores Binárias e Busca. Jeane Melo

Árvores Binárias e Busca. Jeane Melo Árvores Binárias e Busca Jeane Melo Roteiro Parte 1 Árvores Relação hierárquica Definição Formal Terminologia Caminhamento em Árvores Binárias Exemplos Parte 2 Busca seqüencial Busca Binária Grafos Conjunto

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

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

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

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

3 Market Basket Analysis - MBA

3 Market Basket Analysis - MBA 2 Mineração de Dados 3 Market Basket Analysis - MBA Market basket analysis (MBA) ou, em português, análise da cesta de compras, é uma técnica de data mining que faz uso de regras de associação para identificar

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

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

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

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

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

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

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

ESTRUTURA DE DADOS DCC013

ESTRUTURA DE DADOS DCC013 ESTRUTURA DE DADOS DCC013 Árvores Pesquisa sequencial Preliminares Elementos pesquisados sucessivamente Comparação determina se o elemento foi encontrado ou não Exemplo: buscar 4 (Arrays e lista encadeada)

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

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

Redes de Computadores

Redes de Computadores Redes de Computadores Camada de Rede Roteamento IP RIP OSPF e BGP Slide 1 Roteamento Determinar o melhor caminho a ser tomado da origem até o destino. Se utiliza do endereço de destino para determinar

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

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

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

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

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

OTIMIZAÇÃO DE FLUXO EM GRAFOS

OTIMIZAÇÃO DE FLUXO EM GRAFOS UNIVERSIDADE FEDERAL DO PARANÁ UFPR CIÊNCIA DA COMPUTAÇÃO LEONARDO TERNES SANTOS OTIMIZAÇÃO DE FLUXO EM GRAFOS CURITIBA, MARÇO 2013 LEONARDO TERNES SANTOS OTIMIZAÇÃO DE FLUXO EM GRAFOS Trabalho de graduação,

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

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

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

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

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

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

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

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

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

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Análise de Algoritmos Aula 10 Distâncias Mínimas Edirlei Soares de Lima Distâncias Mínimas Dado um grafo ponderado G = (V, E), um vértice s e um vértice g, obter o caminho

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

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

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

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

Universidade Estadual de Mato Grosso do Sul - Curso de Ciência da Computação Disciplina: Estruturas de Dados Profª. Raquel Marcia Müller

Universidade Estadual de Mato Grosso do Sul - Curso de Ciência da Computação Disciplina: Estruturas de Dados Profª. Raquel Marcia Müller 1 Listas Lineares Dentre as estruturas de dados não primitivas, as listas lineares são as de manipulação mais simples. Uma lista linear agrupa informações referentes a um conjunto de elementos que, de

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos Classes de Complexidades de Problemas Prof. Osvaldo Luiz de Oliveira Estas anotações devem ser complementadas por apontamentos em aula. Tempo polinomial Um algoritmo A, com entrada

Leia mais

UM TEOREMA QUE PODE SER USADO NA

UM TEOREMA QUE PODE SER USADO NA UM TEOREMA QUE PODE SER USADO NA PERCOLAÇÃO Hemílio Fernandes Campos Coêlho Andrei Toom PIBIC-UFPE-CNPq A percolação é uma parte importante da teoria da probabilidade moderna que tem atraído muita atenção

Leia mais

Lógica de Programação

Lógica de Programação Lógica de Programação Unidade 20 ArrayList: Operações de Busca Curso Técnico em Informática SUMÁRIO INTRODUÇÃO... 3 TIPOS DE BUSCAS... 3 BUSCA ESPECÍFICA... 3 BUSCA ABRANGENTE... 3 PROCEDIMENTO DE BUSCA...

Leia mais

Curso: Sistemas de Informação Disciplina: Redes de Computadores Prof. Sergio Estrela Martins

Curso: Sistemas de Informação Disciplina: Redes de Computadores Prof. Sergio Estrela Martins Curso: Sistemas de Informação Disciplina: Redes de Computadores Prof. Sergio Estrela Martins Material de apoio 2 Esclarecimentos Esse material é de apoio para as aulas da disciplina e não substitui a leitura

Leia mais

Análise e Complexidade de Algoritmos

Análise e Complexidade de Algoritmos Análise e Complexidade de Algoritmos Uma visão de Intratabilidade, Classes P e NP - redução polinomial - NP-completos e NP-difíceis Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com

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

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

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

Cálculo do conjunto paralelo

Cálculo do conjunto paralelo Cálculo do conjunto paralelo Vamos usar letras maiúsculas A; B, etc para representar conjuntos e letras minusculas x, y, etc para descrever seus pontos. Vamos usar a notação x para descrever a norma de

Leia mais

ALGORITMOS DE OTIMIZAÇÃO COMBINATÓRIA

ALGORITMOS DE OTIMIZAÇÃO COMBINATÓRIA Anais do 13 O Encontro de Iniciação Científica e Pós-Graduação do ITA XIII ENCITA / 2007 Instituto Tecnológico de Aeronáutica São José dos Campos SP Brasil Outubro 01 a 04 2007. ALGORITMOS DE OTIMIZAÇÃO

Leia mais

Teoria dos Grafos Aula 5

Teoria 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 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

Estruturas de Dados Árvores

Estruturas de Dados Árvores Estruturas de Dados Árvores Prof. Eduardo Alchieri Árvores (introdução) Importância de estruturas unidimensionais ou lineares (vetores e listas) é inegável Porém, estas estruturas não são adequadas para

Leia mais

Problemas de Satisfação de Restrições

Problemas de Satisfação de Restrições Computação Inteligente Problemas de Satisfação de Restrições Lucas Augusto Carvalho Mestrado em Ciência da Computação 2011.1 DCOMP - Universidade Federal de Sergipe 1 Conteúdo Problemas de Satisfação de

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

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

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

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

Teoria dos Grafos Aula 23

Teoria dos Grafos Aula 23 Teoria dos Grafos Aula 23 Aula passada Apresentação de trabalhos Discussão da prova Subset sum Problema da mochila Aula de hoje Caminho mais curto entre todos os pares Algortimo de Floyd Warshall Programação

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 6

Teoria dos Grafos Aula 6 Teoria dos Grafos Aula 6 Aula passada Busca em grafos Busca em largura (BFS Breadth First Search) Propriedades Aula de hoje BFS implementação Complexidade Busca em profundidade (DFS) Conectividade, componentes

Leia mais

UMA IMPLEMENTAÇÃO EM LINGUAGEM JAVA DE ALGORITMO DE CLASSIFICAÇÃO BASEADO NO MÉTODO DA INSERÇÃO DIRETA

UMA IMPLEMENTAÇÃO EM LINGUAGEM JAVA DE ALGORITMO DE CLASSIFICAÇÃO BASEADO NO MÉTODO DA INSERÇÃO DIRETA UMA IMPLEMENTAÇÃO EM LINGUAGEM JAVA DE ALGORITMO DE CLASSIFICAÇÃO BASEADO NO MÉTODO DA INSERÇÃO DIRETA 1 BIM,Pedro Henrique Marana; 1 RABALDELLI, Diego José Caíres; 1 SOARES, Luis Antonio; 2 TAMAE, Rodrigo

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

Método de Eliminação de Gauss. Eduardo Camponogara

Método de Eliminação de Gauss. Eduardo Camponogara Sistemas de Equações Lineares Método de Eliminação de Gauss Eduardo Camponogara Departamento de Automação e Sistemas Universidade Federal de Santa Catarina DAS-5103: Cálculo Numérico para Controle e Automação

Leia mais

Simulado OBM Nível 2

Simulado OBM Nível 2 Simulado OBM Nível 2 Gabarito Comentado Questão 1. Quantos são os números inteiros x que satisfazem à inequação? a) 13 b) 26 c) 38 d) 39 e) 40 Entre 9 e 49 temos 39 números inteiros. Questão 2. Hoje é

Leia mais

O Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48

O Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48 Conteúdo 1 Princípios de Contagem e Enumeração Computacional Permutações com Repetições Combinações com Repetições O Problema do Troco Principio da Casa dos Pombos > Princípios de Contagem e Enumeração

Leia mais

Rot. #1. Metro Eth. Rot. #3 Rede. IP over SDH. GigaEth. Rot. #2. Rot. #4 LAN Eth. LAN Eth. Sw1 LAN. GigaEth INTERCONEXÃO DE REDES DE COMPUTADORES

Rot. #1. Metro Eth. Rot. #3 Rede. IP over SDH. GigaEth. Rot. #2. Rot. #4 LAN Eth. LAN Eth. Sw1 LAN. GigaEth INTERCONEXÃO DE REDES DE COMPUTADORES INTERCONEXÃO DE REDES LOCAIS COM ROTEADORES POR QUE NÃO SÓ PONTES? LANs podem ser conectadas entre si com pontes (bridges) Por que não usar sempre pontes para construir redes grandes? Pontes não fazem

Leia mais

Figura 1.1: Representação gráfica das pontes de Königsberg.

Figura 1.1: Representação gráfica das pontes de Königsberg. Capítulo 1 Introdução Nesse capítulo introdutório aborda-se brevemente o histórico da teoria dos grafos, as aplicações e motivações para estudo e por fim algumas dicas de como utilizar esse livro. 1.1

Leia mais