CN101647033A - 对人透明的范例 - Google Patents
对人透明的范例 Download PDFInfo
- Publication number
- CN101647033A CN101647033A CN200880005915.4A CN200880005915A CN101647033A CN 101647033 A CN101647033 A CN 101647033A CN 200880005915 A CN200880005915 A CN 200880005915A CN 101647033 A CN101647033 A CN 101647033A
- Authority
- CN
- China
- Prior art keywords
- input
- source code
- user
- interpreter
- true man
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- User Interface Of Digital Computer (AREA)
- Debugging And Monitoring (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
一种计算机实现的方法、装置和计算机可用的程序代码,针对位于网络数据处理系统中的存储系统上的源代码。该源代码用一种语言编写,用于预测人类的行为。一种解释器,该解释器在网络数据处理系统中执行,使用该源代码执行仿真。在该代码中定义一种人造人,并且人造人在仿真过程中产生用户输入。用户输入修改源代码。图形用户界面处理器从解释器接收经解释的源代码,并使用经解释的源代码生成依赖于设备的输出。解释器通过设备接收真人用户输入,用以代替人造人产生的用户输入。响应于接收到真人用户输入,解释器停止使用人造人产生的输入,并且解释器包括含有经解释的源代码的真人用户输入。
Description
相关的临时申请
【001】本公开内容与编号为60/892,472、标题为“HumanTransparency Paradigm”、于2007年3月1日申请的临时美国专利申请相关,并要求该专利申请的优先权益处,该专利申请在此处整体并入本申请作为参考。
技术领域
【002】本公开内容提供一种改进的数据处理系统,具体是用于处理数据的一种方法和装置。更具体地,本公开内容与用于建模和仿真人类行为的一种计算机实现的方法、装置和计算机可用的程序代码相关。
背景技术
【003】人类行为是由人类实施的活动的集合。这些活动受一些因素的影响,这些因素例如是文化、态度、情感、价值观、道德、政权、宗教和/或高压政治。人类的行为属于一定范围,在该范围中,一些行为是共同的,一些行为被认为是不寻常的,一些其它行为被认为是可接受的,还有一些其它行为超出了可接受的限度。人类的行为已经通过一些学科进行研究,如心理学、社会学和人类学。近年来,已经使用计算机研究人类行为。
【004】另外,对人类行为的仿真也已被用于实施军事演习和军事计划。人类行为仿真也可用于预测其它情况,例如经济和社会行为。预测人类行为的能力对开发训练程序是有用的。获悉受训者对不同的刺激将如何反应的信息可用于开发和修改训练程序。
【005】由于各种原因,目前的模型和仿真程序不能恰当地仿真人类的行为。例如,当前可用的仿真程序只适用于特定类型的仿真。结果,当需要不同类型的仿真时,则需要编写新的程序来执行该仿真。另外,关系的数量和修改这些关系的能力是有限的。
【006】因此,具有一种在训练程序中使用的用于建模及仿真人类行为的改进的计算机实现的方法、装置和计算机可用的程序代码是有利的。
发明内容
【007】有利的实施例提供一种计算机实现的方法、装置和计算机可用的程序代码,其针对位于网络数据处理系统的存储系统中的源代码。源代码用一种语言编写,用于预测人类行为。解释器在网络数据处理系统中运行,其中解释器使用源代码执行仿真,从而生成经解释的源代码。在源代码中定义了人造人(synthetic human)。人造人在仿真过程中产生用户输入,其中用户输入即为经解释的源代码以用来修改源代码。图形用户界面处理器在网络数据处理系统中运行。该图形用户界面从解释器接收经解释的源代码,形成接收的经解释的源代码,并使用接收的经解释的源代码生成依赖设备的输出。解释器通过与图形用户界面处理器通信的设备接收来自真人的真人用户输入,替代由人造人产生的用户输入。响应于接收到真人用户输入,解释器停止使用源代码中定义的人造人产生的输入,并且解释器包括真人用户输入和用于修改源代码的经解释的源代码。
【008】有利的实施例还提供一种计算机实现的方法,用于接收来自人类的输入。从位于网络数据处理系统的存储系统中的源代码获取数据,形成获取的数据,其中获取的数据包括人造人。通过使用在网络数据处理系统上运行的解释器,解释获取的数据以实施对人类行为的仿真,从而产生结果,该结果包含在解释获取的数据期间由人造人产生的输入。使用该结果修改源代码,形成修改后的源代码。对使用真人用户输入的请求进行响应,在实施仿真过程中停止使用人造人。对接收替换来自人造人的输入的真人用户输入进行响应,写入对源代码的结果,其中该结果包括真人用户输入,从而形成修改后的源代码。修改后的源代码提供了新数据,该新数据后续用于在执行预测人类行为的仿真时对获取到的数据进行解释。
【009】本发明的特性、功能和优势可以在本公开内容的各种实施例中单独实现,或者可以在另外的其它实施例中组合。
附图说明
【010】本公开内容的认为是新特征的特性在所附的权利要求中阐明。然而,通过结合附图参考下面对有利实施例的详细描述,会最佳地理解本公开内容本身、其优选模式的使用、更多的目标和优势,其中:
【011】图1是数据处理系统网络的图形表示,在该网络中可实现有利的实施例;
【012】图2是根据有利的实施例的数据处理系统的图示;
【013】图3是说明根据有利的实施例的仿真系统的图示;
【014】图4是根据有利的实施例的人类行为建模和仿真发展框架的图示;
【015】图5是说明根据有利的实施例的框架中模块的分发的图示;
【016】图6是说明根据有利的实施例的源代码模块的图示;
【017】图7是说明根据有利的实施例的源代码的定义部分的图示;
【018】图8是说明有利的实施例的对象的方框图;
【019】图9是说明根据有利的实施例的对象的图示;
【020】图10是说明根据有利的实施例的动作对象的图示;
【021】图11是说明根据有利的实施例的动作的施加的图示;
【022】图12是说明根据有利的实施例的在有调度器中断的时间线上动作的施加的图示;
【023】图13是说明根据有利的实施例的事件的施加的图示,时隙在事件中相互重叠;
【024】图14、图15和图16是说明根据有利的实施例的持续事件的图示;
【025】图17是说明根据有利的实施例的解释器的图示;
【026】图18是说明根据有利的实施例的词法分析器的数据流的图示;
【027】图19是说明根据有利的实施例的、由语法解析器实施的语法分析的图示;
【028】图20是说明根据有利的实施例的解析树的另一个示例的图示;
【029】图21是根据有利的实施例的解释器中的执行模块的图示;
【030】图22是根据有利的实施例的生成子串的处理过程的流程图;
【031】图23是根据有利的实施例的执行人类行为仿真的处理过程的流程图;
【032】图24是根据有利的实施例的生成句子或产品的处理过程的流程图;
【033】图25是根据有利的实施例的执行产品语句的处理过程的流程图;
【034】图26是说明根据有利的实施例的图形用户界面(GUI)处理器的图示;
【035】图27是说明根据有利的实施例的通过图形用户界面处理器的数据流的图示;
【036】图28是说明根据有利的实施例的显示的图示;
【037】图29是说明根据有利的实施例的显示的操作的图示;
【038】图30是根据有利的实施例的识别位图中变化的处理过程的流程图;
【039】图31是根据有利的实施例的处理不同数据的处理过程的流程图;
【040】图32是说明根据有利的实施例的用于提供对人透明的范例的组件图示;
【041】图33是根据有利的实施例的用真人替代人造人的处理过程的流程图;
【042】图34是根据有利的实施例的输入神经元示例的图示;
【043】图35是根据有利的实施例的为输入神经元左操作数定义的输入范围示例的图示;
【044】图36是根据有利的实施例的用于输入行为的语句的图示;
【045】图37是说明根据有利的实施例的输出声明的图示;
【046】图38是说明根据有利的实施例的用于神经网络中输出范围的语句的图示;
【047】图39是说明根据有利的实施例的用于修改输出行为的语句的图示;
【048】图40是说明根据有利的实施例的用于隐蔽层的语句的图示;
【049】图41是说明根据有利的实施例的示例神经网络的图示;
【050】图42是根据有利的实施例的用于训练神经网络的语句;
【051】图43是说明根据有利的实施例的神经网络中的计算功能的图示;
【052】图44是说明根据有利的实施例的神经网络的示例的图示;
【053】图45是说明根据有利的实施例的神经网络的运行结果的图示;
【054】图46是说明根据有利的实施例的列表示例的图示;
【055】图47是说明根据有利的实施例的从列表中删除一个变量的图示;
【056】图48是根据有利的实施例的删除项目的代码的图示;
【057】图49是说明根据有利的实施例的操作列表中项目的代码的图示;
【058】图50是说明根据有利的实施例的将列表作为队列使用的图示;
【059】图51是说明根据有利的实施例的读取列表中的项目的图示;
【060】图52是说明根据有利的实施例的列表中的排序属性的图示;
【061】图53是根据有利的实施例的采用燃料续航距离和速度实现的模糊逻辑示例;
【062】图54是说明根据有利的实施例的采用遗传算法解方程式的图示;
【063】图55A和55B是说明根据有利的实施例的源代码中对象的代码的图示。
具体实施方式
【064】现在参看图,尤其参看图1-2,图中提供了数据处理环境的示范图示,其中可实现说明性的实施例。应该理解的是,图1-2仅仅是示例性的,不用于声称或暗示任何关于可实现不同的有利实施例的环境的限制。可对描述的环境做出很多修改。
【065】在本文中,当短语“至少一个”与一系列项目一起使用时,表示可以使用一个或一个以上项目的不同组合,并只需要列表中每种项目的一个。例如,但非限制的,“项目A、项目B和项目C中的至少一个”可以包括,项目A或项目A和项目B。这个示例还可以包括项目A、项目B和项目C,或者项目B和项目C。
【066】现在参看附图,图1描述了数据处理系统网络的图形表示,在该数据处理系统的网络中可以实现有利的实施例。在这些描述的示例中,网络数据处理系统100用于实现人类行为的建模和仿真发展框架。该框架提供预测人类行为的能力。
【067】网络数据处理系统100是计算机和其它设备的网络,在该系统中可以实现有利的实施例。网络数据处理系统100包含网络102,它是用于在网络数据处理系统100中互相连接的不同设备和计算机之间提供通信链路的媒介。网络102可包括连接,如有线、无线通信链路和/或光纤缆线。
【068】在描述的示例中,服务器104和服务器106连同存储单元108一起连接至网络102。另外,客户端110、112和114连接至网络102。这些客户端110、112和114可以是例如个人计算机、工作站计算机和个人数字助理。在描述的示例中,服务器104向客户端110、112和114提供数据,例如引导文件、操作系统镜像以及应用程序。在本示例中,客户端110、112和114是服务器104和106的客户。网络数据处理系统100可包换额外的服务器、客户端和其它未在图中显示的设备。在有利的实施例中,用于预测人类行为的框架可使用网络数据处理系统100中的一个或更多个数据处理系统实现。
【069】现在转向图2,该图根据说明性的实施例描绘了数据处理系统的图示。在该说明性的示例中,数据处理系统200包括通信结构202,其在处理器单元204、存储器206、永久存储器208、通信单元210、输入/输出(I/O)单元212和显示器214之间提供通信。
【070】处理器单元204执行载入存储器206中的软件的指令。根据特定的实现,处理器单元204可以是一个处理器、多于一个的一组处理器或多处理器内核。另外,处理器单元204可以用一个或更多个异构处理器系统实现,其中主处理器与从属处理器存在于同一芯片上。作为另一个说明性示例,处理器单元204可以是对称多处理器系统,该系统包括多个同一类型的处理器。
【071】例如,在这些示例中,存储器206可以是随机存取存储器或其它适合的易失性存储设备或非易失性存储设备。取决于特定的实现,永久存储器208可以采用各种形式。例如,永久存储器208可包含一种或更多种组件或设备。例如,永久存储器208可以是硬盘驱动器、闪存、可写光盘、可写磁带或上述设备的某种组合。永久存储器208使用的媒介也可以是可移动的。例如,可移动硬盘驱动器可用于永久存储器208。
【072】在这些示例中,通信单元210提供与其它数据处理系统或设备的通信。在这些示例中,通信单元210是一种网络接口卡。通信单元210可通过使用物理通信链路和无线通信链路中的一者或两者提供通信。
【073】输入/输出单元212允许和与数据处理系统200连接的其它设备的数据输入和输出。例如,输入/输出单元212可通过键盘和鼠标提供用户输入的连接。另外,输入/输出单元212可向打印机发送输出。显示器214提供向用户显示信息的机制。
【074】操作系统和应用程序或程序的指令位于永久存储器208上。这些指令可载入存储器206中,由处理器单元204执行。不同实施例的处理可由处理器单元204使用计算机实现的指令执行,这些指令位于存储器中,如存储器206。这些指令被称作程序代码、计算机可用程序代码或计算机可读程序代码,这些代码可由处理器单元204中的处理器读取并执行。各种实施例中的程序代码可位于不同的实体或有形的计算机可读媒介上,例如存储器206或永久存储器208。
【075】程序代码216以功能形式位于计算机可读媒介218中,程序代码216可以是选择性地可去除的,并可加载或转移到数据处理系统200中,由处理器单元204执行。在这些示例中,程序代码216和计算机可读媒介(或介质)218组成计算机程序产品220。在一个示例中,计算机可读媒介218可以是有形的形式,例如是插入或放入驱动器或其它设备中的光盘或磁盘,用于转移到存储设备,驱动器或其它设备是永久存储器208的一部分,例如作为永久存储器208的一部分的硬盘驱动器。在有形的形式中,计算机可读媒介218可以采用永久存储器,例如与数据处理系统200连接的硬盘驱动器、U盘或闪存的形式。计算机可读媒介218的有形形式也被称作计算机可记录的存储媒介。在一些情况中,计算机可读媒介218是不可移动的。
【076】可替代地,通过到通信单元210的通信链路和/或与输入/输出单元212的连接,程序代码216可以从计算机可读媒介218转移到数据处理系统200。在说明性示例中,通信链路和/或连接可以是物理的(实体的)或无线的。计算机可读媒介也可以是非有形媒介的形式,例如包含程序代码的通信链路或无线传输。
【077】为数据处理系统200说明的不同组件无意对不同实施例的实现方式进行体系结构限制。不同的说明性实施例可以在数据处理系统中实现,该数据处理系统包括数据处理系统200的组件之外的组件,或替换数据处理系统200的组件的组件。图2中显示的其它组件可能会随显示的说明性示例变化。
【078】在一个示例中,数据处理系统200中的存储设备是可以存储数据的任意硬件设备。存储器206、永久存储器208和计算机可读媒介218是有形形态存储设备的示例。
【079】在另一个示例中,可使用总线系统实现通信结构202,该总线系统可包含一条或更多条总线,例如系统总线或输入/输出总线。当然,总线系统可以使用任意适合类型的体系结构实现,为连接到总线上的不同组件或设备之间提供数据转移。另外,通信单元可包括一种或更多种设备,用于发送和接收数据,例如调制解调器或网络适配器。另外,例如,存储器可以是存储器206,或者是可在存在于通信结构202中的接口和存储器控制器中枢中找到的缓存。
【080】在描述的示例中,网络数据处理系统100是因特网,用网络102表示世界范围内使用传输控制协议/网际协议(TCP/IP)协议簇相互通信的网络和网关的集合。当然,网络数据处理系统100也可用一些除因特网或替代因特网的许多不同类型的网络实现。例如,这些其它网络包括内联网、局域网(LAN)、广域网(WAN)。图1只作为一个示例,不作为对不同实施例的体系结构的限制。
【081】现在转向图2,该图描述根据有利的实施例的数据处理系统的图示。数据处理系统200可用于实现服务器和客户端,例如图1中的服务器104和106,客户端110、112和114。在本说明性示例中,数据处理系统200包括通信结构202,它在处理器单元204、存储器206、永久存储器208、通信单元210、输入/输出(I/O)单元212和显示器214之间提供通信。
【082】处理器单元204为可能加载到存储器206中的软件执行指令。根据特定的实施方式,处理器单元204可以是一个处理器或多于一个的一组处理器或多处理器内核。另外,处理器单元204可使用一个或更多个异构处理器系统实现,在异构处理器系统中主处理器与从属处理器存在于同一芯片上。在另一个图示示例中,处理器单元204可以是包含多个同一类型处理器的对称多处理器系统。
【083】在这些示例中,例如,存储器206可以是随机存取存储器或其它适合的易失性存储设备或非易失性存储设备。取决于特定的实现,永久存储器208可以采用各种形式。例如,永久存储器208可包含一种或更多种组件或设备。例如,永久存储器208可以是硬盘驱动器、闪存、可写光盘、可写磁带或上述设备的某种组合。永久存储器208使用的媒介也可以是可移动的。例如,可移动硬盘驱动器可用于永久存储器208。
【084】在这些示例中,通信单元210提供与其它数据处理系统或设备的通信。在这些示例中,通信单元210是一种网络接口卡。通信单元210可通过使用物理通信链路和无线通信链路中的一者或两者提供通信。
【085】输入/输出单元212允许和与数据处理系统200连接的其它设备的数据输入和输出。例如,输入/输出单元212可通过键盘和鼠标提供用户输入的连接。另外,输入/输出单元212可向打印机发送输出。显示器214提供向用户显示信息的机制。
【086】操作系统和应用程序或程序的指令位于永久存储器208上。这些指令可载入存储器206中,由处理器单元204执行。不同实施例的处理可由处理器单元204使用计算机实现的指令执行,这些指令位于存储器中,如存储器206。这些指令被称作程序代码、计算机可用程序代码或计算机可读程序代码,这些代码可由处理器单元204中的处理器读取并执行。各种实施例中的程序代码可位于不同的实体或有形的计算机可读媒介上,例如存储器206或永久存储器208。
【087】程序代码216以功能形式位于计算机可读媒介218中,程序代码216可以是选择性地可去除的,并可加载或转移到数据处理系统200中,由处理器单元204执行。在这些示例中,程序代码216和计算机可读媒介218组成计算机程序产品220。在一个示例中,计算机可读媒介218可以是有形的形式,例如是插入或放入驱动器或其它设备中的光盘或磁盘,用于转移到存储设备,驱动器或其它设备是永久存储器208的一部分,例如作为永久存储器208的一部分的硬盘驱动器。在有形的形式中,计算机可读媒介218可以采用永久存储器,例如与数据处理系统200连接的硬盘驱动器、U盘或闪存的形式。计算机可读媒介218的有形形式也被称作计算机可记录的存储媒介。在一些情况中,计算机可读媒介218是不可移动的。
【088】可替代地,通过到通信单元210的通信链路和/或与输入/输出单元212的连接,程序代码216可以从计算机可读媒介218转移到数据处理系统200。在说明性示例中,通信链路和/或连接可以是物理的(实体的)或无线的。计算机可读媒介也可以是非有形媒介的形式,例如包含程序代码的通信链路或无线传输。
【089】为数据处理系统200说明的不同组件无意对不同实施例的的实现方式提供体系结构限制。不同的说明性实施例可以在数据处理系统中实现,该数据处理系统包括数据处理系统200的组件之外的组件,或替换数据处理系统200的组件的组件。图2中显示的其它组件可能会随显示的说明性示例变化。
【090】在一个示例中,数据处理系统200中的存储设备是可以存储数据的任意硬件设备。存储器206、永久存储器208和计算机可读媒介218是有形形态存储设备的示例。
【091】在另一个示例中,可使用总线系统实现通信结构202,该总线系统可包含一条或更多条总线,例如系统总线或输入/输出总线。当然,总线系统可以使用任意适合类型的体系结构实现,为连接到总线上的不同组件或设备之间提供数据转移。另外,通信单元可包括一种或更多种设备,用于发送和接收数据,例如调制解调器或网络适配器。另外,例如,存储器可以是存储器206,或者是可在存在于通信结构202中的接口和存储器控制器中枢中找到的缓存。
【092】作为客户端,数据处理系统200可以有各种形式。例如,数据处理系统200可以是桌面计算机、膝上型计算机、工作站、个人计算机、电话设备或个人数字助理(PDA)的形式。
【093】不同的实施例提供了一个仿真环境,该仿真环境可以用来预测一组人经历一系列动作和/或事件时,作为个体和/或作为整体会如何反应。采用这种方式,可仿真“如果...将会怎样”的不同场景,其仿真结果可用于帮助判定将对这组人采取的行动的最终集合。
【094】不同的实施例提供了一种用于仿真人类行为的计算机实现的方法、装置和计算机可用的程序代码。在一个实施例中,源代码位于网络数据处理系统的存储器系统中,例如图1所示的网络数据处理系统100。该源代码用于预测人类行为。解释器运行在网络数据处理系统的硬件上。该解释器用源代码执行仿真,从而产生新定义和经解释的源代码。图形用户界面处理器运行在网络数据处理系统的硬件上,其接收经解释的源代码,并用这个经解释的源代码产生依赖于设备的输出。依赖于设备的输出被传送到与图形用户界面处理器通信的一组设备中。
【095】这些设备显示依赖于设备的输出,并接收用户输入。接收到的用户输入被返回图形用户界面处理器,图形用户界面处理器再将接收到的用户输入发送给解释器。解释器使用接收到的用户输入和新定义改变或修改源代码。在这些示例中,新定义是用于修改已存在的源代码或向已存在的源代码添加新信息的信息。这个修改后的源代码然后被执行,以产生新定义和新的经解释的源代码。以这种方式,形成反馈回路,从而改变这些有利的实施例中的源代码。
【096】接下来转向图3,该图根据有利的实施例描绘了说明仿真系统的图示。系统300是仿真系统的一个示例,其可以在图1的网络数据处理系统100中实现。具体地,系统300可以使用一个或更多个数据处理系统实现,例如图2中的数据处理系统200。
【097】在这些示例中,定义302由系统300根据动作304进行处理。动作304被施加于定义302,以执行对人类行为的仿真。在这些示例中,动作304可以被系统300的用户选择。动作304也可以从配置文件选择或由程序或处理过程选择。定义302是这些示例中用于仿真的源代码的一部分。
【098】系统300使用动作304修改定义302,从而生成定义306。在这些描绘的示例中,定义306是一个新定义,被用作输出,以基于作用于定义302的动作304提供结果。另外,定义306被用于修改定义302,定义302然后被用于继续执行仿真。这种连续的反馈为系统300提供了一种从不同迭代中学习的能力。另外,之前仿真的结果存储在定义302中,允许系统300向以前的仿真学习。
【099】在这些示例中,定义302是一组人和这组人生活环境的表示。对环境的描述包含有形资产和无形资产。另外,除了内部关系,定义302还包括对构成该组人口的不同人的描述,内部关系定义了动作和对不同事件或者施加于这组人和环境的输入的反应。
【100】系统300可用作仿真工具,预测在针对定义302中描述的一组人采取特定动作时的结果和不同反应和/或影响。换句话说,可以对系统300进行编程,以在针对定义302施加或采取动作304时获取影响,例如经济、社会和心理方面的影响。
【101】在说明性示例中,定义302使用计算机语言进行编写。在描述的示例中,计算机语言是一种解释性的语言,该语言使用解释器执行仿真,但运行不需要编译来执行。可以使用允许定义仿真过程中包含的各种对象的任意语言。例如,C和C++是可以应用于这些示例的解释性语言。在这些示例中,对象的定义包括人和人居住的环境。不同的有利实施例为系统300以及定义302和动作304提供了框架。
【101b】现在参看图4,该图根据有利的实施例描述了人类行为建模和仿真开发框架的图示。框架400是图3中系统300的体系结构的示例。在本示例中,框架400包含源代码402、解释器404、图形用户界面(GUI)处理器406和设备408。
【102】源代码402是框架400中的一个模块,包含资料库的所有信息。已知有关仿真的所有信息都存储在这个特定的组成部分中。源代码402包含运行仿真所需的所有信息。例如,这些信息包括对一组人的定义和使用定义运行仿真所需的代码。源代码402还包括作用于定义的动作,以及用于呈现结果的代码。
【103】用于源代码402的语言可被修改,以包括仿真和预测人类行为特有的功能和特性。具有这些特性的语言被称作人类行为定义语言(HBDL)。HBDL可以用目前可用的语言实现,例如C或C++。当然,在这些示例中,可以使用任意的解释性语言实现HBDL。
【104】另外,HBDL可使用一种全新的语言实现,而不采用为了提供对人类行为的仿真而作了修改的已有语言。在说明性示例中,可使用不同的语言实现HBDL的不同组成部分。在这些示例中,源代码402是用HBDL编写的资料库,并可分发到位于不同地理位置的不同存储设备。
【105】解释器404从源代码402收集数据410来执行仿真。在这些说明性示例中,数据410包括对一组人和其环境的定义,以及施加于这些人的动作。另外,数据410还包括来自编程语言的语句或代码行,用于生成源代码402。解释器404使用数据410中的这些语句执行仿真。
【106】例如,数据410中的语句包括仿真人造人的人工智能程序的代码。例如,这些语句还包括模糊逻辑、神经网络和用于执行仿真的其它处理过程的代码。另外,数据410还包括用于产生图形用户界面(GUI)来呈现结果的程序或代码。采用这种方式,源代码402包括关于一组人和环境的信息,以及执行仿真所需的程序或代码。依赖于实施方式,这些语句可以是C语句或C++语句。或者,这些语句可以是更高级语言的语句,解释器404将其解释为C或C++语句用于执行。
【107】该仿真产生图形数据412,该图形数据被传送到图形用户界面处理器406。在这些示例中,图形数据412处于不需要可能使网络变慢的大量数据传送的形式。在说明性实施例中,图形数据412采用基元的形式。通过传送基元,而不是位图或需要传送更多数据的其它格式,网络中使用的带宽量减少。在一些情况中,可能有必要在图形数据412中发送一些位图,但在可能情况下使用基元。
【108】相反,图形数据412被图形用户界面处理器406处理,从而产生由设备408显示的设备数据414。在这些示例中,例如,设备数据414可以是由设备408显示的像素数据或位图。
【109】设备408还接收用户输入,从而产生由图形用户界面处理器406接收的设备数据416。图形用户界面处理器406将设备数据416转换为需要更少使用网络资源来传送的格式。在这些示例中,用户输入418被返回解释器404。使用用户输入418和来自数据410的仿真结果产生修改420。使用修改420重写或修改源代码402。这些修改被用于修改源代码402中的定义。修改420类似于图3中的定义306,定义306用于修改图3中的定义302。采用这种方式,可以改动源代码402,以考虑由解释器404执行的仿真结果和从设备408接收的用户输入。
【110】例如,修改420还可包括施加于或包含在由解释器404执行的仿真中的一组选择的动作。在这些示例中,这组选择动作和修改420可从在设备408产生的用户输入接收。
【111】数据410可包括诸如图3中的定义302和动作304的信息。修改420可包括诸如图3中定义306的变化的信息。例如,这些变化可以是对已有定义的修改或添加新的定义。在这些示例中,图形数据412被用于呈现图3中的定义306。
【112】对框架400中不同模块的说明并不意味暗示对这些模块的实现方式进行体系结构的限制。例如,不同模块可包括实现框架400中不同特性的不同子模块或程序。同时,特定的模块可以在单个数据处理系统上实现,也可遍布于多个数据处理系统。
【113】由于框架400的模块性,不同的模块可以通过网络分发到不同的位置,从而最大化硬件资源的使用。框架400的模块性还允许某些功能的集中,同时允许其它功能被移植或分发到网络数据处理系统的远程位置。例如,将图形处理和依赖于设备的数据放置在集中环境,然后将这些信息通过网络发送到远端设备,这种方式提供了一些优势。一般地,图形数据容量大,会使网络变慢。结果,这种类型信息的集中和处理会引入关于等待时间、数据传送和数据同步的问题。框架400被设计成使得框架400的实现可以避免这些问题。
【114】下面参看图5,该图描述了说明根据有利的实施例的框架中模块分发的图示。在这个示例中,系统500中说明的不同模块来自于图4中的框架400。从这个描绘的示例中可以看出,系统500包含因特网502、局域网(LAN)504、广域网(WAN)506和局域网(LAN)508。这些不同的网络是图1中网络102的组成部分示例。
【115】如描述的一样,源代码510存在于存储设备512、514和516中。存储设备512与局域网504连接;存储设备514与广域网506连接;存储设备516与局域网508连接。不同网络中不同设备的源代码510的分发是源代码510的存储方式的示例。
【116】源代码510可存储在特定网络的单个存储系统中,而不存储于不同位置。一些存储源代码510的存储设备可以是备份设备,用于存储源代码510的副本。利用这种实现方式,可以移植其它位置的部分系统,以调控在那些位置可能发现的优势,而不是将实现限制在特定的位置。
【117】在本示例中,解释器518位于数据处理系统520中。数据处理系统520可使用数据处理系统实现,如图2的数据处理系统200。数据处理系统520与局域网508连接。解释器518从分布在不同网络中的不同存储设备中的源代码510收集数据,以执行仿真。
【118】仿真结果被送往同样位于数据处理系统520中的图形用户界面处理器522。图形用户界面处理器522生成用于在设备523上显示的设备数据。另外,解释器518可向运行在数据处理系统526上的图形用户界面处理器524和运行在数据处理系统530上的图形用户界面处理器528发送图形数据。图形用户界面处理器524生成在设备530上显示的设备数据,而图形用户界面处理器528生成在设备532上显示的设备数据。图形用户界面处理器522、524和528分别位于靠近设备523、530和532的地方。
【119】用这种方式,由这些处理器产生的数据不需要使用大量的网络资源。在这些示例中,在图4框架400中描述的图形用户界面处理器模块在系统500中的多个不同位置中备份,以使通过网络将图形数据发送到远端设备的用法最少,通过网络将图形数据发送到远端设备的方式会使系统变慢或使用大量的网络资源。
【120】现在参看图6,该图描述了说明根据有利的实施例的源代码模块的图示。在本示例中,源代码600是对图4中源代码402更详细的说明。
【121】源代码600包括定义602、动作604和图形用户界面(GUI)语言606。定义602和动作604针对某个环境中一组人的仿真。使用图形用户界面语言606呈现结果,并从仿真的终端用户接收用户输入。通过图形用户界面语言606,源代码600控制设备上所呈现的结果的外观。在这些示例中,使用图形用户界面语言606控制结果的这个外观。
【122】另外,在这些示例中,源代码600是自适应和开放的。源代码600包括用于仿真的信息和用于执行或实施仿真的实际语言。源代码600取消了读取并解释资料库的传统应用程序做出的决定。相反,源代码600是一个资料库,包含信息和应用程序,其中这些信息和应用程序可以根据实施仿真产生的结果进行更改。
【123】数据608表示流向解释器,例如图4中的解释器404的数据流。修改610表示从解释器接收的对源代码600的改变。数据608包括来自定义602、动作604和图形用户界面语言606的信息,这些信息传送给解释器用于执行仿真。在这些示例中,源代码600是自由格式的资料库。
【124】在这些说明性示例中,源代码600用HBDL编写。作为自由格式资料库,源代码600不要求不同组件之间的成功分隔符。源代码600中的程序可以使用单行模式编写。源代码600也包含循环、选择语句、条件转移和其它类似的语句,用于更改仿真的执行。
【125】另外,源代码600包含对象,这些对象存储部分代码。结果是,对象可以被多次调用,而不需要副本。另外,在源代码600中,可以索引并定义对象,以使其包含默认参数。用这种方式,能够在源代码600中创建智能对象。
【126】同样,在源代码600中可定义不同类型的变量。这些类型的变量可以针对特定任务。例如,除了传统的数字类型,源代码600可包含其它类型,例如人类、个人、家庭、动作、时间线、日期和其它。另外,源代码600提供基于运行模型的时间线,用于执行仿真。在源代码600中可提供人工智能组件,以及支持这些组件的功能命令。
【127】在源代码600中,定义602描述一组人和这组人生活的环境。动作604表示在仿真过程中施加于定义602的影响。在这些示例中,动作604是被放入时间线、被称作事件的代码的部分或片断。
【128】在这些示例中,参加仿真的人以及使用仿真的人被源代码600处理。参加仿真的人可以是真人或人造人。定义602、动作604和图形用户界面语言606包括功能代码和参数。功能代码和参数连同其它信息一起作为数据608输出,由解释器进行解释。
【129】通过将这些信息移至源代码600中,源代码600能够控制仿真。用这种方式,该仿真不再象那些目前使用样式和语言编写的仿真那样是应用程序特定的。例如,一旦在定义602中定义特定的项目,就可以结合在动作604中预定义的一组动作使用该项目。例如,在定义602中定义了类型为X的人,可以连同在动作604中运行的动作使用该人。结果是,可以创建和运行无限数目的仿真,不需对人X进行重新编码,并无需为每一个仿真运行。
【130】另外,使图形用户界面语言606位于源代码600中意味着定义602和动作604可以控制呈现给用户的显示。用这种方式,源代码600实质上是一个资料库(或数据库),它决定仿真的用户可以查看哪些内容。这个特性也支持定义和知识的重用,以允许在勿需为每个仿真的应用程序或程序定制编写一个仿真的情况下,创建无限数目的仿真。
【131】目前系统使用在从头编码的单个仿真中的静态数据。在最佳情况下,仿真单个对象的代码存放于库中,但每个对象的动作对每个仿真是独特的。动作通常用单独的程序编写。结果是,目前使用的技术要求为每种特定类型的仿真进行大量的编码。另外,根据目前的实践,图形用户界面通常被复用,并且控制应用程序。
【132】结果是,在勿需重新编码或重写应用程序的情况下,这些界面不改变特定的仿真。用这种方式,相较于目前使用的用于仿真的技术,通过有利的实施例中的源代码设计,为显示结果和接收用户输入提供了更大的灵活性。
【133】图形用户界面语言606提供通过图形用户界面处理器,例如图4中的图形用户界面处理器406,由解释器有选择地发送的代码。该代码提供对终端用户的显示或画面,以及在各种显示器上提供的输入和输出控件。图形用户界面语言606控制每个终端用户在其屏幕上看到的内容和每个用户与系统交互的方式。在这些说明性示例中,图形用户界面语言606是HBDL的一个子集。根据特定的实现,图形用户界面语言606可以使用不同的语言实现,以提供不同的有利特性。采用这种方式,不同的有利实施例显示了对源代码600的控制。
【134】使在源代码600中的图形用户界面语言606控制输入和输出的一个优势是在终端设备提供的用户界面可被仿真控制。仿真通常会涉及具有不同背景的用户。定制不同用户界面的能力帮助这些用户快速理解系统。因此,执行仿真的学习曲线被降低了。另外,只有最相关的信息呈现给不同用户,这提高了仿真的关联。
【135】例如,不同用户可以为特定的仿真要求不同的用户界面。可以为一些用户提供用户界面,以从动作604中选择施加于定义602的特定动作。其它用户可以替代定义602中的人造人。为这类用户提供的用户界面不同于为选择动作的用户提供的用户界面。
【136】另外,在运行的不同仿真也需要不同类型的界面。这种类型的体系结构也提供动态添加或简化用户界面的能力。用这种方式,用户界面可以用依赖于实现的方式提供。
【137】另外,不同的仿真可强加新参数和新环境。这些新的、不断改变的情况意味着要分析不同的数据集。这些情况还包括需要涉及不同的用户或专家。这种类型的当前任务不断改变的本质需要一个通用的自适应环境,如通过源代码600提供的通用自适应环境。源代码600在定义602、动作604和图形用户界面语言606中提供这种范例。
【138】在这些说明性示例中,图形用户界面处理器受源代码600控制,并不像目前使用的仿真系统那样受控于静态应用程序。图形用户界面语言606为硬件提供了一层抽象。图形用户界面语言606的内容保证仿真过程按预计的方式发生,并从各种用户和设备发送和接收适当的信息。图形用户界面语言606包含在任意硬件上运行所需的所有代码,其中解释器和图形用户界面处理器在这些硬件上实现。用这种方式,当硬件发生改变时,只有封装硬件的较低层部分需要重写。
【139】在这些说明性示例中,图形用户界面语言606提供各种构造,用于在运行时构建用户界面必需的元素。例如,这些元素包括鼠标跟踪运动、鼠标点击运动、模拟操纵杆、菜单、窗口、对话框、复选框、单选按钮、列表框和表单。利用这些和其它元素,实现图形用户界面会更容易。另外,使用图形用户界面语言606构建一个图形用户界面产生的输出可以保存在图形用户界面606中,供日后使用。
【140】图形用户界面语言606提供了许多不同的特性,从而允许源代码600提供和接收与一组人和其生活环境的仿真有关的输入。图形用户界面语言606提供了一组三维基元。这些三维基元支持特性,例如控制假想照相机和视点的一组命令。图形用户界面语言606还包括含有向量和矩阵运算的数学函数,以及导入和导出不同类型格式的图形文件的能力。
【141】图形用户界面语言606内提供的特性还包括创建三维对象,这些三维对象不仅仅包含三维数据。例如,这些三维对象可以包括其它信息,例如价格、重量、颜色、值或关于三维对象的规则。当然,任何类型的信息可嵌入这些三维对象或与这些三维对象相关联。
【142】另外,图形用户界面语言606还包括一个三维模型和堆栈,以及管理这个模型和堆栈的一组命令。这个三维模型和堆栈允许创建应用于不同三维实体的复杂转换。采用这种方式,可以创建其中的对象被临时影响的不同环境(world)。
【143】图形用户界面语言606提供对大型三维资料库的简单创建和维护。这些资料库可以在定义602中发现。可以使用这些资料库表示任意三维对象,而不管对象的大小、复杂度或本质如何。
【144】另外,图形用户界面语言606提供图形用户界面构建语言。这个语言允许源代码600控制每个终端用户设备的观感。图形用户界面语言606可包括两维基元,例如点、直线、曲线和平面。另外,还提供一组二维控制对象。例如,这些二维控制对象包括窗口、对话框、请求框(requestor)、复选框、单选按钮和菜单。
【145】接下来参看图7,该图描述了根据有利的实施例的源代码的定义部分。定义700是图6中定义602的更详细说明。定义700包括资产702、人704和内部关系706。
【146】资产702包括人居住环境中的有形资产708和无形资产710。有形资产708包括有生命的对象和无生命的对象。例如,有生命的对象可包括家畜、鸟、细菌和植物。例如,无生命的对象可包括房屋、山、湖泊、车、桌子、钢笔、飞机或枪。
【147】例如,无形资产710可包括针对被仿真的一组人的规则、法律和规定。无形资产710还可包括被解释器用于处理资产的信息。这些信息还包括通用代码、库和例程。
【148】更具体地,例如,这种类型的资产包括数学库、图形库、二维基元库、三维基元库、模型和堆栈管理库、人工智能库、输入/输出库、加密库、网络库、系统调用库和时间管理库。也就是说,无形资产710包括执行仿真所需的任意信息。
【149】人704描述一组人中存在的各种人特征。人704包括详细描述各种家谱和该组人的人之间关系的信息。另外,人704包含为各个个体创建心理状况档案所需的信息。
【150】内部关系706包含在定义700中被人工智能使用的动作和反应。这些动作和反应可以用多种方式触发。例如,触发器可以是随机的、基于警告的、状态机或对施加于定义700的一组事件的反应。
【151】资产702中的不同对象可依赖无形资产710执行必要的功能和计算。通用代码、库和例程是支持不同编程任务所需的代码。这些不同的组件可作为数据送往解释器,在执行仿真过程中使用。三维对象是组成不同环境的对象,包括有生命的对象和无生命的对象。
【152】现在参看图8,该图描述了根据有利的实施例的对象的方框图。在这个示例中,对象800是图6的定义602中某个对象的一个说明性实现示例。在这个说明性示例中,对象800包括人工智能802、特征804和内部关系806。
【153】人工智能802包括用于仿真特定对象的代码。在这些示例中,对象800是个有生命的对象,例如人类、植物或动物。人工智能802包括仿真所选对象的动作和反应所必需的代码。
【154】特征804包括对特定对象的特征的标识。例如,如果对象802是人,特征804可包括身高、重量、肤色、头发颜色、眼睛颜色、体形和其它适合的人的特征。特征804可包括其它身体特征,例如这个人可以跑多快,这个人的灵活性和这个人的耐力。
【155】特征804中非身体特征可包括,例如耐心、同情、情感、智力和人际关系。以上列举的非身体特征不是对非身体特征的限制。人工智能802使用特征804仿真对象800的动作和反应。具体地,在描述的示例中,使用特征804仿真人的行为。
【156】根据特定实现,人工智能802的复杂性和特征804中的特征数量会不同。当使仿真与实际对象不能区分的预期能力增强时,这些组件的复杂性也随之增加。
【157】内部关系806包含动作和反应,人工智能802使用这些动作和反应来触发事件。例如,这些事件包括由对象800执行的动作。这些动作可由对象800发起,或这些动作是在响应在对象800上采取的动作时发生的动作。对象800采取的这些动作可以是针对对象800的动作,或是对象800根据其在仿真过程中所处的环境感知到的动作。
【158】现在参看图9,该图描述了根据有利的实施例的对象。在这个示例中,对象900是用在图6中的定义602仿真的无生命对象的示例。例如,对象900可以是车、笔、飞机、山或湖泊。
【159】在这个示例中,对象900包括模型902和特征904。模型902包括用于仿真特定对象的代码。模型902包括仿真特定对象功能的代码。例如,如果对象900是车,可在车上实施产生特定结果的各种动作。例如,引擎可被打开,并且车轮可转动。
【160】例如,模型902可以是一个数学模型。例如,可以使用一组有限状态机来对车辆的功能和操作进行建模。在模型902中可以包括其它功能和处理过程,比如通过长期使用和暴露在仿真环境中,仿真被建模对象的老化。
【161】特征904标识车辆的各种特征,例如轮胎尺寸、引擎尺寸、车身颜色、收音机的类型、以及内部空间大小。另外,特征904还包括对象900关于车的特性的其它信息。例如,可为特征904中特定的轮胎类型标识轮胎上的轮距大小。
【162】模型902用来仿真车对施加于对象900的各种动作有什么反应,例如用户驾驶车辆,在特征904中标识的发生在轮胎上的磨损。该磨损被记录在特征904中。该磨损可以是模型902中算法的一部分。另外,模型902会考虑对象暴露在诸如阳光和冰雹的环境中,在车辆示例中为模型902呈现老化的外观。可以在这些对象上施加由图8中对象800和图9中对象900实施的各种动作,这些动作在图6的动作604中定义。
【163】现在参看图10,该图显示了根据有利的实施例的动作对象。在这个示例中,动作对象1000是图6的动作604中的一个动作。
【164】动作对象1000包括动作1002、对象1004、用户权限1006和图形用户界面(GUI)1008。例如,动作1002可以是被实施的动作,比如行走、打击、移动、坐下、紧握、讲话或注视。对象1004是对象的标识,在该对象中可以施加动作。用户权限1006决定特定的用户是否可以在对象1004上施加动作1002。图形用户界面1008标识为特定用户呈现的用户界面的类型。
【165】对象1004可以是无生命的对象,或者是有生命的对象。用户权限1006被用来决定特定的用户是否能够在对象上实施选择的动作。在一些情况中,不希望特定的用户在对象上实施动作。图形用户界面1008标识对象上的动作呈现给用户的方式,以及用户如何与对象进行交互。
【166】给出图8、9和10中对象的图示,目的是为了说明使用目前可用的编程语言和方法学实现图6中源代码600的一种方式。然而,这些示例不意味着暗示对图6中源代码600的实现方式的限制。
【167】现在参看图11,该图描述了根据有利的实施例的动作的施加图示。在这些示例中,时间线1100表示在仿真过程中定义,如图6中的定义602,所受的影响。在这些说明性的示例中,诸如图6中动作604的动作被称作时间线1100上的事件。这些动作是代码的片段或部分。具体地,动作包括事件1102、事件1104、事件1106和事件1108。在这个示例中,事件1102在时隙1110被施加。事件1104在时隙1102期间发生并且事件1106在时隙1114被施加。事件1108在时隙1116期间发生。这些事件本质是过程化的或事件驱动。也就是说,响应于解释器发出或产生的消息施加这些事件。
【168】在这些示例中,如果有必要,执行时间线1100发出的主中断在执行中的期间中断这些事件,并且仿真立即进入仿真的下一个时隙。在当前使用的编程语言中,源代码的执行不是按顺序执行就是由事件驱动。与当前使用的编程语言不同,在有利的实施例中,源代码中的动作遵循基于时间的执行模型。在这些示例中,时隙可以有各种间隔尺寸。例如,每个时隙可代表一周、一天、一个小时、一分钟或其它时间周期。
【169】在描述的实施例中,时间线1100在调度器的监督下运行,调度器在下文更详细地进行描述。调度器运行与时间线1100相关联或依附于时间线1100的事件1102、1104、1106和1108。调度器具有对这些事件的完全控制,并可按需中断它们。另外,调度器运行存储管理器和存储恢复工具。采用这种方式,所有分配给已中断任务的存储空间均可用于即将发生的事件。
【170】现在参看图12,该图显示了根据有利的实施例的在配备调度器中断的时间线上动作的施加。在这个示例中,时间线1200包括事件1202和事件1204。事件1202在时间线1200的时隙1206期间开始执行。在这个示例中,事件1202包括输入1208、判定1210和处理过程1212。事件1202在时隙1206期间开始执行。当时隙1206结束时,调度器在点1214中断事件1202的执行。执行接着被转移给针对时隙1216的事件1204,事件1204在时隙1206后开始。在这个示例中,在时隙1206和时隙1216之间没有重叠。
【171】接下来参看图13,该图显示了根据有利的实施例的其中时隙重叠的事件施加。在这个示例中,调度器执行时间线1300,该时间线的不同时隙附有事件1302、1304、1306和1308。事件1302依附于时隙1310。事件1304依附时隙1312或与时隙1312相关联。事件1306和1308分别依附于时隙1314和1316。
【172】在这个说明性示例中,不同的时隙可能相互重叠。也就是说,一个时隙的持续时间可长于另一个时隙的时间段。如图示,时隙1310和时隙1312相互重叠。结果是,事件1302和事件1304会在时隙1310和时隙1312重叠的特定时间段内同时运行。在这个特定示例中,为事件1302提供了更多的运行时间。
【173】时隙的重叠并不意味着事件在时隙发生重叠的时刻合并。在这些说明性示例中,如果由于某种原因,时隙1310的事件1302发生中断,且该中断发生在时隙1312的执行开始前或时隙1312执行期间,则控制权将传给时隙1312。然而,如果中断发生在时隙1310期间,但在时隙1312结束后,则控制权将传给时隙1314中事件1306的执行。
【174】现在参看图14、15和16,这些图描述了根据有利的实施例的持续事件。如图所示,时间线1400包含依附于或赋予时隙1408的事件1402、持续事件1404和事件1406。事件1410与时间线1400上的时隙1412相关联。事件1414依附于时隙1416,而事件1418依附于时隙1420。可以使事件不可中断,或给予一定的延期。当在等待来自终端用户或其它还未结束但需要结束的事件的输入时会出现这种类型的事件。在这些示例中,这种类型的事件是持续性事件,例如持续性事件1404。持续性事件1404可以从一个时隙继续到另一个时隙,直到事件全部发生。
【175】如图15所示,持续事件1404变为依附于时隙1412。在图16中,持续事件1404又被延续到或移动到时隙1416。在这些示例中,持续事件1404在这个特定的时隙内完成。
【176】现在参看图17,该图描述了根据有利的实施例的解释器。解释器1700是图4中解释器404更详细的图示。解释器1700是一个程序,它将用一种语言编写的源代码转换为用另一种语言编写的目标代码。解释器1700在继续处理源代码时也执行目标代码。这个目标语言可以用另一个高级语言编写,或者是用被特定数据处理系统或处理器使用的语言编写。
【177】对任意已正确解释和执行的程序,根据由语言定义的构造构成源代码。具体地,这些构造是语法构造。构造的完整集合形成编写源代码的语言的语法。所有不按照这些构造构成的代码或语法不正确的代码都被解释器1700丢弃。
【178】解释器1700包括通信模块1702和语言解释器1704。另外,解释器1700包括加密/解密模块1706,该模块为解释器1700和图形用户界面处理器(如图4中的图形用户界面处理器406)之间发送和接收信息提供安全保障。
【179】在这些说明性示例中,语言解释器1704接收HBDL 1708。HBDL 1708是数据的示例,例如图4中从源代码模块接收的数据410,例如图4中的源代码402。HBDL 1708被语言解释器1704解释,以执行仿真。其结果是被送往加密/解密模块1706进行加密的已解释的HBDL(IHBDL)1710。经过加密后,加密结果作为加密的已解释HBDL(EIHBDL)1712发送给图形用户界面处理器,例如图4中的图形用户界面处理器406。EIHBDL 1712是图4中图形数据412的示例。接收的用户输入是加密的HBDL(EHBDL)1714,由图形用户界面处理器从一组设备收集。EHBDL 1714是图4中用户输入418的示例。这个加密信息被解密,并且作为HBDL 1716被送往通信模块1702。
【180】HBDL 1716是用户输入的示例,用来修改源代码。例如,这个修改可以是改变源代码中的定义,或选择施加于定义的动作。另外,语言解释器1704的输出作为HBDL 1718被送往通信模块1702,用来修改源代码。通信模块1702使用HBDL 1716和HBDL 1718组成HBDL 1720,HBDL 1720被用于修改源代码。HBDL 1720是图4中用来修改源代码的修改420的格式示例。从图中可以看出,HBDL 1718为语言解释器1704产生的输出提供反馈,以修改源代码。
【181】更具体地,通信模块1702包括分配器模块1722、输入模块1724和注册模块1726。语言解释器1704包括词法分析器1728、语法解析器1730和执行模块1732。
【182】语言解释器1704包含处理词法分析、语法解析和进行判定的模块。当数据作为HBDL 1708接收时,词法分析器1728将HBDL1708中的数据分解为源代码语言中的单个子串(token)或单词。在这些说明性示例中,源代码用HBDL编写。也就是说,词法分析器1728识别HBDL 1708中不同的子串或组成部分。这些子串被发送到语法解析器1730,语法解析器1730将这些子串分组成为对HBDL 1708有意义的句子或语句。一旦构造了HBDL 1708中的句子或语句,语法解析器1730就将该语句发送到执行模块1732。根据该语句,相应的动作然后被执行。
【183】执行模块1732包括许多执行仿真的不同子模块。在这些示例中,执行模块1732生成已解释的HBDL(IHBDL)1710和HBDL1718。HBDL 1710表现形式为图形数据,例如图形基元。HBDL1718是修改的或全新的定义,用于修改源代码。HBDL 1718被返回到输入模块1724,用来修改或重写源代码。输入模块1724将HBDL 1718中的新定义传送到分配器模块1722,分配器模块1722分配将被写入源代码的HBDL 1720。
【184】在这些说明性示例中,语法解析器1730启动词法分析器1728和执行模块1732。语法解析器1730从词法分析器1728请求子串。词法分析器1728从HBDL 1708接收字符,以生成子串。每次生成一个子串,词法分析器1728就将该子串发送到语法解析器1730。语法解析器1730使用该子串生成一棵或多于一棵解析树。当建立了一棵解析树时,语法解析器1730就根据建立的解析树请求执行模块1732要执行的动作。
【185】在这些说明性示例中,每棵解析树代表一个产品。产品具有一组一个或多于一个的动作,每次一串子串匹配产品的7定义时,所述动作就被激发或执行。响应于来自语法解析器1730的请求,执行模块1732执行语义分析,以判定在动作的指令中是否发现语义错误。如果发生错误,则报告这个错误。否则,将执行这组动作的指令。过程中对分配的已完成的产品采取的动作形成了对非终结调用者的递归返回。
【186】在这些示例中,执行模块1732判定在由语法解析器1730创建的解析树中产生的指令是否语义正确。如果存在语义错误,执行模块1732就产生一个错误,并忽略这些示例中的指令。然而,在一些情况中,如果为执行模块1732提供了足够的用于更正错误的信息,这些错误可被更正。
【187】当接收的用户输入是EHBDL 1714,加密/解密模块1706对信息进行解密,以形成HBDL 1716。HBDL 1716是由注册模块1702接收的、处于非加密形态HBDL的用户输入。注册模块1726注册并验证每个返回用户输入的用户。这个注册模块确保只允许经过授权或注册的用户向系统中返回输入。例如,注册模块1726可为特定的用户验证密码。
【188】一旦用户通过验证,HBDL 1716中的用户输入被传送到输入模块1724。输入模块1724作为集中所有形式的输入的汇点,并用特定的指令发送这些输入到分配器模块1722。输入模块1724可添加分配器模块1722所需的指令来处理输入。在这些示例中,输入定义了将在源代码中改变什么。
【189】在这些示例中,特定的指令包括例如关于特定的用户可以修改哪部分源代码中的指令。例如,如果用户输入修改定义,指令就告诉哪部分源代码将被修改。使用产生输入的用户的标识和输入本身可以识别将被输入修改的源代码部分。
【190】接下来,分配器模块1722确保当HBDL 1720被送回源代码时源代码的适当部分会被重写。分配器模块1722决定是否使用与用户的标识、输入和将被编写的源代码部分相关的策略向源代码写入。该策略是一组用于决定是否响应输入来写源代码的规则。这个策略提供了冗余,以防止非授权用户绕过注册模块1726的情况。例如,非授权用户可以装作真实的用户,并提交输入。策略可识别输入为不是由真实的用户做出的改变,或不是真实用户做出的输入特征的改变。在这种情况下,分配器模块1722会拒绝该输入。
【191】在这些示例中,每个用户有他们自己的一组动作,用户可以添加或修改这些动作。结果,用户只能修改源代码中的动作片段。执行模块1732的输出,HBDL 1718,既可以用于重写定义,也可以重写动作。在这些示例中,语言解释器1704也可视为系统中的另一个用户。然而,解释器永远是通过验证的用户。分配器模块1722同样地察看语言解释器1704,以使用HBDL 1718重写定义。
【192】结果,在仿真的任何给定一点,真实的人类最终用户可以代替资料库中任意定义的人。通过这个数据流,解释器1700可以重写或更改源代码。随着时间的不断推移以及仿真的运行,会一直产生用于重写源代码的定义。
【193】输入模块1724提供在仿真中运行的“虚拟世界”和通过用户在与系统通信的设备经由用户输入接收到的“真实世界”之间的连接。分配器模块1722提供一种写新定义来修改源代码的机制。
【194】接下来参看图18,该图描述了根据有利的实施例的词法分析器的数据流。如图所示,词法分析器1800接收源1802并且处理源1802来产生子串1804。词法分析器1800是图17中词法分析器1728的示例。词法分析器1800从源1802逐字符地读取内容,并将来自源1802的进入字符分组为被称作子串的基本单元,例如子串1804。
【195】在这些说明性示例中,使用正则表达式1806中的一组子串描述将源1802中的字符分组成子串1804。正则表达式1806包含将源1802中的字符分组为子串1804所需的描述。在这些示例中,可以使用脚本实现正则表达式1806。这些脚本使用描述字符模式的语言符号将字符分组为子串。
【196】在正则表达式1806中定义的每个正则表达式都被赋予了一个符号。这个符号通常是数字。使用正则表达式1806中某个特定正则表达式的符号标识由词法分析器1800在子串1804中产生的子串。
【197】除了正则表达式1806,词法分析器1800还使用保留字1808。当在源1802中识别一个子串时,就为保留字1808中的词分配一个符号。保留字是对于语言具有特殊语法意义的词,并且不能在该语言中用作标识符。
【198】现在参看图19,该图描述了根据有利的实施例的由语法解析器执行的解析或语法分析。图19中说明的解析可以由图17中的语法解析器1730执行。树1900是解析树的示例,它可被语法分析器用来将子串分组。在本示例中,说明了对语句1902的解析。语句1902是“var1=20”。这条语句被用于管理或定义由解释器执行的动作。
【199】具体地,语法解析器根据一组也被称作产品的语法结构识别由词法分析器产生的子串之间的关系。每个产品代表一个逻辑单元,并且通常以其它逻辑单元中的子串定义它。大多数语言定义两种广泛类型的逻辑单元。在这些示例中,这些逻辑单元是语句和表达式。表达式通常是提供值的语法语言结构。语句是改变变量的状态、控制程序流程或执行语言支持的其它操作的语法结构。
【200】语法解析器将子串流分组为逻辑单元,并且指示执行模块根据这些逻辑单元执行动作。在这个示例中,语句1902包含由词法分析器产生的子串流。这些子串是变量名(varname)1904、EQ(等于)1906、表达式1908和NL 1910。表达式1908包含一个整数,INT 1912。变量名1904的值是var1;EQ 1906的值是“=”;INT 1912的值是20;并且NL 1910的值是“\n”。从图中可以看出,对于给定的子串流,语法解析器根据这个流中子串的顺序重建语法。
【201】现在参看图20,该图描述了根据有利的实施例的解析树的另一个示例。在这示例中,根据语句2002产生解析树200。在这个示例中,语句2002是“output=var1+var2*var3”。
【202】在这个示例中,语句2002中的子串包括变量名2004、EQ2006、变量名2008、加号2010、变量名2012、MUL 2014、变量名2016和NL 2018。变量名2004的值是“output”;EQ 2006的值是“=”;变量名2008的值是“var1”;加号2010的值是“+”;变量名2012的值是“var2”;MUL 2014的值是“*”;变量名2016的值是“var3”;NL 2018的值是“\n”。语句2002中符号“=”另一边的表达式由子串变量名2008、加号2010、变量名2012、MUL 2014和变量名2016定义。
【203】通过这些子串相对于识别节点的位置,表明了在解析树2000中这些表达式的识别和它们在语言中的使用。例如,表达式2020表明表达式2022和2026通过运算符2024进行运算。在这个实例中,运算符2024是加号2010。表达式2020还包含表达式2026,表达式2026将表达式2028和2030标识为通过运算符2032进行运算。在这个示例中,表达式2022包含变量名2008,而表达式2026包含将运算符2032运用于表达式2028和2030的运算结果。
【204】现在参看图21,该图描述了根据有利的实施例的解释器中的执行模块。在这个示例中,执行模块2100是图17中执行模块1732的更详细图示。如图所示,执行模块2100包括主时间线控制模块2102、数学模块2104、物理学模块2106、人工智能(AI)模块2108、报告生成器2110和图形模块2112。
【205】主时间线控制模块2102是一个调度器,其用于在执行模块2100中的时间上为定义施加事件。数学模块2104和物理学模块2106提供在判定作用于不同对象的动作的影响时所需的计算。人工智能模块2108是一个组件,其用于在主时间线控制模块2102为定义施加事件时,为不同的人工智能组件运行源代码以帮助对人类行为的仿真。
【206】图形模块2112产生发送到图形用户界面处理器、用于在终端设备上显示的图形数据。在这些示例中,报告生成器2110生成两种类型的输出。一种类型的输出是用于修改源代码的新定义。这种输出的示例是图17中的HBDL 1718。报告生成器2110生成的另一种类型的输出是图形数据,在这些示例中,该图形数据的格式也是HBDL。这种类型输出的示例是图17中的IHBDL 1710。
【207】图形模块2112包括许多不同类型的处理过程,用于产生表示给用户的仿真结果的输出。这些处理过程的类型包括:二维图形管线、二维图形基元、三维图形管线、三维图形基元、二维和三维模型和堆栈、显示列表生成器以及二维和三维绘制引擎。这些处理过程以及其它类型的图形处理过程,可位于图形模块2112中,用于产生呈现给用户的输出。
【208】现在参看图22,该图是根据有利的实施例的产生子串的处理过程的流程图。图22图示的处理过程可以在软件组件中实现,例如图17中的词法分析器1728。
【209】该处理过程始于从源接收下一个字符(操作2200)。在这些示例中,字符源是图17中的HBDL 1708。字符被放进队列(操作2202)。
【210】接下来,做出判定,判定队列中的字符串与正则表达式或保留字之间是否匹配(操作2204)。如果匹配,用队列中的字符串创建一个子串(操作2206)。然后队列被清空(操作2208)。
【211】此后,做出判定,判定是否已经到达源中的文件末尾(操作2210)。如果已经到达文件末尾,则处理过程终止。否则,该处理过程返回到操作2200,以获取下一个字符。如果在操作2204中没有发生字符串匹配,则处理过程继续到如上所述的操作2210执行。
【212】现在参看图23,该图是根据有利的实施例的用于执行人类行为仿真的处理过程的流程图。这个过程用图23说明,可以在一个框架中实现,如图4中的框架400。具体地,这个仿真可以用源代码执行,如图6中的源代码600。
【213】该过程开始是使由源代码中的定义内所定义的一组人居住在虚拟环境(操作2300)。在这些示例中,定义是一个定义,如图6中的定义602。该处理过程用源代码中的动作在虚拟环境中的这组人身上执行一组动作,以形成仿真人行为的结果(操作2302)。在这些示例中,这组动作可以来自多个动作,如图6中的多个动作604。
【214】此后,使用源代码中的图形界面语言从所述结果中产生输出,以形成格式化的输出(操作2304)。在这些示例中,图形用户界面语言可以是图6中的图形用户界面语言606。此后,在发生仿真时,格式化的输出被呈现在网络数据处理系统中的一组设备上(操作2306),然后处理过程终止。
【215】采用这种方式,不同的有利实施例通过在仿真发生时可改变的源代码仿真人类行为。另外,图形用户界面语言允许改变为用户呈现结果的方式,并由仿真本身进行控制。
【216】现在参看图24,该图描述根据有利的实施例的用于产生句子或产品的处理过程的流程图。图19所示的处理过程可以在软件组件中实现,如图17中的语法解析器1730。
【217】该处理过程从获得下一个子串进行处理(操作2400)开始。在这些示例中,从词法分析器接收子串,如图17中的词法分析器1728。接下来判定该子串是否已经到达文件末尾(操作2402)。如果还没有到达文件末尾,会做出一个判定,判定该子串是否符合解析树(操作2404)。如果该子串不符合解析树,会产生一个错误(操作2406),然后处理过程返回操作2400。
【218】否则,会做出一个判定,判定该子串是否结束解析树(操作2408)。如果该子串结束解析树,则执行结束的解析树相对应的产品的指令(操作2410)。此后,随着处理过程然后返回如上所述的操作2400,处理过程递归返回到调用者(操作2412)。
【219】再参看操作2408,如果解析树没有结束,处理过程也会返回到操作2400。回去参看操作2402,如果已经到达文件末尾,会做出一个判定,判定语法是否已经部分重建(操作2414)。执行这个操作是为了判定是否有不完整的语句或产品。这个判定可以通过检查解析树来查看是否存在不完整的解析树做出。如果语法被部分重建,则产生一个错误(操作2416),此后处理过程终止。否则,处理过程终止,且不产生错误。
【220】现在参看图25,该图是根据有利的实施例的执行产品的语句的处理过程的流程图。图25中说明的处理过程可以在软件组件中实现,例如图17中的执行模块1732。
【221】该处理过程由对产品的一组指令进行语义分析(操作2500)开始。执行这个操作是为了判定在产品的任意指令中是否存在语义错误。这组指令是这些示例中的一条或多于一条指令。此后,做出一个判定,判定是否存在语义错误(操作2502)。
【222】如果不存在语义错误,该处理过程会执行这组指令(操作2504),此后操作过程终止。如果在操作过程2502中发生了语义错误,则报告该错误(操作2506),并随后终止处理过程。在一些情况中,处理过程会尝试更正错误以允许指令的执行,而不是终止。
【223】现在参看图26,该图描述了根据有利的实施例的图形用户界面(GUI)处理器。图形用户界面处理器2600是图4中图形用户界面处理器406的更详细图示。在这个示例中,图形用户界面处理器2600包括加密/解密模块2602、图形模块2604、输出模块2606、输入模块2608和HBDL生成器2610。
【224】在这些说明性示例中,图形用户界面处理器2600执行从源代码,例如图6中的源代码600,接收的语句。具体地,这些语句包括那些来自图6中源代码600中的图形用户界面语言606的语句。产生显示的实际代码存在于这些源代码中,而不是作为单独的应用程序。
【225】图形用户界面处理器2600执行语句,并接收用户输入。图形用户界面处理器2600从解释器,如图17中的解释器1700,接收已加密并解释的HBDL(EIHBDL)2612。加密/解密模块2602解密信息,以形成被图形模块2604处理的经解释的HBDL(IHBDL)2614。在这些示例中,IHBDL 2614表示基元或用于为设备2618产生显示的一组语句。
【226】图形模块2604可产生用于在设备2618中显示的像素,并将这些数据发送到输出模块2606,输出模块2606再依次将这些数据通过设备2616传送到设备2618。输入模块2608经过设备2620从设备2618接收用户输入。这个输入模块发送设备数据到HBDL生成器2610,其以HBDL 2622的形式表示该用户输入。该输入被加密/解密模块2602加密,并作为加密的HBDL(EHBDL)2624返回给解释器。
【227】在这些说明性示例中,图形用户界面处理器2600在靠近设备2618的硬件上执行。实际上,在很多情况中,图形用户界面处理器2600的一部分实际在设备2618上运行,而另一部分在数据处理系统例如服务器中运行。图形用户界面处理器2600的位置邻近设备2618,用这种方式减少呈现数据所需使用的网络资源。另外,在这些示例中,图形用户界面处理器2600的放置是为了减少显示数据和接收用户输入的等待时间。
【228】现在参看图27,该图描述根据有利的实施例的通过图形用户界面(GUI)处理器的数据流的流程图。在这个示例中,图形模块2700是图26中图形模块2604的示例。在这些示例中,图形模块2700接收基元2702形式的经解释的HBDL。这些基元是解释器对源代码的解释结果。
【229】图形模块2700处理这些基元,以产生位图的像素和标识怎样处理或显示位图的数据。这个信息作为位图数据2704被发送到客户处理过程2706。在这些示例中,客户处理过程2706是运行在设备上的处理过程,例如运行在图19中设备1918中的那些处理过程。这个客户处理过程执行在显示器2708上显示位图数据所需的操作。以这种方式,绘制图形用于显示所必需的图形处理由图形模块2700执行。客户处理过程2706仅仅显示提供的位图数据,并且不需要从基元绘制位图图形所需的不同处理过程和处理能力。通过这样划分处理,显示数据的设备不需要那些在工作站中使用的绘制图形所用的不同图形处理器和图形管线。
【230】结果是,图形可以在许多不同设备上显示,这些设备通常不具有足够的处理能力来处理基元。例如,客户处理过程2706和显示器2708可以在移动电话、个人数字助理或桌面式个人计算机中实现。
【231】输入设备2710接收关于在显示器2708中显示的数据的用户输入。该用户输入可操作图形,例如选择一个按钮、输入数据或发送一个命令。当用户通过操作显示器2708上的位图修改显示的图像时,客户处理过程2706识别对显示的图像所作修改中的差别或改变。图像中的这些差别形成差别数据2712,该数据被传回HBDL生成器2714。
【232】HBDL生成器2714与图26中HBDL生成器2610类似。HBDL生成器2210识别信息中的这个改变或增量,并将其转换为HBDL 2716,传送给解释器。HBDL 2716包含用源代码模块的语言编写的语句或代码,并可用来修改源代码。图形模块2700使用基元2702生成不同位图的像素。
【233】现在参看图28,该图描述了根据有利的实施例的对显示的控制的图示。在这个说明性示例中,显示2800是在图27中显示器2708上呈现的显示示例。显示2800是使用从基元产生的位图呈现的。在这个示例中,使用位图表示不同组件,例如滑动块2802和数据域2804。用于代表滑动块2802和数据域2804的位图数据与指示如何控制这些位图的数据一起被发送。在本示例中,通过用户输入可以使滑动块2802从图28中的位置2806转移到图29中显示2902内的位置2900,显示2902是显示2800的改进版本。另外,可以在数据域2804中输入一个值,例如50,如图29中显示2904所示。根据有利的实施例,这些位图中的改变被传回图形用户界面处理器,图形用户界面处理器然后根据这些改变产生对源代码的适当语句。
【234】现在参看图30,该图描述根据有利的实施例的识别位图中变化的处理过程的流程图。图30中图示的处理过程是一个可以在设备的客户处理过程中实现的处理过程的示例,例如图27中的客户处理过程2706。
【235】该处理过程从监测用户输入(操作3000)开始。然后做出一个判定,判定是否检测到有关显示的用户输入(操作3002)。如果未检测到用户输入,处理过程返回操作3000。否则,做出一个判定,判定用户输入是否操作控件(操作3004)。如果用户输入操作控件,就标识位图中对控件所作的改变(操作3006)。位图中的差异和改变被送回图形用户界面处理器(操作3008),然后处理过程返回操作3000,以监测另一用户输入。根据特定的实现,数据改变可以是被改变了的实际位图,或是对位图位置的改变的标识。当然,根据实施例,可使用其它类型的改变。
【236】再参考操作3004,如果用户输入不是对控件的操作,则做出一个判定,判定用户输入是否是到数据域中的数据输入(操作3010)。如果用户输入不是数据输入,处理过程返回操作3000。否则,处理过程继续进行(操作3006),识别对位图所作的改变。
【237】在这些示例中,关于用户输入所作的特殊判定是用于识别对显示中输入域和控件的改变的判定,例如图21中的执行模块2100。判定可以针对对感兴趣的位图所做的任何类型的改变。例如,改变可以是特定的按钮是否已经被选择或翻转。
【238】现在参看图31,该图描述根据有利的实施例的处理差异数据的处理过程的流程图。图31所示的处理过程可以在图形用户界面处理器中实现,例如图26中的图形用户界面处理器2600。具体地,图31所示的处理过程可以在图27中的HBDL生成器2714中实现。
【239】该处理过程始于从客户处理过程接收差异数据(操作3100)。在这些示例中,差异数据包含通过用户输入做出的位图中的改变。该处理过程然后根据差异识别用户输入(操作3102)。例如,这个用户输入可被识别为滑动块位置的改变,输入数据到数据域中或某个其它用户输入。可以通过比较发送给设备的原始位图和修改后的位图执行操作3102中的识别。例如,如果差异被识别为是沿着这种类型的控件向上移动滑动块,则用户输入将改变人的时间性(timeliness)。图21中图示了关于执行模块2100的这种类型的差异的示例。
【240】此后,用户输入被转换为被源代码使用的格式(操作3104)。在这些示例中,用户输入被变为HBDL格式。转换后的用户输入被发送到解释器(操作3106),处理过程在此后终止。
【241】现在参看图32,该图描述了根据有利的实施例的用于提供对人透明的范例的组件。在这个说明性示例中,使用框架,例如图4中的框架400,执行仿真3200。具体地,通过使用解释器,例如图4中的解释器404,解释源代码来执行仿真3200。
【242】在这个特殊的示例中,仿真3200包括代表仿真3200中人的人工智能(AI)3202。在这些示例中,被人工智能3202执行的这个人是人造人。除了仿真3200使用的其它信息之外,人工智能3202的代码还从定义3204获取。定义3204存在于源代码中,例如图4中的源代码402。定义3204包括人造人,以及其他人和在仿真3200中人所处的环境的定义。
【243】由于在仿真3200的过程中产生结果,这些结果作为用户输入3208被发送到通信模块3206。在这个示例中,解释器,例如图4中的解释器404中也有这些通信模块。通信模块3206从仿真3200得到用户输入3208,并且修改定义3204或往定义3204中写入新定义。这就形成了修改后的源代码,然后仿真3200使用修改后的源代码产生额外的结果。在这些示例中,人工智能3202登录框架的方式与真人用户登录框架的方式相同。
【244】另外,来自仿真3200的结果3210被发送到设备3212,用于呈现给用户3214。在这些示例中,用户3214是真人。
【245】说明性的实施例允许使用对人透明的范例。在该范例中,由人工智能3202产生、重写入定义3204的用户输入3208可以用来自用户3214的真人用户输入替代。也就是说,用户3214可以将用户输入3216发送到通信模块3206,以修改定义3204或向定义3204中写新定义,从而替代仿真3200中通过人工智能3202仿真的人造人产生的用户输入3208。在这些示例中,用户3214可以是提供用户输入3216的主题专家。在这些示例中,在仿真3200过程中提供用户输入3216。该用户输入可以是对在设备3212处接收和呈现的结果的响应。
【246】由人工智能(AI)3202仿真的人造人产生与该人造人的独特标识符(UI)3218相关联的用户输入3208。用户输入3208在仿真3200过程中由人工智能3202产生。用户输入3216与独特标识符3218相关联。用户输入3208被发送到通信模块3206。通信模块3206通过使用用户输入3208添加新定义或修改当前的定义来修改定义3204。通信模块3206根据独特标识符3218知道修改定义3204的哪部分。
【247】当用户3214产生用户输入3216时,用户输入3216被通信模块3206接收。在这些说明性示例中,用户输入3216也包括独特标识符(UI)3218。这样,通信模块3206修改与独特标识符3218相关联的人造人的定义3204。
【248】以这种方式,用户3214可以替代在仿真3200中通过人工智能3202仿真的人造人。用户3214可以根据发送到通信模块3206的请求动态地打开和关闭人工智能3202。
【249】在开始使用用户输入3216替代用户输入3208时,设备3212处的用户3214向通信模块3206发送请求。此时,假设用户3214已经登录,并被通信模块3206验证。通信模块3206判定用户3214是否被授权打开和关闭人工智能3202。也就是说,通信模块3206判定用户3214是否可以替代人造人。如果用户3214被授权,通信模块3206就设置一个停止使用人工智能3202的标志。也就是说,人工智能3202的功能在仿真3200中不再被调用。
【250】此时,用户3214产生包含独特标识符3218的用户输入3216。取决于特定的实现,根据用户3214在设备3212发送用户输入的认识,可以由通信模块3206添加独特标识符3218。
【251】现在参看图33,该图描述根据有利的实施例的用真人替换人造人的处理过程的流程图。在该示例中,图33所示的处理过程可以在解释器中实现,例如图4中的解释器404。具体地,该处理过程可以在解释器404内的通信模块中实现。
【252】该处理过程是从用户接收一个替换人造人的请求(操作3300)开始。此后,做出一个判定,判定该用户是否已被授权替换被仿真的人(操作3302)。在这些示例中,可以通过比较用户和一个列表或资料库做出该判定,该列表或资料库定义在仿真过程中什么用户可以替代人造人。例如,某些用户是某些领域的主题专家,并且允许替换那些特定领域的人造人。例如,特定的用户可以是关于政治的主题专家。可以允许该用户替换仿真中身为政治家的人造人。然而,不允许该主题专家用户替换身为农夫或战士的人造人,因为该主题专家不具有那些领域的专业知识。
【253】什么用户可以替换人造人的特定规则完全依赖于特定的实现。如果用户被授权替换人造人,则在定义中停止使用针对该人造人的人工智能(操作3304)。
【254】此后,处理过程等待来自用户的用户输入(操作3306)。当接收到用户输入就做出判定,判定用户输入是否在定义中写入新定义(操作3308)。如果用户输入是写入新定义,则将该用户输入格式化为用于写新定义的格式(操作3310)。此后,该定义被写入源代码(操作3312),处理过程然后返回上述的操作3306。
【255】再参看操作3308,如果用户输入不是写入新定义,则做出一个判定,判定用户输入是否打开人工智能(操作3314)。如果用户输入不打开人工智能,则处理过程返回操作3306。否则,人工智能打开,用于仿真人造人(操作3316),此后操作过程终止。操作3316将人造人放回仿真中的原位置,并从仿真中去除真人。
【256】再参看操作3302,如果用户没有被授权替换人造人,则产生一条错误消息(操作3318),此后处理过程终止。
【257】框架提供的仿真不是打算百分之百确定地预测人类行为,但意在提供做出判定或改变的可能性。来自仿真的结果提供了指导和预测,这在不是由框架进行仿真的情况下是不可能的。
【258】在不同的有利实施例中,源代码600可以使用专门设计的语言实现,以在图6的定义602、动作604和图形用户界面语言606中提供不同的特性。在其它的有利实施例中,图6中的源代码600还包括来自其它已有语言或编程方法学的功能和特性。
【259】在不同的有利实施例中,可以使用人工智能系统实现部分源代码600,例如图6中的定义602和/或动作604。在一些有利的实施例中,神经网络形式的人工智能(或其它形式的人工智能),可以用来仿真各种对象。例如,可以使用神经网络仿真有生命的或活的对象,例如人或动物。
【260】例如,人工智能可以是传统的人工智能,其中使用特征为形式主义和统计分析的机器学习。另外,例如人工智能的形式可以是计算智能的形式。计算智能涉及迭代发展或学习。这种类型的人工智能可以根据经验数据进行学习。计算智能的示例包括,例如但不限制为神经网络、模糊逻辑和遗传算法。可以使用这些编程技术为图6中源代码600补充或提供额外的特性。在其它有利的实施例中,除了或结合各种编程技术,可使用已有编程语言实现图6中的源代码600。
【261】在一个有利的实施例中,可使用诸如神经网络的编程技术实现图6中源代码600的一部分。例如,可使用神经网络实现图6中定义602的部分或全部。神经网络是基于生物神经网络的数学计算模型。神经网络提供非线性统计数据模型池,并可用来对输入和输出之间的复杂关系进行建模。可以使用神经网络为图6中定义602内的各种对象提供学习功能。
【262】在一个示例中,使用神经网络技术为各种对象提供学习特性,对象例如为人、动物或图6中源代码600的定义602中适合的其它对象。在这种类型的示例中,NN表示神经网络类型的变量。声明的示例是“NN n;”。在本示例中,这种类型的语句声明一个神经网络变量。子女n.input、n.output、和n.hidder也被创建。这些其它的变量表示神经网络中的输入、输出和隐藏层。这些层允许用户向不同的层添加神经元。利用这些不同的层,输入神经元可以作为子女被添加到输入神经网络层。
【263】参看图34,语句3400和3402是输入神经元的示例。语句3400中语句部分3404声明了“left operand(左操作数)”作为神经网络n的输入神经元。这个输入成员也被用于读取输入神经元的总数量。每次增加一个新成员,成员“input(输入)”的值就加一。结果,输入值就是输入神经元的总数目。这些语句是HBDL伪代码的示例,其可以用C语言或其它语言实现,其它语言例如为C+和/或Objective-C。
【264】在这些示例中,输入神经元变量的取值范围为0到1。每个输入神经元变量有一个最小范围和最大范围。这些范围允许用户输入在范围内的任意值。依赖特定的实现,这些值在使用前可以被标准化。
【265】参看图35,语句3500和3502是为左操作数输入神经元定义的输入范围的示例。在这个示例中,语句3500定义最小值为-10,语句3502定义最大值为10。
【266】现在参看图36,该图描述根据有利的实施例的输入行为的语句图示。语句3600允许输入神经元在被使用前被修改。也就是说,输入神经元有附属的或与该神经元相关联的代码,以允许该神经元操作用户输入。例如,用户输入可长可短。在这个示例中,神经元输入行为解释短和长的值在0到1之间。语句3600是用于将这种类型的行为依附到输入神经元的代码示例。
【267】接下来参看图37,该图描述根据有利的实施例的输出声明。语句3700是用于为输出神经网络层添加子女的语句示例。
【268】现在参看图38,该图描述根据有利的实施例的设置神经网络中输出范围的语句。在这个示例中,语句3800和3802是可为输出神经元设置的范围的示例。语句3800和3802分别设置最小和最大范围。
【269】在这个特定的示例中,该输出神经元的最小值是-50,而最大值是50。另外,用户可以将隐含的标准化输出转换为在指定范围内的值。例如,值为1的输出可被转换为50,而值为0.5的输出可被转换为0。另外,输出神经元也可以与操作输出的代码相关联。
【270】现在转向图39,该图描述根据有利的实施例的修改输出行为的语句。语句3900是与输出神经元相关联的代码的示例。在这个示例中,用户输出可低可高。根据这个特定示例,神经元的输出行为可以解释在0到1之间的值为低和高。
【271】现在转向图40,该图描述根据有利的实施例的用于隐藏层的语句。语句4000和4002是用于声明任意神经网络的隐藏层的语句示例。在这些示例中,隐藏层的顺序遵循隐藏层声明的顺序。一个隐藏层变量的值指定赋予特定隐藏层的神经元的数目。在这些示例中,语句4000和4002声明了两个隐藏层。由语句4000定义的第一层包括5个神经元,在语句4002中声明的第二层定义了三个神经元。
【272】现在参看图41,代码4100说明用于指定神经样本值的神经网络成员样本。可以指定不同的样本。在语句中每个输入和输出神经元包括“sample[int]”。当建成一个神经网络时,用户可训练和使用这个神经网络。
【273】现在参看图42,该图描述根据有利的实施例的训练神经网络的示例语句。语句4200、4202和4204是用于执行神经网络训练的语句示例。语句4200表示将训练神经网络500次。语句4202表示训练神经网络300次,语句4204表示训练神经网络200次。在这些示例中,训练是累积的,同时训练结果被保存。对特定的对象,这些不同的训练结果可被存储在图6的定义602或源代码600中。
【274】现在转向图43,该图描述根据有利的实施例的神经网络中的计算功能。在这个示例中,语句4300和语句4302提供了用于使输入神经元执行函数并返回结果的语句示例。在这些示例中,语句4304是语句4300和4302的另一种表示形式。
【275】现在参看图44,该图描述根据有利的实施例的神经网络的示例。在这个示例中,代码4400包括神经网络的定义,以及训练和使用神经网络的语句。语句块4402是输入声明。语句块4404和4406定义输入范围。语句4408和4410是与神经元相关联的代码。语句块4412是输出范围,而语句4414是输出的行为。
【276】在语句块4416中定义了隐藏层,而语句4418中定义了功能。语句块4420是样本,语句4422是训练语句的示例。语句块4424显示了用于操作神经网络的语句示例。语句块4424中的语句4426显示结果。
【277】现在转向图45,该图描述了根据有利的实施例的来自神经网络的操作结果。在这个示例中,显示4500是响应于图44中代码4400的显示语句4426生成的显示示例。
【278】除了神经网络,可以使用动态列表管理图6中定义602内的对象的各种属性和特征。动态列表可以用来定义特征,例如图8中对象800中的特征804和图9中对象900的特征904。
【279】例如,动态列表可以用于提供组件标识、容量、特征或其它适合的关于对象的参数。例如,如果对象是车,则可使用动态列表标识组件,例如车轮、引擎、车身、油漆、传动装置、窗户或其它组件。当向车辆添加组件或从车辆中删除组件,可以修改该列表来标识这些改变。
【280】在不同的有利实施例中,任何变量都可用在列表中。使用动态列表,定义不再受限于必须根据预期的组件或参数预先定义列表的大小。相反,列表大小可随着向特定定义中添加或从特定定义中删除参数或组件而变化。
【281】参看图46,该图描述根据有利的实施例的一个列表示例。在这个示例中,代码4600在语句4600中定义了一个列表1。语句4602、4604和4606标识列表1中具有值的三个变量。在这个示例中,列表1起数组的作用。代码4600中语句4608是一个大小函数的示例,该函数返回标识数组大小的值。在这个示例中,语句4608返回值3。
【282】语句4610和4612是用于搜索代码4600中列表的语句示例。语句4610返回的值为2,该值等同于“真(true)”,而语句4612返回的值为0,该值等同于“假(false)”。这些在语句4610和4612中的搜索函数可以用来确定列表是否包含某个特定的值。如果列表中存在该特定的值,则返回该值在列表中的索引。否则,返回值0。
【283】现在转向图47,该图描述根据有利的实施例的从列表中删除变量。在这个示例中,代码4700包括在语句块4702中定义的一个列表。语句4704是一个删除函数,可以用来从代码4700中的列表删除项目。语句4704搜索列表以确定特定的项目是否在列表中。如果找到了该项目,则从列表中删除该项目。语句4704返回标识被删除项目的索引。否则,语句4704返回0。在这个示例中,值25不在代码4700中的列表中,会返回0值,并且不发生任何动作。在这个示例中,通过识别值删除项目。
【284】现在参看图48,该图描述根据有利的实施例的删除项目的代码。在这个示例中,代码4800在语句块4802中定义了一个列表。语句4804和4806是用于根据索引值删除列表中项目的语句。如果语句识别到索引值小于列表的大小,则在列表中定位并删除该项目。函数返回被删除项目的值。否则,返回0,表示在列表中未找到该项目。语句4804返回0,因为如语句4802中定义的,该列表中只有三个项目。语句4806的结果是返回20,同时在语句4808中定义的项目被删除。
【285】现在参看图49,该图描述根据有利的实施例的操作列表中项目的代码。在这个示例中,使用代码4900操作列表中的项目。在这些示例中,代码4900包含使用列表堆栈的进栈和出栈函数。语句4902标识要对其执行操作的列表。在这个示例中,语句块4904块标识对列表进行的三个进栈操作。语句4906说明向列表作一次出栈操作。语句4906返回从列表的前端出栈的项目的值。
【286】这些类型的函数与那些在计算机系统中用于操作栈的函数类似。进栈用于向列表的顶端放入或移入一个特定的项目。出栈用于返回在列表顶端的项目的值。如果出栈语句包括值或参数,该语句就根据参数的值从堆栈中出栈或返回来自栈的值。在这些示例中,在语句4908中,出栈的项目是索引值为3的项目,该项目是列表中的第三个项目。
【287】现在转向图50,该图描述根据有利的实施例的将列表作为队列的使用。在这个示例中,代码5000说明用于将列表作为队列进行操作的入队和出队函数。如在语句5002中显示的入队函数向列表的底部添加一个变元。
【288】如语句5004中显示的出队函数移除列表头部的项目,并返回该项目的值。在这个示例中,语句5002向列表1添加一个项目,语句5006向队列顶端添加另一个项目。语句5002中的项目现在位于队列中第二的位置。语句5008向队列中添加另一个项目,使队列中的其他项目在队列的位置往后挪。
【289】现在转向图51,该图描述根据有利的实施例的读取列表中的项目。在这个示例中,代码5100说明从列表的顶端和底端读取项目,如语句块5102中定义的。语句5104读取位于列表顶端的项目,语句5106读取包含在列表底端的项目。
【290】现在转向图52,该图描述根据有利的实施例的列表中的排序属性。代码5200包括用于标识列表的排序状态的语句。语句5202标识是否为列表设置了排序状态。如果语句5202被设置为“真”,则根据项目的值将项目插入到列表中。语句5204标识排序顺序。
【291】如果语句5204被设置为“真”,则将该列表从最小到最大以升序排列。在这个示例中,语句5204被设置为“假”。结果,如同在语句5206块中显示的一样,项目按降序被添加到列表中。另外,可使用其它的语句以各种顺序对列表进行排序。
【292】可以用于实现图6中源代码600的另一个编程技术的示例是模糊逻辑。用于实现模糊逻辑的一个语言示例是Prolog。Prolog是一种逻辑编程语言,可以用于模糊逻辑编程和人工智能编程。
【293】在描述的示例中,模糊逻辑系统可基于逻辑语句,这些逻辑语句中的操作数是取自若干集合的项目。例如,在一个示例中,集合可以是燃料、距离和速度。在这些示例中燃料包括三个项目:燃料不足、燃料中等和燃料充足。距离包括距离近和距离远。速度包括低速、中速和高速。可以使用这些集合应用规则,例如如果燃料不足或距离近,则速度就为低速。另一个规则是如果燃料中等并且距离远,则速度为中速。第三个规则是如果燃料充足并且距离远,则速度为高速。通过模糊逻辑,可以为集合的不同成员设置范围。这些范围包括最小范围和最大范围。
【294】现在转向图53,描述了根据有利的实施例的用燃料距离和速度实现的模糊逻辑示例。在这个示例中,代码5300在语句块5302中定义这些集合。燃料是整数型变量,而距离和速度是浮点型变量。语句块5304标识燃料的最小和最大范围,其范围为0到100之间。
【295】在语句块5306中定义燃料的开始项目和结束项目。这个语句块标识模糊集合的左、右边缘。语句块5308、5310和5312标识燃料的项目。语句块5308标识斜方形项目,语句块5310标识三角形项目,语句块5312标识钟形曲线项目。
【296】在语句块5314中可以发现类似的对距离的定义。在这个示例中,在语句块5316中定义模糊逻辑的规则。语句块5318标识燃料和距离的初始值。语句5320用来计算速度。
【297】可以用于仿真图6中源代码600中各种对象的另一种编程技术涉及进化计算(evolutionary computation)。进化计算是一种人工智能。一个具体的方法或方法学是遗传算法。这个算法是一种搜索技术,用来识别解决方法。这种技术类型被认为是全局搜索启发式技术。利用遗传算法,可以声明基因和染色体。使用这种技术指定适应度函数、选择过程和重组函数。
【298】现在转向图54,该图描述根据有利的实施例的使用遗传算法解方程式。在这个示例中,使用代码5400解方程式2X+3Y=20。
【299】在这个示例中,在语句块5402中初始化两个基因。这两个基因对应于变量X和Y。在语句块5404中为基因增加染色体。在语句5406中标识适应度函数的代码。使用语句5408指定选择函数的代码。在语句5410中指定重组函数的代码。
【300】可以使用针对特定的语句的任意可用函数实现这些函数的代码。使用这些选择过程选择由代码指定的最合适或最适合的染色体。例如,可使用轮盘选择过程。关于语句5410中的重组函数,这条语句可以用来标识创建新一代染色体的代码。
【301】在一个示例中,可使用二进制变量交换方法。语句5412指定处理过程的误差容限,语句5414调用代码5400中的进化函数。在这些示例中,只要最适合染色体的误差容限小于在语句5412中指定的误差,语句5414中标识的进化过程就停止。通过执行代码5400中定义的处理过程,基因X返回最适合染色体的X的值,而基因Y返回最适合染色体的Y的值。
【302】现在转向图55A和55B,这些图描述了根据有利的实施例的源代码中对象的代码。在这个示例中,代码5500是对象的定义示例,该对象的形式为森林。语句块5502标识森林中树的颜色。代码5500中的语句块5504标识森林的栅栏。语句块5506定义存在于森林的栅栏中的树。语句块5508标识森林中的一行树。使用语句块5510生成一片树,这片树包含在语句块5508中定义的一行或更多行树。语句块5512是用来呈现树的代码示例。在这些示例中,行5514和5516是转换语句,用来提供森林中的随机性。除了这些语句,还可以使用诸如旋转和/或缩放语句,或者用旋转和/或缩放语句替换这些语句。
【303】在这些示例中,代码5500用C语言编写。当然,可使用任意语言产生森林的定义。另外,呈现森林是一个对象的示例,该对象可在图6中源代码600中的定义602中找到。当然,根据特定的实现,可以使用任何语言或为任何对象产生代码。
【304】在各种描述的实施例中,流程图和方框图说明体系结构、功能以及装置、方法和计算机程序产品的一些可能实现的操作。在这方面,流程图或方框图中的每一块代表计算机可用或可读程序代码的一个模块、程序段或一部分,其包含一条或更多条执行指令,用于实现指定的函数。在一些替代实现中,块中函数出现的顺序可能与图中给出的顺序不一致。例如,在一些情况中,根据涉及的功能,连续显示的两个块可以几乎同时运行,或这些块有时会以相反顺序执行。
【305】不同的有利实施例的形式可以是完全硬件实施例、完全软件的实施例、或包含硬件和软件元件的实施例的形式。一些实施例用软件实现,软件包括但不限于固件、常驻软件和微代码。
【306】另外,不同实施例的形式可以是计算机程序产品,该产品可从计算机可用或计算机可读媒介存取,这些媒介提供被计算机或任意执行指令的设备或系统使用的程序代码或与计算机或任意执行指令的设备或系统相关的程序代码。为了本公开内容,计算机可用或计算机可读取媒介通常可以是任何真实的装置,所述装置可包含、存储、传递、传播或传输程序,该程序被执行指令的系统、装置或设备使用或与执行指令的系统、装置或设备相关。
【307】例如,计算机可用或计算机可读媒介可以是,但不限于,电子媒介、磁媒介、光媒介、电磁媒介、红外线媒介或半导体系统媒介或传播媒介。计算机可读媒介的非限制性示例包括半导体或固态存储器、磁带、移动式计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘可包括光盘只读存储器(CD-ROM)、光盘读/写(CD-R/W)和DVD。在这些示例中,实体或真实的计算机可读媒介被称作可记录的计算机存储媒介。
【308】另外,计算机可用或计算机可读媒介包含或存储计算机可读或计算机可用程序代码,这样当在计算机上运行计算机可读或计算机可用程序代码时,会使计算机通过通信链路传输另一计算机可读或计算机可用代码。这个通信链路例如可以使用,但不限制为,实体媒介或无线媒介。
【309】适合存储和/或执行计算机可读或计算机可用程序代码的数据处理系统将包括一个或多于一个处理器,这些处理器通过通信结构,例如系统总线,直接或间接地与存储器元件耦合。存储器元件包括在实际运行程序代码过程中运用的本地存储器、海量存储器和高速缓冲存储器,高速缓冲存储器提供对至少一部分计算机可读或计算机可用程序代码的临时存储,从而减少在代码执行过程中从海量存储器中取回代码的次数。
【310】输入/输出或I/O设备可以直接或通过中间的I/O控制器与系统耦合。例如这些设备可以包括,但不限于,键盘、触摸显示屏和定点设备。不同通信适配器也可以与系统耦合,以使数据处理系统能够通过中间的私有或公共网络与其它数据处理系统或远程打印机或存储设备耦合。不作限制的示例有调制解调器和网络适配器,它们仅是当前可用通信适配器中的一些。
【311】出于举例说明和描述的目的给出本公开内容的描述,并且不意在穷举和限制本公开内容为所公开的形式。很多修改和改变对于本技术领域的技术人员是明显的。另外,与其它有利的实施例相比,不同的有利实施例可以提供不同的优势。为了最好地解释本公开内容的原则、实际应用,并且使本技术领域的技术人员能够理解本公开内容的具有各种修改的各种实施例,选择并描述了这些选择的实施例,各种修改适合设想的特定应用。
Claims (14)
1.一种装置,其包括:
源代码(402、510、600),该源代码位于网络数据处理系统(100)中的存储系统上,其中所述源代码(402、510、600)用一语言编写,用于预测人类行为;
在所述网络数据处理系统(100)中执行的解释器(404、518、1700),其中所述解释器(404、518、1700)使用所述源代码(402、510、600)执行仿真,以产生经解释的源代码;
在所述源代码(402、510、600)中定义的人造人,其中该人造人在仿真过程中产生用户输入,其中所述用户输入即为用于修改所述源代码(402、510、600)的经解释的源代码;
图形用户界面处理器(406、522、524、528、2600),该图形用户界面处理器在所述网络数据处理系统(100)中执行,其中所述图形用户界面处理器(406、522、524、528、2600)从所述解释器(404、518、1700)接收经解释的源代码,以形成接收到的经解释的源代码,并用接收到的经解释的源代码产生依赖于设备的输出;并且
其中所述解释器(404、518、1700)通过与所述图形用户界面处理器(406、522、524、528、2600)通信的设备从真人接收真人用户输入,以替换由所述人造人产生的用户输入;响应于接收所述真人用户输入,所述解释器(404、518、1700)停止使用所述源代码(402、510、600)中定义的所述人造人产生的输入,并且所述解释器(404、518、1700)包括带有经解释的源代码的所述真人用户输入,所述经解释的源代码用于修改所述源代码(402、510、600)。
2.根据权利要求1所述的装置,其中所述人造人是人工智能程序。
3.根据权利要求1所述的装置,其中在不中断所述仿真的情况下,用来自所述真人的真实输入替换来自所述人造人的输入。
4.根据权利要求1所述的装置,其中由所述人造人产生的所述用户输入与独特标识符相关联,并且其中通过将所述真人用户输入与所述人造人的独特标识符相关联使所述真人用户输入替换所述用户输入。
5.一种从人类接收输入的计算机实现的方法,所述计算机实现的方法包括:
从位于网络数据处理系统(100)的存储系统中的源代码(402、510、600)获取数据,以形成获取到的数据,其中所述获取到的数据包括人造人;
使用在获取网络数据处理系统(100)上执行的解释器(404、518、1700)解释所述获取到的数据,以执行对人类行为的仿真,从而产生结果,该结果包括在解释所述获取到数据的过程中由所述人造人产生的输入;
使用该结果修改所述源代码(402、510、600),以形成修改后的源代码;
对使用真人用户输入的请求进行响应,在执行仿真时停止使用所述人造人;和
对接收所述真人用户输入进行响应,向所述源代码(402、510、600)写入结果以形成修改后的源代码,其中所述真人用户输入替换来自所述人造人的输入,所述结果包括所述真人用户输入,其中修改后的源代码提供新数据,该新数据在执行预测人类行为的仿真时用于后续对所述获取到的数据进行解释。
6.根据权利要求5所述的计算机实现的方法,其中获取、解释、修改、停止和写入步骤在所述仿真过程中被重复执行,从而预测人类行为。
7.根据权利要求5所述的计算机实现的方法,还包括:
从与图形用户界面处理器(406、522、524、528、2600)通信的设备接收所述真人用户输入,所述图形用户界面处理器(406、522、524、528、2600)在所述网络数据处理系统(100)上执行;和
将来自图形用户界面处理器(406、522、524、528、2600)的所述真人用户输入发送到所述解释器(404、518、1700)。
8.根据权利要求5所述的计算机实现的方法,其中所述人造人产生的输入与独特标识符相关联,所述独特标识符标识该输入是由该人造人产生的;其中当所述真人用户输入与所述人造人的所述独特标识符关联时,所述真人用户输入替换所述人造人产生的输入。
9.根据权利要求5所述的计算机实现的方法,还包括:
对从设备接收具有所述独特标识符的用户输入进行响应,确定该用户输入是否来自允许产生所述真人用户输入的用户;和
对允许产生所述真人用户输入的所述用户进行响应,使用该用户输入作为所述真人用户输入。
10根据权利要求5所述的计算机实现的方法,还包括:
在设备端接收来自用户发送所述真人用户输入的请求;和
对被授权发送所述真人用户输入的用户进行响应,向设备发送所述独特标识符,其中包含所述独特标识符的任何用户输入被标识为所述真人用户输入。
11.根据权利要求5所述的计算机实现的方法,其中在仿真中透明地发生用所述真人用户输入替换所述人造人产生的输入。
12.根据权利要求5所述的计算机实现的方法,其中由所述解释器(404、518、1700)中的分配器执行写入步骤。
13.根据权利要求5所述的计算机实现的方法,其中所述解释器(404、518、1700)为所述真人用户输入添加所述独特标识符。
14.根据权利要求5所述的计算机实现的方法,其中在由产生所述真人用户输入的真人使用的设备中为所述真人用户输入添加所述独特标识符。
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US89247207P | 2007-03-01 | 2007-03-01 | |
| US60/892,472 | 2007-03-01 | ||
| US11/958,724 | 2007-12-18 | ||
| US11/958,724 US20080301631A1 (en) | 2007-03-01 | 2007-12-18 | Human transparency paradigm |
| PCT/US2008/055568 WO2008106661A2 (en) | 2007-03-01 | 2008-02-29 | Human transparency paradigm |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN101647033A true CN101647033A (zh) | 2010-02-10 |
| CN101647033B CN101647033B (zh) | 2014-05-14 |
Family
ID=39651386
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN200880005915.4A Expired - Fee Related CN101647033B (zh) | 2007-03-01 | 2008-02-29 | 建模和仿真人类行为的计算机实现的方法和装置 |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US20080301631A1 (zh) |
| EP (1) | EP2115667A2 (zh) |
| JP (1) | JP2010520535A (zh) |
| KR (1) | KR20090126237A (zh) |
| CN (1) | CN101647033B (zh) |
| SG (1) | SG179426A1 (zh) |
| WO (1) | WO2008106661A2 (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114020257A (zh) * | 2021-11-10 | 2022-02-08 | 北京字节跳动网络技术有限公司 | 一种编码辅助方法、装置、设备及存储介质 |
| US11676593B2 (en) | 2020-12-01 | 2023-06-13 | International Business Machines Corporation | Training an artificial intelligence of a voice response system based on non_verbal feedback |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7844424B2 (en) * | 2007-03-01 | 2010-11-30 | The Boeing Company | Human behavioral modeling and simulation framework |
| KR101160409B1 (ko) | 2010-05-28 | 2012-06-26 | 숭실대학교산학협력단 | 인형극 공연장치 및 방법 |
| CN108280519B (zh) * | 2018-01-30 | 2020-07-31 | 湖南工学院 | 一种大数据遗传算法数据建模处理装置 |
Family Cites Families (46)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02190904A (ja) * | 1989-01-20 | 1990-07-26 | Fujitsu Ltd | 推論制御方法 |
| US5293453A (en) * | 1990-06-07 | 1994-03-08 | Texas Instruments Incorporated | Error control codeword generating system and method based on a neural network |
| US5574828A (en) * | 1994-04-28 | 1996-11-12 | Tmrc | Expert system for generating guideline-based information tools |
| US5768480A (en) * | 1994-10-21 | 1998-06-16 | Lucent Technologies Inc. | Integrating rules into object-oriented programming systems |
| US6983227B1 (en) * | 1995-01-17 | 2006-01-03 | Intertech Ventures, Ltd. | Virtual models of complex systems |
| US5715371A (en) * | 1996-05-31 | 1998-02-03 | Lucent Technologies Inc. | Personal computer-based intelligent networks |
| JPH1115812A (ja) * | 1997-06-23 | 1999-01-22 | Hitachi Ltd | システム検討シミュレータの制御方法 |
| US6377263B1 (en) * | 1997-07-07 | 2002-04-23 | Aesthetic Solutions | Intelligent software components for virtual worlds |
| US6560592B1 (en) * | 1998-03-19 | 2003-05-06 | Micro Data Base Systems, Inc. | Multi-model computer database storage system with integrated rule engine |
| US6505176B2 (en) * | 1998-06-12 | 2003-01-07 | First American Credit Management Solutions, Inc. | Workflow management system for an automated credit application system |
| US6192512B1 (en) * | 1998-09-24 | 2001-02-20 | International Business Machines Corporation | Interpreter with virtualized interface |
| US20040198386A1 (en) * | 2002-01-16 | 2004-10-07 | Dupray Dennis J. | Applications for a wireless location gateway |
| US6125358A (en) * | 1998-12-22 | 2000-09-26 | Ac Properties B.V. | System, method and article of manufacture for a simulation system for goal based education of a plurality of students |
| US6745170B2 (en) * | 1999-02-08 | 2004-06-01 | Indeliq, Inc. | Goal based educational system with support for dynamic characteristic tuning |
| US6499023B1 (en) * | 1999-02-19 | 2002-12-24 | Lucent Technologies Inc. | Data item evaluation based on the combination of multiple factors |
| US6473794B1 (en) * | 1999-05-27 | 2002-10-29 | Accenture Llp | System for establishing plan to test components of web based framework by displaying pictorial representation and conveying indicia coded components of existing network framework |
| US7725307B2 (en) * | 1999-11-12 | 2010-05-25 | Phoenix Solutions, Inc. | Query engine for processing voice based queries including semantic decoding |
| US7050977B1 (en) * | 1999-11-12 | 2006-05-23 | Phoenix Solutions, Inc. | Speech-enabled server for internet website and method |
| US20010039203A1 (en) * | 2000-02-23 | 2001-11-08 | Brown Geoffrey Parker | Behavior modeling in a gaming environment with contextual accuracy |
| AU2001269354A1 (en) * | 2000-05-12 | 2001-11-20 | Xtreamlok Pty. Ltd. | Information security method and system |
| US6854016B1 (en) * | 2000-06-19 | 2005-02-08 | International Business Machines Corporation | System and method for a web based trust model governing delivery of services and programs |
| US7389208B1 (en) * | 2000-06-30 | 2008-06-17 | Accord Solutions, Inc. | System and method for dynamic knowledge construction |
| US6931385B1 (en) * | 2000-09-28 | 2005-08-16 | Sumisho Computer Systems Corporation | Interactive examples for online coding tutorials |
| US7272640B1 (en) * | 2000-12-08 | 2007-09-18 | Sun Microsystems, Inc. | Dynamic network session redirector |
| JP3322264B2 (ja) * | 2001-04-06 | 2002-09-09 | 株式会社日立製作所 | アイコン表示方法およびシステム |
| US20030084172A1 (en) * | 2001-10-29 | 2003-05-01 | Sun Microsystem, Inc., A Delaware Corporation | Identification and privacy in the World Wide Web |
| US6915513B2 (en) * | 2001-11-29 | 2005-07-05 | Hewlett-Packard Development Company, L.P. | System and method for dynamically replacing code |
| US7017151B1 (en) * | 2001-12-26 | 2006-03-21 | Bellsouth Intellectual Property Corp. | System and method for real-time applications modification |
| US7184991B1 (en) * | 2002-07-12 | 2007-02-27 | Chroma Energy, Inc. | Pattern recognition applied to oil exploration and production |
| KR100497384B1 (ko) * | 2003-01-28 | 2005-06-23 | 삼성전자주식회사 | 가상 머신을 이용한 분산 처리 시스템 및 분산 처리방법 |
| US7263474B2 (en) * | 2003-01-29 | 2007-08-28 | Dancing Rock Trust | Cultural simulation model for modeling of agent behavioral expression and simulation data visualization methods |
| US8495002B2 (en) * | 2003-05-06 | 2013-07-23 | International Business Machines Corporation | Software tool for training and testing a knowledge base |
| US7278109B2 (en) * | 2003-06-03 | 2007-10-02 | International Business Machines Corporation | System and method for dynamic uploading of user interface generation logic |
| US7162502B2 (en) * | 2004-03-09 | 2007-01-09 | Microsoft Corporation | Systems and methods that synchronize data with representations of the data |
| US7849440B1 (en) * | 2004-04-16 | 2010-12-07 | The Mathworks, Inc. | Real-time code preview for a model based development process |
| US7870540B2 (en) * | 2004-07-09 | 2011-01-11 | Microsoft Corporation | Dynamic object validation |
| US7565640B2 (en) * | 2004-10-01 | 2009-07-21 | Microsoft Corporation | Framework for seamlessly authoring and editing workflows at design and runtime |
| US8512143B2 (en) * | 2005-07-18 | 2013-08-20 | The Invention Science Fund I, Llc | Third party control over virtual world characters |
| CN100345109C (zh) * | 2005-03-10 | 2007-10-24 | 上海大学 | 人机界面自动生成系统 |
| JP4727291B2 (ja) * | 2005-05-12 | 2011-07-20 | ディエスピーテクノロジ株式会社 | ブロック線図型シミュレーションモデル作成装置、リアルタイムシミュレーション実行装置、及び、ライブラリ |
| US20070130098A1 (en) * | 2005-12-07 | 2007-06-07 | Hanneman Jeffrey E | System and method for predictive analysis for an optimal course of action for desired effects |
| US7415448B2 (en) * | 2006-03-20 | 2008-08-19 | Microsoft Corporation | Adaptive engine for processing geographic data |
| CN101187965B (zh) * | 2006-11-16 | 2010-12-15 | 思科技术公司 | 用于过滤对数据对象的访问的方法和装置 |
| US7844424B2 (en) * | 2007-03-01 | 2010-11-30 | The Boeing Company | Human behavioral modeling and simulation framework |
| US7983996B2 (en) * | 2007-03-01 | 2011-07-19 | The Boeing Company | Method and apparatus for human behavior modeling in adaptive training |
| US7979835B1 (en) * | 2008-03-03 | 2011-07-12 | Xilinx, Inc. | Method of estimating resource requirements for a circuit design |
-
2007
- 2007-12-18 US US11/958,724 patent/US20080301631A1/en not_active Abandoned
-
2008
- 2008-02-29 JP JP2009551879A patent/JP2010520535A/ja active Pending
- 2008-02-29 SG SG2012014809A patent/SG179426A1/en unknown
- 2008-02-29 EP EP08731179A patent/EP2115667A2/en not_active Ceased
- 2008-02-29 CN CN200880005915.4A patent/CN101647033B/zh not_active Expired - Fee Related
- 2008-02-29 KR KR1020097015465A patent/KR20090126237A/ko not_active Ceased
- 2008-02-29 WO PCT/US2008/055568 patent/WO2008106661A2/en active Application Filing
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11676593B2 (en) | 2020-12-01 | 2023-06-13 | International Business Machines Corporation | Training an artificial intelligence of a voice response system based on non_verbal feedback |
| CN114020257A (zh) * | 2021-11-10 | 2022-02-08 | 北京字节跳动网络技术有限公司 | 一种编码辅助方法、装置、设备及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2008106661A3 (en) | 2009-06-18 |
| JP2010520535A (ja) | 2010-06-10 |
| CN101647033B (zh) | 2014-05-14 |
| KR20090126237A (ko) | 2009-12-08 |
| EP2115667A2 (en) | 2009-11-11 |
| US20080301631A1 (en) | 2008-12-04 |
| SG179426A1 (en) | 2012-04-27 |
| WO2008106661A2 (en) | 2008-09-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7983996B2 (en) | Method and apparatus for human behavior modeling in adaptive training | |
| US7844424B2 (en) | Human behavioral modeling and simulation framework | |
| Murala et al. | Artificial intelligence in the development of metaverse | |
| Feng et al. | How far are we from agi: Are llms all we need? | |
| CN101647033A (zh) | 对人透明的范例 | |
| Loiko | Philosophy of digital technology | |
| de Rosa et al. | Design methodology of analytical games for knowledge acquisition | |
| CN110489623A (zh) | 一种基于用户信息交互的智能助理系统及智能助理机器人 | |
| Batty et al. | The promise of expert systems for urban planning | |
| Brindha et al. | Introduction to Multimodal Generative AI | |
| Masadome et al. | Reward design using large language models for natural language explanation of reinforcement learning agent actions | |
| Cazenille et al. | Signalling and social learning in swarms of robots | |
| Rangaswamy | Marketing decision models: From linear programs to knowledge-based systems | |
| Hemment et al. | Experiential AI: Enhancing explainability in artificial intelligence through artistic practice | |
| Liu et al. | Deep reinforcement learning algorithm based on multi-agent parallelism and its application in game environment | |
| Almeida | Artificial Intelligence Fundamentals for Business Leaders: Up to Date With Generative AI | |
| Dinerstein et al. | Demonstration‐based behavior programming for embodied virtual agents | |
| Hradec et al. | FABLES: Framework for Autonomous Behaviour-rich Language-driven Emotion-enabled Synthetic populations. | |
| Liu et al. | A Modeling Study of Non-Heritage Cultural Communication Behavior under the Framework of Situational Cognition Based on Time Series Data Mining | |
| Pegolo | Artificial intelligence for museums. A comparison within Italian chatbot applications | |
| Schruben | Model is a verb | |
| Uddin et al. | Federated Learning: Unlocking the Power of Collaborative Intelligence | |
| Chaudhuri et al. | New Kind of Machine Learning-Cellular Automata Model | |
| Batlle Casellas | Autonomous exploration of hierarchical scene graphs | |
| WO2023219574A1 (en) | Building solutions using natural language processing |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant | ||
| CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140514 |
|
| CF01 | Termination of patent right due to non-payment of annual fee |