• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Visio的量子電路矢量圖自動繪制

      2015-07-18 13:31:53王秋里等
      電腦知識與技術 2015年12期
      關鍵詞:真值表

      王秋里等

      摘要:目前量子可逆邏輯電路的繪制工作十分復雜。雖然現(xiàn)有的自動繪圖工具只能滿足基本的繪圖需求,但是它們繪制出的是低分辨率的點陣圖,而這種點陣圖很難滿足研究者們在論文發(fā)表時對高清圖像的要求。因此,用C#對Visio繪圖功能進行二次開發(fā),解析并描述用戶提供的量子電路TFC文件, C#讀取用戶對電路多種格式的自定義參數(shù),依次畫出所需的量子門,則可自動繪制出符合高清要求的矢量量子電路圖。因為可逆邏輯量子電路的操作是為了得到特定的信號,所以真值表的計算可以驗證這個電路是否已經(jīng)達到事先設置的要求。所以還提供該量子電路的真值表,方便用戶查看并分析產(chǎn)生的量子電路。

      關鍵詞:量子電路;點陣圖;量子門;TFC文件;Visio二次開發(fā);真值表

      中圖分類號:TN91 文獻標識碼:A 文章編號:1009-3044(2015)12-0237-04

      Visio-based Automatically Drawing of Vector Quantum Circuit

      WANG Qiu-li, CAI Song-cheng, JI Yan-yu, CHEN Zhou-ling, WU Yang-yang, LI Zhi-qiang, FENG Xiao-xia

      (College of Information Engineering, Yangzhou University, Yangzhou 225009, China)

      Abstract: Drawing quantum reversible logic circuits are very complicated at present. The existing automatic drawing tools meet the needs of the basic drawing, but it can only draw the low-resolution bitmaps. But these kinds of bitmaps are difficult to meet the requirements of high-definition images when the paper was published. Therefore, further development of the Visios drawing function is achieved by using C#, the description files of quantum circuits--TFC files are parsed, the parameters of many user-defined formats for circuits are read by c#, then the required quantum gates are drawn in turn, finally the high-definition vector graphs meeting the requirements are drew automatically. The operation of quantum reversible logic circuits is for a specific signal, so the truth table can verify whether the circuit has to meet the requirements set in advance. It also provides a truth table of the quantum circuit for users to view and analyze the result of quantum circuits.

      Key words: quantum circuit; bitmaps; quantum gates; TFC file; Visio secondary development; truth table

      量子邏輯門的組合與級聯(lián)是組成量子計算機的基本元素,科研人員做了大量的工作來研究構造代價最小的量子電路[1-3]。但是量子電路的繪制一直是一項繁瑣的工作,如果動手繪制,工作效率低下;如果使用現(xiàn)有的繪圖工具,只能得到清晰度不高的點陣圖,不能夠滿足科研人員撰寫論文的需要。

      Microsoft Office Visio[4]是一款功能強大的矢量圖繪圖與建模工具。它能夠提供多樣的模板和形狀,使用戶能以拖拽的方式繪制流程圖和類圖等圖形。Visio繪制出來的圖也可以直接進行拖拽修改,而且清晰度高、圖像質量好,能滿足各期刊發(fā)表論文的要求。由于Visio提供了編程接口,因此我們可以使用C#編程語言調(diào)用這些接口對Visio進行二次開發(fā)[5],將復雜的繪圖工作交給計算機自動實現(xiàn)。

      1 基本概念

      1.1 量子電路可逆邏輯綜合

      量子電路可逆邏輯綜合,主要是研究在給定量子門及給定量子電路的約束條件及限制下,生成代價最小的量子可逆邏輯電路,以及它的可逆邏輯綜合理論和電路生成方法。它包含合成和優(yōu)化兩個方面,現(xiàn)在很多方法是將合成與優(yōu)化這兩個過程同時進行,在不改變可逆電路函數(shù)功能的條件下,對電路進行重組、替換,來減少電路邏輯門數(shù)量,從而降低量子可逆電路的代價。當然,如果使用不同的實現(xiàn)技術,通常量子可逆門的代價是不相同的。為此人們提出了若干可逆邏輯電路綜合的算法,如窮舉法[6-8]、基于代數(shù)的方法、基于模板的方法、基于真值表的方法等。這些方法各有優(yōu)缺點,但不管專家們用何方法生成了最優(yōu)量子電路,最終需要將生成的量子電路圖繪制出來,方便檢查、核對、展現(xiàn)。本文則根據(jù)專家們生成的最優(yōu)量子電路的TFC文件,完成量子電路圖的繪圖功能。

      1.2 量子邏輯門

      在經(jīng)典計算機中,二進制信息以比特(bit)形式存儲,物理上可以是在晶體管電子電路中的電壓信號;數(shù)學上可以是布爾值或者變量。但在量子計算領域中,這樣的二進制信息均以量子狀態(tài)形式存儲,比如光子的偏振和圍繞單個原子核電子的兩種狀態(tài)(基態(tài)/激發(fā)態(tài))或者均勻電磁場中的電子/原子核的自旋(向上/向下)等。不同于經(jīng)典比特,量子比特能夠以其經(jīng)典比特的疊加態(tài)的形式存在。量子門的操作可以用代表量子門的矩陣與代表量子比特狀態(tài)的向量相乘來表示。

      量子邏輯門是處理量子信息的基本單元,其級聯(lián)構成可逆的量子電路。量子計算中,一個量子邏輯門對應一個幺正變換。量子門常使用矩陣表示,例如操作K個量子比特門可以表示成2k * 2k的酉矩陣[9]。一個量子電路的輸入與輸出數(shù)量必須相等。根據(jù)量子輸入輸出的個數(shù),邏輯門可分為單量子比特門[10]與多量子比特門。

      1)非門(NOT門)

      如圖1所示。非門為單量子門,即一個輸入與一個輸出。輸入的a經(jīng)過非門之后則輸出a的相反狀態(tài)。

      此類單量子門很多,如:Hadamard門、Pauli-X門、Pauli-Y門等都是單量子門。多比特量子系統(tǒng)則是單比特系統(tǒng)的推廣,量子力學的基本原理指出單獨的狀態(tài)向量可以通過張量積形式和其他狀態(tài)向量結合起來。

      2)控制V門

      控制V門如圖2所示,兩個輸入與兩個輸出則為2比特量子門。a為控制端,b為受控端。當控制信號a=0時,則b的輸出不變,即Q=b。當控制信號a=1時,則輸出為[V=i+12 1-i -i 1],是b的幺正操作,即Q=V(b)。

      3)量子異或門

      即控制非門(CNOT門),它和經(jīng)典異或門非常類似。如圖3所示,它有2個輸入比特,a表示控制比特,b表示受控條件反轉比特。當控制比特等于1,即在上能級時,受控比特狀態(tài)發(fā)生反轉,否則保持不變。

      4)Toffoli量子門

      Toffoli是CNOT門的受控行為的推廣,是一個具有兩個控制量子比特、一個目標量子比特的常用量子門。不同于CNOT門,Toffoli門目標量子比特只有在兩個控制量子比特都置為“1”時才翻轉,即實現(xiàn)變換[A,B;C→A,B;AB⊕C]。如圖4所示。

      5)控制交換門

      如圖5所示,即Fredkin門。當C=0時,a與b的輸出保持不變,當C =1時,a與b的值交換。

      2 Visio編程接口的各種函數(shù)的功能與調(diào)用方法

      為了實現(xiàn)軟件的畫圖功能,需要引用各類命名空間來配置系統(tǒng)。其中一些特殊的命名空間所包含的功能對實現(xiàn)程序功能起著重要作用。

      程序需要用到Visio命名空間,在這個命名空間里包含了所有畫圖所需要的方法。比如DrawOval方法,這個方法可以畫出一個圓,一共四個參數(shù),前面兩個參數(shù)為坐標,后面兩個參數(shù)為高度和寬度。除此之外,我們還用到了其他的方法讓程序更適合用戶使用。

      在使用Visio的時候,如果打開了Visio軟件窗口,在自動完成繪圖的情況下,窗口難免顯得多余,所以調(diào)用了InvisibleAppClass方法,創(chuàng)建一個不可見的應用程序,也就是在不打開Visio窗口的情況下打開Visio軟件,并控制程序的環(huán)境。讓畫圖過程在后臺完成,保證了程序界面的簡潔。

      在程序中,使用了Document方法[11-12]。Document表示一個繪圖、模具或模板文件。在打開Visio文檔或創(chuàng)建新文檔時,都會創(chuàng)建一個新的Document對象,并將其添加到Application對象的Documents集合中。在繪制圖像的時候,使用Page 對象表示前景或背景的繪圖區(qū)域,也就是當前繪制電路圖的繪圖區(qū)域。利用Shape創(chuàng)建一個圖形對象,這個對象可以接收畫出的線條或者圖形,并通過調(diào)用相應方法對這個對象進行一定的調(diào)整。然后再利用DrawOval、DrawRect等方法畫出需要的圖形。在圖像中所需要的文字信息的字體和大小,分別用void set_CharProps和Cell get_CellsSRC方法來設置。

      3 量子電路描述的TFC文件格式

      TFC文件是一種包含量子電路信息的文件。它為量子電路提供了一種統(tǒng)一的、格式化的文件存儲方式,方便我們快速地讀取、識別并畫出量子電路圖。

      TFC文件主要可以分為兩個部分。第一部分為前四行,主要描述了電路的基本信息。第一行.v給出所繪制的電路圖的行數(shù);第二行.i給出輸入端(即Input);第三行.o給出輸出端(即Output);第四行.c給出剩余電路的標號。第二部分在BEGIN和END之間為需要繪制的量子邏輯門,量子邏輯門的每一行先給出所要畫的門的種類,再給出其控制端和受控端信號。

      如圖6所示為TFC文件內(nèi)容格式,第一行.v包含a,b,c,d,表示這個電路一共有a,b,c,d四行;第二行.i包含a,b,c,表示信號由a,b,c這三個端口輸入;第三行.o包含d,表示信號由d端輸出;剩余的電路信息則為0。緊接著BEGIN和END之間則是畫出完整電路圖的內(nèi)容格式。下一節(jié)具體介紹門電路的繪制。

      4 系統(tǒng)實現(xiàn)

      4.1 TFC文件的算法

      程序在識別TFC文件時,以行為單位進行逐行讀取。當讀完TFC文件的第一部分時繪制出電路的基本框架,當讀到BEGIN時則開始正式畫門及電路。以行為單位,每一行的開頭如T1,f3,V,p3等均表示量子門的門類型,程序通過量子門名稱的匹配判斷分別調(diào)用相應電子門繪制函數(shù),其后的端口信息則作為參數(shù)傳遞給所調(diào)用的繪制函數(shù),畫出相應的門電路。

      本軟件所能識別的量子邏輯門種類包括T門、F門、H門、V門、V+門、P3門、S門、T門以及T+門。T類門可識別T1~T21這21種門,對應的端口個數(shù)分別為1~21。F類門可識別F2,F(xiàn)3,F(xiàn)4,F(xiàn)5四種門,對應的端口個數(shù)分別2個,3個,4個和5個。H門、S門、T門、T+門對應的端口個數(shù)均為1個。V門、V+門的端口個數(shù)為2個。P3門端口個數(shù)為3個。

      4.2 調(diào)用Visio接口函數(shù)繪制電路圖的算法

      同一類型的量子門為一個類(如所有以通用Toffoli門的形式畫出的量子門為一個類),在類里面實現(xiàn)一個量子門的繪制。在正式介紹各類門畫法之前要設置繪制量子門時的參數(shù)變量,如控制點半徑,受控點半徑,行間距,門間距,換行基數(shù),這些變量都可以自行設置來調(diào)整電路圖的美觀。

      程序在匹配并調(diào)用相應的量子門繪制函數(shù)后,若控制端和受控端的個數(shù)與已匹配的量子門所應有的個數(shù)不符,則出錯。上述TFC文件將如何調(diào)用量子門函數(shù):首先,程序識別到.v a b c d時,確定整個電路的行數(shù),接著確定電路的輸入與輸出標識并畫出,如圖7的a,b,c等;再判斷BEGIN后面一共幾個函數(shù)(即一共幾個門),用門數(shù)確定整個電路橫線的長度并畫出;接著依次調(diào)用門函數(shù)畫出量子電路門。得到的量子電路圖如圖7所示。接下來介紹程序如何依次調(diào)用門函數(shù)畫出所需的量子電路圖。

      1)通用Toffoli門

      繪圖過程中,若將繪制的門在電路圖中為第一個門(如圖7第一個門)則規(guī)定它在縱向上為第一個位置,橫向由控制端與受控端決定。

      當通用Toffoli類門只含一個參數(shù)時,如T1(a),則被認定為受控端,即一個非門。

      如圖7中,第一個門調(diào)用函數(shù)為T2(b,d),即控制非門。在圖中,b點為控制點,d點為受控點。通用Toffoli類規(guī)定最后一個參數(shù)對應的是受控制端,其他均為控制端。

      圖7中,第二個門調(diào)用函數(shù)為T3 (a,c,b),此通用Toffoli門為電路的第二個門,從開始位置將縱軸將向后移一個門的位置開始繪制。前面兩個參數(shù)a, c對應的是控制端,其中a表示一個空心圓的控制端,即表示非,c用實心圓表示(注:此文章中所有帶單引號的參數(shù)都表示空心圓);b則對應受控制端,受控制端則用一個帶“十”字的圓來表示。然后比較三個參數(shù)的大小,確定一個最大值和一個最小值,此處最小值為a,最大值為c。在a和c所代表的兩條水平線上畫一條豎線,從而形成一個Toffoli量子門。當參數(shù)變多時,繪圖的過程也是如此。

      由上述可知,帶三個參數(shù)的Toffoli量子門相應的函數(shù)見算法1:

      [算法1 類通用Toffoli量子門圖形的繪制函數(shù)Toffoli(c1,c2,c3)\&輸入:控制端c1,c2和受控端c3

      輸出:Toffoli門

      1. MAX=max(c1,c2,c3) //取c1,c2,c3的最高點

      2. MIN=min(c1,c2,c3) //取c1,c2,c3的最低點

      3. Drawline(MIN,MAX)//最高點最低點之間畫一條豎線

      4. DrawControlCircle(c1)//畫控制端c1

      5. DrawControlCircle(c2)//畫控制端c2

      6.. CrossCircle(c3)//畫受控端c3\&]

      2)Fredkin門

      如圖7所示,F(xiàn)redkin門為電路的第三個門,從開始位置將縱軸將向后移二個門的位置開始繪Fredkin門。Fredkin門至少有三個參數(shù)。當Fredkin門有三個參數(shù)或多個參數(shù)時,最后兩個參數(shù)均為受控制端,前面剩余的參數(shù)作為控制端,可有多個控制端。此時受控制端用一個“X”形表示。

      圖7中,第三個門調(diào)用函數(shù)為f3(b,c,d),此時控制端為b,受控端為c和d。然后比較三個參數(shù)的大小,同理通用Toffoli門。從而畫出一個Fredkin門。當參數(shù)變多時,繪圖的過程也是如此。三個參數(shù)的Fredkin門相應的函數(shù)見算法2。

      3)控制V門

      如圖7,控制V門為電路的第四個門,從開始位置將縱軸將向后移三個門的位置開始繪V門。V門只有兩個參數(shù),第一個參數(shù)代表控制端,第二個參數(shù)代表受控制端,受控端用帶“V”的矩形框表示??刂芕+量子門同樣只有兩個參數(shù),與控制V門不同的是,用帶“V+”的矩形框表示受控制端。

      [算法2 類Fredkin量子門圖形的繪制函數(shù)Fredkin(c1,c2,c3)\&輸入:控制端c1和受控端c2,c3

      輸出:Fredkin門

      1. MAX=max(c1,c2,c3) //取c1,c2,c3的最高點

      2. MIN=min(c1,c2,c3) //取c1,c2,c3的最低點

      3. Drawline(MIN,MAX) //最高點最低點之間畫一條豎線

      4. DrawControlCircle(c1)//畫控制端c1

      5. Cross(c2)//畫受控端c2

      6. Cross(c3)//畫受控端c3\&]

      圖7中,第四個門調(diào)用函數(shù)為v(b,a),此時b表示控制端,a表示受控端。然后比較兩個參數(shù)的大小,同理通用Toffoli門,則畫出一個控制V門。對應的函數(shù)見算法3:

      [算法3 類控制V量子門圖形的繪制函數(shù)V(c1,c2)\&輸入:控制端c1和受控端c2

      輸出:V門

      1. DrawRectangle(c2)//在c2處畫矩形

      2.Shape1.Text=”V”//給矩形標注”V”

      3. Drawline(c1,c2)//在c1,c2之間畫豎線

      4.DrawControlCircle(c1)//畫控制端c1\&]

      5 真值表生成算法

      因為可逆邏輯量子電路的操作是為了得到特定的信號,所以真值表的計算可以驗證這個電路是否已經(jīng)達到事先設置的要求。關于生成真值表,只闡述通用Toffoli類門生成真值表。本軟件對其他類型門的生成真值表暫時不支持。

      量子電路的傳輸信號可以分為兩類:0和1。通用Toffoli類門的傳輸信號由控制端和受控制端提供。所以求真值表的過程,實際上就是對數(shù)字信號進行組合,直到輸出符合的信號為止。

      控制端可分為實心圓和空心圓,空心圓表示若接受的控制信號為“1”,則將控制信號轉換為“0”;若接收的控制信號為“0”,則將控制信號轉換為“1”。實心圓表示接受的控制信號為“1”,控制信號就為“1”;接收的控制信號為“0”,控制信號就為“0”。在計算真值表的時候,輸入端輸入的信號種類按照2n來計算,即如果輸入端有2個輸入信號,則輸入的信號有22=4種,以此類推。

      圖7所示電路中第一個門,控制端是實心圓,所以當b接收的控制信號為“1”時,則d信號輸出翻轉。當b接收的信號為“0”時,d信號輸出則不變。圖7電路中第一個門的真值表為表1所示。

      如果出現(xiàn)空心的控制端和實心的控制端同時出現(xiàn)的情況,則受控端的信號同時受兩種控制端控制。受控制端信號置反的條件是:實心控制端接收“1”信號,空心控制端接收“0”信號,即為兩種控制端分別接受相匹配的信號。如圖7中第二個門的真值表如表2所示。

      程序中,得到2n個信號種類之后,將0到2n依次轉化為2進制,再將2進制信號與控制端激發(fā)信號匹配,如果所有控制端的信號都能夠匹配,則改變受控制端的信號。如果不能完全匹配,則不改變信號。

      6 結束語

      本軟件采用C#語言編寫,是為將來能夠更好的移植到web平臺做準備。用戶已經(jīng)可以利用本軟件得到自定義的高清電路圖,滿足他們畫圖需求。接下來我們會把這款軟件移植到web平臺,并建立數(shù)據(jù)庫。這樣不僅能夠畫出用戶需要的圖像,還能對已經(jīng)繪出的圖像進行分析,將不同的電路圖進行對比,計算出它們的垃圾輸出與量子代價等信息,并與歷史最優(yōu)結果進行比較,得出這些電路的各種統(tǒng)計報表,為優(yōu)化量子電路的綜合算法提供參考數(shù)據(jù),更好地為量子電路的研究人員提供畫圖和對比服務。

      參考文獻:

      [1] 李志強, 馮小霞, 陳漢武. 基于量子可逆邏輯的桶型位移器設計[J]. 量子電子學報, 2014, 31(6): 720-727.

      [2] 李志強, 馮小霞, 陳漢武. 基于控制K次平方根非門的類Toffoli門構造方法[J]. 數(shù)據(jù)采集與處理, 2014, 29(6): 975-980.

      [3] Li, Zhiqiang; Song, Xiaoyu; Perkowski, et al. Realization of a new permutative gate library using controlled-kth-root-of-NOT quantum gates for exact minimization of quantum circuits[J]. International Journal of Quantum Information, 2014, 12(5): 34-52.

      [4] 何凱. 基于Visio的CAPP繪圖工具的研究與開發(fā)[D]. 成都: 西華大學, 2010.

      [5] 朱昊, 雷鳴, 高山. Visio二次開發(fā)技術在電氣工程教學圖形化中的應用[J]. 電氣電子教學學報, 2006, 28(1): 95-97.

      [6] Shende V V, Prasad A K, Markov I L, et al. Synthesis of reversible logic circuits[J]. Computer Aided Design of integrated circuits and systems, 2003, 22(6): 710-722.

      [7] Iwama K, Kambayashi Y, Yamashita S. Transformation rules for designing CNOT-based quantum circuits[C]// Proceedings of 39th Design Automation Conference. New Orleans, LA, 2002.

      [8] Gupta P, Agrawal A, Jha N K. An algorithm for synthesis of reversible logic circuits[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2006, 25(11): 2317-2330.

      [9] 王冬, 陳漢武, 朱皖寧等. 多值邏輯量子置換門的酉矩陣表示[J]. 計算機學報, 2012, 35(3):639-644.

      [10] 施教芳. 量子計算機前瞻:量子門與量子電路模型[J]. 微電子技術, 2002, 30(4): 25-28.

      [11] 王飛漩, 魏清新, 王坤明. 基于Visio二次開發(fā)的故障樹存儲方法研究[J]. 計算機測量與控制, 2013, 21(9): 372-374.

      [12] 劉強, 劉向君, 馬旭勃. 利用Visio二次開發(fā)實現(xiàn)邏輯圖自動分析[J]. 軟件導刊, 2009, 8(1): 13-15.

      猜你喜歡
      真值表
      PPP項目中合同設計對績效的影響
      會計之友(2020年16期)2020-08-04 07:43:34
      《離散數(shù)學》中二元關系傳遞性的判定
      電子技術教學中實驗環(huán)節(jié)的有效利用
      離散數(shù)學課程中主范式求解問題的教學研究
      搶答器原理的設計
      飛機燃油測量系統(tǒng)設計誤差影響分析
      科技視界(2016年22期)2016-10-18 15:56:13
      任務引領的組合邏輯電路應用教學設計
      基于粒矩陣的多輸入多輸出真值表快速并行約簡算法
      淺談電氣控制線路的邏輯代數(shù)設計方法
      科學之友(2015年7期)2015-01-22 13:23:32
      命題邏輯中推理有效性的判定
      大觀(2014年4期)2014-04-29 16:10:43
      昭苏县| 来安县| 济阳县| 黄浦区| 巢湖市| 阿鲁科尔沁旗| 渑池县| 习水县| 东城区| 会东县| 德令哈市| 炉霍县| 柞水县| 日照市| 隆昌县| 手机| 武陟县| 陇南市| 沛县| 广东省| 平远县| 新营市| 河东区| 舞阳县| 应城市| 高要市| 成都市| 上犹县| 宽城| 集贤县| 赞皇县| 民丰县| 临安市| 安新县| 通山县| 乐陵市| 金坛市| 龙门县| 建德市| 南充市| 拉萨市|