首页> 中国专利> 用于数学公式分解和自动代码生成的图公式建模

用于数学公式分解和自动代码生成的图公式建模

摘要

一种执行图公式建模的方法。该方法包括经由用户界面从用户接收数学公式的输入。该方法还包括使用处理器对数学公式的输入执行处理,以将数学公式分解成多个标记,以生成与数学公式相对应的公式图。该方法还包括基于公式图来自动地生成用户指定的计算语言的计算机代码。该方法还包括使自动地生成的计算机代码经由用户界面呈现给用户,该自动地生成的计算机代码与在计算环境中定义的输入的数学公式相对应。

著录项

  • 公开/公告号CN112926176A

    专利类型发明专利

  • 公开/公告日2021-06-08

    原文格式PDF

  • 申请/专利权人 富士通株式会社;

    申请/专利号CN202011210129.7

  • 发明设计人 迈赫迪·巴赫拉米;陈伟鹏;

    申请日2020-11-03

  • 分类号G06F30/20(20200101);G06F17/11(20060101);G06F9/451(20180101);G06F111/10(20200101);

  • 代理机构11227 北京集佳知识产权代理有限公司;

  • 代理人杜诚;马骁

  • 地址 日本神奈川县

  • 入库时间 2023-06-19 11:19:16

说明书

技术领域

本公开内容中论述的实施方式涉及用于在计算装置中执行用于数学公式(mathematical equation)分解和自动代码生成的图公式建模(graph equationmodeling)的方法和系统。

背景技术

数千年以来,已经使用数学公式作为用于定义问题陈述的表示法(notation)。然后在各种不同的环境中使用这些问题陈述,以帮助找到问题陈述的解。尽管可以使用常规的数学求解器来找到这些解,但是计算技术的最新进展还产生了利用强大的处理能力的计算装置,包括量子退火器、数字退火器等。然而,用户可能遇到的一个困难是,用户需要手动将数学公式转换成编程语言以便使用这些计算机求解器。

该要求的一个困难是并非所有用户都理解或能够编写编程语言的代码,因此,他们可能无法以解决他们的问题所需的格式来正确地定义他们的问题。此外,目前还没有下述计算机接口解:所述计算机接口解针对从各种不同来源收集的各种问题自动地生成编程代码。而是,客户需要基于他们自己对各种计算机语言的知识(有时是有限的)或者使用他们可以从互联网找到的有限的资源和定义来定义每个问题。尽管能够使用强大的求解器,但是这仍然可以导致错误和对当前正在解决的问题的数量的限制。此外,将手动问题转换成计算机代码可以是劳动密集型过程,需要来自熟练用户的大量用户时间。

本公开内容中要求保护的主题不限于解决任何缺点或者仅在诸如上述环境的环境中工作的实施方式。而是,仅提供该背景来说明其中可以实践本公开内容中描述的一些实施方式的一个示例技术领域。

发明内容

根据实施方式的一方面,一种执行图公式建模的方法。该方法包括经由用户界面从用户接收数学公式的输入。该方法还包括使用处理器对数学公式的输入执行处理,以将数学公式分解成多个标记(token),以生成与数学公式相对应的公式图(equation graph)。该方法还包括基于公式图来自动地生成用户指定的计算语言的计算机代码。该方法还包括使自动生成的计算机代码经由用户界面呈现给用户,该自动生成的计算机代码与在计算环境中定义的输入的数学公式相对应。

实施方式的目的和优点将至少通过权利要求书中具体指出的要素、特征和组合来实现和完成。

前面的总体描述和下面的详细描述两者均作为示例给出,并且是说明性的,并且不限制所要求保护的本发明。

附图说明

将通过使用附图、利用附加的特征和细节来描述和说明示例实施方式,其中:

图1是表示根据本发明的一些实施方式的与执行图公式建模有关的示例环境的图;

图2是示出根据本发明的一些实施方式的执行图公式建模的方法的框图;

图3是根据本发明的一些实施方式的可以呈现给用户的用户界面的示例;

图4A和图4B是根据本发明的一些实施方式的可以呈现给用户的包括对输入式的解的用户界面的示例;

图5是示出根据本发明的一些实施方式的执行根据一些实施方式的数学公式处理的方法的框图;

