图1.1表示一个地图,图中黑色部分的方格表示障碍物,编了数字的方 格是扫地机器人可以移动的区域,机器人每次移动一格。已知在没有障碍 的方向上,机器人等概率地到达下一格。机器人在东南西北四个方向上各 安装了一个传感器,能够探测该方向的邻居是否有障碍。每次探测传感器 会得到四个二进制位,分别表示东南西北四个方向的障碍物情况,1表示有 障碍器,0表示无障碍物,如0100表示只有南边有障碍物。已知传感器在每 个方向探测结果有ε的概率产生错误。 如果现收到机器人的传感器数据的时间序列(0111,0101,0001,...), 请推断机器人位置序列。

图1.1:机器人搜索的地图
1.实验环境要求:Windows/Linux操作系统,Python编译环境,numpy, seaborn,matplotlib等程序库。
2. 根据题意,定义机器人的状态集X,观测集E,状态转移模型(矩阵) P XX,传感器模型(矩阵)P EX;
3. 理解并实现滤波、平滑、最可能状态序列的计算方法;
4. 设置观测序列e1 = 7 = 0111, e2 = 5 = 0101, e3 = 1 = 0001;
5. 滤波计算:计算P(X1|e1:1), P(X2|e1:2), P(X3|e1:3);
6. 平滑计算:计算P(X1|e1:3), P(X2|e1:3);
7. 计算最可能序列:(X1:3)及P(X1:3|e1:3)
8. 用热力图(或其他方法)对滤波和平滑的结果进行可视化。