2º Trabalho Prático - Algoritmos em grafos

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

Download "2º Trabalho Prático - Algoritmos em grafos"

Transcrição

1 Page of LEIC - AEDII - 00/003 - º Semestre º Trabalho Prático - Algoritmos em grafos Introdução Conteúdo do trabalho O segundo trabalho consiste no desenvolvimento de um programa em Java de aplicação de algoritmos em grafos, escrita de um pequeno relatório e realização de uma apresentação e discussão final. Duração do trabalho O segundo trabalho está dimensionado para poder ser realizado em 3 semanas, entre de Maio e 3 de Maio. Formação dos grupos e escolha do trabalho Os trabalhos são realizados em grupos de alunos no máximo, todos da mesma turma. Cada grupo deve enviar o mais cedo possível uma mensagem por para o respectivo docente das aulas práticas com a constituição do grupo e uma lista de preferências, com todos os trabalhos propostos ordenados por ordem de preferência decrescente. O docente responder á por e- mail indicando qual o trabalho atribuído ao grupo. Pretende-se que, em cada turma, não existam dois grupos a realizar o mesmo trabalho. Estrutura do relatório O relatório deve descrever o objectivo do programa, a estrutura geral do programa (estrutura de classes e "packages"), principais problemas encontrados e soluções adoptadas durante o desenvolvimento, o modo de utilização do programa (formatos de entrada

2 Page of e saída de dados, opções de chamada, etc.), exemplos de execução e teste do programa e resultados obtidos. Deve também mencionar as fontes consultadas. A capa deve ter o título do trabalho, o contexto em que se realizou (escola, curso e disciplina), os autores e a data. As páginas devem ter um cabeçalho ou rodapé com o título do trabalho e o número da página, pelo menos. O relatório não deve ter mais de 0 páginas A. Em todos os trabalhos, o relatório deve descrever casos de teste ou exemplos suficientes para cobrir as várias situações previstas nos algoritmos (idealmente, devem-se exercitar todas as linhas do programa). Entrega e discussão do trabalho O trabalho ser entregue até ao fim do dia 3 de Maio ao respectivo docente das aulas práticas, sendo demonstrado e discutido na aula prática subsequente. Enviar por o projecto Java com o código fonte, o relatório e eventuais ficheiros adicionais, tudo compactado num.zip, até ao fim do dia 3 de Maio (ou enviar mensagem com link para sítio onde se pode recolher esse material). O relatório impresso pode ser depositado até ao fim do dia de Junho na caixa de correio do docente respectivo. Segue-se uma lista de temas de trabalhos propostos. Lista de Trabalhos Propostos #. Melhor caminho entre duas estações de metro #. Caminho mais rápido em transportes aéreos #3. Fluxo máximo numa rede de transporte #. Árvore de expansão mínima (minimum spanning tree) #. Componentes fortemente conexos #. Circuito de Euler #7. Problema do carteiro Chinês (Chinese postman problem)

3 Page 3 of. Melhor caminho entre duas estações de metro A figura seguinte mostra um exemplo esquemático de uma rede de metro. Estação linha A 3 linha B linha C Supõe-se que uma rede de metro é constituída por estações (representadas por números na figura) ligadas por ramais sobre os quais são definidas linhas de circulação (representadas por letras e cores na figura). As linhas podem ser circulares (como a linha B na figura) ou "lineares" (com as linhas A e C na figura). Supõe-se que todas as linhas são realizadas nos dois sentidos (mesmo as linhas circulares). Supõe-se que a rede é conexa (isto é, pode-se ir de uma estação qualquer para outra qualquer). A configuração de uma rede de metro pode ser definida num ficheiro de texto, com uma linha de texto para cada linha de circulação, contendo o nome da linha seguido dos nomes das estações. Para simplificar, supõe-se que os nomes das linhas e das estações não têm espaços. A rede da figura acima seria definida da seguinte forma: A 3 B C Dada uma estação de origem e uma estação de saída, pretende-se determinar o melhor caminho a seguir, no sentido de

4 Page of minimizar, em primeiro lugar, as mudanças de linha de circulação (mudanças de veículo) e, em segundo lugar, o número de estações atravessadas. Nesse sentido, o melhor caminho a seguir entre a estação e a estação 3 na figura acima seria B A 3 Quando há dois caminhos igualmente bons por este critério, o programa pode escolher um qualquer (não é necessário mostrar os vários caminhos igualmente bons). O programa deve ter como parâmetros de chamada (passados na linha de comandos) o nome do ficheiro com a configuração da rede, o nome da estação de origem e o nome da estação de destino. O programa deve escrever no standard output o caminho a seguir, no formato indicado acima (sem mais nenhuma mensagem adicional, para facilitar). Se não for indicada o 3º parâmetro (estação de destino), o programa deve escrever no standard output, os melhores caminhos para todas as outras estações (a partir da estação de origem indicada no º parâmetro). Se forem omitidos o º e o 3º parâmetro, o programa deve escrever no standard output os melhores caminhos entre todos os pares de estações (uma linha de texto para cada par de estações). No caso da figura, os melhores caminhos entre todos os pares de estações seriam: A ou B A A 3 B ou C C C A 3 B B C 3 A B 3 A A C C C (mais todos os simétricos) Conceptualmente, este problema pode ser resolvido aplicando os algoritmos de caminhos mais curtos em grafos (nomeadamente o algoritmo de Dijkstra), sobre um grafo modificado conforme indicado na figura seguinte:

5 Page of A 3A 3 A B C B B C ou outro valor superior ao nº total de ramais (neste caso ) C A figura mostra também a traço mais forte o melhor caminho que se obtém entre as estações e 3, que corresponde ao caminho de menor custo total (neste caso, ). De acordo com o critério indicado acima, a cada entrada ou saída de um veículo é associado um custo elevado, enquanto que a cada ligação entre duas estações é associado um custo baixo.. Caminho mais rápido em transportes aéreos Pretende-se desenvolver um programa para ajudar a escolher o voo ou voos a tomar para viajar de um aeroporto de origem para um aeroporto de destino no menor tempo possível (desde a partida no aeroporto de origem até à chegada ao aeroporto de

6 Page of destino), sem restrição de hora de partida ou chegada. Os voos oferecidos pelas companhias aéreas estão especificados num ficheiro de texto (a ler pelo programa), com uma linha para cada voo, indicando o número do voo (sigla da companhia aérea seguido de um número atribuído pela companhia), o nome do aeroporto de origem, a hora de partida do aeroporto de origem, o nome do aeroporto de destino e a hora de chegada ao aeroporto de destino. No caso de um voo com escalas, são indicados os aeroportos intermédios, por ordem, entre os aeroportos de origem e de destino, com a hora de chegada e a hora de partida a seguir ao nome de cada aeroporto intermédio. Os nomes de aeroportos são escritos sem espaços. Todas as horas são em tempo GMT. Exemplo de um ficheiro com especificação de voos: TP98 Porto 09:00 Madrid :00 IB877 Madrid :00 LasPalmasGranCanaria :00 :30 SantaCruzTenerife :0 TP98 Porto 09:30 Lisboa 0:30 PGA0 Lisboa :0 SantaCruzTenerife :00 :30 LasPalmasGranCanaria 7:0 Supõe-se que todos os voos se realizam diariamente. Supõe-se que podem entrar e sair passageiros em todos os aeroportos intermédios em que um voo faz escala. Supõe-se que, para poder mudar de voo num aeroporto, um passageiro precisa pelo menos de 30 minutos (entre a chegada num voo e a partida noutro voo). O programa deve ter como parâmetros de chamada (passados na linha de comandos) o nome do ficheiro com a especificação dos voos, o nome do aeroporto de origem e o nome do aeroporto de destino. O programa deve escrever no standard output o voo ou voos a tomar. No caso de vários voos, o programa deve escrever uma linha para cada voo. Para cada voo a tomar, o programa deve mostrar o número do voo, o aeroporto em que se deve tomar esse voo, a hora de saída do voo, o aeroporto em que se deve deixar esse voo e a hora de chegada do voo. Por exemplo, para os voos acima especificados, e para viajar do Porto para SantaCruzTenerife o programa deve produzir o seguinte resultado: TP98 Porto 09:30 Lisboa 0:30 PGA0 Lisboa :0 SantaCruzTenerife :00 Conceptualmente, este problema pode ser resolvido aplicando os algoritmos de caminhos mais curtos em grafos (nomeadamente o algoritmo de Dijkstra), sobre um grafo modificado conforme indicado na figura seguinte (relativamente aos voos acima

7 Page 7 of exemplificados): 0 Porto P TP98 0:00 Madrid C TP98 0:00 Madrid P IB877 Porto 0 Porto P TP98 03:00 LPGC C IB877 00:30 0:00 LPGC C PGA0 :0 LPGC P IB877 00:0 00:0 Lisboa C TP98 SCT P PGA0 :0 SCT C IB877 0:0 Lisboa P PGA0 03:0 00:30 SCT C PGA0 0 0 SCT

8 Page 8 of As letras "C" e "P" referem-se a chegadas e partidas, respectivamente. As ligações entre aeroportos são marcadas com o tempo de voo correspondente. Em cada aeroporto, todas as chegadas são ligadas a todas as partidas, com o tempo de espera correspondente. O caminho mais curto entre Porto e SCT está indicado a traço mais forte. O programa deve ter opções (na forma de parâmetros passados na linha de comandos) para, caso o utilizador pretenda, restringir as horas de saída e as horas de chegada. 3. Fluxo máximo numa rede de transporte Implementar o algoritmo de cálculo do fluxo máximo numa rede de transporte estudado nas aulas teóricas (ver grafos.ppt). A rede de transporte (grafo de capacidades) deve ser definida num ficheiro de texto, com uma linha de texto para cada aresta da rede, indicando os nomes dos vértices de origem e de destino e a capacidade da aresta. Os nomes dos vértices não podem ter espaços. O programa deve ter como parâmetro de chamada (passado na linha de comandos) o nome do ficheiro com a especificação da rede de transporte, e deve escrever no standard output o fluxo máximo que a rede suporta e uma solução correspondente a esse fluxo máximo (grafo de fluxos) com o fluxo que passa em cada aresta, no mesmo formato que o especificado para o ficheiro de entrada, com fluxos nas arestas em vez de capacidades.. Árvore de expansão mínima (minimum spanning tree) Implementar os algoritmos de Prim e Kruskal para determinar uma árvore de expansão mínima de um grafo não dirigido pesado conexo. Estes algoritmos foram estudados nas aulas teóricas (ver grafos.ppt). O programa também deve aceitar grafos não conexos. Nesse caso, deve determinar tantas árvores quantos os componentes conexos do grafo. O grafo deve ser definido num ficheiro de texto, com uma linha de texto para cada aresta do grafo, com os nomes dos dois vértices ligados pela aresta e a capacidade da aresta. Os nomes dos vértices não podem ter espaços. O mesmo par de vértices não pode aparecer mais do que uma vez

9 Page 9 of O programa deve ter como parâmetros de chamada (passados na linha de comandos) o nome do ficheiro com a especificação do grafo e o nome do algoritmo a usar (Prim ou Kruskal), e deve escrever no standard output uma árvore de expansão máxima (ou conjunto de árvores, se o grafo não for conexo) obtida pelo algoritmo escolhido. Essa árvore deve ser escrita no mesmo formato que o ficheiro de entrada (com menos arestas).. Componentes fortemente conexos Implementar o algoritmo estudado nas aulas teóricas (ver grafos3.ppt) para determinar os componentes fortemente conexos de um grafo dirigido, com base no algoritmo de pesquisa em profundidade. O grafo deve ser definido num ficheiro de texto, com uma linha de texto para cada aresta, com o nome da aresta e os nomes dos vértices de origem e de destino, separados por um ou mais espaços. Os nomes dos vértices e das arestas não podem ter espaços. Não podem existir duas arestas com o mesmo nome. O programa deve ter como parâmetro de chamada (passado na linha de comandos) o nome do ficheiro com a especificação do grafo, e deve escrever no standard output os componentes fortemente conexos obtidos, com um componente por linha. Para descrever um componente, basta indicar um número de ordem do componente, seguido da lista de vértices que fazem parte do componente.. Circuito de Euler Implementar o algoritmo estudado nas aulas teóricas (ver grafos3.ppt) para verificar se um grafo não dirigido tem um circuito de Euler e, em caso afirmativo, determiná-lo. O grafo deve ser definido num ficheiro de texto, com uma linha de texto para cada aresta, com o nome da aresta e os nomes dos vértices de origem e de destino, separados por um ou mais espaços. Os nomes dos vértices e das arestas não podem ter espaços. Não podem existir duas arestas com o mesmo nome. No entanto, podem existir arestas paralelas. O programa deve ter como parâmetro de chamada (passado na linha de comandos) o nome do ficheiro com a especificação do grafo, e deve escrever no standard output uma mensagem indicando se o grafo tem um circuito de Euler e, em caso afirmativo, a

