專利名稱:人類行為建模和仿真架構(gòu)的制作方法
技術(shù)領(lǐng)域:
本公開提供了 一種改進(jìn)的數(shù)據(jù)處理系統(tǒng),并且具體提供了 一種用于處理數(shù)據(jù)的方法和裝置。更具體地,本公開涉及用于建模和仿真人類行為(humanbehavior)的計(jì)算機(jī)實(shí)施方法、裝置和計(jì)算機(jī)可用程序代碼。
背景技術(shù):
人類行為是指由人類進(jìn)行的活動(dòng)(activitie)集合。這些活動(dòng)受下列因素影響例如,文化、態(tài)度、情緒、價(jià)值、道德規(guī)范、權(quán)力、信念和/或高壓政治。人類的行為落入一種范圍之內(nèi),即,在該范圍中, 一些行為是共同的,一些行為被認(rèn)為是不尋常的,再一些行為被認(rèn)為是可接受的,而其它行為在可接受界限以外。許多學(xué)術(shù)學(xué)科,例如心理學(xué)、社會(huì)學(xué)和人類學(xué)已經(jīng)研究了人們的行為。最近,已經(jīng)應(yīng)用計(jì)算機(jī)的使用來研究人類行為。
另外,已經(jīng)使用人類行為的仿真來進(jìn)行軍事訓(xùn)練和計(jì)劃編制。針對(duì)預(yù)測(cè)其它情況,例如經(jīng)濟(jì)學(xué)和社會(huì)學(xué)動(dòng)作,也可以使用人類行為仿真。預(yù)測(cè)人類行為的能力將有助于研發(fā)培訓(xùn)程序。了解受訓(xùn)員將如何響應(yīng)不同的刺激物可被用來研發(fā)并修改培訓(xùn)程序。
目前的模型和仿真程序由于不同的原因而沒有適當(dāng)?shù)胤抡嫒祟愋袨?。例如,目前可用的仿真程序僅適用于特定類型的仿真。結(jié)果,當(dāng)需要不同類型的仿真時(shí),需要編寫新程序來執(zhí)行該仿真。另外,關(guān)系的數(shù)量和修改那些關(guān)系的能力也受到限制。
因此,具有一種用于建模和仿真人類行為以供培訓(xùn)程序使用的改進(jìn)的計(jì)算機(jī)實(shí)施方法、裝置和計(jì)算機(jī)可用編程代碼,將會(huì)非常有益。
發(fā)明內(nèi)容
有利的實(shí)施例提供了一種用于仿真人類行為的計(jì)算機(jī)實(shí)施方法、裝置和計(jì)算機(jī)可用程序代碼。源代碼被放置在網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)中的存儲(chǔ)系統(tǒng)上。所述源代碼是以用于預(yù)測(cè)人類行為的語言編寫的。解釋器在所述網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)中的硬件上執(zhí)行,其中該解釋器包括語言解釋器和通信模塊。所述語言解釋器使用人工智能利用所述源代碼來執(zhí)行仿真,以便生成新定義和解釋后的源代碼。圖形用戶接口處理器在所述網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)中的硬件上執(zhí)行。所述圖形用戶接口處理器從所述語言解釋器接收所述解釋后的源代碼,以便形成接收到的解釋后的源代碼,并且使用所述接收到的解釋后的源代碼生成設(shè)備相關(guān)輸出。設(shè)備組與所述圖形用戶接口處理器通信。所述設(shè)備組顯示所述設(shè)備相關(guān)輸出,接收用戶輸入以便形成接收后的用戶輸入,并且將接收后的用戶輸入發(fā)送到所述圖形用戶接口處理器。通信模塊接收來自所述圖形用戶接口處理器的所述接收后的用戶輸入和來自所述語言解釋器的新定義,使用所述接收后的用戶輸入和所述新定義修改所述源代碼,以便形成由所述語言解釋器執(zhí)行的修改后的源代碼。
另 一有利實(shí)施例提供了 一種用于仿真人類行為的計(jì)算機(jī)實(shí)施方法。從網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)中的存儲(chǔ)系統(tǒng)中存儲(chǔ)的源代碼中恢復(fù)數(shù)據(jù),以便形成恢復(fù)后數(shù)據(jù)。使用在所述網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)上執(zhí)行的解釋器解釋所述恢復(fù)后數(shù)據(jù)以便執(zhí)行人類行為的仿真,從而生成結(jié)果。使用在所述網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)上執(zhí)行的圖形用戶接口處理器,從所述結(jié)果生成設(shè)備相關(guān)數(shù)據(jù)。所述設(shè)備相關(guān)數(shù)據(jù)可被用來呈現(xiàn)所述結(jié)果。使用所述結(jié)果修改所述源代碼,以便形成修改后源代碼。所述修改后源代碼提供在隨后解釋中利用的新數(shù)據(jù),以便預(yù)測(cè)人類行為。
另 一有利實(shí)施例提供了 一種用于仿真人類行為的凄t據(jù)處理系統(tǒng)。這個(gè)數(shù)據(jù)處理系統(tǒng)包括恢復(fù)部件,用于從網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)中的存儲(chǔ)系統(tǒng)中存儲(chǔ)的源代碼中恢復(fù)數(shù)據(jù),以便形成恢復(fù)后數(shù)據(jù)。解釋部件被呈現(xiàn)用以使用在所述網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)上執(zhí)行的解釋器解釋所述恢復(fù)后數(shù)據(jù)以便執(zhí)行人類行為的仿真,從而生成結(jié)果。數(shù)據(jù)處理系統(tǒng)也包括生成部件,用于使用在所述網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)上執(zhí)行的圖形用戶接口處理器,從所述結(jié)果生成設(shè)備相關(guān)數(shù)據(jù)。所述設(shè)備相關(guān)數(shù)據(jù)可被用來呈現(xiàn)所述結(jié)果。修改部件被呈現(xiàn)用以使用所述結(jié)果修改所述源代碼,以便形成修改后源代碼。所述修改后源代碼提供在隨后
6解釋中利用的新數(shù)據(jù),以便預(yù)測(cè)人類行為。
特征、功能和優(yōu)點(diǎn)可以在本公開的各個(gè)實(shí)施例中獨(dú)立地實(shí)現(xiàn)或者可以結(jié) 合其它實(shí)施例來實(shí)現(xiàn)。
在所附權(quán)利要求中闡述了本公開認(rèn)定的新穎的特征特點(diǎn)。然而,通過參 考當(dāng)結(jié)合附圖閱讀的有利實(shí)施例的下列詳細(xì)描述,本公開本身、以及優(yōu)選葉吏
用實(shí)施例、其進(jìn)一步目的和優(yōu)點(diǎn)將會(huì)被更好地理解,其中
圖1是可實(shí)施有利實(shí)施例的數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)的圖示表示;
圖2是圖示根據(jù)有利實(shí)施例的數(shù)據(jù)處理系統(tǒng)的圖3是圖示根據(jù)有利實(shí)施例的仿真系統(tǒng)的圖4是根據(jù)有利實(shí)施例的人類行為建模和仿真開發(fā)架構(gòu)的圖5是圖示根據(jù)有利實(shí)施例的架構(gòu)中的模塊分配的圖6是圖示根據(jù)有利實(shí)施例的源模塊代碼的圖7是圖示根據(jù)有利實(shí)施例的源代碼的定義部分的圖8是圖示根據(jù)有利實(shí)施例的對(duì)象的方塊圖9是圖示根據(jù)有利實(shí)施例的對(duì)象的圖IO是圖示根據(jù)有利實(shí)施例的動(dòng)作對(duì)象的圖11是圖示根據(jù)有利實(shí)施例的動(dòng)作的應(yīng)用的圖12是圖示根據(jù)有利實(shí)施例的在具有調(diào)度程序中斷(scheduler interrupt)
的時(shí)間表(timeline)上的動(dòng)作的應(yīng)用的圖13是圖示根據(jù)有利實(shí)施例的其中時(shí)隙重疊的事件的應(yīng)用的圖14、 15和16是圖示根據(jù)有利實(shí)施例的持續(xù)事件(lasting event)的圖17是圖示根據(jù)有利實(shí)施例的解釋器(interpreter)的圖18是圖示根據(jù)有利實(shí)施例的詞匯分析器(lexical analyzer)的數(shù)據(jù)流
的圖19是圖示根據(jù)有利實(shí)施例的由語法剖析器執(zhí)行的剖析或句法分析的
圖20是圖示根據(jù)有利實(shí)施例的剖析樹的另 一實(shí)例的圖; 圖21是圖示根據(jù)有利實(shí)施例的解釋器的執(zhí)行模塊的圖; 圖22是圖示根據(jù)有利實(shí)施例的用于生成標(biāo)記的處理的流程圖;圖23是圖示根據(jù)有利實(shí)施例用于執(zhí)行人類行為的仿真的處理的流程圖; 圖24是圖示根據(jù)有利實(shí)施例的用于生成句子或產(chǎn)品(production)的處 理的流程圖25是圖示根據(jù)有利實(shí)施例的用于執(zhí)行產(chǎn)品的聲明(statement)的處理 的流程圖26是圖示根據(jù)有利實(shí)施例的圖形用戶接口 (GUI)處理器的圖27是圖示根據(jù)有利實(shí)施例的通過圖形用戶接口處理器的數(shù)據(jù)流的圖28是圖示根據(jù)有利實(shí)施例的顯示器的圖29是圖示根據(jù)有利實(shí)施例的顯示器的操縱的圖30是圖示根據(jù)有利實(shí)施例的用于識(shí)別位圖的變化的處理的流程圖31是圖示根據(jù)有利實(shí)施例的用于處理差數(shù)據(jù)的處理的流程圖32是圖示根據(jù)有利實(shí)施例的在提供人類透明聚合體(paradigm)中供
使用的組件的圖33是圖示根據(jù)有利實(shí)施例的用活人代替合成人的處理的流程圖34是圖示根據(jù)有利實(shí)施例的輸入神經(jīng)元(neuron)的實(shí)例圖35是圖示根據(jù)有利實(shí)施例的為輸入神經(jīng)元左操作數(shù)(left operand)定
義的輸入范圍的實(shí)例圖36是圖示根據(jù)有利實(shí)施例的輸入行為的聲明的圖37是圖示根據(jù)有利實(shí)施例的輸出宣告(declaration)的圖38是圖示根據(jù)有利實(shí)施例的對(duì)神經(jīng)網(wǎng)絡(luò)中的輸出范圍的聲明的圖39是圖示根據(jù)有利實(shí)施例的用于修改輸出行為的聲明的圖40是圖示根據(jù)有利實(shí)施例的用于隱藏層的聲明的圖41是圖示根據(jù)有利實(shí)施例的樣本神經(jīng)網(wǎng)絡(luò)的圖42是根據(jù)有利實(shí)施例的用于培訓(xùn)神經(jīng)網(wǎng)絡(luò)的示例聲明;
圖43是圖示根據(jù)有利實(shí)施例的神經(jīng)網(wǎng)絡(luò)中的計(jì)算功能的圖44是圖示根據(jù)有利實(shí)施例的神經(jīng)網(wǎng)絡(luò)的實(shí)例圖45是圖示根據(jù)有利實(shí)施例的來自神經(jīng)網(wǎng)絡(luò)的操作的結(jié)果的圖46是圖示根據(jù)有利實(shí)施例的列表的實(shí)例圖47是圖示根據(jù)有利實(shí)施例的從列表中刪除變量的圖48是圖示根據(jù)有利實(shí)施例的用于刪除項(xiàng)目的代碼的圖49是圖示根據(jù)有利實(shí)施例的用于操縱列表中的項(xiàng)目的代碼的圖;圖50是圖示根據(jù)有利實(shí)施例的作為隊(duì)列的列表的使用的圖51是圖示根據(jù)有利實(shí)施例的讀取列表中的項(xiàng)目的圖52是圖示根據(jù)有利實(shí)施例的列表中的分類屬性的圖53是根據(jù)有利實(shí)施例的使用燃料距離和速度的模糊邏輯實(shí)施(fozzy
logic implementation )的圖54是圖示根據(jù)有利實(shí)施例的使用遺傳算法求解方程式的圖;和
圖55A和圖55B是圖示根據(jù)有利實(shí)施例的源代碼中針對(duì)一個(gè)對(duì)象的代碼的圖。
具體實(shí)施例方式
現(xiàn)在參考附圖,并且具體地參考圖1-2,提供了數(shù)據(jù)處理環(huán)境的示例圖, 其中可以實(shí)施圖示性的實(shí)施例。應(yīng)當(dāng)理解,圖l-2只是示例性的,而不試圖 主張或暗示對(duì)其中可以實(shí)施不同有利實(shí)施例的環(huán)境的任何限制??梢詫?duì)所描 述的環(huán)境進(jìn)行許多修改。
如此處所使用的,術(shù)語"至少一個(gè)",當(dāng)與項(xiàng)目列表一起使用時(shí),是指可 以使用一個(gè)或多個(gè)項(xiàng)目的不同組合,并且列表中的每一項(xiàng)中的僅一個(gè)是必需 的。例如"項(xiàng)目A、項(xiàng)目B和項(xiàng)目C中的至少一個(gè)"可以包括例如(但不限 于)項(xiàng)目A或項(xiàng)目A和項(xiàng)目B。這個(gè)示例也可以包4舌項(xiàng)目A、項(xiàng)目B和項(xiàng)目 C,或者項(xiàng)目B和項(xiàng)目C。
現(xiàn)在參考附圖,圖l描繪了其中實(shí)施了有利實(shí)施例的數(shù)據(jù)處理系統(tǒng)的網(wǎng) 絡(luò)的圖示表示。在這些所描繪的示例中,網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100被用來實(shí)施 人類行為的建模和仿真研發(fā)架構(gòu)。該架構(gòu)提供用于預(yù)測(cè)人類行為的能力。
網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100是其中可以實(shí)施有利實(shí)施例的計(jì)算機(jī)和其它設(shè)備 的網(wǎng)絡(luò)。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100包括網(wǎng)絡(luò)102,該網(wǎng)絡(luò)102是被用來提供在 網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100內(nèi)被連接在一起的各種設(shè)備與計(jì)算機(jī)之間的通信鏈接 的介質(zhì)。網(wǎng)絡(luò)102可以包括諸如有線、無線通信鏈接、和/或光纜之類的連接。
在所描繪的示例中,服務(wù)器104和服務(wù)器106與存儲(chǔ)單元108 —起連接 到網(wǎng)絡(luò)102。另外,客戶機(jī)110、 112和114連接到網(wǎng)絡(luò)102。這些客戶機(jī)110、 112和114可以是例如個(gè)人計(jì)算機(jī)、工作站計(jì)算機(jī)和個(gè)人數(shù)字助理。在所描繪 的示例中,服務(wù)器104向客戶機(jī)110、 112和114提供數(shù)據(jù),例如引導(dǎo)文件、 操作系統(tǒng)圖像和應(yīng)用程序。在這個(gè)示例中,客戶機(jī)110、 112和114是到服務(wù)器104和服務(wù)器106的客戶機(jī)。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)IOO可以包括附加的服務(wù) 器、客戶機(jī)和其它設(shè)備(未示出)。使用網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100中的一個(gè)或多 個(gè)數(shù)據(jù)處理系統(tǒng)可以實(shí)施有利實(shí)施例中用于預(yù)測(cè)人類行為的架構(gòu)。
現(xiàn)在轉(zhuǎn)向圖2,描繪了根據(jù)圖示性實(shí)施例的數(shù)據(jù)處理系統(tǒng)的圖。在該示 例性示例中,凝:據(jù)處理系統(tǒng)200包括通信結(jié)構(gòu)202,該通信結(jié)構(gòu)202在處理 器單元204、存儲(chǔ)器206、永久性存儲(chǔ)器208、通信單元210、輸入/輸出(I/O) 單元212和顯示器214之間提供通信。
處理器單元204用于執(zhí)行可被加載到存儲(chǔ)器206的軟件的指令。根據(jù)特 定實(shí)現(xiàn)方式,處理器單元204可以是一組一個(gè)或多個(gè)處理器或者可以是多處 理器核心。而且,可以使用 一個(gè)或多個(gè)異類處理器系統(tǒng)來實(shí)現(xiàn)處理器單元204, 其中主處理器與輔助處理器一起存在于單個(gè)芯片上。作為另一個(gè)示例性示例, 處理器單元204可以是包含多個(gè)相同類型的處理器的對(duì)稱多處理器系統(tǒng)。
在這些示例中,存儲(chǔ)器206可以是例如隨機(jī)存取存儲(chǔ)器或者任何其它適 當(dāng)易失性或非易失性存儲(chǔ)器件。永久性存儲(chǔ)器208根據(jù)特定實(shí)現(xiàn)方式而可以 采用各種形式。例如,永久性存儲(chǔ)器208可以包括一個(gè)或多個(gè)組件或器件。 例如,永久性存儲(chǔ)器208可以是硬盤驅(qū)動(dòng)器、閃存、可重寫光盤、可重寫磁 帶、或者上面的某一組合。永久性存儲(chǔ)器208所使用的介質(zhì)也可以是可拆卸 的。例如,對(duì)于永久性存儲(chǔ)器208可以使用可拆卸的硬盤驅(qū)動(dòng)器。
在這些示例中,通信單元210提供與其它數(shù)據(jù)處理系統(tǒng)或設(shè)備的通信。 在這些示例中,通信單元210是網(wǎng)絡(luò)接口卡。通信單元210可以通過使用物 理通信鏈接和無線通信鏈接中的任一個(gè)或兩個(gè)來提供通信。
輸入/輸出單元212允許與可以連接到數(shù)據(jù)處理系統(tǒng)200的其它設(shè)備的數(shù) 據(jù)輸入和輸出。例如,輸入/輸出單元212可以通過#:盤和鼠標(biāo)來提供對(duì)用戶 輸入的連接。而且,輸入/輸出單元212可以將輸出發(fā)送到打印機(jī)。顯示器214 向用戶提供用于顯示信息的機(jī)制。
用于操作系統(tǒng)和應(yīng)用或程序的指令被放置在永久性存儲(chǔ)器208上。這些 指令可被載入到存儲(chǔ)器206以供處理器單元204執(zhí)行。不同實(shí)施例的處理可 以通過處理器單元204使用計(jì)算機(jī)實(shí)施的指4K其可被放置在諸如存儲(chǔ)器206 的存儲(chǔ)器中)來執(zhí)行。這些指令被稱作可以由處理器單元204中的處理器讀 取并執(zhí)行的程序代碼、計(jì)算機(jī)可用程序代碼、或者計(jì)算機(jī)可讀程序代碼。不 同實(shí)施例中的程序代碼可被包含在不同的物理或有形的計(jì)算機(jī)可讀介質(zhì)上,例如存儲(chǔ)器206或永久性存儲(chǔ)器208。
程序代碼216以函數(shù)形式被放置在可選擇性地拆卸的計(jì)算機(jī)可讀介質(zhì) 218上,并且可被載入到或者傳遞到數(shù)據(jù)處理系統(tǒng)200以供處理器單元204 執(zhí)行。在這些示例中,程序代碼216和計(jì)算機(jī)可讀介質(zhì)218形成計(jì)算機(jī)程序 產(chǎn)品220。在一個(gè)示例中,計(jì)算機(jī)可讀介質(zhì)218可以是有形形式,例如被插 入或放置到驅(qū)動(dòng)器或者作為永久性存儲(chǔ)器208的一部分的其它i殳備的光盤或 磁盤,用以被傳遞到存儲(chǔ)設(shè)備(例如作為永久性存儲(chǔ)器208的部分的硬盤驅(qū) 動(dòng)器)。以有形形式,計(jì)算機(jī)可讀介質(zhì)218也可以采取永久性存儲(chǔ)器的形式, 例如硬盤驅(qū)動(dòng)器、拇指驅(qū)動(dòng)器或者連接到數(shù)據(jù)存儲(chǔ)系統(tǒng)200的閃存。有形形 式的計(jì)算機(jī)可讀介質(zhì)218也被稱作計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。在一些示例中,計(jì) 算機(jī)可讀介質(zhì)218不可以拆卸。
可替換地,通過到通信單元210的通信鏈接和/或通過到輸入/輸出單元 212的連接,可以將程序代碼216從計(jì)算機(jī)可讀介質(zhì)218傳送到數(shù)據(jù)處理系 統(tǒng)200。在圖示性的示例中,所述通信鏈接和/或所述連接可以是物理的或者 無線的。計(jì)算機(jī)可讀介質(zhì)也可以采取非有形介質(zhì)的形式,例如包含程序代碼 的通信鏈接或無線傳輸。
針對(duì)數(shù)據(jù)處理系統(tǒng)200圖示的不同組件并不意味著提供對(duì)其中可以實(shí)現(xiàn) 不同實(shí)施例的方式的結(jié)構(gòu)性限制。該不同的圖示性實(shí)施例可被實(shí)施于包括除 了或者代替針對(duì)數(shù)據(jù)處理系統(tǒng)200圖示的那些組件的組件的數(shù)據(jù)處理系統(tǒng) 中。從所示的圖示性示例中可以改變圖2中所示的其它組件。
作為一個(gè)示例,數(shù)據(jù)處理系統(tǒng)200中的存儲(chǔ)設(shè)備是可以存儲(chǔ)數(shù)據(jù)的任何 硬件裝置。存儲(chǔ)器206、永久性存儲(chǔ)器208和計(jì)算機(jī)可讀介質(zhì)218是有形形 式的存儲(chǔ)設(shè)備的示例。
在另一示例中,總線系統(tǒng)可被用來實(shí)現(xiàn)通信結(jié)構(gòu)202,并且可以由一個(gè) 或多個(gè)總線(例如系統(tǒng)總線或輸入/輸出總線)組成。當(dāng)然,總線系統(tǒng)可以使 用任何合適類型的提供不同組件或者附著到總線系統(tǒng)的設(shè)備之間的數(shù)據(jù)傳送 的架構(gòu)來實(shí)現(xiàn)。另外,通信單元可以包括一個(gè)或多個(gè)用于發(fā)送和接收數(shù)據(jù)的 設(shè)備,例如調(diào)制解調(diào)器或網(wǎng)絡(luò)適配器。而且,存儲(chǔ)器可以是例如存儲(chǔ)器206 或例如在可以存在于通信結(jié)構(gòu)202中的接口和存儲(chǔ)器控制器集線器中發(fā)現(xiàn)的 高速緩存器。
在所描繪的示例中,網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100是具有網(wǎng)絡(luò)102的互聯(lián)網(wǎng),
ii代表使用傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)協(xié)議組彼此進(jìn)行通信的網(wǎng)絡(luò)與網(wǎng) 關(guān)的世界范圍的聚集。當(dāng)然,除了或者代替因特網(wǎng),網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100 也可被實(shí)現(xiàn)為許多不同類型的網(wǎng)絡(luò)。這些其它網(wǎng)絡(luò)包括例如內(nèi)聯(lián)網(wǎng)、局域網(wǎng) (LAN)和廣域網(wǎng)(WAN)。圖l被認(rèn)為是一個(gè)示例,不能被認(rèn)為是對(duì)不同 實(shí)施例的結(jié)構(gòu)性限制。
現(xiàn)在轉(zhuǎn)向圖2,描繪了根據(jù)有利實(shí)施例的數(shù)據(jù)處理系統(tǒng)的圖。數(shù)據(jù)處理 系統(tǒng)200可被用來實(shí)現(xiàn)服務(wù)器和客戶機(jī),例如圖1中的服務(wù)器104和106以 及客戶機(jī)IIO、 112和114。在這個(gè)圖示性的示例中,數(shù)據(jù)處理系統(tǒng)200包括 通信結(jié)構(gòu)202,該通信結(jié)構(gòu)202提供在處理器單元204、存儲(chǔ)器206、永久性 存儲(chǔ)器208、通信單元210、輸入/輸出(I/O)單元212與顯示器214之間的 通信。
處理器單元204用于執(zhí)行可被加載到存儲(chǔ)器206的軟件的指令。根據(jù)特 定實(shí)現(xiàn)方式,處理器單元204可以是一組一個(gè)或多個(gè)處理器或者可以是多處 理器核心。而且,可以使用 一個(gè)或多個(gè)異類處理器系統(tǒng)來實(shí)現(xiàn)處理器單元204, 其中主處理器與輔助處理器一起存在于單個(gè)芯片上。作為另一個(gè)示例性示例, 處理器單元204可以是包含多個(gè)相同類型的處理器的對(duì)稱多處理器系統(tǒng)。
在這些示例中,存儲(chǔ)器206可以是例如隨機(jī)存取存儲(chǔ)器或者任何其它適 當(dāng)易失性或非易失性存儲(chǔ)器件。永久性存儲(chǔ)器208根據(jù)特定實(shí)現(xiàn)方式而可以 采用各種形式。例如,永久性存儲(chǔ)器208可以包括一個(gè)或多個(gè)組件或器件。 例如,永久性存儲(chǔ)器208可以是硬盤驅(qū)動(dòng)器、閃存、可重寫光盤、可重寫磁 帶、或者上面的某一組合。永久性存儲(chǔ)器208所使用的介質(zhì)也可以是可拆卸 的。例如,對(duì)于永久性存儲(chǔ)器208可以使用可拆卸的硬盤驅(qū)動(dòng)器。
在這些示例中,通信單元210提供與其它數(shù)據(jù)處理系統(tǒng)或設(shè)備的通信。 在這些示例中,通信單元210是網(wǎng)絡(luò)接口卡。通信單元210可以通過使用物 理通信鏈接和無線通信鏈接中的任一個(gè)或兩個(gè)來提供通信。
輸入/輸出單元212允許與可以連接到數(shù)據(jù)處理系統(tǒng)200的其它設(shè)備的數(shù) 據(jù)輸入和輸出。例如,輸入/輸出單元212可以通過鍵盤和鼠標(biāo)來提供對(duì)用戶 輸入的連接。而且,輸入/輸出單元212可以將輸出發(fā)送到打印機(jī)。顯示器214 向用戶提供用于顯示信息的機(jī)制。
用于操作系統(tǒng)和應(yīng)用或程序的指令被放置在永久性存儲(chǔ)器208上。這些 指令可被載入到存儲(chǔ)器206以供處理器單元204執(zhí)行。不同實(shí)施例的處理可以通過處理器單元204使用計(jì)算機(jī)實(shí)施的指4K其可被放置在諸如存儲(chǔ)器206 的存儲(chǔ)器中)來執(zhí)行。這些指令被稱作可以由處理器單元204中的處理器讀 取并執(zhí)行的程序代碼、計(jì)算機(jī)可用程序代碼、或者計(jì)算機(jī)可讀程序代碼。不 同實(shí)施例中的程序代碼可被包含在不同的物理或有形的計(jì)算機(jī)可讀介質(zhì)上, 例如存儲(chǔ)器206或永久性存儲(chǔ)器208。
程序代碼216以函數(shù)形式被放置在可選擇性地拆卸的計(jì)算機(jī)可讀介質(zhì) 218上,并且可被載入到或者傳遞到數(shù)據(jù)處理系統(tǒng)200以供處理器單元204 執(zhí)行。在這些示例中,程序代碼216和計(jì)算機(jī)可讀介質(zhì)218形成計(jì)算機(jī)程序 產(chǎn)品220。在一個(gè)示例中,計(jì)算機(jī)可讀介質(zhì)218可以是有形形式,例如被插 入或放置到驅(qū)動(dòng)器或者作為永久性存儲(chǔ)器208的一部分的其它設(shè)備的光盤或 磁盤,用以被傳遞到存儲(chǔ)設(shè)備(例如作為永久性存儲(chǔ)器208的部分的硬盤驅(qū) 動(dòng)器)。以有形形式,計(jì)算機(jī)可讀介質(zhì)218也可以釆取永久性存儲(chǔ)器的形式, 例如硬盤驅(qū)動(dòng)器、拇指驅(qū)動(dòng)器或者連接到數(shù)據(jù)存儲(chǔ)系統(tǒng)200的閃存。有形形 式的計(jì)算機(jī)可讀介質(zhì)218也被稱作計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。在一些示例中,計(jì) 算機(jī)可讀介質(zhì)218不可以拆卸。
可替換地,通過到通信單元210的通信鏈接和/或通過到輸入/輸出單元 212的連接,可以將程序代碼216從計(jì)算機(jī)可讀介質(zhì)218傳送到數(shù)據(jù)處理系 統(tǒng)200。在圖示性的示例中,所述通信鏈接和/或所述連接可以是物理的或者 無線的。計(jì)算機(jī)可讀介質(zhì)也可以采取非有形介質(zhì)的形式,例如包含程序代碼 的通信鏈接或無線傳輸。
針對(duì)數(shù)據(jù)處理系統(tǒng)200圖示的不同組件并不意味著提供對(duì)其中可以實(shí)現(xiàn) 不同實(shí)施例的方式的結(jié)構(gòu)性限制。該不同的圖示性實(shí)施例可被實(shí)施于包括除 了或者代替針對(duì)數(shù)據(jù)處理系統(tǒng)200圖示的那些組件的組件的數(shù)據(jù)處理系統(tǒng) 中。從所示的圖示性示例中可以改變圖2中所示的其它組件。
作為一個(gè)示例,數(shù)據(jù)處理系統(tǒng)200中的存儲(chǔ)設(shè)備是可以存儲(chǔ)數(shù)據(jù)的任何 硬件裝置。存儲(chǔ)器206、永久性存儲(chǔ)器208和計(jì)算機(jī)可讀介質(zhì)218是有形形 式的存儲(chǔ)設(shè)備的示例。
在另一示例中,總線系統(tǒng)可^L用來實(shí)現(xiàn)通信結(jié)構(gòu)202,并且可以由一個(gè) 或多個(gè)總線(例如系統(tǒng)總線或輸入/輸出總線)組成。當(dāng)然,總線系統(tǒng)可以使 用任何合適類型的提供不同組件或者附著到總線系統(tǒng)的設(shè)備之間的數(shù)據(jù)傳送 的架構(gòu)來實(shí)現(xiàn)。另外,通信單元可以包括一個(gè)或多個(gè)用于發(fā)送和接收數(shù)據(jù)的設(shè)備,例如調(diào)制解調(diào)器或網(wǎng)絡(luò)適配器。而且,存儲(chǔ)器可以是例如存儲(chǔ)器206 或例如在可以存在于通信結(jié)構(gòu)202中的接口和存儲(chǔ)器控制器集線器中發(fā)現(xiàn)的 高速緩存器。
作為客戶機(jī),數(shù)據(jù)處理系統(tǒng)200可以采取各種形式。例如,數(shù)據(jù)處理系 統(tǒng)200可以采取平板計(jì)算機(jī)、膝上型計(jì)算機(jī)、工作站、個(gè)人計(jì)算機(jī)、電話設(shè) 備或者個(gè)人數(shù)字助理(PDA)。
不同的實(shí)施例提供了可被用來預(yù)測(cè)一組人可能如何地單獨(dú)反應(yīng)和/或作 為當(dāng)經(jīng)受一系列動(dòng)作和/或事件的一組的仿真環(huán)境。以這種方式,可以使用被 用來幫助判斷針對(duì)所述組將要采取最后一組行動(dòng)的結(jié)果,來仿真不同的"如 果...將會(huì)怎樣"情境。
不同的實(shí)施例提供了用于仿真人類行為的計(jì)算機(jī)實(shí)施方法、裝置和計(jì)算 機(jī)可用程序代碼。在一個(gè)實(shí)施例中,源代碼被放置在網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)(例 如圖1中所示的網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100)中的存儲(chǔ)器系統(tǒng)中。源代碼用于預(yù) 測(cè)人類行為。解釋器在網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)中的硬件上執(zhí)行。該解釋器使用源 代碼執(zhí)行仿真,以便生成新的定義和解釋后的源代碼。在網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng) 中的硬件上執(zhí)行的圖形用戶接口處理器接收解釋后的源代碼,并且使用這個(gè) 解釋后的源代碼生成設(shè)備相關(guān)輸出。該設(shè)備相關(guān)輸出凈妓送到與圖形用戶接 口處理器通信的一組設(shè)備。
這些設(shè)備顯示設(shè)備相關(guān)輸出并且接收用戶輸入。接收到的用戶輸入被返 回到圖形用戶接口處理器,該圖形用戶接口處理器依次將接收到的用戶輸入 發(fā)送到解釋器。該解釋器使用接收到的用戶輸入和新的定義來改變或者修改 源代碼。在這些示例中,新的定義是用于修改現(xiàn)有源代碼或者將新的信息添 加到現(xiàn)有源代碼的信息。這個(gè)修改后的源代碼隨后被執(zhí)行來生成新的定義和 新的解釋后的源代碼。以這種方式,在這些有利實(shí)施例中,生成反饋循環(huán), 以^_改變?cè)创a。
現(xiàn)在轉(zhuǎn)向圖3,描繪了圖示根據(jù)有利實(shí)施例的仿真系統(tǒng)的圖。系統(tǒng)300 是可以在圖1中的網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100中實(shí)現(xiàn)的仿真系統(tǒng)的示例。具體地, 系統(tǒng)300可以使用 一個(gè)或多個(gè)數(shù)據(jù)處理系統(tǒng)(例如圖2中的數(shù)據(jù)處理系統(tǒng)200 ) 來實(shí)現(xiàn)。
在這些示例中,定義302由系統(tǒng)300基于動(dòng)作304來處理。動(dòng)作304凈皮 應(yīng)用到定義302以便執(zhí)行人類行為的仿真。在這些示例中,可以通過系統(tǒng)300的用戶來選擇動(dòng)作304??梢詮呐渲梦募谢蛘咄ㄟ^程序或處理來選擇動(dòng)作 304。在這些示例中,定義302是用于仿真的源代碼的一部分。
系統(tǒng)300使用動(dòng)作304來修改定義302,以便生成定義306。在這些所描 繪的示例中,定義306是被用作基于對(duì)定義302采取的動(dòng)作304提供結(jié)果的 輸出的新的定義。另外,定義306被用來修改定義302,隨后該定義302被 用來繼續(xù)執(zhí)行仿真。該連續(xù)反饋發(fā)生,以便將從不同迭代中學(xué)習(xí)的能力提供 給系統(tǒng)300。另外,先前仿真的結(jié)果被存儲(chǔ)在定義302中,允許系統(tǒng)300從 先前仿真學(xué)習(xí)。
在這些示例中,定義302是一組人以及該組人生存的環(huán)境的表示。環(huán)境 的描述包括有形形式資產(chǎn)和無形形式資產(chǎn)兩種。另外,定義302也包含不同 人以及對(duì)應(yīng)用于該組人和環(huán)境的不同事件或者輸入的反應(yīng)的描述,該不同人 可以居住在除了定義動(dòng)作的國內(nèi)關(guān)系以外的組中。
系統(tǒng)300可被用作仿真池以便當(dāng)對(duì)定義302中描述的該組人采取某些動(dòng) 作時(shí)預(yù)測(cè)結(jié)果和各種反應(yīng)和/或影響。換句話說,當(dāng)對(duì)定義302應(yīng)用或采取動(dòng) 作304時(shí),系統(tǒng)300可#_編程來訪問例如經(jīng)濟(jì)上、社會(huì)上和心理上的影響。
在圖示性的示例中,使用計(jì)算機(jī)語言來寫定義302。在所描繪的示例中, 計(jì)算機(jī)語言是解釋性語言,其使用解釋器來執(zhí)行仿真,但是對(duì)于執(zhí)行而不需 要編輯??梢允褂每紤]定義在仿真處理中包含的各種對(duì)象的任何語言。例如, C和C十+是在這些示例中可以使用的解釋性語言的示例。在這些示例中,對(duì) 象的定義包括人類以及人類居住的環(huán)境。不同的有利實(shí)施例提供了針對(duì)系統(tǒng) 300的架構(gòu)以及定義302和動(dòng)作304。
現(xiàn)在參考圖4,描繪了根據(jù)有利實(shí)施例的人類行為建模和仿真研發(fā)架構(gòu) 的圖。架構(gòu)400是圖3中系統(tǒng)300的架構(gòu)的示例。在這個(gè)示例中,架構(gòu)400 包括源代碼402、解釋器404、圖形用戶接口 (GUI)處理器406和設(shè)備408。
源代碼402是架構(gòu)400中包括數(shù)據(jù)庫的所有信息的模塊。了解仿真的任 何事物被存儲(chǔ)在這個(gè)特殊組件中。源代碼402包括運(yùn)行仿真所需的所有信息。 該信息包括例如對(duì)人類組的定義和使用該定義執(zhí)行仿真所需的代碼。源代碼
用于源代碼402的語言可被修改為包括特定用于仿真和預(yù)測(cè)人類行為的 功能和特征。具有這些特征的語言被稱作人類行為定義語言(HBDL)。可以 使用當(dāng)前可用的語言例如C或者C+十來實(shí)現(xiàn)HBDL。當(dāng)然,在這些實(shí)施例中,可以使用任何解釋性語言來實(shí)現(xiàn)HBDL。
現(xiàn)有語言,可以實(shí)現(xiàn)HBDL。在圖示性的實(shí)施例中,可以使用不同的語言來 實(shí)現(xiàn)HBDL的不同組分。在這些示例中,源代碼402是以HBDL寫的數(shù)據(jù)庫 并且可以跨越位于不同地理位置的不同存儲(chǔ)設(shè)備上分布。
解釋器404從源代碼402中收集數(shù)據(jù)410以便執(zhí)行仿真。在這些圖示性 的示例中,數(shù)據(jù)410包括人類組和它們的環(huán)境、以及將被應(yīng)用到人類的動(dòng)作 的定義。而且,數(shù)據(jù)410也包括來自用于生成源代碼402的編程語言的聲明 或范圍(lines)。數(shù)據(jù)410中的這些聲明被解釋器404用來執(zhí)行仿真。
數(shù)據(jù)410中的聲明可以包括例如用于仿真合成人類的人工智能程序的代 碼。這些聲明也可以包括例如用于模糊邏輯神經(jīng)網(wǎng)絡(luò)和用于執(zhí)行仿真的其它 處理的代碼。另外,數(shù)據(jù)410也可以包括用于生成圖形用戶接口 (GUI)以 便呈現(xiàn)結(jié)果的處理或代碼。以這種方式,源代碼402包括關(guān)于人類組和環(huán)境 的信息以及執(zhí)行仿真所需的處理或代碼。根據(jù)實(shí)現(xiàn)方式,這些聲明可以是C 或C+十??商鎿Q地,聲明可以是更高級(jí)的語言,解釋器404將該更高級(jí)的語 言翻譯成C或C+十聲明用以執(zhí)行。
這個(gè)仿真生成圖形數(shù)據(jù)412,該圖形數(shù)據(jù)412 ^皮發(fā)送到GUI處理器406。 在這些示例中,圖形數(shù)據(jù)412的形式是不需要可能降低網(wǎng)絡(luò)的大量數(shù)據(jù)傳輸。 在圖示性的實(shí)施例中,圖形數(shù)據(jù)412采用基元的格式。通過發(fā)送基元,而不 是要求傳送更多數(shù)據(jù)的位圖或者其它格式,減少了網(wǎng)絡(luò)上所使用的帶寬量。 在一些情況下,可能需要發(fā)送圖形數(shù)據(jù)412中的一些位圖,但是當(dāng)可能時(shí)使 用基元。
相反,圖形數(shù)據(jù)412被GUI處理器406處理來生成設(shè)備數(shù)據(jù)414,該設(shè) 備數(shù)據(jù)414被設(shè)備408顯示。在這些示例中,設(shè)備數(shù)據(jù)414可以是例如由設(shè) 備408顯示的像素?cái)?shù)據(jù)或位圖。
設(shè)備408也可以接收用戶輸入以便生成設(shè)備數(shù)據(jù)416,該設(shè)備數(shù)據(jù)416 被GUI處理器406接收。GUI處理器406將設(shè)備數(shù)據(jù)416轉(zhuǎn)換為需要較少使 用網(wǎng)絡(luò)資源來傳輸?shù)母袷?。在這些示例中,用戶輸入418被返回到解釋器404。 用戶輸入418和來自從數(shù)據(jù)410的仿真的結(jié)果被用來生成修改420。修改420 被用來覆蓋或修改源代碼402。這些修改被用來修改源代碼402中的定義。 修改420類似于圖3中的定義306,該定義306被用來修改圖3中的定義302。從設(shè)備408接收到的用戶輸入。
修改420也可以包括例如將用于正被解釋器404執(zhí)行的仿真或者其中包 含的動(dòng)作的選擇。在這些示例中,可以從在設(shè)備408處生成的用戶輸入中接 收動(dòng)作和修改420的該選擇。
數(shù)據(jù)410可以包括例如圖3中的定義302和動(dòng)作304的信息。修改420 可以包括例如圖3中對(duì)定義306的改變的信息。這些改變可以例如是對(duì)現(xiàn)有 定義的修改或新定義的添加。在這些示例中,圖形數(shù)據(jù)412被用來呈現(xiàn)圖3 中的定義306。
架構(gòu)400中的不同模塊的圖示并不意味著暗示對(duì)可以實(shí)現(xiàn)這些模塊的方 式的結(jié)構(gòu)性的限制。例如,不同的模塊可以包括實(shí)現(xiàn)架構(gòu)400中的不同特征 的子模塊或處理。而且,特殊模塊可被實(shí)現(xiàn)在單個(gè)數(shù)據(jù)處理系統(tǒng)上或者可以 跨越多個(gè)數(shù)據(jù)處理系統(tǒng)擴(kuò)展。
使用架構(gòu)400的模塊性,不同模塊可被分布到網(wǎng)絡(luò)上的不同位置,以便 最大化硬件資源的使用。架構(gòu)400中的這種模塊性在允許其它功能性被遷移 或者被分布到網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)中的遠(yuǎn)處位置的同時(shí),也考慮一些功能性的 集中度。例如,將圖形處理和設(shè)備相關(guān)數(shù)據(jù)放置在集中環(huán)境中并且隨后在網(wǎng) 絡(luò)上將該信息發(fā)送到遠(yuǎn)程設(shè)備,提供了一些優(yōu)點(diǎn)。通常,圖形數(shù)據(jù)尺寸較大, 并且可能降低網(wǎng)絡(luò)速度。結(jié)果,信息和處理的這種類型的集中會(huì)引起關(guān)于等 待時(shí)間(latency )、數(shù)據(jù)傳輸和數(shù)據(jù)同步的問題。架構(gòu)400被設(shè)計(jì)成使得架構(gòu) 400的實(shí)現(xiàn)可以避免這些問題。
接著參考圖5,描繪了圖示根據(jù)有利實(shí)施例的架構(gòu)中的模塊的分布的圖。
在這個(gè)示例中,系統(tǒng)500中圖示的不同模塊來自于圖4中的架構(gòu)400。如在 該所描繪的示例中可以看出,系統(tǒng)500包含因特網(wǎng)502、局域網(wǎng)(LAN) 504、 廣域網(wǎng)(WAN) 506和局域網(wǎng)(LAN) 508。這些不同的網(wǎng)絡(luò)是圖1中的網(wǎng)絡(luò) 102的組件的示例。
如所描繪的,源代碼510被發(fā)現(xiàn)于存儲(chǔ)設(shè)備512、 514和516中。存儲(chǔ)設(shè) 備512連接到局域網(wǎng)504;存儲(chǔ)設(shè)備514連接到廣域網(wǎng)506;存儲(chǔ)設(shè)備516連 接到局域網(wǎng)508。源代碼510來自不同網(wǎng)絡(luò)的不同設(shè)備的分布是可以存儲(chǔ)源 代碼510的一種方式的示例。
源代碼510也可被存儲(chǔ)在特定網(wǎng)絡(luò)上而不是跨越不同位置的單個(gè)存儲(chǔ)系
17統(tǒng)上。存儲(chǔ)源代碼510的一些存儲(chǔ)設(shè)備可以是存儲(chǔ)源代碼510的副本的備用 設(shè)備。使用這種實(shí)現(xiàn)方式,能夠遷移其它位置的系統(tǒng)的部分,以享有可能在 那些位置中發(fā)現(xiàn)的優(yōu)勢(shì),而不是將該實(shí)現(xiàn)方式限制到特定位置。
在這個(gè)示例中,解釋器518位于數(shù)據(jù)處理系統(tǒng)520上。數(shù)據(jù)處理系統(tǒng)520 可以使用數(shù)據(jù)處理系統(tǒng)(例如圖2中的數(shù)據(jù)處理系統(tǒng)200)來實(shí)現(xiàn)。數(shù)據(jù)處 理系統(tǒng)520連接到局域網(wǎng)508。解釋器518從跨越不同網(wǎng)絡(luò)的不同存儲(chǔ)設(shè)備 中的源代碼510收集數(shù)據(jù),以便執(zhí)行仿真。
仿真的結(jié)果被發(fā)送到GUI處理器522,該GUI處理器522也被放置在數(shù) 據(jù)處理系統(tǒng)520上。GUI處理器522生成設(shè)備數(shù)據(jù)用以在設(shè)備523上顯示。 另外,解釋器518可以將圖形數(shù)據(jù)發(fā)送到數(shù)據(jù)處理系統(tǒng)526上執(zhí)行的GUI處 理器524和數(shù)據(jù)處理系統(tǒng)530上執(zhí)行的GUI處理器526。 GUI處理器524生 成設(shè)備數(shù)據(jù)用以在設(shè)備530上顯示,同時(shí)GUI處理器528生成設(shè)備數(shù)據(jù)用以 在設(shè)備532上顯示。GUI處理器522、 524和528分別位于接近設(shè)備523、 530 和532。
以這種方式,由這些處理器生成的數(shù)據(jù)不需要使用大量的網(wǎng)絡(luò)資源。在 這些示例中,在圖4中的架構(gòu)400中描述的GUI處理器模塊被復(fù)制在系統(tǒng)500 內(nèi)的多個(gè)不同位置,以便最小化使用以可以降低網(wǎng)絡(luò)資源速度或者使用大量 網(wǎng)絡(luò)資源的方式經(jīng)由網(wǎng)絡(luò)將圖形數(shù)據(jù)傳送到遠(yuǎn)程設(shè)備。
現(xiàn)在參考圖6,描繪了圖示根據(jù)有利實(shí)施例的源模塊代碼的圖。在這個(gè) 示例中,源代碼600是圖4中的源代碼402的更詳細(xì)的圖示。
源代碼600包括定義602、動(dòng)作604和圖形用戶接口 (GUI)語言606。 定義602和動(dòng)作604被引導(dǎo)朝向環(huán)境中人類組的模擬。GUI語言606被利用 來呈現(xiàn)結(jié)果并且接收來自所述仿真的結(jié)束用戶的用戶輸入。使用GUI語言 606,源代碼600控制設(shè)備上結(jié)果呈現(xiàn)的外觀。在這些示例中,使用GUI語 言606來控制該結(jié)果的外觀。
而且,在這些示例中,源代碼600是自適應(yīng)的并且開放的。源代碼600 包括用于模擬的信息和用于執(zhí)行或者進(jìn)行仿真的實(shí)際語言。源代碼600取走 從讀取并解釋數(shù)據(jù)庫的傳統(tǒng)應(yīng)用中做出的判斷。相反,源代碼600是包括所 述信息和所述應(yīng)用的數(shù)據(jù),其中所述信息和應(yīng)用可以根據(jù)通過執(zhí)行仿真而生 成的結(jié)果而改變。
數(shù)據(jù)608表示數(shù)據(jù)到解釋器(例如圖4中的解釋器404)的流動(dòng)。修改610呈現(xiàn)對(duì)從解釋器接收到的源代碼600的改變。數(shù)據(jù)608包括從定義602、 動(dòng)作604和GUI語言606到解釋器的信息以供在執(zhí)行仿真時(shí)使用。在這些示 例中,源代碼600是自由格式數(shù)據(jù)庫。
在這些圖示性示例中,以HBDL寫源代碼600。作為一種自由格式數(shù)據(jù) 庫,源代碼600不需要不同組件之間的分隔符的效果??梢允褂脝螚l線來寫 源代碼600內(nèi)的程序。源代碼600也可以包括環(huán)路、情形聲明、條件跳躍和 其它類似聲明,以便更改仿真的執(zhí)行。
而且,源代碼600包含存儲(chǔ)部分代碼的對(duì)象。結(jié)果,對(duì)象可以反復(fù)被調(diào) 用,而不需要副本。而且,在源代碼600內(nèi),對(duì)象可被索引并且定義成包含 默認(rèn)參數(shù)。以這種方式,在源代碼600內(nèi)使能智能對(duì)象的創(chuàng)建。
而且,在源代碼600內(nèi)可以定義不同類型的變量。這些類型的變量可被 指向特定任務(wù)。例如,除了傳統(tǒng)的數(shù)字類型,源代碼600可以包括諸如人類、 個(gè)人、家庭、動(dòng)作、時(shí)間表、日期和其它之類的類型。另外,源代碼600提 供基于時(shí)間表的執(zhí)行模型用以執(zhí)行仿真。在源代碼600內(nèi),人工智能組件可 以與功能命令一起被提供用以支持這些組件。
在源代碼600內(nèi),定義602描述了人類組和該人類組居住的環(huán)境。動(dòng)作 604表示在仿真期間應(yīng)用到定義602的影響。在這些示例中,動(dòng)作604是被 稱作投入到時(shí)間表的事件的一部分或一小片代碼。
在這些示例中,參與仿真的人類以及使用仿真的人類被源代碼600處理。 參與仿真的人類可以是真實(shí)的人或者是合成人。定義602、動(dòng)作604和GUI 語言606包括功能碼以及參數(shù)。功能碼和參數(shù)以及其它信息被輸出作為數(shù)據(jù) 608用以通過解釋器解釋。
通過將該信息移動(dòng)到源代碼600,源代碼600能夠控制仿真。以這種方 式,仿真不再是特定的應(yīng)用,就象當(dāng)前使用風(fēng)格和語言編寫的那樣。例如, 一旦在定義602中定義了特殊項(xiàng)目,則可以用動(dòng)作604中的預(yù)定動(dòng)作集來使 用該項(xiàng)目。例如,在與動(dòng)作604中運(yùn)4亍的動(dòng)作一起使用的定義602中,可以 定義類型X的人。結(jié)果,可以創(chuàng)建并運(yùn)行無限數(shù)量的仿真,而不記錄人類X 并且不對(duì)每個(gè)仿真運(yùn)行。
而且,使得GUI語言606位于源代碼600內(nèi)意味著定義602和動(dòng)作604 可以控制呈現(xiàn)給用戶的顯示。以這種方式,源代碼600實(shí)際上是數(shù)據(jù)庫,其 負(fù)責(zé)仿真的用戶看到什么。這個(gè)特征也支持定義和知識(shí)的可重復(fù)使用性,以便使得將會(huì)創(chuàng)建無限數(shù)目的仿真,而不必定制編寫對(duì)應(yīng)用的仿真或者對(duì)每個(gè) 仿真的程序。
當(dāng)前系統(tǒng)利用在從最開始被編碼的單個(gè)仿真中靜態(tài)的數(shù)據(jù)。最多,仿真 單個(gè)對(duì)象的代碼被保存在庫中,但是對(duì)于每個(gè)仿真,用于每個(gè)對(duì)象的動(dòng)作是 唯一的。所述動(dòng)作通常是以單獨(dú)的程序編寫的。結(jié)果,當(dāng)前使用的技術(shù)要求 對(duì)于每種特定類型的仿真的實(shí)質(zhì)編碼。而且,在當(dāng)前實(shí)踐下,圖形用戶接口 通常被重新使用并且在應(yīng)用程序的控制下。
結(jié)果,這些接口不改變特殊仿真,而不必記錄或重寫應(yīng)用程序。以這種 方式,使用有利實(shí)施例中的源代碼設(shè)計(jì),與當(dāng)前使用的用于仿真的技術(shù)相比, 對(duì)于顯示結(jié)果和接收用戶輸入呈現(xiàn)出更大的靈活性。
GUI語言606提供被解釋器通過圖形用戶接口處理器(例如圖4中的GUI 處理器406)選擇性發(fā)送的代碼。該代碼提供對(duì)末端用戶的顯示或視覺畫面 以及在各種顯示處提供的輸入和輸出控制。GUI語言606控制每個(gè)末端用戶 在他們的屏幕上看到什么以及每個(gè)用戶與系統(tǒng)交互作用的方式。在這些圖示 性示例中,GUI語言606是HBDL的子集。根據(jù)特殊實(shí)現(xiàn)方式,GUI語言606 可以使用不同的語言來實(shí)現(xiàn),以便提供不同的有利特征。以這種方式,不同 的有利實(shí)施例示出了對(duì)源代碼600的控制。
具有由源代碼600內(nèi)的GUI語言606控制的輸入和輸出的優(yōu)勢(shì)是在末端 設(shè)備處提供的用戶接口可以被仿真來控制。仿真通常涉及具有不同背景的用 戶。定制各種用戶接口的能力有助于這些用戶快速地理解系統(tǒng)。因此,減少 了執(zhí)行仿真的學(xué)習(xí)曲線。而且,僅最相關(guān)的信息被呈現(xiàn)給不同用戶,這增強(qiáng) 了仿真的相關(guān)性。
例如,不同用戶對(duì)于特殊仿真可以需要不同的用戶接口。 一些用戶可被 提供用戶接口來從動(dòng)作604中選擇特殊動(dòng)作以便應(yīng)用于定義602。其它用戶 能夠代替定義602中定義的合成人。這種用戶被從選擇動(dòng)作的用戶中提供不 同的用戶4姿口。
而且,正被執(zhí)行的不同仿真也要求不同類型的接口。這種結(jié)構(gòu)也提供了 動(dòng)態(tài)添加或者簡化用戶接口的能力。以這種方式,用戶接口可以按實(shí)施方式 相關(guān)的方式來提供。
另外,不同的仿真可以強(qiáng)加新參數(shù)和新環(huán)境。這些新的和變化情形意味 著將要分析不同的數(shù)據(jù)集。這些情形也可以包括需要包括不同的用戶或?qū)<?。?dāng)通過源代碼600提供時(shí),即將到來任務(wù)的這種不斷變化的特性強(qiáng)加了對(duì)多 種自適應(yīng)環(huán)境的需要。源代碼600在定義602、動(dòng)作604和GUI語言606內(nèi) 提供了該范例。
在這些圖示性的示例中,GUI處理器處于源代碼600的控制下并且當(dāng)與 目前使用的仿真系統(tǒng)同時(shí)發(fā)生時(shí)不是靜態(tài)應(yīng)用程序,GUI語言606為硬件提 供抽象層。GUI語言606的內(nèi)容確保以可預(yù)測(cè)的方式發(fā)生仿真處理并且從各 種用戶和設(shè)備傳遞和接收適當(dāng)?shù)男畔?。GUI語言606包含在其上實(shí)現(xiàn)解釋器 和GUI處理器的任意硬件上運(yùn)行所必需的所有代碼。以這種方式,當(dāng)硬件變 化發(fā)生時(shí),僅環(huán)繞硬件的底層部分必須被重寫。
在這些圖示性示例中,GUI語言606提供各種結(jié)構(gòu)以便創(chuàng)建在運(yùn)^f亍時(shí)間 期間用戶接口的必要元素。這些元素包括例如鼠標(biāo)跟蹤運(yùn)動(dòng)、鼠標(biāo)點(diǎn)擊運(yùn)動(dòng)、 類似操縱桿、菜單、窗口、對(duì)話框、復(fù)選框、無線按鈕、列表框和表格。使 用這些和其它元素,實(shí)現(xiàn)圖形用戶接口會(huì)變得更容易。而且,在使用GUI語 言606創(chuàng)建圖形用戶接口中生成的輸出可被保存在GUI語言606中以供后來 使用。
GUI語言606提供大量的不同特征,以便允許源代碼600呈現(xiàn)和接收關(guān) 于人類組的仿真和人類組居住的環(huán)境的輸入。GUI語言606提供了三維基元 (primitives)組。這些三維基元支持一些特征,例如用于控制假定相機(jī)和查 看端口的一組命令。也包含一些數(shù)學(xué)函數(shù)(包括矢量和矩陣運(yùn)算)以及輸入 和輸出不同類型的圖形文件格式的能力。
GUI語言606內(nèi)提供的特征也可以包括創(chuàng)建嵌有不止三維數(shù)據(jù)的三維對(duì) 象。例如,這些三維對(duì)象可以包括其它信息,例如關(guān)于三維對(duì)象的價(jià)格、重 量、顏色、價(jià)值或者規(guī)則。當(dāng)然,任何種類的信息可被嵌入或者與這些三維 對(duì)象相關(guān)聯(lián)。
而且,GUI語言606也可以包括三維模型和堆棧、以及用于管理該模型 和堆棧的一組命令。該三維^^莫型和堆棧考慮將被應(yīng)用于不同三維實(shí)體的復(fù)雜 變換的創(chuàng)建。以這種方式,可以生成其中對(duì)象被暫時(shí)影響的不同的世界。
GUI語言606為大型三維數(shù)據(jù)庫帶來了創(chuàng)建和維護(hù)簡單的優(yōu)點(diǎn)。在定義 602內(nèi)可以發(fā)現(xiàn)這些數(shù)據(jù)庫。該數(shù)據(jù)庫可被用來呈現(xiàn)任意三維對(duì)象,不管是 對(duì)象的大小、復(fù)雜度或特性。
而且,GUI語言606提供建立語言的圖形用戶接口。這個(gè)語言允許源代
21碼600控制每一末端用戶設(shè)備的感知(look and feel )。 GUI語言606可以包 括二維基元,例如點(diǎn)、線、曲線和表面。而且,也存在一組二維控制對(duì)象。 這些二維控制對(duì)象包括例如窗口、對(duì)話框、請(qǐng)求者(requestor)、復(fù)選框、無 線按鈕和菜單。
接著參考圖7,描繪了圖示根據(jù)有利實(shí)施例的源代碼的定義部分的圖。 定義700是圖6中的定義602的更詳細(xì)的圖示。定義700包括資產(chǎn)702、人 704和內(nèi)部關(guān)系706。
資產(chǎn)702包括人類所在的環(huán)境中的有形資產(chǎn)708和無形資產(chǎn)710兩者。 有形資產(chǎn)708包括活體對(duì)象和無生命對(duì)象?;铙w對(duì)象可以包括例如牲畜、鳥 類、細(xì)菌和植物。無生命對(duì)象可以包括例如房屋、山脈、湖泊、汽車、桌子、 筆、飛機(jī)或槍支。
無形資產(chǎn)710可以包括例如用于正被仿真的人類組的規(guī)則、法律和條例。 無形資產(chǎn)710也可以包括;波解釋器用來處理所述資產(chǎn)的信息。該信息也可以 包括普通代碼、庫和例程。
更具體地,這類資產(chǎn)包括例如數(shù)學(xué)庫、圖形庫、二維基元庫、三維基元 庫、模型和堆棧管理庫、人工智能庫、輸入/輸出庫、加密庫、網(wǎng)絡(luò)庫、系統(tǒng) 調(diào)用庫和時(shí)間管理庫。換句話說,無形資產(chǎn)710可以包括執(zhí)行仿真所必需的 任何信息。
人類704描述在人類組中存在的各種人類特性。人類704可以包括細(xì)述 在人類組中的人當(dāng)中的各種家庭樹和關(guān)系的信息。而且,人類704包括創(chuàng)建 各個(gè)個(gè)體的心理筒檔所需的信息。
內(nèi)部關(guān)系706包含在定義700中被人工智能4吏用的動(dòng)作和反應(yīng)。這些動(dòng) 作和反應(yīng)能夠以各種方式觸發(fā)。例如,所述觸發(fā)可以是隨機(jī)的、基于警報(bào)、 狀態(tài)機(jī)、或者作為對(duì)應(yīng)用于定義700的一組事件的反應(yīng)。
資產(chǎn)702內(nèi)的不同對(duì)象可以依賴無形資產(chǎn)710來執(zhí)行必需的功能和計(jì)算。 普通代碼、庫和例程是支持不同編程任務(wù)所必需的代碼。這些不同組分可被 作為數(shù)據(jù)發(fā)送到解釋器以供在執(zhí)行仿真中使用。三維對(duì)象是組成不同世界的 所有對(duì)象,包括活體對(duì)象和無生命對(duì)象。
現(xiàn)在參考圖8,描繪了根據(jù)有利實(shí)施例的對(duì)象的方框圖。在這個(gè)示例中, 對(duì)象800是圖6中的定義602內(nèi)的對(duì)象的一個(gè)圖示性實(shí)施方式的例示。在這 個(gè)圖示性示例中,對(duì)象800包括人工智能802、特征804和內(nèi)部關(guān)系806。人工智能802包含用于仿真特殊對(duì)象的代碼。在這些示例中,對(duì)象800 是活體對(duì)象,例如人、植物或動(dòng)物。人工智能802包含仿真被選對(duì)象的動(dòng)作 和反應(yīng)所必需的代碼。
特征804包括特殊對(duì)象的特征的識(shí)別。例如,如果對(duì)象802是人,則特 征804可以包括例如人的身高、體重、皮膚顏色、頭發(fā)顏色、眼睛顏色、體 形和任何其它合適特征。特征804可以包括其它物理特征,例如這個(gè)人可以 跑多快、這個(gè)人的敏捷度和這個(gè)人的耐力。
特征804中的非物理特征可以包括例如但不限于忍耐性、同情心、情緒、 智力和人際關(guān)系。人工智能802可以使用特征804來仿真對(duì)象800的動(dòng)作和 反應(yīng)。具體地,在所描繪的示例中,使用特征804來仿真人類行為。
人工智能802的復(fù)雜度和特征804內(nèi)的特征的數(shù)量將根據(jù)特殊實(shí)現(xiàn)方式 而變化。這些成分的復(fù)雜度隨著使得仿真與真實(shí)對(duì)象不可區(qū)分的期望性能增 力口而i曽力口。
內(nèi)部關(guān)系806包括可被人工智能802用來觸發(fā)事件的動(dòng)作和反應(yīng)。這些 事件包括對(duì)象800采取的動(dòng)作。這些動(dòng)作可以由對(duì)象800啟動(dòng),或者所述動(dòng) 作可以是響應(yīng)于對(duì)對(duì)象800采取的動(dòng)作而發(fā)生的動(dòng)作。對(duì)對(duì)象800采取的這 些動(dòng)作可以是指向于對(duì)象800的動(dòng)作或者可以是由對(duì)象800基于仿真期間該 對(duì)象800所處的環(huán)境而覺察的動(dòng)作。
現(xiàn)在轉(zhuǎn)向圖9,描繪了根據(jù)有利實(shí)施例的對(duì)象的圖。在這個(gè)示例中,對(duì) 象900是可以使用圖6中的定義602仿真的無生命對(duì)象的示例。對(duì)象900可 以是例如汽車、筆、飛機(jī)、山脈或者湖泊。
在這個(gè)示例中,對(duì)象900包括模型902和特征904。模型902包括用于 仿真特殊對(duì)象的代碼。模型卯2包括用于仿真特殊對(duì)象的功能的代碼。例如, 如果對(duì)象900是汽車,則對(duì)于產(chǎn)生某些結(jié)果的汽車執(zhí)行各種動(dòng)作。例如,可 以打開引擎,并且車輪可以轉(zhuǎn)動(dòng)。
模型902可以例如是數(shù)學(xué)模型。例如,可以使用有限狀態(tài)機(jī)器組來對(duì)汽 車的功能和操作建模。模型902中可以包括其它功能和處理,例如通過隨時(shí) 間使用和曝露于環(huán)境對(duì)正被建模的對(duì)象仿真老化。
特征卯4識(shí)別汽車的各種特征,例如輪胎大小、引擎大小、油漆顏色、 無線電類型和內(nèi)部空間量。而且,特征904也可以包括針對(duì)對(duì)象900的關(guān)于 汽車特色的其它信息。例如,針對(duì)特征904內(nèi)的特殊輪胎類型,可以識(shí)別輪胎上的胎面量。
模型902被用來響應(yīng)于由對(duì)對(duì)象900采取的各種動(dòng)作仿真汽車做什么, 例如用戶駕駛汽車、在特征904中識(shí)別的輪胎上發(fā)生的磨損。該磨損被記錄 在特征904內(nèi)。磨損可以是模型902內(nèi)的算法的一部分。而且,在汽車示例 中,模型902可以考慮環(huán)境曝露(例如陽光和水雹),以便呈現(xiàn)模型902的陳 舊外觀。對(duì)于這些對(duì)象可以執(zhí)行由圖8中的對(duì)象800以及圖9中的對(duì)象900 執(zhí)行的不同動(dòng)作,并且在圖6中的動(dòng)作604內(nèi)可以定義由圖8中的對(duì)象800 以及圖9中的對(duì)象900執(zhí)行的不同動(dòng)作。
現(xiàn)在參考圖10,描繪了根據(jù)有利實(shí)施例的動(dòng)作對(duì)象的圖。在這個(gè)示例中, 動(dòng)作對(duì)象IOOO是可以在圖6的動(dòng)作604內(nèi)發(fā)現(xiàn)的動(dòng)作的示例。
動(dòng)作對(duì)象1000包括動(dòng)作1002、對(duì)象1004、用戶許可1006和圖形用戶接 口 (GUI) 1008。動(dòng)作1002可以是例如可以執(zhí)行的動(dòng)作,例如談話、擊打、 移動(dòng)、坐下、抓、講或者看。對(duì)象1004是其中可以采取動(dòng)作的對(duì)象的識(shí)別。 用戶許可1006確定特殊用戶是否可以對(duì)對(duì)象1004執(zhí)行動(dòng)作1002。圖形用戶 接口 1008識(shí)別呈現(xiàn)給特殊用戶的用戶接口的類型。
對(duì)象1004可以是無生命對(duì)象或活體對(duì)象。用戶許可1006被用來確定某 些用戶是否能夠?qū)?duì)象執(zhí)行選擇性動(dòng)作。在一些示例中,特殊用戶不期望對(duì) 對(duì)象執(zhí)行動(dòng)作。圖形用戶接口 1008識(shí)別對(duì)對(duì)象的動(dòng)作被呈現(xiàn)給用戶的方式以 及用戶與對(duì)象的交互作用可以如何發(fā)生。
圖8、圖9和圖10中的對(duì)象的圖示被呈現(xiàn),其目的是圖示其中可以使用 當(dāng)前可用的編程語言和方法論來實(shí)現(xiàn)圖6中的源代碼600的一種方式。然而, 這些示例并不意味著對(duì)可以使用圖6中的源代碼600的方式的限制。
現(xiàn)在轉(zhuǎn)向圖11,描繪了根據(jù)有利實(shí)施例的動(dòng)作的應(yīng)用的圖。在這些示例 中,時(shí)間表1100圖示了在仿真期間定義(例如圖6中的定義602)經(jīng)受的影 響。在這些圖示性示例中,諸如圖6中的動(dòng)作604的動(dòng)作被稱作時(shí)間表1100 上的事件。這些動(dòng)作是代碼的一小片或一部分。具體地,動(dòng)作包括事件1102、 事件1104、事件1106和事件1108。在這個(gè)示例中,事件1102是在時(shí)隙1110 處應(yīng)用的。事件1104在時(shí)隙1112處發(fā)生,事件1106是在時(shí)隙1114期間應(yīng) 用的。事件1108在時(shí)隙1116期間發(fā)生。這些事件可以是自然程序上的或者 是驅(qū)動(dòng)的事件。換句話說,所述事件可以是響應(yīng)于由解釋器發(fā)出或生成的各 種消息而應(yīng)用的。在這些示例中,如果必要,在執(zhí)行中間期間,由時(shí)間表1100的執(zhí)行發(fā)出
的主中斷會(huì)中斷這些事件,并且仿真立即傳遞到仿真的下一時(shí)隙。與當(dāng)前^f吏 用的編程語言不同,其中源代碼的執(zhí)行或者是程序上的或者事件驅(qū)動(dòng)的,在 有利實(shí)施例中,源代碼中的動(dòng)作遵循基于時(shí)間的執(zhí)行模型。在這些示例中,
時(shí)隙可以具有各種粒度(granularity)。例如,每個(gè)時(shí)隙可以表示星期、日、 小時(shí)、分鐘或者某一其它時(shí)間段。
在所描繪的實(shí)施例中,時(shí)間表1100在調(diào)度程序(將在后面更詳細(xì)地描述) 的監(jiān)督下運(yùn)行。該調(diào)度程序運(yùn)行事件1102、 1104、 1106和1108,它們與時(shí)間 表1100相關(guān)或者附著到時(shí)間表1100。調(diào)度程序?qū)@些事件具有全面的控制, 并且可以按需要中斷它們。而且,調(diào)度程序運(yùn)行存儲(chǔ)器管理器和存儲(chǔ)器恢復(fù) 設(shè)施。以這種方式,為被中斷的任務(wù)分配的全部存儲(chǔ)可以變得可用于即將到 來的事件。
現(xiàn)在轉(zhuǎn)向圖12,描繪了圖示根據(jù)有利實(shí)施例的在具有調(diào)度程序中斷的時(shí) 間表上應(yīng)用動(dòng)作的圖。在這個(gè)示例中,時(shí)間表1200包括事件1202和事件1204。 事件1202在時(shí)間表1200上的時(shí)隙1206期間開始執(zhí)行。在這個(gè)示例中,事件 1202包括輸入1208、判斷1210和處理1212。事件1202在時(shí)隙1206期間開 始執(zhí)行。當(dāng)時(shí)隙1206結(jié)束時(shí),調(diào)度程序在點(diǎn)1214處中斷事件1202的執(zhí)行。 然后,執(zhí)行被傳遞到針對(duì)時(shí)隙1216的事件1204,該時(shí)隙1216在時(shí)隙1206 之后開始。在這個(gè)示例中,在時(shí)隙1206與時(shí)隙1216之間不存在重疊。
現(xiàn)在轉(zhuǎn)向圖13,描繪了圖示根據(jù)有利實(shí)施例的其中時(shí)隙重疊的事件應(yīng)用 的圖。在這個(gè)示例中,調(diào)度程序執(zhí)行時(shí)間表1300,該時(shí)間表1300具有附著 到各種時(shí)隙的事件1302、 1304、 1306和1308。事件1302被附著到時(shí)隙1310。 事件1304被附著到時(shí)隙1312或者與時(shí)隙1312相關(guān)聯(lián)。事件1306和1308被 分別附著到時(shí)隙1314和1316。
在這個(gè)圖示性示例中,不同的時(shí)隙可以彼此重疊。換句話說, 一個(gè)時(shí)隙 可以比另一個(gè)時(shí)隙持續(xù)更長時(shí)間^險(xiǎn)。如圖示的,時(shí)隙1310和時(shí)隙1312彼此 重疊。結(jié)果,事件1302和事件1304可以在某一時(shí)間段(契其中時(shí)隙1310和 時(shí)隙1312重疊)期間同時(shí)運(yùn)行。在這個(gè)特殊示例中,事件1302被提供更長 時(shí)間以執(zhí)行。
時(shí)隙的重疊并不意味著在重疊發(fā)生的時(shí)間瞬間期間事件會(huì)合并。在這些 圖示性示例中,如果由于任何原因針對(duì)時(shí)隙1310的事件1302的中斷發(fā)生,則如果該中斷是在時(shí)隙1312的執(zhí)行開始或者期間之前發(fā)生的,則控制傳遞到 時(shí)隙1312。然而,如果在時(shí)隙1310期間但是在時(shí)隙1312的結(jié)束之后發(fā)生中 斷,則控制被傳遞到時(shí)隙1314中事件1306的執(zhí)行。
現(xiàn)在參考圖14、圖15和圖16,描繪了圖示根據(jù)有利實(shí)施例的持續(xù)事件 的圖。如圖示的,時(shí)間表1400包含事件1402、持續(xù)事件1404和事件1406, 這些事件都被附著到或者被分配到時(shí)隙1408。事件1410與時(shí)間表1400上的 時(shí)隙1412相關(guān)聯(lián)。事件1414被附著到時(shí)隙1416,而事件1418被附著到時(shí) 隙1420??梢院翢o間斷地或者假定延長地(given extensions )進(jìn)行事件。當(dāng) 等待來自末端用戶的輸入或者來自仍未終止但是必需的某一其它事件的輸入 時(shí),可以存在這種事件。在這些示例中,這種事件是持續(xù)事件,例如持續(xù)事 件1404??梢詮囊粋€(gè)時(shí)隙到另一個(gè)時(shí)隙繼續(xù)持續(xù)事件1404,直到事件完全發(fā) 生為止。
如圖15中所示,持續(xù)事件1404變成附著到時(shí)隙1412。在圖16中,持 續(xù)事件1404再次延長或移動(dòng)到時(shí)隙1416。在這些示例中,在這個(gè)特定時(shí)隙 期間完成持續(xù)事件1404。
現(xiàn)在轉(zhuǎn)向圖17,描繪了圖示根據(jù)有利實(shí)施例的解釋器的圖。解釋器1700 是圖4中解釋器404的更詳細(xì)的圖示。解釋器1700是將以一種語言編寫的源 代碼轉(zhuǎn)換為以其它語言編寫的目標(biāo)代碼的程序。當(dāng)解釋器繼續(xù)處理源代碼時(shí), 解釋器1700也執(zhí)行目標(biāo)代碼。該目標(biāo)語言可以是以其它高級(jí)語言或者由特殊 數(shù)據(jù)處理系統(tǒng)或處理器使用的語言編寫的。
對(duì)于將^皮正確地解釋和執(zhí)行的任何程序,根據(jù)由該語言定義的結(jié)構(gòu)來組 織源代碼。具體地,這些結(jié)構(gòu)是依照句法的結(jié)構(gòu)。完整結(jié)構(gòu)集形成用于源代 碼的語言的語法。解釋器1700丟棄不是根據(jù)這些結(jié)構(gòu)組織的或者語法上不正 確的任何代碼。
解釋器1700包括通信模塊1702和語言解釋器1704。另外,解釋器1700 包括加密/解密模塊1706,其為解釋器1700與GUI處理器(例如圖4中的 GUI處理器406 )之間的信息的安全發(fā)送和接收作準(zhǔn)備。
在這些圖示的示例中,語言解釋器1704接收HBDL 1708。 HBDL 1708 是數(shù)據(jù)的示例,例如從源代碼模塊(例如圖4中的源代碼402)接收的圖4 中的數(shù)據(jù)410。 HBDL 1708被語言解釋器1704解釋來執(zhí)行仿真。結(jié)果是解釋 后的HBDL (IHBDL ) 1710,其^H送到加密/解密模塊1706用以加密。在加密之后,加密結(jié)果被作為加密后的解釋后的HBDL (EIHBDL) 1712發(fā)送 到GUI處理器,例如圖4中的GUI處理器406。 EIHBDL 1712是圖4中的圖 形數(shù)據(jù)412的示例。用戶輸入當(dāng)被來自 一組設(shè)備的GUI處理器收集時(shí)被接收 作為加密后的HBDL(EHBDL)1714。 EHBDL1714是圖4中的用戶輸入418 的示例。該加密后的信息被解密并且被發(fā)送到通信模塊1702作為HBDL 1716。
HBDL 1716是被用來修改源代碼的用戶輸入的示例。所述修改可以是例 如改變?cè)创a內(nèi)的定義或者選擇將應(yīng)用于所述定義的動(dòng)作。另外,語言解釋 器1704的輸出被發(fā)送到通信模塊1702作為HBDL 1718以供修改源代碼時(shí)使 用。HBDL 1716和HBDL 1718被通信模塊1702用來形成HBDL 1720,該 HBDL 1720用于修改源代碼。HBDL 1720是對(duì)于被用來修改源代碼的圖4中 的修改420的格式的示例。如可以看出的,HBDL1718為由語言解釋器1704 生成的輸出而提供反饋,以便修改源代碼。
更具體地,通信模塊1702包括調(diào)度器模塊1722、輸入模塊1724和注冊(cè) 模塊1726。語言解釋器1704包括詞匯分析器1728、語法剖析器1730和執(zhí)行 模塊1732。
語言解釋器1704包含處理詞匯分析、語法剖析和進(jìn)行判斷的模塊。當(dāng)數(shù) 據(jù)被接收為HBDL 1708時(shí),詞匯分析器1728以源代碼語言將HBDL 1708中 的數(shù)據(jù)仔細(xì)分析為單獨(dú)的標(biāo)記或字。在這些圖示性示例中,源代碼是以HBDL 編寫的。換句話說,詞匯分析器1728以HBDL 1708識(shí)別不同的標(biāo)記或成分。 這些標(biāo)記#1發(fā)送到語法剖析器1730,該語法剖析器1730將所述標(biāo)記分組為 用于HBDL 1708的有意義的句子或聲明。 一旦構(gòu)造HBDL 1708的句子或聲 明,語法剖析器1730就將該聲明發(fā)送到執(zhí)行模塊1732。隨后相應(yīng)地采取基 于這些聲明的動(dòng)作。
執(zhí)行模塊1732包括大量用于執(zhí)行仿真的不同子模塊。在這些示例中,執(zhí) 行模塊1732生成解釋后的HBDL(IHBDL)1710和HBDL 1718。 HBDL 1710 采取圖形數(shù)據(jù)(例如圖形基元)的形式。HBDL1718是修改后的或新的定義, 用于修改源代碼。HBDL 1718被返回到輸入模塊1724,以供在修改或重寫源 代碼時(shí)使用。輸入模塊1724將HBDL 1718中的新定義傳遞到調(diào)度器模塊 1722,該調(diào)度器模塊1722調(diào)度將被編寫為源代碼的HBDL 1720。
在這些圖示性的實(shí)施例中,語法剖析器1730啟動(dòng)詞匯分析器1728和執(zhí)行模塊1732。語法剖析器1730請(qǐng)求來自詞匯分析器1728的標(biāo)記。詞匯分析器1728接收來自HBDL 1708的字符以便生成標(biāo)記。每次生成一個(gè)標(biāo)記時(shí),詞匯分析器1728將該標(biāo)記發(fā)送到語法剖析器1730。語法剖析器1730使用該標(biāo)記生成一個(gè)或多個(gè)剖析樹。當(dāng)完成剖析樹時(shí),語法剖析器1730基于所完成的剖析樹請(qǐng)求將被執(zhí)行模塊1732執(zhí)行的動(dòng)作。
在這些圖示性示例中,每個(gè)剖析樹表示一產(chǎn)品。產(chǎn)品具有一組一個(gè)或多個(gè)動(dòng)作,所述動(dòng)作在每次標(biāo)記流匹配產(chǎn)品的定義時(shí)被激起(fire)或執(zhí)行。響應(yīng)于來自語法剖析器1730的請(qǐng)求,執(zhí)行模塊1732執(zhí)行語義分析,以便確定在對(duì)動(dòng)作的指令中是否發(fā)現(xiàn)任何語義錯(cuò)誤。如果出現(xiàn)錯(cuò)誤,則報(bào)告該錯(cuò)誤。否則,執(zhí)行對(duì)該組動(dòng)作的指令。使用對(duì)沿著線路分配的完成產(chǎn)品實(shí)施的動(dòng)作,進(jìn)4亍遞歸回到非終端調(diào)用器(recursive return to non-terminal callers )。
在這些示例中,執(zhí)行模塊1732確定在由語法剖析器1730創(chuàng)建的剖析樹中生成的指令是否語義上正確。在這些示例中,如果語義錯(cuò)誤發(fā)生,則執(zhí)行模塊1732生成一個(gè)錯(cuò)誤并且忽略該指令。然而,在一些情況下,如果對(duì)于執(zhí)行模塊1732呈現(xiàn)足夠的信息進(jìn)行校正,則可以校正該錯(cuò)誤。
當(dāng)用戶輸入被接收為EHBDL 1714時(shí),加密/解密模塊1706對(duì)所述信息進(jìn)行解密以便形成HBDL 1716。 HBDL 1716是被注冊(cè)模塊1702接收到的HBDL的非加密形式的用戶輸入。注冊(cè)模塊1726注冊(cè)并驗(yàn)證返回用戶輸入的每個(gè)用戶。這個(gè)注冊(cè)模塊確保僅被授權(quán)的或者注冊(cè)的用戶被允許將輸入返回到系統(tǒng)。例如,注冊(cè)模塊1726可以對(duì)特殊用戶驗(yàn)證密碼。
一旦用戶被驗(yàn)證,則HBDL 1716的用戶輸入被傳遞到輸入模塊1724。輸入模塊1724充當(dāng)一個(gè)焦點(diǎn),集中所有形式的輸入并且將具有特定指令的輸入發(fā)送到調(diào)度器模塊1722。輸入模塊1724可以添加調(diào)度器模塊1722必需的指令以便處理該輸入。在這些示例中,所述輸入定義在源代碼中什么要改變。
在這些示例中,特定指令包括下列指令,例如關(guān)于源代碼的什么部分可被特殊用戶修改的指令。例如,如果用戶輸入修改定義,則該指令告知將要修改源代碼的什么部分??梢允褂蒙奢斎氲挠脩舻淖R(shí)別和輸入自身來識(shí)別將被輸入修改的源代碼的部分。
然后,調(diào)度器模塊1722確保當(dāng)HBDL 1720被發(fā)送回源代碼時(shí)重寫源代碼的適當(dāng)部分。調(diào)度器模塊1722確定是否使用具有用戶的識(shí)別、輸入和將被編寫的源代碼的一部分的一策略對(duì)源代碼編寫。該策略是用于確定是否響應(yīng)于輸入對(duì)于源代碼進(jìn)行編寫的一組規(guī)則。該策略提供了冗余以便防止其中未
被授權(quán)的用戶可能得以通過注冊(cè)模塊1726的情況。例如,未被授權(quán)的用戶可 以哄騙真實(shí)用戶并且提交輸入。該策略可以識(shí)別輸入作為將不被真實(shí)用戶進(jìn) 行或者不是由真實(shí)用戶進(jìn)行的輸入的特征的改變。在這種情況下,所述輸入 被調(diào)度器模塊1722拒絕。
在這些示例中,每個(gè)用戶具有用戶可以添加或修改的它們自己的動(dòng)作組。 結(jié)果,用戶可以僅修改源代碼的動(dòng)作片段。來自執(zhí)行模塊1732的輸出HBDL 1718可被用來重寫定義和動(dòng)作。在這些情況下,語言解釋器1704也被認(rèn)為 是系統(tǒng)中的另一用戶。然而,解釋器是永久被授權(quán)的用戶。調(diào)度器模塊1722 同樣地查看語言解釋器1704,以便使用HBDL 1718來重寫定義。
結(jié)果,在仿真的任意給定點(diǎn)處,真實(shí)人末端用戶可以替換數(shù)據(jù)庫中的任 意定義的人。通過這一數(shù)據(jù)流,解釋器1700可以重寫或者變更源代碼。隨著 時(shí)間流逝和仿真運(yùn)行,定義被恒定地生成用以重寫源代碼。
輸入模塊1724提供仿真中正被執(zhí)行的"虛擬世界"與在與系統(tǒng)通信的設(shè) 備處由用戶通過用戶輸入接收的"真實(shí)世界"之間的連接。調(diào)度器模塊1722 提供一種機(jī)制來編寫新定義,以便修改源代碼。
接著轉(zhuǎn)向圖18,描繪了圖示根據(jù)有利實(shí)施例的詞匯分析器的數(shù)據(jù)流的 圖。如圖示的,詞匯分析器1800接收源1802并且處理源1802以便生成標(biāo)記 1804。詞匯分析器1800是圖17中的詞匯分析器1728的示例。詞匯分析器 1800逐個(gè)字符地從源1802中讀出內(nèi)容,并且將來自源1802的輸入字符分組 為稱作標(biāo)記的基本單元,例如標(biāo)記1804。
在這些圖示性示例中,使用常規(guī)表達(dá)1806中的一組標(biāo)記描述來執(zhí)行將源 1802中的字符分組為標(biāo)記1804。常規(guī)表達(dá)1806包含將源1802中的字符分組 為標(biāo)記1804所需的描述。在這些示例中,常規(guī)表達(dá)1806可以使用腳本來實(shí) 現(xiàn)。這些腳本使用描述供在將字符分組為標(biāo)記中使用的字符圖案的語言的符 號(hào)。
常規(guī)表達(dá)1806中定義的每個(gè)常規(guī)表達(dá)被分配一符號(hào)。該符號(hào)通常是數(shù) 字。使用針對(duì)常規(guī)表達(dá)1806中的特殊常規(guī)表達(dá)的符號(hào),識(shí)別由詞匯分析器 1800在標(biāo)記1804中生成的標(biāo)記。
除了常規(guī)表達(dá)1806,詞匯分析器1800也使用保留字1808。當(dāng)標(biāo)記被識(shí) 別在源1802內(nèi)時(shí),保留字1808內(nèi)的字也被分配一符號(hào)。保留字是對(duì)于一種語言具有特殊語法含義并且在那種語言中不能被用作識(shí)別符的字。
現(xiàn)在轉(zhuǎn)向圖19,描繪了圖示根據(jù)有利實(shí)施例的由語法剖析器剖析或語法 分析的圖。圖19中圖示的剖析可以由圖17中的語法剖析器1730來執(zhí)行。樹 1900是可被語法剖析器用來分組標(biāo)記的剖析樹的示例。在這個(gè)示例中,圖示 了聲明1902的剖析。聲明1902是varl-20。這個(gè)聲明被用來管理或定義將 被解釋器執(zhí)行的動(dòng)作。
具體地,語法剖析器根據(jù)一組語法結(jié)構(gòu)(也稱作產(chǎn)品)來識(shí)別詞匯分析 器產(chǎn)生的標(biāo)記之間的關(guān)系。每個(gè)產(chǎn)品表示邏輯單元并且通常以其它邏輯單元 中的標(biāo)記來定義。大多數(shù)語言定義兩種廣泛類型的邏輯單元。在這些示例中, 這些邏輯單元是聲明和表達(dá)。表達(dá)通常是提供值的語法語言結(jié)構(gòu)。聲明是改 變變量的狀態(tài)、控制程序流、或者執(zhí)行由語言支持的其它操作的語法結(jié)構(gòu)。
語法剖析器將標(biāo)記流分組為邏輯單元,并且指示執(zhí)行模塊基于邏輯單元 來執(zhí)行動(dòng)作。在這個(gè)示例中,聲明l卯2包含由詞匯分析器產(chǎn)生的標(biāo)記流。這 些標(biāo)記是vamame 1904、 EQ 1906、表達(dá)1908和NL 1910。表達(dá)l卯8包含整 數(shù)、INT1912。 Vamame 1904的值是varl; EQ 1906的值是-; INT 1912的 值是20;和NL1910的值是W。如可以看出的,假設(shè)標(biāo)記流,語法剖析器基 于流中的標(biāo)記序列重新生成語法。
現(xiàn)在轉(zhuǎn)向圖20,描繪了圖示根據(jù)有利實(shí)施例的剖析樹的另一示例的圖。 在這個(gè)示例中,剖析樹2000是從聲明2002中生成的。在這個(gè)示例中,聲明 2002是輸出=varl+var2*var3 。
在這個(gè)示例中,聲明2002的標(biāo)記包括vamame 2004、 EQ2006、 vamame 2008 、加法2010、 vamame 2012 、 MUL 2014 、 vamame 2016和NL 2018 。 Varname 2004具有值output; EQ 2006具有值=;vamame 2008具有值varl;加法2010 具有值+ ; varname 2012具有值var2; MUL 2014具有值*; vamame 2016具 有值var3;以及NL 2018具有值h。聲明2002的=符號(hào)的另 一側(cè)的表達(dá)由標(biāo) 記vamame 2008、加法2010、 varname 2012、 MUL 2014和varname 2016來 定義。
通過關(guān)于識(shí)別節(jié)點(diǎn)的這些標(biāo)記的位置,在剖析樹2000中表示了語言中這 些表達(dá)和它們的用途的識(shí)別。例如,表達(dá)2020表示表達(dá)2022和2026是使用 算子2024來運(yùn)算的。在這種情況下,算子2024是加法2010。表達(dá)2020也 包括表達(dá)2026,其識(shí)別當(dāng)使用算子2032時(shí)運(yùn)算的表達(dá)2028和2030。在這個(gè)示例中,表達(dá)2022包含varname 2008,而表達(dá)2026包括將算子2032應(yīng)用于表達(dá)2028和2030的結(jié)果。
現(xiàn)在轉(zhuǎn)向圖21,描繪了根據(jù)有利實(shí)施例的解釋器中的執(zhí)行模塊的圖。在這個(gè)示例中,執(zhí)行模塊2100是圖17中的執(zhí)行模塊1732的更詳細(xì)的圖示。如所圖示的,執(zhí)行模塊2100包括主時(shí)間表控制模塊2102、數(shù)學(xué)模塊2104、物理模塊2106、人工智能(AI)模塊2108、報(bào)告生成器2110和圖形模塊2112。
主時(shí)間表控制模塊2102是用于在執(zhí)行模塊2100內(nèi)隨時(shí)間將事件應(yīng)用于定義的調(diào)度器。數(shù)學(xué)模塊2104和物理模塊2106為必須用于確定對(duì)不同對(duì)象的動(dòng)作的效果的計(jì)算作準(zhǔn)備。人工智能模塊2108是用于運(yùn)行不同人工智能組件的源代碼的組件,以便當(dāng)事件被主時(shí)間表控制模塊2102應(yīng)用于定義時(shí)輔助人類行為的仿真。
圖形模塊2112生成圖形數(shù)據(jù),以便發(fā)送到GUI處理器用以在末端設(shè)備處呈現(xiàn)。在這些示例中,報(bào)告生成器2110生成兩種輸出。 一種輸出是用于修改源代碼的新定義。所生成的該輸出例如是圖17中HBDL 1718。在這些示例中,由報(bào)告生成器2110生成的另一種輸出是圖形數(shù)據(jù),其也是以HBDL格式化的。該輸出例如是圖17中的IHBDL1710。
圖形模塊2112包括用于生成向用戶呈現(xiàn)仿真的結(jié)果的輸出的大量不同類型的處理。這些類型的處理包括二維圖形管道、二維圖形基元、三維圖形管道、三維圖形基元、二維和三維模型和堆棧、顯示列表生成器、以及二維和三維描畫引擎。這些,以及其它類型的圖形處理可存在于圖形模塊2112中,以供在生成呈現(xiàn)給用戶的輸出時(shí)使用。
現(xiàn)在轉(zhuǎn)向圖22,描繪了根據(jù)有利實(shí)施例的用于生成標(biāo)記的處理的流程圖。圖22中圖示的處理可以在軟件組件(例如圖17中的詞匯分析器1728)中實(shí)現(xiàn)。
所述處理開始于從源接收下一字符(操作2200)。在這些示例中,字符的源是圖17中的HBDL 1708。以隊(duì)列排列所述字符(操作2202)。
接著,確定在隊(duì)列中的串與常規(guī)表達(dá)或保留字之間是否存在匹配(操作2204)。如果存在匹配,則使用隊(duì)列中的串創(chuàng)建標(biāo)記(操作2206)。然后清除該隊(duì)列(操作2208)。
之后,確定在源中是否已經(jīng)達(dá)到文件的末尾(操作2210)。如果已經(jīng)達(dá)到文件的末尾,則所述處理結(jié)束。否則,所述處理返回到操作2200,以便獲
31得下一字符。如果在操作2204中不發(fā)生串匹配,則所述處理繼續(xù)到操作2210, 如上所述。
現(xiàn)在轉(zhuǎn)向圖23,描繪了根據(jù)有利實(shí)施例的用于執(zhí)行人類行為的仿真的處 理的流程圖。所圖示的處理是圖23,其可以在架構(gòu)(例如圖4中的架構(gòu)400) 中實(shí)現(xiàn)。具體地,使用源代碼,例如圖6中的源代碼600,可以執(zhí)行該仿真。
所述處理開始于以在源代碼內(nèi)的定義定義的一組人居住于虛擬環(huán)境(操 作2300)。在這些示例中,所述定義例如是圖16中的定義602的定義。所述 處理使用源代碼內(nèi)的動(dòng)作對(duì)虛擬環(huán)境中的該組人執(zhí)行一組動(dòng)作,以便形成仿 真人類行為的結(jié)果(操作2302)。在這些示例中,該組動(dòng)作可以是從例如圖6 中的動(dòng)作604中的動(dòng)作中取出的。
之后,使用源代碼中的圖形接口語言從所述結(jié)果中生成輸出,以便形成 格式化輸出(操作2304)。在這些示例中,所述圖形用戶接口語言可以是圖6 中的GUI語言606。之后,當(dāng)仿真發(fā)生時(shí),該格式化輸出被呈現(xiàn)在網(wǎng)絡(luò)數(shù)據(jù) 處理系統(tǒng)中的一組設(shè)備上(操作2306),之后所述處理結(jié)束。
以這種方式,不同的有利實(shí)施例通過可以隨著仿真發(fā)生而變化的源代碼 來仿真人類行為。而且,圖形用戶接口語言考慮結(jié)果被呈現(xiàn)給用戶以便改變 并且被仿真本身控制的方式。
現(xiàn)在轉(zhuǎn)向圖24,描繪了根據(jù)有利實(shí)施例的用于生成句子或產(chǎn)品的處理的 流程圖。圖19中圖示的處理可以以軟件組件(例如圖17中的語法剖析器1730) 實(shí)現(xiàn)。
所述處理開始于獲取用于處理的下一標(biāo)記(操作2400)。在這些示例中, 所述標(biāo)記是從詞匯剖析器(例如圖17中的詞匯剖析器1728 )中接收的。確 定對(duì)于所述標(biāo)記是否已經(jīng)遇到文件的末尾(操作2402)。如果已經(jīng)遇到文件 的末尾,則判斷所述標(biāo)記是否適合剖析樹(操作2404)。如果所述標(biāo)記不適 合剖析樹,則生成一個(gè)錯(cuò)誤(操作2406),然后所述處理返回到操作2400。
否則,確定所述標(biāo)記是否完成剖析樹(操作2408)。如果所述標(biāo)記完成 剖析樹,則進(jìn)行針對(duì)與所完成的剖析樹對(duì)應(yīng)的產(chǎn)品的指令的執(zhí)^(操作2410 )。 之后,所述處理遞歸地返回到調(diào)用器(操作2412),然后所述處理返回到操 作2400,如上所述。
再次參考操作2408,如果剖析樹未完成,則所述處理也返回到操作2400。 返回參考操作2402,如果已經(jīng)到達(dá)文件的末尾,則確定是否已經(jīng)部分地重新生成語法(操作2414)。該操作被執(zhí)行來確定是否存在未完成的聲明或產(chǎn)品。這個(gè)確定可以通過檢查剖析樹以便查看是否存在未完成的剖析樹來進(jìn)行。如果部分地重新生成語法,則生成一個(gè)錯(cuò)誤(操作2416),之后所述處理結(jié)束。否則,所述處理結(jié)束,并不生成錯(cuò)誤。
現(xiàn)在轉(zhuǎn)向圖25,描繪了根據(jù)有利實(shí)施例的用于執(zhí)行對(duì)產(chǎn)品的聲明的處理的流程圖。圖25中圖示的處理可以以軟件組件(如圖17中的執(zhí)行模塊1732)實(shí)現(xiàn)。
所述處理開始于對(duì)產(chǎn)品的指令組執(zhí)行語義分析(操作2500)。執(zhí)行這一操作來確定語義錯(cuò)誤是否發(fā)生在針對(duì)產(chǎn)品的任何指令中。在這些示例中,該指令組是一個(gè)或多個(gè)指令。之后,判斷是否存在語義錯(cuò)誤(操作2502)。
如果不存在語義錯(cuò)誤,則所述處理執(zhí)行該指令組(操作2504),之后所述處理結(jié)束。如果在操作2502中發(fā)生語義錯(cuò)誤,則報(bào)告該錯(cuò)誤(操作2506 ),之后所述處理結(jié)束。在一些情況下,不是結(jié)束,而是所述處理可以嘗試校正所述錯(cuò)誤以便允許執(zhí)行所述指令。
現(xiàn)在轉(zhuǎn)向圖26,描繪了圖示根據(jù)有利實(shí)施例的圖形用戶接口 (GUI)處理器的圖。GUI處理器2600是圖4中的GUI處理器406的更詳細(xì)的圖示。在這個(gè)示例中,GUI處理器2600包括加密/解密模塊2602、圖形模塊2604、輸出模塊2606、輸入才莫塊2608和HBDL生成器2610。
在這些圖示性示例中,GUI處理器2600執(zhí)行從源代碼(圖6中的源代碼600 )接收的聲明。具體地,所述聲明包括來自圖6中的源代碼600中的GUI語言606的那些聲明。在這些源中發(fā)現(xiàn)了用于生成顯示的真實(shí)代碼,而不是分離的應(yīng)用程序。
GUI處理器2600執(zhí)行所述聲明并且接收用戶輸入。GUI處理器2600從例如圖17中的解釋器1700的解釋器中接收加密后的解釋后的HBDL(EIHBDL)2612。加密/解密模塊2602對(duì)進(jìn)行解密以便形成解釋后的HBDL(IHBDL)2614,該解釋后的HBDL (IHBDL)2614被圖形模塊2604處理。在這
組聲明。
圖形模塊2604可以生成用于在設(shè)備2618中顯示的像素,并且將所述數(shù)據(jù)發(fā)送到輸出模塊2606,該輸出模塊2606依次發(fā)送所述數(shù)據(jù)作為設(shè)備2616到設(shè)備2618。通過輸入模塊2608從設(shè)備2618接收用戶輸入作為設(shè)備2620。該才莫塊將設(shè)備數(shù)據(jù)發(fā)送到HBDL生成器2610,該HBDL生成器2610以HBDL 2622的形式表示該用戶輸入。HBDL 2622是以HBDL編寫的用戶輸入。該輸 入被加密/解密模塊2602加密并且返回到解釋器作為加密后的HBDL (EHBDL) 2624。
在這些圖示性示例中,GUI處理器2600在靠近設(shè)備2618的硬件上進(jìn)行。 事實(shí)上,在許多情況下,GUI處理器2600的一部分可以實(shí)際上在設(shè)備2618 上執(zhí)行,其它部分在數(shù)據(jù)處理器系統(tǒng)例如服務(wù)器上執(zhí)行。GUI處理器2600以 減少使用呈現(xiàn)數(shù)據(jù)必需的網(wǎng)絡(luò)資源的方式位于靠近設(shè)備2618。而且,在這些 示例中,GUI處理器2600的放置被布置成減少顯示數(shù)據(jù)和接收用戶輸入的等 待時(shí)間。
現(xiàn)在轉(zhuǎn)向圖27,描繪了圖示根據(jù)有利實(shí)施例的通過圖形用戶接口 (GUI) 處理器的數(shù)據(jù)流的圖的流程圖。在這個(gè)示例中,圖形模塊2700是圖26中的 圖形模塊2604的示例。在這些示例中,圖形模塊2700以基元2702的形式接 收解釋后的HBDL。這些基元是通過解釋器的源代碼的解釋結(jié)果。
圖形模塊2700處理這些基元以便生成用于位圖的像素和識(shí)別可以如何 操縱或顯示位圖的數(shù)據(jù)。該信息被作為位圖數(shù)據(jù)2704發(fā)送到客戶機(jī)處理 2706。在這些示例中,客戶機(jī)處理2706是在諸如圖19中的設(shè)備1918之類的 設(shè)備上執(zhí)行的處理。該客戶機(jī)處理執(zhí)行需要在顯示2708上顯示位圖數(shù)據(jù)的操 作。以這種方式,由圖形模塊2700來執(zhí)行渲染用于顯示的圖形所需的圖形處 理??蛻魴C(jī)處理2706僅顯示所提供的位圖數(shù)據(jù),并且不需要不同的處理和需 要從基元渲染位形的處理功率。使用處理的這種劃分,顯示數(shù)據(jù)的設(shè)備 不需要在渲染圖形中使用的不同的圖形處理器和圖形管道(例如在工作站中 使用的那些)。
結(jié)果,圖形可被顯示在許多不同的設(shè)備(通常不具有足夠的處理功率來 處理基元)上。例如,在移動(dòng)電話、個(gè)人數(shù)字助理或膝上型PC中可以實(shí)現(xiàn) 客戶機(jī)處理2706和顯示2708。
對(duì)于在顯示2708中正被顯示的數(shù)據(jù),輸入設(shè)備2710接收用戶輸入。該 用戶輸入可以操縱圖形,例如選擇按鈕、輸入數(shù)據(jù)或發(fā)送命令。當(dāng)用戶通過 操縱顯示2708上的位圖來修改所顯示的圖像時(shí),正被顯示的圖像的修改中的 差異或變化由客戶機(jī)處理2706識(shí)別。圖像中的這些差異形成差異數(shù)據(jù)2712, 該差異數(shù)據(jù)被返回到HBDL生成器2714。
34HBDL生成器2714類似于圖26中的HBDL生成器2610。 HBDL生成器 2210識(shí)別信息中的該變化或增量,并且將其轉(zhuǎn)換為HBDL 2716以便傳輸?shù)浇?釋器。HBDL2716包含源代碼模塊的語言的聲明或代碼,并且可被用來對(duì)源 代碼進(jìn)行變化。圖形模塊2700使用基元2702來生成用于不同位圖的像素。
現(xiàn)在轉(zhuǎn)向圖28,描繪了圖示根據(jù)有利實(shí)施例的顯示的操縱的圖。在這個(gè) 圖示性示例中,顯示2800是在圖27中的顯示2708處呈現(xiàn)的顯示的示例。顯 示2800是使用從基元生成的位圖而呈現(xiàn)的。在這個(gè)示例中,位圖被用來呈現(xiàn) 不同的組件,例如滑雪者2802和場(chǎng)地2804。與指示可以如何操縱這些位圖 的數(shù)據(jù)一起發(fā)送用于表示滑雪者2802和場(chǎng)地2804的位圖數(shù)據(jù)。在這個(gè)示例 中,滑雪者2802可以通過用戶輸入從圖28中的位置2806移動(dòng)到在圖29中 的顯示2902內(nèi)的位置2900,其是顯示2800的^"改版本。而且,例如50的 值可被輸入到如圖29中的顯示2902中描繪的場(chǎng)地2804。根據(jù)有利實(shí)施例, 位圖中的這些變化可被返回到GUI處理器,然后該GUI處理器基于這些變化 生成對(duì)于源代碼的適當(dāng)聲明。
現(xiàn)在參考圖30,描繪了根據(jù)有利實(shí)施例的用于識(shí)別位圖中的變化的處理 的流程圖。圖30中圖示的處理是可以在一^1備處的客戶機(jī)處理(諸如圖27 中的客戶機(jī)處理2706)中實(shí)現(xiàn)的處理的示例。
所述處理開始于監(jiān)控用戶輸入(操作3000)。隨后確定對(duì)于顯示是否檢 測(cè)到用戶輸入(操作3002)。如果未檢測(cè)到用戶輸入,則所述處理返回到操 作3000。否則,確定用戶輸入是否操縱一控制(操作3004)。如果用戶輸入 操縱一控制,則在位圖中識(shí)別對(duì)所述控制進(jìn)行的變化(操作3006)。位圖中 的這一差異或變化被發(fā)送回GUI處理器(操作3008),然后所述處理返回到 操作3000,以便監(jiān)控另外的用戶輸入。根據(jù)特殊實(shí)現(xiàn)方式,數(shù)據(jù)變化可以是 變化的真實(shí)位圖或者位圖位置中的變化的識(shí)別。當(dāng)然,根據(jù)實(shí)施例可以使用 其它類型的變化。
再次參考操作3004,如果用戶輸入不是控制的操縱,則判斷用戶輸入是 否是將數(shù)據(jù)輸入到一字段(操作3010)。如果用戶輸入不是輸入數(shù)據(jù),則所 述處理返回到操作3000。否則,所述處理繼續(xù)到(操作3006)以便識(shí)別位圖 中進(jìn)行的變化。
在這些示例中,對(duì)用戶輸入做出的特殊判斷是用于識(shí)別對(duì)字段的變化和 顯示中的控制,例如圖21中的執(zhí)行模塊2100。確定可以是對(duì)感興趣的位圖的任意類型的變化。例如,所述變化可以是是否已經(jīng)選擇或者扭轉(zhuǎn)特殊按鈕。 現(xiàn)在轉(zhuǎn)向圖31,描繪了根據(jù)有利實(shí)施例的用于處理差異數(shù)據(jù)的處理的流
程圖。圖31中圖示的處理可以在GUI處理器(例如圖26中GUI處理器2600) 中實(shí)現(xiàn)。具體地,圖31中圖示的處理可以在圖27中的HBDL生成器2714 中實(shí)現(xiàn)。
所述處理開始于從客戶機(jī)處理接收差異數(shù)據(jù)(操作3100)。在這些示例 中,差異數(shù)據(jù)包含通過用戶輸入形成的位圖中的變化。然后所述處理基于所 述差異識(shí)別用戶輸入(操作3102)。該用戶輸入可被識(shí)別為例如滑雪者位置 的變化、數(shù)據(jù)輸入到數(shù)據(jù)字段、或者一些其它用戶輸入。操作3102中進(jìn)行的 識(shí)別可以通過將發(fā)送到設(shè)備的原始位圖與改變后的位圖進(jìn)行比較來完成。例 如,如果所述差異被識(shí)別為滑雪者的運(yùn)動(dòng)是沿著這種控制向上,則用戶輸入 可以是改變?nèi)说臅r(shí)間表(timeliness )。關(guān)于執(zhí)行模塊2100,在圖21中圖示了 這種差異的示例。
之后,用戶輸入被轉(zhuǎn)換為源代碼所采用的格式數(shù)據(jù)(操作3104)。在這 些示例中,用戶輸入被改變?yōu)镠PDL格式。轉(zhuǎn)換后的用戶輸入被發(fā)送到解釋 器(操作3106),之后所述處理結(jié)束。
現(xiàn)在參考圖32,描繪了圖示根據(jù)有利實(shí)施例的供在提供人類透明聚合體 中使用的組件的圖。在這個(gè)圖示的示例中,使用架構(gòu)(例如圖4中的架構(gòu)400 ) 執(zhí)行仿真3200。具體地,由解釋器(圖4中的解釋器404 )通過源代碼的解 釋來執(zhí)行仿真3200。
在這個(gè)特殊示例中,仿真3200包括人工智能(AI) 3202,其表示仿真 3200內(nèi)的人類。在這些示例中,正被人工智能3202執(zhí)行的該人類是合成人。 除了用于仿真3200的其它信息,從定義3204中恢復(fù)用于人工智能3202的代 碼。在源代碼(例如圖4中的源代碼402)中發(fā)現(xiàn)定義3204。定義3204包括 合成人、其它人以及存在人類用以仿真3200的環(huán)境的定義。
當(dāng)在仿真3200期間生成結(jié)果時(shí),這些結(jié)果被發(fā)送到通信模塊3206作為 用戶輸入3208。在這個(gè)示例中,也在解釋器(例如圖4中的解釋器404)中 發(fā)現(xiàn)這些通信模塊。通信模塊3206從仿真3200中取出用戶輸入3208,并且 修改或?qū)⑿露x編寫成定義3204。這形成了修改后的源代碼,隨后該修改后 的源代碼被仿真3200用來生成附加結(jié)果。在這些示例中,人工智能3202以 與活體用戶相同的方式登錄到架構(gòu)。而且,來自仿真3200的結(jié)果3210被發(fā)送到設(shè)備3212用以呈現(xiàn)給用戶 3214。在這些示例中,用戶3214是真正的人類。
圖示性的實(shí)施例考慮使用人類透明聚合體。在這個(gè)聚合體中,由人工智 能3202生成的重寫為定義3204的用戶輸入3208可以用來自用戶3214的活 體用戶輸入來替換。換句話說,用戶3214可以將用戶輸入3216發(fā)送到通信 才莫塊3206,以便^f'務(wù)改或編寫新定義成定義3204,以代替由通過仿真3200內(nèi) 的人工智能3202仿真的合成人生成的用戶輸入3208。在這些示例中,用戶 3214可以是提供用戶輸入3216的主題專家。在這些示例中,在仿真3200期 間提供用戶輸入3216。該用戶輸入可以響應(yīng)于在設(shè)備3212處接收到且呈現(xiàn) 的結(jié)果。
凈皮人工智能3202仿真的合成人生成與針對(duì)合成人的唯一標(biāo)識(shí)符(UI) 3218相關(guān)聯(lián)的用戶輸入3208。在仿真3200期間通過人工智能3202生成用戶 輸入3208。用戶輸入3216與唯一標(biāo)識(shí)符3218相關(guān)聯(lián)。用戶輸入3208被發(fā) 送到通信模塊3206。通信模塊3206通過添加新定義或者使用用戶輸入3208 修改當(dāng)前定義,來修改定義3204。通信模塊3206 了解定義3204的哪個(gè)部分 基于唯一標(biāo)識(shí)符3218來進(jìn)行修改。
當(dāng)用戶3214生成用戶輸入3216時(shí),用戶輸入3216被通信模塊3206接 收。在這些圖示性的示例中,用戶輸入3216也可以包括唯一標(biāo)識(shí)符3218。 以這種方式,通信;漠塊3206為與唯一標(biāo)識(shí)符3218相關(guān)聯(lián)的合成人修改定義 3204。
以這種方式,用戶3214可以替換通過仿真3200內(nèi)的人工智能3202仿真 的合成人。用戶3214可以基于發(fā)送到通信模塊3206的請(qǐng)求,無線地(onthe fly)打開和關(guān)閉人工智能3202。
在開始用用戶輸入3216替換用戶輸入3208時(shí),設(shè)備3212處的用戶3214 向通信模塊3206發(fā)送一個(gè)請(qǐng)求。在這點(diǎn)上,假設(shè)用戶3214已經(jīng)登錄通信模 塊3206并且被通信模塊3206驗(yàn)證。通信模塊3206確定用戶3214是否被授 權(quán)打開和關(guān)閉人工智能3202。換句話說,通信模塊3206確定用戶3214是否 可以替換合成人。如果用戶3214被授權(quán),則通信模塊3206使用人工智能3202 將標(biāo)志設(shè)置為停止。換句話說,在仿真3200內(nèi)不再調(diào)用用于人工智能3202 的函凄史。
在這個(gè)時(shí)間點(diǎn),用戶3214生成包括唯一標(biāo)識(shí)符3218的用戶輸入3216。根據(jù)特定實(shí)現(xiàn)方式,通過通信模塊3206基于識(shí)別用戶3214在設(shè)備3212處發(fā) 送用戶輸入,可以添加唯一標(biāo)識(shí)符3218。
現(xiàn)在參考圖33,描繪了根據(jù)有利實(shí)施例的用于用活體人替換合成人的處 理的流程圖。在這個(gè)示例中,圖33中所示的處理可以在解釋器(如圖4中的 解釋器404)中實(shí)現(xiàn)。具體地,所述處理可以在解釋器404內(nèi)的通信模塊中 實(shí)現(xiàn)。
所述處理開始于從用戶接收用于替換合成人的請(qǐng)求(操作3300)。之后, 確定用戶是否被授權(quán)來替換仿真人(操作3302)。在這些示例中,通過將用 戶與定義在仿真期間什么用戶可以替換合成人的列表或數(shù)據(jù)庫來進(jìn)行確定。 例如,某些用戶可以是某些領(lǐng)域中的主題專家并且可被允許來替換那些特殊 領(lǐng)域的合成人。例如,特定用戶可以是關(guān)于政治的主題專家。該用戶可被允 許來替換在仿真中是政治家的合成人。然而,該主題用戶不能被允許來替換 是農(nóng)民或士兵的合成人,因?yàn)樵撝黝}專家在那些領(lǐng)域中沒有特長。
戶被授權(quán)來替換合成人,則在定義中關(guān)閉針對(duì)合成人的人工智能的使用(操 作3304 )。
之后,所述處理等待來自用戶的用戶輸入(操作3306)。當(dāng)接收到用戶 輸入時(shí),確定用戶輸入是否是在定義中編寫新定義(操作3308)。如果用戶 輸入是編寫新定義,則用戶輸入被格式化成用于編寫新定義的形式(操作 3310)。之后,所述定義被編寫到源代碼(操作3312),所述處理隨后返回到 如上所述的操作3306。
再次參考操作3308,如果用戶輸入不是編寫新定義,則確定用戶輸入是 否是打開人工智能(操作3314)。如果用戶輸入不是打開人工智能,則所述 處理返回到操作3306。否則,返回人工智能以供仿真合成人使用(操作3316 ), 之后所述處理結(jié)束。操作3316將合成人放置到仿真中的適當(dāng)位置,并且從所 述仿真中移除活體人。
再次參考操作3302,如果用戶未被授權(quán)替換合成人,則生成一個(gè)錯(cuò)誤消 息(操作3318),之后所述處理結(jié)束。
所述架構(gòu)提供的仿真不試圖百分百肯定地預(yù)測(cè)人類行為,而是提供可能 判斷或改變的可能性。來自仿真的結(jié)果提供了指導(dǎo)和預(yù)測(cè),如果沒有由架構(gòu) 進(jìn)行的仿真則不可能得到所述指導(dǎo)和預(yù)測(cè)。在不同的有利實(shí)施例中,源代碼600可以使用被特別設(shè)計(jì)來提供圖6中 的定義602、動(dòng)作604和GUI語言606中的不同特征的語言來實(shí)現(xiàn)。在其它 有利實(shí)施例中,圖6中的源代碼600也可以包括來自其他現(xiàn)有語言或編程方 法論的函數(shù)和特征。
在不同的有利實(shí)施例中,人工智能可被用來實(shí)現(xiàn)部分源代碼600,例如 圖6中的定義602和/或動(dòng)作604。在一些有利實(shí)施例中,神經(jīng)網(wǎng)絡(luò)形式的人 工智能(或者其它形式的人工智能)可被用來仿真各種對(duì)象。例如,神經(jīng)網(wǎng) 絡(luò)可被用來仿真活人或活體對(duì)象,例如人或動(dòng)物。
人工智能可以是例如傳統(tǒng)的人工智能,其中使用特征為形式體系和統(tǒng)計(jì) 分析的機(jī)器學(xué)習(xí)。另外,人工智能可以是例如計(jì)算智能的形式。計(jì)算智能涉 及迭代發(fā)展或?qū)W習(xí)。這種人工智能可以基于實(shí)驗(yàn)數(shù)據(jù)來學(xué)習(xí)。計(jì)算智能的示 例包括例如但不限于神經(jīng)網(wǎng)絡(luò)、模糊邏輯和遺傳算法。這些編程技術(shù)可被用 來補(bǔ)充或提供圖6中的源代碼600內(nèi)的附加特征。在其它有利實(shí)施例中,除 了或者結(jié)合各種編程技術(shù),圖6中的源代碼600可以使用現(xiàn)有的編程語言來 實(shí)現(xiàn)。
在一個(gè)有利的實(shí)施例中,可以^使用諸如神經(jīng)網(wǎng)絡(luò)的編程技術(shù)來實(shí)現(xiàn)圖6 中的部分源代碼600。例如,可以使用神經(jīng)網(wǎng)絡(luò)來實(shí)現(xiàn)圖6中的部分或全部 定義602。神經(jīng)網(wǎng)絡(luò)是基于生物學(xué)神經(jīng)網(wǎng)絡(luò)的數(shù)學(xué)計(jì)算模型。神經(jīng)網(wǎng)絡(luò)提供 了非線性統(tǒng)計(jì)數(shù)據(jù)建模池,并且可被用來對(duì)輸入與輸出之間的復(fù)雜關(guān)系建模。 神經(jīng)網(wǎng)絡(luò)可被利用來提供對(duì)圖6中的定義602內(nèi)的各種對(duì)象的學(xué)習(xí)函數(shù)。
在一個(gè)示例中,神經(jīng)網(wǎng)絡(luò)技術(shù)可被用來提供對(duì)不同對(duì)象(例如,人、動(dòng) 物或圖6中的源代碼600的定義602內(nèi)的其它合適對(duì)象)的學(xué)習(xí)特征。在這 種示例中,NN表示神經(jīng)網(wǎng)絡(luò)型變量。宣告的示例可以是"NNn;"。在這個(gè)示 例中,這種聲明宣告了神經(jīng)網(wǎng)絡(luò)變量。也可以創(chuàng)建兒子,n.input、 n.output、 和n.hidden。這些其它變量表示神經(jīng)網(wǎng)絡(luò)中的輸入、輸出和隱藏層。這些層 允許用戶將神經(jīng)元添加到不同層。使用這些不同層,輸入神經(jīng)元可被作為兒 子添加到輸入神經(jīng)網(wǎng)絡(luò)層。
轉(zhuǎn)向圖34,聲明3400和3402是輸入神經(jīng)元的示例。聲明3400中的部 分3404宣告"左操作數(shù)"作為神經(jīng)網(wǎng)絡(luò)n的輸入神經(jīng)元。這個(gè)輸入成員也可 被用來讀取輸入神經(jīng)元的總數(shù)。成員"輸出"的值每次添加一個(gè)新成員時(shí)遞 增l。結(jié)果,輸入值是輸入神經(jīng)元的總數(shù)。這些聲明是可以使用C語言來實(shí)
39現(xiàn)的HBDL偽代碼的示例。其它語言,例如是C+和/或?qū)ο?C。
在這些示例中,輸入神經(jīng)元變量的范圍可以是從值O到值1。每個(gè)輸入
神經(jīng)元變量具有最小范圍和最大范圍。這些范圍允許用戶輸入所述范圍內(nèi)的
任意值。根據(jù)特殊實(shí)現(xiàn)方式,這些值在使用之前也可被規(guī)格化。
參考圖35,聲明3500和3502是為輸入神經(jīng)元左操作數(shù)定義的輸入范圍
的示例。在這個(gè)示例中,聲明3500定義了最小值-10,聲明3502定義了最大
值10。
現(xiàn)在參考圖36,描繪了根據(jù)有利實(shí)施例的對(duì)輸入行為的聲明的圖。聲明3600允許在使用輸入神經(jīng)元之前修改該輸入神經(jīng)元。換句話說,輸入神經(jīng)元可以具有附著神經(jīng)元或者與神經(jīng)元相關(guān)的代碼以允許通過那個(gè)神經(jīng)元操縱用戶輸入。例如,用戶輸入可以是長的和短的。在這個(gè)示例中,神經(jīng)元輸入行為解釋短和長,以便在0與l之間進(jìn)行估算。聲明3600是可被用來將這種行為附著到輸入神經(jīng)元的代碼的示例。
接著轉(zhuǎn)向圖37,描繪了圖示根據(jù)有利實(shí)施例的輸出宣告的圖。聲明3700是用于將兒子添加到輸出神經(jīng)網(wǎng)絡(luò)層的聲明的示例。
現(xiàn)在參考圖38,描述了圖示根據(jù)有利實(shí)施例的對(duì)神經(jīng)網(wǎng)絡(luò)中的輸出范圍的聲明的圖。在這個(gè)示例中,聲明3800和3802是可為輸出神經(jīng)元設(shè)置的范圍的示例。最小范圍和最大范圍由聲明3800和3802設(shè)置。
在這個(gè)特殊示例中,對(duì)于輸出神經(jīng)元,最小值是-15,而最大值是15。而且,用戶可以將絕對(duì)規(guī)格化的(implicit normalized)輸出轉(zhuǎn)換為特定范圍內(nèi)的值。例如,輸出1可被轉(zhuǎn)換為50,而輸出0.5被轉(zhuǎn)換為0。而且,輸出神經(jīng)元也可以與操縱輸出的代碼相關(guān)聯(lián)。
現(xiàn)在轉(zhuǎn)向圖39,描繪了圖示根據(jù)有利實(shí)施例的用于修改輸出行為的聲明的圖。聲明3900是可以與輸出神經(jīng)元相關(guān)聯(lián)的代碼的示例。在這個(gè)示例中,用戶輸出可以是低的和高的。使用這個(gè)特殊示例,神經(jīng)元的輸出行為可以將0和1之間的值解釋為低和高。
現(xiàn)在轉(zhuǎn)向圖40,描繪了圖示根據(jù)有利實(shí)施例的對(duì)隱藏層的聲明的圖。聲明4000和4002是可被用來宣告任何神經(jīng)網(wǎng)絡(luò)的隱藏層的聲明的示例。在這些示例中,隱藏層順序遵循隱藏層宣告的順序。隱藏層變量的值指定被分配給特殊隱藏層的神經(jīng)元的數(shù)目。在這些示例中,聲明4000和4002宣告兩個(gè)隱藏層。由聲明4000定義的第一層包括5個(gè)神經(jīng)元,在聲明4002中宣告的
40第二層定義了3個(gè)神經(jīng)元。
現(xiàn)在參考圖41,代碼4100圖示了被用來指定神經(jīng)元取樣值的取樣神經(jīng)網(wǎng)絡(luò)成員??梢灾付ú煌娜?。每個(gè)輸入和輸出神經(jīng)元在聲明內(nèi)包括"取樣[int]"。當(dāng)完成神經(jīng)網(wǎng)絡(luò)時(shí),用戶可以培訓(xùn)和使用神經(jīng)網(wǎng)絡(luò)。
現(xiàn)在參考圖42,描繪了根據(jù)有利實(shí)施例的用于培訓(xùn)神經(jīng)網(wǎng)絡(luò)的示例聲明。聲明4200、 4202和4204是用于執(zhí)行神經(jīng)網(wǎng)絡(luò)培訓(xùn)的聲明的示例。聲明4200表示神經(jīng)網(wǎng)絡(luò)將被培訓(xùn)500次。聲明4202表示300次,聲明4204表示用于培訓(xùn)200次。在這些示例中,培訓(xùn)是累積性的,結(jié)杲被存儲(chǔ)。這些不同的結(jié)果可被存儲(chǔ)在圖6中的定義602或者源代碼602內(nèi)用于特殊對(duì)象。
現(xiàn)在轉(zhuǎn)向圖43,描繪了圖示根據(jù)有利實(shí)施例的神經(jīng)網(wǎng)絡(luò)中的完成函數(shù)的圖。在這個(gè)示例中,聲明4300和聲明4302提供了用于使得輸入神經(jīng)元執(zhí)行函數(shù)并且返回結(jié)果的聲明的示例。在這些示例中,聲明4304是聲明4300和4302的替換表達(dá)。
現(xiàn)在參考圖44,描繪了圖示根據(jù)有利實(shí)施例的神經(jīng)網(wǎng)絡(luò)的示例的圖。在這個(gè)示例中,代碼4400包括神經(jīng)網(wǎng)絡(luò)的定義以及用于培訓(xùn)和執(zhí)行該神經(jīng)網(wǎng)絡(luò)的聲明。在部分4402中發(fā)現(xiàn)輸入宣告。在步驟4404和4406中發(fā)現(xiàn)輸入范圍。在聲明4408和4410中發(fā)現(xiàn)與神經(jīng)元相關(guān)的代碼。在部分4412中發(fā)現(xiàn)輸出范圍,并且在聲明4414中發(fā)現(xiàn)對(duì)輸出的行為。
在部分4416中定義隱藏層,并且在聲明4418中發(fā)現(xiàn)功能性。在部分4420中可以發(fā)現(xiàn)取樣,并且聲明4422是培訓(xùn)聲明的示例。部分4424圖示了用于操作神經(jīng)網(wǎng)絡(luò)的聲明的示例。部分4424內(nèi)的聲明4426顯示結(jié)果。
現(xiàn)在轉(zhuǎn)向圖45,描繪了圖示根據(jù)有利實(shí)施例的來自神經(jīng)網(wǎng)絡(luò)的操作的結(jié)果的圖。在這個(gè)示例中,顯示4500是響應(yīng)于來自圖44中的代碼4400的顯示聲明4426而生成的顯示的示例。
除了神經(jīng)網(wǎng)絡(luò),可以使用動(dòng)態(tài)列表來管理圖6中的定義602內(nèi)的對(duì)象的各種屬性和性質(zhì)??梢允褂脛?dòng)態(tài)列表來定義特征,例如圖8中的對(duì)象800中的特征804和圖9中的對(duì)象900的特征904。
例如,可以使用動(dòng)態(tài)列表來提供對(duì)對(duì)象的組件、性能、特征或其它合適參數(shù)的識(shí)別。例如,如果對(duì)象是汽車,則可以使用動(dòng)態(tài)列表來識(shí)別組件,例如車輪、引擎、車體、油漆、傳動(dòng)、車窗和其它組件。當(dāng)添加組件或者從汽
車中移除組件時(shí),可以修改所述列表來識(shí)別這些變化。
41在不同的有利實(shí)施例中,在列表中可以使用任何變量。使用動(dòng)態(tài)列表,定義不被限制為必須根據(jù)期望的組件或參數(shù)來預(yù)定義列表大小。相反,當(dāng)各
種參數(shù)或組件^L添加或者從特殊定義中移除時(shí),列表大小可以變化。
參考圖46,描繪了圖示根據(jù)有利實(shí)施例的列表的示例的圖。在這個(gè)示例中,代碼4600在聲明4600中定義列表1。聲明4602、 4604和4606識(shí)別具有列表1中的值的三個(gè)變量。在這個(gè)示例中,列表l擔(dān)當(dāng)陣列。代碼4600中的聲明4608是返回一個(gè)識(shí)別陣列大小的值的大小函數(shù)。在這個(gè)示例中,聲明4608返回值3。
聲明4610和4612是用于搜索代碼4600中的列表的聲明的示例。聲明4610返回等價(jià)于真的值2,而聲明4612返回等價(jià)于假的值0。聲明4610和4612中的這些搜索函數(shù)可被用來確定所述列表是否包括某一值。如果在列表中存在該某一值,則返回對(duì)列表中的該值的索引。否則,返回值O。
現(xiàn)在轉(zhuǎn)向圖47,描繪了圖示根據(jù)有利實(shí)施例的從列表中刪除變量的圖。在這個(gè)示例中,代碼4700包括如在部分4702中定義的列表。聲明4704是可被用來從代碼4700中的列表中刪除一個(gè)項(xiàng)目的刪除函數(shù)。聲明4704搜索該列表以便確定特定項(xiàng)目是否存在于該列表中。如果發(fā)現(xiàn)該項(xiàng)目,則從列表中移除該項(xiàng)目。聲明4704返回一個(gè)識(shí)別被移除的項(xiàng)目的索引。否則,聲明4704返回O。在這個(gè)示例中,值25未存在于代碼4700中的列表中,返回O,并且不采取動(dòng)作。在這個(gè)示例中,通過識(shí)別值來刪除項(xiàng)目。
現(xiàn)在參考圖48,描繪了根據(jù)有利實(shí)施例的用于刪除項(xiàng)目的代碼的圖。在這個(gè)示例中,代碼4800在部分4802中定義一個(gè)列表。聲明4804和4806是用于基于索引值刪除列表中的項(xiàng)目的聲明。如果聲明識(shí)別小于列表大小的索引值,則該項(xiàng)目位于列表中并且被刪除。對(duì)于被刪除的項(xiàng)目,該函數(shù)然后返回一個(gè)值。否則,返回O,意味著在列表中未發(fā)現(xiàn)該項(xiàng)目。聲明4804返回0,因?yàn)閮H三個(gè)項(xiàng)目存在于如部分4802中定義的列表中。聲明4806導(dǎo)致返回20,并且聲明4808中定義的項(xiàng)目被刪除。
現(xiàn)在參考圖49,描繪了圖示根據(jù)有利實(shí)施例的用于操縱列表中的項(xiàng)目的代碼的圖。在這個(gè)示例中,代碼4900可被用來4喿縱列表中的項(xiàng)目。在這些示例中,代碼4900包含用于使用堆棧的列表的push函數(shù)(壓棧函數(shù))和pop函數(shù)(彈棧函數(shù))。聲明4902識(shí)別對(duì)其將進(jìn)行操縱的列表。在這個(gè)示例中,部分4904識(shí)別對(duì)列表進(jìn)行的三次壓棧。聲明4906圖示了對(duì)列表進(jìn)行的彈棧。聲明4906從列表的前面彈棧出的項(xiàng)目返回一個(gè)值。
這些類型的函數(shù)類似于用于操縱計(jì)算機(jī)系統(tǒng)中的堆棧的那些函數(shù)。壓棧用于將特定項(xiàng)目壓?;蛞苿?dòng)到列表的頂部。對(duì)于在列表頂部處的項(xiàng)目,彈棧用于返回一個(gè)值。如果彈棧聲明包括一個(gè)值或參數(shù),則這個(gè)聲明根據(jù)該參數(shù)的值從堆棧彈棧出或者返回值。在這些示例中,在聲明4908中,正被彈棧出的項(xiàng)目是具有索引值3的項(xiàng)目,其是列表中的第三個(gè)項(xiàng)目。
現(xiàn)在轉(zhuǎn)向圖50,描繪了圖示根據(jù)有利實(shí)施例的作為隊(duì)列的列表的使用的圖。在這個(gè)示例中,代碼5000圖示了可被用來#:縱作為隊(duì)列的列表的enqueue函數(shù)(入隊(duì)函數(shù))和dequeue函數(shù)(出隊(duì)函數(shù))。enqueue函數(shù)(例如聲明5002中所示的enqueue函數(shù))將一個(gè)自變量添加到列表的底部。
d叫ueue函數(shù)(例如聲明5004中所示的d叫ueue函數(shù))從列表中移除頂部項(xiàng)目,并且返回該項(xiàng)目的值。在這個(gè)示例中,聲明5002將一個(gè)項(xiàng)目添加到列表l,聲明5006將另一個(gè)項(xiàng)目添加到隊(duì)列的頂部。聲明5002中的項(xiàng)目現(xiàn)在在隊(duì)列中是第二。聲明5008將又另一個(gè)項(xiàng)目添加到該隊(duì)列,將其它項(xiàng)目壓棧到隊(duì)列低處。
現(xiàn)在轉(zhuǎn)向圖51,描繪了圖示根據(jù)有利實(shí)施例的讀取列表中的項(xiàng)目的圖。在這個(gè)示例中,代碼5100圖示了從如在部分5102中定義的列表的頂部和底部讀取項(xiàng)目。聲明5104讀取位于列表頂部的項(xiàng)目,聲明5106讀取包含在列表底部的項(xiàng)目。
現(xiàn)在轉(zhuǎn)向圖52,描繪了圖示根據(jù)有利實(shí)施例的列表中的分類屬性的圖。代碼5200包含用于識(shí)別列表的分類狀態(tài)的聲明。聲明5202識(shí)別是否對(duì)于列表設(shè)置了分類狀態(tài)。如果聲明5202被設(shè)置為等于真,則根據(jù)它們的值將項(xiàng)目插入列表。聲明5204識(shí)別分列順序。
如果聲明5204被設(shè)置為等于真,則以遞減順序從最小到最大來分類所述列表。在這個(gè)示例中,聲明5204被設(shè)置為等于假。結(jié)果,以如部分5206中所示的遞減順序?qū)㈨?xiàng)目添加到列表。而且,可以使用附加聲明以各種順序來分類列表。
可被用來實(shí)現(xiàn)圖6中的源代碼600的編程技術(shù)的另一示例是模糊邏輯。用于實(shí)現(xiàn)模糊邏輯的語言的示例是Prolog,它是可被用于模糊邏輯和人工智能編程的邏輯編程語言。
在所描繪的示例中,模糊邏輯系統(tǒng)可以基于邏輯聲明,其中操作數(shù)是取自多個(gè)集的項(xiàng)。在一個(gè)示例中,所述集可以是例如燃料、距離和速度。燃料可以包括三項(xiàng),低、中和高。距離可以是近和遠(yuǎn)。在這些示例中,速度可以是低速、中速和高速。這些集可被用來應(yīng)用規(guī)則,例如如果燃料為低或者距
離較近,則速度較低。另一規(guī)則是如果燃料為中且距離為遠(yuǎn),則速度為中速。第三規(guī)則是如果燃料為高且距離遠(yuǎn),則速度為高速。使用模糊邏輯,對(duì)于該集的不同成員可以設(shè)置范圍。這些范圍包括最小范圍和最大范圍。
現(xiàn)在轉(zhuǎn)向圖53,描繪了根據(jù)有利實(shí)施例的使用燃料、距離和速度的模糊邏輯實(shí)現(xiàn)的示例。在這個(gè)示例中,代碼5300在部分5302中定義這些集。燃料是整數(shù),而距離和速率是浮點(diǎn)變量。部分5304對(duì)于在0和100之間的燃料識(shí)別最小范圍和最大范圍。
在部分5306中定義燃料的起始項(xiàng)和結(jié)束項(xiàng)。這個(gè)部分識(shí)別模糊集的左邊緣和右邊緣。部分5308、 5310和5312識(shí)別燃料的項(xiàng)。部分5308識(shí)別梯形項(xiàng),部分5310識(shí)別矩形項(xiàng),部分5312識(shí)別鐘形曲線項(xiàng)。
在部分5314中發(fā)現(xiàn)針對(duì)距離的類似定義。在這個(gè)示例中,在部分5316中定義針對(duì)模糊邏輯的規(guī)則。部分5318識(shí)別燃料和距離的初始值。聲明5320被用來計(jì)算速度。
可被用來仿真圖6中源代碼600內(nèi)的各種對(duì)象的另一種類型的編程技術(shù)包括進(jìn)化計(jì)算。進(jìn)化計(jì)算是人工智能的一種類型。 一種特定方法或方法學(xué)是遺傳算法。該算法是用于識(shí)別解決方案的搜索技術(shù)。這種技術(shù)被認(rèn)為是全球搜索啟發(fā)類型的技術(shù)。使用遺傳算法,可以承認(rèn)基因和染色體。使用這種技術(shù)也可以執(zhí)行fitoess(適應(yīng)度)函數(shù)、選擇處理和重組函數(shù)。
現(xiàn)在轉(zhuǎn)向圖54,描述了圖示根據(jù)有利實(shí)施例的使用遺傳算法求解方程式的圖。在這個(gè)示例中,代碼5400被用來求解方程式2X+3Y-20。
在這個(gè)示例中,在部分5402中初始化兩個(gè)基因。這兩個(gè)基因?qū)?yīng)于變量X和Y。在部分5404中,染色體被添加到基因中。在聲明5406中可以識(shí)別對(duì)于fitness函數(shù)的代碼。使用聲明5408可以指定對(duì)于選擇函數(shù)的代碼。在聲明5410中可以指定對(duì)于重組函數(shù)的代碼。
使用針對(duì)特殊聲明的任何可用函數(shù),可以實(shí)現(xiàn)這些函數(shù)的代碼??梢允褂眠@些選擇處理來選擇如由代碼指定的最適宜或最恰當(dāng)?shù)娜旧w。例如,可以使用旋轉(zhuǎn)滾輪選擇處理。對(duì)于聲明5410中的重組函數(shù),該聲明可被用來識(shí)別用于建立染色體的新生成的代碼。
44在一個(gè)示例中,可以使用二進(jìn)制變量交叉(cross-over)方法。聲明5412指定處理的誤差容限,并且聲明5414調(diào)用代碼5400中的進(jìn)化函數(shù)。在這些示例中,只要最恰當(dāng)染色體的誤差容限小于聲明5412中指定的誤差,聲明5414中識(shí)別的進(jìn)化處理就停止。通過執(zhí)行如在代碼5400中定義的處理,基因X返回最適合染色體的X的值,并且基因Y返回最適合染色體的Y的值。
現(xiàn)在轉(zhuǎn)向圖55A和圖55B,描繪了圖示根據(jù)有利實(shí)施例的源代碼中針對(duì)對(duì)象的代碼的圖。在這個(gè)示例中,代碼5500是森林形式的針對(duì)對(duì)象的定義的示例。部分5502識(shí)別森林中的樹的顏色。代碼5500中的部分5504識(shí)別森林的柵格。部分5506定義可以存在于森林的柵格中的樹。部分5508識(shí)別森林的樹的行。部分551(M皮用來生成一小片樹,其包含如在部分5508中定義的一行或多行樹。部分5512是可被用來呈現(xiàn)森林的代碼的示例。在這些示例中,線5514和5516是用于提供在森林中的隨機(jī)性的轉(zhuǎn)換聲明。除了或者替換這些聲明,也可以使用其它聲明,例如旋轉(zhuǎn)和/或縮放聲明。
在這些示例中,代碼5500是使用C語言編寫的。當(dāng)然,可以使用任意語言來生成對(duì)森林的定義。而且,森林的呈現(xiàn)是可以在圖6中的源代碼600中的定義602中發(fā)現(xiàn)的一個(gè)對(duì)象的示例。當(dāng)然,根據(jù)特定實(shí)現(xiàn)方式,可以使用任何語言或者對(duì)于任何對(duì)象生成代碼。
不同描繪的實(shí)施例中的流程圖和方框示了裝置、方法和計(jì)算機(jī)程序產(chǎn)品的一些可能實(shí)現(xiàn)方式的結(jié)構(gòu)、功能性和操作。在這點(diǎn)上,流程圖或方框圖中的每一塊可以表示模塊、片段或者計(jì)算機(jī)可使用或可讀取程序代碼的一部分,其包括用于實(shí)現(xiàn)特定功能或多個(gè)功能的一個(gè)或多個(gè)可執(zhí)行指令。在一些替換性實(shí)施方式中,方塊中注釋的一個(gè)或多個(gè)函數(shù)可以不按照附圖中注釋的順序發(fā)生。例如,在一些情況下,根據(jù)所涉及的功能性,可以基本同時(shí)地執(zhí)行連續(xù)示出的兩個(gè)塊,或者有時(shí)可以按相反的順序執(zhí)行所述塊。
不同的有利實(shí)施例能夠采取完全硬件實(shí)施例的形式、完全軟件實(shí)施例的形式、或者包含硬件和軟件元件的實(shí)施例的形式。 一些實(shí)施例實(shí)現(xiàn)為軟件,包括但是不限于例如固件、固有軟件和微代碼之類的形式。
而且,不同的實(shí)施例可以采取可從計(jì)算機(jī)可使用或計(jì)算機(jī)可讀介質(zhì)訪問的計(jì)算機(jī)程序產(chǎn)品的形式,所述計(jì)算機(jī)可使用或計(jì)算機(jī)可讀介質(zhì)提供由執(zhí)行指令的計(jì)算機(jī)或任何設(shè)備或系統(tǒng)使用的程序代碼或者結(jié)合由執(zhí)行指令的計(jì)算機(jī)或任何設(shè)備或系統(tǒng)提供程序代碼。為了本公開的目的,計(jì)算機(jī)可使用或計(jì)
45者 傳輸由指令執(zhí)行系統(tǒng)、裝置或者設(shè)備使用或者結(jié)合它們使用的程序。
計(jì)算機(jī)可使用或計(jì)算機(jī)可讀介質(zhì)可以例如但是不限于電子的、磁的、光 學(xué)的、電磁的、紅外的、或者半導(dǎo)體系統(tǒng)、或者傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì) 的非限制示例包括半導(dǎo)體或者固態(tài)存儲(chǔ)器、磁帶、可拆卸計(jì)算機(jī)磁盤、隨機(jī)
存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、剛性磁盤和光盤。光盤可以包括 致密盤一一只讀存儲(chǔ)器(CD-ROM)、致密盤一一讀/寫(CD-R/W)和DVD。 在這些示例中,物理或有形的計(jì)算機(jī)可讀介質(zhì)被稱作可記錄計(jì)算機(jī)存儲(chǔ)介質(zhì)。 而且,計(jì)算機(jī)可使用或計(jì)算機(jī)可讀介質(zhì)可以包括或者存儲(chǔ)計(jì)算機(jī)可讀或 可使用程序代碼,因此當(dāng)計(jì)算機(jī)可讀或可使用程序代碼在計(jì)算機(jī)上被執(zhí)行時(shí), 該計(jì)算機(jī)可讀或可使用程序代碼的執(zhí)行使得計(jì)算機(jī)經(jīng)由通信鏈接發(fā)送其它計(jì) 算機(jī)可讀或可使用程序代碼。該通信鏈接可以使用例如但是不限于物理的或 無線的介質(zhì)。
適用于存儲(chǔ)和/或執(zhí)行計(jì)算機(jī)可讀或計(jì)算機(jī)可使用程序代碼的數(shù)據(jù)處理 系統(tǒng)將包括一個(gè)或多個(gè)處理器,該一個(gè)或多個(gè)處理器通過諸如系統(tǒng)總線的通 信結(jié)構(gòu)直接地或者間接地耦接到存儲(chǔ)器元件。所述存儲(chǔ)器元件可以包括在程 序代碼的實(shí)際執(zhí)行器件采用的本地存儲(chǔ)器、海量存儲(chǔ)器和高速緩沖存儲(chǔ)器, 其提供至少 一些計(jì)算機(jī)可讀或計(jì)算機(jī)可使用程序代碼的臨時(shí)存儲(chǔ)以便在代碼 執(zhí)行期間減少代碼可以從海量存儲(chǔ)器恢復(fù)的次數(shù)。
輸入/輸出或I/O設(shè)備或者可以直接耦接到系統(tǒng)或者可以通過接入I/O控 制器耦接到系統(tǒng)。這些設(shè)備可以包括例如但是不限于鍵盤、觸屏顯示器和指 針設(shè)備。不同的通信適配器也可以耦接到系統(tǒng),以便使得數(shù)據(jù)處理系統(tǒng)能夠 變得通過接入私有或公共網(wǎng)絡(luò)耦接到其它數(shù)據(jù)處理系統(tǒng)或者遠(yuǎn)程打印機(jī)或者 存儲(chǔ)設(shè)備。非限制性的示例是調(diào)制解調(diào)器,并且網(wǎng)絡(luò)適配器僅僅是當(dāng)前可使 用類型的通信適配器的一種。
本公開的描述已凈iu艮示用于圖示和描述目的,并且并不是窮舉性的或者 并不限于所公開形式的公開。許多修改和變動(dòng)對(duì)于本領(lǐng)域的普通技術(shù)人員來 說都是顯而易見的。而且,與其它有利實(shí)施例相比,不同的有利實(shí)施例可以 提供不同的優(yōu)點(diǎn)。所選擇的一個(gè)或多個(gè)實(shí)施例被選擇并描述,以便最好地解 釋本公開的原理、實(shí)際的應(yīng)用,并且使得本領(lǐng)域的普通技術(shù)人員能夠理解針 對(duì)具有各種修改的各種實(shí)施例的公開適于預(yù)期的特定使用。
權(quán)利要求
1.一種用于仿真人類行為的裝置,所述裝置包括源代碼(402、510、600),其位于網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)(100)中的存儲(chǔ)系統(tǒng)上,其中所述源代碼(402、510、600)是以用于預(yù)測(cè)人類行為的語言編寫的;在所述網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)(100)中的硬件上執(zhí)行的解釋器(404、518、1700),該解釋器(404、518、1700)包括語言解釋器(1704)和通信模塊(1702),其中所述語言解釋器(1704)使用人工智能(802、3202)利用所述源代碼(402、510、600)來執(zhí)行仿真,以便生成新定義和解釋后的源代碼;在所述網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)(100)中的硬件上執(zhí)行的圖形用戶接口處理器(406、522、524、528、2600),其中所述圖形用戶接口處理器(406、522、524、528、2600)從所述語言解釋器(1704)接收所述解釋后的源代碼,以便形成接收到的解釋后的源代碼,并且使用所述接收到的解釋后的源代碼生成設(shè)備相關(guān)輸出;和與所述圖形用戶接口處理器(406、522、524、528、2600)通信的設(shè)備組(408、523、530、532、2618),其中所述設(shè)備組(408、523、530、532、2618)顯示所述設(shè)備相關(guān)輸出,其中所述設(shè)備組(408、523、530、532、2618)接收用戶輸入以便形成接收后的用戶輸入并且將接收后的用戶輸入發(fā)送到所述圖形用戶接口處理器(406、522、524、528、2600),并且其中通信模塊(1702)接收來自所述圖形用戶接口處理器(406、522、524、528、2600)的所述接收后的用戶輸入和來自所述語言解釋器(1704)的新定義,使用所述接收后的用戶輸入和所述新定義修改所述源代碼(402、510、600),以便形成由所述語言解釋器(1704)執(zhí)行的修改后的源代碼。
2. 如權(quán)利要求l所述的裝置,其中解釋器(404、 518、 1700)還包括第 一加密和解密模塊(1706、 2602),并且其中所述圖形用戶接口處理器(406、 522、 524、 528、 2600)還包括第二加密和解密模塊(1706、 2602),其中所 述第一加密模塊(1706、 2602)對(duì)所述設(shè)備相關(guān)輸出進(jìn)行加密以便形成加密 輸出,并且將所述加密輸出發(fā)送到所述第二加密和解密模塊(1706、 2602), 其中所述第二加密和解密模塊(1706、 2602)對(duì)加密輸出進(jìn)行解密,以便形 成接收到的解釋后的源代碼。
3. 如權(quán)利要求l所述的裝置,其中所述語言解釋器(1704)包括 語言分析器,其中所述語言分析器識(shí)別所述源代碼(402、 510、 600)中的標(biāo)記,以1"更形成識(shí)別的標(biāo)記;語法剖析器(1730),其中所述語法剖析器(1730)使用所述識(shí)別標(biāo)記來 創(chuàng)建句子;和執(zhí)行模塊(1732 ),其中所述執(zhí)行模塊(1732 )使用所述人工智能(802、 3202)執(zhí)行由所述語法剖析器(1730)創(chuàng)建的句子。
4. 如權(quán)利要求3所述的裝置,其中所述通信模塊包括 注冊(cè)模塊(1726);輸入模塊(1724);和 調(diào)度器模塊(1722)。
5. 如權(quán)利要求l所述的裝置,其中所述存儲(chǔ)系統(tǒng)是多個(gè)存儲(chǔ)設(shè)備。
6. 如權(quán)利要求5所述的裝置,其中所述多個(gè)存儲(chǔ)設(shè)備在所述網(wǎng)絡(luò)數(shù)據(jù)處 理系統(tǒng)(100)中的不同位置處。
7. 如權(quán)利要求l所述的裝置,其中所述圖形用戶接口處理器(406、 522、 524、 528、 2600)在所述硬件的第一部分上執(zhí)行,并且其中所述解釋器(404、 518、 1700)在所述硬件的第二部分上執(zhí)行。
8. 如權(quán)利要求1所述的裝置,其中所述語言解釋器(1704)識(shí)別所述源 代碼(402、 510、 600)中的語言中的標(biāo)記,創(chuàng)建用于所述語言的句子,并且 根據(jù)句子執(zhí)行動(dòng)作。
9. 如權(quán)利要求1所述的裝置,其中所述語言解釋器(1704)以設(shè)備相關(guān) 輸出流組的形式生成設(shè)備相關(guān)輸出。
10. —種用于仿真人類行為的計(jì)算機(jī)實(shí)施方法,所述計(jì)算機(jī)實(shí)施方法包括從網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)(100)中的存儲(chǔ)系統(tǒng)中存儲(chǔ)的源代碼(402、 510、 600)中恢復(fù)數(shù)據(jù),以便形成恢復(fù)后數(shù)據(jù);使用在所述網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)(100)上執(zhí)行的解釋器(404、 518、 1700) 解釋所述恢復(fù)后數(shù)據(jù)以便執(zhí)行人類行為的仿真,從而生成結(jié)果;使用在所述網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)(100 )上執(zhí)行的圖形用戶接口處理器(406、 522、 524、 528、 2600)從所述結(jié)果生成設(shè)備相關(guān)數(shù)據(jù),其中所述設(shè)備相關(guān)數(shù) 據(jù)可被用來呈現(xiàn)所述結(jié)果;和使用所述結(jié)果修改所述源代碼(402、 510、 600),以便形成修改后源代 碼,其中所述修改后源代碼提供在隨后解釋中利用的新數(shù)據(jù),以便預(yù)測(cè)人類行為。
11. 如權(quán)利要求IO所述的計(jì)算機(jī)實(shí)施方法,還包括在設(shè)備組(408、 523、 530、 532、 2618)上呈現(xiàn)所述設(shè)備相關(guān)數(shù)據(jù)。
12. 如權(quán)利要求11所述的計(jì)算機(jī)實(shí)施方法,還包括 在所述解釋器(404、 518、 1700)處接收來自所述設(shè)備組(408、 523、530、 532、 2618)的用戶輸入,以便形成接收后的用戶輸入;通過所述解釋器(404、 518、 1700),使用所述接收后的用戶輸入來修改所述源代碼(402、 510、 600),以便形成修改后源代碼;和在所述解釋器(404、 518、 1700)處使用所述修改后源代碼來繼續(xù)執(zhí)行人類行為的仿真。
13. 如權(quán)利要求IO所述的計(jì)算機(jī)實(shí)施方法,還包括 以加密格式將所述結(jié)果從所述解釋器(404、 518、 1700)發(fā)送到所述圖形用戶接口處理器(406、 522、 524、 528、 2600)。
14. 如權(quán)利要求IO所述的計(jì)算機(jī)實(shí)施方法,其中所述圖形用戶接口處理 器(406、 522、 524、 528、 2600)位于多個(gè)不同數(shù)據(jù)處理系統(tǒng)上。
全文摘要
一種用于仿真人類行為的計(jì)算機(jī)實(shí)施方法、裝置和計(jì)算機(jī)可用程序代碼。以用于預(yù)測(cè)人類行為的語言編寫的源代碼被放置在網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)中的存儲(chǔ)系統(tǒng)中。在硬件上執(zhí)行的解釋器具有語言解釋器和通信模塊。語言解釋器使用人工智能利用源代碼來執(zhí)行仿真,以便生成新定義和解釋后的源代碼。圖形用戶接口處理器從語言解釋器接收解釋后的源代碼,并且生成設(shè)備相關(guān)輸出。設(shè)備顯示該設(shè)備相關(guān)輸出,接收用戶輸入,并且將接收到的用戶輸入發(fā)送到圖形用戶接口處理器。通信模塊接收從圖形用戶接口處理器接收到的用戶輸入和來自語言解釋器的新定義,并且修改所述源代碼,以便形成由語言解釋器執(zhí)行的修改后的源代碼。
文檔編號(hào)G06N3/00GK101681446SQ200880006762
公開日2010年3月24日 申請(qǐng)日期2008年2月29日 優(yōu)先權(quán)日2007年3月1日
發(fā)明者克勞德·科梅爾 申請(qǐng)人:波音公司