550 likes | 755 Views
TEORIA DE GRAFOS. &. aplicações financeiras. CONCEITOS BÁSICOS:. Grafo. C. Grafo orientado. B. D. A. CONCEITOS BÁSICOS:. Grafo não orientado ou digrafo. Subgrafo. Vértices adjacentes. A. Arestas adjacentes. Laço. H. H. Pseudografo. B. D. Grau de um vértice.
E N D
TEORIA DE GRAFOS & aplicações financeiras
CONCEITOS BÁSICOS: Grafo C Grafo orientado B D A
CONCEITOS BÁSICOS: Grafo não orientado ou digrafo Subgrafo Vértices adjacentes A Arestas adjacentes Laço H H Pseudografo B D Grau de um vértice Ponto isolado Arestas múltiplas Multigrafo E C Grafo conexo Grafo desconexo Componente Ponte G F
CONCEITOS BÁSICOS: A Caminho B D E C G F
CONCEITOS BÁSICOS: A Circuito B D C E G F
CONCEITOS BÁSICOS: A Caminho de Euler B D C E G F
CONCEITOS BÁSICOS: A Circuitode Euler D C B
SERÁ POSSIVÉL PERCORRER TODAS AS PONTES PASSANDO UMA ÚNICA VEZ POR CADA UMA DELAS? EULER PROVOU QUE NÃO
Se um grafo possuir vértices de grau impar não possui nenhum circuito de Euler 1º TEOREMA DE EULER Se um grafo for conexo e todos os seus vértices forem de grau par então possui pelo menos um circuito de Euler
Se um grafo possuir mais de dois vértices de grau impar então não possui nenhum caminho de Euler 2º TEOREMA DE EULER Se um grafo for conexo e possuir apenas dois vértices de grau impar então possui pelo menos um caminho de Euler.Qualquer que seja esse caminho ele terá de começar num desses vértices e terminar no outro
3º TEOREMA DE EULER A soma dos graus de todos os vértices de 1 grafo é igual ao dobro do seu número de arestas O número de vértices de grau impar tem de ser par
ALGORITMO Conjunto de regras mecânicas que, quando utilizadas correctamente, levam à resposta de um determinado problema
ALGORITMO DE FLEURY Ver se o grafo é conexo e se todos os seus vértices são de grau par 1 2 Começar num vértice qualquer Percorrer uma aresta se : 3 Esta não for uma ponte para a parte não atravessada do grafo Não existir outra hipótese
ALGORITMO DE FLEURY Assinalar as arestas consoante a ordem com que forem percorridas 4 Quando não for possivel continuar, parar, o percurso esta terminado. 5
E D F P H O C I G N K L J M A B
5 E E D D 6 F F 25 7 24 P H 19 P 18 H 4 3 8 2 O 11 O 12 C C I G I 23 G 15 16 K N K N 17 26 1 L 14 13 L J 20 J M M 22 9 10 21 A A B B
Como encontrar o percursomais económico?? 6 vérticesde grau ímpar A B C D E F G H I J K L Não tem nem caminho nem circuito de Euler
VÉRTICES DE GRAU Eulerização de grafos A B C D E F G H I J K L PAR Como vamos fazer? ÍMPAR
A B C D 7 arestas duplicadas E F G H 5 arestasduplicadas I J K L
A B C D TODOS OS VÉRTICES TÊM GRAU PAR E F G H I J K L TEM UM CIRCUITO DE EULER
APLICANDO O ALGORITMO DE FLEURY, ENCONTRAMOS UM DOS MUITOS CIRCUITOS DE EULER SOBREPONDO O CIRCUITO AO GRAFO ORIGINAL A B C D A B C D E F H E F H G G L L I J I J K K
Caminho cicuito Semi-eulerização de grafos E A B C D H L K J I E F B C G F J K G H A B C D E F G H I J K L
CIRCUITO MAIS ECONÓMICO CAMINHO MAIS ECONÓMICO • 1º-transformar os vértices de grau ímpar em vértices • de grau par excepto 2 SEMI-EULERIZAR O GRAFO EULERIZAR O GRAFO • 2º- Descobrir um circuito de euler no grafo eulerizado caminho • 3º- sobrepor a este circuito o grafo original caminho
Exemplo:Recolha do lixo de um bairro O carro do lixo terá de repetir Algumas ruas já limpas Quantas? 9
Circuito (caminho ) de Hamilton Percorre todos os Vértices de um grafo Sem repetir nenhum
G A B circuito de Euler Não tem Tem Não tem Tem Tem circuito de Hamilton E C D F
Como sabemos se um grafo tem ou nãoum circuito (caminho) de Hamilton?
Por exemplo: Grafo com pontes Grafo completo bipartido n*n Tem circuitos Hamiltonianos Não tem nenhum circuito hamiltoniano etc
Grafos completos A F B Grau de cada vértice: n-1 E Nº total de arestas: C D Reportório completo de Circuitos Hamiltonianos (n-1)! Circuitos hamiltonianos
Fixando um vértice como referência,encontramos Todos os circuitos de Hamilton existentes no grafo A B D C
Em que consiste este tipo de problemas? São essencialmente, problemas da vida real em que se pretende encontrar um percurso de menor valor
Exemplo1:“O problema das 5 cidades” A 185€ 133€ B 152€ 200€ E 120€ 150€ 119€ 121€ 199€ C D 174€ Qual será a sequência menos expendiosa para o Sr.Francisco?
Exemplo 2: “Exploração do nosso sistema solar" Mimas Io 4.7 0.6 5.2 5.7 5.1 8.2 0.8 3.6 Titan 5.6 8.1 5.9 3.1 Callisto 1.1 1.5 3.2 Terra Ganymede Qual será o percurso mais curto?
Método1: • Fazer uma lista de todos os circuitos possíveis; • Calcular o custo total de cada circuito; • Escolher o circuito com menor custo.
Circuito Custo total Imagem Hamiltoniano em espelho 1 A,B,C,D,E,A 185+121+174+199+133= 812 A,E,D,C,B,A 2 A,B,C,E,D,A 185+121+120+199+152= 777 A,D,E,C,B,A 3 A,B,D,C,E,A 185+150+174+120+133= 762 A,E,C,D,B,A 4 A,B,D,E,C,A 185+150+199+120+119= 773 A,C,E,D,B,A 5 A,B,E,C,D,A 185+200+120+174+152= 831 A,D,C,E,B.A 6 A,B,D,E,C,A 185+200+199+174+119= 877 A,C,E,D,B,A 7 A,C,B,D,E,A 119+121+151+199+133= 722 A,E,D,B,C,A 8 A,C,B,E,D,A 119+121+200+199+152= 791 A,D,E,B,C,A 9 A,C,E,B,D,A 119+174+150+200+133= 776 A,D,B,E,C,A 10 A,C,E,B,D,A 119+120+200+150+152= 741 A,D,B,E,C,A 11 A,D,B,C,E,A 152+150+121+120+133= 676 A,E,C,B,D,A 12 A,D,C,B,E,A 152+174+121+200+133= 780 A,E,B,C.D.A Tabela1:
Circuito Hamiltoniano obtido: A 185€ 133€ B 152€ 200€ E 120€ 150€ 119€ 121€ 199€ C D 174€ Circuito de menor custo :A, D, B, C, E, A Custo total:152€+150€+121€+120€+133€ = 676€
Método 2: • Começar em A; • Partir para a cidade cujo custo é menor; • Repetir o processo até retornar a A.
Circuito Hamiltoniano Obtido : A 185€ 133€ B 152€ 200€ E 120€ 150€ 119€ 121€ 199€ C D 174€ Circuito :A, C, E, D, B, A Custo total do circuito :119€+120€+199€+150€+185€=773€
O sr.Francisco expande o seu negócio. • Usando o método 2 levará apenas alguns minutos a construir o circuito; Mas: • Para usar o método 1 teremos de verificar : 9! = 362880 circuitos.
Como resolver esta situação? • É-nos cedido um super computador capaz de construir: 10 bilões de circuitos por segundo 3.0 x 10^17 circuitos por ano
Número Número de Tempo de vértices circuitos Hamiltonianos de pesquisa 16 1,307,674,368,000 2 minutos 17 2.1*1013 35 “ 18 3.6*1014 10 horas 19 6.4*1015 7 1/2 dias 20 1.2*1017 140 dias 21 2.4*1018 7 1/2 anos 22 5.1*1019 160 anos 23 1.1*1021 3500 anos 24 2.6*1022 82.000 anos 25 6.2*1023 2,000,000 anos Tabela 2: O número de circuitos Hamiltonianos cresce desproporcionadamente à medida que acrescentamos um vértice.
Algoritmo ineficiente:O seu uso na prática é limitado, uma vez que só pode ser usado quando o número de vértices é pequeno. Exemplo: Método 1 – Algoritmo “ Força bruta”. • Algoritmo eficiente:O número de passos necessários cresce em proporção ao tamanho do problema. Exemplo: Método 2 – Algoritmo “Vizinho mais próximo”.
Em que consiste um algoritmo aproximado? • Usaremos o termo “algoritmoaproximado”para descrever qualquer algoritmo que produza soluções que estão, na maior parte das vezes, razoavelmente perto da solução perfeita.
Algoritmo3: O “vizinho mais próximo” repetido • Partir de um determinado vértice e aplicar o algoritmo “vizinho mais próximo”; • Calcular o custo total obtido; • Repetir o processo para os vértices restantes; • Escolher o circuito de menor custo; • Rescreever , se necessário, esse circuito começando no vértice de referência.