10 Page 0 of descrição de um circuito de Euler possível. O circuito deve ser apresentado na forma de uma sequência de nomes de vértices e arestas (alternados), começando num vértice e acabando no mesmo vértice. 7. Problema do carteiro Chinês (Chinese postman problem) Nota: Este trabalho só deve ser escolhido por alunos que gostam de desafios. Um carteiro recolhe um conjunto de correspondência numa estação de correios, distribui a correspondência ao longo de um conjunto de ruas e regressa à estação de correios. Obviamente, o carteiro tem de percorrer cada rua pelo menos uma vez, numa direcção qualquer. A questão é: Que caminho deve seguir o carteiro para percorrer a menor distância possível? Este problema, conhecido como o problema do carteiro Chinês (Chinese postman problem) foi proposto pela primeira vez por um matemático Chinês Kwan. Se G denotar o grafo não dirigido conexo pesado representando as ruas e respectivos comprimentos (os vértices são os cruzamentos ou entroncamentos de ruas), então o problema do carteiro Chinês é simplesmente o problema de encontrar um caminho fechado (i.e., com início e fim no mesmo vértice) de peso mínimo que atravesse cada aresta de G pelo menos uma vez. A um caminho nessas condições chamaremos percurso óptimo do carteiro Chinês. A qualquer caminho fechado (não necessariamente de peso mínimo) que atravesse cada aresta de G pelo menos uma vez chamaremos percurso do carteiro. Se G for um grafo Euleriano (o que acontece quando o número de arestas convergentes em cada vértice de G é par), então qualquer circuito de Euler é um percurso óptimo do carteiro Chinês. Um algoritmo para encontrar um circuito de Euler foi estudado nas aulas teóricas (ver grafos3.ppt). Se G não for um grafo Euleriano, é necessário usar um algoritmo mais elaborado. O algoritmo a seguir apresentado, baseia-se na construção de um grafo Euleriano G* obtido a partir de G duplicando algumas arestas (seleccionadas por forma a conseguir um grafo Euleriano com peso total mínimo). Este algoritmo pode ser implementado em tempo polinomial

11 Page of Algoritmo para achar um percurso óptimo do carteiro Chinês num grafo G (não dirigido pesado conexo):. Identificar todos os vértices de G de grau ímpar (isto é, vértices com número ímpar de arestas convergentes). Sejam v, v,..., v k esses vértices (k ). Se não existirem vértices de grau ímpar em G, fazer G*=G e saltar para o passo.. Calcular os caminhos mais curtos entre todos os pares de vértices de grau ímpar. Seja d(v i,v j ) a distância entre dois vértices de grau ímpar v i e v j (distância pelo caminho mais curto). 3. Construir um grafo completo G' com os vértices de grau ímpar de G ligados entre si por arestas de peso igual à distância mínima calculada no passo anterior.. Encontrar um matching perfeito de peso mínimo em G' (). Isto corresponde a agrupar os vértices de grau ímpar em grupos de, tal que a soma das distâncias (em G) entre vértices do mesmo grupo é mínima. Para cada par (x i, y j ) neste matching perfeito, adicionar pseudo-arestas (arestas paralelas duplicadas) a G ao longo de um caminho mais curto entre v i e v j. Seja G* o grafo resultante.. Achar um circuito de Euler em G* (ver algoritmo em grafos3.ppt). Este circuito é um percurso óptimo do carteiro Chinês. Nota: () Um matching num grafo é um conjunto de arestas independentes, isto é, arestas que não se tocam (não têm vértices em comum). Intuitivamente, um matching estabelece um agrupamento de vértices em pares. Um matching perfeito é um matching que envolve todos os vértices. Um matching perfeito de peso mínimo é um matching em que a soma dos pesos das arestas seleccionadas é o menor possível entre todos os matchings perfeitos. O problema de encontrar um matching perfeito de peso mínimo pode ser reduzido ao problema de encontrar um matching de peso máximo por uma simples mudança de pesos. Basta substituir cada peso w ij por max(w ij )+-w ij. Sendo o grafo completo e com número par de vértices, um matching de peso máximo (ou mínimo) é necessariamente perfeito. Um algoritmo para resolver eficientemente (em tempo polinomial) o problema de matching de peso mínimo num grafo genérico é descrito por exemplo em (cópia em chap9.pdf). Uma vez que o algoritmo é complexo, aceita-se aqui uma implementação de "força bruta", em que são analisadas todas as (k-)x(k-3)x...x maneiras possíveis de emparelhar k vértices. Ou então, pedir a ajuda dos docentes

12 Page of É relativamente fácil verificar que nenhuma aresta aparece mais do que uma vez nos caminhos mais curtos identificados no passo do algoritmo. Isto significa que nenhuma aresta será atravessada mais do que duas vezes num percurso óptimo. A figura seguinte mostra um exemplo de um grafo representando um conjunto de ruas com cruzamentos e entroncamentos. Cada rua tem associado um peso que representa o seu comprimento numa determinada unidade de medida. Os vértices de grau ímpar estão marcados a sombreado. v v v v v 8 7 v

13 Page 3 of Para encontrar as arestas a duplicar, temos de primeiro calcular as distâncias (pelo caminho mais curto) entre todos os pares de vértices de grau ímpar. O quadro seguinte mostra essas distâncias (o triângulo inferior não é mostrado porque é simétrico): d(v i,v j ) v v v3 v v v v v - 3 v3-9 0 v - 3 v - 7 v - O grafo G' correspondente (com estes vértices unidos por arestas de peso igual à distância) é:

14 Page of O matching perfeito de peso mínimo é o indicado pelas arestas a traço forte no grafo G'. Assim, temos de adicionar ao grafo G caminhos mais curtos a ligar os vértices e 3, os vértices e, e os vértices e. O resultado é o grafo Eulereriano G* a seguir indicado. Os números nas arestas indicam já a ordem por que devem ser percorridas as arestas ao longo de um circuito de Euler (e não as distâncias) O programa deve ler a definição do grafo de um ficheiro de texto cujo nome é indicado como parâmetro de chamada do programa (pela linha de comandos) e deve escrever no standard output o caminho a seguir pelo carteiro (como uma sequência de nomes de arestas)

15 Page of Cada linha do ficheiro de entrada deve descrever uma aresta pesada, com o nome da aresta, os nomes dos dois vértices ligados por essa aresta e a distância. Os nomes dos vértices e das arestas não podem ter espaços. João Pascoal Faria (jpf@fe.up.pt) Última modificação:

