Anda di halaman 1dari 4

Algoritmos e Estruturas de Dados II Exerc cios sobre Grafos

Departamento de Inform atica Faculdade de Ci encias e Tecnologia Universidade Nova de Lisboa Ano Lectivo 2005/06
1. Designemos por grafo letrado um grafo G = (V, A) orientado, etiquetado com letras e tal que, para todo o v ertice x V , as etiquetas dos arcos que partem de x s ao todas distintas. Dados um grafo letrado G = (V, A) e um v ertice x1 V , uma sequ encia (possivelmente vazia) de letras l1 l2 ln (com n 0) diz-se uma palavra de G iniciada em x1 , se existir, em G, um caminho da forma x1 x2 xn xn+1 tal que (xi , li , xi+1 ) A para qualquer i = 1, 2, . . . , n. Ou seja, uma palavra iniciada em x1 corresponde ` a concatena c ao das etiquetas dos arcos de um caminho que come ca em x1 . Por exemplo, no grafo letrado esquematizado na gura: rir e uma palavra iniciada em 4, que corresponde ao caminho 4 2 4 2; terra e uma palavra iniciada em 3, associada ao caminho 3 5 6 4 2 3; e tarde n ao e uma palavra iniciada em 3.


p a a

   '

u 

 Q

 t

 s 5  a

o   s C  7 

 E 2 '  i r  s E 4 Q    T    r E 6   

Escreva um algoritmo abstracto (independente da representa c ao do grafo) que, dados um grafo letrado G = (V, A), um v ertice x V e uma sequ encia S (possivelmente vazia) de letras, determine se S e uma palavra de G iniciada em x. Estude a complexidade temporal do seu algoritmo. 1

2. O Minist erio da Administra c ao Interna encomendou um estudo sobre as estradas de Portugal Continental. Para este estudo, o territ orio pode ser visto como um conjunto de localidades (cidades, vilas, aldeias, etc.), ligadas por um conjunto de estradas. Cada estrada e identicada por uma letra seguida de um n umero (e.g., A8 ou N34). A letra indica a sua import ancia: A signica auto-estrada, N signica estrada nacional, R estrada regional e S estrada secund aria. Ao contr ario das auto-estradas e das estradas nacionais e regionais, que come cam e acabam em cidades, as estradas secund arias podem come car ou acabar em qualquer tipo de localidade. Qualquer estrada pode atravessar um n umero arbitr ario de localidades e qualquer localidade pode ser atravessada por um n umero arbitr ario de estradas. Ora, um dos objectivos do estudo e descobrir se, no Continente, e poss vel ir de qualquer localidade a qualquer localidade, circulando apenas em auto-estradas ou estradas nacionais. Pretende-se um algoritmo muito eciente que, dado o mapa das estradas de Portugal Continental, responda ` aquela quest ao. A sua resposta deve incluir: a formaliza c ao do problema; o algoritmo (em pseudo-c odigo), de acordo com a formaliza c ao apresentada; e o estudo da complexidade temporal do algoritmo. 3. Seja G = (V, A) um grafo n ao orientado. Uma componente conexa de G e um subconjunto X n ao vazio de v ertices de G tal que: para quaisquer v, w X , existe um caminho de v para w em G; e para quaisquer v X e w V \ X , n ao existe caminho de v para w em G. Assume-se que existe sempre um caminho de um v ertice v V para ele pr oprio. Por exemplo, o grafo esquematizado na gura possui tr es componentes conexas: {1, 3, 4, 5, 7, 8, 9, 10},
  1        

{2}

{6, 11, 12}.


   

   

4 3 5    rr     8 7 9 10    

11

12

(a) Escreva um algoritmo (em pseudo-c odigo) para encontrar as componentes conexas de um grafo n ao orientado e estude a sua complexidade. (b) Apresente dois algoritmos (em pseudo-c odigo) para determinar o n umero de componentes conexas de um grafo n ao orientado, estude as respectivas complexidades temporais e compare-as. 4. Dados um grafo n ao orientado G = (V, A) e dois v ertices o e d, apresente um algoritmo para determinar se existe caminho entre o e d em G. Estude a complexidade do seu algoritmo, no melhor caso e no pior caso.

