{"id":24796294,"url":"https://github.com/matheussoranco/qiskit-dijkstra","last_synced_at":"2025-03-24T20:18:30.393Z","repository":{"id":268884652,"uuid":"905753349","full_name":"Matheussoranco/Qiskit-Dijkstra","owner":"Matheussoranco","description":"Qiskit Dijkstra adaptation","archived":false,"fork":false,"pushed_at":"2024-12-19T13:10:39.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-30T00:33:53.239Z","etag":null,"topics":["computer-science","python","qiskit","quantum-computing"],"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/Matheussoranco.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}},"created_at":"2024-12-19T13:02:50.000Z","updated_at":"2025-01-01T18:19:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"2333a319-ebaa-4245-898a-9b63fb69d254","html_url":"https://github.com/Matheussoranco/Qiskit-Dijkstra","commit_stats":null,"previous_names":["matheussoranco/qiskit-dijkstra"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matheussoranco%2FQiskit-Dijkstra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matheussoranco%2FQiskit-Dijkstra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matheussoranco%2FQiskit-Dijkstra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matheussoranco%2FQiskit-Dijkstra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Matheussoranco","download_url":"https://codeload.github.com/Matheussoranco/Qiskit-Dijkstra/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245343984,"owners_count":20599867,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["computer-science","python","qiskit","quantum-computing"],"created_at":"2025-01-30T00:32:30.852Z","updated_at":"2025-03-24T20:18:30.386Z","avatar_url":"https://github.com/Matheussoranco.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Qiskit-Dijkstra\nDijkstra's algorithm is a classic method for finding the shortest path between nodes in a graph. Translating Dijkstra to quantum computing requires reformulation, as quantum computing operates with qubits, superposed states, and quantum circuits, while Dijkstra is inherently sequential.\nChallenges in Adaptation\nThese are some of the problems i've encountered adapting the algorithm to a quantum state.\n\n    Sequentiality vs. Parallelism:\n        Dijkstra relies on sequential updates of minimum distances, whereas quantum computing is naturally parallel.\n        To \"adapt\" the algorithm, i needed to map the process to quantum operations.\n\n    Mathematical Operations:\n        Quantum computing works with unitary linear transformations and probabilistic measurements. Simulating comparisons, minimums and value updates requires specific translations.\n\n    Memory and States:\n        The state of the graph (distances, nodes visited) must be stored in qubits, which may require many qubits and deep circuits for larger simulations.\n\n    State Measurement and Destruction:\n        Measurement on the quantum computer collapses the quantum state, making it difficult to store lossless intermediates.\n\nMathematical Considerations\n\nSuperposition States:\n    For nn nodes, the initial state would be ∣ψ⟩=1n∑i=0n−1∣i⟩∣ψ⟩=n\n\n​1​∑i=0n−1​∣i⟩, where each node is represented by a quantum state.\n\nWeights as Rotation:\n I used rotations Ry(θ)Ry​(θ), where θ=2π⋅normalized weightθ=2π⋅normalized weight, to represent edge weights.\n\nSearch for the Minimum:\n    After measurement, the code analyzed the results to find the state with the lowest weight, interpreted as the shortest path.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatheussoranco%2Fqiskit-dijkstra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatheussoranco%2Fqiskit-dijkstra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatheussoranco%2Fqiskit-dijkstra/lists"}