999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

算法及其時(shí)間復(fù)雜度可同步形式化推導(dǎo)的方法

2008-01-01 00:00:00王昌晶薛錦云

摘要:對(duì)在長期的算法研究中提出的PAR方法和PAR平臺(tái)引入時(shí)間謂詞加以擴(kuò)展,不僅可以形式化推導(dǎo)出順序查找和二分查找問題的算法程序,而且這兩個(gè)問題關(guān)于時(shí)間復(fù)雜度的遞歸方程式也可同步且自然地推導(dǎo)得到。這為開發(fā)并驗(yàn)證高效率的算法開辟了一條新途徑。

關(guān)鍵詞:分劃遞推方法;形式化推導(dǎo);時(shí)間復(fù)雜度;遞歸方程式

中圖分類號(hào):TP301.6文獻(xiàn)標(biāo)志碼:A

文章編號(hào):1001-3695(2008)03-0681-03

對(duì)一個(gè)具體問題要編寫一個(gè)正確的算法不是一件容易的事。Knuth在“The art of computer programming:sorting and searching”中提到,第一個(gè)二分搜索算法早在1946年就出現(xiàn)了,但是第一個(gè)完全正確的二分搜索算法卻直到1962年才出現(xiàn)。Bentley也在“Writing correct program”中提到,90%的計(jì)算機(jī)專家不能在2 h內(nèi)寫出完全正確的二分搜索算法[1]。因此現(xiàn)有的眾多算法設(shè)計(jì)與分析、數(shù)據(jù)結(jié)構(gòu)、程序設(shè)計(jì)語言教科書中很多算法不能保證完全正確。究其原因,在這些教科書中,對(duì)算法的設(shè)計(jì)與時(shí)間復(fù)雜度分析都是分開進(jìn)行的,一般都是通過半形式化語言(如偽語言)來描述算法設(shè)計(jì)過程,最后用某一可執(zhí)行語言來實(shí)現(xiàn);通過自然語言對(duì)時(shí)間復(fù)雜度進(jìn)行描述與分析,最后歸結(jié)為一個(gè)遞歸方程式。兩者都沒有通過嚴(yán)格證明,不能讓人們信服。

筆者通過對(duì)傳統(tǒng)算法設(shè)計(jì)方法和許多實(shí)際問題的長期深入研究,提出了一種統(tǒng)一而有效的算法程序設(shè)計(jì)方法——PAR方法[2,3]。它利用一階謂詞邏輯表示功能規(guī)約,使用的主要技術(shù)是分劃和遞推,故也稱做分劃遞推法。使用PAR方法能夠形式化地從規(guī)約逐步推導(dǎo)出算法程序。更進(jìn)一步,在PAR方法中加入關(guān)于時(shí)間的謂詞,可以形式化推導(dǎo)出關(guān)于時(shí)間復(fù)雜度的遞歸方程式。筆者提出的方法創(chuàng)新點(diǎn)在于既能夠令人信服地形式化推導(dǎo)出算法,又能夠同步地形式化推導(dǎo)出該算法關(guān)于時(shí)間復(fù)雜度的遞歸方程式。

E. C.R.Hehner等人[1]提出一種實(shí)用的算法程序設(shè)計(jì)理論,在形式化算法設(shè)計(jì)中最早加入關(guān)于時(shí)間的謂詞。但是其理論有兩點(diǎn)與本文不同:a)Hehner的理論是在算法設(shè)計(jì)過程中邊猜想邊驗(yàn)證,對(duì)每一個(gè)具體問題要作具體分析;PAR方法是一種統(tǒng)一的算法設(shè)計(jì)方法,對(duì)每一個(gè)具體問題使用的主要技術(shù)都是分劃和遞推。算法不是猜想出來的,而是通過在一系列一階謂詞變換規(guī)則上作變換推導(dǎo)而得來的,推導(dǎo)算法的過程即是構(gòu)造證明的過程。b)Hehner的理論算法設(shè)計(jì)過程與算法時(shí)間復(fù)雜度分析過程不是同步展開的。

