国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

一文理解NP完全理論,NP問題,NPC問題

這篇具有很好參考價值的文章主要介紹了一文理解NP完全理論,NP問題,NPC問題。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

在以往的算法中,所接觸到的大都是多項式時間內(nèi)可完成的算法,比如O(n),O(nlogn),O(n^2)…,但仍存在一些算法的時間復(fù)雜度為:O(n^logn),O(2^n),O(n!)是非多項式時間算法,當(dāng)此類程序規(guī)模一旦過大,便成為目前的計算機解決不了的難題。因此嘗試用NP完全理論進行理解。

目錄

NP問題—基本概念、規(guī)約

基本概念:P問題

基本概念:NP問題

基本概念:NPC問題

基本概念:P、NP、NPC問題的關(guān)系

基本概念:判斷一個問題是否為NP問題

基本概念:歸約性

準(zhǔn)確定義(歸約)

規(guī)約特點

基本概念:歸約證明

NP問題—P問題的證明?

2合取范式(CNF)的可滿足性問題(SAT)

2合取范式(CNF)到圖的轉(zhuǎn)換

NP問題—NPC問題的證明?

第一個NPC問題

公式可滿足性證明

3CNF問題

團問題

證明NP問題

3CNF可以規(guī)約為團問題

證明其實例對應(yīng)性與輸出一致性

頂點覆蓋

首先證明實例對應(yīng)性?

接著證明輸出一致性


NP問題—基本概念、規(guī)約

基本概念:P問題

定義P類問題(polynominal):在多項式時間內(nèi)可以解決的問題。

P類問題通常被認(rèn)為是比較容易解決的問題,它的時間復(fù)雜度通常為多項式時間,如O(n),O(nlogn),O()等等。數(shù)據(jù)結(jié)構(gòu)與算法中學(xué)習(xí)的搜索、排序、小數(shù)背包問題等都是P類問題。

基本概念:NP問題

定義NP類問題(Nondeterministic Polynominal):給定一個證書(certificate)也可以理解為一個解或結(jié)果,可以在多項式時間內(nèi)驗證此證書是否是問題的一個解的問題。比如,在哈密頓回路中,我們給出一個所有節(jié)點的序列,即證書,可以很容易在多項式時間內(nèi)驗證這個證書是否是一個哈密頓回路。?

簡單來說,一個問題是P問題,則其也一定是NP問題,反之一個問題是NP問題,則并不一定是P問題。一個問題是NP問題要證明其一定是P問題,也就P=NP,這還屬于一個未解難題,因此通常認(rèn)為P≠NP。

基本概念:NPC問題

定義NPC問題(NP完全問題)是NP類問題中最難的問題,包含兩個條件:

  1. 1.是一個NP問題(其實是首先限定了一個問題的難度范圍,不能太難,至少可驗證解)
  2. 2.所有的NP問題都可以‘轉(zhuǎn)換’成此問題(確切的定義是:所有的NP問題都可以歸約(reducibility)成此問題,此處為了方便理解,用‘轉(zhuǎn)換’來代替)

補充:也有一類問題叫NP Hard問題,相較于NPC問題,它沒有要求一個NP問題這個條件,也就是意味著其甚至在多項時間解都不可驗證。

基本概念:P、NP、NPC問題的關(guān)系

目前普遍認(rèn)為P≠NP,雖然還沒有得到確切證明。

npc問題轉(zhuǎn)為np問題為什么,雜七雜八,算法,數(shù)據(jù)結(jié)構(gòu),排序算法,動態(tài)規(guī)劃,貪心算法

基本概念:判斷一個問題是否為NP問題

  • >也就是給出一個證書(解),可否在多項式時間內(nèi)判斷它是否為原問題的一個解
  • >最優(yōu)化問題需要轉(zhuǎn)化為判斷性問題

