introduçãointrodução - universidade de coimbra - departamento de …mcag/fea2003/trabalho de...

38
______________________Teoria de Grfos e Aplicações financeiras______________________ ___________________________________________________________________ 1 Introdução Introdução Introdução Introdução Muitas vezes as grandes descobertas surgem das mais humildes e inesperadas origens. É esta a ideia matemática a desenvolver neste trabalho, o estudo matemático de como as coisas estão interligadas. A noção de grafo aparece geometricamente quando se pensa em linhas e extremos de linhas: toda a figura formada com estes elementos pode ser encarada como um grafo. Algébricamente, a noção de grafo aparece quando se associa a um conjunto qualquer uma relação binária, em particular uma relação de ordem. É portanto perfeitamente natural que a ciência se tenha debruçado sobre esta noção e não só a procurasse definir em termos matemáticos como também a tenha utilizado ao serviço das aplicações práticas. De facto é um conceito fundamental a que expressamente recorrem hoje investigadores que trabalham em domínios variadíssimos. Um pouco de história... A nossa história começou há mais de 250 anos atrás na cidade medieval Königsberg na Europa oriental. Königsberg era dividida pelo rio Pregel em quarto áreas de terras distintas que estavam ligadas por sete pontes. Um mapa de Königsberg desenhado pelo cartografo Martin Zeiller mostra a disposição da antiga cidade em 1736. Um dia um brilhante jovem matemático Leonhard Euler passou por lá e ouviu um pequeno e inocente enigma de uma simplicidade extrema: “É possível que uma pessoa ao dar um passeio pela velha cidade consiga passar uma e uma só vez por cada ponte? ” Os habitantes locais tentaram fazê-lo vezes sem conta mas sem sucesso. Será que Euler conseguiria provar matemáticamente que tal não é possível? Faremos posteriormente uma abordagem mais pormenorizada a este problema.

Upload: ngonhu

Post on 07-Oct-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 1

IntroduçãoIntroduçãoIntroduçãoIntrodução

Muitas vezes as grandes descobertas surgem das mais humildes e

inesperadas origens. É esta a ideia matemática a desenvolver neste trabalho, o estudo matemático de como as coisas estão interligadas.

A noção de grafo aparece geometricamente quando se pensa em linhas e extremos de linhas: toda a figura formada com estes elementos pode ser encarada como um grafo. Algébricamente, a noção de grafo aparece quando se associa a um conjunto qualquer uma relação binária, em particular uma relação de ordem.

É portanto perfeitamente natural que a ciência se tenha debruçado sobre esta noção e não só a procurasse definir em termos matemáticos como também a tenha utilizado ao serviço das aplicações práticas. De facto é um conceito fundamental a que expressamente recorrem hoje investigadores que trabalham em domínios variadíssimos.

Um pouco de história... A nossa história começou há mais de 250 anos atrás na cidade

medieval Königsberg na Europa oriental. Königsberg era dividida pelo rio Pregel em quarto áreas de terras

distintas que estavam ligadas por sete pontes. Um mapa de Königsberg desenhado pelo cartografo Martin Zeiller

mostra a disposição da antiga cidade em 1736. Um dia um brilhante jovem matemático Leonhard Euler passou por lá e ouviu um pequeno e inocente enigma de uma simplicidade extrema:

“É possível que uma pessoa ao dar um passeio pela velha cidade consiga passar uma e uma só vez por cada ponte? ”

Os habitantes locais tentaram fazê-lo vezes sem conta mas sem sucesso. Será que Euler conseguiria provar matemáticamente que tal não é possível?

Faremos posteriormente uma abordagem mais pormenorizada a este problema.

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 2

A

D

Conceitos básicos Grafo: Entidade matemática (G) constituída por um conjunto V de

elementos vi chamados vértices e por um conjunto P de pares ordenados ou não [vi,vj] de elementos de V que denominamos por aresta.

Se [vi,vj] forem pares ordenados dizemos que G é um grafo orientado ou digrafo, caso contrario dizemos que G é um grafo não orientado.

Exemplo: GRAFO NÃO ORIENTADO GRAFO ORIENTADO

B B

A C

H . C E D G F Subgrafo: G’ é um subgrafo de G se os seus vértices formarem um

conjunto V(G’) que é subconjunto de V(G) e as suas arestas formarem um conjunto E(G’) que é subconjunto de E(G), sendo V(G) o conjunto dos vértices de G e E(G) o conjunto das arestas de G.

NOTA: IREMOS TRABALHAR A PARTIR DE AGORA APENAS COM GRAFOS NÃO ORIENTADOS, O RACIOCÍNIO SERIA ANÁLOGO PARA GRAFOS DIRIGIDOS.

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 3

Tomemos como grafo de referência o grafo da figura 1

Vértices adjacentes: Dois vértices dizem-se adjacentes se existir uma aresta que os una.

���� A e E são adjacentes ���� D e E não são adjacente

Arestas adjacentes: Duas arestas dizem-se adjacentes se possuírem um vértice em comum. A aresta AB é adjacente a aresta BC Laço: Aresta que liga um vértice a si próprio.

NOTA: Um grafo que possua um ou mais laços diz-se pseudografo

