Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| from app.schemas.visual_lesson import EvidenceClaim, EvidenceSource | |
| class GraphAlgorithmEvidenceResolver: | |
| async def resolve(self) -> tuple[list[EvidenceSource], list[EvidenceClaim]]: | |
| sources = [EvidenceSource(source_id="builtin:clrs-graph-search", origin="builtin", title="Introduction to Algorithms — Elementary Graph Algorithms and Single-Source Shortest Paths", excerpt="Canonical reference metadata for breadth-first search, depth-first search, Dijkstra's algorithm, and path reconstruction.", authority="canonical")] | |
| claims = [ | |
| EvidenceClaim(claim_id="graph-bfs", text="Breadth-first search explores an unweighted graph by increasing edge distance and therefore finds a minimum-hop path.", claim_type="standard_definition", support_level="canonical", source_ids=["builtin:clrs-graph-search"]), | |
| EvidenceClaim(claim_id="graph-dfs", text="Depth-first search follows one branch before backtracking and does not generally guarantee a shortest path.", claim_type="standard_definition", support_level="canonical", source_ids=["builtin:clrs-graph-search"]), | |
| EvidenceClaim(claim_id="graph-dijkstra", text="Dijkstra's algorithm returns shortest weighted paths when every edge weight is non-negative.", claim_type="standard_definition", support_level="canonical", source_ids=["builtin:clrs-graph-search"]), | |
| EvidenceClaim(claim_id="graph-astar", text="A* returns an optimal path when its heuristic is admissible; this visualization derives a lower-bound Euclidean heuristic from the graph's edge weights.", claim_type="derived_fact", support_level="derived", source_ids=["builtin:clrs-graph-search"]), | |
| ] | |
| return sources, claims | |