欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

NP完全性理論與近似算法

算法與數(shù)據(jù)結(jié)構(gòu) ? 來(lái)源:未知 ? 作者:胡薇 ? 2018-06-22 16:12 ? 次閱讀

一、圖靈機(jī)

根據(jù)有限狀態(tài)控制器的當(dāng)前狀態(tài)及每個(gè)讀寫頭讀到的帶符號(hào),圖靈機(jī)的一個(gè)計(jì)算步可實(shí)現(xiàn)下面3個(gè)操作之一或全部。

改變有限狀態(tài)控制器中的狀態(tài)。

清除當(dāng)前讀寫頭下的方格中原有帶符號(hào)并寫上新的帶符號(hào)。

獨(dú)立地將任何一個(gè)或所有讀寫頭,向左移動(dòng)一個(gè)方格(L)或向右移動(dòng)一個(gè)方格(R)或停在當(dāng)前單元不動(dòng)(S)。

k帶圖靈機(jī)可形式化地描述為一個(gè)7元組(Q,T,I,δ,b,q0,qf),其中:

Q是有限個(gè)狀態(tài)的集合。

T是有限個(gè)帶符號(hào)的集合。

I是輸入符號(hào)的集合

b是唯一的空白符,b∈T-I。

q0是初始狀態(tài)。

qf是終止(或接受)狀態(tài)。

δ是移動(dòng)函數(shù)。

它是從Q×Tk的某一子集映射到Q×(T×{L,R,S})k的函數(shù)。

圖靈機(jī)M的時(shí)間復(fù)雜性T(n)是它處理所有長(zhǎng)度為n的輸入所需的最大計(jì)算步數(shù)。如果對(duì)某個(gè)長(zhǎng)度為n的輸入,圖靈機(jī)不停機(jī),T(n)對(duì)這個(gè)n值無(wú)定義。

圖靈機(jī)的空間復(fù)雜性S(n)是它處理所有長(zhǎng)度為n的輸入時(shí),在k條帶上所使用過(guò)的方格數(shù)的總和。如果某個(gè)讀寫頭無(wú)限地向右移動(dòng)而不停機(jī),S(n)也無(wú)定義。

確定型圖靈機(jī)

有限狀態(tài)集Q,狀態(tài)q0:初始狀態(tài);qy:接受狀態(tài);狀態(tài)qn:不接受狀態(tài)。

字符集合{0, 1, b} ;其中b是空格符。

轉(zhuǎn)換功能:

輸入x = 101000b

執(zhí)行順序:

q0輸入1 (q0,r)右移磁頭到0

q0輸入0 (q0,r)右移磁頭到1

q0輸入0 (q0,r)右移磁頭到0

...

q0輸入b (q1,l)左移磁頭到0

q1輸入0 (q2,b)

q2輸入b (q2,l)左移磁頭到0

q2輸入0 (q3,b)

q3輸入b (qy,l)退出

二、P類與NP類問(wèn)題

一般地說(shuō),將可由多項(xiàng)式時(shí)間算法求解的問(wèn)題看作是易處理的問(wèn)題,而將需要超多項(xiàng)式時(shí)間才能求解的問(wèn)題看作是難處理的問(wèn)題。

有許多問(wèn)題,從表面上看似乎并不比排序或圖的搜索等問(wèn)題更困難,然而至今人們還沒(méi)有找到解決這些問(wèn)題的多項(xiàng)式時(shí)間算法,也沒(méi)有人能夠證明這些問(wèn)題需要超多項(xiàng)式時(shí)間下界。

在圖靈機(jī)計(jì)算模型下,這類問(wèn)題的計(jì)算復(fù)雜性至今未知。

為了研究這類問(wèn)題的計(jì)算復(fù)雜性,人們提出了另一個(gè)能力更強(qiáng)的計(jì)算模型,即非確定性圖靈機(jī)計(jì)算模型,簡(jiǎn)記為NDTM(Nondeterministic Turing Machine)。