比如給一你一個數(shù)組排序結(jié)果,判斷其是否降序排列,很容易驗證。而如果是著名的旅行商問題,也就是在在一個完全圖中,找到一個最短回路?,F(xiàn)在給你一個完全圖,和一個回路,可以驗證其是否為回路,但卻很難驗證是否為最短回路,也就是旅行商問題的一個解。旅行商問題便是最優(yōu)化問題,那么可以考慮轉(zhuǎn)化:

旅行商問題轉(zhuǎn)化為:

  • >此圖中是否存在總權(quán)重為1的回路?
  • >此圖中是否存在總權(quán)重為2的回路?
  • >此圖中是否存在總權(quán)重為n的回路?

轉(zhuǎn)化為這樣的問題,便可以從第一個問題開始判斷,直到判斷出已存在的權(quán)重最小的回路,便是旅行商問題的最優(yōu)解。同理,一個優(yōu)化問題可分解為多個判定性問題如果能夠證明一個判定性問題為NP難時,顯然原問題也是NP難的

基本概念:歸約性

通俗的講,一個問題(如Q1)可以規(guī)約為另外一個問題(如Q2)是指問題Q1可以轉(zhuǎn)換為問題Q2,之后可以通過求解Q2的方法來求解Q1

如:求解一元一次方程(問題Q1)可歸為求解一元二次方程(問題Q2):一元二次方程的二次項系數(shù)為0即可,之后可以通過求解一元二次方程的方法來求解一元一次方程

準(zhǔn)確定義(歸約)

一個問題(Q1)可以規(guī)約為另外一個問題(Q2),需滿足以下兩個條件:

  1. 1.實例對應(yīng)性:Q1的任意一個實例Ф,通過函數(shù)f都可轉(zhuǎn)化成Q2的一個實例f(Ф),且這個轉(zhuǎn)化函數(shù)f(Ф)必須為多項式時間;
  2. 2.輸出一致性:規(guī)約后的輸出和原來的輸出一致,即,如algo1是Q1的算法,algo2是Q2的算法,則在相同的輸入下,algo1(Q1)=algo2(Q2)。

規(guī)約特點

  • 1.歸約具有傳遞性
  • 2.如果問題A可歸約為問題B,問題B可歸約為問題C,則問題A一定可歸約為問題C。

基本概念:歸約證明

怎么去證明一個問題轉(zhuǎn)換到另一個問題,這是一種規(guī)約呢?可按如下幾點,分別證明實例的對應(yīng)性和輸出的一致性。

  • ? ? 1.Q1問題的任意一個實例都可以轉(zhuǎn)化為Q2問題的一個實例。
  • ? ? 2.這個轉(zhuǎn)化過程是多項式時間內(nèi)可以完成的,或者說轉(zhuǎn)化函數(shù)f是個多項式函數(shù)。
  • ? ? 3.Q1問題的任意一個實例,如果其輸出為真,則對應(yīng)Q2問題實例的輸出也一定為真。
  • ? ? 4.Q2問題的任意一個實例,如果其輸出為真,則對應(yīng)Q1問題實例的輸出也一定為真

如果問題Q1可以歸約為問題Q2,則記為Q1Q2,表示Q1小于Q2的難度不會超過一個多項式時間因子(但通常我們可以根據(jù)小于等于號≤來通俗的認(rèn)為Q1的難度要小于等于Q2)。Q1Q2,可以推出:

  • 如果Q1是NPC問題,則Q2必然是NPC問題(因Q2不比Q1容易);
  • 如果Q2是P問題,則Q1必然是P問題(因Q1不比Q2難);

其實很容易理解,NPC問題代表是較難的問題,Q1都屬于NPC,那么比Q1還難的Q2自然也是NPC問題;P問題代表是簡單的問題,如果Q2屬于P問題,那比Q2還簡單的Q1自然也是P問題。

NP問題—P問題的證明?

根據(jù)概念,已知能夠設(shè)計一個算法,在多項式時間內(nèi)解決一個問題,那這個問題就是屬于P問題。而如果目前的問題找不到這樣一個算法去直接解答,就需要采用證明的方式去驗證其是P問題。即如果一個問題Q1能夠規(guī)約到Q2,且已知Q2是P問題,那么Q1也必然是P問題。