1PAR方法開發(fā)步驟

a)用Radl語言精確地描述求解問題的功能規(guī)約〈Q,R〉;

b)將需求解的問題分劃成若干與原問題結(jié)構(gòu)相同但規(guī)模更小的子問題,分解可繼續(xù)直至每個(gè)子問題能直接求解;

c)構(gòu)造問題求解序列的遞推關(guān)系Si=F(j),并給出遞推關(guān)系中出現(xiàn)的函數(shù)和變量初始化條件,再將所有初始化條件和遞推關(guān)系合并成一個(gè)算法;

d)基于文獻(xiàn)[4]中提出的循環(huán)不變式的新定義和新策略構(gòu)造循環(huán)不變式;

e)基于所得的算法和循環(huán)不變式開發(fā)Apla算法程序;

f)將Alpa算法程序通過自動(dòng)化工具轉(zhuǎn)換成等價(jià)的某一可執(zhí)行語言程序,如Java、C#、VB.NET、C++、Delphi。

2引入時(shí)間謂詞

定義1計(jì)算步是一條語句或一組語句的一次執(zhí)行。

一次循環(huán)的迭代和一次遞歸程序的遞歸調(diào)用都可以認(rèn)為是一個(gè)計(jì)算步。

定義2遞推時(shí)間度量是對(duì)時(shí)間的抽象,它并不度量實(shí)際的執(zhí)行時(shí)間,其優(yōu)點(diǎn)在于不必了解實(shí)現(xiàn)細(xì)節(jié)。在遞推時(shí)間度量中規(guī)定:a)每一個(gè)計(jì)算步花費(fèi)一個(gè)時(shí)間單位;b)其余執(zhí)行不花時(shí)間。

這種度量方法忽略了順序和分支程序的執(zhí)行時(shí)間, 只考慮循環(huán)和遞歸程序的執(zhí)行時(shí)間。

定義3遞歸方程式用來對(duì)算法時(shí)間復(fù)雜度進(jìn)行分析。若使用分劃遞推法將規(guī)模為n的問題分成k個(gè)規(guī)模為n/m的子問題。假定解規(guī)模為1的問題耗費(fèi)1個(gè)單位時(shí)間,再設(shè)將原問題分解為k個(gè)子問題以及將k個(gè)子問題的解合并為原問題的解需要f(n)個(gè)單位時(shí)間。用T(n)表示解規(guī)模為n的問題所需的計(jì)算時(shí)間,則有遞歸方程式為

在此可以在PAR方法中引入時(shí)間。只需要在后置斷言R中加入一個(gè)關(guān)于時(shí)間的謂詞:t(n)=a(j:0≤j<n:1)。其中:a為一常量;t(n)的含義是算法所需花費(fèi)的單位時(shí)間,它能刻畫時(shí)間依算法的變化規(guī)律。假設(shè)原來的后置斷言R為謂詞p(n),則引入時(shí)間的后置斷言R為謂詞pt(n)=p(n)∧t(n)。

3兩個(gè)實(shí)例

下面推導(dǎo)出兩個(gè)引入時(shí)間問題的算法程序,以此來說明在形式化推導(dǎo)出算法的同時(shí),可以同步而又自然地推導(dǎo)出關(guān)于時(shí)間復(fù)雜度的遞歸方程式。

3.1順序查找問題

問題描述:在數(shù)組a[n]中順序查找一個(gè)元素key。若key在數(shù)組中,則輸出key在數(shù)組中的位置;否則,輸出n。其執(zhí)行時(shí)間為O(n)。

4結(jié)束語

本文的推導(dǎo)過程建立在嚴(yán)格的一階謂詞邏輯演算上,讓人信服,這也提高了算法程序的可靠性。下面的工作是在遞歸時(shí)間度量的基礎(chǔ)上進(jìn)一步引入真實(shí)時(shí)間度量,有望在實(shí)時(shí)軟件系統(tǒng)形式化開發(fā)和驗(yàn)證中得到應(yīng)用。