x y Grafo Euleriano Figura 1

x y Grafo Euleriano Figura 1 Grafo Euleriano Um caminho simples ou um circuito simples é dito euleriano se ele contém todas as arestas de um grafo. Um grafo que contém um circuito euleriano é um grafo euleriano. Um grafo que não contém

Leia mais

Redes. ADSA António Câmara

Redes. ADSA António Câmara Redes ADSA António Câmara Redes Método do caminho mais curto Localização de equipamentos Minimum spanning tree Carteiro chinês Caixeiro viajante Links Redes Redes são sistemas de linhas (arcos) ligando

Leia mais

Árvore de Suporte de Comprimento Mínimo Minimal Spanning Tree

Árvore de Suporte de Comprimento Mínimo Minimal Spanning Tree Investigação Operacional Árvore de Suporte de Comprimento Mínimo Minimal Spanning Tree Slide Transparências de apoio à leccionação de aulas teóricas Maria Antónia Carravilla José Fernando Oliveira Árvore

Leia mais

Melhor caminho entre duas estações de metro

Melhor caminho entre duas estações de metro Melhor caminho entre duas estações de metro Concepção e Análise de Algoritmos Turma Nuno Machado Matos Tiago Daniel Sá Cunha Data: 11 de Junho de 2010 Introdução No âmbito da realização do projecto da

Leia mais

Alguns probleminhas...

Alguns probleminhas... Introdução Vários problemas da computação, com aplicações em diversos problemas importantes, nasceram de jogos ou brincadeiras. Hoje veremos uma pequana amostra deste fato. Alguns probleminhas... Problema

Leia mais

Problemas de Fluxo em Redes

Problemas de Fluxo em Redes CAPÍTULO 7 1. Conceitos fundamentais de grafos Em muitos problemas que nos surgem, a forma mais simples de o descrever, é representá-lo em forma de grafo, uma vez que um grafo oferece uma representação

Leia mais

Grafos IFRN. Prof.Robinson Alves

Grafos IFRN. Prof.Robinson Alves Grafos IFRN Prof.Robinson Alves Caminhos É uma seqüência de arestas onde o vértice final de uma aresta é o vértice inicial da próxima v c c3 c1 c6 c4 {c1,c,c4,c5,c6} {c,c3,c4,c5} {,v,,,v5} {v,,,v5,} c5

Leia mais

C 3 C 3. De acordo com o teorema de Euler, um grafo não orientado admite um ciclo de Euler se e só for conexo e não tiver vértices de grau ímpar.

C 3 C 3. De acordo com o teorema de Euler, um grafo não orientado admite um ciclo de Euler se e só for conexo e não tiver vértices de grau ímpar. rafos ircuito e iclo de uler X. ircuito e iclo de uler Um grafo orientado diz-se euleriano se há um circuito que contenha todos os seus arcos uma e só uma vez (circuito euleriano ).O grafo da figura é

Leia mais

Optimização em Redes e Não Linear

Optimização em Redes e Não Linear Departamento de Matemática da Universidade de Aveiro Optimização em Redes e Não Linear Ano Lectivo 005/006, o semestre Folha - Optimização em Redes - Árvores de Suporte. Suponha que uma dada companhia

Leia mais

Grafos: caminhos mínimos

Grafos: caminhos mínimos quando o grafo é sem pesos, a determinação de um caminho mais curto pode ser feita através de uma busca em largura caminho mais curto é aquele que apresenta o menor número de arestas quando o grafo tem

Leia mais

Grafos - Introdução. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/ / 32

Grafos - Introdução. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/ / 32 Grafos - Introdução Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/2015 1 / 32 Conceito Definição de Grafo Formalmente, um grafo é: Um conjunto de nós/vértices (V).

Leia mais

Grafos Eulerianos e o Problema do Carteiro Chinês

Grafos Eulerianos e o Problema do Carteiro Chinês Prof. Ademir A. Constantino DIN - UEM 1 Grafos Eulerianos e o Problema do Carteiro Chinês Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá Prof. Ademir A. Constantino

Leia mais

MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO

MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya Collazos Linares *As aulas baseiam-se no material do Professor Antonio Alfredo Ferreira Loureiro; Jorge Figueiredo e Judith Gersting Árvore

Leia mais

Matemática Discreta Capítulo 3 Versão preliminar

Matemática Discreta Capítulo 3 Versão preliminar Matemática Discreta Capítulo 3 Versão preliminar Henri Anciaux e Derek Hacon October 25, 2007 1 Generalidades sobre grafos Um grafo G é simplesmente um par de dois conjuntos V e A, o segundo sendo constituído

Leia mais

PERCURSOS. André Falcão, Carlos Augusto, Rafael Broédel e Lucas Dipré

PERCURSOS. André Falcão, Carlos Augusto, Rafael Broédel e Lucas Dipré PERCURSOS André Falcão, Carlos Augusto, Rafael Broédel e Lucas Dipré Serra 2011 Índice 1...O que é caminho e circuito 1.1...Caminho 1.2...Circuito 1.3...Classificação 2...Caminhos Eulerianos 2.1...Definição

Leia mais

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação SCC-203 ALGORITMOS E ESTRUTURAS DE DADOS II Prova - Gabarito Nome: Nro. USP ) O matemático

Leia mais

GRAFOS Aula 04 Caminhos, Conexidade e Distância Max Pereira

GRAFOS Aula 04 Caminhos, Conexidade e Distância Max Pereira Ciência da Computação GRAFOS Aula 04 Caminhos, Conexidade e Distância Max Pereira Um grafo é dito conexo se for possível visitar qualquer vértice, partindo de um outro qualquer, passando pelas suas arestas.

Leia mais

Cap. 2 Conceitos Básicos em Teoria dos Grafos

Cap. 2 Conceitos Básicos em Teoria dos Grafos Teoria dos Grafos e Aplicações 8 Cap. 2 Conceitos Básicos em Teoria dos Grafos 2.1 Grafo É uma noção simples, abstrata e intuitiva, usada para representar a idéia de alguma espécie de relação entre os

Leia mais

Melhor caminho entre duas estações de metro

Melhor caminho entre duas estações de metro [EIC0110] Concepção e Análise de algoritmos 2010-2011 Trabalho de Grupo 1: Tema 7 Melhor caminho entre duas estações de metro Turma 3 Grupo 13 Maio de 2011 Trabalho realizado por: Maria Antonieta Dias

Leia mais

Melhor caminho entre duas estações de metro

