上周實(shí)驗(yàn)出差分演化在QAOA上效果較好,這周推翻了,差分演化雖然只迭代了30次,但是實(shí)際上要跑2000多個(gè)量子電路。這個(gè)數(shù)量還是太多了,我得找點(diǎn)別的方法。這周主要是看各種文獻(xiàn)。
- 閱讀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:噪聲會(huì)導(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)該是對(duì)標(biāo)qiskit的量子SDK,可以直接通過apikey調(diào)用騰訊的量子計(jì)算機(jī),這個(gè)之后應(yīng)該會(huì)用到。
- 閱讀Surviving The Barren Plateau in Variational Quantum Circuits with Bayesian Learning Initialization:這篇也講了QAOA的貧瘠高原問題,他們提出了先用貝葉斯優(yōu)化確定大致位置,然后再用全局優(yōu)化算法。
看完這些我大概是串起來了:QAOA難以優(yōu)化的問題有兩個(gè),(1)整個(gè)能量景觀里面充斥著大量O(p3)的貧瘠高原[3, 6]和一小撮聚集在一起極值點(diǎn)形成的盆地[2],要找到這個(gè)盆地就是第一個(gè)難點(diǎn),要么通過遞歸由p=k-1的時(shí)候的最優(yōu)參數(shù)定位[4],要么用貝葉斯優(yōu)化[5, 6]。別的優(yōu)化算法最后都能找到這個(gè)盆地,但是貝葉斯迭代次數(shù)最小 (2)第二個(gè)難點(diǎn)是這個(gè)盆地里面很崎嶇,有大量極值點(diǎn)。如果在這一步還用貝葉斯優(yōu)化,就會(huì)卡在某個(gè)局部極值點(diǎn)出不來??梢杂眯湃斡蜇惾~斯,忽略在盆地以外的數(shù)據(jù)點(diǎn),這樣貝葉斯優(yōu)化就會(huì)主動(dòng)探索極值點(diǎn)以外,做到類似于跳出的效果[3]。更直接點(diǎn)就是用basinhopping[2]。差分演化還有遺傳算法效果都不錯(cuò)[1],其實(shí)都是因?yàn)?ldquo;突變”起到了跳出的作用。
這樣思路就清晰了:先用貝葉斯找一個(gè)初始點(diǎn)出來,然后剩下的用basinhopping。我下周先試一下這個(gè),看看我推測(cè)的對(duì)不對(duì)。