加速表查找/插值
5视图(30天)
显示旧的评论
嗨,AI q学习我需要插入一个发现状态表的状态来确定下一个行动。
states_list是Nx4矩阵(N是为了1 e6),状态1 x4数组。我需要找的行(state_index) state_list最近的状态。下面的函数,但远慢我的目标。
建议来改善这个函数的性能吗?
函数state_index = interpolate_states (states_list状态)
错误= abs (states_list(: 1)状态(1)+ abs (states_list(:, 2)状态(2))+ abs (states_list(:, 3)状态(3))+ abs (states_list(:, 4)状态(4));
[~,state_index] = min(错误);
结束
答案(1)
dpb
2021年8月1日
编辑:dpb
2021年8月1日
轻微的改变;没有试着时间…
(~,ix) = min (sum (abs (states_list-state), 2));
是相同的计算…
> > x =兰迪(10、4);y = 1:4;%一些测试数据
> > e = 0;为我= 1:4,e = e + abs (x(:,我)- y (i));结束%模拟当前解决方案
> > >所有(e = = sum (abs (x - y), 2))%比较向量解决方案
ans =
逻辑
1
> >
我不认为这将使执行速度明显不同,我从来没有测试它是否很重要,但你可以考虑调整行而不是列的数据,因此4 x N和4 x1;这将让
总和
在自然秩序的工作列移除可选的第二个参数。
另一个轻微的减少开销可能是写上面的内联函数调用一个一行程序……