Melhor caminho entre duas estações de metro Faculdade de Engenharia da Universidade do Porto Mestrado Integrado em Engenharia Informática e Computação Melhor caminho entre duas estações de metro Relatório do Trabalho Prático de CPAL 2008/2009 João

Leia mais

Matemática Aplicada às Ciências Sociais- 11º ano (Versão: para o manual a partir de 2016/17)

Matemática Aplicada às Ciências Sociais- 11º ano (Versão: para o manual a partir de 2016/17) Matemática Aplicada às Ciências Sociais- 11º ano (Versão: para o manual a partir de 2016/17) Professor: Pedro Nóia Livro adotado: Matemática Aplicada às Ciências Sociais- 11º ano Elisabete Longo e Isabel

Leia mais

Algoritmos em Grafos COM11087-Tópicos Especiais em Programação I

Algoritmos em Grafos COM11087-Tópicos Especiais em Programação I Algoritmos em Grafos COM11087-Tópicos Especiais em Programação I edmar.kampke@ufes.br Introdução Teoria dos Grafos é o estudo das propriedades e estruturas dos grafos. O objetivo é, após modelar um problema

Leia mais

Capítulo 2- Modelos de grafos.

Capítulo 2- Modelos de grafos. Capítulo 2- Modelos de grafos. 2.1- Introdução (pág. 8) [Vídeo 24] Grafo- é um esquema constituído por pontos (ou vértices) e por segmentos (ou arestas). (8) Exemplo 1(pág.8) Um grafo diz-se conexo se

Leia mais

Escola Básica e Secundária Mouzinho da Silveira. MACS 11.º Ano Problema do Caixeiro Viajante

Escola Básica e Secundária Mouzinho da Silveira. MACS 11.º Ano Problema do Caixeiro Viajante Escola Básica e Secundária Mouzinho da Silveira MACS 11.º Ano Problema do Caixeiro Viajante Problema do Caixeiro Viajante Trata-se de um problema matemático que consiste, sendo dado um conjunto de cidades

Leia mais

Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade

Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade Gustavo E.A.P.A. Batista 25 de janeiro de 2005 1 Contextualização 2 Caminhos Mínimos Caminhos Mínimos de uma Origem

Leia mais

Matemática Discreta - Exercícios de Grafos

Matemática Discreta - Exercícios de Grafos UALG - 0/0 1. Seja G o grafo cuja matriz de adjacência é: 1 8 9 1 8 9 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0

Leia mais

GRAFOS Aula 08 Árvore Geradora Mínima: Algoritmos de Kruskal e Prim-Jarnik Max Pereira

GRAFOS Aula 08 Árvore Geradora Mínima: Algoritmos de Kruskal e Prim-Jarnik Max Pereira Ciência da Computação GRAFOS Aula 08 Árvore Geradora Mínima: Algoritmos de Kruskal e Prim-Jarnik Max Pereira Árvore Geradora (spanning tree) É um subconjunto de um grafo G que possui todos os vértices

Leia mais

Grafos: aplicações. Grafos: árvore geradora mínima

Grafos: aplicações. Grafos: árvore geradora mínima árvore geradora mínima caminhos mínimos problemas tipo 1 desejase conectar todos os computadores em um prédio usando a menor quantidade possível de cabos uma companhia aérea deseja voar para algumas cidades

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Árvores Sabemos que com um ou dois vértices apenas uma árvore pode ser formada. Entretanto com três vértices podemos formar três árvores. Com quatro vértices temos quatro estrelas e doze

Leia mais

Circuitos Hamiltorianos

Circuitos Hamiltorianos Circuitos Hamiltorianos Vimos que o teorema de euler resolve o problema de caracterizar grafos que tenham um circuito em que cada aresta apareça exatamente uma vez. Vamos estudar aqui uma questão relacionada.

Leia mais

Oalgoritmo de Dijkstra

Oalgoritmo de Dijkstra Dijkstra Oalgoritmo de Dijkstra O algoritmo de Dijkstra, concebido pelo cientista da computação holandês Edsger Dijkstra em 1956 e publicado em 1959, soluciona o problema do caminho mais curto num grafo

Leia mais

APLICAÇÕES DE BUSCA EM GRAFOS

APLICAÇÕES DE BUSCA EM GRAFOS APLICAÇÕES DE BUSCA EM GRAFOS David Krenkel Rodrigues de Melo david.melo1992@gmail.com Prof. Leonardo Sommariva, Estrutura de Dados RESUMO: São inúmeras as aplicaçõe de grafos, bem como os problemas clássicos

Leia mais

Grafos: árvores geradoras mínimas. Graça Nunes

Grafos: árvores geradoras mínimas. Graça Nunes Grafos: árvores geradoras mínimas Graça Nunes 1 Motivação Suponha que queremos construir estradas para interligar n cidades Cada estrada direta entre as cidades i e j tem um custo associado Nem todas as

Leia mais

Sub-grafo. Árvore Geradora Mínima

Sub-grafo. Árvore Geradora Mínima Comentários da aula anterior Componentes Fortemente Conectados (algoritmo) 1. Chama BuscaEmProfundidade (G) para obter os tempos de término (t[u], ou f[u]) para todos os vértices de G, isto é, enquanto

Leia mais

Departamento de Engenharia de Produção UFPR 22

