コード例 #1
0
ファイル: graph.py プロジェクト: gabriel-lfs/grafos-T1
    def adjacency_list(self):
        memory_usage, adjacency_list = self.__adjacency_list()

        filename = create_file_audit('adjacency_list')

        with open(filename, 'w+') as f:
            f.write(f'Uso de memória: {memory_usage / 1024 / 1024} MB\n\n')
            f.write('Lista de adjacência:\n\n')
            [f.write(f'{key} -> {value}') for key, value in adjacency_list.items()]
コード例 #2
0
ファイル: graph.py プロジェクト: gabriel-lfs/grafos-T1
    def adjacency_matrix(self):
        memory_usage, matrix = self.__adjacency_matrix()
        filename = create_file_audit('adjacency_matrix')

        with open(filename, 'w+') as f:
            f.write(f'Uso de memória: {memory_usage /1024 / 1024} MB\n\n')
            f.write('Matriz de adjacência:\n\n')
            [f.write(f'{line}\n') for line in matrix]

        print(f'\n\narquivo {filename} criado.')
コード例 #3
0
ファイル: graph.py プロジェクト: gabriel-lfs/grafos-T1
    def report(self):
        sequences = {title: len(item.relation_titles) for title, item in self.__vertexes.items()}
        edges_amount = int(sum(sequences.values()) / 2)
        vertexes_amount = len(self.__vertexes)

        filename = create_file_audit('report')
        with open(filename, 'w+') as f:
            f.write(f'O grafo contém: {vertexes_amount} vértices com {edges_amount} arestas.\n\n')
            f.write('Sequências:\n')
            for name, amount in sequences.items():
                f.write(f'O vértice {name} contém um grau de {amount}.\n')

        print(f'\n\narquivo {filename} criado.')
コード例 #4
0
ファイル: graph.py プロジェクト: gabriel-lfs/grafos-T1
    def dfs(self, start_vertex_title=1):
        start_vertex = self.__vertexes.get(start_vertex_title)

        if not start_vertex:
            print("\n\nVértice inexistente.")
            return

        start_time = datetime.now()

        self.__dfs(deque([*self.__vertexes.keys(), start_vertex_title]))

        end_time = datetime.now()

        filename = create_file_audit('dfs')

        self.__create_search_file(start_time, end_time, filename)
コード例 #5
0
ファイル: graph.py プロジェクト: gabriel-lfs/grafos-T1
    def bfs(self, start_vertex=1):

        if not self.__vertexes.get(start_vertex):
            print("\n\nVértice inexistente.")
            return

        search_queue = Queue()

        self.__vertexes[start_vertex].discovery_time = 0

        search_queue.put(start_vertex)

        start_time = datetime.now()
        self.__bfs(search_queue)
        end_time = datetime.now()

        filename = create_file_audit('bfs')

        self.__create_search_file(start_time, end_time, filename)
コード例 #6
0
    def search(self, beginning_vertex, end_vertex, heuristic):
        self.tree = Tree(Node(self.vertexes[beginning_vertex]))

        found_vertex = self.__search(end_vertex, heuristic)
        item = found_vertex

        path = ''

        while item is not None:
            path = f'\n{item.value} {path}'
            item = item.parent

        output = f"Arvore de busca:\n\n{self.tree}\n\nCaminho percorrido:\n{path}"

        print(output)
        filename = create_file_audit('A_Star')

        open(filename, 'w+').write(output)

        print(f'\n\nArquivo {filename} criado.')