Grau de um vértice: Número de arestas que lhe são incidentes. ���� Grau de A:4 ���� Grau de D:3 ���� Grau de H:O

NOTA: Um laço contribui duas vezes para o grau de um vértice

Ponto isolado: Vértice de grau zero ���� O vértice H é um ponto isolado Grafo conexo: Um grafo diz-se conexo se entre quaisquer dois dos seus vértices existir pelo menos um caminho P. Caso contrario o grafo diz-se desconexo.

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 4

O grafo da figura 1 é um grafo conexo mas se lhe retirarmos a aresta

AE torna-se desconexo tomando a seguinte forma

A

C

H. B E G F

Componentes: Um grafo desconexo é constituído por varias partes conexas a que damos o nome de componentes. Ponte: Aresta de um grafo G conexo que ao ser retirada o torna desconexo.

“Burn a bridge behind you and you’ll never be able to get back”

NOTA: Como vimos ao retirar a aresta AE o grafo da figura 1

tornou-se desconexo assim sendo à aresta AE damos o nome de ponte.

Caminho: Sequência de vértices vi tais que vi e vi+1 são adjacentes.

NOTA: Um vértice pode aparecer várias vezes num caminho, no entanto cada aresta só pode aparecer uma única vez. ���� DABCAE é um caminho de D para E Circuito: Caminho que começa e termina no mesmo vértice. ���� GEFG é um circuito

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 5

Leonhard Euler (1707-1783) nasceu em Basel na Suiça. Mostrou ,desde muito cedo, um incrível talento para a realização de cálculos mentais. Apenas este aspecto não descreve um grade matemático mas Euler acrescentava-lhe um incrível talento criativo e uma ética de trabalho tremenda. Hoje em dia Euler é considerado como um dos maiores matemáticos de sempre, sendo a sua obra composta por quase 100

volumes. Nas palavras de um biografo, Euler é o Shekespeare da matemática. E é graças a ele que temos os seguintes conceitos. Caminho de Euler: Caminho que percorre por todas as arestas de um grafo conexo uma única vez.

���� DDABCAEGFE é um caminho de Euler Circuito de Euler: Circuito que percorre todas as arestas de um grafo conexo. Como o grafo da figura 1 não possui nenhum circuito de Euler(veremos mais adiante porquê) consideremos o grafo seguinte B A C D ���� ABDADCA é um circuito de Euler Arestas múltiplas: Quando dois vértices são ligados por duas ou mais arestas, essas arestas são chamadas múltiplas.

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 6

Multigrafo: Grafo que possui arestas múltiplas

O problema das pontes de Konigsberg

Uma das ideias mais importantes de Euler foi a de que certos tipos de

problemas podem ser resolvidos através da utilização de grafos.Relembremos o problema das pontes de Königsberg.

Königsberg era dividida pelo rio Pregel em quatro áreas distintas que se encontravam ligadas por sete pontes. Em 1736 Leonhard Euler visitou aquela bela cidade e conseguiu resolver o problema que tanto atormentava os habitantes locais...

“Será possível percorrer toda a cidade passando pelas sete pontes

uma única vez?” Euler provou que não... Vejamos como... Comecemos por mostrar o grafo que traduz este problema:

Figura 3

Utilizaremos por uma questão de simplicidade o esquema c) dado que a posição ou a forma das arestas de nada interessam na construção de um grafo. Para tal Euler limitou-se a mostrar que não é possivel encontrar nem um caminho nem um circuito de Euler neste grafo.

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 7

Demonstração da não existência de circuito de Euler:

Comecemos no vértice L. Algures durante o percurso teremos de passar por A e, neste caso, mais do que uma vez. Vejamos exactamente quantas. A primeira vez que visitarmos A usaremos duas arestas(pontes),uma para entrar e outra para sair de A. Na segunda visita utilizaremos, de forma analoga,outras duas arestas. Oops!! Mas existem 5 pontes a ligarnos a A.Duas visitas são insuficientes porque uma ponte ficaria por ser “passada”, no entanto três também são demais porque obrigaría-nos a passa pela mesma ponte duas vezes. Assim sendo este percurso é impossível de ser realizado.

É, portanto, o grau do vértice A que causa o problema. Euler apresenta-nos esse resultado no seu 1º teorema.

1º TEOREMA DE EULER:

A)))) se um grafo possuir vértices de grau impar então não possui nenhum circuito de Euler; B)))) se um grafo for conexo e todos os seus vértices forem de grau par então possui pelo menos um circuito de Euler

Os requisitos para a existência de caminho são análogos. Todos os vértices, à excepção do primeiro e do último deverão ser de grau par. O primeiro e o último são de grau impar porque é necessária apenas uma aresta para “sair” do vértice inicial e apenas outra para “chegar” ao vértice final. Deste facto decorre o 2º teorema de Euler

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 8

2º TEOREMA DE EULER: A)))) se um grafo possuir mais de dois vértices de grau impar então não possui nenhum caminho de Euler;

B)))) se um grafo for conexo e possuir apenas doisvertices de grau impar então possui pelo menos um caminho de Euler. Qualquer que seja o caminho ele terá de começar num dos vértices de grau impar e terminar o outro.