5. No seguimento do atentado ` as Twin Towers , o Minist erio do Equipamento Social est a a refor car a seguran ca de todos os sistemas vitais do Pa s. Para al em das redes tradicionais (rodovi aria, ferrovi aria, etc.), a Internet tamb em mereceu a aten c ao dos respons aveis, que se aperceberam que existem uma s erie de routers , todos eles ligados a um n umero arbitr ario (mas sempre positivo) de outros routers . Cada liga c ao (entre dois routers distintos) e efectuada atrav es de uma linha, cuja velocidade se mede em bits por segundo. Em Portugal, como em todos os pa ses do mundo, h a linhas com velocidades muito distintas (e.g., 64 Kbits/s, 10 Mbits/s, 1 Gbits/s). Como n ao e poss vel garantir a seguran ca de todas as linhas, o Minist erio pretende seleccionar apenas algumas, ` as quais se compromete a dar especial aten c ao. O conjunto de linhas seleccionadas deve satisfazer os tr es seguintes requisitos: (a) permitir que qualquer router envie mensagens a qualquer router , ainda que seja necess ario passar por outros routers ; (b) ter o menor n umero de elementos poss vel (quanto menos linhas, menores os custos com a sua vigil ancia); (c) maximizar a soma das velocidades das linhas (ou seja, de entre todos os conjuntos de linhas que satisfazem as duas restri c oes anteriores, pretende-se um cuja soma das velocidades das linhas seja a maior poss vel). Pretende-se um algoritmo muito eciente que, dado um mapa completo com indica ca o, n ao s o dos routers e das linhas existentes, como da velocidade de cada linha, indique a soma das velocidades de um conjunto de linhas que satisfaz os requisitos do Minist erio. A sua resposta deve incluir: a formaliza c ao do problema; o algoritmo (em pseudo-c odigo), de acordo com a formaliza c ao apresentada; e o estudo da complexidade temporal do algoritmo. 6. Considere o grafo orientado e pesado G = (V, A), onde: V = {a, b, c, d, e} e

A = {(a, b, 2), (a, c, 1), (a, e, 10), (b, d, 1), (c, d, 3), (c, e, 10), (d, e, 5)}. Apresente uma simula c ao do algoritmo de Dijkstra aplicado a G, quando o v ertice inicial e a. A simula c ao deve indicar o estado das principais vari aveis no nal de cada passo, i.e., deve explicitar: quais os v ertices tratados; qual o comprimento do caminho mais curto para cada v ertice; e quais os arcos relevantes ` a reconstru c ao desses caminhos.

7. Suponha que lhe pedem um programa para ajudar aqueles passageiros que se dirigem a um aeroporto, sem bilhete, e que pretendem chegar o mais rapidamente poss vel a um outro aeroporto. Para esse efeito, disponibilizam-lhe o hor ario dos voos di arios e directos entre um conjunto de aeroportos. Por cada voo, o hor ario especica o aeroporto de partida, a hora-de-partida do voo, o aeroporto de chegada e a horade-chegada do voo. A hora-de-partida e a hora-de-chegada s ao sempre indicadas em horas e minutos (e.g., 14:45). Fornecem-lhe, tamb em, o tempo m nimo de liga c ao entre voos, que indica o tempo necess ario para se sair de um avi ao e se embarcar noutro (no mesmo aeroporto). O tempo m nimo de liga c ao entre voos e dado em minutos e e v alido em todos os aeroportos. Sabe-se ser poss vel viajar de qualquer aeroporto para qualquer aeroporto, ainda que por vezes seja necess ario apanhar mais do que um voo. Pretende-se um algoritmo muito eciente que, dado o aeroporto de origem (onde o passageiro se encontra), a hora-de-chegada do passageiro ao aeroporto de origem (a altura em que o passageiro se dirige ao servi co, pronto a embarcar) e o aeroporto de destino, indique, n ao uma sequ encia de voos que permite chegar o mais rapidamente poss vel ao aeroporto de destino, mas a hora-de-chegada do u ltimo voo dessa sequ encia. A sua resposta deve incluir: a formaliza c ao do problema; o algoritmo (em pseudo-c odigo), de acordo com a formaliza c ao apresentada; e o estudo da complexidade temporal do algoritmo.

Anda mungkin juga menyukai