ep2exemplo.c, para a rotina de geração de grafos, etc. Veja aqui como compilar (use o Makefile dado neste diretorio; ele é próprio
para a rede GNU/Linux do IME).
gb_flip de Knuth. O
gb_flip é um módulo do Stanford
GraphBase de Knuth (usado na disciplina MAC328 - Teoria
dos Grafos).
ghostview ou
gv para visualizar este arquivo no X; alternativamente, voce pode
imprimir este arquivo em qualquer impressora que entenda arquivos PostScript).
Os vértices deste grafo são os pares (i,j), onde 0 <= i <
7 e 0<= j < 5. O vértice no canto inferior esquerdo é o
vértice (0,0) e o vértice no canto superior direito é o vértice
(6,4).
Estamos interessados no vértice central (3,2). Estamos, na
verdade, interessados no componente conexo deste vértice, isto é, o
grafo definido pelos vértices que são alcançáveis a partir de
(3,2) pelas arestas. Você pode imaginar que os 7 * 5 =
35 vértices deste grafo representam cruzamentos entre ruas e que as 29
arestas representam ruas trafegáveis. A nossa tarefa então seria descobrir o
conjunto de ruas e cruzamentos alvancáveis se estamos no cruzamento de
coordenadas (3,2). A resposta é dada por este grafo: g2.ps.
Em geral, dado um grafo como acima (com M colunas e
N linhas de vértices), o seu EP deve determinar o componente
conexo do vértice (M/2,N/2) (a divisão aqui é a divisão inteira).
Note que no exemplo acima, M = 7 e N = 5.
grafo_aleat. Este módulo tem a interface grafo_aleat.h. Estude esta
interface! Voce pode encontrar a implementação deste módulo neste diretório. Entretanto, você não precisa entender
como as funções de grafo_aleat.h são
implementadas. Estude o programa-exemplo ep2exemplo.c para ver como podemos utilizar
este módulo de geração de grafos. Note que, para gerar um grafo usando o
módulo grafo_aleat, precisamos dos parâmetros M,
N, p (a probabilidade de uma potencial arestas
estar efetivamente presente no grafo a ser gerado), e seed, um
inteiro que determina o comportamento do gerador de números aleatórios usado
na implementação desta módulo. Note que este módulo deve, dado o mesmo
conjunto de parâmetros, gerar o mesmo grafo quando compilado e executado em
plataformas diversas.
g2.ps acima, isto é, como arquivos PostScript. Para
tanto, use a versão standard das bibliotecas de Roberts. Você
pode usar a versão xwindows para obter resultados na tela (bom
para depuração). Sugiro também que o seu programa possa gerar uma saída
gráfica representando o grafo todo (não apenas o componente conexo
procurado); você pode verificar a correção de seu programa em exemplos
pequenos examinando as saídas.
/*********************************************************************** * * Nome do Aluno ... Numero USP ... * * Curso ... Data ... * * Nome do Professor ... * * Exercicio Programa Numero ... * * Compilador usado ... * **********************************************************************/
Y. Kohayakawa
<yoshi@ime.usp.br>
Last modified: Thu Jun 3 00:18:38 EST 1999