Ao olharmos para o grafo que modela o problema das pontes de Konigsberg apercebemo-nos de que possui 4 vértices de grau impar logo não pode existir nenhum caminho nem nenhum circuito de Euler.

Assim sendo quantas pontes terão de ser repassadas ?

Apenas uma se podermos começar e terminar em lugares distintos e duas se tivermos de começar e terminar no mesmo local. Exemplo: LARDARALD(repetição de uma das arestas que liga A a R) Um bom observador poderá perguntar:

Então e se só existir um vértice de grau impar ? Será que Euler não pensou nisso ?

Parece que sim, mas descobriu que tal hipótese é impossível, tendo

por isso apresentado um terceiro teorema que nos diz o seguinte: 3º TEOREMA DE EULER A)))) a soma dos graus de todos os vértices de um grafo é igual ao dobro do numero de arestas desse mesmo grafo. B)))) o numero de vértices de grau impar tem de ser par.

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 9

Arestas = 7

Grau L = 3 Grau A = 5 Grau D = 3 Grau R = 3

Soma = 14

Vértices de grau impar = 4

Já conhecemos ,então, um modo fácil de descobrir se um determinado grafo possui ou não um caminho ou um circuito de Euler. No entanto ainda não sabemos como identifica-lo. Em grafos do tipo apresentado anteriormente torna-se facil essa descoberta através de simples tentativas, mas e se for um grafo com dezenas de vértices e arestas ? Consideremos o grafo seguinte:

Após uma breve análise, apercebemo-nos de que todos os vértices são de grau par, logo possui pelo menos um circuito de Euler. Mas qual ? Para responder a esta pergunta terei de introduzir a noção de algoritmo. Algoritmo: Conjunto de regras mecânicas que, quando utilizadas correctamente, levam à resposta de um determinado problema.

Um dos algoritmos utilizados para responder a esta questão é o chamado algoritmo de Fleury.

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 10

A ideia principal deste algoritmo é a de que só devemos atravessar uma ponte quando for estritamente necessário, isto é, quando não tivermos outra oportunidade.

Entenda-se por ponte não só as dos grafo inicial mas as que vão surgindo à medida que vamos retirando arestas. Para tal vamos utilizar dois grafos, no primeiro vamos atribuindo letras, às arestas por onde vamos passando, e no outro vamos retirando essas mesmas arestas para que a visualização das pontes se torne mais fácil.

Vejamos então uma descrição formal

ALGORITMO DE FLEURY

1. ver se o grafo é conexo e se todos os seus vértices são de grau par 2. começar num qualquer vértice 3. percorrer uma aresta se

a) esta não for uma ponte para a parte não atravessada do grafo

b) não existir outra alternativa

4. assinalar as arestas consoante a ordem com que forem percorridas

5. quando não for possivel continuar, parar, terminou o circuito.

Utilizemos então, o algoritmo de Fleury para encontrarmos um circuito de Euler no grafo da figura 4. NOTA: Ver apresentação. Um dos circuitos possíveis é o seguinte: J,I,H,G,F,E,D,P,K,B,N,O,L,P,N,M,L,K,D,C,B,A,G,I,E,G,J.

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 11

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 12

Eulerização de grafos

Já sabemos que quando um grafo não tem vértices de grau ímpar, ou tem exactamente dois vértices de grau ímpar, então ele tem um circuito de Euler, ou um caminho de Euler, respectivamente. Assim, quando um grafo tem mais do que dois vértices de grau ímpar, não tem nenhum circuito, nem caminho de Euler. Neste caso não há maneira possível de percorrer todas as arestas do grafo sem repetir algumas delas.

Deparamo-nos agora com uma nova questão: «Como encontrar um percurso que passe por todas as arestas,

repetindo o menor número possível?» Esta é uma questão importante, pois em muitos problemas do mundo

real há um custo, que é proporcional à quantidade de viagens que se efectuam, então os percursos mais eficientes são aqueles que têm menor número de viagens desperdiçadas, que no nosso caso significam o menor número de arestas duplicadas.

� Como fazer?

Considere-se um grafo como o da figura A B C D

E F G H O grafo tem 8 vértices de grau ímpar

I J K L (B,C,H,L,O,N,I,E)

M N O P Não admite nem circuito nem caminho de Euler

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 13

� O que fazer? Eliminar os “maus elementos”!!! Isto é, transformar os vértices de grau ímpar, em vértices de grau par.

� Como? “Adicionando” arestas, que devem ser duplicadas de arestas já existentes O objectivo é percorrer todas as arestas do grafo original do melhor modo possível sem criar novas arestas, Assim obtemos o seguinte grafo:

A B C D

E F G H ( A vermelho as arestas

Novas)

I J K L

M N O P Agora temos um grafo com todos os vértices de grau par, logo admite um circuito de Euler, que pode ser interpretado como um percurso ao longo das arestas do grafo original do seguinte modo: 10

1 2 11

12

28 27 21 26 22 24

(ABCGKONJFBCDHLKJIEFGHLPONMIEA)

9 3 18 19 20

17 8 4 13

16 15 14

7 5

25 6 23

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 14

