3_確定性推理


推理概述

推理的基本概念

推理就是按照某種策略從已有事實和知識推出結論的過程

推理的分類

分類方式 類別1 類別2
邏輯基礎 演繹推理 歸納推理
所用知識的確定性 確定性推理 不確定性推理
推理策略是否使用啟發式知識 啟發式推理 非啟發式推理

詳談邏輯推理分類

推理方式 概念 常用形式 特點
演繹推理 一般到個別 三段論法(大前提、小前提、結論) 不能增殖新知識
歸納推理 個別到一般 完全歸納推理,不完全歸納推理 可以增殖新知識

產生式系統的推理

可以分為以下類別:正向推理,逆向推理,雙向推理

推理形式 優點 缺點
正向推理 較為直觀 推理無明確的目標,求解問題時可能會執行許多與解無關的操作,導致推理效率較低
逆向推理 不必尋找和使用那些與假設目標無關的信息和規則,推理過程的目標明確 當用戶對解的情況認識不清時,由系統自主選擇假設目標的盲目性比較大,若選擇不好,會影響系統效率。

正向推理

  1. 把用戶提供的初始證據放入綜合數據庫。
  2. 檢查綜合數據庫中是否包含了問題的解,若已包含,則求解結束,並成功推出;否則執行下一步。
  3. 檢查知識庫中是否有可用知識,若有,形成當前可用知識集,執行下一步; 否則轉(5)。
  4. 按照某種沖突消解策略,從當前可用知識集中選出一條規則進行推理,並將 推出的新事實加入綜合數據庫種,然后轉(2)。
  5. 詢問用戶是否可以進一步補充新的事實,若可補充,則將補充的新事實加入 綜合數據庫中,然后轉(3);否則表示無解,失敗退出。
image-20201022105459253

逆向推理

  1. 將要求證的目標(稱為假設)構成一個假設集。
  2. 從假設集中選出一個假設,檢查該假設是否在綜合數據庫中。
    • 若不在,則執行第3步。
    • 若在, 則該假設成立,刪除假設集中成立的假設,重復執行第2步。
    • 此時,若假設集為空,則成功退出,否則仍執行。
  3. 檢查該假設是否可由知識庫的某個知識導出,將知識庫中可以導出該假設的所有知識構成一個可用知識集。
  4. 檢查可用知識集是否為空,若是,失敗退出;否則執行下一步。
  5. 按沖突消解策略從可用知識集中取出一個知識。將該知識的前提中的每個子條件都作為新的假設放入假設集,刪除原假設,然后轉(2)。
image-20201022105751069

雙向推理

結合版,可以先正向后逆向,也可以先逆向后正向

例子

假設知識庫中包含有以下2條規則:

  • r1 :IF B THEN C

  • r2 :IF A THEN B

已知初始證據A,求證目標C。

正向推理求解

  • 推理開始前,綜合數據庫為空。
  • 推理開始后,先把A放入綜合數據庫,然后檢查綜合數據庫中是否含有該問題的解,回答為“N”。
  • 接着檢查知識庫中是否有可用知識,顯然r2可用,形成僅含r2 的知識集。從該知識集中取出r2 ,推出新的實事B,將B加入綜合數據庫。
  • 檢查綜合數據庫中是否含有目標C, 回答為“N”。
  • 再檢查知識庫中是否有可用知識,此時由於B的加入使得r1為可用,形成僅含r1的知識集。從該知識集中取出r1 ,推出新的事實C,將C加入綜合數據庫,檢查綜合數據庫中是否含有目標C,回答為“Y”。
  • 它說明綜合數據庫中已經含有問題的解,推理成功結束,目標C得證。

逆向推理求解

  • 推理開始前,綜合數據庫和假設集均為空。
  • 推理開始后,先將初始證據A和目標C分別放入綜合數據庫和假設集,然后從假設集中取出一 個假設C,查找C是否為綜合數據庫中的已知事實,回答為“N”。
  • 再檢查C是否能被知識庫中的知識所導出,發現C可由r1 導出,於是r1 被放入可用知識集。由於知識庫中只有r1 可用,故可用知識集中僅含r1 。 接着從可用知識集中取出r1 ,將其前提條件B作為新的假設放入假設集。
  • 從假設集中取出B,檢查B是否為綜合數據庫中的實事,回答為“N”。
  • 再檢查B是否能被知識庫中 的知識所導出,發現B可由r2 導出,於是r2被放入可用知識集。由於知識庫中只有r2可 用,故可用知識集中僅含r2 。 從可用知識集中取出r2 ,將其前提條件A作為新的假設放入假設集。
  • 然后從假設集中取出A,檢查A是否為綜合數據庫中的實事,回答為“Y”。
  • 它說明該假設成立,由於無新的假設,故推理過程成功結束,於是目標C得證。