2合取范式(CNF)的可滿足性問題(SAT)

定義(2CNF-SAT)2CNF是一個布爾表達(dá)式,其由子句(clause)的‘與’組成,而每個子句都由2個文字(literal,文字為一個變量或者變量的‘否’)的‘或’組成。如

,

其中共有x,y,z三個變量,這些變量及其’否’為文字,兩個文字構(gòu)成了一個子句。2CNF的可滿足性問題是指是否存在一個賦值,使得2CNF為真。

2合取范式(CNF)到圖的轉(zhuǎn)換

設(shè)2CNF-SAT有n個變量,m個子句,構(gòu)造圖G=(V,E),圖中共2n個節(jié)點,代表n個變量及每個變量的‘否’。對于2CNF中的每個子句,如,則圖中同時存在從節(jié)點到節(jié)點y的有向邊,和從到x的有向邊。?

如下圖,3個變量對應(yīng)圖中有6個節(jié)點,4個子句對應(yīng)圖中有8條邊,當(dāng)且僅當(dāng)2CNF中存在子句,圖G中存在邊和邊

npc問題轉(zhuǎn)為np問題為什么,雜七雜八,算法,數(shù)據(jù)結(jié)構(gòu),排序算法,動態(tài)規(guī)劃,貪心算法

也就可順勢推出結(jié)論

  1. 如圖G中存在邊,則必然會同時存在邊。
  2. 如圖中包含一條x到y(tǒng)的路徑,則必然也包含一條從到的路徑。

定理:2CNF是不可滿足的,當(dāng)且僅當(dāng)存在變量x,使得在圖G中同時存在

  • 一條x到?x的路徑
  • 一條?x到x的路徑

可用反證法來證明以上定理,也就是2CNF是可滿足的,且同時又存在上面兩條路徑。(具體證明有需要可以之后補上)。這就將2CNF的可滿足性問題()轉(zhuǎn)換到圖中是否存在x→?x和?x→x的路徑的問題(),這也是一個規(guī)約的過程,

?要證明以上這個規(guī)約的結(jié)論,就看其是否滿足上面提到的證明規(guī)約的4個點:

  • 1.實例的對應(yīng)性:構(gòu)造圖的實例就是按照2CNF問題的實例來轉(zhuǎn)的;并且是頂點和邊的數(shù)量是對應(yīng)的變量和子句的2倍,也是在多項式時間內(nèi)可完成的轉(zhuǎn)化。
  • 2.輸出的一致性:由以上定理證明了一組2CNF的賦值會固定對應(yīng)圖中存在的路徑情況;而對于圖問題中的實例的路徑,也會對應(yīng)到2CNF的值為真或假。

已證明這是個規(guī)約過程,接下來要試圖驗證推理

在以上方法得出的圖G=(V,E)中,可以在多項式時間內(nèi)驗證是否同時存在x→?x和?x→x路徑,也就是問題是P問題。

這其實很簡單,只需要對于圖G中的任意節(jié)點,通過廣度優(yōu)先(或者深度優(yōu)先)算法(復(fù)雜度為O(m))得出到其他節(jié)點的路徑,遍歷所有的節(jié)點就可以驗證圖G是否同時存在x→?x和?x→x的路徑。復(fù)雜度為O(mn),所以問題是P問題。再結(jié)合之前的結(jié)合定理和推論,得出2CNF可滿足性問題是P問題。

NP問題—NPC問題的證明?

這是最重要的一部分,其實也與上面類似,就是規(guī)約問題的證明。

回顧NPC問題的定義為:

  • 此問題是一個NP問題
  • 所有的NP問題都可以歸約為此問題

第一點還比較容易,第二點就比較復(fù)雜,但可以利用規(guī)約的傳遞性,所有的問題NP都能歸約到一個已知的NPC問題,也就能歸約到要求的問題Q,所以需證:

  1. 問題Q是一個NP問題
  2. 一個已知的NPC可以歸約為問題Q