Nesta viagem percorremos todas as arestas do grafo, mas repetimos 4 delas.

Ainda que este não seja um circuito de Euler, descreve o circuito mais eficiente que percorre todas as arestas.

O processo de adicionar arestas, para transformar os vértices de grau

ímpar em vértices de grau par, é o que chamamos eulerização do grafo.

Então a nossa teoria consiste no seguinte:

1º Eliminar todos os vértices de grau ímpar, acrescentando arestas que sejam duplicadas das já existentes.(eulerizar o grafo)

2º Encontrar um circuito de Euler no grafo eulerizado 3º Sobrepor o circuito ao grafo original. 4º As arestas duplicadas correspondem às arestas que vão ser

repetidas É claro que existem muitas maneiras de eulerizar um grafo, mas o

que nos interessa é uma eulerização óptima, ou seja, uma que duplique o menor número possível de arestas. Aí ficamos a saber exactamente quantas arestas vamos ter de repetir, e quais serão elas.

Considere agora que pretendemos percorrer todas as arestas do grafo

repetindo o menor número possível, mas desta vez não precisamos terminar no mesmo ponto onde iniciámos o percurso, isto é, não procuramos um circuito, mas sim um caminho.

Neste caso fazemos o que se chama uma Semi-eulerização do grafo � Em que consiste?

Duplicamos quantas arestas forem precisas para eliminar os vértices

de grau ímpar, excepto dois, que permitiremos que continuem ímpares, e serão interpretados como o ponto de partida e o ponto de chegada do nosso caminho. Repetimos todo o processo anterior,e encontramos um caminho óptimo, ou seja que tem um número minimo de arestas repetidas.

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 15

Então a nossa teoria consiste no seguinte: 1º Eliminar todos os vértices de grau ímpar, excepto dois que

serviram de ponto de partida e ponto de chegada.(semi-eulerizar o grafo) 2º Encontrar um caminho de Euler no grafo eulerizado 3º Sobrepor o caminho ao grafo original. 4º As arestas duplicadas correspondem às arestas que vão ser

repetidas Passemos agora a apresentar alguns exemplos onde podemos aplicar

esta teoria:

� Exemplo 1:

Após uma vaga de assaltos, foi contratado um segurança privado para patrulhar a pé as ruas de um pequeno bairro. Ele é pago para dar apenas uma volta, e está ansioso por voltar a casa. De imediato coloca duas questões: “Haverá algum percurso que lhe permita percorrer todas as ruas, uma única vez, começando e acabando no local onde deixou o carro?

Se não qual é o percurso mais eficaz?” A figura seguinte mostra o grafo representativo do mapa do bairro,

em que cada aresta representa uma rua.

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 16

O grafo tem 18 vértices de grau ímpar, logo a resposta à primeira questão posta pelo segurança é não. Não é possivel percorrer cada rua uma única vez. Passemos então à segunda questão.

Para tal, façamos uma eulerização do grafo

Aplicando o algoritmo de Fleury, encontramos o caminho ideal,

procurado pelo segurança.

� Exemplo 2:

Pensemos agora no carteiro que pretende distribuir o correio do mesmo bairro. Neste caso, em cada rua há casas dos dois lados, e mais uma vez este deverá começar o percurso, e terminar no mesmo local, o posto dos correios.

O grafo que representa este problema é ligeiramente diferente do grafo do problema anterior, uma vez que cada rua deve ser percorrida dos dois lados.

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 17

Surpreendentemente, todos os vértices deste grafo têm grau par, o

que significa que existe um circuito de Euler, ou seja, o carteiro não tem que repetir nenhum passo se escolher cuidadosamente o percurso. Mais uma vez usando o algoritmo de Fleury, ou simplesmente por tentativas, encontramos o circuito procurado.

� Exemplo 3:

Considere a figura seguinte

Quantas vezes será preciso levantar o lápis para desenhar esta

figura,se não se quiser passar por uma linha já traçada?

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 18

O grafo tem 4 vértices de grau ímpar

Como não é necessário terminar o desenho no mesmo ponto em que se começou,basta-nos duplicar uma aresta. Assim apenas precisamos de

levantar o lápis do papel uma vez.

Como podemos ver esta teoria tem diversas aplicações. Sempre se

queira descobrir o percurso mais económico em termos de repetição de ruas, linhas, etc... é usada esta teoria.

Em muitas cidades grandes o percurso dos serviços municipalizados, como a recolha do lixo, os varredores, a distribuição do correio, e muitos outros, é determinado aplicando a teoria descrita.

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 19

E

Até agora falámos de problemas em que o nosso objectivo é percorrer um grafo passando uma única vez (ou o menor número possível de vezes) por cada aresta. Falemos agora de percursos onde se passe por cada vértice uma única vez.

Este novo tipo de circuitos é chamado um circuito de Hamilton, assim como um caminho nessas condições é denominado caminho de Hamilton.

A diferença na definição de circuito ou caminho de Euler e de Hamilton, resume-se à troca de uma palavra:

aresta por vértice.

Vamos então ver a influência que essa troca tem.

Euler vs Hamilton

