Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Artificial intelligence 人工智能行为决策_Artificial Intelligence_Machine Learning_Simulation_Physics_Robotics - Fatal编程技术网

Artificial intelligence 人工智能行为决策

Artificial intelligence 人工智能行为决策,artificial-intelligence,machine-learning,simulation,physics,robotics,Artificial Intelligence,Machine Learning,Simulation,Physics,Robotics,我正在运行一个物理模拟,并将一组运动指令应用于模拟骨骼。我有多套关于骨骼的说明,包括对腿、手臂、躯干等施加的力以及对其各自骨骼施加的力的持续时间。每一组指令(行为)都是通过测试其执行所需行为的有效性来开发的,然后使用遗传算法修改其他类似行为的行为,并再次进行测试。骨架将在其集合列表中具有数组行为 我有适合度函数,测试稳定性、速度、熵最小化和关节上的力。问题是,任何给定的行为都适用于特定的上下文。一种行为在平地上起作用,另一种行为在右脚前方有肿块时起作用,另一种行为在左脚前方起作用,依此类推。因此

我正在运行一个物理模拟,并将一组运动指令应用于模拟骨骼。我有多套关于骨骼的说明,包括对腿、手臂、躯干等施加的力以及对其各自骨骼施加的力的持续时间。每一组指令(行为)都是通过测试其执行所需行为的有效性来开发的,然后使用遗传算法修改其他类似行为的行为,并再次进行测试。骨架将在其集合列表中具有数组行为

我有适合度函数,测试稳定性、速度、熵最小化和关节上的力。问题是,任何给定的行为都适用于特定的上下文。一种行为在平地上起作用,另一种行为在右脚前方有肿块时起作用,另一种行为在左脚前方起作用,依此类推。因此,每种行为的适用性都因环境而异。仅仅根据以前的健康水平来选择行为是不可行的,因为健康分数不适用于这种情况


我的问题是,如何编程让骨架为上下文选择最佳行为?例如,为随机起伏的地形选择最佳步行行为。

您正在使用遗传算法来修改行为,因此这一定意味着您已经为每个因素组合设计了适应度函数。这是你的问题吗

如果是,答案取决于您用来定义最佳步行行为的指标:

  • 最大化稳定性
  • 最大化速度
  • 将接头上的力降至最低
  • 最小化能量或熵的产生
  • 或者你只是尝试一组参数,记录数值,然后让遗传算法驱动你找到最佳解决方案


    如果每种行为在一种情况下都能很好地工作,而在另一种情况下则不行,那么我会尝试量化如何在各种情况下进行感知和插值,并混合各种策略,看看这是否有帮助。

    为什么不在随机起伏的地形上测试这些行为?只需设置遗传算法的参数,使其有点宽容,并且不会因为一两次失败而谴责某个行为

    你有两个问题:

  • 没有感觉的两足行走是非常困难的。我见过机器人在崎岖不平的地形上行走时没有感觉,但从来没有只用过两条腿。因此,用这种方法可能找到的最佳解决方案可能不是很好。
  • 运行GA既是科学也是艺术。你可以转动很多旋钮,很难找到能够让新奇感增长而又不被噪音淹没的参数。 简单启动(例如爬行)将有助于实现这两个目标

    编辑:

    等待你在同一个随机地形上一遍又一遍地训练它?难怪你有麻烦了!它针对岩石和凸起的特定布局进行优化,这比一般化要容易得多。根据GA的工作方式,您可能会从使路线变得很长中获得一些好处,但更好的解决方案是将每次通过的地形随机化。当它不能再利用地形的特定特征时,它将有一种进化的动力去推广。由于这是一个更为困难的问题,它将无法像以前那样快速地学习,并且它可能无法在当前参数下取得很好的成绩;做好修补的准备。

    现在听起来你只是有一个分类问题。您希望将有关当前所走内容的一些知识映射到一组类中的一个。了解地形的类别允许您调用适当的子例程。这是正确的吗

    如果是这样,那么您可以使用大量的分类引擎,包括神经网络、贝叶斯网络、决策树、最近邻等。为了选择最佳拟合,我们需要有关您的问题的更多信息

    首先,您有什么样的输入或感觉数据可以帮助您确定应该调用的行为类?第二,您能否描述一下您将在什么情况下培训这个分类器,以及在运行时部署它时的情况,例如对计算资源的任何限制或对噪声鲁棒性的要求

    <>编辑:因为你有固定数量的类,并且你有一些参数化的模型来生成所有可能的地形,所以我会考虑使用。原则如下。您将整个地形集群到k个不同的类中,每个集群都与一个专门的子例程相关联,该子例程对该地形集群的性能最好。然后,当一个新地形出现时,它可能会落在其中一个集群附近。然后调用相应的专用子例程来导航该地形

    离线操作:生成足够多的随机地形以充分采样参数空间,将这些地形映射到您的感官空间(但记住感官空间中的哪些点对应于哪些地形),然后在此感官空间语料库上运行k-means聚类,其中k是您要学习的类的数量。类代表C和感觉空间中的点P之间的距离函数只是让算法C导航生成P的地形的适应度函数。然后将感觉空间划分为k个簇,每个簇映射到您拥有的最佳子例程。每个簇在感觉空间中都有一个代表点

    现在在运行时:您将在感官空间中获得一些未标记的点。使用不同的距离函数查找距离此新引入点最近的代表点。这告诉你地形的等级

    请注意,此方法的成功取决于从地形生成的参数空间到感觉空间、从感觉空间到适应度函数的映射的质量,以及用于协调的最终距离函数