第一個NPC問題

所以需要找第一個NPC問題,才能讓越來越多的NP問題進行規(guī)約。便是電路可滿足性問題:

  • 電路可滿足性問題問題:給定一個邏輯電路,問是否存在一種輸入使輸出為True
  • 其它的NPC問題都是由這個問題歸約而來的。因此,邏輯電路問題是NPC類問題的“鼻祖”
  • 有了第一個NPC問題后,一大堆NPC問題就出現(xiàn)了,因為再證明一個新的NPC問題只需要將一個已知的NPC問題歸約到它就行了

電路的可滿足問題簡單來說也就是給你一個電路,試問存不存在一組輸入,使得電路的輸出為真

npc問題轉(zhuǎn)為np問題為什么,雜七雜八,算法,數(shù)據(jù)結(jié)構(gòu),排序算法,動態(tài)規(guī)劃,貪心算法

有了第一個NPC問題,再來證明公式的可滿足性問題,比如給了一個公式,試問存不存在一種賦值使其為真。也可以看出判斷一個問題是不是NPC問題,全部都是判斷真假的驗證性問題。

npc問題轉(zhuǎn)為np問題為什么,雜七雜八,算法,數(shù)據(jù)結(jié)構(gòu),排序算法,動態(tài)規(guī)劃,貪心算法

所以第一個需要證的是:這是一個NP問題,

首先證明SAT∈NP,為此我們只要證明SAT的任意實例Ф,Ф的可滿足指派組成的證書(解)可以在多項式時間內(nèi)驗證,驗證算法:

  • 將公式Ф中的每個變量用相應(yīng)的值代換;
  • 計算所得的表達(dá)式。如果表達(dá)式的值是1,則公式Ф可滿足。

顯然上述的驗證算法的復(fù)雜度是關(guān)于n+m的多項式,即O(n+m)。

接下來需要證:這是一個NPC問題,就需要從電路歸約到公式可滿足性。顯而易見的是每個邏輯電路都可以寫成一個布爾公式。

  • 也就是存在f,使得任何一個實例x屬于電路,當(dāng)且僅當(dāng)f(x)屬于公式
  • 但如果直接這么寫,因每個電路門輸出線扇出為2或者2以上導(dǎo)致布爾公式的規(guī)模出現(xiàn)指數(shù)增長

每個電路輸出線扇出≥2的話,就很像數(shù)據(jù)結(jié)構(gòu)中的滿二叉樹或者多叉樹,節(jié)點數(shù)是呈指數(shù)型增長的,因此不能按這樣的方法來構(gòu)造。但我們并不需要完全的等價,只需要滿足輸出一致性就可以。

公式可滿足性證明

實例對應(yīng)性:
我們的目的不是將電路轉(zhuǎn)換為布爾公式,而是證明可滿足性,如果電路有可滿足指派,則電路每個門輸出都由其輸入決定,寫成表達(dá)式如,這樣轉(zhuǎn)換的話,邏輯電路和布爾表達(dá)式的輸出就是一致的。這就證明了實例對應(yīng)性。

npc問題轉(zhuǎn)為np問題為什么,雜七雜八,算法,數(shù)據(jù)結(jié)構(gòu),排序算法,動態(tài)規(guī)劃,貪心算法

輸出一致性:

  • 以上轉(zhuǎn)換為多項式時間
  • 如果電路有可滿足性實例,則電路輸出為1,而公式輸出也為1
  • 如果公式輸出為1,則顯然邏輯電路輸出也為1

npc問題轉(zhuǎn)為np問題為什么,雜七雜八,算法,數(shù)據(jù)結(jié)構(gòu),排序算法,動態(tài)規(guī)劃,貪心算法

3CNF問題

之前證明了2CNF是個P問題,現(xiàn)在來證3CNF形如下面公式的可滿足性是NPC問題:?

需要證明:?

  • 這是一個NP問題
  • 公式可滿足性可以歸約到3-CNF(已經(jīng)證明了公式可滿足性是NPC)

