程凱杰
(北京郵電大學(xué)理學(xué)院,北京 100876)
索膜結(jié)構(gòu)具有自身重量輕、曲面結(jié)構(gòu)造型優(yōu)美、結(jié)構(gòu)效率高的優(yōu)點(diǎn),并且能夠跨越較大的空間。索膜結(jié)構(gòu)經(jīng)過近幾十年的發(fā)展,已經(jīng)被廣泛應(yīng)用于體育娛樂設(shè)施、公共景觀建筑等大型建筑中[1]。在索膜結(jié)構(gòu)設(shè)計(jì)中,我們通常最關(guān)心同時(shí)研究最多的問題就是索膜結(jié)構(gòu)的形狀確定問題,即找形問題。目前找形分析在分析確定索膜結(jié)構(gòu)形狀時(shí)常用到以下幾種數(shù)值分析方法:非線性有限元法、動(dòng)力松弛法和力密度法。這三種找形方法雖然具體做法步驟不同,但都是需要先建立剛度方程,再利用迭代法或直接法,對(duì)方程進(jìn)行求解。其中力密度法在找形過程中將幾何非線性問題轉(zhuǎn)換成線性問題,避免了非線性系統(tǒng)的收斂問題,與上述另外兩種找形方法相比具有較快的計(jì)算速度。
力密度法找形[2]是目前最常使用的找形方法之一。使用力密度法找形通常需要先將索膜結(jié)構(gòu)離散成由單元和節(jié)點(diǎn)構(gòu)成的網(wǎng)狀模型,然后通過設(shè)定力密度值并依據(jù)結(jié)構(gòu)中單元和節(jié)點(diǎn)之間的拓樸關(guān)系,建立關(guān)于所有節(jié)點(diǎn)的平衡方程組,即力密度方程組,最后通過求解力密度方程組得到各節(jié)點(diǎn)的坐標(biāo),從而確定結(jié)構(gòu)的曲面形態(tài)[2]。力密度方程組的求解問題本質(zhì)上依然是線性方程組的求解問題。
由于力密度方程組的系數(shù)矩陣是大型的稀疏矩陣,如果運(yùn)用直接解法求解力密度方程組,效率不高甚至難以實(shí)現(xiàn)。高振宇在2012 年發(fā)表的求解力密度方程組的優(yōu)化算法[3]中,基于力密度方程組系數(shù)矩陣正定、對(duì)稱、稀疏的結(jié)構(gòu)特點(diǎn),將迭代解法中的共軛梯度法運(yùn)用到力密度方程組的求解中,文獻(xiàn)[3]中的算法具有收斂快、精度高的優(yōu)點(diǎn),可以有效的解決力密度方程組的求解問題。然而隨著結(jié)構(gòu)單元和節(jié)點(diǎn)數(shù)目的指數(shù)增長(zhǎng),我們?cè)谑褂媒?jīng)典算法在求解大型稀疏的力密度方程組時(shí)需要大量的計(jì)算時(shí)間和存儲(chǔ)空間。
量子計(jì)算作為一種新發(fā)展起來的計(jì)算模型,在解決一些困難的計(jì)算問題中產(chǎn)生了顛覆性的影響。2008 年,Harrow 等[4]研究并提出了HHL 算法:輸入一個(gè)log2n 位的量子態(tài)│b〉=Σbi│i〉,運(yùn)用哈密頓模擬在常數(shù)時(shí)間內(nèi)實(shí)現(xiàn)酉變換e-iAt,那么算法可以在對(duì)數(shù)時(shí)間內(nèi)得到一個(gè)滿足線性方程Ax=b 的量子態(tài)│x〉=Σxi│i〉。HHL 算法為大型稀疏線性方程組的求解問題帶來了突破性的進(jìn)展。我們?cè)诒疚闹袑⒘孔佑?jì)算求解線性方程組的技巧運(yùn)用到力密度方程組的求解中,研究并提出求解力密度方程組的量子算法,與經(jīng)典算法相比,我們的算法具有良好的指數(shù)加速效果。
力密度法[2]最早是由H.J.Schek 在1974 年提出用于索膜結(jié)構(gòu)的找形方法,后來經(jīng)過學(xué)者們的完善和發(fā)展,如今已經(jīng)成為索膜結(jié)構(gòu)中解決形狀確定問題的主要方法。它的具體步驟是:先將索膜結(jié)構(gòu)離散成單元和節(jié)點(diǎn)的網(wǎng)絡(luò)模型,然后通過設(shè)定力密度值并根據(jù)結(jié)構(gòu)單元和節(jié)點(diǎn)之間的拓樸關(guān)系,建立關(guān)于所有節(jié)點(diǎn)的平衡方程組,即力密度方程組,最后通過求解力密度方程組得到各節(jié)點(diǎn)的坐標(biāo),從而確定結(jié)構(gòu)的形狀。在笛卡爾坐標(biāo)系中xj(j=1,2,3),將索膜結(jié)構(gòu)離散為由m 個(gè)單元n 個(gè)節(jié)點(diǎn)組成的網(wǎng)絡(luò)模型??紤]結(jié)構(gòu)中任意節(jié)點(diǎn)i(i=1,2,…,n)在xj方向的平衡條件為:
在力密度法中,我們通常定義qik=Nik/Lik為單元ik的力密度,那么式(1)可以寫成:
接著我們可以對(duì)所有n 個(gè)節(jié)點(diǎn)建立與式(2)相同的平衡方程,并將其表達(dá)成矩陣的形式為:
式中:I(t)——單元的首節(jié)點(diǎn);K(t)——單元的末節(jié)點(diǎn)。Xj(j=1,2,3)是一個(gè)n 維的列向量,其中的元素為節(jié)點(diǎn)i(i=1,2,…,n)在方向xj(j=1,2,3)上的坐標(biāo),F(xiàn)j也是一個(gè)n 維列向量,它的元素為作用在節(jié)點(diǎn)i(i=1,2,…,n)上的荷載在方向xj(j=1,2,3)上的分量。綜合上面所有描述可以得知,我們通過求解式(3)的矩陣方程即可得到節(jié)點(diǎn)(i=1,2,…,n)在方向xj(j=1,2,3)上的坐標(biāo),從而確定模型的初始形狀。
本節(jié)主要介紹了求解力密度方程組的量子算法。研究并利用了力密度方程組系數(shù)矩陣的特點(diǎn),發(fā)現(xiàn)系數(shù)矩陣是個(gè)大型稀疏實(shí)對(duì)稱矩陣,接著對(duì)力密度方程組的系數(shù)矩陣進(jìn)行分解,將分解后的系數(shù)矩陣擴(kuò)展到一個(gè)更高維的Hilbert 空間中,在求解線性方程組的量子算法的基礎(chǔ)上,設(shè)計(jì)量子算法對(duì)力密度方程組進(jìn)行求解。在求解力密度方程組中使用HHL 算法需要用到哈密頓模擬技術(shù),將力密度方程組的系數(shù)矩陣(CTQC)指數(shù)化,哈密頓模擬的前提條件是能通過黑盒讀取訪問矩陣的元素。矩陣方程CTQCXj=Fj的系數(shù)矩陣(CTQC)不僅是稀疏矩陣,還具有對(duì)稱、正定的特性[3],滿足HHL算法對(duì)于方程系數(shù)矩陣稀疏性的要求,但是系數(shù)矩陣(CTQC)的模擬涉及矩陣的乘法,需要進(jìn)行大量的計(jì)算,因此,為了防止破壞量子計(jì)算的加速效果,本文先對(duì)系數(shù)矩陣進(jìn)行如下操作:
那么矩陣方程CTQCXj=Fj可以寫成CTQ′Q′CXj=Fj,由于Q′是對(duì)角矩陣,所以:
記A=Q′C,那么有:
式(7)的解可以表示為:
由HHL 算法可知,為了不失一般性,我們需要假設(shè):
由于HHL 算法中哈密頓模擬要求矩陣是厄密的,矩陣Am×n是一個(gè)矩形矩陣并不是厄密矩陣,不滿足哈密頓模擬的前提條件,我們?cè)谠O(shè)計(jì)算法時(shí)需要將求解ATAXj=Fj轉(zhuǎn)化為系數(shù)矩陣厄密的情形。所以我們?cè)O(shè)計(jì)一個(gè)變換I,利用I 將矩陣A 和AT表示成Cm+n上的厄密矩陣。I 作用到矩陣A 上有以下效果:
那么我們可以將式(6)改寫成:
式(1)的解為:
具體的算法過程如下:
第二步,對(duì)矩陣I(A)進(jìn)行哈密頓模擬得到eiI(A)t=Σkeiλkt│μk〉〈μk│;
第三步,執(zhí)行相位估計(jì),得到Σk│λk〉│μk〉〈μk│;
而經(jīng)典算法求解力密度方程組所需的時(shí)間一般介于O(n1.6)和O(n1.7)之間,可見在求解力密度方程組時(shí)引進(jìn)量子算法可以在時(shí)間上獲得指數(shù)加速。
力密度方程組作為索膜結(jié)構(gòu)力密度找形的基礎(chǔ)方程,它的求解是力密度法找形中最后也是最主要的一步,本文應(yīng)用量子計(jì)算的思想和方法求解力密度方程組,通過對(duì)力密度方程組的系數(shù)矩陣進(jìn)行分解、引入映射算子等操作,使力密度方程組滿足HHL 算法的量子模型,從而求得其解,與經(jīng)典算法相比,具有指數(shù)加速。另外,本文的方法得到的是解的量子態(tài)形式,可以通過量子層析的方法進(jìn)一步獲得解的全部經(jīng)典信息。能否使用量子算法直接對(duì)系數(shù)矩陣進(jìn)行模擬,并在求解力密度方程組中獲得加速效果還需要后續(xù)的研究。