HISTÓRICO E ORIGEM DOS GRAFOS Prof. M.Sc. Fábio Francisco da Costa Fontes Março - 2009 HISTÓRICO A teoria de grafos tem uma origem relativamente recente (século XVIII) na história da matemática. Dentre os primeiros cientistas a trabalhar nesta área se destacam L. Euler, G. Kirchhoff e A. Cayley. A teoria de grafos tem extensiva utilização em matemática aplicada, pois demonstra ser uma poderosa ferramenta para a modelagem de diversas situações reais em, entre outros, física, química, biologia, engenharia e pesquisa operacional As pontes de Konigsberg O primeiro e mais famoso problema em teoria de grafos foi resolvido por Euler em 1736. Na cidade de Konigsberg sete pontes cruzam o rio Pregel estabelecendo ligações entre duas ilhas e entre as ilhas e as margens opostas do rio. As pontes de Konigsberg Será possível fazer um passeio pela cidade, começando e terminando no mesmo lugar, cruzando cada ponte exatamente uma vez? As pontes de Konigsberg Euler representou as relações graficamente. A cada margem e ilha associou um nó e a cada ponte um arco. Grafo C B A D Grafo: é uma noção simples, abstrata e intuitiva, usada para representar a idéia de alguma espécie de relação entre os objetos. Graficamente, aparece representado por uma figura com nós ou vértices, significando os objetos, unidos por um traço denominado aresta configurando a relação imaginada. Grafo Pensamos em um grafo como um conjunto de pontos num plano ou no espaço e um conjunto de segmentos ou linhas (possivelmente curvas), sendo que cada linha junta dois pontos ou um ponto para si próprio. Representação Matemática Um grafo é representado matematicamente por: G = (V,E) Onde V é o conjunto de vértices e E é o conjunto de arestas ou ligações entre os vértices. (|V| = n, |E| = m). Onde: n = |V| é a ordem do grafo m = |E| é o tamanho do grafo. Se m = 0 o grafo é dito trivial. Exemplo 1 A figura acima mostra o grafo G(V,E). Observe que laços (self-loops) são permitidos pela definição. Múltiplas linhas não são permitidas. Neste exemplo, V = {1, 2, 3, 4, 5, 6} e E = {{1,3}, {2,3},{3,4},{3,5},{6,6}}. È comum a utilização da variável vi ou xi, i = 1, 2, ..., n para a distinção dos nós (vértices). |V| = 6, |E| =5. Exemplo 2 Seja o grafo G(V,A) dado por: V = { p | p é uma pessoa } A = { (u,v) | < u é amigo de v > } Seja o exemplo: V = { Maria, Pedro, Joana, Luiz } A = { (Maria, Pedro) , (Joana, Maria) , (Maria, Luiz), (Pedro, Luiz) , (Joana, Pedro) } Construa o grafo do exemplo acima. Exemplo 2 Vértices e Arestas Em um grafo não orientado G=(V,E), o conjunto de arestas E consiste em pares de vértices não ordenados. V={1,2,3,4,5,6} E={(1,2),(1,5),(2,5),(3,6)} 1 2 3 4 5 6 Aplicações práticas para grafos Motores de busca de páginas Web Vértices são as páginas HTML e as arestas (direcionadas) são links ligando as páginas Identificar proximidade entre duas páginas quaisquer Identificar se uma página é acessível a partir de outra Identificar o número de links para uma página (grau do vértice) Aplicações práticas para grafos Roteamento de Carga Vértices são pontos de entrega e as arestas (com pesos) são estradas Descobrir a rota de entrega com menor custo Identificar a rota mais rápida Problema de Fluxo em Redes Você poderia citar outras situações que poderiam ser modeladas através de Grafos?