A B E Grafo com circuito de Hamilton, (A,B,E,C,D,A) mas sem circuito de Euler. D C A B E Grafo com circuito de Euler, (A,B,E,C,D,E,A) mas sem circuito de Hamilton D C A B C Grafo com circuito de Hamilton (A,C,D,E,,F,G,B,A) e com circuito de Euler G (A,C,D,E,F,D,G,F,B,G,C,B,A) F D

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 20

O exemplo anterior ilustra como a presença de um circuito de Euler não influencía a presença de um circuito de Hamilton, e vice-versa.

Sendo assim, dado um grafo como sabemos se ele possui um

circuito (caminho) de Hamilton? Infelizmente não há uma resposta simples para esta questão. Mesmo para um grafo pequeno não é fácil determinar se tem um

circuito(caminho) de Hamilton. Contudo existem tipos especiais de grafos, com caracteristicas

próprias, que nos permitem afirmar logo se possuem ou não circuitos ou caminhos hamiltonianos.

Por exemplo: Grafos Completos Bipartidos n n× ... ... Os vértices são divididos em duas linhas ,e cada vértice duma linha é

adjacente a todos os vértices da outra linha, mas não é adjacente a nenhum vértice da mesma linha.

Se cada linha tem o mesmo número de vértices (n n× ), o grafo tem circuitos de Hamilton.

Se uma linha tem mais vértices que a outra ( ,m n m n× ≠ ), não existem circuitos hamiltonianos, mas podem ou não existir caminhos:

Se a diferença entre m e n for igual a um: existem camihos de Hamilton;

Se a diferença entre m e n for maior que um: não existem caminhos de Hamilton.

Grafos grelha m n× Um grafo grelha é um grafo rectangular que representa uma

grelha com m blocos por n blocos, como o representado na figura:

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 21

Num grafo deste tipo,

se m e n são ambos ímpares o grafo tem um circuito de Hamilton;

se m for par, e n ímpar o grafo tem um circuito de Hamilton; se m e n forem ambos pares, o grafo não tem circuitos

hamiltonianos. Grafos com pontes Num grafo com pontes não existem circuitos de Hamilton. E como estes existem mais grafos especiais, mas o que nos

interessa para o nosso trabalho é um tipo de grafos muito especial, que possui sempre circuitos de Hamilton,e onde podemos até precisar o número de circuitos existentes. Falamos de grafos completos. � O que é um grafo completo?

È um grafo em que cada vértice é adjacente a todos os outros, isto é existe sempre uma aresta a ligar qualquer par de vértices.Um grafo completo com n vértices denota-se por Kn.

Neste tipo de grafos cada vértice tem grau n-1, e consequentemente o

número total de arestas é ( 1)2

n n−

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 22

F

E

� Exemplo: A

B K6

Cada vértice tem grau 5 Tem 15 arestas C D Um grafo completo tem um reportório completo de circuitos de

Hamilton. Podemos escrever os vértices pela ordem que quisermos, repetir o 1º vértice no final e temos um circuito de Hamilton.

Existe uma fórmula conveniente que nos dá o número de circuitos de Hamilton num grafo completo. Note que num grafo completo podemos listar os vértices por qualquer ordem e encontrar um circuito hamiltoniano, se escolhermos um ponto de referencia, todas as ordenações possiveis dos restantes n-1 vértices resultam num circuito de Hamilton, logo o número total de circuitos hamiltonianos dum grafo completo é (n-1)!

� Exemplo: K4 (grafo completo com 4 vértices) A B C D ABCDA BCDAB CDABC DABCD ABDCA BDCAB CABDC DCABD ACBDA BDACB CBDAC DACBD ACDBA BACDB CDBAC DBACD ADBCA BCADB CADBC DBCAD ADCBA BADCB CBADC DCBAD

Tomando o ponto A como referência, obtemos 6 circuitos hamiltonianos diferentes.Quando tomamos um dos outros vértices como referência, cada circuito obtido já foi encontrado em A, apenas muda o ponto onde começa, mas o circuito é o mesmo.

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 23

È importante notar como crescem depressa os factoriais, e

consequentemente o número de circuitos de Hamilton, à medida que acrescentamos vértices.

Nº de vértices Nº de circuitos hamiltonianos 3 2 4 6 5 24 6 120 7 720 8 5040 9 40320 10 ......

362880 .....

Assim quando trabalhamos com grafos completos, podemo-nos

deparar com um nº astronómico de circuitos Hamiltonianos.Como vamos trabalhar com tantos? Esta é uma importante questão da teoria de grafos!!!

No princípio do novo milénio, o Homem depara-se com um grande desejo: «descobrir vida nos outros planetas». De todos os planetas do sistema solar, Marte é o mais provável local com evidencias de vida - provávelmente primitiva. Mas descobrir “marcianos” levanta muitas questões, técnicas e logisticas. Quais os melhores locais de Marte para explorar? Como levar o equipamento até lá? Quanto tempo demorará o trabalho? E sobretudo Quais os custos? Mais uma vez por trás das complexidades da exploração de Marte, está um interessante problema matemático.

Um dos projectos da Nasa, consiste em “soltar” um robôt em Marte que deverá percorrer locais previamente estabelecidos recolhendo amostras de solo para experiências, voltando, após visitar todos os locais, ao sitio onde desembarcou, sendo as amostras recolhidas, para regressar à Terra.É claro que existem muitos caminhos que o robôt pode tomar, quando visita

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 24