需要做的是:

  1. 將布爾公式轉(zhuǎn)換為子句的合取式
  2. 將子句轉(zhuǎn)換為合取范式
  3. 將子句轉(zhuǎn)為3個文字的合取取式

第一步就是建立語法樹,把給定的布爾公式的語法樹畫下來,如下圖。

npc問題轉(zhuǎn)為np問題為什么,雜七雜八,算法,數(shù)據(jù)結(jié)構(gòu),排序算法,動態(tài)規(guī)劃,貪心算法

?再將語法樹看作邏輯電路,由上面可知,邏輯電路可以轉(zhuǎn)換為合取范式

npc問題轉(zhuǎn)為np問題為什么,雜七雜八,算法,數(shù)據(jù)結(jié)構(gòu),排序算法,動態(tài)規(guī)劃,貪心算法

在轉(zhuǎn)換為合取范式,對上圖中的每個子句建立一個真值表,將真值表中為0的項,得到析取范式

npc問題轉(zhuǎn)為np問題為什么,雜七雜八,算法,數(shù)據(jù)結(jié)構(gòu),排序算法,動態(tài)規(guī)劃,貪心算法

?得到的析取范式等價于子句的否,運用德摩根定律,得出合取子句(將析取范式再取否)

npc問題轉(zhuǎn)為np問題為什么,雜七雜八,算法,數(shù)據(jù)結(jié)構(gòu),排序算法,動態(tài)規(guī)劃,貪心算法

而有時我們并不一定能得到如此恰好的每個子句中都有3個文字的情況,比如可能有2個文字,這時候可以隨便合取一個變量p或?p,只是為了滿足每個字句必須恰有3各不同的文字的語法要求

npc問題轉(zhuǎn)為np問題為什么,雜七雜八,算法,數(shù)據(jù)結(jié)構(gòu),排序算法,動態(tài)規(guī)劃,貪心算法

?以上的映射都是多項式時間,

  • step1:將布爾公式轉(zhuǎn)換為子句的合取式
  • ·同布爾電路轉(zhuǎn)換為布爾公式
  • step2:將子句轉(zhuǎn)換為合取范式
  • ·每個子句至多變?yōu)?個子句(至多3個變量)
  • step3:將子句轉(zhuǎn)為3個文字的合取取式
  • ·至多引入4個子句

整個過程的轉(zhuǎn)變基本都是等價的,所以對布爾公式和3CNF的賦值都會得到固定的真或假,所以這就是一個規(guī)約的過程。布爾公式是NPC問題,3CNF就也是NPC問題。

團問題

無向圖G=(V,E)中的團(clique)是一個頂點子集V'V,其中每一對頂點之間都由E中的一條邊來連接。換句話說,一個團是G的一個完全子圖。團的規(guī)模是指它所包含的頂點數(shù)。團問題是關(guān)于尋找圖中規(guī)模最大的團的最優(yōu)化問題。作為判定問題,我們僅僅要考慮的是:在圖中是否存在一個給定規(guī)模為k的團?其形式定義為:

CLIQUE={<G,k>:G是一個包含規(guī)模為k的團的圖}

那么團問題這樣的最優(yōu)化問題,要轉(zhuǎn)換為判斷型問題,也要證明其是個NPC問題

證明NP問題

首先證明其是一個NP問題,這相對來說還比較容易,也就是給一個解(證書)對于一個給定的圖G來說,通過檢查它的邊是不是屬于圖的邊集,就可以在多項式的時間內(nèi)確定其是否為團

3CNF可以規(guī)約為團問題

想要構(gòu)造圖可通過

  • 一個子句對應(yīng)一組頂點
  • 對于在意兩個在不同組的頂點,如果滿足“這兩個頂點不是‘否’的關(guān)系”這一條件,就用一條邊連接

如下圖可觀察到,左邊三個點是第一個子句,中間三個點是第二個子句,右邊三個點是第三個子句,而一組頂點之間都不存在邊,跟其他組的任意一個頂點,只要不是否的關(guān)系則都有邊連接。

