{"id":50658952,"url":"https://github.com/jessicapachecoj/ai-pathfinding-algorithms-analysis","last_synced_at":"2026-06-08T01:06:45.999Z","repository":{"id":325394563,"uuid":"1101008352","full_name":"jessicapachecoj/ai-pathfinding-algorithms-analysis","owner":"jessicapachecoj","description":"Algoritmos de Otimização e Busca em Grafos. Análise comparativa entre A*, BFS e DFS para roteamento eficiente.","archived":false,"fork":false,"pushed_at":"2025-11-21T04:16:35.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-21T06:16:32.804Z","etag":null,"topics":["algoritmos","bfs-algorithm","ia","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jessicapachecoj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-21T04:10:02.000Z","updated_at":"2025-11-21T05:01:53.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jessicapachecoj/ai-pathfinding-algorithms-analysis","commit_stats":null,"previous_names":["jessicapachecoj/ai-pathfinding-algorithms-analysis"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/jessicapachecoj/ai-pathfinding-algorithms-analysis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jessicapachecoj%2Fai-pathfinding-algorithms-analysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jessicapachecoj%2Fai-pathfinding-algorithms-analysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jessicapachecoj%2Fai-pathfinding-algorithms-analysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jessicapachecoj%2Fai-pathfinding-algorithms-analysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jessicapachecoj","download_url":"https://codeload.github.com/jessicapachecoj/ai-pathfinding-algorithms-analysis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jessicapachecoj%2Fai-pathfinding-algorithms-analysis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34043826,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-07T02:00:07.652Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algoritmos","bfs-algorithm","ia","python"],"created_at":"2026-06-08T01:06:45.496Z","updated_at":"2026-06-08T01:06:45.991Z","avatar_url":"https://github.com/jessicapachecoj.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🗺️ AI-Pathfinding-Algorithms-Analysis\n\n**Foco:** Implementação e análise comparativa dos principais algoritmos de busca em grafos (**A\\***, **BFS** e **DFS**) aplicados à simulação de rotas rodoviárias entre as capitais brasileiras. Demonstra proficiência em algoritmos de otimização e estruturas de dados.\n\n---\n\n## 1. 📖 Contexto e Propósito do Projeto\n\nEste projeto resolve o desafio de encontrar o **caminho mais eficiente** entre dois pontos em um grafo complexo, simulando a rede viária do Brasil. O objetivo é **comparar a performance, a distância percorrida e o esforço computacional** (operações) de três métodos de busca distintos.\n\nO trabalho comprova o domínio sobre:\n\n- **Estruturas de Dados:** Uso de Grafos (para o mapa), Filas (para BFS), Pilhas (para DFS) e Filas de Prioridade (para A\\*).\n- **Inteligência Artificial:** Aplicação e ajuste de heurísticas (Busca A\\*) para guiar a busca e otimizar o resultado.\n- **Análise de Performance:** Quantificação e comparação da eficiência algorítmica entre métodos cegos (BFS/DFS) e informados (A\\*).\n\n---\n\n## 2. 🏗️ Arquitetura e Componentes Chave\n\nO sistema é construído em **Python** e opera sobre um grafo pré-definido.\n\n### 🇧🇷 Grafo de Conexões (Mapa do Brasil)\n- O mapa é representado por um **dicionário**, onde as chaves são as capitais e os valores são dicionários com **vizinhos** e as **distâncias rodoviárias** entre eles (arestas ponderadas).\n- Inclui as **coordenadas geográficas** (latitude e longitude) de cada capital, essenciais para o cálculo da **heurística A\\***.\n\n### 🧠 Algoritmos de Busca\n- **Busca em Largura (BFS):** Garante a menor quantidade de passos, sendo ótimo em grafos com pesos uniformes. Utiliza `deque` (Fila).  \n- **Busca em Profundidade (DFS):** Prioriza a profundidade da busca. Implementado de forma iterativa utilizando Pilha.  \n- **Algoritmo A\\*:** Busca informada que usa uma **função heurística** para determinar o caminho de menor custo total. Utiliza `heapq` (Fila de Prioridade).\n\n---\n\n## 3. 🎯 Estratégias e Heurísticas\n\nO diferencial do projeto está na **implementação e avaliação da heurística**:\n\n### Heurística Utilizada\n- A heurística para o Algoritmo **A\\*** é a **Distância em Linha Reta** (ou **Haversine Distance**), calculada a partir das coordenadas geográficas.\n- **Cálculo:** A função `distancia_entre_cidades` usa a fórmula de Haversine para estimar a distância real mais próxima em linha reta (**h(n)**), garantindo que a heurística seja **admissível** (nunca superestima o custo real).\n\n### Função de Avaliação (A\\*)\n- **f(n) = g(n) + h(n)**\n  - **g(n):** Custo real do caminho percorrido (distância rodoviária).  \n  - **h(n):** Custo estimado até o destino (distância em linha reta).\n\n---\n\n## 4. 📊 Resultados e Análise Comparativa\n\nO programa gera saídas que facilitam a **comparação técnica**:\n\n- **Saídas por Método:** Exibe o caminho completo, a distância total percorrida e o número de operações (cidades visitadas/expandidas).\n- **Tabela de Comparação:** Apresenta um resumo lado a lado para avaliar:\n  - **Otimização de Custo:** A\\* é mais eficiente em encontrar o caminho de menor distância rodoviária.\n  - **Eficiência Temporal:** Comparativo do número de operações entre os três métodos.\n  - **Completude:** Verifica se o caminho pode ser alcançado, mesmo com a busca cega (BFS/DFS).\n\n---\n\n## 5. 🛠️ Tecnologias e Ferramentas\n\n- **Linguagem:** Python (foco em legibilidade e eficiência algorítmica).  \n- **Bibliotecas:**  \n  - `heapq` → Fila de Prioridade do A\\*  \n  - `collections.deque` → Fila do BFS  \n  - `math` → Função Haversine  \n- **Conceitos de IA:** Grafos, Heurísticas Admissíveis, Algoritmos de Busca.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjessicapachecoj%2Fai-pathfinding-algorithms-analysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjessicapachecoj%2Fai-pathfinding-algorithms-analysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjessicapachecoj%2Fai-pathfinding-algorithms-analysis/lists"}