Q-Score#

%load_ext autoreload
%autoreload 2

from iqm.benchmarks.optimization.qscore import *
import random

Choose (or define) a backend#

backend = "fakeadonis"
#backend = "fakeapollo"
#backend = "garnet"
#backend = "deneb"
#backend = "pyrite"

Set IQM Token if using Resonance.#

import os
os.environ["IQM_TOKEN"] = "XXXXXXXXXXXXXX"

Qscore Configuration#

EXAMPLE_QSCORE = QScoreConfiguration(
    num_instances = 100,
    num_qaoa_layers= 1,
    shots = 10000,
    calset_id=None, # calibration set ID, default is None
    min_num_nodes =  2,
    max_num_nodes= None, # put it to run for all the node sizes
    use_virtual_node = True,
    use_classically_optimized_angles = True,
    choose_qubits_routine = "custom",
    custom_qubits_array=[
                    [2],
                    [2, 0],
                    [2, 0, 1],
                    [2, 0, 1, 3],
                    [2, 0, 1, 3, 4]],
    seed = random.randint(1, 999999),
    REM = True,
    mit_shots=1000,
    )

Run the experiment#

benchmark_qscore = QScoreBenchmark(backend, EXAMPLE_QSCORE)
run0_qscore = benchmark_qscore.run()

Perform Analysis#

result0_qscore = benchmark_qscore.analyze()
result0_qscore.observations
result0_qscore.plot_all()