Skip to main content
IBM Quantum Platform

サンプルベース量子対角化(SQD)リリースノート


0.12.1

アップグレードの注意

  • Python 3.10 現在、最低限必要なバージョンです。 Python 3.9 のサポートは終了しました。

0.12.0

新機能

アップグレードの注意

非推奨のメモ

バグ修正


0.11.0

新機能

アップグレードの注意

バグ修正

  • qubit モジュールに影響する浮動小数点から整数への型変換を修正

0.10.0

アップグレードの注意

非推奨のメモ

  • の引数 avg_occupancies は、スピンアップとスピンダウンそれぞれの占有率を含む タプルでなければならない。 qiskit_addon_sqd.configuration_recovery.recover_configurations() への引数は、スピンアップとスピンダウンそれぞれの占有率を含む length-2 タプルでなければならない。

    古いフォーマット: array([occ_b_N, ..., occ_b_0, occ_a_N, ..., occ_a_0])

    新しいフォーマット: tuple(array([occ_a_0, ..., occ_a_N]), array([occ_b_0, ..., occ_b_N]))

バグ修正

  • からのエネルギー出力が不正確になるバグを修正した。 qiskit_addon_sqd.fermion.solve_fermion()spin_sq spin^2 から出力されるエネルギーが不正確になるバグを修正しました。

0.9.0

アップグレードの注意

バグ修正

  • のインデックス・エラーを修正。 qiskit_addon_sqd.configuration_recovery() ビット文字列の右半分のビットが、ビット文字列の左半分に関連付けられたオ リタルの占有率に関して反転していた。

  • pyscfは、インストールに失敗するWindowsの依存関係とはみなされなくなった。 しかし、ウィンドウズは依然として未サポートのプラットフォームである。


0.8.0

新機能

  • Python 3.9 のサポートを追加した。

  • 引数 rand_seed を取るすべての関数は、 numpy.random.Generator インスタンスも rand_seed として受け付けるようになった。

アップグレードの注意


0.7.0

バグ修正


0.6.0

アップグレードの注意

  • のキーワード引数として addresses を指定する。 qiskit_addon_sqd.fermion.solve_fermion()qiskit_addon_sqd.fermion.optimize_orbitals() はサポートされなくなった。 addresses しかし、この使い方は非推奨である。 ユーザーは、以下のように、部分空間を定義するビット列行列を、これらの関数の最初の位置引数として渡すことが推奨される。

    アップグレードするには、次のコードを変更します

    # DEPRECATED CODE
    from qiskit_addon_sqd.fermion import (
        bitstring_matrix_to_sorted_addresses,
        solve_fermion,
        optimize_orbitals,
    )
    
    bitstring_matrix = ...
    addresses = bitstring_matrix_to_sorted_addresses(bitstring_matrix, open_shell=open_shell)
    energy, coeffs, occs, spin = solve_fermion(
                                     addresses=addresses,
                                     hcore=hcore,
                                     eri=eri,
                                 )
    ...
    e_oo, rotation, occs_oo = optimize_orbitals(
                                  addresses=addresses,
                                  hcore=hcore,
                                  eri=eri,
                              )
    
    ### SHOULD BECOME ###
    
    # NEW CODE
    from qiskit_addon_sqd.fermion import solve_fermion, optimize_orbitals
    
    bitstring_matrix = ...
    energy, coeffs, occs, spin = solve_fermion(
                                     bitstring_matrix,
                                     hcore=hcore,
                                     eri=eri,
                                 )
    ...
    e_oo, rotation, occs_oo = optimize_orbitals(
                                  bitstring_matrix,
                                  hcore=hcore,
                                  eri=eri,
                              )

非推奨のメモ

  • qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses() 関数は廃止され、次のようになりました。 qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs(). これらの2つの関数の動作は、1つの重要な例外を除いて同じである。 qiskit_addon_sqd.fermion.bitstring_matrix_to_sorted_addresses() はコンフィギュレーションを tuple(spin_dn, spin_up) のように返すのに対し、 はコンフィギュレーションを のように返す、 qiskit_addon_sqd.fermion.bitstring_matrix_to_ci_strs() はコンフィギュレーションを tuple(spin_up, spin_dn) のように返す。

    移行するには

    from qiskit_addon_sqd.fermion import (
        bitstring_matrix_to_sorted_addresses,
        bitstring_matrix_to_ci_strs,
    )
    
    # DEPRECATED CODE
    bs_matrix = ...
    addr_dn, addr_up = bitstring_matrix_to_sorted_addresses(bs_matrix, open_shell=True)
    
    ### SHOULD BECOME ###
    
    # NEW CODE
    bs_matrix = ...
    ci_strs_up, ci_strs_dn = bitstring_matrix_to_ci_strs(bs_matrix, open_shell=True)
  • の引数 addressesqiskit_addon_sqd.fermion.solve_fermion()qiskit_addon_sqd.fermion.optimize_orbitals() は非推奨となり、 bitstring_matrix が使われるようになった。 その代わりに、ハミルトニアンを投影し対角化する部分空間を指定するビット列行列を渡す必要があります。 行列式の整数表現への変換は内部で行われる。