在非確定性圖靈機(jī)計(jì)算模型下,許多問(wèn)題可以在多項(xiàng)式時(shí)間內(nèi)求解。

非確定性圖靈機(jī)

在圖靈機(jī)計(jì)算模型中,移動(dòng)函數(shù)δ是單值的,即對(duì)于Q′Tk中的每一個(gè)值,當(dāng)它屬于δ的定義域時(shí),Q′(T′{L,R,S})k中只有唯一的值與之對(duì)應(yīng),稱這種圖靈機(jī)為確定性圖靈機(jī),簡(jiǎn)記為DTM(Deterministic Turing Machine)。

非確定性圖靈機(jī)(NDTM):一個(gè)k帶的非確定性圖靈機(jī)M是一個(gè)7元組:(Q,T,I,δ,b,q0,qf)。與確定性圖靈機(jī)不同的是非確定性圖靈機(jī)允許移動(dòng)函數(shù)δ具有不確定性,即對(duì)于Q×Tk中的每一個(gè)值(q;x1,x2,…,xk),當(dāng)它屬于δ的定義域時(shí),Q×(T×{L,R,S})k中有唯一的一個(gè)子集δ(q;x1,x2,…,xk)與之對(duì)應(yīng)??梢栽讦?q;x1,x2,…,xk)中隨意選定一個(gè)值作為它的函數(shù)值。

P類與NP類語(yǔ)言定義

P={L|L是一個(gè)能在多項(xiàng)式時(shí)間內(nèi)被一臺(tái)DTM所接受的語(yǔ)言}

NP={L|L是一個(gè)能在多項(xiàng)式時(shí)間內(nèi)被一臺(tái)NDTM所接受的語(yǔ)言}

由于一臺(tái)確定性圖靈機(jī)可看作是非確定性圖靈機(jī)的特例,所以可在多項(xiàng)式時(shí)間內(nèi)被確定性圖靈機(jī)接受的語(yǔ)言也可在多項(xiàng)式時(shí)間內(nèi)被非確定性圖靈機(jī)接受。故P í NP。

NP類語(yǔ)言舉例——無(wú)向圖的團(tuán)問(wèn)題

該問(wèn)題的輸入是一個(gè)有n個(gè)頂點(diǎn)的無(wú)向圖G=(V,E)和一個(gè)整數(shù)k。要求判定圖G是否包含一個(gè)k頂點(diǎn)的完全子圖(團(tuán)),即判定是否存在V’V,|V’|=k,且對(duì)于所有的u,v∈V’,有(u,v)∈E。

若用鄰接矩陣表示圖G,用二進(jìn)制串表示整數(shù)k,則團(tuán)問(wèn)題的一個(gè)實(shí)例可以用長(zhǎng)度為的二進(jìn)位串表示。因此,團(tuán)問(wèn)題可表示為語(yǔ)言:

CLIQUE={w#v|w,v∈{0,1}*,以w為鄰接矩陣的圖G有一個(gè)k頂點(diǎn)的團(tuán),其中v是k的二進(jìn)制表示。}

接受該語(yǔ)言CLIQUE的非確定性算法:用非確定性選擇指令選出包含k個(gè)頂點(diǎn)的候選頂點(diǎn)子集V,然后確定性地檢查該子集是否是團(tuán)問(wèn)題的一個(gè)解。算法分為3個(gè)階段

算法的第一階段將輸入串w#v分解,并計(jì)算出n =?,以及用v表示的整數(shù)k。若輸入不具有形式w#v或|w|不是一個(gè)平方數(shù)就拒絕該輸入。顯而易見,第一階段可在時(shí)間內(nèi)完成。

在算法的第二階段中,非確定性地選擇V的一個(gè)k元子集V’V。

算法的第三階段是確定性地檢查V’的團(tuán)性質(zhì)。若V’是一個(gè)團(tuán)則接受輸入,否則拒絕輸入。這顯然可以在時(shí)間內(nèi)完成。因此,整個(gè)算法的時(shí)間復(fù)雜性為?。

非確定性算法在多項(xiàng)式時(shí)間內(nèi)接受語(yǔ)言CLIQUE,故CLIQUE∈NP.

NP完全問(wèn)題

PNP。

直觀上看,P類問(wèn)題是確定性計(jì)算模型下的易解問(wèn)題類,而NP類問(wèn)題是非確定性計(jì)算模型下的易驗(yàn)證問(wèn)題類。

大多數(shù)的計(jì)算機(jī)科學(xué)家認(rèn)為NP類中包含了不屬于P類的語(yǔ)言,即P≠NP。

NP完全問(wèn)題有一種令人驚奇的性質(zhì),即如果一個(gè)NP完全問(wèn)題能在多項(xiàng)式時(shí)間內(nèi)得到解決,那么NP中的每一個(gè)問(wèn)題都可以在多項(xiàng)式時(shí)間內(nèi)求解,即P = NP。

目前還沒(méi)有一個(gè)NP完全問(wèn)題有多項(xiàng)式時(shí)間算法。

三、NP完全問(wèn)題的近似算法

迄今為止,所有的NP完全問(wèn)題都還沒(méi)有多項(xiàng)式時(shí)間算法。

對(duì)于這類問(wèn)題,通常可采取以下幾種解題策略。

只對(duì)問(wèn)題的特殊實(shí)例求解

用動(dòng)態(tài)規(guī)劃法或分支限界法求解

用概率算法求解

只求近似解

用啟發(fā)式方法求解

近似算法的性能

若一個(gè)最優(yōu)化問(wèn)題的最優(yōu)值為c*,求解該問(wèn)題的一個(gè)近似算法求得的近似最優(yōu)解相應(yīng)的目標(biāo)函數(shù)值為c,則將該近似算法的性能比定義為

。

在通常情況下,該性能比是問(wèn)題輸入規(guī)模n的一個(gè)函數(shù)ρ(n),即

該近似算法的相對(duì)誤差定義為:。若對(duì)問(wèn)題的輸入規(guī)模n,有一函數(shù)ε(n)使得則稱ε(n)為該近似算法的相對(duì)誤差界。近似算法的性能比ρ(n)與相對(duì)誤差界ε(n)之間顯然有如下關(guān)系:。

旅行售貨員問(wèn)題近似算法

問(wèn)題描述:給定一個(gè)完全無(wú)向圖G=(V,E),其每一邊(u,v)∈E有一非負(fù)整數(shù)費(fèi)用c(u,v)。要找出G的最小費(fèi)用哈密頓回路。

旅行售貨員問(wèn)題的一些特殊性質(zhì):

比如,費(fèi)用函數(shù)c往往具有三角不等式性質(zhì),即對(duì)任意的3個(gè)頂點(diǎn)u,v,w∈V,有:c(u,w)≤c(u,v)+c(v,w)。當(dāng)圖G中的頂點(diǎn)就是平面上的點(diǎn),任意2頂點(diǎn)間的費(fèi)用就是這2點(diǎn)間的歐氏距離時(shí),費(fèi)用函數(shù)c就具有三角不等式性質(zhì)。

1 滿足三角不等式的旅行售貨員問(wèn)題

對(duì)于給定的無(wú)向圖G,可以利用找圖G的最小生成樹的算法設(shè)計(jì)找近似最優(yōu)的旅行售貨員回路的算法。

void approxTSP (Graph g)

{

選擇g的任一頂點(diǎn)r;

用Prim算法找出帶權(quán)圖g的一棵以r為根的最小生成樹T;

前序遍歷樹T得到的頂點(diǎn)表L;

將r加到表L的末尾,按表L中頂點(diǎn)次序組成回路H,作為計(jì) 算結(jié)果返回;

}

當(dāng)費(fèi)用函數(shù)滿足三角不等式時(shí),算法找出的旅行售貨員回路的費(fèi)用不會(huì)超過(guò)最優(yōu)旅行售貨員回路費(fèi)用的2倍。

實(shí)現(xiàn)

/* 主題:近似算法——旅行售貨員問(wèn)題

* 作者:chinazhangjie

* 郵箱:[email protected]

* 開發(fā)語(yǔ)言:C++

* 開發(fā)環(huán)境:Virsual Studio2005

* 時(shí)間: 2010.12.06

*/

#include

#include

#include

using namespace std;

structTreeNode

{

public:

TreeNode(intnVertexIndexA = 0,intnVertexIndexB = 0,intnWeight = 0)

: m_nVertexIndexA(nVertexIndexA),

m_nVertexIndexB(nVertexIndexB),

m_nWeight(nWeight)

{}

public:

intm_nVertexIndexA;

intm_nVertexIndexB;

intm_nWeight;

};

classMST_Prim

{

public:

MST_Prim()

{}

MST_Prim(const vector >& vnGraph)

{

m_nvGraph = vnGraph;

m_nNodeCount = (int)m_nvGraph.size();

}

void SetData(const vector >& vnGraph)

{

m_nvGraph = vnGraph;

m_nNodeCount = (int)m_nvGraph.size();

}

//

const vector& GetMSTree()const

{

returnm_tnMSTree;

}

//

const vector >& GetGraph()const

{

returnm_nvGraph;

}

void DoPrim()

{

// 是否被訪問(wèn)標(biāo)志

vector bFlag(m_nNodeCount,false);

bFlag[0] = true;

intnMaxIndexA;

intnMaxIndexB;

intj = 0;

while(j < m_nNodeCount - 1){

intnMaxWeight = numeric_limits::max();

// 找到當(dāng)前最短路徑

inti = 0;

while(i < m_nNodeCount){

if(!bFlag[i]){

++ i;

continue;

}

for(intj = 0;j < m_nNodeCount; ++ j){

if(!bFlag[j] && nMaxWeight > m_nvGraph[i][j]){

nMaxWeight = m_nvGraph[i][j];

nMaxIndexA = i;

nMaxIndexB = j;

}

}

++ i;

}

bFlag[nMaxIndexB] = true;

m_tnMSTree.push_back(TreeNode(nMaxIndexA,nMaxIndexB,nMaxWeight));

++ j;

}

// 輸出結(jié)果

/*for(vector::const_iterator ite = m_tnMSTree.begin();

ite != m_tnMSTree.end();

++ ite){

cout << (*ite).m_nVertexIndexA << "->"

<< (*ite).m_nVertexIndexB << " : "

<< (*ite).m_nWeight << endl;

}*/

}

private:

vector > m_nvGraph;// 無(wú)向連通圖

vectorm_tnMSTree;// 最小生成樹

intm_nNodeCount;

};

classAA_TSP

{

public:

AA_TSP(const vector >& vnGraph)

{

m_mstPrim.SetData(vnGraph);

}

void Get_AA_Path()

{

m_mstPrim.DoPrim();

vectormstree = m_mstPrim.GetMSTree();

vector >graph = m_mstPrim.GetGraph();

intiweight = 0;

for(vector::const_iterator ite = mstree.begin();

ite != mstree.end();

++ ite){

cout << (*ite).m_nVertexIndexA << "->"

<< (*ite).m_nVertexIndexB << " : "

<< (*ite).m_nWeight << endl;

iweight += (*ite).m_nWeight;

}

cout << mstree[mstree.size()-1].m_nVertexIndexB << "->"

<< mstree[0].m_nVertexIndexA << " : "

<< graph[mstree[0].m_nVertexIndexA][mstree[mstree.size()-1].m_nVertexIndexB]

<< endl;

iweight += graph[mstree[0].m_nVertexIndexA][mstree[mstree.size()-1].m_nVertexIndexB];

cout << "Total weight: " << iweight??<< endl;

}

private:

MST_Primm_mstPrim;

};

intmain()

{

const intcnNodeCount = 5;

vector > graph(cnNodeCount);

for(size_ti = 0;i < graph.size(); ++ i){

graph[i].resize(cnNodeCount,numeric_limits::max());

}

graph[0][1] = 5;

graph[0][2] = 1;

graph[0][3] = 2;

graph[0][4] = 3;

graph[1][0] = 5;

graph[1][2] = 4;

graph[1][3] = 2;

graph[1][4] = 2;

graph[2][1] = 4;

graph[2][0] = 1;

graph[2][3] = 5;

graph[2][4] = 3;

graph[3][1] = 2;

graph[3][2] = 5;

graph[3][0] = 2;

graph[3][4] = 2;

graph[4][1] = 2;

graph[4][2] = 3;

graph[4][3] = 2;

graph[4][0] = 3;

AA_TSP aa(graph);

aa.Get_AA_Path();

return0;

}

2 一般的旅行售貨員問(wèn)題

在費(fèi)用函數(shù)不一定滿足三角不等式的一般情況下,不存在具有常數(shù)性能比的解TSP問(wèn)題的多項(xiàng)式時(shí)間近似算法,除非P=NP。換句話說(shuō),若P≠NP,則對(duì)任意常數(shù)ρ>1,不存在性能比為ρ的解旅行售貨員問(wèn)題的多項(xiàng)式時(shí)間近似算法。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 圖靈機(jī)
    +關(guān)注

    關(guān)注

    1

    文章

    8

    瀏覽量

    2262

原文標(biāo)題:NP 完全性理論與近似算法

文章出處:【微信號(hào):TheAlgorithm,微信公眾號(hào):算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    李雅普諾夫穩(wěn)定性理論

    李雅普諾夫穩(wěn)定性理論1892年,俄國(guó)Lyapunov在《運(yùn)動(dòng)穩(wěn)定性的 一般問(wèn)題》中提出了穩(wěn)定性理論主要內(nèi)容:李氏第一法(間接法):求解特征方程   特征值李氏第二法(直接法):利用經(jīng)驗(yàn)和技巧來(lái)構(gòu)造L函數(shù)
    發(fā)表于 05-26 11:50

    清華大學(xué)的線性理論

    清華大學(xué)的線性理論
    發(fā)表于 05-14 12:44

    ComputeColStats UDF中 近似算法的介紹

    的平衡。接下來(lái)的內(nèi)容是關(guān)于目前在ComputeColStats中用的一些近似算法。二,收集的內(nèi)容目前針對(duì)列主要會(huì)收集以下統(tǒng)計(jì)信息:cntRows : 列中總數(shù)據(jù)個(gè)數(shù),包括nulll值avgColLen
    發(fā)表于 04-26 15:42

    開槽波導(dǎo)3次諧波回旋行波放大管非線性理論與數(shù)值模擬

    開槽波導(dǎo)3次諧波回旋行波放大管非線性理論與數(shù)值模擬 本文討論了開槽圓柱波導(dǎo)的高頻場(chǎng)分布,給出了注波互作用自洽非線性理論.在電子作大回旋
    發(fā)表于 10-21 22:13 ?1022次閱讀
    開槽波導(dǎo)3次諧波回旋行波放大管非線<b class='flag-5'>性理論</b>與數(shù)值模擬

    電源完整性理論基礎(chǔ)

    電源完整性理論基礎(chǔ),很全面的經(jīng)驗(yàn)總結(jié)喲,電源完整性
    發(fā)表于 12-22 14:49 ?15次下載

    基于改進(jìn)的多元自適應(yīng)樣條回歸的全局近似算法_羅小玲

    基于改進(jìn)的多元自適應(yīng)樣條回歸的全局近似算法_羅小玲
    發(fā)表于 03-16 14:50 ?1次下載

    簡(jiǎn)稱 PI(power integrity)電源完整性理論基礎(chǔ)

    簡(jiǎn)稱 PI(power integrity)電源完整性理論基礎(chǔ)
    發(fā)表于 09-15 17:23 ?12次下載
    簡(jiǎn)稱 PI(power integrity)電源完整<b class='flag-5'>性理論</b>基礎(chǔ)

    改進(jìn)凸包插值算法結(jié)合大概率優(yōu)化的演化算法

    近似算法在解決超大規(guī)模旅行商問(wèn)題時(shí)無(wú)法獲得高精度優(yōu)化解(或者次優(yōu)解),智能算法雖然可以獲得精度高于近似算法的解,很難在合理時(shí)間內(nèi)獲得。采用改良的凸包近似算法構(gòu)成初始解并結(jié)合大概率優(yōu)化策
    發(fā)表于 11-22 11:48 ?4次下載

    團(tuán)圖點(diǎn)刪除問(wèn)題的近似算法

    針對(duì)團(tuán)圖點(diǎn)刪除問(wèn)題的3一近似算法得到的近似解可能較大的問(wèn)題,通過(guò)對(duì)團(tuán)圖點(diǎn)刪除問(wèn)題及團(tuán)圖特性的分析,提出了該問(wèn)題的一個(gè)新的近似算法。新算法通過(guò)考察圖中節(jié)點(diǎn)的一階和二階鄰點(diǎn)來(lái)計(jì)算節(jié)點(diǎn)關(guān)聯(lián)的
    發(fā)表于 01-04 14:58 ?0次下載

    如何使用Visual C++實(shí)現(xiàn)裝箱問(wèn)題的BF算法

    c 的箱子里。采用不同裝箱方法所需的箱子數(shù)可能不同[1] 。要解決的問(wèn)題是如何使用最少的箱子數(shù)將這 m 種貨品裝進(jìn)去。裝箱問(wèn)題是 NP 問(wèn)題,這是不容易得到一個(gè)最佳的解決方案,為了比較快速得到滿意解,近似算法經(jīng)常被使用。常見的算法
    發(fā)表于 05-13 08:00 ?1次下載
    如何使用Visual C++實(shí)現(xiàn)裝箱問(wèn)題的BF<b class='flag-5'>算法</b>

    基于量子軟件的量子絕熱近似算法求解

    經(jīng)典近似算法求解最大割問(wèn)題時(shí),時(shí)間復(fù)雜度與圖的復(fù)雜度呈正相關(guān)。為提高求解效率,使用量子絕熱近似算法求解無(wú)向圖最大割問(wèn)題哈密頓量的基態(tài),其基態(tài)對(duì)應(yīng)該問(wèn)題的最優(yōu)解。該算法的時(shí)間復(fù)雜度不依賴于圖的頂點(diǎn)
    發(fā)表于 05-12 14:28 ?8次下載

    電磁彈性理論及其應(yīng)用—電磁彈性結(jié)構(gòu)力學(xué)的理論模型等

    介紹了電磁彈性理論及其應(yīng)用—電磁彈性結(jié)構(gòu)力學(xué)的理論模型、研究方法、定量分析程序
    發(fā)表于 02-13 10:39 ?2次下載

    反饋放大器的穩(wěn)定性理論及應(yīng)用

    eetop.cn_反饋放大器的穩(wěn)定性理論及應(yīng)用
    發(fā)表于 06-13 14:44 ?9次下載

    彈塑性理論

    彈塑性理論,介紹物體在受力作用下的彈塑性變形
    發(fā)表于 06-26 09:36 ?0次下載

    近似算法及對(duì)某些標(biāo)準(zhǔn)問(wèn)題的適用性

      背景數(shù)學(xué)表達(dá)式的評(píng)估常伴隨常量、變量分析和方程的階,可用于衡量近似的復(fù)雜度。此類評(píng)估將問(wèn)題分解為 P 和 NP 難問(wèn)題。P 問(wèn)題和 NP 問(wèn)題的策略P 問(wèn)題是指可以在多項(xiàng)式時(shí)間內(nèi)求解的問(wèn)題。
    的頭像 發(fā)表于 07-06 11:02 ?836次閱讀