Departamento de Engenharia de Produção UFPR 22 Departamento de Engenharia de Produção UFPR 22 Geralmente, temos três objetivos i. Redução de custos (custos variáveis) Redução de capital (investimento, custos fixos) i Melhoria do serviço (pode conflitar

Leia mais

Teoria e Algoritmos em Grafos

Teoria e Algoritmos em Grafos Teoria e Algoritmos em Grafos 2018.2 Percursos Caminhos que percorrem todos os vértices ou todas as arestas de um grafo são chamados percursos. Ciclo Hamiltoniano Ciclos Hamiltonianos são ciclos que percorrem

Leia mais

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 21

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 21 Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 21 Três objetivos i. Redução de custos (custos variáveis) ii. iii. Redução de capital (investimento, custos fixos) Melhoria do serviço

Leia mais

Problemas de Decisão em Redes 18

Problemas de Decisão em Redes 18 Problemas de Decisão em Redes 8 Problemas de Fluxo Máximo Slide Problemas de Fluxo Máximo Definição: Dada uma rede, com um nó de entrada e um nó de saída, com capacidades associadas a cada ramo, pretende-se

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 16: Grafos Planares. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 16: Grafos Planares. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 16: Grafos Planares Preparado a partir do texto: Rangel, Socorro. Teoria do

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Árvores Algoritmo de Kruskal O algoritmo de Kruskal permite determinar a spanning tree de custo mínimo. Este custo corresponde à soma dos pesos (distância, tempo, qualidade,...) associados

Leia mais

Grafos Árvores Geradoras Mínimas

Grafos Árvores Geradoras Mínimas ALGORITMOS E ESTRUTURAS DE DADOS II Grafos Árvores Geradoras Mínimas Profa. Elaine Parros Machado de Sousa adaptações: Cris.na Dutra de Aguiar Ciferri Material baseado em aulas dos professores: Gustavo

Leia mais

Modelos matemáticos para resolução de problemas de afectação de operações a recursos produtivos

Modelos matemáticos para resolução de problemas de afectação de operações a recursos produtivos Métodos de Análise de Sistemas Produtivos Modelos matemáticos para resolução de problemas de afectação de operações a recursos produtivos 17 de Maio de 2002 Alunos: Álvaro Magalhães Bernardo Ribeiro João

Leia mais

Estudo e Implementação de Algoritmos de Roteamento sobre Grafos em um Sistema de Informações Geográficas

Estudo e Implementação de Algoritmos de Roteamento sobre Grafos em um Sistema de Informações Geográficas Estudo e Implementação de Algoritmos de Roteamento sobre Grafos em um Sistema de Informações Geográficas RUDINI MENEZES SAMPAIO 1 HORÁCIO HIDEKI YANASSE 2 1 UFLA Universidade Federal de Lavras DCC Departamento

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 11: Grafos Eulerianos. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 11: Grafos Eulerianos. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 11: Grafos Eulerianos Preparado a partir do texto: Rangel, Socorro. Teoria do

Leia mais

ESTRUTURAS DISCRETAS (INF 1631) GRAFOS. 1. O que é um grafo? Defina um grafo orientado. Defina um grafo não-orientado.

ESTRUTURAS DISCRETAS (INF 1631) GRAFOS. 1. O que é um grafo? Defina um grafo orientado. Defina um grafo não-orientado. PUC-Rio Departamento de Informática Profs. Marcus Vinicius S. Poggi de Aragão Período: 0. Horário: as-feiras e as-feiras de - horas de maio de 0 ESTRUTURAS DISCRETAS (INF 6) a Lista de Exercícios Procure

Leia mais

1 Trajeto Euleriano. > Trajeto Euleriano 0/20

1 Trajeto Euleriano. > Trajeto Euleriano 0/20 Conteúdo 1 Trajeto Euleriano > Trajeto Euleriano 0/20 Um trajeto Euleriano em um grafo G é um trajeto que utiliza todas as arestas do grafo. Definição Um grafo G é Euleriano se e somente se possui um trajeto

Leia mais

ESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8.

ESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8. ESTRUTURAS DE DADOS prof. Alexandre César Muniz de Oliveira 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8. Grafos Sugestão bibliográfica: ESTRUTURAS DE DADOS USANDO C Aaron

Leia mais

Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST)

Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST) Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45 Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST) Alguns problemas de otimização combinatória podem ser formulados

Leia mais

Grafos Parte 1. Aleardo Manacero Jr.

Grafos Parte 1. Aleardo Manacero Jr. Grafos Parte 1 Aleardo Manacero Jr. Uma breve introdução Grafos são estruturas bastante versáteis para a representação de diversas formas de sistemas e/ou problemas Na realidade, árvores e listas podem

Leia mais

Problemas de Fluxos em Redes

Problemas de Fluxos em Redes Investigação Operacional Problemas de Fluxos em Redes Slide Transparências de apoio à leccionação de aulas teóricas Problemas de fluxos em redes Rede: Conjunto de pontos (vértices) ligados por linhas ou

Leia mais

Otimização. Otimização em Redes. Paulo Henrique Ribeiro Gabriel Faculdade de Computação Universidade Federal de Uberlândia 2016/2

Otimização. Otimização em Redes. Paulo Henrique Ribeiro Gabriel Faculdade de Computação Universidade Federal de Uberlândia 2016/2 Otimização Otimização em Redes Paulo Henrique Ribeiro Gabriel phrg@ufu.br Faculdade de Computação Universidade Federal de Uberlândia 2016/2 Paulo H. R. Gabriel (FACOM/UFU) GSI027 2016/2 1 / 51 Conteúdo

Leia mais

Tabelas de dispersão/hash

Tabelas de dispersão/hash Tabelas de dispersão/hash 1 Tabelas de dispersão/hash 1. Considere uma tabela de hash de tamanho m = 1000 e a função de hash h(k)= [m.(k.a % 1)], com A=( 5-1)/2. Calcule os valores de hash das chaves 61,

Leia mais

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação SCC-203 ALGORITMOS E ESTRUTURAS DE DADOS II Prova - Gabarito Nome: Nro. USP ) O matemático

Leia mais

Grafos. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Grafos. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo PMR2300 Escola Politécnica da Universidade de São Paulo Um grafo é uma estrutura que generaliza árvores, sendo formado por nós e arestas. Cada nó em um grafo pode ser conectado a vários outros nós por

Leia mais

GRAFOS. Introdução Conceitos Fundamentais

GRAFOS. Introdução Conceitos Fundamentais GRAFOS Introdução Conceitos Fundamentais Uma aplicação do produto de matrizes Agora é a sua vez... Considere o diagrama seguinte Determine, o número de formas diferentes de ir de a 1 até e 2 e de a 2

Leia mais

Estruturas de Dados I Enunciado do Trabalho Prático

Estruturas de Dados I Enunciado do Trabalho Prático Estruturas de Dados I Enunciado do Trabalho Prático Licenciatura em Engenharia Informática Universidade de Évora 2001/2002 1 Objectivo Pretende-se implementar uma base de dados sobre as viagens efectuadas

Leia mais

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 10: Introdução aos Grafos

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 10: Introdução aos Grafos Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 10: Introdução aos Grafos História O assunto que se constitui no marco inicial da teoria de grafos é na realidade um problema algorítmico.

Leia mais

Estruturas de Dados Grafos

Estruturas de Dados Grafos Estruturas de Dados Grafos Prof. Eduardo Alchieri (introdução) Grafo é um conjunto de pontos e linhas que conectam vários pontos Formalmente, um grafo G(V,A) é definido pelo par de conjuntos V e A, onde:

Leia mais

Teoria da Computação. Complexidade computacional classes de problemas

