Anda di halaman 1dari 11

Ieda Ferreira Alves Marcus Vincius de Moraes Tobler Rog rio Luiz Carvalho e Victor Mendes Vilson Vieira

a da Silva Junior

Caminho Euleriano

U NIVERSIDADE DO E STADO DE S ANTA C ATARINA C ENTRO DE C I E NCIAS T ECNOL OGICAS D EPARTAMENTO DE C I E NCIA DA C OMPUTAC AO NCIA DA C OMPUTAC AO , I NTEGRAL BACHARELANDO EM C I E

Joinville SC 4 de novembro de 2005

Sum rio a

Introducao 1 2 Mapa do Bairro Anita Garibaldi Modelagem 2.1 2.2 2.3 3 Grafo Real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grafo Otimizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Matriz de Adjac ncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . e

p. 3 p. 4 p. 5 p. 5 p. 6 p. 6 p. 7 p. 7 p. 7 p. 10 p. 11

Implementacao 3.1 3.2 Algortmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Conclus o a Refer ncias e

Introducao
Esse trabalho tem por nalidade mostrar parte do conhecimento abstrado da disciplina de Teoria Geral dos Grafos.

Utiliazando-se desse artifcio, procurou-se analisar um sistema de ruas em busca de um possvel Caminho Euleriano. Para a tarefa em quest o foi implementado um algoritmo que a permite por meio do preenchimento de uma matriz Booleana, diagnosticar se h a possibilia dade de tal caminho existir e indicar qual seria a solucao mais vi vel atrav s de um grafo. a e

O grafo mostrar o novo caminho analizando os v rtices de cada grafo para que se modia e que o mapa real da maneira mais din mica possvel. a

Mapa do Bairro Anita Garibaldi

Apresenta-se um representacao simplista do mapa de parte do Bairro Anita Garibaldi desta cidade de Joinville. A partir deste mapa, poder ser modelado um grafo valorado com a a dist ncia entre as ruas, e estas sendo suas arestas: a

Figura 1: Mapa do Bairro Anita Garibaldi

Modelagem

Neste captulo t m-se as representacoes dos grafos propriamente ditos. e

2.1

Grafo Real

Na primeira fase da modelagem, obt m-se uma representacao real da situacao. Tal e representacao facilita a visualizacao do problema como um todo, sem a preocupacao de de talhes de otimizacao, faz-se apenas um esboco.

Figura 2: Grafo Real

2.2 Grafo Otimizado

2.2

Grafo Otimizado

Pela execucao do programa no grafo real, obt m-se que o grafo n o apresenta Caminho Eu e a ` leriano. Ap s an lise e manipulacao, gera-se o seguinte grafo, agora sim propcio a Euleridade o a de Ciclos.

Figura 3: Grafo Otimizado

2.3

Matriz de Adjac ncias e

Com o grafo j modelado, passa-se para a construcao da matriz de adjac ncias, que ser a e a a representacao em ambiente computacional propriamente dita. E a partir desta matriz que o programa poder aplicar seus procedimentos. a

Para facilitar a visualizacao de tal matriz, sendo que esta apresenta-se em grande proporcao, a mesma est inclusa como ap ndice este trabalho. a e

Implementacao

Com a modelagem concluida, tanto de maneira formal (grafos) quanto pr tica (matriz de a adjac ncias), pode-se ent o discutir os procedimentos para resolver tal problema e partir para e a a implementacao da solucao.

3.1

Algortmo

O algortmo utilizado tem por objetivo identicar a exist ncia ou n o de um Caminho e a Euleriano no grafo dado. O processo (GERSTING, 1999) resume-se em, para cada coluna da matriz de adjac ncias, efetuar a soma de tais valores, admitindo-se ent o serem passveis de e a Caminho Euleriano, aquelas matrizes que tiverem o valor desta soma sendo par, ou tendo no m ximo duas somas com valores mpares. a

3.2

Programa

A partir do algortmo torna-se f cil a implementacao de um programa de computador para a sua execucao. Para tal, optou-se pelo uso da linguagem de programacao C, por sua not ria o manipulacao de matrizes de dados primitivos, neste caso, inteiros e de ponto utuante. Segue portanto o c digo comentado, para f cil compreens o: o a a /* Checagem de Existncia de Caminho Euleriano **********************/ e #include<stdio.h> #include<stdlib.h> int matriz(int vertices); int main(void){

3.2 Programa

int

vert;

printf("\n\nQuantos vertices:. "); scanf("%d", &vert); // Inicia a matriz de adjacencia matriz(vert); return 0; } int matriz(int vert){ int i, j, aux,aux2=0, aux3=0; int mat[vert][vert],soma[vert];

for(j=0; j<vert; j++){ for(i=0; i< vert; i++){ mat[i][j]=(int)calloc(((vert-1) * (vert-1)), sizeof(int)); soma[i] =(int)calloc(vert , sizeof(int)); } } for(j=0; j<vert; j++) { for(i=0; i< vert; i++){ printf("\nVertices [%d , %d] :", i+1, j+1); scanf("%d, %d", &mat[i][j]); aux2 = mat[i][j] + aux2; } // Vetor acumulativo para a soma das colunas soma[j]= aux2; aux2= 0; } // Mostra matriz de adjacncias e printf("\nMATRIZ DE ADJACENCIAS :: ."); printf("\n\n 1");

3.2 Programa

for(i = 1; i < vert-1; i++) printf(" %d", i+1); printf("\n _");

for(i = 1; i < vert-1; i++) printf(" _" ); for(i = 0; i < vert-1; i++) { printf("\n %d |", i+1); for(j = 0; j < vert-1; j++) printf(" %d", mat[i][j]); printf(" |"); } printf("\n"); // Mostra vetor com soma das colunas printf("\nSOMA DAS COLUNAS:."); for(j=0; j<vert; j++) printf("\nColuna %d = %d", j+1, soma[j]);

// Verifica se existe Caminho Euleriano for(j=0; j<vert; j++) { aux = soma[j]%2; if(aux != 0 ) aux3++; } if(aux3 > 2) printf("\nNo h possibilidade de Caminho Euleriano!"); a a else printf("\nH possobilidade de Caminho Euleriano!"); a return 0; }

10

Conclus o a
Com a realizacao desse trabalho, pode-se concluir que a utilizacao da teoria dos grafos n o a ca restrita somente ao ambiente acad mico. Ela pode ser facilmente aplicada aos problemas e do nosso cotidiano.

` Um simples caso como este, referindo-se apenas a uma pequena localidade, serve apenas para introduzir como se pode utilizar os mesmos m todos para resolver por exemplo, os problee mas de malha vi ria de uma grande cidade, assim como melhorar a distribuicao dos transportes a p blicos de massa e percurso em que se faz necess rio a passagem por v rias localidades. u a a

O exemplo aqui abordado, de ligacao entre ruas de um bairro, pode ser facilmente trans portado para percursos de localidades maiores. Dessa forma, um programa de computador que utilizasse um algoritmo de Caminho Euleriano seria de ampla utilizacao a qualquer empresa de transporte turstico ou de carga e com rcio, expandindo-se para as mais vastas aplicacoes. e

11

Refer ncias e
GERSTING, J. Fundamentos Matem ticos para Ci ncia da Computacao. S o Paulo: Makron a e a Books, 1999.

Anda mungkin juga menyukai