參考文獻(xiàn):

[1]HEHNER E C R,鄭宇華,萬劍怡.一種實(shí)用的程序設(shè)計(jì)理論[M].New York:SpringerVerlag,1993.

[2]XUE Jinyun.A unified approach for developing efficien algorithmic programs[J].Journal of Computer Science and Technology,1997,12(4):314-329.

[3]XUE Jinyun. A practicable approach for formal development of algorithmic programs[C]//Proc of ISFST’99.Japan:Software Association,1999.

[4]XUE Jinyun.Two new strategies for developing loop invariants and its applications[J].Journal of Computer Science and Technology,1993,8(2):147154.

[5]XUE Jinyun,DAVIS R.A derivation and proof of Knuth’ binary to decimal program[J].

SoftwareConcepts and Tools,1997,8(4):149-156.

[6]XUE Jinyun. Formal development of graph algorithmic programs using partitionandrecur[J].Journal of Computer Science and Technology,1998,13(6):553-561.

[7]徐家福,陳道蓄,呂建,等.軟件自動(dòng)化[M].北京:清華大學(xué)出版社,1994.

[8]王曉東.計(jì)算機(jī)算法設(shè)計(jì)與分析[M].2版.北京:電子工業(yè)出版社,2001.

“本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文”

主站蜘蛛池模板: 久久免费观看视频| 欧美不卡在线视频| 欧美黄网在线| 国产你懂得| 欧美一级特黄aaaaaa在线看片| 91欧洲国产日韩在线人成| 午夜福利在线观看入口| 无码内射在线| 国产成人1024精品下载| 成年人视频一区二区| 亚洲动漫h| 中国成人在线视频| 婷婷激情亚洲| 伊人无码视屏| 亚洲大学生视频在线播放| 亚洲精品少妇熟女| 99精品国产电影| 久久综合九色综合97婷婷| 久久综合婷婷| 亚洲成人精品| 国产精品无码在线看| 亚洲天堂色色人体| 在线无码九区| 欧美日本激情| 欧美在线综合视频| 国产午夜无码专区喷水| 国产拍在线| 亚洲一区国色天香| 国产精品久久国产精麻豆99网站| 午夜国产大片免费观看| 亚洲资源在线视频| 欧美国产精品不卡在线观看| 男女男精品视频| 亚洲精品欧美日本中文字幕| 国产人成网线在线播放va| 亚洲成a人片77777在线播放| 亚洲第一区精品日韩在线播放| 91福利在线看| 综合天天色| 99热这里只有精品免费| 国产成人调教在线视频| 人妻无码中文字幕一区二区三区| 无码福利日韩神码福利片| 亚洲AV无码一二区三区在线播放| 国产亚洲精| 欧美在线免费| 国产99精品视频| 91精品综合| 国产精品自拍露脸视频| 国产精品无码久久久久久| AV在线麻免费观看网站| 亚洲欧美在线综合一区二区三区| 人妻丰满熟妇AV无码区| 国产剧情国内精品原创| 六月婷婷激情综合| 天天综合网站| 国产精品成人免费综合| 欧美性爱精品一区二区三区| 欧美 亚洲 日韩 国产| 日韩欧美国产另类| 色噜噜综合网| 国产欧美性爱网| 久久a级片| 亚洲欧美另类视频| a毛片在线| 国产97视频在线观看| 国产精品免费露脸视频| 91无码人妻精品一区| 特级毛片8级毛片免费观看| 欧美在线视频不卡| 国产jizz| 岛国精品一区免费视频在线观看| 国产精品永久在线| 人妻少妇乱子伦精品无码专区毛片| 1769国产精品视频免费观看| 91网址在线播放| 亚洲精品欧美日本中文字幕| 91亚洲国产视频| 五月婷婷丁香综合| 日韩欧美国产中文| 无码AV动漫| 久久一本日韩精品中文字幕屁孩|