Teoria da Computação. Complexidade computacional classes de problemas Teoria da Computação Complexidade computacional classes de problemas 1 Universo de problemas Problemas indecidíveis ou não-computáveis Não admitem algoritmos Problemas intratáveis Não admitem algoritmos

Leia mais

Grafos - Motivação. Grafos - Motivação. Algoritmos e Estruturas de Dados II Introdução a Grafos

Grafos - Motivação. Grafos - Motivação. Algoritmos e Estruturas de Dados II Introdução a Grafos Algoritmos e Estruturas de Dados II Introdução a Profa. M. Cristina/ Profa. Rosane (2010) Material de aula original: Profa. Josiane M. Bueno - Motivação : conceito introduzido por Euler, em 1736 Problema

Leia mais

Exercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C

Exercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C Exercícios: Árvores 1. Utilizando os conceitos de grafos, defina uma árvore.

Leia mais

ESPECIFICAÇÃO DO TRABALHO DA DISCIPLINA DE ANÁLISE DE SISTEMAS ORIENTADOS A OBJETOS DO CURSO DE TECNOLOGIA EM DESENVOLVIMENTO DE SOFTWARE

ESPECIFICAÇÃO DO TRABALHO DA DISCIPLINA DE ANÁLISE DE SISTEMAS ORIENTADOS A OBJETOS DO CURSO DE TECNOLOGIA EM DESENVOLVIMENTO DE SOFTWARE O trabalho consiste em duas etapas. Na primeira etapa, a equipe deverá apresentar os documentos necessários para especificação do problema e a sua análise, através da UML. Na segunda etapa, a equipe fará

Leia mais

6 a Lista Complementar de Exercícios de CI208 Programação de Computadores 13/02/2014

6 a Lista Complementar de Exercícios de CI208 Programação de Computadores 13/02/2014 6 a Lista Complementar de Exercícios de CI208 Programação de Computadores 13/02/2014 Parte A - Exercícios de Fixação de Aprendizagem 1. Faça um programa em C++ que leia do teclado uma sequência de 10 números

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

Problema de Roteamento de Veículos (VRP)

Problema de Roteamento de Veículos (VRP) Problema de Roteamento de Veículos (VRP) 1 Definição Um PRV consiste basicamente em estabelecer e organizar rotas ou itinerários eficientes para veículos realizarem entrega/captação de mercadorias. Dispondo

Leia mais

76) 1.1 Sim 1.2 Não 1.3 Não

76) 1.1 Sim 1.2 Não 1.3 Não 6) 1.1 Sim 1.2 Não 1. Não 2.1 2.2 2.. Os grafos dos exercícios 2.1 e 2.2 são conexos, pois existe sempre uma sequência de arestas a unir quaisquer dois vértices. 4.1 Grafo I vértices: ; arestas: 2 Grafo

Leia mais

Otimização em Grafos

Otimização em Grafos Otimização em Grafos Luidi G. Simonetti PESC/COPPE 2017 Luidi Simonetti (PESC) EEL857 2017 1 / 35 Teoria dos Grafos - Relembrando Árvore Um grafo G é uma árvore se é conexo e não possui ciclos (acíclico).

Leia mais

GRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes

GRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes 8//6 GRAFOS BUSCAS E MENOR CAMINHO Prof. André Backes Busca em grafos Definição Consiste em explorar o grafo de uma maneira bem específica. Trata-se de um processo sistemático de como caminhar por seus

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

PROPOSTA DE RESOLUÇÃO DO EXAME DE MATEMÁTICA APLICADA ÀS CIÊNCIAS SOCIAIS (PROVA 835) ªFASE. Grupo I

PROPOSTA DE RESOLUÇÃO DO EXAME DE MATEMÁTICA APLICADA ÀS CIÊNCIAS SOCIAIS (PROVA 835) ªFASE. Grupo I PROPOSTA DE RESOLUÇÃO DO EXAME DE MATEMÁTICA APLICADA ÀS CIÊNCIAS SOCIAIS (PROA 835) 2013 1ªFASE Grupo I 1. 1.1. De acordo com o método apresentado, a contagem de pontos de cada tema, incluindo o tema

Leia mais

Elementos de Matemática Discreta

Elementos de Matemática Discreta Duração: 55m Instituto Superior Técnico - Departamento de Matemática Licenciatura em Engenharia de Telecomunicações e Informática Elementos de Matemática Discreta - 2015-2016 Teste 3 - teste tipo Cotação

Leia mais

As pontes de Königsberg

As pontes de Königsberg As pontes de Königsberg Adérito Araújo Centro de Matemática da Universidade de Coimbra A cidade de Königsberg Era uma vez uma cidade chamada Königsberg ( montanha do rei ) na antiga Prússia. Fundada em

Leia mais

Teoria dos grafos. Caminho euleriano e Hamiltoniano. Prof. Jesuliana N. Ulysses

Teoria dos grafos. Caminho euleriano e Hamiltoniano. Prof. Jesuliana N. Ulysses 1 7 Teoria dos grafos Caminho euleriano e Hamiltoniano Grafo Euleriano Grafo onde é possível achar um caminho fechado (ciclo), passando em cada aresta uma única vez Quais são os grafos de Euler? Teorema:

Leia mais

INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DO 2 o TESTE

INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DO 2 o TESTE INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos Ano Lectivo de 2006/2007 2 o Semestre RESOLUÇÃO DO 2 o TESTE I. (2,0+2,0+2,0 = 6,0 val.) 1) Calcule o valor óptimo da função objectivo e o respectivo

Leia mais

Investigação Operacional

Investigação Operacional nvestigação Operacional Optimização em Redes e rafos Licenciatura em ngenharia ivil Licenciatura em ngenharia do Território Licenciatura em ngenharia e rquitectura Naval / ntrodução à Teoria dos rafos

Leia mais

Grafo planar: Definição

Grafo planar: Definição Grafo planar Considere o problema de conectar três casas a cada uma de três infraestruturas (gás, água, energia) como mostrado na figura abaixo. É possível fazer essas ligações sem que elas se cruzem?

Leia mais

A Cidade Enlameada Árvores Geradoras Mínimas

A Cidade Enlameada Árvores Geradoras Mínimas Atividade 9 A Cidade Enlameada Árvores Geradoras Mínimas Sumário Nossa sociedade é conectada por muitas redes: redes telefônicas, redes de abastecimento, redes de computadores e redes rodoviárias. Para

Leia mais

Introdução à Teoria dos Grafos

