# QPU Predictive Simulator Pilot

## Scope

- 목적: 작은 QAOA Max-Cut 회로에서 실제 QPU counts를 더 잘 예측하는 lightweight simulator 방향을 평가한다.
- 새 QPU job은 실행하지 않았고, 저장된 Runtime job 결과와 layout/calibration metadata만 사용한다.
- backends: ibm_kingston, ibm_marrakesh
- QPU jobs: 4 (d8a6rmop0eas73dpfntg, d8a6tq9789is73945510, d8a6tvdg7okc73epghh0, d8aprj2vnmpc73bqvnag)
- selectors: noisy_expected, optimizer, robust
- 해석: exploratory baseline. 이 결과만으로 범용 QPU simulator claim을 하면 안 된다.

## Models

- `ideal_statevector`: noise 없이 QAOA statevector distribution을 사용한다.
- `fixed_final_noise`: 모든 회로에 같은 final depolarizing/readout noise를 적용한다 (channel=0.080, readout=0.040).
- `mean_readout_only`: active physical qubit의 평균 readout error만 independent bit-flip으로 적용한다.
- `hardware_error_proxy`: calibrated 1Q/2Q gate-error load를 uniform mixing strength로 변환한 뒤 평균 readout error를 적용한다.

## Main Result

분포 거리 기준으로는 `hardware_error_proxy`가 mean TVD 0.046070로 가장 낮다. QPU E[C] 절대오차 기준으로는 `hardware_error_proxy`가 0.064934로 가장 낮다.

하지만 selector winner 예측 기준으로는 최고 모델도 0/4 jobs만 맞췄다. 즉 현재 첫 버전은 QPU counts의 calibration을 개선하는 출발점이지, winner ranking을 충분히 해결한 시뮬레이터는 아니다.

## Summary

| model | cases | mean abs E[C] error | mean abs success error | mean TVD | mean Hellinger | dominant match | E[C] winner match | success winner match |
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| fixed_final_noise | 12 | 0.288474 | 0.145662 | 0.162489 | 0.159611 | 7/12 | 0/4 | 0/4 |
| hardware_error_proxy | 12 | 0.064934 | 0.032507 | 0.046070 | 0.060103 | 5/12 | 0/4 | 0/4 |
| ideal_statevector | 12 | 0.353833 | 0.162247 | 0.162247 | 0.256859 | 7/12 | 0/4 | 0/4 |
| mean_readout_only | 12 | 0.301567 | 0.136211 | 0.136211 | 0.181636 | 7/12 | 0/4 | 0/4 |

## Winner Prediction

| backend | job id | model | predicted E[C] winner | QPU E[C] winner | E[C] match | predicted success winner | QPU success winner | success match |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| ibm_marrakesh | d8a6rmop0eas73dpfntg | fixed_final_noise | optimizer | noisy_expected | no | optimizer | noisy_expected | no |
| ibm_marrakesh | d8a6tq9789is73945510 | fixed_final_noise | optimizer | robust | no | optimizer | robust | no |
| ibm_marrakesh | d8a6tvdg7okc73epghh0 | fixed_final_noise | optimizer | noisy_expected | no | optimizer | noisy_expected | no |
| ibm_kingston | d8aprj2vnmpc73bqvnag | fixed_final_noise | optimizer | noisy_expected | no | optimizer | noisy_expected | no |
| ibm_marrakesh | d8a6rmop0eas73dpfntg | hardware_error_proxy | robust | noisy_expected | no | optimizer | noisy_expected | no |
| ibm_marrakesh | d8a6tq9789is73945510 | hardware_error_proxy | optimizer | robust | no | optimizer | robust | no |
| ibm_marrakesh | d8a6tvdg7okc73epghh0 | hardware_error_proxy | optimizer | noisy_expected | no | optimizer | noisy_expected | no |
| ibm_kingston | d8aprj2vnmpc73bqvnag | hardware_error_proxy | optimizer | noisy_expected | no | optimizer | noisy_expected | no |
| ibm_marrakesh | d8a6rmop0eas73dpfntg | ideal_statevector | optimizer | noisy_expected | no | optimizer | noisy_expected | no |
| ibm_marrakesh | d8a6tq9789is73945510 | ideal_statevector | optimizer | robust | no | optimizer | robust | no |
| ibm_marrakesh | d8a6tvdg7okc73epghh0 | ideal_statevector | optimizer | noisy_expected | no | optimizer | noisy_expected | no |
| ibm_kingston | d8aprj2vnmpc73bqvnag | ideal_statevector | optimizer | noisy_expected | no | optimizer | noisy_expected | no |
| ibm_marrakesh | d8a6rmop0eas73dpfntg | mean_readout_only | optimizer | noisy_expected | no | optimizer | noisy_expected | no |
| ibm_marrakesh | d8a6tq9789is73945510 | mean_readout_only | optimizer | robust | no | optimizer | robust | no |
| ibm_marrakesh | d8a6tvdg7okc73epghh0 | mean_readout_only | optimizer | noisy_expected | no | optimizer | noisy_expected | no |
| ibm_kingston | d8aprj2vnmpc73bqvnag | mean_readout_only | optimizer | noisy_expected | no | optimizer | noisy_expected | no |

## Interpretation

Hardware proxy가 ideal/simple-noise보다 QPU counts 분포에 가까워진다면, 새 연구의 핵심 가설은 `backend metadata를 반영한 시뮬레이터가 simulator-only baseline보다 QPU outcome을 더 잘 calibration한다`가 된다.

다만 winner ranking이 개선되지 않으면 논문의 결론은 더 좁아진다. 이 경우 `분포 calibration은 개선되지만 selector ranking까지 예측하려면 routing, crosstalk, coherent error, calibration drift, shot noise를 더 모델링해야 한다`고 써야 한다.

## Next Validation

1. 현재 proxy 식과 scale을 고정하고 추가 QPU job 전에는 바꾸지 않는다.
2. `ibm_kingston`과 `ibm_marrakesh`에서 같은 square p=2 job을 반복한다.
3. 새 job에서는 mean TVD, E[C] MAE, success MAE, winner accuracy를 out-of-sample로만 평가한다.
4. low-depth/hardware-aware selector와 predictive simulator를 분리해 비교한다.
