Skip to content

Commit 1b159b1

Browse files
committed
adicionar grafo de 20 vertices para teste
1 parent 8f975b5 commit 1b159b1

File tree

2 files changed

+53
-44
lines changed

2 files changed

+53
-44
lines changed

HamCyclePy - Brute Force.py

+21-43
Original file line numberDiff line numberDiff line change
@@ -35,49 +35,27 @@
3535
3:[0, 1, 1, 0, 1],
3636
4:[1, 1, 0, 1, 0] } '''
3737

38-
# Recebendo o grafo que representa os pontos de entregas do caminhao
39-
print("Informe a quantidade de pontos de entrega (vértices): ")
40-
vert = (int(input()))
41-
print(vert)
42-
# começando a perguntar as arestas dos vertices
43-
print("Certo. Diga agora as vias (arestas) de cada ponto de entrega (vertices) ")
44-
# variavel para guardar as ligações
45-
vertices = []
46-
lista_adjacencias = []
47-
for i in range(vert):
48-
''' esta lista contem os vertices, apenas para
49-
podermos utilizar a função zip mais a frente'''
50-
vertices.append(i)
51-
print(i)
52-
if(i == 0):
53-
print("As vias que saem da distribuidora (separados por espaço):")
54-
else:
55-
print("As vias que existem no ponto " + str((i)) + "(separados por espaço):")
56-
vias = input().split(" ")
57-
for s in range(len(vias)):
58-
vias[s] = int(vias[s])
59-
arestas = []
60-
for x in range(vert):
61-
arestas.append(0)
62-
63-
# neste for preparamos a lista que contem as informações
64-
# se há ligação entre os vertices ou nao
65-
# de forma x : [1,0,...,n] significa que o vertice x
66-
# tem ligação com 1 e com 2 não e assim por diante
67-
for j in vias:
68-
arestas[j] = 1
69-
print("arestas: " + str(arestas))
70-
lista_adjacencias.append(arestas)
71-
grafo = dict(zip(vertices, lista_adjacencias))
72-
73-
print("O grafo digitado possui as seguintes listas de adjacencias: ")
74-
for v in range(vert):
75-
print(str(v) + ":[", end='')
76-
for l in range(vert):
77-
print(str(grafo[v][l]) + str(", "), end='')
78-
print("]")
79-
80-
# grafo coletado e organizado
38+
grafo = { 0:[0,1,0,0,1,0,0,0,0,0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
39+
1:[1,0,1,0,0,0,0,0,0,0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
40+
2:[0,1,0,1,0,0,0,0,0,1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
41+
3:[0,0,1,0,1,0,0,1,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
42+
4:[1,0,0,1,0,1,0,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
43+
5:[0,0,0,0,1,0,1,0,0,0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
44+
6:[0,0,0,0,0,1,0,1,0,0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
45+
7:[0,0,0,1,0,0,1,0,1,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
46+
8:[0,0,0,0,0,0,0,1,0,1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],
47+
10:[0,0,1,0,0,0,0,0,1,0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
48+
11:[0,0,0,0,0,0,0,0,0,1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0],
49+
12:[0,1,0,0,0,0,0,0,0,0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0],
50+
13:[0,0,0,0,0,0,0,0,0,0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1],
51+
14:[1,0,0,0,0,0,0,0,0,0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0],
52+
15:[0,0,0,0,0,1,0,0,0,0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0],
53+
16:[0,0,0,0,0,0,0,0,0,0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1],
54+
17:[0,0,0,0,0,0,1,0,0,0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0],
55+
18:[0,0,0,0,0,0,0,0,1,0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0],
56+
19:[0,0,0,0,0,0,0,0,0,0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1],
57+
20:[0,0,0,0,0,0,0,0,0,0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0]
58+
}
8159

8260
# variavel para guardar a quantidade de vertices
8361
vert = grafo.__len__()

HamCyclePy_backtracking.py

+32-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Python program for solution of
22
# hamiltonian cycle problem
3+
import time
4+
import timeit
35

46
class Grafo():
57
def __init__(self, vert):
@@ -84,4 +86,33 @@ def inicializa(self):
8486
[0, 1, 0, 0, 1, 0, 1, 0],
8587
[0, 0, 1, 0, 0, 1, 0, 1],
8688
[0, 0, 0, 1, 1, 0, 1, 0]]
87-
g2.inicializa()
89+
g2.inicializa()
90+
91+
g3 = Grafo(20)
92+
#0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
93+
g3.grafo = [[0,1,0,0,1,0,0,0,0,0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
94+
[1,0,1,0,0,0,0,0,0,0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
95+
[0,1,0,1,0,0,0,0,0,1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
96+
[0,0,1,0,1,0,0,1,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
97+
[1,0,0,1,0,1,0,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
98+
[0,0,0,0,1,0,1,0,0,0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
99+
[0,0,0,0,0,1,0,1,0,0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
100+
[0,0,0,1,0,0,1,0,1,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
101+
[0,0,0,0,0,0,0,1,0,1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],
102+
[0,0,1,0,0,0,0,0,1,0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
103+
[0,0,0,0,0,0,0,0,0,1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0],
104+
[0,1,0,0,0,0,0,0,0,0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0],
105+
[0,0,0,0,0,0,0,0,0,0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1],
106+
[1,0,0,0,0,0,0,0,0,0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0],
107+
[0,0,0,0,0,1,0,0,0,0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0],
108+
[0,0,0,0,0,0,0,0,0,0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1],
109+
[0,0,0,0,0,0,1,0,0,0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0],
110+
[0,0,0,0,0,0,0,0,1,0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0],
111+
[0,0,0,0,0,0,0,0,0,0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1],
112+
[0,0,0,0,0,0,0,0,0,0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0]
113+
]
114+
115+
start = timeit.default_timer()
116+
g3.inicializa()
117+
end = timeit.default_timer()
118+
print("Tempo de execução %f" % (end - start))

0 commit comments

Comments
 (0)