Introdução à Teoria dos Grafos Capítulo 1 Introdução à Teoria dos Grafos 1.1 História O primeiro problema cuja solução envolveu conceitos do que viria a ser teoria dos grafos, denominado "problema das pontes de Königsberg", foi resolvido

Leia mais

INVESTIGAÇÃO OPERACIONAL Exercícios de Optimização em Redes 1

INVESTIGAÇÃO OPERACIONAL Exercícios de Optimização em Redes 1 INVSTIGÇÃO OPRIONL xercícios de Optimização em Redes x. ada a seguinte rede: 0 0 0 0 a) etermine uma árvore de suporte de custo mínimo utilizando o algoritmo de Kruskal. b) etermine uma árvore de suporte

Leia mais

Grafos: componentes fortemente conexos, árvores geradoras mínimas

Grafos: componentes fortemente conexos, árvores geradoras mínimas Grafos: componentes fortemente conexos, árvores geradoras mínimas SCE-183 Algoritmos e Estruturas de Dados 2 Thiago A. S. Pardo Maria Cristina 1 Componentes fortemente conexos Um componente fortemente

Leia mais

Prof. Marco Antonio M. Carvalho

Prof. Marco Antonio M. Carvalho Prof. Marco Antonio M. Carvalho Lembretes! Lista de discussão! Endereço:! programaacao@googlegroups.com! Solicitem acesso:! http://groups.google.com/group/programaacao! Página com material dos treinamentos!

Leia mais

Teoria dos Grafos AULA 1

Teoria dos Grafos AULA 1 Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Silvio A. de Araujo Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br, saraujo@ibilce.unesp.br AULA 1 Introdução,

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada. Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br Grafos Eulerianos Preparado a partir do texto: Rangel, Socorro.

Leia mais

Algoritmos de aproximação - Problema do caixeiro viajante

Algoritmos de aproximação - Problema do caixeiro viajante Algoritmos de aproximação - Problema do caixeiro viajante Marina Andretta ICMC-USP 30 de setembro de 2015 Baseado no livro Uma introdução sucinta a Algoritmos de Aproximação, de M. H. Carvalho, M. R. Cerioli,

Leia mais

Busca em Profundidade. Componentes Conexos. Grafos. Maria Adriana Vidigal de Lima. Fevereiro

Busca em Profundidade. Componentes Conexos. Grafos. Maria Adriana Vidigal de Lima. Fevereiro Fevereiro - 009 Definição de Grafo Listas de Adjacências de Técnicas da Classificação das Arestas Aplicação do de de 4 Grafo Transposto Definição de Grafo Listas de Adjacências de Exemplos de Aplicação

Leia mais

1) Escolher e descrever um problema cuja resolução requeira a execução de algoritmos computacionais que não sejam triviais.

1) Escolher e descrever um problema cuja resolução requeira a execução de algoritmos computacionais que não sejam triviais. Universidade Federal do Rio de Janeiro Escola Politécnica MBA em Engenharia de Software EEL 650 Análise e Implementação de Algoritmos Turma ENGSOFT09 Prof. Heraldo L. S. Almeida Trabalho Prático para Avaliação

Leia mais

Tecnicas Essencias Greedy e Dynamic

Tecnicas Essencias Greedy e Dynamic Tecnicas Essencias Greedy e Dynamic Paul Crocker RELEASE - Reliable and Secure Computation Group Universidade da Beira Interior, Portugal October 2010 1 / 27 Outline 1 Introdução 2 Exemplo Greedy I : Interval

Leia mais

1. Realizou-se uma Assembleia-geral de uma associação cultural, com o objectivo de

1. Realizou-se uma Assembleia-geral de uma associação cultural, com o objectivo de 1. Realizou-se uma Assembleia-geral de uma associação cultural, com o objectivo de eleger uma pessoa para representar a associação em sessões oficiais. Apresentaram-se três candidatos, o Rui, o Luís e

Leia mais

Teoria dos Grafos. Grafos Planares

Teoria dos Grafos. Grafos Planares Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Silvio A. de Araujo Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br, saraujo@ibilce.unesp.br Grafos Planares

Leia mais

Programação Linear. Rosa Canelas 2010

Programação Linear. Rosa Canelas 2010 Programação Linear Rosa Canelas 2010 Problemas de Optimização São problemas em que se procura a melhor solução (a que dá menor prejuízo, maior lucro, a que é mais eficiente, etc.) Alguns destes problemas

Leia mais

Teoria dos Grafos Aula 18

Teoria dos Grafos Aula 18 Teoria dos Grafos Aula 18 Aula passada Coloração Algoritmo guloso Número cromático Teorema das 4 cores Aula de hoje Clusterização (ou agrupamento) Algoritmo Variação Clusterização Coleção de objetos Agrupar

Leia mais

Teoria dos Grafos. Motivação

Teoria dos Grafos. Motivação Teoria dos Grafos Aula 1 Primeiras Ideias Prof a. Alessandra Martins Coelho março/2013 Motivação Muitas aplicações em computação necessitam considerar conjunto de conexões entre pares de objetos: Existe

Leia mais

INF1010 Lista de Exercícios 2

INF1010 Lista de Exercícios 2 INF00 Lista de Exercícios 2 Árvores. Construir algoritmo para dada uma árvore n-ária, transformá-la em uma árvore binária. 2. Qual a maior e menor quantidade de nós que podem existir em uma árvore binária

Leia mais

Investigação Operacional I. Guia de Utilização do Software. José Manuel Vasconcelos Valério de Carvalho. Universidade do Minho

Investigação Operacional I. Guia de Utilização do Software. José Manuel Vasconcelos Valério de Carvalho. Universidade do Minho Investigação Operacional I Guia de Utilização do Software José Manuel Vasconcelos Valério de Carvalho Universidade do Minho 2003 Guia de Utilização do Software Este documento apresenta diversas informações

Leia mais

Algoritmo Aproximado. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

Algoritmo Aproximado. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3 Algoritmo Aproximado Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3 Heurísticas para Problemas N P- Completo Heurística: algoritmo que pode produzir um bom resultado (ou até a solução ótima),

Leia mais

Realização: Apoio: Patrocínio:

Realização: Apoio: Patrocínio: Universidade Federal do Espírito Santo Departamento de Informática Programa de Educação Tutorial PET EngComp E-mail: petengcomp@inf.ufes.br Home-Page: www.inf.ufes.br/~pet Tel. (27) 3335-2161 Realização:

Leia mais

Teoria dos Grafos AULA 1

Teoria dos Grafos AULA 1 Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br AULA 1 Introdução, Conceitos Iniciais, Isomorfismo Preparado

Leia mais