- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
NP完全性理論與近似演算法*9.1計算模型在進行問題的計算複雜性分析之前,首先必須建立求解問題所用的計算模型,包括定義該計算模型中所用的基本運算。建立計算模型的目的是為了使問題的計算複雜性分析有一個共同的客觀尺度。3個基本計算模型:隨機存取機RAM(RandomAccessMachine);隨機存取存儲程式機RASP(RandomAccessStoredProgramMachine)圖靈機(TuringMachine)。這3個計算模型在計算能力上是等價的,但在計算速度上是不同的。*1、RAM的結構9.1.1隨機存取機RAM*2、RAM程式一個RAM程式定義了從輸入帶到輸出帶的一個映射。可以對這種映射關係作2種不同的解釋。解釋一:把RAM程式看成是計算一個函數。若一個RAM程式P總是從輸入帶前n個方格中讀入n個整數x1,x2,…,xn,並且在輸出帶的第一個方格上輸出一個整數y後停機,那麼就說程式P計算了函數f(x1,x2,…,xn)=y解釋二:把RAM程式當作一個語言接受器。將字串S=a1a2…an放在輸入帶上。在輸入帶的第一個方格中放入符號a1,第二個方格中放入符號a2,…,第n個方格中放入符號an。然後在第n+1個方格中放入0,作為輸入串的結束標誌符。如果一個RAM程式P讀了字串S及結束標誌符0後,在輸出帶的第一格輸出一個1並停機,就說程式P接受字串S。*3、RAM程式的耗費標準標準一:均勻耗費標準在均勻耗費標準下,每條RAM指令需要一個單位時間;每個寄存器佔用一個單位空間。以後除特別注明,RAM程式的複雜性將按照均勻耗費標準衡量。標準二:對數耗費標準對數耗費標準是基於這樣的假定,即執行一條指令的耗費與以二進位表示的指令的運算元長度成比例。在RAM計算模型下,假定一個寄存器可存放一個任意大小的整數。因此若設l(i)是整數i所占的二進位位數,則*9.1.2隨機存取存儲程式機RASP1、RASP的結構RASP的整體結構類似於RAM,所不同的是RASP的程式是存儲在寄存器中的。每條RASP指令佔據2個連續的寄存器。第一個寄存器存放操作碼的編碼,第二個寄存器存放地址。RASP指令用整數進行編碼。2、RASP程式的複雜性不管是在均勻耗費標準下,還是在對數耗費標準下,RAM程式和RASP程式的複雜性只差一個常數因數。在一個計算模型下T(n)時間內完成的輸入-輸出映射可在另一個計算模型下模擬,並在kT(n)時間內完成。其中k是一個常數因數。空間複雜性的情況也是類似的。*9.1.3圖靈機*續根據有限狀態控制器的當前狀態及每個讀寫頭讀到的帶符號,圖靈機的一個計算步可實現下麵3個操作之一或全部。(1)改變有限狀態控制器中的狀態。(2)清除當前讀寫頭下的方格中原有帶符號並寫上新的帶符號。(3)獨立地將任何一個或所有讀寫頭,向左移動一個方格(L)或向右移動一個方格(R)或停在當前單元不動(S)。k帶圖靈機可形式化地描述為一個7元組(Q,T,I,δ,b,q0,qf),其中:(1)Q是有限個狀態的集合。(2)T是有限個帶符號的集合。(3)I是輸入符號的集合,I?T。(4)b是唯一的空白符,b∈T-I。(5)q0是初始狀態。(6)qf是終止(或接受)狀態。(7)δ是移動函數。它是從Q?Tk的某一子集映射到Q?(T?{L,R,S})k的函數。*續與RAM模型類似,圖靈機既可作為語言接受器,也可作為計算函數的裝置。圖靈機M的時間複雜性T(n)是它處理所有長度為n的輸入所需的最大計算步數。如果對某個長度為n的輸入,圖靈機不停機,T(n)對這個n值無定義。圖靈機的空間複雜性S(n)是它處理所有長度為n的輸入時,在k條帶上所使用過的方格數的總和。如果某個讀寫頭無限地向右移動而不停機,S(n)也無定義。*9.2P類與NP類問題一般地說,將可由多項式時間演算法求解的問題看作是易處理的問題,而將需要超多項式時間才能求解的問題看作是難處理的問題。有許多問題,從表面上看似乎並不比排序或圖的搜索等問題更困難,然而至今人們還沒有找到解決這些問題的多項式時間演算法,也沒有人能夠證明這些問題需要超多項式時間下界。在圖靈機計算模型下,這類問題的計算複雜性至今未知。為了研究這類問題的計算複雜性,人們提出了另一個能力更強的計算模型,即非確定性圖靈機計算模型,簡記為NDTM(NondeterministicTuringMachine)。在非確定性圖靈機計算模型下,許多問題可以在多項式時間內求解。*9.2.1非確定性圖靈機在圖靈機計算模型中,移動函數δ是單值的,即對於Q?Tk中的每一個值,當它屬於δ的定義域時,Q?(T?{L
文档评论(0)