Closed KowerKoint closed 2 years ago
https://github.com/Qulacs-Osaka/qulacs-osaka/runs/6486600889?check_suite_focus=true 早速落ちてますね…これでも不安定テストが増えたことになってしまいました…
関連: #310
早速落ちてますね…これでも不安定テストが増えたことになってしまいました…
ちょっと見てみます。
@KowerKoint 自分の環境では、7/10ぐらいの結構な頻度で失敗になっちゃいますね。。
テスト内容を教えてください。ロジックを見た限りでは以下のような事をしていると思います。
セットする基底を増やして足したからと言って、サンプリング結果のindexが大きい方が 必ず大きいとは言えないと思います。
かと言って、よいテスト方法が思いつくわけではないですが。。 ざっと平均とか分散とか取って見る感じですかね。。
足し込むときに係数に√2,√3,…を付けてるので各基底の観測確率は1:2:3:4:…:10になってます それでも9:10なんかは逆転する確率が結構高そうなので指数関数的に係数を増やしたほうが良かったなと今思っています
足し込むときに係数に√2,√3,…を付けてるので各基底の観測確率は1:2:3:4:…:10になってます
なるほど!ありがとうございます。
それでも9:10なんかは逆転する確率が結構高そうなので指数関数的に係数を増やしたほうが良かったなと今思っています
試してみてください!
Samplingにおいては1から5までの基底状態を1:2:4:8:16の割合で混ぜることにしました。これなら流石に基本的に通るはずです。
ありがとうございます! LGTM です。
レビュー対応しました
get_marginal_probability()のテスト、下のものと被ってたので追加をやめました。
QuantumStateのカバレッジを見て必要だと思ったget_Haar_random_state(), samling(), get_zero_probability(), get_marginal_probability()に対するテストを書きました(get_marginal_probability()はもとからあったことにあとから気づいたので不要なら消します)
GetHaarRandomState
乱数生成をきっちり統計的に検定するには実行時間がかかる(かつ私が書ける自信がない)ので
Sampling
これも乱数の検定が難しいので、見つかる確率が1倍、2倍、…の状態を用意して、単調増加になること、明らかに観測されない状態をサンプリングしないことを確認しました
GetZeroProbability
Samlingと同じ状態を使って下位4ビット分の確率が手計算と一致することを確認しました