cada um dos locais definidos.A questão que se coloca é : “Qual deles é o melhor?”.

Esta questão não é mais que um problema de grafos, um problema muito especial que dá pelo nome de TSP (traveling Salesman Problem).

O nome representa todos os problemas semelhantes, mesmo que não tenham nada a ver com viagens. Pensaremos nas viagens como uma metáfora: é um de nós procurando o melhor caminho para “qualquer coisa”!

Uma considerável caracteristica dos TSP é a sua simplicidade.Não parece que encontrar um caminho óptimo seja tão dificil.

O TSP representa um dos mais interessantes e complexos problemas da teoria de grafos.

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 25

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 26

TSP (Traveling-Salesman Problems)

Em seguida iremos abordar o problema dos TSP, para tal serão dados alguns exemplos para assim compreendermos a sua função. Exemplo: “O problema das 5 cidades” O sr. Francisco tem clientes em 5 cidades as quais chamaremos para simplificar A, B, C, D e E; ele planeia uma viagem para visitar cada um delas. O sr Francisco precisa começar e terminar a sua viagem em sua casa, na cidade A. Para além disso, não há mais restrições na ordem pela qual ele deseja fazer as visitas às restantes quatro cidades. O grafo que se apresenta mostra o custo do bilhete de avião, entre cada duas cidades. Naturalmente, o sr. Francisco quer ter a menor despesa possivel. ____________________________Fig.1____________________________

____________________________________________________________ Qual será a sequência menos expendiosa para percorrer as cinco cidades? Retomaremos este problema posteriormente, para uma abordagem mais cuidada e permenorizada.

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 27

Exemplo: “Exploração do nosso sistema solar” Suponhamos que estamos no ano 2020. Pretende-se fazer uma expediçaõ que se destina a visitar Callisto, Ganymede, Io, Mimas e Titan (as primeiras três são luas de Júpiter, as duas últimas são luas de Saturno). Em cada uma delas serão retiradas amostras de rochas para posteriormente serem analisadas em Terra. A figura que se segue mostra o tempo de missão (em anos) entre duas luas. _____________________________Fig.2___________________________

____________________________________________________________ Qual a melhor maneira de direccionar a nave, para que a viagem demore o menor tempo possível?

Muitos mais exemplos poderiam ser dados mas, o que se pretende essencialmente é que se perceba que o mais importante de tudo, em cada exemplo, é achar um circuito que minimize algo, nomedamente e de acordo com os exemplos anteriores, os custos, o tempo, etc. Muitos problemas do dia a dia podem ser formulados como TSPs por exemplo, a simples tarefa de entrega de encomendas, pode ser formulada

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 28

como TSP de forma a minimizar o tempo que se demora a percorrer todos os destinatários. A seguir serão apresentadas algumas estratégias para resolver este tipo de problemas, para tal consideremos o problema das 5 cidades. � Método 1 :

a) Fazer uma lista de todos os circuitos possiveis;

b) Calcular o total de custos para cada circuito;

c) Escolher o circuito com menor custo.

____________________________Tabela1__________________________

Circuito Imagem em Hamiltoniano Custo Total 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

A tabela mostra as várias possibilidades:

a) Há 24 circuitos Hamiltonianos possiveis;

b) O custo de cada circuito pode ser facilmente calculado como é mostrado na tabela;

c) Como podemos ver através da tabela o circuito com menor custo

é A, D, B, C, E, A assim como a sua imagem espelho A, E, C, B, D, A, com um custo total de 676 €.

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 29

Representemos este grafo, assinalando a vermelho o circuito de

menor custo:

___________________________Fig.3_____________________________

__________________________________________________________ � Método 2: Começar em casa. Daí partir para a cidade onde o custo da viagem é

mais barato, e assim sucessivamente até regressar a casa. Usando este método obtemos o seguinte circuito: A, C, E, D, B,A cujo

custo total é 773€. A figura que se segue ilustra o circuito Hamiltoniano obtido:

____________________________Fig.4____________________________

___________________________________________________________

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 30

Como pudemos verificar através do exemplo anterior, o uso do

segundo método torna-se mais expendioso para o sr. Francisco uma vez que o custo total obtido foi superior ao que se obtém usando o 1º método.

Suponhamos agora que o negócio do sr. Francisco se expande, agora

em vez de 5 cidades serão 10 cidades. Agora sabemos que um dos métodos para resolver este problema é o

método 1. Mas, antes preocupemo-nos com o número de circuitos que terão de ser verificados, para tal vamos pensar em termos de factoriais. O número de circuitos que teremos de verificar é (n-1)! que neste caso são, 9! que são 362.880. Como podemos ver tornar-se-ía muito trabalhoso verificar este número de circuitos Hamiltonianos . Para ilustrar este problema apresentamos o grafo que se segue:

____________________________Fig.5____________________________

__________________________________________________________ Usando o método 2, levará apenas alguns minutos.

Antes de continuarmos, formalizemos algumas das ideias que temos vindo a discutir.