バグ修正


0.5.0

アップグレードの注意

  • その qiskit_addon_sqd.counts.generate_counts_bipartite_hamming(), qiskit_addon_sqd.subsampling.postselect_and_subsample()および qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight() では、 hamming_righthamming_left の引数をキーワード引数として指定する必要がある。 さらに、 samples_per_batchn_batches の引数は、キーワード引数として qiskit_addon_sqd.subsampling.postselect_and_subsample() への引数はキーワード引数として渡される。

    アップグレード

    from qiskit_addon_sqd.configuration_recovery import post_select_by_hamming_weight
    from qiskit_addon_sqd.subsampling import postselect_and_subsample
    from qiskit_addon_sqd.counts import generate_counts_bipartite_hamming
    
    counts = generate_counts_bipartite_hamming(num_samples, num_bits, num_elec_a, num_elec_b)
    
    ...
    
    bs_mat = post_select_by_hamming_weight(bs_mat_full, num_elec_a, num_elec_b)    
    
    ...
    
    batches = postselect_and_subsample(
        bs_mat,
        probs_arr,
        num_elec_a,
        num_elec_b,
        samples_per_batch,
        num_batches,
    )

    に変更すべきである

    from qiskit_addon_sqd.configuration_recovery import post_select_by_hamming_weight
    from qiskit_addon_sqd.subsampling import postselect_and_subsample
    from qiskit_addon_sqd.counts import generate_counts_bipartite_hamming
    
    counts = generate_counts_bipartite_hamming(num_samples, num_bits, hamming_right=num_elec_a, hamming_left=num_elec_b)
    
    ...
    
    bs_mat = post_select_by_hamming_weight(bs_mat_full, hamming_right=num_elec_a, hamming_left=num_elec_b)
    
    ...
    
    batches = postselect_and_subsample(
        bs_mat,
        probs_arr,
        hamming_right=num_elec_a,
        hamming_left=num_elec_b,
        samples_per_batch=samples_per_batch,
        num_batches=num_batches,
    )

0.4.0

前奏曲

これはマイナー・リリースであり、APIに小さな、しかし重要な、変更を加えるものである。 これらの変更により、APIの化学関数と非化学関数の両方を通して、アルファ電子とベータ電子の数を指定するパターンをより一貫したものにすることができる。

アップグレードの注意

  • その qiskit_addon_sqd.counts.generate_counts_bipartite_hamming(), qiskit_addon_sqd.subsampling.postselect_and_subsample()qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight() は、 hamming_left の引数の前に hamming_right の位置引数を取るようになった。

    アップグレード

    from qiskit_addon_sqd.configuration_recovery import post_select_by_hamming_weight
    from qiskit_addon_sqd.subsampling import postselect_and_subsample
    from qiskit_addon_sqd.counts import generate_counts_bipartite_hamming
    
    counts = generate_counts_bipartite_hamming(num_samples, num_bits, num_elec_b, num_elec_a)
    
    ...
    
    bs_mat = post_select_by_hamming_weight(bs_mat_full, num_elec_b, num_elec_a)    
    
    ...
    
    batches = postselect_and_subsample(
        bs_mat,
        probs_arr,
        num_elec_b,
        num_elec_a,
        samples_per_batch,
        n_batches,
    )

    に変更すべきである

    from qiskit_addon_sqd.configuration_recovery import post_select_by_hamming_weight
    from qiskit_addon_sqd.subsampling import postselect_and_subsample
    from qiskit_addon_sqd.counts import generate_counts_bipartite_hamming
    
    counts = generate_counts_bipartite_hamming(num_samples, num_bits, num_elec_a, num_elec_b)
    
    bs_mat = post_select_by_hamming_weight(bs_mat_full, num_elec_a, num_elec_b)
    
    ...
    
    batches = postselect_and_subsample(
        bs_mat,
        probs_arr,
        num_elec_a,
        num_elec_b,
        samples_per_batch,
        n_batches,
    )
このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。