npc問題轉(zhuǎn)為np問題為什么,雜七雜八,算法,數(shù)據(jù)結(jié)構(gòu),排序算法,動態(tài)規(guī)劃,貪心算法

證明其實例對應(yīng)性與輸出一致性

子句數(shù)量m對應(yīng)頂點的個數(shù)是3m,一共3m個頂點,最多3m(m-3)條邊,因此這是可以在多項式時間內(nèi)轉(zhuǎn)換的。如果存在一組賦值使得子句為1,所以必然存在一個規(guī)模為m的團,那么m個子句都為1,其中必定存在一個文字值為1,比如值為1,則在3個變量中必定存在一個值為1的,因此圖中必定存在一個團且規(guī)模為m;相反如果存在規(guī)模為m的團,也就是說三個組的節(jié)點,必然有一個有一個節(jié)點屬于這個團,節(jié)點對應(yīng)的文字為真,整個表達(dá)式就是真。

上面是一個特殊的圖,能說明一般圖的團也是NPC問題嗎?答案是可以的,普通包含特殊,如果說普通的團是P問題,那么特殊的團自然也是P問題。而團在這種受限的情況下才是NPC,那么在一般的圖中必然也是NPC問題。

頂點覆蓋

給定一個IVI個點和|E|條邊的無向圖G(V,E),找出最小數(shù)目的頂點集合S,使得G中的每條邊都至少被集合S中的一個頂點覆蓋,這就是頂點覆蓋問題。如下圖所示,點集合{b,e,f}是一個頂點覆蓋,頂點覆蓋中點的數(shù)目k=3,顯然,頂點覆蓋不是唯一的,如圖中{b,d,c}也是頂點覆蓋,但頂點覆蓋點的數(shù)目k是唯一的。

npc問題轉(zhuǎn)為np問題為什么,雜七雜八,算法,數(shù)據(jù)結(jié)構(gòu),排序算法,動態(tài)規(guī)劃,貪心算法

頂點覆蓋問題一般要求我們找能覆蓋所有邊最少的頂點集,這是一個最優(yōu)化問題,那便可以轉(zhuǎn)化為一個判斷型問題,也就是問圖中是否存在一個數(shù)目為m的頂點覆蓋集。

現(xiàn)在要證明其是否為一個NPC問題,仍按照步驟:

首先證明其是個NP問題,即給定一個點集,問其是否為某張圖的規(guī)模為k的頂點覆蓋集,只需要帶到圖中進行驗證即可。那么要用什么問題來規(guī)約頂點覆蓋問題?便需要引入補圖和團,團問題可以規(guī)約為頂點覆蓋問題

補圖便是與一個已有的圖對應(yīng)的有相同的節(jié)點集V,但原圖中有的邊補圖中沒有,原圖中不存在的邊補圖中便有,那么一個圖中的最大團在補圖中便成了一個最大的獨立集S,其包含所有節(jié)點之間都不存在邊,那么圖中不包含在S內(nèi)的節(jié)點V-S便包含了圖中所有的邊,這恰巧符合了頂點覆蓋集的定義,所以其便是一個頂點覆蓋集。

按照思路,為了證明頂點覆蓋問題,需要定義原圖G(V,E)的補圖G(V,E),如下圖所示,圖(b)為圖(a)的補圖。

npc問題轉(zhuǎn)為np問題為什么,雜七雜八,算法,數(shù)據(jù)結(jié)構(gòu),排序算法,動態(tài)規(guī)劃,貪心算法

首先證明實例對應(yīng)性?

  1. 團問題的任意一個實例可以轉(zhuǎn)化為頂點覆蓋問題的一個實例團問題的一個實例為一張無向圖,其可以映射一張補圖,為頂點覆蓋的一個實例,得證。
  2. 團問題實例到頂點覆蓋問題實例的轉(zhuǎn)換是一個多項式時間補圖的頂點數(shù)和原圖的頂點數(shù)是一樣的,而補圖的邊是原圖的邊的補集,顯然這個轉(zhuǎn)化是多項式時間?

