{"id":22668622,"url":"https://github.com/lanl/juliqaoa.jl","last_synced_at":"2025-10-06T22:48:51.636Z","repository":{"id":207252146,"uuid":"718781879","full_name":"lanl/JuliQAOA.jl","owner":"lanl","description":"A fast, flexible package for simulating the Quantum Alternating Operator Ansatz","archived":false,"fork":false,"pushed_at":"2025-10-04T20:45:09.000Z","size":424,"stargazers_count":18,"open_issues_count":3,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-10-04T21:25:59.000Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://lanl.github.io/JuliQAOA.jl/","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lanl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2023-11-14T19:39:45.000Z","updated_at":"2025-09-12T21:13:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"6f7e2f2f-a922-4b1d-ae91-3333f546b218","html_url":"https://github.com/lanl/JuliQAOA.jl","commit_stats":null,"previous_names":["lanl/juliqaoa.jl"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lanl/JuliQAOA.jl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanl%2FJuliQAOA.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanl%2FJuliQAOA.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanl%2FJuliQAOA.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanl%2FJuliQAOA.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lanl","download_url":"https://codeload.github.com/lanl/JuliQAOA.jl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanl%2FJuliQAOA.jl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278692910,"owners_count":26029405,"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","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"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":[],"created_at":"2024-12-09T15:16:00.930Z","updated_at":"2025-10-06T22:48:51.626Z","avatar_url":"https://github.com/lanl.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JuliQAOA\n\nA fast, flexible package for simulating the Quantum Alternating Operator Ansatz (QAOA).\n\n## MPS-JuliQAOA\n\nIf you are interested in using MPS-JuliQAOA you can find it [here](https://github.com/lanl/JuliQAOA.jl/tree/mps).\n\n## Documentation\n\nPlease see our full documentation [here](https://lanl.github.io/JuliQAOA.jl/dev/).\n\n## Installation\n\nThe latest stable release of JuliQAOA can be installed using the Julia package manager with\n\n```julia\njulia\u003e import Pkg\njulia\u003e Pkg.add(url=\"https://github.com/lanl/JuliQAOA.jl\")\n```\nor \n```julia\njulia\u003e # hit the `]` button to enter the package manager\n(@v1.9) pkg\u003e add https://github.com/lanl/JuliQAOA.jl\n```\n\n## Usage\n\nThe core functionality of JuliQAOA is to take in a set of angles \n${\\beta_i, \\gamma_i}$, a mixer $H_M$, and a cost function $H_C$, and return the \nstatevector\n\n```math\n|\\psi(\\beta, \\gamma)\\rangle = e^{-i \\beta_p H_M} e^{-i \\gamma_p H_C} \\dots e^{-i \\beta_1 \nH_M} e^{-i \\gamma_1 H_C} |\\psi_0\\rangle.\n```\n\nHere is a simple example for a 6-qubit MaxCut problem:\n\n```julia\nusing JuliQAOA, Graphs\n\nn = 6\n\n# 3 rounds with random angles\np = 3\n# angles[1:p] = betas, angles[p+1:end] = gammas\nangles = rand(2*p)\n\n# transverse field mixer\nmixer = mixer_x(n) \n\n# calculate the MaxCut cost function over all basis states on a random G(n,p) graph\ng = erdos_renyi(n, 0.5)\nobj_vals = [maxcut(g, x) for x in states(n)]\n\n# calculate the statevector (with |ψ0⟩ = uniform superposition over all states)\nstatevector(angles, mixer, obj_vals)\n```\n\nThe statevector can then be used to calculate other quantities of interest, e.g. the \nexpectation value of ``H_C`` or ground state probability.\n\n## Contributing\n\nPlease report any issues, bugs, feature requests, suggestions for improvement, etc., via the\nGithub **[issue tracker](https://github.com/lanl/JuliQAOA.jl/issues)**. \n\nThe primary developer of this package is John Golden ([email](mailto:golden@lanl.gov), [github](https://github.com/johngolden)). \n\n## License\n\nThis software is provided under a BSD license with a \"modifications must be indicated\"\nclause. See the `LICENSE` file for the full text. \n\n**LANL C Number: C22038**\n\n## Alternatives\n\nQAOA can be simulated in general-purpose quantum simulators, e.g. \n[Qiskit](https://qiskit.org/documentation/stable/0.40/tutorials/algorithms/05_qaoa.html) \nand [Pennylane](https://pennylane.ai/qml/demos/tutorial_qaoa_intro/), however they will be\nsignificantly slower.\n\n[QAOA.jl](https://github.com/FZJ-PGI-12/QAOA.jl) is a circuit-based QAOA simulator for\nJulia. [QOKit](https://github.com/jpmorganchase/QOKit/tree/main) is a Python package which\nuses many of the same basic ideas as JuliQAOA, in particular precomputation and caching of\nthe cost function terms. It is currently more geared towards running highly parallelized \nsimulations on large computer clusters.\n\n## Citation\n\nIf you find JuliQAOA helpful in your work, please cite\n\n```bibtex\n@inproceedings{10.1145/3624062.3624220, \n    author = {Golden, John and Baertschi, Andreas and O'Malley, Dan and Pelofske, Elijah and Eidenbenz, Stephan}, \n    title = {JuliQAOA: Fast, Flexible QAOA Simulation},\n    year = {2023}, \n    isbn = {9798400707858},\n    publisher = {Association for Computing Machinery}, \n    address = {New York, NY, USA}, \n    url = {https://doi.org/10.1145/3624062.3624220}, \n    doi = {10.1145/3624062.3624220},\n    booktitle = {Proceedings of the SC '23 Workshops of The International Conference on High Performance Computing, Network, Storage, and Analysis}, \n    pages = {1454–1459}, \n    numpages = {6}, \n    location = {Denver, CO, USA}, \n    series = {SC-W '23} }\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flanl%2Fjuliqaoa.jl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flanl%2Fjuliqaoa.jl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flanl%2Fjuliqaoa.jl/lists"}