``reformat_parameters()`` method enables initial_state in list format

Aperta
#700 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
45/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
numpy, python
Ambito
api, backend

Direzione di ricerca

Inizia da dwave/system/composites/embedding.py, riga 293, e confronta la gestione di initial_state con la documentazione collegata di solver-parameters. Determina il formato accettato previsto e il comportamento di validazione, quindi aggiorna l’implementazione e la documentazione pertinenti in modo che concordino e che il caso di lista non valido fornito sia coperto.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
Python
Stelle
63
Fork
44
Merge medio
5g 11h
PR unite (30g)
2

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di dwavesystems/dwave-cloud-client

Tutte le issue di dwavesystems/dwave-cloud-client

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.