Ambas as estratégias utilizadas anteriormente que designamos por método 1 e método 2, são exemplos de algoritmos.

Ao método 1 chamamos algoritmo “the brute-force” e ao método 2, algoritmo “the nearest-neighbor “.

Vamos agora descrever cada um destes algoritmos:

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 31

Algoritmo 1: “The brute-force “

• Faz-se uma lista de todos os circuitos Hamiltonianos possíveis; • Para cada circuito Hamiltoniano calcular o seu peso total,

acrescentando todos os valores de todas as arestas do circuito;

• Encontrar os circuitos (há sempre mais que um) com valor total minimo.

Algoritmo 2 : “The nearest-neighbor”

• Escolher um vértice para o ponto de partida; • Do vértice de partida escolher o vértice cujo valor correspondente

é menor. Chamaremos a este vértice o “nearest-neighbor”. Se houver mais que um escolhe-se aleatoriamente.

• Continuar a construir o círcuito, um vértice de cada vez, ir sempre

de um vértice para o vértice de menor valor, percorrendo todos os vértices que ainda não foram visitados. (Sempre que houver um laço escolher aletoriamente).

• Do último vértice regressar ao ponto de partida.

Baseados naquilo que vimos até aqui é fácil compreendermos que

ambos os algoritmos trazem problemas. Comecemos pelo 1º algoritmo. Procurar todos os circuitos Hamiltonianos quando o número de vértices é elevado, não é tarefa fácil. Uma possibilidade para dar a volta ao problema é recrutar uma ajuda rápida, assim como um computador poderoso. Infelizmente, até o computador mais rápido do mundo não nos levará muito longe. Suponhamos que nos é cedido um super computador capaz de construír 10 biliões de circuitos por segundo. Significa que o nosso computador pode fazer aproximadamente 3.0×1017 circuitos por ano. Para gráficos com 15 vértices, o nosso ajudante pode construir os circuitos Hamiltonianos em segundos ou menos. Mas, se forem

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 32

circuitos com mais de 15 vértices torna-se mais complicado como podemos ver pela tabela que se segue:

__________________________Tabela2____________________________ 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 Como podemos ver pela tabela, cada vez que acrescentamos

um vértice, o tempo necessário para construír o circuito aumenta desproporcionadamente.

Este algoritmo é um exemplo clássico formalmente conhecido por “algoritmo ineficiente”. O problema destes algoritmos é que nos limitam o seu uso na prática, só podem ser usados quando o problema é pequeno. Felizmente, nem todos os algoritmos são ineficientes como é o caso do nosso 2º algoritmo, no qual nós esperamos de vértice em vértice usar um simples critério: “Onde está o próximo “mais próximo” sítio para ir? “ Para um grafo de 5 vértices teremos de tomar 5 passos. Quando tivermos 10 vértices, teremos de fazer 10 passos. Essencialmente, a quantidade de trabalho duplica quando o número de vértices duplica. Um algoritmo para o qual o número de passos necessários para prosseguir cresce em proporção ao tamanho do problema chama-se “algoritmo eficiente”. O algoritmo “nearest-neighbor” é um algoritmo eficiente. O problema com este algoritmo é não nos dar um circuito Hamiltoniano perfeito. Assim, porque é que devemos considerar um algoritmo que não nos dá uma resposta adequada? Vamos agora falar de outro tipo de algoritmos.

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 33

Algoritmos aproximados

A última meta para encontrar um método geral para explicar TSPs é encontrar um algoritmo que seja eficiente e adequado, isto significa que nos garante sempre uma resposta perfeita. Infelizmente, ninguém conhece tal algoritmo. Será porque tal algoritmo é hoje uma impossibilidade matemática? Ou será porque ninguém até agora foi suficientemente esperto para encontrar um?

Apesar dos esforços de alguns dos melhores matemáticos do nosso tempo, as respostas para estas questões foram meramente ilusórias. Estas questões trazem profundas implicações na área da cincia dos computadores chamada “teoria complexa”, tornou-se um dos mais famosos e inexplicáveis problemas da matemática moderna.

Para resolver estes problemas vamos esquecer a expectativa de encontrar uma solução que poderá não ser perfeita mas, que seja uma solução rápida.

Usaremos o termo “algoritmo aproximado” para descrever qualquer algoritmo que produza soluções que estão, na maior parte das vezes, razoavelmente perto da solução perfeita

O algoritmo: “Repetitive Nearest-Neighbor” Este algoritmo é uma variação do “nearest-neighbor” no qual repetimos várias vezes todo o processo de construção do algoritmo “nearest neighbor”. Para que é que se pretende tal algoritmo? A razão é que para se obter o circuito Hamiltoniano quando se aplica o processo “nearest neighbor” depende da escolha do vértice de partida. Se alterarmos o vértice de partida, é provável que o circuito Hamiltoniano que vamos obter será diferente. Desta forma, iremos obter vários circuitos Hamiltonianos diferentes, dos quais poderemos escolher o melhor.

Para ilustrar o funcionamento deste algoritmo vamos voltar ao problema das 5 cidades.

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 34

Um conto das 5 cidades (continuação) Vimos já que o circuito Hamiltoniano perfeito é dado por A, D, B, C,

