The StructuredSolver's reformat_parameters() method states that it "allows initial_state to be submitted as a dictionary mapping the qubits to their initial value" but due to this line
parameters['initial_state'] = {u: state[v]
for v, chain in embedding.items()
for u in chain}
when using an embedding composite (e.g., FixedEmbeddingComposite) you can set initial_state as any list.
sampleset = sampler.sample_ising({}, {(0,1): -1},
anneal_schedule=[[0.0, 1.0], [0.1, 0.95], [0.2, 0.95], [0.3, 1.0]],
reinitialize_state=True,
initial_state=[13, 32],
label="test initial 1",
num_reads=500)
This would be rejected were you to directly submit such a thing to the QPU:
>>> sampleset = qpu.sample_ising({}, {(0,1): -1}, anneal_schedule=[[0.0, 1.0], ...
SolverFailureError: Invalid length of initial_state
I'm not sure what the preferred behavior is but our documentation states "Specifies the initial classical state of all qubits. ... Provide (qubit, state) pairs..." so we should update the docs to what we want to enable and prevent initial states such as the above (initial_state=[13, 32]) from working.
The context is my finding the structure below being used and not understanding why it was working at first:
initial_state = ((1)**np.arange(N))
where N is the number of qubits in a ferromagnetic ring and `FixedEmbeddingComposite`` is used.
The StructuredSolver's
reformat_parameters()method states that it "allowsinitial_stateto be submitted as a dictionary mapping the qubits to their initial value" but due to this linewhen using an embedding composite (e.g.,
FixedEmbeddingComposite) you can setinitial_stateas any list.This would be rejected were you to directly submit such a thing to the QPU:
I'm not sure what the preferred behavior is but our documentation states "Specifies the initial classical state of all qubits. ... Provide (qubit, state) pairs..." so we should update the docs to what we want to enable and prevent initial states such as the above (
initial_state=[13, 32]) from working.The context is my finding the structure below being used and not understanding why it was working at first:
where
Nis the number of qubits in a ferromagnetic ring and `FixedEmbeddingComposite`` is used.