我创建了一个动作数组,每个动作都有一个成本。之后,我实现了一个 for 循环来查找成本最低的操作。其次,我必须检查先决条件,看看可以采取哪些行动。
问题出在主逻辑中,因为当我打印操作名称和获得的成本时,显示的是loadPlaneP1(成本较低的那个),但我通过的参数getActParameter1()是unloadTruckP2(数组中最后一个)的参数。
我收到的输出是
Old state parameters are pkg1Location: lhr pkg2Location: lhr truckLocation: cdg planeLocation: lhr cityLocation:london
PRE The first parameter is : southloadPlaneP1
POST The first parameter is : south
Precondition satysfied with action name: loadPlaneP1
Costs array: [30, 40, 100, 50, 55, 60, 70, 70, 40]
ActionID 0
The action choosen is loadPlaneP130south
State parameters updated are pkg1Location: south pkg2Location: south truckLocation: south planeLocation: cdg cityLocation:paris
所以条件不满足,因为我得到的参数getActParameter1()与已有的不同loadPlaneP1。
为什么会发生这种情况?
泛舟湖上清波郎朗
相关分类