

下記のサイトを参考にIBMQiskitのチュートリアルを動かしています。  
ソース自体は何も変更していません。  
<https://github.com/qulacs/quantum-native-
dojo/blob/933f701ecf07ee2d3360be2af70fe7a7c46926c1/notebooks/3.2_Qiskit_IBMQ.ipynb>

Google colabで実行しているのですが、実行後に下記の部分でエラーが出ます。

**ソースコード**

[code]

    #least busyだったbackendを選ぶ
    backend_sim = backend_lb
    
    #量子回路qcを指定したバックエンド(backend_sim)で4096回実行する。
    result = execute(qc, backend_sim, shots=4096).result()
    
[/code]

**エラーメッセージ**

[code]

    TranspilerError: 'Number of qubits (2) in circuit0 is greater than maximum (1) in the coupling_map'
    
[/code]

このエラーの解決方法が分かりません、教えていただけないでしょうか。


CC BY-SA 4.0
2019-12-12T05:48:22.290
61365
2020-11-03T10:26:18.080
2020-11-03T10:26:18.080
37042
question
python quantum-computing
IBM、Qiskitに関して


こちらで試してみると、同じエラーが発生します。その際の `backend_lb` は `ibmq_armonk` になります。

[code]

    >>> backend_lb = least_busy(provider.backends(simulator=False, operational=True))
    >>> backend_lb
    <IBMQBackend('ibmq_armonk') from IBMQ(hub='ibm-q', group='open', project='main')>
    
[/code]

`ibmq_armonk` の qubit数 は `1` なので、量子ゲートの `coupling map` は以下の様になっています。

[code]

    >>> backend_lb.configuration().n_qubits
    1
    >>> list(map(lambda x: x.coupling_map, backend_lb.configuration().gates))
    [[[0]], [[0]], [[0]], [[0]]]
    
[/code]

これでは 2 qubit数の計算をすることはできません。。。

> TranspilerError: 'Number of qubits (2) in circuit0 is greater than maximum
> (1) in the coupling_map'

したがって、qubit数が `2` 以上のバックエンドを選ぶ必要があります。

[code]

    >>> list(map(lambda b: print('{:>20}: {:>2}'
    .format(b.name(), b.configuration().n_qubits)), provider.backends()))
     ibmq_qasm_simulator: 32
                  ibmqx2:  5
       ibmq_16_melbourne: 14
               ibmq_vigo:  5
            ibmq_ourense:  5
             ibmq_london:  5
         ibmq_burlington:  5
              ibmq_essex:  5
             ibmq_armonk:  1
    
[/code]

`ibmq_qasm_simulator` と `ibmq_armonk` 以外であれば問題ないかと思います。


CC BY-SA 4.0
2019-12-12T10:55:06.683
61381
2019-12-12T10:55:06.683
61365
answer