一階謂詞邏輯基礎

謂詞公式的解釋

定義,設D是謂詞公式P的非空個體域,若對P中的常量,函數和謂詞按如下規定賦值:

  • 為每個個體常量指派D中的一個元素;
  • 為每個n元函數指派一個從Dn到D的一個映射,其中 Dn = {(x1,x1,...,xn)|x1,x1,...,xn ∈ D}
  • 為每個n元謂詞指派一個從Dn到{F,T}的映射

則稱這些指派為P在D上的一個解釋

  • 可以確定在一個指派下,某個謂詞公式的真或假

例子,謂詞公式在解釋下的真值確定

image-20201022111800638 image-20201022111822723

全稱固化

\[(∀x)P(x) ⇒P(y) \]

y是個體域中的任一個體,依此可消去謂詞公式中的全稱量詞。

存在固化

\[(∃x)P(x) ⇒P(y) \]

y是個體域中某一個可以使P(y)為真的個體,依此可消去謂詞公式中的存在量詞。

置換與合一

置換與合一的目的:將相同謂詞名但個體不同的情況做出處理,使得二者變量名相同

  • 差異集:在對兩個謂詞公式中的項從左到右進行比較時,那些第一個不 相同的項所構成的集合,稱為差異集。

合一設有公式集F={F1 , F2 ,…,Fn },若存在一個置換θ,可使 F1θ=F2θ=…=Fnθ, 則稱θ是F的一個合一。稱F1 ,F2 ,…,Fn是可合一的。否則,是不可合一的。

最一般合一的求取算法

  1. 置k=0, 謂詞公式集Sk=S,置換集σk

  2. 若Sk只含有一個謂詞公式,則算法停止,σk就是要求的最一般合一

  3. 求Sk的差異集Dk

  4. 若Dk中存在元素xk和tk,其中xk是變元,tk是項且xk不在tk中出現,則置Sk+1= Sk · {tk /xk}, σk+1k · {tk / xk},k=k+1,然后轉②

  5. 算法停止,S的最一般合一不存在。

以本人看來,就是尋找差異集作為置換,使用常元替換變元,使用函詞替換簡單個體元

例子

image-20201022113258552 image-20201022113305205

自然演繹推理

概念

思想

從一組已知為真的事實出發,直接運用命題 邏輯或謂詞邏輯中的推理規則推出結論的過程

推理基礎

名稱 邏輯表示
假言三段論 𝑃 → 𝑄,𝑄 → 𝑅 ⇒ 𝑃 → R
假言推理 𝑃, 𝑃 → 𝑄 ⇒ 𝑄
拒取式推理 𝑃 → 𝑄,¬Q ⇒ ¬P

例子,純粹的邏輯應用

已知,下列公式為真

\[R, S, R→T, S∧T →P, P →Q \]

求證,Q為真

\[\begin{align} & 𝑅, 𝑅 → 𝑇 ⇒ 𝑇 & 假言推理\\ & 𝑆, 𝑇 ⇒ 𝑆 ∧ 𝑇 & 引入合取詞\\ & 𝑆 ∧ 𝑇, 𝑆 ∧ 𝑇 → 𝑃 ⇒ 𝑃 & 假言推理\\ & 𝑃, 𝑃 → 𝑄 ⇒ 𝑄 & 假言推理\\ \end{align} \]

例子,合一+推理

已知,下列公式為真

\[W (a),(∀x)(W (x) → Q(x)) \]

求證,Q(a)為真

image-20201022114707659

例子,實用例子

設已知如下事實

  • 如果是需要編程序的課,王程都喜歡。
  • 所有的程序設計語言課都是需要編程序的課。
  • C是一門程序設計語言課。

求證:王程喜歡C這門課。

image-20201022115003020

歸結演繹推理

概念

思想