E, A. Quando usamos o “nearest-neighbor” com o vértice A como ponto

de partida, obtemos o circuito Hamiltoniano A, C, E, D, B, A. Tentemos agora com o vértice B como ponto de partida. Obtém-se

assim, o circuito B, C, A, E, D, B cujo custo total é 722 €. É certamente um aperfeiçoamento. Poderá o sr. Francisco, que pretende começar e terminar em A, conseguir menos de 722 €? Porque não? Tudo o que ele terá de fazer é reescrever o circuito de forma equivalente A, E, D, B, C, A.

Podemos agora tentar como pontos de partida C, D e E. Quando o ponto de partida é C obtemos um custo total de 722 €, quendo o ponto de partida é D conseguimos o circuito Hamiltoniano D, B, C, A, E, D também com um custo total de 722 euros, e finalmente, quando o ponyo de partida é E obtém-se o circuito Hamiltoniano E, C, A, D, B, E com um custo total de 741 €.

Desta maneira, a melhor solução obtida com o “repetitive nearest-neighbor” é o circuito A, E, D, B, C, A com um custo total de 722€.

____________________________Fig.6____________________________

______________________________________________________________________

Façamos então uma descrição formal deste algoritmo:

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 35

Algoritmo 3 : “The repetitive nearest-neighbor”

• Por X em qualquer vértice. Aplicar o algoritmo “nearest-neighbor” usando X desde o vértice de partida e calcular o custo total do circuito obtido;

• Repetir o processo usando cada um dos outros vértices do

gráfico como ponto de partida.

• Dos circuitos Hamiltonianos obtidos, escolher o melhor deles. Se há um vértice de partida designado, reescrever o circuito em que esse vértice é o ponto de referência.

Algoritmo: “The chepeast – link”

Este é o último - mas não o pior - dos algoritmos para encontrar circuitos Hamiltonianos. Como vimos, usando o algoritmo “repetitive nearest-neighbor”, a ordem pela qual construímos um circuito Hamiltoniano e a ordem pela qual se conduz o circuito não tem de ser a mesma. O algoritmo “cheapest-link” é essencialmente um algoritmo que usa a seguinte estratégia: Começamos pela aresta de menor valor do grafo, qualquer que seja. Uma vez feito, escolhemos a aresta de menor valor que se segue e assim sucessivamente, tendo em conta as seguintes restrições:

(i) Não permitir que os circuitos se formem (a não ser mesmo no final);

(ii) Não permitir que três arestas se juntem num vértice.

É claro que se permitirmos que algumas destas duas coisas aconteça não se consegue terminar o circuito Hamiltoniano. Felizmente, são as únicas duas restrições com que nos devemos preocupar. Façamos uma descrição formal do algoritmo “The chepeast-

link”.

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 36

Algoritmo 4: “The chepeast-link”

• Pegar na aresta de menor valor (em caso de igualdade escolher aleatoriamente). Marcar a respectiva aresta(por exemplo a vermelho);

• Pegar na ligação de menor valor a seguir, e marcar a

correspondente aresta;

• Continuar a marcar as arestas de menor valor nas condições requeridas, excepto quando:

a) Esta fecha um circuito;

b) Resulta na ligação de três arestas no mesmo vértice:

• Quando não houver mais vértices para ligar, fechar o circuito a

vermelho.

Consideremos novamente o problema das 5 cidades: Seguindo os passos atrás descritos, e observando a construção

do circuito Hamiltoniano em anexos, obtém-se: ____________________________Fig.7____________________________

____________________________________________________________ Obtemos o circuito A, C, E, B, D, A (ou a sua imagem ao espelho),

com um custo total de 741 €.

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 37

Conclusão Concluímos assim, que em muitas situações, encontrar um circuito Hamiltoniano adequado é razoavelmente fácil. Um algoritmo geral completo que funcionasse para todos os TSPs iludiu matemáticos que estavam interessados neste problema há mais de 50 anos. Trata-se de um problema de extrema importância e ao mesmo tempo um problema de notoriosa dificuldade.

O “nearest-neighbor” e “cheapest-link” são duas estratégias razoavelmente simples para investir nos TSPs, mas variações sofisticadas destas estratégias são de facto usadas hoje em dia no negócio e indústria para resolver prblemas importantes da vida real envolvendo milhares de vértices. Vimos que ambos os algoritmos são algoritmos de aproximação. Isto significa que algoritmos como estes não nos dão soluções perfeitas, embora, num dia de sorte seja possivel. Com muito azar, qualquer um destes algoritmos pode dar-nos o pior circuito Hamiltoniano possível. No entanto, podemos esperar que qualquer um destes algoritmos nos dê uma solução aproximada com uma margem mínima de erro.

Em alguns problemas o “cheapest-link” dá-nos uma melhor solução que o “nearest-neighbor”, com outros problemas é ao contrário. Desta maneira, conclui-se que nenhum é melhor que o outro.

É de grande interesse no meio matemático e cientistas dos computadores encontrar algumas melhoras para os algoritmos de aproximação para resolver TSPs.

______________________Teoria de Grfos e Aplicações financeiras______________________

___________________________________________________________________ 38