Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tratteo/eqdr
EQDR: Elite Quantum Diffusion Recombination. M.Sc. Computer Science thesis: Adapting Grover's Quantum Search algorithm to multimodal fitness based optimization problems
https://github.com/tratteo/eqdr
genetic-algorithm quantum-computing quantum-mechanics quantum-search
Last synced: about 15 hours ago
JSON representation
EQDR: Elite Quantum Diffusion Recombination. M.Sc. Computer Science thesis: Adapting Grover's Quantum Search algorithm to multimodal fitness based optimization problems
- Host: GitHub
- URL: https://github.com/tratteo/eqdr
- Owner: tratteo
- Created: 2023-05-01T14:10:32.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-21T12:20:28.000Z (12 months ago)
- Last Synced: 2024-12-22T00:18:37.069Z (about 2 months ago)
- Topics: genetic-algorithm, quantum-computing, quantum-mechanics, quantum-search
- Language: Python
- Homepage:
- Size: 2.69 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Elite Quantum Diffusion Recombination
Adapting Grover's Quantum Search algorithm to fitness based multimodal optimization problems.
Devising a novel recombination procedure for a hybrid Quantum Evolutionary Algorithm.**Document**: [EQDR: an Elite Quantum Diffusion Recombination procedure](https://github.com/tratteo/eqdr/blob/main/eqdr.pdf)
## Execute
### Dependencies
```sh
pip install -r requirements.txt
```### Run example
```sh
python run.py
```#### Running custom experiments
```python
# Experiment name
experiment_name = "rastrigin"# Common parameters
size = 8
fitness = {
"function": "rastrigin",
"threshold": 1e-3,
"target": 0,
}
oracle = {
"operator": "pattern",
"expression": "**001000",
}
lmbd = 1.2# Run experiments, each identified by its instance_name. Results will be saved in > results/_.csv
# Read the eqdr.pdf thesis file to know the different parameters
execute_eqdr_experiment(
experiment_name,
[
{
"name": "eqdr_rcd",
"config": {
"size": size,
"lambda": lmbd,
"iterations": iterations,
"fitness": fitness,
"oracle": oracle,
"recombination": {
"enabled": True,
"k_out": 12,
"prob": 0.6,
"gamma": {
"function": "gaussian",
"alpha": 0.5,
},
"type": "contribution",
"mutate_prob": 0.3,
"mutate_factor": 0.2,
},
},
},
{
"name": "eqdr_spd",
"config": {
"size": size,
"lambda": lmbd,
"iterations": iterations,
"fitness": fitness,
"oracle": oracle,
"recombination": {
"k_out": 12,
"prob": 0.6,
"type": "proportional",
"uniform_accuracy": 0.75,
"enabled": True,
"mutate_prob": 0.3,
"mutate_factor": 0.2,
},
},
},
{
"name": "eqdr_ud",
"config": {
"size": size,
"lambda": lmbd,
"iterations": iterations,
"fitness": fitness,
"oracle": oracle,
"recombination": {
"k_out": 12,
"prob": 0.6,
"uniform_accuracy": 0.75,
"type": "uniform",
"enabled": True,
"mutate_prob": 0.3,
"mutate_factor": 0.2,
},
},
},
],
)
```