采用反證法的思想, 把關於永真性的證明轉化為關於不可滿足性的證明,要證明P→Q永真,只要能夠證明P∧﹁Q是不可滿足的即可。

子句集化簡方法

  • 消去連接詞,反復使用如下等價公式P→Q ⇔﹁P∨Q &&P↔Q ⇔(P∧Q)∨(﹁P∧﹁Q)

  • 減少否定符號的轄域,使用﹁(∀x)P(x)⇔(∃x)﹁P(x)&&﹁(∃x)P(x)⇔(∀x)﹁P(x)

  • 不同量詞約束的變元有不同的名字

  • 化為前束范式,把所有量詞都移到公式的左邊,並且在移動時不能 改變其相對順序。

  • 消去存在量詞

    • 若存在量詞不出現在全稱量詞的轄域內(即它的左邊沒有全稱量詞),只要用一個新的個體常量替換受該存在量詞約束的變元,就可消去該存在量詞。
    • 若存在量詞位於一個或多個全稱量詞的轄域內,則需要該全稱量詞的函詞替換受該存在量詞約束的變元y,然后再消去該存在量詞。(值得注意的是,是否在某個全程量詞的轄域,請看化為前束范式之前的等式,且必須是在轄域內,如果是兩個共享一個轄域可以交換,不做處理
  • 展開為標准合取式

  • 消去全稱量詞。直接去掉就可以。

  • 消去合取詞,並更換變量名稱,得到子句集

歸結

命題邏輯的歸結

設C1 和C2是子句集中的任意兩個子句,if C1中的文字L1與C2中的文字L2互補then可從C1 和C2 中分別消去L1 和L2 ,並將C1 和C2 中余下的部分按析取關系構 成一個新的子句C12 ,則C12為C1和C2的二元歸結式。

謂詞邏輯的歸結

設C1和C2是兩個沒有公共變元的子句,L1和L2分別是C1和C2中的文字。if L1和¬L2存在一個最一般合一σ,then 稱 C12 =({C1σ}-{ L1σ})∪({ C2σ}-{ L2σ}) 為C1和C2的二元歸結式。

  • 歸結前,消去每個歸結式中可以合一的文字
  • 換元消去兩個歸結式中相同的元素
  • 一次歸結只能消去一個變元

歸結演繹推理總問題

已知 F,求證G

  • 否定目標公式G,得﹁G
  • 把﹁G並入到公式集F中,得到{F,﹁G}
  • 把{F,﹁G}化為子句集S。
  • 應用歸結原理對子句集S中的子句進行歸結,並把每次得到的歸結式並入S中(並入S中,不代表刪除歸結的原子句)。如此反復進行,若出現空子句,則停止歸結,此時就證明了G為真。

求解問題

  • 把已知條件用謂詞公式表示,並化成相應的子句集S1
  • 把待求解的問題也用謂詞公式表示,然后將其否定,並與謂詞ANSWER構成析取式G1
  • 把G1化為子句集S2,並把子句集S2與S1合並構成新子句集S
  • 對子句集S應用謂詞歸結原理進行歸結,在歸結過程中通過合一置換, 改變ANSWER中的變元
  • 如果得到歸結式ANSWER,則問題的答案就在ANSWER謂詞中

歸結策略

歸結策略的目的:每一步選取何時的歸結子句,以盡快得到空子句

有用的歸結策略 闡述
純文字刪除法 刪除子句集中包含純文字的子句
重言式刪除法 刪除子句集中包含重言式的子句
包孕刪除法 刪除子句集中被包孕的子句
支持集策略 被歸結的子句必須有目標子句或者其后裔
沒用的,看看就可的歸結策略 闡述
排序策略 每一步都盡可能地計算子句
線形輸入策略 被歸結的子句必須有原子句集的子句
單文字子句策略 被歸結的子句必須有單文字子句

純文字刪除法

  • 純文字:如果某文字L在子句集中不存在可與其互補的文字﹁L,則稱該文字為純文字。
  • 刪除子句集中包含純文字的子句

例子

\[S=\{ P∨Q∨R, ﹁Q∨R, Q, ﹁R \} \]

P是純文字,因此可以將子句P∨Q∨R從子句集S中刪除

重言式刪除法

  • 重言式:如果一個子句中包含有互補的文字對,則稱其為重言式。
  • 刪除子句集中包含重言式的子句

例子

\[P(x)∨﹁P(x), P(x)∨Q(x)∨﹁P(x) \]

全部可以刪除

包孕刪除法

  • 包孕:設有子句C1 和C2 ,如果存在一個置換σ,使得C1σ ⊆ C2 ,則稱C1包孕於C2。
  • 刪除子句集中被包孕的子句

\[\begin{align} & P(x) & 包孕於 & \quad P(a) & σ=\{a/x\}\\ & P(x) & 包孕於 & \quad P(a)∨Q(z) & σ=\{a/x\}\\ & P(x)∨Q(a) & 包孕於 & \quad P(f(a))∨Q(a)∨R(y) & σ=\{f(a)/x\}\\ & P(x)∨Q(y) & 包孕於& \quad P(a)∨Q(u)∨R(w) & σ=\{a/x, u/y\} \\ \end{align} \]

全部可以刪除左邊的部分

支持集策略

  • 要求每一次參加歸結的兩個親本子句中,至少應該有一個是由目標公式的否定所得到的子句或它們的后裔。

特點

  • 完備,縮減了子句集的歸結,增加了子句集歸結的深度

例子

\[S=\{﹁I(x)∨R(x), I(a),﹁R(y)∨L(y), ﹁L(a) \} \]

其中﹁I(x)∨R(x)為目標公式的否定。

image-20201022175322451

排序策略(廣度度優先策略)

過程:

  • 從S0出發,對S0中的全部子句作所有可能的歸結,得到第一層歸結式,把這些歸結式的集合記為S1

  • 用S0中的子句與S1中的子句進行所有可能的歸結,得到第二層歸結式,把這些歸結式的集合記為S2

  • 用S0和S1中的子句與S2中的子句進行所有可能的歸結,得到第三層歸結式,把這些歸結式的集合記為S3。

  • 如此繼續,知道得出空子句或不能再繼續歸結為止

特點

  • 完備,可以找到最短歸結路徑
  • 歸結效率較低,可能出現組合爆炸

例子

\[S=\{﹁I(x)∨R(x), I(a), ﹁R(y)∨L(y), ﹁L(a) \} \]

image-20201022173600235

線形輸入策略

  • 要求每次參加歸結的兩個親本子句中,至少應該有一個是初始子句集中的子句。
  • 所謂初始子句集是指開始歸結時所使用的子句集。

特點

  • 不完備,可能高效

例子

\[S=\{﹁I(x)∨R(x), I(a), ﹁R(y)∨L(y), ﹁L(a) \} \]

image-20201022175708636

祖先過濾策略

每次參加歸結的兩個親本子句,只要滿足以下兩個條件中的任意一個就可進行歸結

  • 兩個親本子句中至少有一個是初始子句集中的子句。
  • 如果兩個親本子句都不是初始子句集中的子句,則一個子句應該是另一個 子句的先輩子句。

特點:完備的

例子

\[S=\{﹁Q(x)∨﹁P(x), Q(y)∨﹁P(y),﹁Q(w)∨P(w) , Q(a)∨P(a) \} \]

image-20201022180031079

單文字子句策略

  • 單文字:如果一個子句只包含一個文字,則稱此子句為單文字子句
  • 要求每次參加歸結的兩個親本子句中至少有一個子句是單文字子句

特點

  • 不完備的,效率較高

例子

\[S={﹁I(x)∨R(x), I(a), ﹁R(y)∨L(y), ﹁L(a) } \]

image-20201022181108296

例子:化簡子句集

\[(∀x)((∀y)P(x,y)→﹁(∀y)(Q(x,y)→R(x,y))) \]

  • 消去連接詞

\[(∀x)(﹁(∀y)P(x,y)∨﹁(∀y)(﹁Q(x,y)∨R(x,y))) \]

  • 減少否定符號的轄域

\[(∀x)(﹁(∀y)P(x,y)∨﹁(∀y)(﹁Q(x,y)∨R(x,y))) \]

  • 不同量詞約束的變元有不同的名字

\[(∀x)((∃y)﹁P(x,y)∨(∃z)( Q(x,z) ∧﹁R(x,z))) \]

  • 化為前束范式

\[(∀x)(∃y)(∃z)(﹁P(x,y)∨( Q(x,z) ∧﹁R(x,z))) \]

  • 消去存在量詞

\[(∀x)(﹁P(x,f(x))∨( Q(x,g(x)) ∧﹁R(x,g(x)))) \]

  • 展開為標准合取式

\[(∀x)(﹁P(x, f(x))∨(Q(x, g(x))∧(﹁P(x, f(x))∧﹁R(x, g(x)))) \]

  • 消去全稱量詞

\[(﹁P(x, f(x))∨Q(x, g(x)) ∧(﹁P(x, f(x))∨﹁R(x, g(x))) \]

  • 消去合取詞,並更換變量名稱,得到子句集

\[﹁P(x, f(x))∨Q(x, g(x))\\ ﹁P(y, f(y))∨﹁R(y, g(y)) \]

例子:歸結(比較重要)

設:C1 =P(a)∨R(x),C2 =﹁P(y)∨Q(b),求C12

  • 取L1 = P(a), L2 =﹁P(y),則L1 和﹁L2 的合一是σ={a/y}

\[\begin{align} C12 & =( {C1 σ}-{L1 σ}) ∪({C2 σ}-{L2 σ})\\ & =({P(a), R(x)}-{P(a)})∪({﹁P(a), Q(b)}-{﹁P(a)})\\ & =({R(x)})∪({Q(b)})= {R(x), Q(b)}\\ & =R(x)∨Q(b) \end{align} \]

設:C1 =P(x)∨Q(a),C2 =﹁P(b)∨R(x) ,求C12

  • 換元,令C2 =﹁P(b)∨R(y)
  • 取L1 = P(x), L2 =﹁P(b),L1 和﹁L2 的合一是σ={b/x}。

\[\begin{align} C12 & =( {C1 σ}-{L1 σ})∪({C2 σ}-{L2 σ})\\ & =({P(b), Q(a)}-{P(b)}) ∪({﹁P(b), R(y)}-{﹁P(b)})\\ & =({Q(a)}) ∪({R(y)})= {Q(a), R(y)}\\ & =Q(a)∨R(y) \\ \end{align} \]

設:C1 =P(x)∨﹁Q(b),C2 =﹁P(a)∨Q(y)∨R(z)

  • 這道題需要注意的是,C1和C2的一次歸結只能消去一個互補對,不能同時消去兩個互補對

  • 如在 σ={a/x, b/y}下,若同時消去兩個互補對所得R(z)不是C1 和C2 的二元歸結式

  • 可以從另一個角度說明這道題的正確性:﹁P∨Q與P∨﹁Q永真,但是如果使用同時歸結,那么可歸結為NIL,是不可滿足的,產生矛盾。

設:C1 =P(x)∨P(f(a))∨Q(x) ,C2 =﹁P(y)∨R(b),求C12

  • 對參加歸結的某個子句,若其內部有可合一的文字,則在進行歸結之前應先進行合一。

  • 嚴格來講C1經過合一之后所得式子將不是C1,但是仍然認為該式與C2的二元歸結式等同於C1和C2的二元歸結式。也就是說,子句集合一之不影響原歸結結果

設C1 =P(y)∨P(f(x))∨Q(g(x)) ,C2 =﹁P(f(g(a)))∨Q(b),求C12

  • 對C1 ,取合一σ={f(x)/y},得C1 的因子 C1 σ=P(f(x))∨Q(g(x))
  • 對C1 的因子和C2 歸結(σ={g(a)/x }),可得到C1 和C2的二元歸結式 C12 =Q(g(g(a)))∨Q(b)

例子,使用歸結演繹證明問題

設已知的公式集為{P, (P∧Q)→R, (S∨T)→Q, T},求證結論R

假設結論R為假, 將﹁R加入公式集, 並化為子句集

\[S= \{ P,﹁P∨﹁Q∨R, ﹁S∨Q, ﹁T∨Q, T, ﹁R \} \]

歸結如下圖:

image-20201022161007858

已知

\[F: (∀x)((∃y)(A(x, y)∧B(y))→(∃y)(C(y)∧D(x, y)))\\ G: ﹁(∃x)C(x)→(∀x)(∀y)(A(x, y)→﹁B(y)) \]

求證G 是 F 的邏輯結論。

\[\begin{align} {F, ﹁G} = \{\quad(∀x)((∃y)(A(x,y)∧B(y))→(∃y)(C(y)∧D(x,y))),\\ ﹁(﹁(∃x)C(x)→(∀x)(∀y)(A(x,y)→﹁B(y)))\quad \} \end{align} \]

子句集為

\[﹁A(x,y)∨﹁B(y) ∨C(f(x))\\ ﹁A(u,v)∨﹁B(v) ∨D(u,f(u))\\ ﹁C(z)\\ A(m,n)\\ B(n)\\ \]

歸結過程如下

image-20201022161405239

“激動人心的生活”問題

假設:

  • 所有不貧窮並且聰明的人都是快樂的
  • 那些看書的人是聰明的
  • 李明能看書且不貧窮
  • 快樂的人過着激動人心的生活。

求證:

  • 李明過着激動人心的生活。

問題用謂詞表示如下:

知識 知識表示
所有不貧窮並且聰明的人都是快樂的 (∀x)((﹁Poor(x)∧Smart(x))→Happy(x))
那些看書的人是聰明的 (∀y) (Read(y) →Smart(y))
李明能看書且不貧窮 Read(Liming)∧﹁Poor(Liming)
快樂的人過着激動人心的生活。 (∀z) (Happy(z)→Exciting(z))
目標的否定:李明過着激動人心的生活 ﹁Exciting(Liming)

子句集

\[\begin{align} & Poor(x)∨﹁Smart(x)∨Happy(x) \\ & ﹁Read(y)∨Smart(y) \\ & Read(Liming) \\ & ﹁Poor(Liming) \\ & ﹁Happy(z)∨Exciting(z) \\ & ﹁Exciting(Liming) (結論的否定)\\ \end{align} \]

子句集的歸結

image-20201022162134536

“快樂學生”問題

假設:

  • 任何通過計算機考試並獲獎的人都是快樂的
  • 任何肯學習或幸運的人都可以通過所有考試
  • 張不肯學習但他是幸運的
  • 任何幸運的人都能獲獎。

求證:張是快樂的。

問題用謂詞表示如下

知識 知識表示
任何通過計算機考試並獲獎的人都是快樂的 (∀x)(Pass(x, computer)∧Win(x, prize)→Happy(x))
任何肯學習或幸運的人都可以通過所有考試 (∀x) (∀y) (Study(x)∨Lucky(x)→Pass(x, y))
張不肯學習但他是幸運的 ﹁Study(zhang)∧Lucky(zhang)
任何幸運的人都能獲獎 (∀x) (Lucky(x)→Win(x, prize))
目標的否定:張是快樂的 ﹁Happy(zhang)

子句集

\[\begin{align} & ﹁Pass(x, computer)∨﹁Win(x, prize)∨Happy(x)\\ & ﹁Study(y)∨Pass(y, z)\\ & ﹁Lucky(u)∨Pass(u, v)\\ & ﹁Study(zhang)\\ & Lucky(zhang)\\ & ﹁Lucky(w)∨Win(w, prize)\\ & ﹁Happy(zhang) (結論的否定) \\ \end{align} \]

子句集的歸結

image-20201022162638075

例子,使用歸結演繹求解問題

已知:

  • 如果x和y是同班同學,則x的老師也是y的老師。
  • 王先生是小李的老師。
  • 小李和小張是同班同學。

問:小張的老師是誰?

知識表示

知識 知識表示
如果x和y是同班同學,則x的老師也是y的老師 (∀x)(∀y)(∀z)(C(x,y)∧T(z,x)→T(z,y)
王先生是小李的老師 T(Wang,Li)
小李和小張是同班同學 C(Li,Zhang)
問題的表示 ﹁ T(u,Zhang)∨ANSWER(u)

化為子句集

\[\begin{align} & ﹁C(x,y)∨﹁T(z,x)∨T(z,y))& …… & (a)\\ & T(Wang,Li)& …… & (b)\\ & C(Li,Zhang)& …… & (c)\\ & ﹁T(u,Zhang)∨ANSWER(u)& …… & (d)\\ \end{align} \]

歸結

\[\begin{align} & (e) & ﹁C(Li,y)∨T(Wang,y)& \quad [a與b歸結,(Li/x,Wang/z)]\\ & (f) & ﹁ C(Li,Zhang) ∨ANSWER(u) & \quad[d與e歸結,(Wang/u,Zhang/y)]\\ & (g)& ANSWER(Wang)&\quad [c與f歸結]\\ \end{align} \]

最終

  • u=Wang,即小張的老師是王先生。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM