ag-pom / QuantumComputingEvolutionaryAlgorithmDesign

A C++ program to both simulate a quantum computer and use parallel evolutionary techniques to design algorithms for it.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

QuantumComputingEvolutionaryAlgorithmDesign

Description

A C++ program to both simulate a quantum computer and use parallel evolutionary techniques to design algorithms for it. Inspired by the ideas in the following PhD thesis, but implemented entirely originally, http://theses.ucalgary.ca/jspui/bitstream/11023/2780/3/ucalgary_2016_zahedinejad_ehsan.pdf,.

Operation.

Any quantum algorithm can be represented by a finite set of quantum gates and their order of operation. The algorithm maps the complete set of quantum gates and their relative positions as a simple 'DNA', a generation of multiple random quantum algorithm 'DNA' are generated and compared to the desired output quantum state, the best members of this generation are bred (cut and joined together) and mutated (random 'DNA' changes) to create the next generation which is again evaluated.

Example of a 5-qbit algorithm 'DNA'
Alt text
Gate symbol key:
T: T
H: Hadamard
.- (+): CNOT
I: Identity (Blank)

About

A C++ program to both simulate a quantum computer and use parallel evolutionary techniques to design algorithms for it.


Languages

Language:Python 56.1%Language:C++ 42.4%Language:Shell 1.5%