/astar-project

projeto da disciplina de sistemas inteligentes sobre o algoritmo A*

Primary LanguagePython

astar-project

projeto da disciplina de sistemas inteligentes sobre o algoritmo A*

astar.py é o arquivo principal, nele possui a função A* e será usado na apresentação

functions.py é um arquivo que possui funções úteis que serão usadas no A*:

  • StationByIdx: função para pegar a linha específica da estação seguinte
  • Quicksort:
    • partition()
    • quicksort()

classes.py é um arquivo que possui as seguintes classes:

  • Node: classe que vai representar um nó da estação
    • name: atributo str que diz o nome da estação
    • line: atributo str que diz a cor da estação
    • idx: atributo int que diz o índice do nó nas matrizes de conexões
  • State: classe que vai representar os estados na fronteira do algoritmo
    • station: atributo Node que diz a estação do estado atual
    • g: atributo float que diz o peso do tempo gasto no caminho atual
    • h: atributo float que diz o tempo, em min, até a estação de destino, em linha reta
    • f: atributo float que representa função g+h
    • path: atributo list que armazena o nome das estações que indicam o caminho tomado até o estado atual
  • Tree: classe que representa o grafo que contém os nós (Node)
    • stations: atributo list que representa a lista de todos os nós do grafo
    • real_conect: atributo tuple que representará a matriz contendo as distâncias (em min) reais entre estações
    • conect: atributo tuple que representará a matriz contendo as distâncias (em min) diretas entre estações
    • frontier: atributo list que representa a fronteira atual de estados
    • frontGen: atributo int com o número da geração atual da fronteira
    • ndNames: atributo list com a lista dos nomes em str das estações
    • current_gen: atributo list com a lista de novos estados (só é usado no print)

dicts.py é um arquivo que possui:

  • dist_direct: matriz com as distâncias diretas (em min) entre estações
  • dist_real: matriz com as distâncias reais (em min) entre estações
  • lines: dict que conecta as estações e suas linhas

teste.py é um arquivo que é essencialmente a mesma coisa que astar.py, mas serve para fazer os testes de forma mais rápida

mapa.png é uma imagem do mapa recebido para o exercício