图6是示出根据本发明的一些实施方式的执行根据一些实施方式的数学公式处理的方法的框图;

图7是可以与本文中描述的实施方式相关联地执行的标记组合处理的示例;

图8是可以与本文中描述的实施方式相关联地识别的一系列分解的标记的示例;

图9是可以与本文中描述的实施方式相关联地链接在一起作为标记链的一系列分解的标记的示例;

图10是示出根据一个示例的代码生成器的各种模块和部件的框图;

图11是可以通过对输入的数学公式执行处理而获得的提取的参数和变量的示例;

图12是可以由用户输入以用于更新公式图的模型的所需输入的示例;

图13A和图13B是可以通过对输入的数学公式执行处理而获得的提取的参数和变量的示例;

图14是可以基于输入的数学公式生成的模型;

图15示出了可以基于输入的数学公式生成的公式图的示例;

图16示出了根据本发明的一些实施方式的表示矢量的过程的示例;

图17是示出本文中描述的一些实施方式的各个步骤的流程图,其中,基于由用户输入的数学公式来生成自动生成的代码;

图18示出了根据本发明的一些实施方式的将附加输入添加至生成的代码的能力;以及

图19是根据一些实施方式的能够执行用于执行图公式建模的各种方法和处理的示例计算系统。

具体实施方式

本公开内容中论述的实施方式涉及用于在计算装置中执行用于数学公式分解和自动代码生成的图公式建模的方法和系统。更具体地,本文中描述的实施方式针对用于分解输入的数学公式的系统和方法。将式分解成图结构,然后可以将图结构用于数学建模,并且在某些情况下,然后可以由不同的计算机求解器使用图结构来找到给定输入式的解。可以理解,使用图建模,可以高效且有效地对式的各种特征进行建模。另外,本文中描述的系统提供了解释和描述各种不同数学公式的平台。

本文中提出的系统意在基于相对简化的用户输入(例如,文本、数学公式或其他数据)来提供对各种数学问题的解。使用该用户输入,本文中描述的系统和方法能够自动地产生与用户的输入定义相对应的源代码,然后该源代码能够由计算机求解器如数字退火器使用以找到解。因此,在本文中描述的至少一个实施方式中,提供了能够基于数学公式输入来自动地生成源代码的嵌入式硬件装置。在其他实施方式中,该自动地生成的源代码随后被计算装置用于找到输入的数学公式的解。

图1是示出可以执行本发明的各个方面的系统100的示例的框图。系统100可以包括例如用户装置110,用户装置110包括例如下面将更充分地描述的用户界面105,该用户界面可以被系统100的用户用来输入数学公式作为用户输入。用户装置110连接至网络150,网络150可以是能够将多个计算装置连接在一起以在装置之间进行通信的任何类型的网络,例如局域网(LAN)、广域网(WAN)、因特网等。

网络150可以被配置成通信地耦接用户装置110、公式处理器(equationprocessor)180和问题求解器170。在一些实施方式中,网络150可以是被配置成发送和接收装置之间的通信的任何网络或网络的配置。在一些实施方式中,网络150可以包括常规类型的网络、有线或无线网络,并且可以具有许多不同的配置。此外,网络150可以包括局域网(LAN)、广域网(WAN)(例如,因特网)或多个装置和/或实体可以在其上通信的其他互连的数据路径。在一些实施方式中,网络150可以包括对等网络。网络150还可以耦接至或者可以包括电信网络的一部分,电信网络用于以各种不同的通信协议发送数据。在一些实施方式中,网络150可以包括用于发送和接收通信和/或数据——包括经由短消息服务(SMS)、多媒体信息服务(MMS)、超文本传输协议(HTTP)、直接数据连接、无线应用协议(WAP)、电子邮件等——的

系统还包括公式处理器180,公式处理器180包括计算装置,该计算装置也连接至网络150并且被配置成发送和接收与连接至网络150的其他计算装置——包括用户装置110和问题求解器170——的通信。公式处理器180被配置成接收经由用户界面105由用户输入的数学公式,并且如下面所描述的,例如,对数学公式执行各种处理以便使数学公式更适于通过计算装置如问题求解器170求解。在该示例中,公式处理器180被示出为包括公式自动检测模块120、问题建模模块130和自动代码生成模块140,然而应当理解,公式处理器180可以包括附加部件,或者可以组合本文中描述的模块120、模块130和模块140并且由专门配置成执行本文中描述的各种处理的单个处理器执行本文中描述的模块120、模块130和模块140。此外,尽管公式处理器180在图1中被示出为与问题求解器170不同的部件,但是应当理解,它们可以被实现为单个计算装置。

