上周實驗出差分演化在QAOA上效果較好,這周推翻了,差分演化雖然只迭代了30次,但是實際上要跑2000多個量子電路。這個數(shù)量還是太多了,我得找點別的方法。這周主要是看各種文獻。
- 閱讀Genetic algorithms as classical optimizer for the Quantum Approximate Optimization Algorithm:遺傳算法在QAOA表現(xiàn)優(yōu)秀。
- 閱讀Energy landscapes for the quantum approximate optimization algorithm:QAOA的能量景觀中的局部極小值集中分布在全局最小值附近,值越小越近。basinhopping在QAOA表現(xiàn)優(yōu)秀。
- 閱讀Noise-induced barren plateaus in variational quantum algorithms:噪聲會導(dǎo)致貧瘠高原的產(chǎn)生
- 閱讀Quantum Approximate Optimization Algorithm: Performance, Mechanism, and Implementation on Near-Term Devices:在某些特定圖中,一種基于傅里葉變換的參數(shù)初始化方法可以將優(yōu)化次數(shù)由2^O(p)減少至O(poly(p))
- 閱讀Quantum Approximate Optimization via Learning-based Adaptive Optimization:一種基于信任域貝葉斯優(yōu)化的算法在QAOA問題表現(xiàn)出色。這篇文章是騰訊的,他們用的tensorcircuit應(yīng)該是對標qiskit的量子SDK,可以直接通過apikey調(diào)用騰訊的量子計算機,這個之后應(yīng)該會用到。
- 閱讀Surviving The Barren Plateau in Variational Quantum Circuits with Bayesian Learning Initialization:這篇也講了QAOA的貧瘠高原問題,他們提出了先用貝葉斯優(yōu)化確定大致位置,然后再用全局優(yōu)化算法。
看完這些我大概是串起來了:QAOA難以優(yōu)化的問題有兩個,(1)整個能量景觀里面充斥著大量O(p3)的貧瘠高原[3, 6]和一小撮聚集在一起極值點形成的盆地[2],要找到這個盆地就是第一個難點,要么通過遞歸由p=k-1的時候的最優(yōu)參數(shù)定位[4],要么用貝葉斯優(yōu)化[5, 6]。別的優(yōu)化算法最后都能找到這個盆地,但是貝葉斯迭代次數(shù)最小 (2)第二個難點是這個盆地里面很崎嶇,有大量極值點。如果在這一步還用貝葉斯優(yōu)化,就會卡在某個局部極值點出不來??梢杂眯湃斡蜇惾~斯,忽略在盆地以外的數(shù)據(jù)點,這樣貝葉斯優(yōu)化就會主動探索極值點以外,做到類似于跳出的效果[3]。更直接點就是用basinhopping[2]。差分演化還有遺傳算法效果都不錯[1],其實都是因為“突變”起到了跳出的作用。
這樣思路就清晰了:先用貝葉斯找一個初始點出來,然后剩下的用basinhopping。我下周先試一下這個,看看我推測的對不對。