A. Agent(面向主體)與對象的區別
一.Agent(面向主體)與對象的區別
相似性: 實體性、封裝狀態,可以執行某種動作和方法;通過消息進行通訊;
區別:
1)在決定是否執行對象的方法時,決定權不同;面向對象系統中,決定權在主動調用方法的對象,而在Agent系統中,決定權在在接受請求的Agent;。
2)靈活的行為能力(反應的、預動的、社會的)作為Agent的基本屬性之一考慮;
3) Agent在實現上並行特點作為最基本的特性出現;而傳統對象不是這樣;
二,面向服務的體系結構SOA概述
面向主體(agent)的系統越來越具有廣泛的應用價值,在理性主體(agent)的形式化過程中,通常認為主體(agent)的思維狀態包括信念、願望和意圖這三個屬性,因此BDI模型一直是主體(agent)建模研究的重點。
1. BDI模型
當前主體(agent)使用的BDI模型一般都是在Cohen和Levesque的正規模態邏輯的意圖模型以及Rao和Georgeff的BDI計算數邏輯模型基礎上發展起來的,即側重於形式描述信念(belief)、願望(desire)和意圖(intention),簡稱BDI,其本質上要解決的問題是如何確定主體(agent)的目標以及如何實現這個目標。
一個BDI模型包含三種基本成分:
(1) 信念(Belief)是一個包括了對世界相關的信念、與其它主體(agent)思維趨向相關的信念和自我信念的集合。信念是主體(agent)對世界的認知,包含描述環境特性的數據和描述自身功能的數據,是主體(agent)進行思維活動的基礎。
(2) 願望(Desire)是主體(agent)的最初動機,是其希望達到的狀態或希望保持的狀態的集合。主體(agent)希望達到的狀態,由此可以激發系統的規劃和行動。一般來說,可以表達為主體(agent)對環境狀態的一種期待和判斷,也就是通過判斷該狀態是否成立作為Desire是否實現的標志。主體(agent)可以擁有互不相容的願望,而且也不需要相信它的願望是絕對可以實現的。
(3) 意圖(Intention)是承諾實現的願望中選取的當前最需要完成或者最適合完成的一個,是當前主體(agent)將要正在實現的目標,它是屬於思維狀態的意向方向。當前意圖對主體(agent)的當前動作具有指導性的作用。
基於BDI模型的主體(agent)研究一般分為兩個層面,一個就是理論層面,也叫做邏輯層面,主要研究如何使用邏輯方法給出BDI 主體(agent)正規語義描述;另一個層面是實際應用層面,包括系統體系結構的設計以及編程實現。
2. BDI Logics
2.1 模態邏輯
模態邏輯是關於必然性和可能性的邏輯,或者說是關於「一定是」和「可能是」的邏輯,模態邏輯不僅考慮事物實際存在方式的真和假,而且考慮如果事物處在與實際存在方式不同的存在方式中那麼什麼將是真的或假的。邏輯關注真和假,模態邏輯則關注真實世界和其它可能世界中的真和假。在這種意義上,一個命題在一個世界中是必然的僅當它在可能替代該世界的所有世界中為真,可能的則僅當它在可能替換該世界的某個可能世界中為真。
一般,□表示必然性運算元,◇表示可能性運算元。
定義:一個標架F是表示為序對<W, R>,其中W是由對象(世界)組成的一個非空集;R是一個定義在W的全部成員上的二元關系。R通常稱為「擇一性」或「可達性」關系;wRw¢有時也可說成w「能看見」w¢。
定義:一個模型M表示為三元序組<F,v, w>,其中F=<W, R>是標架,wÎW,v是在標架F上的一個valuation, 則我們說一個模型M是基於標架F之上。
定義:K為極小的正規模態系統,則許多模態系統都是通過為K增加公理得到的,例如T,S4,S5,KD等。
2.2 BDI Logics
BDI logics 是一種多模態邏輯,把信念、願望和意圖模型化為可能世界語義下得正規模態運算元,記為BEL ,DES (GOAL )和INT ,其中 (主體(agent)s)。
BDI : B,D,I滿足自反性;
BDI :B,D,I滿足自反性,傳遞性;
B D I : B滿足Euclidean性,連續性,傳遞性,D滿足自反性,傳遞性,對稱性;I滿足自反性。
3. Combining Logics
Combining Logics的目標就是能夠綜合利用熟知已有的邏輯工具。目前的組合技巧有兩種,一種是fusion,一種是fibring,論文通過詳細對比分析,認為採取fibring的方法更具有可行性。(楊柳負責講解)
4. 具有復合動作(Composite Actions)的BDI模型擴展
本章研究考慮到復合動作Composite actions,在前人擴充的BDI模型基礎上加入RES(Result)和OPP(Opportunity)兩個運算元,並給出了語義描述。
4.1 研究背景和動機
對世界中的事物,我們可以用對、錯定義一樣,對於actions和events我們也可以用成功、失敗來定義。而BDI模型中沒有涉及actions和events的概念。
Actions和events細微差別在於:action是指主體(agent)有一個狀態轉化為另一個狀態時所採取的動作;event是特定主體(agent)執行一個特定的action的性能結果。
Rao & Georgeff基於提出的temporal framework給出了events的語義描述,但是沒有說明特定事件中所牽涉的動作。
4.2 研究基礎
(1) Brown理論-動作(Action)和能力(Ability)
考慮到動作(Action)和能力(Ability)因素,指出了衡量能力(Ability)的一個主要尺度:可靠性(reliability),而可靠性可以通過重復執行次數衡量的。
定義:模型M=(W,f,v),其中W是可能世界的集合;v是對每個世界中的原子命題的賦值;f是函數,關聯單個世界與世界集(a cluster of worlds).
M,w Ability iff and :M,w』
語義為:在模型中,存在某個世界集,使得世界集中任一個世界都滿足主體(agent)具有能力 ,則我們認為主體(agent)具有能力 。
Brown理論還給出了will,might等運算元的定義。
(2)能力(Ability)的Non-Intentional理論;
Elegesem在Sommerhoff提出的Non-Intentional基礎上,基於objective goal-directedness,認為在動態環境中主體(agent)維持特定的目標狀態。
定義:焦點條件(Focal Condition)F( , )=o ,語義:認為如果要達到目標Goal,則至少存在某個時間點 ,至少存在一個動作變數 ,至少存在一個環境變數 ,使得在 時刻, 條件下,執行動作 ,可以實現目標Goal.
定義:模型M=(W, ,v),W是世界集; = … ;v是函數 , 是W的power set.
定義: (w, ),i是指某個主體(agent);w是指某個世界; 是指使目標G為真的世界的集合。 (w, )的語義:是這樣的世界的集合,主體(agent) I 在這些世界中具有ability實現目標G。
定義: (w, )當且僅當 w』滿足F( , )=o
定義:SUCCESS (W,X) X 如果 X W.
理論意義:在所有的世界中,如果主體(agent)都有能力ability實現目標Goal,則可以定義為SUCCESS.
Elegesem的non-Intentional理論還區分了」主體(agent)有能力實現目標「和」主體(agent)採取行動確實達到了目標狀態」並給出了語義描述。
(3)Capabilities-BDI;
Padgham認為,主體(agent)有capability實現某個目標g,總是與plan相關的,每一個plan實際上可以認為是關聯一個觸發事件來實現這個目標g,也就意味著主體(agent)至少有一種方式可以實現目標g.
定義:Belief-Capability相容性公理: CAP( ) BEL( ),語義:如果主體(agent) i有能力實現 ,則主體(agent) i相信 。
定義:Capability-Goal相容性公理: GOAL( ) CAP( ),語義:如果主體(agent) i目標是 ,則主體(agent) i有能力實現 。
下表是加入CAP後的BDI模型與Rao & Georgeff提出的BDI原型的比較:
Rao & Georgeff Padgham
I-System IC-System
A1: GOAL( ) BEL( ) CAP( ) BEL( )
A2: INT( ) GOAL( ) GOAL( ) CAP( )
A3: INT(does( )) does( ) CAP( ) BEL(CAP( ))
A4:INT( ) BEL(INT( )) GOAL( ) CAP(GOAL( ))
A5: GOAL( ) BEL(GOAL( )) INT( ) CAP(INT( ))
A6: INT( ) GOAL(INT( ))
A7: done( ) BEL(done( ))
A8: INT( ) inevitable◇( INT( ))
4.3 RES運算元、OPP運算元的引入
以上的BDI理論,考慮到加入其它運算元來對主體(agent)建模。但是還有一些問題沒有涉及,例如上表中A3: INT(does( )) does( ),如果在復合動作的條件下,則得到:INT(does( ; )) does( ; )
這樣就沒有考慮到執行動作 對後續動作 執行的影響作用。
本文為了解決這個問題,引入了RES和OPP兩個運算元,並給出了語義描述。
OR1:
CAP(does( ; )) [BEL(does( )) OPP(does( ))] RES(done( ))
語義:如果一個主體(agent)具有執行復合動作 的能力
則在某個時刻,此主體(agent)相信可以執行動作 並有機會執行動作 ,相信可以執行動作 並有機會執行動作 ,並且執行動作 的結果不會導致非法狀態。
OR2:
CAP(does( ; )) [CAP(does( )) OPP(does( ))] RES(done( ))
語義:如果一個主體(agent)具有執行復合動作 的能力
則此主體(agent)有能力執行動作 並有機會執行動作 ,有能力執行動作 並有機會執行動作 ,並且執行動作 的結果不會導致非法狀態。
OR3:
CAP(does( ; )) [BEL(CAP(does( ))) OPP(does( ))] RES(done( ))
語義:如果一個主體(agent)具有能力執行復合動作 達到目標 ,
那麼此主體(agent)相信具有執行動作 的能力並有機會執行動作 ,相信具有執行動作 的能力並有機會執行動作 ,並且執行動作 的結果不會導致非法狀態。
……
OR7:
CAP (if then else ))
[ BEL(CAP(does( ))) OPP(does( ))] RES(done( )) ]
[ BEL(CAP(does( ))) OPP(does( ))] RES(done( )) ]
語義:如果主體(agent)有能力在 是執行動作 否則執行動作
則, 成立且主體(agent)相信具有執行動作 的能力並有機會執行動作 ,並且執行動作 的結果不會導致非法狀態;或者是 不成立且主體(agent)相信具有執行動作 並有機會執行動作 ,並且執行動作 的結果不會導致非法狀態。
5 基於Defeasible Logic的意圖推理
5.1 問題的提出
Rao & Georgeff模型化意圖為正規模態運算元,從而不可避免的存在邏輯全知(logical-omniscience) 問題和重言隱含問題下副作用問題。
(1) 邏輯全知問題(logical-omniscience)
INT( )
(2) 重言隱含下的副作用問題
R INT( ) INT(R)
(3) 析取擴大化問題
INT( ) INT(R )
(4) 合取分離問題
INT(R ) INT(R) INT( )
5.2 理論基礎
(1)Konolige & Pollack 意圖建模
Konolige和Pollack認為正規模態邏輯不適用於意圖,他們用方案(scenarios)來表示主體(agent)的思維狀態,公式 的方案是W的使 為真的子集,模型中的方案集I,就是所有相互不等價的意圖公式組成的集合,只有與I中的某個公式等價的公式才是該主體(agent)的意圖,因此如果INT( )在該模型中可以由INT(a)推出,那麼 =a,這樣該模型就失去了非等價意圖的推理能力。
(2)Rao & Georgeff意圖建模。
Rao & Georgeff意圖建模為了克服前邊提出的(3)(4)問題,引入了BDI的only模態形式,本質上類同於Konolige&Pollack理論。
5.3 Defeasible Logic的引入
文章從另一個角度,應用基於非單調邏輯(non-monotonic)的defeasible logic來研究policy-based 意圖模型。
非單調邏輯是這樣一種推理:推理系統的定理集合並不隨推理過程的進行而單調的增大,新推出的理論很可能會否定、改變原來的一些定理。非單調推理是處理不完全知識的工具。
Defeasible logic 就是一種非單調推理,在意圖推理中應用defeasible logics就是考慮到允許主體(agent)可以在不能完全了解環境情況下,利用已有的不完備知識進行推理。
6 總結和進一步的工作
(1)多主體(agent)系統建模
(2)tableaux系統
(3)多主體(agent)系統動態維護
更多資料:
「ERP總設計師論壇」(網路搜索)
B. 面向agent的編程語言主要有哪些
看你的mysql當前默認的存儲引擎:
mysql> show variables like '%storage_engine%';
你要看某個表用了什麼引擎(在顯示結果里參數engine後面的就表示該表當前用的存儲引擎):
mysql> show create table 表名;
C. java的http編程怎樣取消user-agent報頭
我在android上做一個用基站方法獲取用戶地理位置信息的應用,程序將用戶此時的信息封裝為josn的格式以HTTP的形式發送出去,等待google 伺服器返回用戶的地理位置信息。在等待過程中,如果此時用戶推出程序,則取消http請求。我用的是http.abort()的方法,即:
如果用戶推出程序,執行CancelFetchAddress()方法,
public void CancelFetchAddress() {
try{
if (mGettingAddress && mHttpPost != null) {
Log.d(Constants.LOG_TAG, "Try to abort Json request");
mHttpPost.abort();
}
}catch(Exception e) {
Log.e(Constants.LOG_TAG, "Abort Json request failed: " + e.toString());
}
}
但是在實際實現中,當用戶推出程序時,執行了CancelFetchAddress()方法,但是程序還是一直等待在
「BaseStation: posting the HTTP request....");」
中,直到40秒後,返回錯誤信息,java.net.SocketException:Socket is closed。也就是說,執行mHttpPost.abort();
D. 人工智慧語言的面向主體(Agent,亦稱活體)程序設計
近年來出現了具有人工智慧特色面向對象程序設計,稱為面向主體(Agent,亦稱活體)程序設計。往一個對象中增加更多的智能,使它能根據環境的變化進行推理並規劃自己的行為,就得到主體(Agent)。主體概念符合Minsky提出的「意念社會」認知模型,特別適用於分布環境。經典的面向對象程序設計語言是Smalltalk,面向主體的程序設計語言也已經有了一些,如OZ等,但還沒被大家公認和普遍採用。也有基於PDP認知模型(Parallel Distributed Processing)的神經網路語言。第三來源是知識工程的實際需要。例如,為了開發各種領域的專家系統而設計的包含不精確推理或不確定推理功能,甚至包含多種不同推理機制的AI語言,例如Loops和TUILI。還有的是看到某一個專家系統做得比較成功,乾脆抽去它的領域知識,留下它的表示方法,也成為一種語言,俗稱專家系統外殼。例如,抽去醫學專家系統MYSIN的領域知識就得到一個外殼語言Emycin。
E. 如何利用windows agent編程編寫桌面寵物
http://procts.ccidnet.msn.com.cn/pub/@proctdatac_i86148_z1.html