问题求解器170可以是专门设计成具有处理能力和解决问题的一般能力的任何数量的计算装置。可以与本发明相关联使用的问题求解器170的示例包括例如数字退火器模拟器、

在一些实施方式中,用户装置110、问题求解器170和公式处理器180中的任何一个可以包括联网在一起并且被配置成执行任务的任何硬件配置,例如,服务器和数据库。例如,用户装置110可以包括联网在一起并且被配置成执行如本公开内容中描述的操作的多个计算系统,例如多个服务器,并且可以包括被配置成由一个或更多个装置执行以执行本公开内容中描述的操作的计算机可读指令。

另外,在不脱离本公开内容的范围的情况下,可以对图1进行修改、添加或省略。例如,系统100可以包括比本公开内容中示出和描述的元件更多或更少的元件。

图2是根据本公开内容中描述的至少一个实施方式的用于接收数学公式的用户输入并且自动地产生计算机源代码的示例方法200的流程图。方法200可以由任何合适的系统、设备或装置(例如,图1中描述的系统100)执行。例如,如下面更充分地描述的,方法200的一个或更多个操作可以由下述中的一个或更多个元件执行:图1的公式处理器180、与问题求解器170相关联的公式处理器180、或者图1的公式处理器和/或问题求解器中的多个。尽管用离散框示出,但是与方法200的一个或更多个框相关联的步骤和操作可以取决于特定的实现被分成附加框,组合成较少的框或者被去除。

方法200可以在框210处开始,在框210处,接收数学公式的用户输入。如下面更充分地描述的,在框220处,将数学公式转换成公式图。在框230处,公式图用于自动地生成与输入的数学公式相对应的计算机代码。在一些实施方式中,然后可以在框240处向问题求解器发送自动地生成的计算机代码。在框250处,然后可以从问题求解器接收数学公式的解,并且在框260处,可以经由用户界面将解转发至用户。

在不脱离本公开内容的范围的情况下,可以对方法200进行修改、添加或省略。例如,方法200的操作可以以不同的顺序实现。另外地或可替选地,可以同时执行两个或更多个操作。此外,概述的操作和动作仅作为示例提供,并且在不脱离所公开的实施方式的实质的情况下,某些操作和动作可以是可选的,可以组合成较少的操作和动作,或者可以扩展成另外的操作和动作。

