-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgera_grafo.py
More file actions
48 lines (35 loc) · 1.31 KB
/
Copy pathgera_grafo.py
File metadata and controls
48 lines (35 loc) · 1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# Por: William Rodrigues
from random import randint
#---------------------------------------------------------------------------------------------------
# Retorna uma matriz de adj de um grafo gerado com n cidades
# Usado para gerar casos de teste
# num_cidades : Número de cidades
# dist_min : distância mínima que uma cidade pode ter em relação a outra
# dist_max : distância máxima que uma cidade pode ter em relação a outra
def gera_grafo(num_cidades, dist_min, dist_max):
matriz_adj = []
#Inicializa toda matriz quadrada
for _ in range(num_cidades):
cidade = []
for _ in range(num_cidades):
cidade.append(0)
matriz_adj.append(cidade)
# Preenche a distância entre as cidades
for i in range(num_cidades):
for j in range(num_cidades):
if i != j:
aleatorio = randint(dist_min, dist_max)
matriz_adj[i][j] = aleatorio
matriz_adj[j][i] = aleatorio
# Exibe grafo gerado
print()
print(matriz_adj)
# Salva o grafo gerado em um arquivo de texto
arq = open("grafo_{}_cidades.txt".format(num_cidades), "w")
arq.write(str(matriz_adj))
print("\n---> Arquivo {} criado no diretório atual.".format(arq.name))
arq.close()
return matriz_adj
#---------------------------------------------------------------------------------------------------
# Executa função geradora
gera_grafo(30, 1, 100)