接著證明輸出一致性

  1. 如果G(V,E)的團為S,其規(guī)模為k,則G'的頂點覆蓋為(V-S),其規(guī)模為|V|一k
  2. 如果G'(V,E')的頂點覆蓋為S',其規(guī)模為|V|-k,則G的團為(V-S'),其規(guī)模為k

第一個也就是證明如果原圖G存在大小為S的團,那么補圖G'必定存在V-S的頂點覆蓋集(V為圖的所有點集)。也就是要證明在G'中一條邊的兩個頂點e1,e2,至少有一個是∈V-S;相當(dāng)于要證在G'中至少有一個不∈S。對應(yīng)在原圖G中,e1和e2之間不存在邊,那邊可知至少有一個節(jié)點不∈S(如果都屬于S則原圖便存在邊了)便可以推回去證明了。

而第二個問題,也就是要整(V-S')中的任意兩節(jié)點在原圖G中都有邊,如果這兩個點都不屬于S',那么在G'中必定是沒有邊,在G中便一定有邊。因此得證第二點。

?文章來源地址http://www.zghlxwxcb.cn/news/detail-763575.html

?

到了這里,關(guān)于一文理解NP完全理論,NP問題,NPC問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Unity接入ChatGPT實現(xiàn)NPC聊天

    Unity接入ChatGPT實現(xiàn)NPC聊天

    實現(xiàn)要求 1、能向OpenAI官網(wǎng)發(fā)送消息 ? ? ? ? API官網(wǎng):https://api.openai.com/v1/chat/completions 2、擁有自己的APIKey 1、明確發(fā)送消息的格式 2、明確收取消息的格式 轉(zhuǎn)化成對象類 ? 能一本正經(jīng)地回答一些呆瓜問題,挺好玩的,聊得越多越了解你,經(jīng)過一定訓(xùn)練能當(dāng)游戲的NPC。

    2024年02月21日
    瀏覽(24)
  • [ Docker ] 部署 nps 和 npc 實現(xiàn)內(nèi)網(wǎng)穿透

    [ Docker ] 部署 nps 和 npc 實現(xiàn)內(nèi)網(wǎng)穿透

    https://www.cnblogs.com/yeungchie/ nps 原作者已停止維護,現(xiàn)在用 yisier1/nps Docker 鏡像 Git 倉庫 打開后重點關(guān)注下面這幾項: 以上是默認(rèn)的配置,建議改掉。 現(xiàn)在 nps 已經(jīng)開始運行了。 現(xiàn)在可以在網(wǎng)頁端訪問 ip_addr:web_port ,并通過用戶名 web_username 和密碼 web_password 登錄后臺管理界面

    2023年04月23日
    瀏覽(17)
  • 三電平,內(nèi)管保護,I(1)字形NPC三電平

    三電平,內(nèi)管保護,I(1)字形NPC三電平

    要點:I字形NPC三電平保護時,必須先關(guān)外管再關(guān)內(nèi)管,所以內(nèi)管的IGBT不能用驅(qū)動芯片自帶的保護,我的想法是用比較器自己搭建電路。我搭建了樣板,電路實測通過了,但是沒做后續(xù)類似雙脈沖實驗和整機實際短路實驗。 1、外管用驅(qū)動芯片自帶的保護,如SID1182,內(nèi)管把芯

    2024年02月13日
    瀏覽(35)
  • Unity丨自動巡航丨自動尋路丨NPC丨

    Unity丨自動巡航丨自動尋路丨NPC丨

    提示:這里可以添加技術(shù)概要 本文功能是制作一個簡單的自動巡邏的NPC,隨機自動尋路。 注意代碼要掛載在NPC身上,并且確定要掛載Rigidbody 組件 可以把組件的旋轉(zhuǎn)X和z關(guān)掉就只有前后和左右旋轉(zhuǎn)了。 后期功能可以自己擴展,功能簡單但是實用。

    2024年01月16日
    瀏覽(78)
  • 基于組合優(yōu)化的3D家居布局生成看千禧七大數(shù)學(xué)難題之NP問題

    基于組合優(yōu)化的3D家居布局生成看千禧七大數(shù)學(xué)難題之NP問題

    本文探討了運籌學(xué)和組合優(yōu)化方法在3D家居布局生成中的應(yīng)用,并調(diào)研了AI生成3D場景布局的最新方法。文中結(jié)合了家居家裝業(yè)務(wù)的實際應(yīng)用場景,從算法建模和計算復(fù)雜度的角度上闡述了室內(nèi)設(shè)計的布局問題中存在的難點,以及如何用簡化和近似的思想來建模3D布局生成問題

    2024年02月07日
    瀏覽(30)
  • Unity3d 制作一個簡單的NPC對話系統(tǒng)

    Unity3d 制作一個簡單的NPC對話系統(tǒng)

    ? 最近在自己寫一個比較小的項目,雖然自己是一個策劃,但是程序方面我覺得也是很有必要學(xué)一學(xué)的。 ? 經(jīng)過了接近一年的學(xué)習(xí),也終于是可以獨自寫一些小的系統(tǒng)了。 ? 這次自己寫了一個比較簡單的NPC對話系統(tǒng),供大家參考。 進入對話區(qū)域 開始對話 Inspector面板可調(diào)

    2023年04月08日
    瀏覽(31)
  • NPC 也有了生命?當(dāng) ChatGPT 注入游戲你能想象嗎

    NPC 也有了生命?當(dāng) ChatGPT 注入游戲你能想象嗎

    ??道阻且長,行則將至。?? 下圖就是一個 ChatGPT 小鎮(zhèn): 《西部世界》以一個虛構(gòu)的游戲般的“西部世界”為背景,公園里的機器人接待員被編程來迎合支付巨額參觀費用的游客。游樂園運營者在后臺操縱著程序,每隔一段時間就會抹去機器人的記憶。一天,機器人 AI 覺醒

    2023年04月18日
    瀏覽(24)
  • NPC也有了生命?當(dāng)ChatGPT注入游戲你能想象嗎

    NPC也有了生命?當(dāng)ChatGPT注入游戲你能想象嗎

    ??道阻且長,行則將至。?? 下圖就是一個 ChatGPT 小鎮(zhèn): 《西部世界》以一個虛構(gòu)的游戲般的“西部世界”為背景,公園里的機器人接待員被編程來迎合支付巨額參觀費用的游客。游樂園運營者在后臺操縱著程序,每隔一段時間就會抹去機器人的記憶。一天,機器人 AI 覺醒

    2023年04月16日
    瀏覽(18)
  • 在LLM的支持下使游戲NPC具有記憶化的方法

    在LLM的支持下使游戲NPC具有記憶化的方法

    問題 使用GPT這樣的LLM去處理游戲中的NPC和玩家的對話是個很好的點子,那么如何處理記憶化的問題呢。 因為LLM的輸入tokens是有限制的,所以伴隨著問題的記憶context是有窗口大小限制的,將所有的記憶輸入LLM并不現(xiàn)實。 所以這里看到了stanford的一項研究,利用ChatGPT做的生成智

    2024年02月16日
    瀏覽(33)
  • unity初學(xué)6——簡易的UI制作(血條制作)和音頻加入以及NPC的對話氣泡(2d)

    unity初學(xué)6——簡易的UI制作(血條制作)和音頻加入以及NPC的對話氣泡(2d)

    該文來是學(xué)習(xí)chutianbo老師的筆記,鏈接b站 1.右鍵Hierarchy空白處 UI?canvas 2.這里一共使用了三個素材 層級結(jié)構(gòu) UI:初始畫布 characters:頭像 Mask:遮罩層 healthbar:血條 這里我們先回到UI(也就是一開始創(chuàng)建的Canvas) 我們一開始有用的應(yīng)該只有渲染模式render Mode,他有三種模式

    2023年04月08日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包