图3示出了可以由用户使用以用于输入数学公式的用户界面300。在该示例中,用户能够通过将文本输入作为数学公式或者使用作为已知数学公式编辑器的示例的已知公式格式(例如,

如以下更充分地描述的,公式处理器180然后能够接收由用户输入的数学公式并且执行各种自动操作。在图3所示的示例中,这可以包括执行预测的问题类型检测操作,其结果示出为带有相应图像340的“背包问题”330。还可以示出自动检测的所需输入350。在一些实施方式中,如果自动检测的问题类型不正确,则用户可以校正预测的问题类型。

用户一选择“运行”按钮320,公式处理器180就可以执行自动代码生成以输出图4A所示的计算机代码400。然后,用户还可以使用界面404上传数据以满足检测的所需输入字段。应当注意,当所需数据量较小时,用户可以手动地输入用于所需输入字段的数据,而他们可以根据需要选择上传更大的数据集。在某些情况下,用户然后可以选择运行按钮402以输出图4B所示的解450。

本文中描述的一些实施方式使用

本文中描述的实施方式提供了下述简单界面,所述界面可以由新手用户和更高级的用户两者使用,以使得他们能够更高效地获得下述计算机代码:所述计算机代码不仅与输入的数学公式相对应,而且还帮助他们获得这些式的更高效且准确的解。尽管在上述示例中描述了

此外,用户界面110可以包括各种不同的输入机制,包括编辑器、集成开发环境、笔记本和可视化工具。为了解释输入的数学公式,应当注意,各种不同的工具可以用作问题求解器170的部件或者与问题求解器170结合使用,包括源代码生成器、复杂语言模型理解、

现在回到用户界面110,本文中描述的实施方式例如允许用户使用混合自然语言(例如,英语)和已知形式(例如,

返回图2,方法200包括接收数学公式的用户输入并且将数学公式转换成公式图。图5示出了框220可以包括各种不同的子处理。

图5是根据本公开内容中描述的至少一个实施方式的用于将用户输入的数学公式转换成公式图的示例方法500的流程图。方法500可以由任何合适的系统、设备或装置(例如,图1中描述的系统100)执行。例如,如下面更充分地描述的,方法500的一个或更多个操作可以由下述中的一个或更多个元件执行:图1的公式处理器180、与问题求解器170相关联的公式处理器180、或者图1的公式处理器和/或问题求解器中的多个。尽管用离散框示出,但是与方法500的一个或更多个框相关联的步骤和操作可以取决于特定的实现被分成附加框、组合成较少的框或者被去除。

方法500可以在框510处开始,在框510处,接收数学公式的用户输入。在某些情况下,公式语言输入可以用于获得用户输入,以使得用户可以交互式地输入公式。在一个实施方式中,用户输入体验可以类似于将数学公式输入到被配置成辅助用户输入数学公式的Microsoft Word公式构建工具中。公式语言输入然后可以被视为

在某些情况下,可以将模板公式的列表提供至用户,以便使得用户能够定制公式的输入。

返回图5,在框520处,可以在输入的数学公式中执行预处理。在某些情况下,该预处理可以包括从输入的数学公式中清除空行和空格,清除保留的关键字以及简化某些类型的数学表达式。另外,可以将输入的数学公式转换成统一的定义。例如,公式处理器180可以组合包括“st”、“Subject to”、“Subject TO”、“subject TO”的不同用户的输入,“st”、“Subject to”、“Subject TO”、“subject TO”都可以被转换成“s.t.”的统一定义。类似地,可以将“Maximize,”和“maximize”转换成“Max,”等。应当理解,在另外的用户使用系统时,在某些情况下,机器学习可以用于观察不同的输入类型并且提高一致性。此外,在某些情况下,可以去除不必要或多余的信息,例如“quad”输入。

在框520处,数学公式被标记化。在某些情况下,字符串值通过划分行和分割每行被标记化。在该处理期间,每个标记都可以视为给定输入的一个片段。在这种情况下,标记器的输出是标记链,其中,每个标记是节点,并且顶点形成标记之间的连接。

图6是根据本公开内容中描述的至少一个实施方式的用于执行行标记器处理的示例方法600的流程图。方法600可以由任何合适的系统、设备或装置(例如,图1中描述的系统100)执行。例如,如下面更充分地描述的,方法600的一个或更多个操作可以由下述中的一个或更多个元件执行:图1的公式处理器180、与问题求解器170相关联的公式处理器180、或者图1的公式处理器和/或问题求解器中的多个。尽管用离散框示出,但是与方法600的一个或更多个框相关联的步骤和操作可以取决于特定的实现被分成附加框,组合成较少的框或者被去除。

在框610处,执行行标记化处理。在该处理期间,行标记器可以将术语‘\n,’‘\t\n,’‘//’视为分隔符,以将输入划分成其中每个项都是单行输入的一系列标记。在框620处,可以执行标记组合处理。在这种情况下,可能需要将输入的数学公式的划分线连接至先前的标记,以便获得正确的表示法。例如,用户可能不正确地或无意地按下了回车键并且因此创建了分开的标记。可替选地,在某些情况下,使用

在框630处,执行括号(parenthesis)标记化处理。在该处理中,根据识别出的括号分解每个段。例如,图8示出了将包括多个括号的数学公式分解成多个标记段的示例分解。在一些实施方式中,自然语言工具包(NLTK)可以用于对给定公式的括号进行标记化。然后,在一些实施方式中,它对整个公式进行标记化。除了对括号进行标记化以外,标记化处理还可以包括对花括号进行标记化,并且如下面更充分地描述的,可以在公式图创建过程期间执行下述操作:可以保留标记之间的相关性,从而可以保留标记与相关标记之间的相关性。

在不脱离本公开内容的范围的情况下,可以对方法500和方法600进行修改、添加或省略。例如,方法500和方法600的操作可以以不同的顺序实现。另外地或可替选地,可以同时执行两个或更多个操作。此外,概述的操作和动作仅作为示例提供,并且在不脱离所公开的实施方式的实质的情况下,某些操作和动作可以是可选的,可以组合成较少的操作和动作,或者可以扩展成附加的操作和动作。

返回图5,方法500还包括框540,在框540中,使用段解析器分解在框530处输出的标记的每个部分。在某些情况下,可以组合一些标记以创建标记链。例如,可以从可以组合的求和中划分出“subject to,”或“s.t.”限制,然后可以将“subject to,”或“s.t.”限制映射到下一个对象上。解析的输出是链标记,其中每个链标记都包括所有相关标记。图9是作为可以在段解析过程期间生成的链标记的示例900。

图10是示出可以用于生成计算机代码的抽象模块的框图。在图10所示的图中,将解析后的公式1010(例如,上述方法的输出)输入到问题建模器中,例如图1所示的问题建模模块130。在图10所示的示例中,问题建模模块130是Pyomo模型模块。如图10所示,Pyomo模型构建可以包括分析解析后的公式以识别和提取任何目标函数、约束、常量、和、变量、集合和参数。然后,一旦识别了这些部件,就可以使用它们来生成图公式,然后可以使用每种计算语言所特有的特定命令和语言来转换图公式,以生成所请求的编程代码。例如,在图10所示的示例中,可以使用唯一的Pyomo代码定义和功能来定义Pyomo特定的目标函数、约束定义、常量、求和函数、变量、集合定义和参数。然后,可以生成与由用户最初输入的数学公式相对应的Pyomo代码。然后可以将该Pyomo代码作为Pyomo模型提交给问题求解器,以便输出解。

图10示出了可以执行约束挖掘处理作为将数学公式转换成公式图的一部分。在该处理期间,将给定的约束范围和类型分配给提取的变量。这可能涉及将其他计算机代码添加到先前生成的代码中,以便进一步定义变量。图11示出了可以如何在结果计算机代码1150中定义二进制变量的范围的示例1100。

图12示出了问题建模模块130可以如何接收一系列标记并执行一系列提取步骤以便分解标记、并且标识应当由用户给出或定义的所需输入的列表1205以便创建可以转换成计算代码的模型的示例1200。图13A和图13B示出了可以如何将公式1300的参数和变量提取到1305中的示例。

图14示出了如何将求和公式1400分解成表示各种提取的标记的一系列连接节点1450的示例。图15示出了如何将公式1500描述为公式图1550。

可能有必要处理矢量。在这种情况下,如图16所示,术语可以用来表示矢量表示。

返回图2,将数学公式转换成公式图的处理还可以包括分解公式并且一旦公式已经被解析和标记化就提取对象。更具体地,公式图描述了所提取的对象之间的连接或两个所提取的对象如何彼此相关。应当理解,一旦提取了对象,就将对象添加至公式图。

在一些情况下,问题建模模块130还可以执行输入符号提取处理。在该处理期间,可以对输入进行分析以从包括有限集(F)和项(T)的求和

V=V

其中,V表示从求和形式中提取但是未在定义中出现、并且要求由用户给出的符号。

可以理解,为了以特定计算机语言(例如,Pyomo)创建模型,用户可以通过向系统提供产生模型将需要的所有数据来产生具体模块,或者相反地,可以通过首先开发模型、并且然后在已经生成抽象模型之后供应数据来创建抽象模型。生成抽象模型的一个益处是,在模型开发期间不需要提供所有所需数据。此外,由于模型与数据分离,因此可以找到相似的抽象模型,使得可以生成、存储和轻松检索现有模板抽象的数据库以供将来使用。

一旦基于特定的计算机语言生成了呈特定语言的模型,就可能有必要确保以其他计算机语言生成的模型产生等效的结构和解。例如,一旦生成公式图,则以下就是重要的:确保具体设计用于数字退火求解器的以第一语言(例如,PyQUBO)对应的自动生成的计算机代码对应于并且将产生可以使用另一求解器(例如,Pyomo)将生成的相同的解,该另一求解器可以与其他求解器(例如,CPLEX、GUROBI等)一起使用。为了确保适当的连续性,每当修改输入公式的对象或修改必要的输入时,更新模型和公式图以与当前结构相对应。

图17是示出本文中描述的一些实施方式的各个步骤的流程图,其中,基于由用户输入的数学公式1700来生成自动生成的代码1740。如图17所示,基于用户输入1700,对数学公式进行解析和标记化以输出与数学公式相对应的一系列标记1710。如例如在图2的框230中所描述的,标记1710被进一步分解和提取以获得与公式图相对应的输出1720。基于公式图,根据1730中显示的命令将自动代码2240打印并呈现给用户。

如先前所描述的,在某些情况下,公式图可以用于生成抽象模型,该抽象模型需要进一步的输入来定义变量以便获得解。图18示出了可以将附加输入1810添加至生成的代码,以便进一步定义和限制公式图并且将模型从抽象模型更新为更具体的模型1820,然后将更具体的模型1820提供至问题求解器170以获得解1850。

如先前所描述的,本文中描述的实施方式的一个优点是能够根据更新的公式生成代码,这允许用户定制代码。当该技术允许公民开发者无需编写代码即可设计和开发不同应用时,可以将该技术描述为低代码环境。因此,用户(例如,非技术开发者)能够定义问题,并且自动化代码生成器产生可以在包括量子退火计算机和其他类似求解器机器的不同求解器上执行的源代码。

图19示出了根据本文中描述的至少一个实施方式的示例系统1900。系统1900可以包括被配置成测试软件的任何合适的系统、设备或装置。系统1900可以包括处理器1910、存储器1920、数据存储装置1930和通信装置1940,以上装置都可以通信地耦接。数据存储装置1930可以包括各种类型的数据,例如,作者对象和社交媒体帐户对象。

通常,处理器1910可以包括任何合适的专用或通用计算机、计算实体或处理装置,上述装置包括各种计算机硬件或软件模块,并且处理器1910可以被配置成执行存储在任何适用的计算机可读存储介质上的指令。例如,处理器1910可以包括微处理器、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或被配置成解释和/或执行程序指令以及/或者处理数据的任何其他数字或模拟电路。

尽管在图19中被示出为单个处理器,但是应当理解,处理器1910可以包括分布在任意数量的网络或物理位置上的任意数量的处理器,这些处理器被配置成单独地或共同地执行本文中描述的任意数量的操作。在一些实施方式中,处理器1910可以解释和/或执行程序指令以及/或者处理存储在存储器1920、数据存储装置1930或存储器1920和数据存储装置1930中的数据。在一些实施方式中,处理器1910可以从数据存储装置1930获取程序指令并且将程序指令加载到存储器1920中。

在将程序指令加载到存储器1920中之后,处理器1910可以执行程序指令,例如用于执行本文中描述的流程200、流程500、流程600、方法200、方法500和方法600的指令。例如,处理器1910可以检索或接收数学公式作为用户输入,并且自动地生成与数学公式相对应的计算机代码。处理器1910还可以执行计算机代码以找到数学公式的解并且使解经由用户界面呈现给用户。

存储器1920和数据存储装置1930可以包括用于携载或具有存储在其上的计算机可执行指令或数据结构的计算机可读存储介质或一个或更多个计算机可读存储介质。这样的计算机可读存储介质可以是可以由通用或专用计算机(例如,处理器1910)访问的任何可用介质。

作为示例而非限制,这样的计算机可读存储介质可以包括非暂态计算机可读存储介质,包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、致密盘只读存储器(CD-ROM)或其他光盘存储装置、磁盘存储装置或其他磁性存储装置、闪速存储器装置(例如固态存储器装置)或可以用于以计算机可执行指令或数据结构的形式携载或存储所需的程序代码并且可以由通用或专用计算机访问的任何其他存储介质。上述的组合也可以包括在计算机可读存储介质的范围内。计算机可执行指令可以包括例如被配置成使处理器1910执行特定操作或操作组的指令和数据。

通信单元1940可以包括被配置成通过网络发送或接收信息的任何部件、装置、系统或以上的组合。在一些实施方式中,通信单元1940可以与在相同系统内的其他位置、相同位置处的其他装置甚至其他部件进行通信。例如,通信单元1940可以包括调制解调器、网卡(无线或有线)、红外通信装置、无线通信装置(例如天线)和/或芯片组(例如,蓝牙装置、802.6装置(例如,城域网(MAN))、WiFi装置、WiMax装置、蜂窝通信设施等)等。通信单元1940可以允许与网络和/或本公开内容中描述的任何其他装置或系统交换数据。例如,通信单元1940可以允许系统1900与其他系统通信,例如,图1的问题求解器170和用户装置110。

在不脱离本公开内容的范围的情况下,可以对系统1900进行修改、添加或省略。例如,数据存储装置1930可以是位于多个位置并且由处理器1910通过网络访问的多个不同的存储介质。

如上所指示的,如下面更详细地论述的,本文中描述的实施方式可以包括使用包括各种计算机硬件或软件模块的专用或通用计算机(例如,图19的处理器1910)。此外,如上所指示的,可以使用用于携载或具有存储在其上的计算机可执行指令或数据结构的计算机可读介质(例如,图19的存储器1920或数据存储装置1930)来实现本文中描述的实施方式。

如本公开内容中所使用的,术语“模块”或“部件”可以指被配置成执行模块或部件和/或软件对象或软件例程的动作的特定硬件实现,上述软件对象或软件例程可以被存储在计算系统的通用硬件(例如,计算机可读介质、处理装置等)上以及/或者由计算系统的通用硬件(例如,计算机可读介质、处理装置等)执行。在一些实施方式中,本公开内容中描述的不同部件、模块、引擎和服务可以被实现为在计算系统上执行的对象或处理(例如,作为单独的线程)。虽然本公开内容中描述的一些系统和方法通常被描述为以软件(存储在通用硬件上和/或由通用硬件执行)实现,但是特定的硬件实现方式或软件与特定的硬件实现方式的组合也是可能的并且预期的。在本公开内容中,“计算实体”可以是如在本公开内容中先前定义的任何计算系统,或者是在计算系统上运行的模块中的任何模块或模块的组合。

在本公开内容中并且特别是在所附权利要求书(例如,所附权利要求书的本体)中使用的术语通常意在作为“开放”术语(例如,术语“包括”应当解释为“包括但不限于”,术语“具有”应当解释为“至少具有”,术语“包含”应当解释为“包含但不限于”等)。

另外,如果意在采用特定数量的引入的权利要求书陈述,则将在权利要求书中明确地陈述这样的意图,并且在没有这样的陈述的情况下,不存在这样的意图。例如,为了帮助理解,以下所附权利要求书可以包括介绍性短语“至少一个”和“一个或更多个”的使用以引入权利要求书叙述。然而,即使当同一权利要求包括介绍性短语“一个或更多个”或“至少一个”以及不定冠词例如“一”或“一种”(例如,“一”和/或“一种”应当解释为意指“至少一个”或“一个或更多个”)时,使用这样的短语也不应当解释为暗示由不定冠词“一”或“一种”引入的权利要求书陈述将包括这样的引入的权利要求书陈述的任何特定权利要求限制为仅包括一个这样的陈述的实施方式;对于用于引入权利要求书陈述的定冠词的使用也是如此。

另外,即使明确地陈述了特定数量的引入的权利要求书陈述,本领域技术人员也将认识到,这样的陈述应当解释为至少意指所陈述的数目(例如,没有其他修饰语的“两次陈述”的裸露陈述意指至少两次陈述,或者两次或更多次陈述)。此外,在使用类似于“A、B和C等中的至少一个”或“A、B和C等中的一个或更多个”的约定的情况下,通常这样的构造意指包括单独的A,单独的B,单独的C,A和B一起,A和C一起,B和C一起,或A、B和C一起等。

此外,无论是在说明书、权利要求书还是附图中,呈现两个或更多个替选术语的任何转折性词语或短语都应当理解为预期包括术语之一、术语中的任一个或两个术语的可能性。例如,短语“A或B”应当理解为包括“A”或“B”或“A和B”的可能性。

本公开内容中陈述的所有示例和条件语言意在用于帮助读者理解本发明以及由发明人为进一步发展本领域所贡献的构思的教学目的,并且应解释为不限于这样的具体陈述的示例和条件。尽管已经详细描述了本公开内容的实施方式,但是在不脱离本公开内容的精神和范围的情况下,可以对实施方式进行各种改变、替换和变更。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号