Preparing the catalog and filters…Katalog ve filtreler hazırlanıyor…
Başlangıç kodu
module triangle_qaoa;
@seed(23);
param gamma: Angle = 0.7;
param beta: Angle = 0.4;
fn main() {
let q = qreg[3];
H(q[0]);
H(q[1]);
H(q[2]);
RZZ(q[0], q[1], gamma);
RZZ(q[1], q[2], gamma);
RZZ(q[0], q[2], gamma);
Rx(q[0], beta);
Rx(q[1], beta);
Rx(q[2], beta);
let cut = expect -0.5 Z(q[0]) Z(q[1]) -0.5 Z(q[1]) Z(q[2]) -0.5 Z(q[0]) Z(q[2]);
// The expected triangle cut is 1.5 + cut, so maximize this observable.
train {
objective: maximize cut;
optimizer: adam(lr = 0.15);
steps: 50;
}
return cut;
}Beklenen çıktı
Üç qubit graph node'larını encode eder
RZZ gate'leri üç edge'i encode eder
Train bloğu gamma ve beta'yı optimize eder
Exact triangle max cut 2'dir
Debug checklist
Üçgen kaynağını çalıştırın
Gamma ve beta geçmişini inceleyin
Tüm RZZ edge terimlerini bulun
En iyi bitstring'i maxCut=2 ile karşılaştırın
Genişletme görevi
p=2 ile dört-cycle kurup en az 0.9 approximation ratio hedefleyin.